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