Mapper
display_review.c
Go to the documentation of this file.
1 #define _POSIX_SOURCE
2 #include "prototypes.h"
3 
4 XtIntervalId timer;
6 char bbuf[100000];
7 int query_flag=0;
10 void quit_callback();
11 void print_info();
12 void quit_print();
13 void check_token();
14 
15 String fallbacks[]={"*fontList: -adobe-courier-bold-r-*-180-*",NULL};
16 
17 main(int argc,char *argv[])
18 
19 
20 {
21 
22 Cardinal argcount;
23 Arg args[20];
24 char buf[300],*p,*btext;
25 Widget form,rowcol,rowcol1,rowcol2,pbutton;
26 FILE *fp;
27 XmString t;
28 XtAppContext app;
29 
30 XtSetLanguageProc(NULL,NULL,NULL);
31 top_level = XtVaAppInitialize(&app,"main",NULL,0,&argc,argv,fallbacks,
32  XmNdeleteResponse,XmDO_NOTHING,NULL);
33 
34 argcount=0;
35 XtSetArg(args[argcount],XmNorientation,XmVERTICAL);argcount++;
36 form=XmCreateForm(top_level,"dummy",args,argcount);
37 
38 argcount=0;
39 XtSetArg(args[argcount],XmNtopAttachment, XmATTACH_FORM);argcount++;
40 XtSetArg(args[argcount],XmNleftAttachment, XmATTACH_FORM);argcount++;
41 XtSetArg(args[argcount],XmNrightAttachment, XmATTACH_FORM);argcount++;
42 XtSetArg(args[argcount],XmNorientation,XmVERTICAL);argcount++;
43 rowcol=XmCreateRowColumn(form,"dummy",args,argcount);
44 
45 t=XmStringCreateLocalized("Review (VERSION 1.0)");
46 argcount=0;
47 XtSetArg(args[argcount],XmNlabelString,t);argcount++;
48 pbutton=XmCreateLabel(rowcol,"Label",args,argcount);
49 XtManageChild(pbutton);
50 XmStringFree(t);
51 
52 fp=fopen("/usr/db/raw/review/data/review.out","r");
53 
54 bbuf[0]=0;
55 
56 if(fp==NULL)
57  strcpy(bbuf,"No review file available\n");
58 
59 else {
60 
61 
62  for(;;) {
63 
64  p=fgets(buf,200,fp);
65 
66  if(p==NULL)
67  break;
68 
69  strcat(bbuf,buf);
70 
71  }
72 
73  }
74 
75 argcount=0;
76 XtSetArg(args[argcount],XmNtopAttachment, XmATTACH_POSITION);argcount++;
77 XtSetArg(args[argcount],XmNtopPosition, 90);argcount++;
78 XtSetArg(args[argcount],XmNleftAttachment, XmATTACH_FORM);argcount++;
79 XtSetArg(args[argcount],XmNrightAttachment, XmATTACH_FORM);argcount++;
80 XtSetArg(args[argcount],XmNbottomAttachment, XmATTACH_FORM);argcount++;
81 rowcol1=XmCreateForm(form,"Edit Stations",args,argcount);
82 
83 argcount=0;
84 XtSetArg(args[argcount],XmNleftAttachment,XmATTACH_POSITION);argcount++;
85 XtSetArg(args[argcount],XmNleftPosition,10);argcount++;
86 XtSetArg(args[argcount],XmNrightAttachment,XmATTACH_POSITION);argcount++;
87 XtSetArg(args[argcount],XmNrightPosition,30);argcount++;
88 pbutton=XmCreatePushButton(rowcol1,"query",args,argcount);
89 XtAddCallback(pbutton,XmNactivateCallback,query_callback,NULL);
90 XtManageChild(pbutton);
91 
92 argcount=0;
93 XtSetArg(args[argcount],XmNleftAttachment,XmATTACH_POSITION);argcount++;
94 XtSetArg(args[argcount],XmNleftPosition,40);argcount++;
95 XtSetArg(args[argcount],XmNrightAttachment,XmATTACH_POSITION);argcount++;
96 XtSetArg(args[argcount],XmNrightPosition,60);argcount++;
97 pbutton=XmCreatePushButton(rowcol1,"print",args,argcount);
98 XtAddCallback(pbutton,XmNactivateCallback,print_info,NULL);
99 XtManageChild(pbutton);
100 
101 argcount=0;
102 XtSetArg(args[argcount],XmNleftAttachment,XmATTACH_POSITION);argcount++;
103 XtSetArg(args[argcount],XmNleftPosition,70);argcount++;
104 XtSetArg(args[argcount],XmNrightAttachment,XmATTACH_POSITION);argcount++;
105 XtSetArg(args[argcount],XmNrightPosition,90);argcount++;
106 pbutton=XmCreatePushButton(rowcol1,"quit",args,argcount);
107 XtAddCallback(pbutton,XmNactivateCallback,quit_callback,NULL);
108 XtManageChild(pbutton);
109 
110 argcount=0;
111 XtSetArg(args[argcount],XmNrows,10);argcount++;
112 XtSetArg(args[argcount],XmNcolumns,100);argcount++;
113 XtSetArg(args[argcount],XmNeditable,False);argcount++;
114 XtSetArg(args[argcount],XmNeditMode,XmMULTI_LINE_EDIT);argcount++;
115 XtSetArg(args[argcount],XmNcursorPositionVisible,False);argcount++;
116 XtSetArg(args[argcount],XmNvalue,bbuf);argcount++;
117 XtSetArg(args[argcount],XmNtopAttachment, XmATTACH_WIDGET);argcount++;
118 XtSetArg(args[argcount],XmNtopWidget, rowcol);argcount++;
119 XtSetArg(args[argcount],XmNleftAttachment, XmATTACH_FORM);argcount++;
120 XtSetArg(args[argcount],XmNrightAttachment, XmATTACH_FORM);argcount++;
121 XtSetArg(args[argcount],XmNorientation,XmVERTICAL);argcount++;
122 XtSetArg(args[argcount],XmNbottomAttachment, XmATTACH_WIDGET);argcount++;
123 XtSetArg(args[argcount],XmNbottomWidget, rowcol1);argcount++;
124 text=XmCreateScrolledText(form,"areas",args,argcount);
125 
126 XtManageChild(text);
127 XtManageChild(rowcol);
128 XtManageChild(rowcol1);
129 XtManageChild(form);
130 XtRealizeWidget(top_level);
131 
132 XtAppMainLoop(app);
133 
134 
135 }
136 
138 
139 {
140 
141 raise(SIGKILL);
142 
143 }
144 
145 
146 void print_callback(Widget w,XtPointer data,XtPointer call_data)
147 
148 {
149 
150 FILE *fp;
151 int j,m;
152 char *btext;
153 Cardinal argcount;
154 Arg args[10];
155 
156 argcount=0;
157 XtSetArg(args[argcount],XmNvalue,&btext);argcount++;
158 XtGetValues(text,args,argcount);
159 
160 fp=fopen("/usr/db/raw/review/data/review.scr","w");
161 if(fp==NULL)
162  fputs("No review file available\n",fp);
163 
164 else
165  fputs(btext,fp);
166 
167 fclose(fp);
168 XtFree(btext);
169 
170 system("qprt -z1 /usr/db/raw/review/data/review.scr");
171 XtDestroyWidget(print_dialog);
172 
173 }
174 
175 
176 
177 void query_callback(Widget w,XtPointer data,XtPointer call_data)
178 
179 {
180 
181 int ier;
182 char buf[300];
183 Cardinal argcount;
184 Arg args[10];
185 char *p;
186 FILE *fp;
187 char *btext;
188 Widget gtext;
189 
190 ier=system("/usr/local/bin/review &");
191 
192 /* create widget */
193 
194 if(query_flag==1)
195  return;
196 
197 query_flag=1;
198 
199 timer=XtAppAddTimeOut(XtWidgetToApplicationContext(top_level),10000,check_token,NULL);
200 
201 argcount=0;
202 XtSetArg(args[argcount],XmNwidth, 700);argcount++;
203 XtSetArg(args[argcount],XmNheight,200);argcount++;
204 XtSetArg(args[argcount],XmNdeleteResponse,XmDO_NOTHING);argcount++;
205 dialog=XmCreateMessageDialog(top_level,"Selection list",args,argcount);
206 
207 XtUnmanageChild(XmMessageBoxGetChild(dialog,XmDIALOG_CANCEL_BUTTON));
208 XtUnmanageChild(XmMessageBoxGetChild(dialog,XmDIALOG_HELP_BUTTON));
209 
210 btext="reviewing database - this will take about 2 minutes\n\
211 widget will be updated upon completion\n";
212 
213 argcount=0;
214 XtSetArg(args[argcount],XmNrows,10);argcount++;
215 XtSetArg(args[argcount],XmNcolumns,50);argcount++;
216 XtSetArg(args[argcount],XmNeditable,False);argcount++;
217 XtSetArg(args[argcount],XmNeditMode,XmMULTI_LINE_EDIT);argcount++;
218 XtSetArg(args[argcount],XmNcursorPositionVisible,False);argcount++;
219 XtSetArg(args[argcount],XmNvalue,btext);argcount++;
220 gtext=XmCreateScrolledText(dialog,"areas",args,argcount);
221 
222 XtManageChild(gtext);
223 XtManageChild(dialog);
224 
225 }
226 
227 
228 char *printer[]={"HP LasterJet III",NULL};
229 
230 void print_info(Widget w,XtPointer data,XtPointer call_data)
231 
232 {
233 
234 int i,k,inum;
235 XmString str[10],t,cancel;
236 Widget select_menu;
237 Cardinal argcount;
238 Arg args[10];
239 
240 /* this saves id of a widget */
241 
242 i=0;
243 while(printer[i]!=NULL){
244 
245  str[i++]=XmStringCreateLocalized(printer[i]);
246 
247  }
248 
249 inum=i;
250 
251 argcount=0;
252 XtSetArg(args[argcount],XmNwidth, 600);argcount++;
253 XtSetArg(args[argcount],XmNheight,400);argcount++;
254 XtSetArg(args[argcount],XmNdialogStyle,
255  XmDIALOG_FULL_APPLICATION_MODAL);argcount++;
256 XtSetArg(args[argcount],XmNdeleteResponse,XmDO_NOTHING);
257  argcount++;
258 
259 /* creat as child of info dialog*/
260 
261 print_dialog=XmCreateMessageDialog(top_level,"Selection list",
262  args,argcount);
263 
264 XtUnmanageChild(XmMessageBoxGetChild(print_dialog,XmDIALOG_CANCEL_BUTTON));
265 XtUnmanageChild(XmMessageBoxGetChild(print_dialog,XmDIALOG_OK_BUTTON));
266 XtUnmanageChild(XmMessageBoxGetChild(print_dialog,XmDIALOG_HELP_BUTTON));
267 XtUnmanageChild(XmMessageBoxGetChild(print_dialog,XmDIALOG_DEFAULT_BUTTON));
268 XtUnmanageChild(XmMessageBoxGetChild(print_dialog,XmDIALOG_SEPARATOR));
269 
270 t=XmStringCreateLocalized("Printers");
271 cancel=XmStringCreateLocalized("quit");
272 argcount=0;
273 XtSetArg(args[argcount],XmNmustMatch,True);argcount++;
274 XtSetArg(args[argcount],XmNlistItemCount,inum);argcount++;
275 XtSetArg(args[argcount],XmNlistItems,str);argcount++;
276 XtSetArg(args[argcount],XmNlistLabelString,t);argcount++;
277 XtSetArg(args[argcount],XmNhelpLabelString,cancel);argcount++;
278 select_menu=XmCreateSelectionBox(print_dialog,"areas",args,argcount);
279 
280 XtAddCallback(select_menu,XmNokCallback,print_callback,(XtPointer)k);
281 XtAddCallback(select_menu,XmNhelpCallback,quit_print,(XtPointer)k);
282 XtUnmanageChild(XmMessageBoxGetChild(select_menu,XmDIALOG_CANCEL_BUTTON));
283 
284 XtManageChild(select_menu);
285 XtManageChild(print_dialog);
286 
287 for(i=0;i<inum;i++)
288  XmStringFree(str[i]);
289 
290 XmStringFree(t);
291 
292 }
293 
295 
296 {
297 
298 XtDestroyWidget(print_dialog);
299 
300 }
301 
303 
304 {
305 
306 int ier;
307 struct stat fbuf;
308 char buf[200],*p;
309 Cardinal argcount;
310 Arg args[10];
311 FILE *fp;
312 
313 ier=stat("/usr/db/raw/review/data/review.token",&fbuf);
314 
315 if(ier != -1) {
316 
317  timer=XtAppAddTimeOut(XtWidgetToApplicationContext(top_level),
318  10000,check_token,NULL);
319 
320  return;
321 
322  }
323 
324 
325 fp=fopen("/usr/db/raw/review/data/review.out","r");
326 
327 bbuf[0]=0;
328 
329 for(;;){
330 
331  p=fgets(buf,200,fp);
332 
333  if(p==NULL)
334  break;
335 
336  strcat(bbuf,buf);
337 
338  }
339 
340 argcount=0;
341 XtSetArg(args[argcount],XmNvalue,bbuf);argcount++;
342 XtSetValues(text,args,argcount);
343 
344 XtDestroyWidget(dialog);
345 
346 fclose(fp);
347 
348 query_flag=0;
349 
350 }
351 
static int i
char fbuf[100]
Definition: decode_HDP.c:2
void print_info()
Widget print_dialog
Definition: display_review.c:5
int query_flag
Definition: display_review.c:7
Widget top_level
Definition: display_review.c:5
void query_callback()
Widget dialog
Definition: display_review.c:5
char bbuf[100000]
Definition: display_review.c:6
Widget text
Definition: display_review.c:5
String fallbacks[]
void quit_callback()
void print_callback()
char * printer[]
void check_token()
void quit_print()
main(int argc, char *argv[])
XtIntervalId timer
Definition: display_review.c:4
struct stat buf
Definition: is_file_closed.c:8
fclose(fp)
fp
Definition: make_NEXRAD.c:339
system(tarbuf)
int j
Definition: mapp2h.h:48
int k
Definition: mapp2h.h:48
XtAppContext app
Definition: mapper.c:199
Arg args[10]