1 // generated by Fast Light User Interface Designer (fluid) version 1.0305
2 
3 #include "arqdialogs.h"
4 #include <config.h>
5 #include <string>
6 #include "flarq.h"
7 
cb_flarq(Fl_Double_Window *,void *)8 static void cb_flarq(Fl_Double_Window*, void*) {
9   arqCLOSE();
10 }
11 
12 Fl_Menu_Bar *mnu=(Fl_Menu_Bar *)0;
13 
cb_mnu_nbems_files(Fl_Menu_ *,void *)14 static void cb_mnu_nbems_files(Fl_Menu_*, void*) {
15   open_nbems_file_folder();
16 }
17 
cb_mnuExit(Fl_Menu_ *,void *)18 static void cb_mnuExit(Fl_Menu_*, void*) {
19   arqCLOSE();
20 }
21 
cb_mnuSendEmail(Fl_Menu_ *,void *)22 static void cb_mnuSendEmail(Fl_Menu_*, void*) {
23   sendEmailFile();
24 }
25 
cb_mnuSendText(Fl_Menu_ *,void *)26 static void cb_mnuSendText(Fl_Menu_*, void*) {
27   sendAsciiFile();
28 }
29 
cb_mnuSendImage(Fl_Menu_ *,void *)30 static void cb_mnuSendImage(Fl_Menu_*, void*) {
31   sendImageFile();
32 }
33 
cb_mnuSendBinary(Fl_Menu_ *,void *)34 static void cb_mnuSendBinary(Fl_Menu_*, void*) {
35   sendBinaryFile();
36 }
37 
cb_mnuCompose(Fl_Menu_ *,void *)38 static void cb_mnuCompose(Fl_Menu_*, void*) {
39   ComposeMail();
40 }
41 
cb_mnuConfig(Fl_Menu_ *,void *)42 static void cb_mnuConfig(Fl_Menu_*, void*) {
43   cbMenuConfig();
44 }
45 
cb_mnuHowTo(Fl_Menu_ *,void *)46 static void cb_mnuHowTo(Fl_Menu_*, void*) {
47   help_cb();
48 }
49 
cb_mnuAbout(Fl_Menu_ *,void *)50 static void cb_mnuAbout(Fl_Menu_*, void*) {
51   cbMenuAbout();
52 }
53 
54 Fl_Menu_Item menu_mnu[] = {
55  {"&File", 0,  0, 0, 64, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
56  {"NBEMS files", 0,  (Fl_Callback*)cb_mnu_nbems_files, 0, 128, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
57  {"E&xit", 0,  (Fl_Callback*)cb_mnuExit, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
58  {0,0,0,0,0,0,0,0,0},
59  {"&Send", 0,  0, 0, 64, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
60  {"Email", 0,  (Fl_Callback*)cb_mnuSendEmail, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
61  {"Text File", 0,  (Fl_Callback*)cb_mnuSendText, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
62  {"Image File", 0,  (Fl_Callback*)cb_mnuSendImage, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
63  {"Binary File", 0,  (Fl_Callback*)cb_mnuSendBinary, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
64  {0,0,0,0,0,0,0,0,0},
65  {"Compose", 0,  (Fl_Callback*)cb_mnuCompose, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
66  {"&Config", 0,  (Fl_Callback*)cb_mnuConfig, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
67  {"&Help", 0,  0, 0, 64, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
68  {"How To", 0,  (Fl_Callback*)cb_mnuHowTo, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
69  {"&About", 0,  (Fl_Callback*)cb_mnuAbout, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
70  {0,0,0,0,0,0,0,0,0},
71  {0,0,0,0,0,0,0,0,0}
72 };
73 
74 Fl_Button *btnCONNECT=(Fl_Button *)0;
75 
cb_btnCONNECT(Fl_Button *,void *)76 static void cb_btnCONNECT(Fl_Button*, void*) {
77   arqCONNECT();
78 }
79 
80 Fl_Input2 *txtURCALL=(Fl_Input2 *)0;
81 
82 Fl_Light_Button *btnBEACON=(Fl_Light_Button *)0;
83 
cb_btnBEACON(Fl_Light_Button *,void *)84 static void cb_btnBEACON(Fl_Light_Button*, void*) {
85   arqBEACON();
86 }
87 
88 Fl_Input2 *txtBeaconing=(Fl_Input2 *)0;
89 
90 Fl_Box *indCONNECT=(Fl_Box *)0;
91 
92 Fl_Input2 *txtState=(Fl_Input2 *)0;
93 
94 FTextView *txtARQ=(FTextView *)0;
95 
96 Fl_Input2 *txtStatus=(Fl_Input2 *)0;
97 
98 Fl_Input2 *txtStatus2=(Fl_Input2 *)0;
99 
100 Fl_Progress *prgStatus=(Fl_Progress *)0;
101 
102 Fl_Button *btnClearText=(Fl_Button *)0;
103 
cb_btnClearText(Fl_Button *,void *)104 static void cb_btnClearText(Fl_Button*, void*) {
105   cbClearText();
106 }
107 
108 FTextView *txtRX=(FTextView *)0;
109 
110 Fl_Input2 *txtTX=(Fl_Input2 *)0;
111 
cb_txtTX(Fl_Input2 *,void *)112 static void cb_txtTX(Fl_Input2*, void*) {
113   cbSendTalk();
114 }
115 
116 Fl_Button *btnSendTalk=(Fl_Button *)0;
117 
cb_btnSendTalk(Fl_Button *,void *)118 static void cb_btnSendTalk(Fl_Button*, void*) {
119   cbClearTalk();
120 }
121 
arq_dialog()122 Fl_Double_Window* arq_dialog() {
123   Fl_Double_Window* w;
124   { Fl_Double_Window* o = new Fl_Double_Window(515, 415, "flarq");
125     w = o; if (w) {/* empty */}
126     o->color(FL_LIGHT1);
127     o->callback((Fl_Callback*)cb_flarq);
128     { mnu = new Fl_Menu_Bar(0, 0, 516, 22);
129       mnu->menu(menu_mnu);
130     } // Fl_Menu_Bar* mnu
131     { Fl_Group* o = new Fl_Group(0, 25, 515, 60);
132       { Fl_Group* o = new Fl_Group(0, 25, 515, 31);
133         o->box(FL_ENGRAVED_FRAME);
134         { btnCONNECT = new Fl_Button(5, 28, 90, 24, "Connnect");
135           btnCONNECT->tooltip("Connect to other station");
136           btnCONNECT->color(FL_LIGHT1);
137           btnCONNECT->callback((Fl_Callback*)cb_btnCONNECT);
138         } // Fl_Button* btnCONNECT
139         { txtURCALL = new Fl_Input2(97, 28, 70, 24);
140           txtURCALL->tooltip("Connect-to callsign");
141           txtURCALL->box(FL_DOWN_BOX);
142           txtURCALL->color(FL_BACKGROUND2_COLOR);
143           txtURCALL->selection_color(FL_SELECTION_COLOR);
144           txtURCALL->labeltype(FL_NORMAL_LABEL);
145           txtURCALL->labelfont(0);
146           txtURCALL->labelsize(14);
147           txtURCALL->labelcolor(FL_FOREGROUND_COLOR);
148           txtURCALL->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
149           txtURCALL->when(FL_WHEN_RELEASE);
150         } // Fl_Input2* txtURCALL
151         { btnBEACON = new Fl_Light_Button(168, 28, 79, 24, "Beacon");
152           btnBEACON->tooltip("Beacon ON / OFF");
153           btnBEACON->selection_color((Fl_Color)2);
154           btnBEACON->callback((Fl_Callback*)cb_btnBEACON);
155         } // Fl_Light_Button* btnBEACON
156         { Fl_Input2* o = txtBeaconing = new Fl_Input2(249, 28, 261, 24, "output:");
157           txtBeaconing->box(FL_FLAT_BOX);
158           txtBeaconing->color(FL_LIGHT1);
159           txtBeaconing->selection_color(FL_SELECTION_COLOR);
160           txtBeaconing->labeltype(FL_NORMAL_LABEL);
161           txtBeaconing->labelfont(0);
162           txtBeaconing->labelsize(14);
163           txtBeaconing->labelcolor(FL_FOREGROUND_COLOR);
164           txtBeaconing->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
165           txtBeaconing->when(FL_WHEN_RELEASE);
166           Fl_Group::current()->resizable(txtBeaconing);
167           o->type(FL_NORMAL_OUTPUT);
168         } // Fl_Input2* txtBeaconing
169         o->end();
170       } // Fl_Group* o
171       { Fl_Group* o = new Fl_Group(0, 54, 515, 31);
172         o->box(FL_ENGRAVED_FRAME);
173         { indCONNECT = new Fl_Box(5, 60, 18, 18);
174           indCONNECT->tooltip("ARQ state");
175           indCONNECT->box(FL_DIAMOND_DOWN_BOX);
176           indCONNECT->color(FL_LIGHT1);
177           indCONNECT->labelfont(13);
178           indCONNECT->align(Fl_Align(FL_ALIGN_RIGHT|FL_ALIGN_INSIDE));
179         } // Fl_Box* indCONNECT
180         { Fl_Input2* o = txtState = new Fl_Input2(27, 57, 483, 24, "Disconnecting");
181           txtState->box(FL_FLAT_BOX);
182           txtState->color(FL_LIGHT1);
183           txtState->selection_color(FL_SELECTION_COLOR);
184           txtState->labeltype(FL_NORMAL_LABEL);
185           txtState->labelfont(0);
186           txtState->labelsize(14);
187           txtState->labelcolor(FL_FOREGROUND_COLOR);
188           txtState->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
189           txtState->when(FL_WHEN_RELEASE);
190           Fl_Group::current()->resizable(txtState);
191           o->type(FL_NORMAL_OUTPUT);
192         } // Fl_Input2* txtState
193         o->end();
194       } // Fl_Group* o
195       o->end();
196     } // Fl_Group* o
197     { txtARQ = new FTextView(0, 87, 515, 117);
198       txtARQ->box(FL_DOWN_BOX);
199       txtARQ->color(FL_BACKGROUND2_COLOR);
200       txtARQ->selection_color(FL_SELECTION_COLOR);
201       txtARQ->labeltype(FL_NORMAL_LABEL);
202       txtARQ->labelfont(0);
203       txtARQ->labelsize(14);
204       txtARQ->labelcolor(FL_FOREGROUND_COLOR);
205       txtARQ->textfont(4);
206       txtARQ->align(Fl_Align(FL_ALIGN_TOP));
207       txtARQ->when(FL_WHEN_RELEASE);
208       Fl_Group::current()->resizable(txtARQ);
209     } // FTextView* txtARQ
210     { Fl_Group* o = new Fl_Group(0, 206, 516, 26);
211       o->box(FL_DOWN_BOX);
212       { Fl_Input2* o = txtStatus = new Fl_Input2(5, 208, 220, 22);
213         txtStatus->tooltip("Status messages");
214         txtStatus->box(FL_DOWN_BOX);
215         txtStatus->color(FL_BACKGROUND2_COLOR);
216         txtStatus->selection_color(FL_SELECTION_COLOR);
217         txtStatus->labeltype(FL_NORMAL_LABEL);
218         txtStatus->labelfont(0);
219         txtStatus->labelsize(14);
220         txtStatus->labelcolor(FL_FOREGROUND_COLOR);
221         txtStatus->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
222         txtStatus->when(FL_WHEN_RELEASE);
223         Fl_Group::current()->resizable(txtStatus);
224         o->type(FL_NORMAL_OUTPUT);
225       } // Fl_Input2* txtStatus
226       { Fl_Input2* o = txtStatus2 = new Fl_Input2(225, 208, 170, 22);
227         txtStatus2->box(FL_DOWN_BOX);
228         txtStatus2->color(FL_BACKGROUND2_COLOR);
229         txtStatus2->selection_color(FL_SELECTION_COLOR);
230         txtStatus2->labeltype(FL_NORMAL_LABEL);
231         txtStatus2->labelfont(0);
232         txtStatus2->labelsize(14);
233         txtStatus2->labelcolor(FL_FOREGROUND_COLOR);
234         txtStatus2->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
235         txtStatus2->when(FL_WHEN_RELEASE);
236         o->type(FL_NORMAL_OUTPUT);
237       } // Fl_Input2* txtStatus2
238       { Fl_Progress* o = prgStatus = new Fl_Progress(395, 210, 70, 18);
239         prgStatus->tooltip("Tx/Rx ARQ file transfer progress");
240         prgStatus->selection_color((Fl_Color)70);
241         prgStatus->labelfont(1);
242         o->minimum(0.0);
243         o->maximum(1.0);
244       } // Fl_Progress* prgStatus
245       { btnClearText = new Fl_Button(468, 210, 45, 20, "Clear");
246         btnClearText->callback((Fl_Callback*)cb_btnClearText);
247       } // Fl_Button* btnClearText
248       o->end();
249     } // Fl_Group* o
250     { Fl_Group* o = new Fl_Group(0, 235, 515, 180, "Plain Talk");
251       o->box(FL_ENGRAVED_FRAME);
252       o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
253       { txtRX = new FTextView(5, 255, 505, 130);
254         txtRX->box(FL_DOWN_BOX);
255         txtRX->color(FL_BACKGROUND2_COLOR);
256         txtRX->selection_color(FL_SELECTION_COLOR);
257         txtRX->labeltype(FL_NORMAL_LABEL);
258         txtRX->labelfont(0);
259         txtRX->labelsize(14);
260         txtRX->labelcolor(FL_FOREGROUND_COLOR);
261         txtRX->textfont(4);
262         txtRX->align(Fl_Align(FL_ALIGN_TOP));
263         txtRX->when(FL_WHEN_RELEASE);
264         Fl_Group::current()->resizable(txtRX);
265       } // FTextView* txtRX
266       { Fl_Group* o = new Fl_Group(0, 387, 515, 28);
267         o->box(FL_ENGRAVED_FRAME);
268         { txtTX = new Fl_Input2(5, 390, 450, 22, "input:");
269           txtTX->tooltip("Plain talk text - ENTER to send");
270           txtTX->box(FL_DOWN_BOX);
271           txtTX->color(FL_BACKGROUND2_COLOR);
272           txtTX->selection_color(FL_SELECTION_COLOR);
273           txtTX->labeltype(FL_NORMAL_LABEL);
274           txtTX->labelfont(0);
275           txtTX->labelsize(14);
276           txtTX->labelcolor(FL_FOREGROUND_COLOR);
277           txtTX->callback((Fl_Callback*)cb_txtTX);
278           txtTX->align(Fl_Align(FL_ALIGN_CENTER));
279           txtTX->when(FL_WHEN_ENTER_KEY);
280           Fl_Group::current()->resizable(txtTX);
281           txtTX->value("");
282           txtTX->maximum_size(80);
283         } // Fl_Input2* txtTX
284         { btnSendTalk = new Fl_Button(460, 390, 49, 22, "Clear");
285           btnSendTalk->callback((Fl_Callback*)cb_btnSendTalk);
286         } // Fl_Button* btnSendTalk
287         o->end();
288       } // Fl_Group* o
289       o->end();
290     } // Fl_Group* o
291     o->end();
292   } // Fl_Double_Window* o
293   return w;
294 }
295 
296 Fl_Input2 *txtMyCall=(Fl_Input2 *)0;
297 
cb_txtMyCall(Fl_Input2 * o,void *)298 static void cb_txtMyCall(Fl_Input2* o, void*) {
299   changeMyCall(o->value());
300 }
301 
302 Fl_Input2 *txtBEACONTXT=(Fl_Input2 *)0;
303 
cb_txtBEACONTXT(Fl_Input2 * o,void *)304 static void cb_txtBEACONTXT(Fl_Input2* o, void*) {
305   changeBeaconText(o->value());
306 }
307 
308 Fl_Spinner2 *spnRetries=(Fl_Spinner2 *)0;
309 
cb_spnRetries(Fl_Spinner2 * o,void *)310 static void cb_spnRetries(Fl_Spinner2* o, void*) {
311   iretries = (int)o->value();
312 cbSetConfig();
313 }
314 
315 Fl_Spinner2 *spnWaitTime=(Fl_Spinner2 *)0;
316 
cb_spnWaitTime(Fl_Spinner2 * o,void *)317 static void cb_spnWaitTime(Fl_Spinner2* o, void*) {
318   iwaittime = (int)(1000 * o->value());
319 cbSetConfig();
320 }
321 
322 Fl_Spinner2 *spnTimeout=(Fl_Spinner2 *)0;
323 
cb_spnTimeout(Fl_Spinner2 * o,void *)324 static void cb_spnTimeout(Fl_Spinner2* o, void*) {
325   itimeout = (int)(o->value() * 1000.0);
326 cbSetConfig();
327 }
328 
329 Fl_Spinner2 *spnTxDelay=(Fl_Spinner2 *)0;
330 
cb_spnTxDelay(Fl_Spinner2 * o,void *)331 static void cb_spnTxDelay(Fl_Spinner2* o, void*) {
332   txdelay = (int)o->value();
333 cbSetConfig();
334 }
335 
336 Fl_Spinner2 *spnBcnInterval=(Fl_Spinner2 *)0;
337 
cb_spnBcnInterval(Fl_Spinner2 * o,void *)338 static void cb_spnBcnInterval(Fl_Spinner2* o, void*) {
339   bcnInterval = (int)o->value();
340 cbSetConfig();
341 }
342 
343 Fl_Spinner2 *spnIDtimer=(Fl_Spinner2 *)0;
344 
cb_spnIDtimer(Fl_Spinner2 * o,void *)345 static void cb_spnIDtimer(Fl_Spinner2* o, void*) {
346   idtimer = (int)(o->value());
347 cb_idtimer();
348 }
349 
350 Fl_ComboBox *choiceBlockSize=(Fl_ComboBox *)0;
351 
cb_choiceBlockSize(Fl_ComboBox * o,void *)352 static void cb_choiceBlockSize(Fl_ComboBox* o, void*) {
353   exponent = (int)o->index() + 4;
354 cbSetConfig();
355 }
356 
357 Fl_Button *btnOK=(Fl_Button *)0;
358 
cb_btnOK(Fl_Button *,void *)359 static void cb_btnOK(Fl_Button*, void*) {
360   closeConfig();
361 }
362 
363 Fl_Check_Button *btn_restart_beacon=(Fl_Check_Button *)0;
364 
cb_btn_restart_beacon(Fl_Check_Button * o,void *)365 static void cb_btn_restart_beacon(Fl_Check_Button* o, void*) {
366   restart_beacon = (int)(o->value());
367 cbSetConfig();
368 }
369 
arq_configure()370 Fl_Double_Window* arq_configure() {
371   Fl_Double_Window* w;
372   { Fl_Double_Window* o = new Fl_Double_Window(480, 190, "Configure flarq");
373     w = o; if (w) {/* empty */}
374     { Fl_Input2* o = txtMyCall = new Fl_Input2(98, 13, 150, 22, "My Call:");
375       txtMyCall->box(FL_DOWN_BOX);
376       txtMyCall->color(FL_BACKGROUND2_COLOR);
377       txtMyCall->selection_color(FL_SELECTION_COLOR);
378       txtMyCall->labeltype(FL_NORMAL_LABEL);
379       txtMyCall->labelfont(0);
380       txtMyCall->labelsize(14);
381       txtMyCall->labelcolor(FL_FOREGROUND_COLOR);
382       txtMyCall->callback((Fl_Callback*)cb_txtMyCall);
383       txtMyCall->align(Fl_Align(FL_ALIGN_LEFT));
384       txtMyCall->when(FL_WHEN_RELEASE);
385       o->value(MyCall.c_str());
386     } // Fl_Input2* txtMyCall
387     { Fl_Input2* o = txtBEACONTXT = new Fl_Input2(98, 42, 370, 22, "Beacon Text");
388       txtBEACONTXT->tooltip("Text for the beacon 64 chars max");
389       txtBEACONTXT->box(FL_DOWN_BOX);
390       txtBEACONTXT->color(FL_BACKGROUND2_COLOR);
391       txtBEACONTXT->selection_color(FL_SELECTION_COLOR);
392       txtBEACONTXT->labeltype(FL_NORMAL_LABEL);
393       txtBEACONTXT->labelfont(0);
394       txtBEACONTXT->labelsize(14);
395       txtBEACONTXT->labelcolor(FL_FOREGROUND_COLOR);
396       txtBEACONTXT->callback((Fl_Callback*)cb_txtBEACONTXT);
397       txtBEACONTXT->align(Fl_Align(FL_ALIGN_LEFT));
398       txtBEACONTXT->when(FL_WHEN_RELEASE);
399       Fl_Group::current()->resizable(txtBEACONTXT);
400       o->value(beacontext.c_str());
401     } // Fl_Input2* txtBEACONTXT
402     { Fl_Spinner2* o = spnRetries = new Fl_Spinner2(146, 71, 45, 22, "Retries:");
403       spnRetries->tooltip("# retries before connection declared down");
404       spnRetries->box(FL_NO_BOX);
405       spnRetries->color(FL_BACKGROUND_COLOR);
406       spnRetries->selection_color(FL_BACKGROUND_COLOR);
407       spnRetries->labeltype(FL_NORMAL_LABEL);
408       spnRetries->labelfont(0);
409       spnRetries->labelsize(14);
410       spnRetries->labelcolor(FL_FOREGROUND_COLOR);
411       spnRetries->callback((Fl_Callback*)cb_spnRetries);
412       spnRetries->align(Fl_Align(FL_ALIGN_LEFT));
413       spnRetries->when(FL_WHEN_RELEASE);
414       o->minimum(2);
415       o->maximum(20);
416       o->step(1);
417       o->value(iretries);
418     } // Fl_Spinner2* spnRetries
419     { Fl_Spinner2* o = spnWaitTime = new Fl_Spinner2(121, 98, 70, 22, "Wait time (sec):");
420       spnWaitTime->tooltip("Time between retries");
421       spnWaitTime->box(FL_NO_BOX);
422       spnWaitTime->color(FL_BACKGROUND_COLOR);
423       spnWaitTime->selection_color(FL_BACKGROUND_COLOR);
424       spnWaitTime->labeltype(FL_NORMAL_LABEL);
425       spnWaitTime->labelfont(0);
426       spnWaitTime->labelsize(14);
427       spnWaitTime->labelcolor(FL_FOREGROUND_COLOR);
428       spnWaitTime->callback((Fl_Callback*)cb_spnWaitTime);
429       spnWaitTime->align(Fl_Align(FL_ALIGN_LEFT));
430       spnWaitTime->when(FL_WHEN_RELEASE);
431       o->minimum(10);
432       o->maximum(30);
433       o->step(5);
434       o->value(iwaittime/1000);
435     } // Fl_Spinner2* spnWaitTime
436     { Fl_Spinner2* o = spnTimeout = new Fl_Spinner2(121, 126, 70, 22, "Timeout (sec):");
437       spnTimeout->tooltip("Time out for dead connection");
438       spnTimeout->box(FL_NO_BOX);
439       spnTimeout->color(FL_BACKGROUND_COLOR);
440       spnTimeout->selection_color(FL_BACKGROUND_COLOR);
441       spnTimeout->labeltype(FL_NORMAL_LABEL);
442       spnTimeout->labelfont(0);
443       spnTimeout->labelsize(14);
444       spnTimeout->labelcolor(FL_FOREGROUND_COLOR);
445       spnTimeout->callback((Fl_Callback*)cb_spnTimeout);
446       spnTimeout->align(Fl_Align(FL_ALIGN_LEFT));
447       spnTimeout->when(FL_WHEN_RELEASE);
448       o->minimum(30);
449       o->maximum(300);
450       o->step(15);
451       o->value(itimeout / 1000);
452     } // Fl_Spinner2* spnTimeout
453     { Fl_Spinner2* o = spnTxDelay = new Fl_Spinner2(317, 126, 70, 22, "Tx delay (msec):");
454       spnTxDelay->tooltip("delay from Rx to Tx");
455       spnTxDelay->box(FL_NO_BOX);
456       spnTxDelay->color(FL_BACKGROUND_COLOR);
457       spnTxDelay->selection_color(FL_BACKGROUND_COLOR);
458       spnTxDelay->labeltype(FL_NORMAL_LABEL);
459       spnTxDelay->labelfont(0);
460       spnTxDelay->labelsize(14);
461       spnTxDelay->labelcolor(FL_FOREGROUND_COLOR);
462       spnTxDelay->callback((Fl_Callback*)cb_spnTxDelay);
463       spnTxDelay->align(Fl_Align(FL_ALIGN_LEFT));
464       spnTxDelay->when(FL_WHEN_RELEASE);
465       o->minimum(200);
466       o->maximum(2000);
467       o->step(100);
468       o->value(txdelay);
469     } // Fl_Spinner2* spnTxDelay
470     { Fl_Spinner2* o = spnBcnInterval = new Fl_Spinner2(398, 71, 70, 22, "Beacon interval (sec)");
471       spnBcnInterval->tooltip("Time between beacon transmissions");
472       spnBcnInterval->box(FL_NO_BOX);
473       spnBcnInterval->color(FL_BACKGROUND_COLOR);
474       spnBcnInterval->selection_color(FL_BACKGROUND_COLOR);
475       spnBcnInterval->labeltype(FL_NORMAL_LABEL);
476       spnBcnInterval->labelfont(0);
477       spnBcnInterval->labelsize(14);
478       spnBcnInterval->labelcolor(FL_FOREGROUND_COLOR);
479       spnBcnInterval->value(120);
480       spnBcnInterval->callback((Fl_Callback*)cb_spnBcnInterval);
481       spnBcnInterval->align(Fl_Align(FL_ALIGN_LEFT));
482       spnBcnInterval->when(FL_WHEN_RELEASE);
483       o->minimum(60); o->maximum(3600);
484       o->step(30);
485       o->value(bcnInterval);
486     } // Fl_Spinner2* spnBcnInterval
487     { Fl_Spinner2* o = spnIDtimer = new Fl_Spinner2(121, 155, 70, 22, "ID timer (min):");
488       spnIDtimer->tooltip("ID timer\\n0 = disable");
489       spnIDtimer->box(FL_NO_BOX);
490       spnIDtimer->color(FL_BACKGROUND_COLOR);
491       spnIDtimer->selection_color(FL_BACKGROUND_COLOR);
492       spnIDtimer->labeltype(FL_NORMAL_LABEL);
493       spnIDtimer->labelfont(0);
494       spnIDtimer->labelsize(14);
495       spnIDtimer->labelcolor(FL_FOREGROUND_COLOR);
496       spnIDtimer->minimum(0);
497       spnIDtimer->maximum(10);
498       spnIDtimer->value(10);
499       spnIDtimer->callback((Fl_Callback*)cb_spnIDtimer);
500       spnIDtimer->align(Fl_Align(FL_ALIGN_LEFT));
501       spnIDtimer->when(FL_WHEN_RELEASE);
502       o->minimum(0);
503       o->maximum(10);
504       o->step(1);
505       o->value(idtimer);
506     } // Fl_Spinner2* spnIDtimer
507     { choiceBlockSize = new Fl_ComboBox(314, 155, 72, 22, "Block Size:");
508       choiceBlockSize->box(FL_DOWN_BOX);
509       choiceBlockSize->color(FL_BACKGROUND2_COLOR);
510       choiceBlockSize->selection_color(FL_BACKGROUND_COLOR);
511       choiceBlockSize->labeltype(FL_NORMAL_LABEL);
512       choiceBlockSize->labelfont(0);
513       choiceBlockSize->labelsize(14);
514       choiceBlockSize->labelcolor(FL_FOREGROUND_COLOR);
515       choiceBlockSize->callback((Fl_Callback*)cb_choiceBlockSize);
516       choiceBlockSize->align(Fl_Align(FL_ALIGN_LEFT));
517       choiceBlockSize->when(FL_WHEN_RELEASE);
518       choiceBlockSize->end();
519     } // Fl_ComboBox* choiceBlockSize
520     { btnOK = new Fl_Button(406, 154, 62, 24, "Ok");
521       btnOK->callback((Fl_Callback*)cb_btnOK);
522     } // Fl_Button* btnOK
523     { Fl_Check_Button* o = btn_restart_beacon = new Fl_Check_Button(448, 101, 20, 20, "Restart Beacon");
524       btn_restart_beacon->tooltip("Restart beacon after disconnect");
525       btn_restart_beacon->down_box(FL_DOWN_BOX);
526       btn_restart_beacon->callback((Fl_Callback*)cb_btn_restart_beacon);
527       btn_restart_beacon->align(Fl_Align(FL_ALIGN_LEFT));
528       o->value(restart_beacon);
529     } // Fl_Check_Button* btn_restart_beacon
530     o->end();
531   } // Fl_Double_Window* o
532   return w;
533 }
534 
535 Table *tblOutgoing=(Table *)0;
536 
537 Fl_Button *send_Cancel=(Fl_Button *)0;
538 
cb_send_Cancel(Fl_Button *,void *)539 static void cb_send_Cancel(Fl_Button*, void*) {
540   sendCancel();
541 }
542 
543 Fl_Return_Button *send_OK=(Fl_Return_Button *)0;
544 
cb_send_OK(Fl_Return_Button *,void *)545 static void cb_send_OK(Fl_Return_Button*, void*) {
546   sendOK();
547 }
548 
arq_SendSelect()549 Fl_Double_Window* arq_SendSelect() {
550   Fl_Double_Window* w;
551   { Fl_Double_Window* o = new Fl_Double_Window(500, 170, "Select Email");
552     w = o; if (w) {/* empty */}
553     { tblOutgoing = new Table(0, 3, 500, 140);
554       tblOutgoing->box(FL_DOWN_BOX);
555       tblOutgoing->color(FL_BACKGROUND2_COLOR);
556       tblOutgoing->selection_color((Fl_Color)246);
557       tblOutgoing->labeltype(FL_NORMAL_LABEL);
558       tblOutgoing->labelfont(0);
559       tblOutgoing->labelsize(14);
560       tblOutgoing->labelcolor(FL_FOREGROUND_COLOR);
561       tblOutgoing->align(Fl_Align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE));
562       tblOutgoing->when(FL_WHEN_RELEASE);
563     } // Table* tblOutgoing
564     { send_Cancel = new Fl_Button(335, 145, 70, 20, "Cancel");
565       send_Cancel->callback((Fl_Callback*)cb_send_Cancel);
566     } // Fl_Button* send_Cancel
567     { send_OK = new Fl_Return_Button(420, 145, 72, 20, "OK");
568       send_OK->callback((Fl_Callback*)cb_send_OK);
569     } // Fl_Return_Button* send_OK
570     o->set_modal();
571     o->end();
572     o->resizable(o);
573   } // Fl_Double_Window* o
574   return w;
575 }
576 
577 Fl_Input2 *inpMailFrom=(Fl_Input2 *)0;
578 
579 Fl_Input2 *inpMailTo=(Fl_Input2 *)0;
580 
581 Fl_Input2 *inpMailSubj=(Fl_Input2 *)0;
582 
583 F_Edit *txtMailText=(F_Edit *)0;
584 
585 Fl_Button *btnOpenComposedMail=(Fl_Button *)0;
586 
cb_btnOpenComposedMail(Fl_Button *,void *)587 static void cb_btnOpenComposedMail(Fl_Button*, void*) {
588   cb_OpenComposeMail();
589 }
590 
591 Fl_Button *btnClearComposer=(Fl_Button *)0;
592 
cb_btnClearComposer(Fl_Button *,void *)593 static void cb_btnClearComposer(Fl_Button*, void*) {
594   cb_ClearComposer();
595 }
596 
597 Fl_Button *btnUseTemplate=(Fl_Button *)0;
598 
cb_btnUseTemplate(Fl_Button *,void *)599 static void cb_btnUseTemplate(Fl_Button*, void*) {
600   cb_UseTemplate();
601 }
602 
603 Fl_Button *btnCancelComposedMail=(Fl_Button *)0;
604 
cb_btnCancelComposedMail(Fl_Button *,void *)605 static void cb_btnCancelComposedMail(Fl_Button*, void*) {
606   cb_CancelComposeMail();
607 }
608 
609 Fl_Button *btnSaveComposedMail=(Fl_Button *)0;
610 
cb_btnSaveComposedMail(Fl_Button *,void *)611 static void cb_btnSaveComposedMail(Fl_Button*, void*) {
612   cb_SaveComposeMail();
613 }
614 
arq_composer()615 Fl_Double_Window* arq_composer() {
616   Fl_Double_Window* w;
617   { Fl_Double_Window* o = new Fl_Double_Window(515, 300, "Flarq Mail Composer");
618     w = o; if (w) {/* empty */}
619     { inpMailFrom = new Fl_Input2(47, 5, 460, 24, "From");
620       inpMailFrom->box(FL_DOWN_BOX);
621       inpMailFrom->color(FL_BACKGROUND2_COLOR);
622       inpMailFrom->selection_color(FL_SELECTION_COLOR);
623       inpMailFrom->labeltype(FL_NORMAL_LABEL);
624       inpMailFrom->labelfont(0);
625       inpMailFrom->labelsize(14);
626       inpMailFrom->labelcolor(FL_FOREGROUND_COLOR);
627       inpMailFrom->align(Fl_Align(FL_ALIGN_LEFT));
628       inpMailFrom->when(FL_WHEN_RELEASE);
629     } // Fl_Input2* inpMailFrom
630     { inpMailTo = new Fl_Input2(48, 32, 460, 24, "To");
631       inpMailTo->box(FL_DOWN_BOX);
632       inpMailTo->color(FL_BACKGROUND2_COLOR);
633       inpMailTo->selection_color(FL_SELECTION_COLOR);
634       inpMailTo->labeltype(FL_NORMAL_LABEL);
635       inpMailTo->labelfont(0);
636       inpMailTo->labelsize(14);
637       inpMailTo->labelcolor(FL_FOREGROUND_COLOR);
638       inpMailTo->align(Fl_Align(FL_ALIGN_LEFT));
639       inpMailTo->when(FL_WHEN_RELEASE);
640     } // Fl_Input2* inpMailTo
641     { inpMailSubj = new Fl_Input2(48, 59, 460, 24, "Subj");
642       inpMailSubj->box(FL_DOWN_BOX);
643       inpMailSubj->color(FL_BACKGROUND2_COLOR);
644       inpMailSubj->selection_color(FL_SELECTION_COLOR);
645       inpMailSubj->labeltype(FL_NORMAL_LABEL);
646       inpMailSubj->labelfont(0);
647       inpMailSubj->labelsize(14);
648       inpMailSubj->labelcolor(FL_FOREGROUND_COLOR);
649       inpMailSubj->align(Fl_Align(FL_ALIGN_LEFT));
650       inpMailSubj->when(FL_WHEN_RELEASE);
651     } // Fl_Input2* inpMailSubj
652     { txtMailText = new F_Edit(0, 85, 510, 188);
653       txtMailText->box(FL_DOWN_FRAME);
654       txtMailText->color(FL_BACKGROUND2_COLOR);
655       txtMailText->selection_color(FL_SELECTION_COLOR);
656       txtMailText->labeltype(FL_NORMAL_LABEL);
657       txtMailText->labelfont(0);
658       txtMailText->labelsize(14);
659       txtMailText->labelcolor(FL_FOREGROUND_COLOR);
660       txtMailText->textfont(4);
661       txtMailText->align(Fl_Align(FL_ALIGN_TOP));
662       txtMailText->when(FL_WHEN_RELEASE);
663       Fl_Group::current()->resizable(txtMailText);
664     } // F_Edit* txtMailText
665     { Fl_Group* o = new Fl_Group(0, 274, 515, 28);
666       { btnOpenComposedMail = new Fl_Button(4, 278, 70, 20, "Open");
667         btnOpenComposedMail->tooltip("Open existing Composed email");
668         btnOpenComposedMail->callback((Fl_Callback*)cb_btnOpenComposedMail);
669       } // Fl_Button* btnOpenComposedMail
670       { new Fl_Box(75, 278, 5, 20);
671       } // Fl_Box* o
672       { btnClearComposer = new Fl_Button(81, 278, 70, 20, "Clear");
673         btnClearComposer->tooltip("Clear all fields");
674         btnClearComposer->callback((Fl_Callback*)cb_btnClearComposer);
675       } // Fl_Button* btnClearComposer
676       { new Fl_Box(152, 278, 5, 20);
677       } // Fl_Box* o
678       { btnUseTemplate = new Fl_Button(159, 278, 70, 20, "Template");
679         btnUseTemplate->tooltip("Use template file");
680         btnUseTemplate->callback((Fl_Callback*)cb_btnUseTemplate);
681       } // Fl_Button* btnUseTemplate
682       { Fl_Box* o = new Fl_Box(230, 278, 127, 20);
683         Fl_Group::current()->resizable(o);
684       } // Fl_Box* o
685       { btnCancelComposedMail = new Fl_Button(358, 278, 70, 20, "Cancel");
686         btnCancelComposedMail->tooltip("Close Dialog");
687         btnCancelComposedMail->callback((Fl_Callback*)cb_btnCancelComposedMail);
688       } // Fl_Button* btnCancelComposedMail
689       { new Fl_Box(429, 278, 5, 20);
690       } // Fl_Box* o
691       { btnSaveComposedMail = new Fl_Button(436, 278, 70, 20, "Save");
692         btnSaveComposedMail->tooltip("Save this message (shift click Save Template)");
693         btnSaveComposedMail->callback((Fl_Callback*)cb_btnSaveComposedMail);
694       } // Fl_Button* btnSaveComposedMail
695       o->end();
696     } // Fl_Group* o
697     o->end();
698   } // Fl_Double_Window* o
699   return w;
700 }
701