Mapper
display_rec.c
Go to the documentation of this file.
1 #define _POSIX_SOURCE
2 #include "prototypes.h"
3 
4 XtIntervalId timer;
6 char bbuf[100000];
9 void quit_callback();
10 void print_info();
11 void quit_print();
13 void kill_dialog();
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("rec (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/rec/data/rec.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, 95);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,15);argcount++;
86 XtSetArg(args[argcount],XmNrightAttachment,XmATTACH_POSITION);argcount++;
87 XtSetArg(args[argcount],XmNrightPosition,25);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,35);argcount++;
95 XtSetArg(args[argcount],XmNrightAttachment,XmATTACH_POSITION);argcount++;
96 XtSetArg(args[argcount],XmNrightPosition,45);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,55);argcount++;
104 XtSetArg(args[argcount],XmNrightAttachment,XmATTACH_POSITION);argcount++;
105 XtSetArg(args[argcount],XmNrightPosition,65);argcount++;
106 pbutton=XmCreatePushButton(rowcol1,"send",args,argcount);
107 XtAddCallback(pbutton,XmNactivateCallback,send_callback,NULL);
108 XtManageChild(pbutton);
109 
110 argcount=0;
111 XtSetArg(args[argcount],XmNleftAttachment,XmATTACH_POSITION);argcount++;
112 XtSetArg(args[argcount],XmNleftPosition,75);argcount++;
113 XtSetArg(args[argcount],XmNrightAttachment,XmATTACH_POSITION);argcount++;
114 XtSetArg(args[argcount],XmNrightPosition,85);argcount++;
115 pbutton=XmCreatePushButton(rowcol1,"quit",args,argcount);
116 XtAddCallback(pbutton,XmNactivateCallback,quit_callback,NULL);
117 XtManageChild(pbutton);
118 
119 argcount=0;
120 XtSetArg(args[argcount],XmNrows,80);argcount++;
121 XtSetArg(args[argcount],XmNcolumns,80);argcount++;
122 XtSetArg(args[argcount],XmNeditable,True);argcount++;
123 XtSetArg(args[argcount],XmNeditMode,XmMULTI_LINE_EDIT);argcount++;
124 XtSetArg(args[argcount],XmNcursorPositionVisible,True);argcount++;
125 XtSetArg(args[argcount],XmNvalue,bbuf);argcount++;
126 XtSetArg(args[argcount],XmNtopAttachment, XmATTACH_WIDGET);argcount++;
127 XtSetArg(args[argcount],XmNtopWidget, rowcol);argcount++;
128 XtSetArg(args[argcount],XmNleftAttachment, XmATTACH_FORM);argcount++;
129 XtSetArg(args[argcount],XmNrightAttachment, XmATTACH_FORM);argcount++;
130 XtSetArg(args[argcount],XmNorientation,XmVERTICAL);argcount++;
131 XtSetArg(args[argcount],XmNbottomAttachment, XmATTACH_WIDGET);argcount++;
132 XtSetArg(args[argcount],XmNbottomWidget, rowcol1);argcount++;
133 text=XmCreateScrolledText(form,"areas",args,argcount);
134 
135 XtManageChild(text);
136 XtManageChild(rowcol);
137 XtManageChild(rowcol1);
138 XtManageChild(form);
139 XtRealizeWidget(top_level);
140 
141 XtAppMainLoop(app);
142 
143 
144 }
145 
147 
148 {
149 
150 /* should we save */
151 
152 
153 raise(SIGKILL);
154 
155 }
156 
157 
158 void print_callback(Widget w,XtPointer data,XtPointer call_data)
159 
160 {
161 
162 FILE *fp;
163 int j,m;
164 char *btext;
165 Cardinal argcount;
166 Arg args[10];
167 
168 argcount=0;
169 XtSetArg(args[argcount],XmNvalue,&btext);argcount++;
170 XtGetValues(text,args,argcount);
171 
172 fp=fopen("/usr/db/raw/rec/data/rec.scr","w");
173 if(fp==NULL) {
174 
175  berror(top_level,"Could not open /usr/db/raw/rec/data/rec.scr for write\n");
176  return;
177 
178  }
179 else
180  fputs(btext,fp);
181 
182 fclose(fp);
183 XtFree(btext);
184 
185 system("qprt /usr/db/raw/rec/data/rec.scr");
186 XtDestroyWidget(print_dialog);
187 
188 }
189 
190 void query_callback(Widget w,XtPointer data,XtPointer call_data)
191 
192 {
193 
194 int ier;
195 char buf[300];
196 Cardinal argcount;
197 Arg args[10];
198 char *p;
199 FILE *fp;
200 char *btext;
201 Widget gtext;
202 
203 btext="retrieving data - please wait\n";
204 
205 argcount=0;
206 XtSetArg(args[argcount],XmNvalue,btext);argcount++;
207 XtSetValues(text,args,argcount);
208 XmUpdateDisplay(top_level);
209 
210 ier=system("/usr/local/bin/rec");
211 
212 /* create widget */
213 
214 fp=fopen("/usr/db/raw/rec/data/rec.out","r");
215 
216 bbuf[0]=0;
217 
218 for(;;){
219 
220  p=fgets(buf,200,fp);
221 
222  if(p==NULL)
223  break;
224 
225  strcat(bbuf,buf);
226 
227  }
228 
229 argcount=0;
230 XtSetArg(args[argcount],XmNvalue,bbuf);argcount++;
231 XtSetValues(text,args,argcount);
232 
233 fclose(fp);
234 
235 }
236 
237 
238 char *printer[]={"HP LasterJet III",NULL};
239 
240 void print_info(Widget w,XtPointer data,XtPointer call_data)
241 
242 {
243 
244 int i,k,inum;
245 XmString str[10],t,cancel;
246 Widget select_menu;
247 Cardinal argcount;
248 Arg args[10];
249 
250 /* this saves id of a widget */
251 
252 i=0;
253 while(printer[i]!=NULL){
254 
255  str[i++]=XmStringCreateLocalized(printer[i]);
256 
257  }
258 
259 inum=i;
260 
261 argcount=0;
262 XtSetArg(args[argcount],XmNwidth, 600);argcount++;
263 XtSetArg(args[argcount],XmNheight,400);argcount++;
264 XtSetArg(args[argcount],XmNdialogStyle,
265  XmDIALOG_FULL_APPLICATION_MODAL);argcount++;
266 XtSetArg(args[argcount],XmNdeleteResponse,XmDO_NOTHING);
267  argcount++;
268 
269 /* creat as child of info dialog*/
270 
271 print_dialog=XmCreateMessageDialog(top_level,"Selection list",
272  args,argcount);
273 
274 XtUnmanageChild(XmMessageBoxGetChild(print_dialog,XmDIALOG_CANCEL_BUTTON));
275 XtUnmanageChild(XmMessageBoxGetChild(print_dialog,XmDIALOG_OK_BUTTON));
276 XtUnmanageChild(XmMessageBoxGetChild(print_dialog,XmDIALOG_HELP_BUTTON));
277 XtUnmanageChild(XmMessageBoxGetChild(print_dialog,XmDIALOG_DEFAULT_BUTTON));
278 XtUnmanageChild(XmMessageBoxGetChild(print_dialog,XmDIALOG_SEPARATOR));
279 
280 t=XmStringCreateLocalized("Printers");
281 cancel=XmStringCreateLocalized("quit");
282 argcount=0;
283 XtSetArg(args[argcount],XmNmustMatch,True);argcount++;
284 XtSetArg(args[argcount],XmNlistItemCount,inum);argcount++;
285 XtSetArg(args[argcount],XmNlistItems,str);argcount++;
286 XtSetArg(args[argcount],XmNlistLabelString,t);argcount++;
287 XtSetArg(args[argcount],XmNhelpLabelString,cancel);argcount++;
288 select_menu=XmCreateSelectionBox(print_dialog,"areas",args,argcount);
289 
290 XtAddCallback(select_menu,XmNokCallback,print_callback,(XtPointer)k);
291 XtAddCallback(select_menu,XmNhelpCallback,quit_print,(XtPointer)k);
292 XtUnmanageChild(XmMessageBoxGetChild(select_menu,XmDIALOG_CANCEL_BUTTON));
293 
294 XtManageChild(select_menu);
295 XtManageChild(print_dialog);
296 
297 for(i=0;i<inum;i++)
298  XmStringFree(str[i]);
299 
300 XmStringFree(t);
301 
302 }
303 
305 
306 {
307 
308 XtDestroyWidget(print_dialog);
309 
310 }
311 
312 
313 void send_callback(Widget w,XtPointer data,XtPointer call_data)
314 
315 {
316 
317 Cardinal argcount;
318 Arg args[10];
319 Widget dialog,textwi;
320 char *btext;
321 FILE *fp;
322 int ier,posit,bflag;
323 char *p,etext[200];
324 
325 argcount=0;
326 XtSetArg(args[argcount],XmNwidth, 400);argcount++;
327 XtSetArg(args[argcount],XmNheight,200);argcount++;
328 XtSetArg(args[argcount],XmNautoUnmanage,FALSE);argcount++;
329 XtSetArg(args[argcount],XmNdialogStyle,
330  XmDIALOG_FULL_APPLICATION_MODAL);argcount++;
331 XtSetArg(args[argcount],XmNdeleteResponse,XmDO_NOTHING);
332  argcount++;
333 
334 dialog=XmCreateMessageDialog(top_level,"Values",args,argcount);
335 
336 XtUnmanageChild(XmMessageBoxGetChild(dialog,XmDIALOG_CANCEL_BUTTON));
337 XtUnmanageChild(XmMessageBoxGetChild(dialog,XmDIALOG_HELP_BUTTON));
338 
339 XtAddCallback(dialog,XmNokCallback,kill_dialog,NULL);
340 
341 argcount=0;
342 XtSetArg(args[argcount],XmNvalue,&btext);argcount++;
343 XtGetValues(text,args,argcount);
344 
345 bflag=0;
346 fp=fopen("/usr/db/raw/rec/data/rec.out","w");
347 if(fp==NULL)
348  bflag=1;
349 
350 else
351  fputs(btext,fp);
352 
353 fclose(fp);
354 XtFree(btext);
355 
356 ier=to_afos("/usr/db/raw/rec/data/rec.out");
357 
358 if(ier==0)
359  p="sent";
360 
361 else
362  p="not sent";
363 
364 sprintf(etext,"SLCRVFSLR %s to afos\n",p);
365 
366 if(bflag==1)
367  sprintf(etext,"could not open /usr/db/raw/rec/dat/rec.out for write\n");
368 
369 argcount=0;
370 XtSetArg(args[argcount],XmNrows,10);argcount++;
371 XtSetArg(args[argcount],XmNcolumns,20);argcount++;
372 XtSetArg(args[argcount],XmNeditable,False);argcount++;
373 XtSetArg(args[argcount],XmNeditMode,XmMULTI_LINE_EDIT);argcount++;
374 XtSetArg(args[argcount],XmNcursorPositionVisible,False);argcount++;
375 XtSetArg(args[argcount],XmNvalue,etext);argcount++;
376 textwi=XmCreateScrolledText(dialog,"areas",args,argcount);
377 
378 XtManageChild(textwi);
379 XtManageChild(dialog);
380 
381 }
382 
383 
384 void kill_dialog(Widget w,XtPointer data,XtPointer junk)
385 
386 {
387 
388 XtDestroyWidget(w);
389 
390 }
391 
392 void berror(Widget widget,char *string)
393 
394 {
395 
396 Cardinal argcount;
397 Arg args[10];
398 Widget err;
399 XmString msg;
400 
401 msg=XmStringCreateLocalized(string);
402 
403 argcount=0;
404 XtSetArg(args[argcount],XmNmessageString,msg);argcount++;
405 XtSetArg(args[argcount],XmNdialogStyle,
406  XmDIALOG_FULL_APPLICATION_MODAL);argcount++;
407 err=XmCreateErrorDialog(widget,"info",args,argcount);
408 
409 XtUnmanageChild(XmMessageBoxGetChild(err,XmDIALOG_CANCEL_BUTTON));
410 XtUnmanageChild(XmMessageBoxGetChild(err,XmDIALOG_HELP_BUTTON));
411 
412 XtManageChild(err);
413 XmStringFree(msg);
414 
415 }
416 
static int i
#define FALSE
Definition: decode_HDP.c:9
void send_callback()
void berror(Widget widget, char *string)
Definition: display_rec.c:392
void print_info()
Widget print_dialog
Definition: display_rec.c:5
Widget top_level
Definition: display_rec.c:5
void query_callback()
Widget dialog
Definition: display_rec.c:5
char bbuf[100000]
Definition: display_rec.c:6
Widget text
Definition: display_rec.c:5
String fallbacks[]
Definition: display_rec.c:15
void quit_callback()
Definition: display_rec.c:146
void print_callback()
char * printer[]
Definition: display_rec.c:238
void kill_dialog()
void quit_print()
Definition: display_rec.c:304
main(int argc, char *argv[])
Definition: display_rec.c:17
XtIntervalId timer
Definition: display_rec.c:4
struct stat buf
Definition: is_file_closed.c:8
int to_afos(char *fname)
Definition: to_afos.c:3
fclose(fp)
sprintf(fbuf,"/usr/mapper/nexrad/ngrid.%02d-%02d-%02d-%02d", year, month, day, hour)
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
int posit
Definition: mapper.c:93
Arg args[10]