1 // generated by Fast Light User Interface Designer (fluid) version 1.0304
2
3 #include "gettext.h"
4 #include "dx_dialog.h"
5 #include "Fl_Text_Buffer_mod.H"
6 #include <FL/Fl_Color_Chooser.H>
7 #include <FL/fl_show_colormap.H>
8 #include "dx_cluster.h"
9 #include "flcluster.h"
10 static Fl_Text_Buffer_mod telnet_txt_buffer;
11 static Fl_Text_Buffer_mod telnet_view_buffer;
12
cbDXC_FontBrowser(Fl_Widget *,void *)13 static void cbDXC_FontBrowser(Fl_Widget*, void*) {
14 Fl_Font font = font_browser->fontNumber();
15 int size = font_browser->fontSize();
16 Fl_Color color = font_browser->fontColor();
17
18 progStatus.DXC_textcolor = color;
19 progStatus.DXC_textfont = font;
20 progStatus.DXC_textsize = size;
21
22 DXC_display->textcolor(color);
23 DXC_display->textfont(font);
24 DXC_display->textsize(size);
25 DXC_display->redraw();
26
27 reports_header->redraw();
28
29 brws_dx_cluster->redraw();
30
31 font_browser->hide();
32
33 dxc_lines();
34 }
35
cbDX_FontBrowser(Fl_Widget *,void *)36 static void cbDX_FontBrowser(Fl_Widget*, void*) {
37 Fl_Font font = font_browser->fontNumber();
38 int size = font_browser->fontSize();
39 Fl_Color color = font_browser->fontColor();
40
41 progStatus.DXfontcolor = color;
42 progStatus.DXfontnbr = font;
43 progStatus.DXfontsize = size;
44
45 brws_tcpip_stream->setFont(font);
46 brws_tcpip_stream->setFontSize(size);
47 brws_tcpip_stream->setFontColor(color, FTextBase::RECV);
48 brws_tcpip_stream->redraw();
49
50 ed_telnet_cmds->setFont(font);
51 ed_telnet_cmds->setFontSize(size);
52 ed_telnet_cmds->setFontColor(color);
53 ed_telnet_cmds->redraw();
54
55 StreamText->textcolor(color);
56 StreamText->textfont(font);
57 StreamText->textsize(size);
58 StreamText->redraw();
59
60 brws_dxc_help->color(fl_rgb_color(
61 progStatus.DX_Color_R,
62 progStatus.DX_Color_G,
63 progStatus.DX_Color_B));
64 brws_dxc_help->setFont(font);
65 brws_dxc_help->setFontSize(size);
66 brws_dxc_help->setFontColor(color, FTextBase::RECV);
67 brws_dxc_help->redraw();
68
69 font_browser->hide();
70
71 dxcluster_hosts_load();
72 }
73
choose_color(Fl_Color & c)74 static void choose_color(Fl_Color & c) {
75 unsigned char r, g, b;
76 Fl::get_color(c, r, g, b);
77 if (fl_color_chooser("Font color", r, g, b))
78 c = fl_rgb_color(r, g, b);
79 }
80
cb_mnuExit(Fl_Menu_ *,void *)81 static void cb_mnuExit(Fl_Menu_*, void*) {
82 cb_Exit();
83 }
84
cb_mnu_help(Fl_Menu_ *,void *)85 static void cb_mnu_help(Fl_Menu_*, void*) {
86 show_help();
87 }
88
89 unsigned char menu__i18n_done = 0;
90 Fl_Menu_Item menu_[] = {
91 {"File", 0, 0, 0, 64, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
92 {"E&xit", 0, (Fl_Callback*)cb_mnuExit, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
93 {0,0,0,0,0,0,0,0,0},
94 {"Help", 0, (Fl_Callback*)cb_mnu_help, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
95 {0,0,0,0,0,0,0,0,0}
96 };
97
98 Fl_Group *btn_select_host=(Fl_Group *)0;
99
100 Fl_Input2 *inp_dxcc_host_url=(Fl_Input2 *)0;
101
cb_inp_dxcc_host_url(Fl_Input2 * o,void *)102 static void cb_inp_dxcc_host_url(Fl_Input2* o, void*) {
103 progStatus.dxcc_host_url=o->value();
104 progStatus.changed = true;
105 }
106
107 Fl_Button *btn_show_host_tab=(Fl_Button *)0;
108
cb_btn_show_host_tab(Fl_Button *,void *)109 static void cb_btn_show_host_tab(Fl_Button*, void*) {
110 cluster_tabs->value(tabDXclusterConfig);
111 cluster_tabs->redraw();
112 }
113
114 Fl_Input2 *inp_dccc_host_port=(Fl_Input2 *)0;
115
cb_inp_dccc_host_port(Fl_Input2 * o,void *)116 static void cb_inp_dccc_host_port(Fl_Input2* o, void*) {
117 progStatus.dxcc_host_port=o->value();
118 progStatus.changed = true;
119 }
120
121 Fl_Input2 *inp_dccc_login=(Fl_Input2 *)0;
122
cb_inp_dccc_login(Fl_Input2 * o,void *)123 static void cb_inp_dccc_login(Fl_Input2* o, void*) {
124 progStatus.dxcc_login=o->value();
125 progStatus.changed = true;
126 }
127
128 Fl_Input2 *inp_dxcc_password=(Fl_Input2 *)0;
129
cb_inp_dxcc_password(Fl_Input2 * o,void *)130 static void cb_inp_dxcc_password(Fl_Input2* o, void*) {
131 progStatus.dxcc_password = o->value();
132 }
133
134 Fl_Button *btnDXCLUSTERpasswordShow=(Fl_Button *)0;
135
cb_btnDXCLUSTERpasswordShow(Fl_Button *,void *)136 static void cb_btnDXCLUSTERpasswordShow(Fl_Button*, void*) {
137 inp_dxcc_password->type(inp_dxcc_password->type() ^ FL_SECRET_INPUT);
138 inp_dxcc_password->redraw();
139 }
140
141 Fl_Check_Button *btn_dxcc_connect=(Fl_Check_Button *)0;
142
cb_btn_dxcc_connect(Fl_Check_Button * o,void *)143 static void cb_btn_dxcc_connect(Fl_Check_Button* o, void*) {
144 progStatus.cluster_connected=o->value();
145 DXcluster_connect(o->value());
146 }
147
148 Fl_Box *lbl_dxc_connected=(Fl_Box *)0;
149
150 Fl_Check_Button *btn_dxc_auto_connect=(Fl_Check_Button *)0;
151
cb_btn_dxc_auto_connect(Fl_Check_Button * o,void *)152 static void cb_btn_dxc_auto_connect(Fl_Check_Button* o, void*) {
153 progStatus.dxc_auto_connect = o->value();
154 progStatus.changed = true;
155 }
156
157 Fl_Tabs *cluster_tabs=(Fl_Tabs *)0;
158
159 Fl_Group *tabDXclusterTelNetStream=(Fl_Group *)0;
160
161 Fl_Group *gp_resize_telnet=(Fl_Group *)0;
162
163 FTextView *brws_tcpip_stream=(FTextView *)0;
164
165 Fl_Button *dxc_macro_1=(Fl_Button *)0;
166
167 Fl_Button *dxc_macro_2=(Fl_Button *)0;
168
169 Fl_Button *dxc_macro_3=(Fl_Button *)0;
170
171 Fl_Button *dxc_macro_4=(Fl_Button *)0;
172
173 Fl_Button *dxc_macro_5=(Fl_Button *)0;
174
175 Fl_Button *dxc_macro_6=(Fl_Button *)0;
176
177 Fl_Button *dxc_macro_7=(Fl_Button *)0;
178
179 Fl_Button *dxc_macro_8=(Fl_Button *)0;
180
181 Fl_Group *gp_spot_cmds=(Fl_Group *)0;
182
183 Fl_Input2 *inp_dxcluster_cmd=(Fl_Input2 *)0;
184
cb_inp_dxcluster_cmd(Fl_Input2 *,void *)185 static void cb_inp_dxcluster_cmd(Fl_Input2*, void*) {
186 DXcluster_submit();
187 }
188
189 Fl_Button *btn_cluster_spot=(Fl_Button *)0;
190
cb_btn_cluster_spot(Fl_Button *,void *)191 static void cb_btn_cluster_spot(Fl_Button*, void*) {
192 send_DXcluster_spot();
193 }
194
195 Fl_Button *btn_cluster_submit=(Fl_Button *)0;
196
cb_btn_cluster_submit(Fl_Button *,void *)197 static void cb_btn_cluster_submit(Fl_Button*, void*) {
198 DXcluster_submit();
199 }
200
201 Fl_Group *tabDXclusterReports=(Fl_Group *)0;
202
203 Fl_Browser *reports_header=(Fl_Browser *)0;
204
205 Fl_Browser *brws_dx_cluster=(Fl_Browser *)0;
206
cb_brws_dx_cluster(Fl_Browser *,void *)207 static void cb_brws_dx_cluster(Fl_Browser*, void*) {
208 DXcluster_select();
209 }
210
211 Fl_Button *btn_dxc_cluster_clear=(Fl_Button *)0;
212
cb_btn_dxc_cluster_clear(Fl_Button *,void *)213 static void cb_btn_dxc_cluster_clear(Fl_Button*, void*) {
214 brws_dx_cluster->clear();
215 }
216
217 Fl_Check_Button *brws_order=(Fl_Check_Button *)0;
218
cb_brws_order(Fl_Check_Button * o,void *)219 static void cb_brws_order(Fl_Check_Button* o, void*) {
220 progStatus.dxc_topline = o->value();
221 dxc_lines();
222 progStatus.changed=true;
223 }
224
225 Fl_Button *btn_cluster_spot2=(Fl_Button *)0;
226
cb_btn_cluster_spot2(Fl_Button *,void *)227 static void cb_btn_cluster_spot2(Fl_Button*, void*) {
228 send_DXcluster_spot();
229 }
230
231 Fl_Output *txtTOD=(Fl_Output *)0;
232
233 Fl_Box *box_keepalive=(Fl_Box *)0;
234
235 Fl_Button *btn_dxc_cluster_align=(Fl_Button *)0;
236
cb_btn_dxc_cluster_align(Fl_Button *,void *)237 static void cb_btn_dxc_cluster_align(Fl_Button*, void*) {
238 //dxc_lines();
239 dxc_column_widths();
240 }
241
242 Fl_Group *tabDXclusterConfig=(Fl_Group *)0;
243
244 Fl_Group *cc_resize_1=(Fl_Group *)0;
245
246 Fl_Browser *brws_dxcluster_hosts=(Fl_Browser *)0;
247
248 Fl_Button *btn_dxcluster_hosts_select=(Fl_Button *)0;
249
250 Fl_Button *btn_dxcluster_hosts_add=(Fl_Button *)0;
251
252 Fl_Button *btn_dxcluster_hosts_delete=(Fl_Button *)0;
253
254 Fl_Button *btn_dxcluster_servers=(Fl_Button *)0;
255
256 Fl_Group *gp_resize_dummy1=(Fl_Group *)0;
257
258 FTextEdit *ed_telnet_cmds=(FTextEdit *)0;
259
260 Fl_Button *btn_dxcluster_hosts_load_setup=(Fl_Button *)0;
261
262 Fl_Button *btn_dxcluster_hosts_save_setup=(Fl_Button *)0;
263
264 Fl_Button *btn_dxcluster_hosts_send_setup=(Fl_Button *)0;
265
266 Fl_Group *gp_resize_dummy2=(Fl_Group *)0;
267
268 Fl_Check_Button *btn_spot_when_logged=(Fl_Check_Button *)0;
269
cb_btn_spot_when_logged(Fl_Check_Button * o,void *)270 static void cb_btn_spot_when_logged(Fl_Check_Button* o, void*) {
271 progStatus.spot_when_logged = o->value();
272 progStatus.changed = true;
273 }
274
275 Fl_Check_Button *btn_dxc_hertz=(Fl_Check_Button *)0;
276
cb_btn_dxc_hertz(Fl_Check_Button * o,void *)277 static void cb_btn_dxc_hertz(Fl_Check_Button* o, void*) {
278 progStatus.dxc_hertz = o->value();
279 progStatus.changed = true;
280 }
281
282 Fl_Input *mlabel_1=(Fl_Input *)0;
283
cb_mlabel_1(Fl_Input * o,void *)284 static void cb_mlabel_1(Fl_Input* o, void*) {
285 progStatus.dxcm_label_1=o->value();
286 dxc_macro_1->label(progStatus.dxcm_label_1.c_str());
287 progStatus.changed=true;
288 }
289
290 Fl_Input2 *mtext_1=(Fl_Input2 *)0;
291
cb_mtext_1(Fl_Input2 * o,void *)292 static void cb_mtext_1(Fl_Input2* o, void*) {
293 progStatus.dxcm_text_1=o->value();
294 progStatus.changed=true;
295 }
296
297 Fl_Input *mlabel_2=(Fl_Input *)0;
298
cb_mlabel_2(Fl_Input * o,void *)299 static void cb_mlabel_2(Fl_Input* o, void*) {
300 progStatus.dxcm_label_2=o->value();
301 dxc_macro_2->label(progStatus.dxcm_label_2.c_str());
302 progStatus.changed=true;
303 }
304
305 Fl_Input2 *mtext_2=(Fl_Input2 *)0;
306
cb_mtext_2(Fl_Input2 * o,void *)307 static void cb_mtext_2(Fl_Input2* o, void*) {
308 progStatus.dxcm_text_2=o->value();
309 progStatus.changed=true;
310 }
311
312 Fl_Input *mlabel_3=(Fl_Input *)0;
313
cb_mlabel_3(Fl_Input * o,void *)314 static void cb_mlabel_3(Fl_Input* o, void*) {
315 progStatus.dxcm_label_3=o->value();
316 dxc_macro_3->label(progStatus.dxcm_label_3.c_str());
317 progStatus.changed=true;
318 }
319
320 Fl_Input2 *mtext_3=(Fl_Input2 *)0;
321
cb_mtext_3(Fl_Input2 * o,void *)322 static void cb_mtext_3(Fl_Input2* o, void*) {
323 progStatus.dxcm_text_3=o->value();
324 progStatus.changed=true;
325 }
326
327 Fl_Input *mlabel_4=(Fl_Input *)0;
328
cb_mlabel_4(Fl_Input * o,void *)329 static void cb_mlabel_4(Fl_Input* o, void*) {
330 progStatus.dxcm_label_4=o->value();
331 dxc_macro_4->label(progStatus.dxcm_label_4.c_str());
332 progStatus.changed=true;
333 }
334
335 Fl_Input2 *mtext_4=(Fl_Input2 *)0;
336
cb_mtext_4(Fl_Input2 * o,void *)337 static void cb_mtext_4(Fl_Input2* o, void*) {
338 progStatus.dxcm_text_4=o->value();
339 progStatus.changed=true;
340 }
341
342 Fl_Input *mlabel_5=(Fl_Input *)0;
343
cb_mlabel_5(Fl_Input * o,void *)344 static void cb_mlabel_5(Fl_Input* o, void*) {
345 progStatus.dxcm_label_5=o->value();
346 dxc_macro_5->label(progStatus.dxcm_label_5.c_str());
347 progStatus.changed=true;
348 }
349
350 Fl_Input2 *mtext_5=(Fl_Input2 *)0;
351
cb_mtext_5(Fl_Input2 * o,void *)352 static void cb_mtext_5(Fl_Input2* o, void*) {
353 progStatus.dxcm_text_5=o->value();
354 progStatus.changed=true;
355 }
356
357 Fl_Input *mlabel_6=(Fl_Input *)0;
358
cb_mlabel_6(Fl_Input * o,void *)359 static void cb_mlabel_6(Fl_Input* o, void*) {
360 progStatus.dxcm_label_6=o->value();
361 dxc_macro_6->label(progStatus.dxcm_label_6.c_str());
362 progStatus.changed=true;
363 }
364
365 Fl_Input2 *mtext_6=(Fl_Input2 *)0;
366
cb_mtext_6(Fl_Input2 * o,void *)367 static void cb_mtext_6(Fl_Input2* o, void*) {
368 progStatus.dxcm_text_6=o->value();
369 progStatus.changed=true;
370 }
371
372 Fl_Input *mlabel_7=(Fl_Input *)0;
373
cb_mlabel_7(Fl_Input * o,void *)374 static void cb_mlabel_7(Fl_Input* o, void*) {
375 progStatus.dxcm_label_7=o->value();
376 dxc_macro_7->label(progStatus.dxcm_label_7.c_str());
377 progStatus.changed=true;
378 }
379
380 Fl_Input2 *mtext_7=(Fl_Input2 *)0;
381
cb_mtext_7(Fl_Input2 * o,void *)382 static void cb_mtext_7(Fl_Input2* o, void*) {
383 progStatus.dxcm_text_7=o->value();
384 progStatus.changed=true;
385 }
386
387 Fl_Input *mlabel_8=(Fl_Input *)0;
388
cb_mlabel_8(Fl_Input * o,void *)389 static void cb_mlabel_8(Fl_Input* o, void*) {
390 progStatus.dxcm_label_8=o->value();
391 dxc_macro_8->label(progStatus.dxcm_label_8.c_str());
392 progStatus.changed=true;
393 }
394
395 Fl_Input2 *mtext_8=(Fl_Input2 *)0;
396
cb_mtext_8(Fl_Input2 * o,void *)397 static void cb_mtext_8(Fl_Input2* o, void*) {
398 progStatus.dxcm_text_8=o->value();
399 progStatus.changed=true;
400 }
401
402 Fl_Button *btn_dxcluster_ar_help=(Fl_Button *)0;
403
404 Fl_Button *btn_dxcluster_cc_help=(Fl_Button *)0;
405
406 Fl_Button *btn_dxcluster_dx_help=(Fl_Button *)0;
407
408 Fl_Group *tabIOconfig=(Fl_Group *)0;
409
410 Fl_Check_Button *btn_connect_to_fldigi=(Fl_Check_Button *)0;
411
cb_btn_connect_to_fldigi(Fl_Check_Button * o,void *)412 static void cb_btn_connect_to_fldigi(Fl_Check_Button* o, void*) {
413 progStatus.connect_to_fldigi = o->value();
414 }
415
416 Fl_Input *inp_fldigi_address=(Fl_Input *)0;
417
cb_inp_fldigi_address(Fl_Input * o,void *)418 static void cb_inp_fldigi_address(Fl_Input* o, void*) {
419 progStatus.fldigi_address=o->value();
420 }
421
422 Fl_Input *inp_fldigi_port=(Fl_Input *)0;
423
cb_inp_fldigi_port(Fl_Input * o,void *)424 static void cb_inp_fldigi_port(Fl_Input* o, void*) {
425 progStatus.fldigi_port=o->value();
426 }
427
428 Fl_Box *lbl_fldigi_connected=(Fl_Box *)0;
429
430 Fl_Counter *intPSKsweetspot=(Fl_Counter *)0;
431
cb_intPSKsweetspot(Fl_Counter * o,void *)432 static void cb_intPSKsweetspot(Fl_Counter* o, void*) {
433 progStatus.PSKsweetspot=(int)o->value();
434 }
435
436 Fl_Check_Button *btn_PSK_on_USB=(Fl_Check_Button *)0;
437
cb_btn_PSK_on_USB(Fl_Check_Button * o,void *)438 static void cb_btn_PSK_on_USB(Fl_Check_Button* o, void*) {
439 progStatus.USB = o->value();
440 }
441
442 Fl_Counter *intCWsweetspot=(Fl_Counter *)0;
443
cb_intCWsweetspot(Fl_Counter * o,void *)444 static void cb_intCWsweetspot(Fl_Counter* o, void*) {
445 progStatus.CWsweetspot=(int)o->value();
446 }
447
448 Fl_Check_Button *btn_cw_mode_is_USB=(Fl_Check_Button *)0;
449
cb_btn_cw_mode_is_USB(Fl_Check_Button * o,void *)450 static void cb_btn_cw_mode_is_USB(Fl_Check_Button* o, void*) {
451 progStatus.USBCW = o->value();
452 if (progStatus.USBCW) {
453 progStatus.LSBCW = 0;
454 btn_cw_mode_is_LSB->value(0);
455 btn_cw_mode_is_CW->value(0);
456 };
457 }
458
459 Fl_Check_Button *btn_cw_mode_is_LSB=(Fl_Check_Button *)0;
460
cb_btn_cw_mode_is_LSB(Fl_Check_Button * o,void *)461 static void cb_btn_cw_mode_is_LSB(Fl_Check_Button* o, void*) {
462 progStatus.LSBCW = o->value();
463 if (progStatus.LSBCW) {
464 progStatus.USBCW = 0;
465 btn_cw_mode_is_USB->value(0);
466 btn_cw_mode_is_CW->value(0);
467 };
468 }
469
470 Fl_Check_Button *btn_cw_mode_is_CW=(Fl_Check_Button *)0;
471
cb_btn_cw_mode_is_CW(Fl_Check_Button * o,void *)472 static void cb_btn_cw_mode_is_CW(Fl_Check_Button* o, void*) {
473 if (o->value()) {
474 progStatus.USBCW = 0;
475 progStatus.LSBCW = 0;
476 btn_cw_mode_is_USB->value(0);
477 btn_cw_mode_is_LSB->value(0);
478 };
479 }
480
481 Fl_Check_Button *btn_rtty_is_mark=(Fl_Check_Button *)0;
482
cb_btn_rtty_is_mark(Fl_Check_Button * o,void *)483 static void cb_btn_rtty_is_mark(Fl_Check_Button* o, void*) {
484 progStatus.useMARKfreq = o->value();
485 }
486
487 Fl_Counter *intRTTYsweetspot=(Fl_Counter *)0;
488
cb_intRTTYsweetspot(Fl_Counter * o,void *)489 static void cb_intRTTYsweetspot(Fl_Counter* o, void*) {
490 progStatus.RTTYsweetspot=(int)o->value();
491 }
492
493 Fl_Input *serversURL=(Fl_Input *)0;
494
cb_serversURL(Fl_Input * o,void *)495 static void cb_serversURL(Fl_Input* o, void*) {
496 progStatus.serversURL=o->value();
497 }
498
499 Fl_Input *AR_help_URL=(Fl_Input *)0;
500
cb_AR_help_URL(Fl_Input * o,void *)501 static void cb_AR_help_URL(Fl_Input* o, void*) {
502 progStatus.AR_help_URL=o->value();
503 }
504
505 Fl_Input *CC_help_URL=(Fl_Input *)0;
506
cb_CC_help_URL(Fl_Input * o,void *)507 static void cb_CC_help_URL(Fl_Input* o, void*) {
508 progStatus.CC_help_URL=o->value();
509 }
510
511 Fl_Input *DX_help_URL=(Fl_Input *)0;
512
cb_DX_help_URL(Fl_Input * o,void *)513 static void cb_DX_help_URL(Fl_Input* o, void*) {
514 progStatus.DX_help_URL=o->value();
515 }
516
517 Fl_Group *gp_resize_io=(Fl_Group *)0;
518
519 Fl_Group *tabUserConfig=(Fl_Group *)0;
520
521 Fl_Input *inp_myCall=(Fl_Input *)0;
522
cb_inp_myCall(Fl_Input * o,void *)523 static void cb_inp_myCall(Fl_Input* o, void*) {
524 progStatus.myCall = o->value();
525 }
526
527 Fl_Input *inp_myName=(Fl_Input *)0;
528
cb_inp_myName(Fl_Input * o,void *)529 static void cb_inp_myName(Fl_Input* o, void*) {
530 progStatus.myName = o->value();
531 }
532
533 Fl_Input *inp_myQth=(Fl_Input *)0;
534
cb_inp_myQth(Fl_Input * o,void *)535 static void cb_inp_myQth(Fl_Input* o, void*) {
536 progStatus.myQth = o->value();
537 }
538
539 Fl_Input *inp_myLocator=(Fl_Input *)0;
540
cb_inp_myLocator(Fl_Input * o,void *)541 static void cb_inp_myLocator(Fl_Input* o, void*) {
542 progStatus.myLocator = o->value();
543 }
544
545 Fl_Button *btn_send_name=(Fl_Button *)0;
546
cb_btn_send_name(Fl_Button *,void *)547 static void cb_btn_send_name(Fl_Button*, void*) {
548 send_name();
549 }
550
551 Fl_Button *btn_send_qth=(Fl_Button *)0;
552
cb_btn_send_qth(Fl_Button *,void *)553 static void cb_btn_send_qth(Fl_Button*, void*) {
554 send_qth();
555 }
556
557 Fl_Button *btn_send_qra=(Fl_Button *)0;
558
cb_btn_send_qra(Fl_Button *,void *)559 static void cb_btn_send_qra(Fl_Button*, void*) {
560 send_qra();
561 }
562
563 Fl_Output *DXC_display=(Fl_Output *)0;
564
565 Fl_Button *btn_DXC_font=(Fl_Button *)0;
566
cb_btn_DXC_font(Fl_Button *,void *)567 static void cb_btn_DXC_font(Fl_Button*, void*) {
568 font_browser->fontNumber(progStatus.DXC_textfont);
569 font_browser->fontSize(progStatus.DXC_textsize);
570 font_browser->fontColor(progStatus.DXC_textcolor);
571 font_browser->fontFilter(Font_Browser::FIXED_WIDTH);
572 font_browser->callback(cbDXC_FontBrowser);
573 font_browser->show();
574 }
575
576 Fl_Button *btnDXCdefault_colors_font=(Fl_Button *)0;
577
cb_btnDXCdefault_colors_font(Fl_Button *,void *)578 static void cb_btnDXCdefault_colors_font(Fl_Button*, void*) {
579 progStatus.DXC_textfont = FL_COURIER;
580 progStatus.DXC_textsize = 14;
581 progStatus.DXC_textcolor = FL_BLACK;
582 progStatus.DXC_even_color = 7;
583 progStatus.DXC_odd_color = 246;
584
585 DXC_display->textsize(progStatus.DXC_textsize);
586 DXC_display->textcolor(progStatus.DXC_textcolor);
587 DXC_display->textfont(progStatus.DXC_textfont);
588
589 DXC_display->redraw();
590 }
591
592 Fl_Button *btn_DXC_even_lines=(Fl_Button *)0;
593
cb_btn_DXC_even_lines(Fl_Button * o,void *)594 static void cb_btn_DXC_even_lines(Fl_Button* o, void*) {
595 progStatus.DXC_even_color = fl_show_colormap((Fl_Color)progStatus.DXC_even_color);
596 o->color(progStatus.DXC_even_color);
597 o->redraw();
598 }
599
600 Fl_Button *btn_DXC_odd_lines=(Fl_Button *)0;
601
cb_btn_DXC_odd_lines(Fl_Button * o,void *)602 static void cb_btn_DXC_odd_lines(Fl_Button* o, void*) {
603 progStatus.DXC_odd_color = fl_show_colormap((Fl_Color)progStatus.DXC_odd_color);
604 o->color(progStatus.DXC_odd_color);
605 o->redraw();
606 }
607
608 Fl_Input *StreamText=(Fl_Input *)0;
609
610 Fl_Button *btnDXcolor=(Fl_Button *)0;
611
cb_btnDXcolor(Fl_Button *,void *)612 static void cb_btnDXcolor(Fl_Button*, void*) {
613 uchar r, g, b;
614 r = progStatus.DX_Color_R;
615 g = progStatus.DX_Color_G;
616 b = progStatus.DX_Color_B;
617
618 if (!fl_color_chooser("DX Color", r, g, b))
619 return;
620
621 progStatus.DX_Color_R = r;
622 progStatus.DX_Color_G = g;
623 progStatus.DX_Color_B = b;
624
625 StreamText->color(fl_rgb_color(r,g,b));
626 StreamText->redraw();
627
628 brws_tcpip_stream->color(
629 StreamText->color(),
630 fl_contrast(progStatus.DXfontcolor, StreamText->color()));
631
632
633 brws_tcpip_stream->redraw();
634
635 brws_dxcluster_hosts->color(fl_rgb_color(
636 progStatus.DX_Color_R,
637 progStatus.DX_Color_G,
638 progStatus.DX_Color_B));
639 brws_dxcluster_hosts->textcolor(progStatus.DXfontcolor);
640 brws_dxcluster_hosts->textfont(progStatus.DXfontnbr);
641 brws_dxcluster_hosts->textsize(progStatus.DXfontsize);
642 brws_dxcluster_hosts->redraw();
643
644 brws_dxc_help->color(fl_rgb_color(r,g,b));
645 brws_dxc_help->setFont(progStatus.DXfontnbr);
646 brws_dxc_help->setFontSize(progStatus.DXfontsize);
647 brws_dxc_help->setFontColor(progStatus.DXfontcolor, FTextBase::RECV);
648 brws_dxc_help->redraw();
649
650 ed_telnet_cmds->color(fl_rgb_color(r,g,b));
651 ed_telnet_cmds->redraw();
652
653 dxcluster_hosts_load();
654 }
655
656 Fl_Button *btnDXfont=(Fl_Button *)0;
657
cb_btnDXfont(Fl_Button *,void *)658 static void cb_btnDXfont(Fl_Button*, void*) {
659 font_browser->fontNumber(progStatus.DXfontnbr);
660
661 font_browser->fontSize(progStatus.DXfontsize);
662
663 font_browser->fontColor(progStatus.DXfontcolor);
664
665 font_browser->fontFilter(Font_Browser::FIXED_WIDTH);
666
667 font_browser->callback(cbDX_FontBrowser);
668
669 brws_tcpip_stream->color(
670 StreamText->color(),
671 fl_contrast(progStatus.DXfontcolor, StreamText->color()));
672
673 font_browser->show();
674 }
675
676 Fl_Button *btnDXalt_color=(Fl_Button *)0;
677
cb_btnDXalt_color(Fl_Button * o,void *)678 static void cb_btnDXalt_color(Fl_Button* o, void*) {
679 choose_color(progStatus.DXalt_color);
680
681 o->labelcolor(progStatus.DXalt_color);
682 o->redraw_label();
683
684 brws_tcpip_stream->setFontColor(progStatus.DXalt_color, FTextBase::XMIT);
685
686 brws_tcpip_stream->redraw();
687 }
688
689 Fl_Button *btnDXdefault_colors_font=(Fl_Button *)0;
690
cb_btnDXdefault_colors_font(Fl_Button *,void *)691 static void cb_btnDXdefault_colors_font(Fl_Button*, void*) {
692 progStatus.DX_Color_R = 255;
693 progStatus.DX_Color_G = 255;
694 progStatus.DX_Color_B = 255;
695
696 progStatus.DXfontnbr = FL_COURIER;
697 progStatus.DXfontsize = 14;
698 progStatus.DXfontcolor = FL_BLACK;
699 progStatus.DXalt_color = fl_rgb_color(200, 0, 0);
700 btnDXalt_color->labelcolor(progStatus.DXalt_color);
701 btnDXalt_color->redraw_label();
702
703 brws_tcpip_stream->color(fl_rgb_color(
704 progStatus.DX_Color_R,
705 progStatus.DX_Color_G,
706 progStatus.DX_Color_B));
707 brws_tcpip_stream->setFont(progStatus.DXfontnbr);
708 brws_tcpip_stream->setFontSize(progStatus.DXfontsize);
709 brws_tcpip_stream->setFontColor(progStatus.DXfontcolor, FTextBase::RECV);
710 brws_tcpip_stream->setFontColor(progStatus.DXalt_color, FTextBase::XMIT);
711 brws_tcpip_stream->redraw();
712
713 ed_telnet_cmds->color(fl_rgb_color(
714 progStatus.DX_Color_R,
715 progStatus.DX_Color_G,
716 progStatus.DX_Color_B));
717 ed_telnet_cmds->setFont(progStatus.DXfontnbr);
718 ed_telnet_cmds->setFontSize(progStatus.DXfontsize);
719 ed_telnet_cmds->setFontColor(progStatus.DXfontcolor);
720 ed_telnet_cmds->redraw();
721
722 brws_dxc_help->color(fl_rgb_color(
723 progStatus.DX_Color_R,
724 progStatus.DX_Color_G,
725 progStatus.DX_Color_B));
726 brws_dxc_help->setFont(progStatus.DXfontnbr);
727 brws_dxc_help->setFontSize(progStatus.DXfontsize);
728 brws_dxc_help->setFontColor(progStatus.DXfontcolor, FTextBase::RECV);
729 brws_dxc_help->redraw();
730
731 StreamText->color(fl_rgb_color(
732 progStatus.DX_Color_R,
733 progStatus.DX_Color_G,
734 progStatus.DX_Color_B));
735 StreamText->textcolor(progStatus.DXfontcolor);
736 StreamText->redraw();
737
738 dxcluster_hosts_load();
739
740 font_browser->hide();
741 }
742
743 Fl_Round_Button *btn_zero_keepalive=(Fl_Round_Button *)0;
744
cb_btn_zero_keepalive(Fl_Round_Button * o,void *)745 static void cb_btn_zero_keepalive(Fl_Round_Button* o, void*) {
746 progStatus.keepalive = 0;
747 o->value(1);
748 btn_one_keepalive->value(0);
749 btn_five_keepalive->value(0);
750 btn_ten_keepalive->value(0);
751 }
752
753 Fl_Round_Button *btn_one_keepalive=(Fl_Round_Button *)0;
754
cb_btn_one_keepalive(Fl_Round_Button * o,void *)755 static void cb_btn_one_keepalive(Fl_Round_Button* o, void*) {
756 progStatus.keepalive = 1;
757 o->value(1);
758 btn_zero_keepalive->value(0);
759 btn_five_keepalive->value(0);
760 btn_ten_keepalive->value(0);
761 }
762
763 Fl_Round_Button *btn_five_keepalive=(Fl_Round_Button *)0;
764
cb_btn_five_keepalive(Fl_Round_Button * o,void *)765 static void cb_btn_five_keepalive(Fl_Round_Button* o, void*) {
766 progStatus.keepalive = 5;
767 o->value(1);
768 btn_zero_keepalive->value(0);
769 btn_one_keepalive->value(0);
770 btn_ten_keepalive->value(0);
771 }
772
773 Fl_Round_Button *btn_ten_keepalive=(Fl_Round_Button *)0;
774
cb_btn_ten_keepalive(Fl_Round_Button * o,void *)775 static void cb_btn_ten_keepalive(Fl_Round_Button* o, void*) {
776 progStatus.keepalive = 10;
777 o->value(1);
778 btn_zero_keepalive->value(0);
779 btn_one_keepalive->value(0);
780 btn_five_keepalive->value(0);
781 }
782
783 Fl_Group *grp_misc=(Fl_Group *)0;
784
785 Fl_Check_Button *btn_tooltips=(Fl_Check_Button *)0;
786
cb_btn_tooltips(Fl_Check_Button * o,void *)787 static void cb_btn_tooltips(Fl_Check_Button* o, void*) {
788 progStatus.tooltips=o->value();
789 Fl_Tooltip::enable(progStatus.tooltips);
790 }
791
792 Fl_Group *grp_resize_uc=(Fl_Group *)0;
793
794 Fl_Group *tabDXclusterHelp=(Fl_Group *)0;
795
796 FTextView *brws_dxc_help=(FTextView *)0;
797
798 Fl_Button *btn_dxc_help_query=(Fl_Button *)0;
799
cb_btn_dxc_help_query(Fl_Button *,void *)800 static void cb_btn_dxc_help_query(Fl_Button*, void*) {
801 dxc_help_query();
802 }
803
804 Fl_Input2 *inp_help_string=(Fl_Input2 *)0;
805
cb_inp_help_string(Fl_Input2 *,void *)806 static void cb_inp_help_string(Fl_Input2*, void*) {
807 dxc_help_query();
808 }
809
810 Fl_Button *btn_dxc_help_clear=(Fl_Button *)0;
811
cb_btn_dxc_help_clear(Fl_Button *,void *)812 static void cb_btn_dxc_help_clear(Fl_Button*, void*) {
813 dxc_help_clear();
814 }
815
dxc_window()816 Fl_Double_Window* dxc_window() {
817 Fl_Double_Window* w;
818 font_browser = new Font_Browser;
819 { Fl_Double_Window* o = new Fl_Double_Window(680, 420, _("DX Cluster Spotting"));
820 w = o; if (w) {/* empty */}
821 { Fl_Menu_Bar* o = new Fl_Menu_Bar(0, 0, 680, 22);
822 if (!menu__i18n_done) {
823 int i=0;
824 for ( ; i<4; i++)
825 if (menu_[i].label())
826 menu_[i].label(_(menu_[i].label()));
827 menu__i18n_done = 1;
828 }
829 o->menu(menu_);
830 } // Fl_Menu_Bar* o
831 { Fl_Group* o = btn_select_host = new Fl_Group(0, 25, 678, 50);
832 btn_select_host->box(FL_ENGRAVED_BOX);
833 { Fl_Input2* o = inp_dxcc_host_url = new Fl_Input2(5, 48, 256, 22, _("DX HOST hostname/IP"));
834 inp_dxcc_host_url->tooltip(_("telnet server URL"));
835 inp_dxcc_host_url->box(FL_DOWN_BOX);
836 inp_dxcc_host_url->color(FL_BACKGROUND2_COLOR);
837 inp_dxcc_host_url->selection_color(FL_SELECTION_COLOR);
838 inp_dxcc_host_url->labeltype(FL_NORMAL_LABEL);
839 inp_dxcc_host_url->labelfont(0);
840 inp_dxcc_host_url->labelsize(14);
841 inp_dxcc_host_url->labelcolor(FL_FOREGROUND_COLOR);
842 inp_dxcc_host_url->callback((Fl_Callback*)cb_inp_dxcc_host_url);
843 inp_dxcc_host_url->align(Fl_Align(FL_ALIGN_TOP_LEFT));
844 inp_dxcc_host_url->when(FL_WHEN_RELEASE);
845 o->value(progStatus.dxcc_host_url.c_str());
846 } // Fl_Input2* inp_dxcc_host_url
847 { btn_show_host_tab = new Fl_Button(262, 48, 20, 22, _("@2>"));
848 btn_show_host_tab->callback((Fl_Callback*)cb_btn_show_host_tab);
849 } // Fl_Button* btn_show_host_tab
850 { Fl_Input2* o = inp_dccc_host_port = new Fl_Input2(284, 48, 50, 22, _("Port"));
851 inp_dccc_host_port->tooltip(_("telnet server port"));
852 inp_dccc_host_port->box(FL_DOWN_BOX);
853 inp_dccc_host_port->color(FL_BACKGROUND2_COLOR);
854 inp_dccc_host_port->selection_color(FL_SELECTION_COLOR);
855 inp_dccc_host_port->labeltype(FL_NORMAL_LABEL);
856 inp_dccc_host_port->labelfont(0);
857 inp_dccc_host_port->labelsize(14);
858 inp_dccc_host_port->labelcolor(FL_FOREGROUND_COLOR);
859 inp_dccc_host_port->callback((Fl_Callback*)cb_inp_dccc_host_port);
860 inp_dccc_host_port->align(Fl_Align(FL_ALIGN_TOP_LEFT));
861 inp_dccc_host_port->when(FL_WHEN_RELEASE);
862 o->value(progStatus.dxcc_host_port.c_str());
863 } // Fl_Input2* inp_dccc_host_port
864 { Fl_Input2* o = inp_dccc_login = new Fl_Input2(335, 48, 80, 22, _("Login as"));
865 inp_dccc_login->tooltip(_("login call sign"));
866 inp_dccc_login->box(FL_DOWN_BOX);
867 inp_dccc_login->color(FL_BACKGROUND2_COLOR);
868 inp_dccc_login->selection_color(FL_SELECTION_COLOR);
869 inp_dccc_login->labeltype(FL_NORMAL_LABEL);
870 inp_dccc_login->labelfont(0);
871 inp_dccc_login->labelsize(14);
872 inp_dccc_login->labelcolor(FL_FOREGROUND_COLOR);
873 inp_dccc_login->callback((Fl_Callback*)cb_inp_dccc_login);
874 inp_dccc_login->align(Fl_Align(FL_ALIGN_TOP_LEFT));
875 inp_dccc_login->when(FL_WHEN_RELEASE);
876 o->value(progStatus.dxcc_login.c_str());
877 } // Fl_Input2* inp_dccc_login
878 { Fl_Input2* o = inp_dxcc_password = new Fl_Input2(419, 48, 80, 22, _("Password"));
879 inp_dxcc_password->tooltip(_("Your login password"));
880 inp_dxcc_password->box(FL_DOWN_BOX);
881 inp_dxcc_password->color(FL_BACKGROUND2_COLOR);
882 inp_dxcc_password->selection_color(FL_SELECTION_COLOR);
883 inp_dxcc_password->labeltype(FL_NORMAL_LABEL);
884 inp_dxcc_password->labelfont(0);
885 inp_dxcc_password->labelsize(14);
886 inp_dxcc_password->labelcolor(FL_FOREGROUND_COLOR);
887 inp_dxcc_password->callback((Fl_Callback*)cb_inp_dxcc_password);
888 inp_dxcc_password->align(Fl_Align(FL_ALIGN_TOP_LEFT));
889 inp_dxcc_password->when(FL_WHEN_RELEASE);
890 o->value(progStatus.dxcc_password.c_str());
891 o->type(FL_SECRET_INPUT);
892 inp_dxcc_password->labelsize(FL_NORMAL_SIZE);
893 } // Fl_Input2* inp_dxcc_password
894 { btnDXCLUSTERpasswordShow = new Fl_Button(502, 48, 22, 22, _("?"));
895 btnDXCLUSTERpasswordShow->tooltip(_("Show password in plain text"));
896 btnDXCLUSTERpasswordShow->callback((Fl_Callback*)cb_btnDXCLUSTERpasswordShow);
897 } // Fl_Button* btnDXCLUSTERpasswordShow
898 { Fl_Check_Button* o = btn_dxcc_connect = new Fl_Check_Button(570, 33, 101, 15, _("Connect"));
899 btn_dxcc_connect->tooltip(_("Connect / Disconnect"));
900 btn_dxcc_connect->down_box(FL_DOWN_BOX);
901 btn_dxcc_connect->callback((Fl_Callback*)cb_btn_dxcc_connect);
902 o->value(progStatus.cluster_connected);
903 } // Fl_Check_Button* btn_dxcc_connect
904 { lbl_dxc_connected = new Fl_Box(539, 40, 20, 20);
905 lbl_dxc_connected->tooltip(_("Connected State"));
906 lbl_dxc_connected->box(FL_DIAMOND_DOWN_BOX);
907 lbl_dxc_connected->color((Fl_Color)55);
908 lbl_dxc_connected->align(Fl_Align(FL_ALIGN_RIGHT));
909 } // Fl_Box* lbl_dxc_connected
910 { Fl_Check_Button* o = btn_dxc_auto_connect = new Fl_Check_Button(570, 54, 101, 15, _("Auto conn\'"));
911 btn_dxc_auto_connect->tooltip(_("Connect to host when starting FLCLUSTER"));
912 btn_dxc_auto_connect->down_box(FL_DOWN_BOX);
913 btn_dxc_auto_connect->callback((Fl_Callback*)cb_btn_dxc_auto_connect);
914 o->value(progStatus.dxc_auto_connect);
915 } // Fl_Check_Button* btn_dxc_auto_connect
916 o->resizable(inp_dxcc_host_url);
917 btn_select_host->end();
918 } // Fl_Group* btn_select_host
919 { Fl_Tabs* o = cluster_tabs = new Fl_Tabs(0, 78, 680, 340);
920 { Fl_Group* o = tabDXclusterTelNetStream = new Fl_Group(0, 100, 680, 314, _("TelNet stream"));
921 { Fl_Group* o = gp_resize_telnet = new Fl_Group(2, 102, 676, 276);
922 gp_resize_telnet->box(FL_ENGRAVED_FRAME);
923 { brws_tcpip_stream = new FTextView(4, 105, 668, 240);
924 brws_tcpip_stream->tooltip(_("Cluster server command strings"));
925 brws_tcpip_stream->box(FL_DOWN_FRAME);
926 brws_tcpip_stream->color(FL_BACKGROUND2_COLOR);
927 brws_tcpip_stream->selection_color(FL_SELECTION_COLOR);
928 brws_tcpip_stream->labeltype(FL_NORMAL_LABEL);
929 brws_tcpip_stream->labelfont(0);
930 brws_tcpip_stream->labelsize(13);
931 brws_tcpip_stream->labelcolor(FL_FOREGROUND_COLOR);
932 brws_tcpip_stream->textfont(13);
933 brws_tcpip_stream->align(Fl_Align(FL_ALIGN_TOP));
934 brws_tcpip_stream->when(FL_WHEN_RELEASE);
935 Fl_Group::current()->resizable(brws_tcpip_stream);
936 } // FTextView* brws_tcpip_stream
937 { Fl_Button* o = dxc_macro_1 = new Fl_Button(4, 351, 80, 22, _("m1"));
938 dxc_macro_1->tooltip(_("DX cluster macro\\nLeft click execute\\nRight click edit"));
939 dxc_macro_1->callback((Fl_Callback*)dxc_click_m1);
940 o->label(progStatus.dxcm_label_1.c_str());
941 } // Fl_Button* dxc_macro_1
942 { Fl_Button* o = dxc_macro_2 = new Fl_Button(88, 351, 80, 22, _("m2"));
943 dxc_macro_2->callback((Fl_Callback*)dxc_click_m2);
944 o->label(progStatus.dxcm_label_2.c_str());
945 } // Fl_Button* dxc_macro_2
946 { Fl_Button* o = dxc_macro_3 = new Fl_Button(172, 351, 80, 22, _("m3"));
947 dxc_macro_3->callback((Fl_Callback*)dxc_click_m3);
948 o->label(progStatus.dxcm_label_3.c_str());
949 } // Fl_Button* dxc_macro_3
950 { Fl_Button* o = dxc_macro_4 = new Fl_Button(256, 351, 80, 22, _("m4"));
951 dxc_macro_4->callback((Fl_Callback*)dxc_click_m4);
952 o->label(progStatus.dxcm_label_4.c_str());
953 } // Fl_Button* dxc_macro_4
954 { Fl_Button* o = dxc_macro_5 = new Fl_Button(340, 351, 80, 22, _("m5"));
955 dxc_macro_5->callback((Fl_Callback*)dxc_click_m5);
956 o->label(progStatus.dxcm_label_5.c_str());
957 } // Fl_Button* dxc_macro_5
958 { Fl_Button* o = dxc_macro_6 = new Fl_Button(424, 351, 80, 22, _("m6"));
959 dxc_macro_6->callback((Fl_Callback*)dxc_click_m6);
960 o->label(progStatus.dxcm_label_6.c_str());
961 } // Fl_Button* dxc_macro_6
962 { Fl_Button* o = dxc_macro_7 = new Fl_Button(508, 351, 80, 22, _("m7"));
963 dxc_macro_7->callback((Fl_Callback*)dxc_click_m7);
964 o->label(progStatus.dxcm_label_7.c_str());
965 } // Fl_Button* dxc_macro_7
966 { Fl_Button* o = dxc_macro_8 = new Fl_Button(592, 351, 80, 22, _("m8"));
967 dxc_macro_8->tooltip(_("DX cluster macro\\nLeft click execute\\nRight click edit"));
968 dxc_macro_8->callback((Fl_Callback*)dxc_click_m8);
969 o->label(progStatus.dxcm_label_8.c_str());
970 } // Fl_Button* dxc_macro_8
971 o->resizable(brws_tcpip_stream);
972 gp_resize_telnet->end();
973 Fl_Group::current()->resizable(gp_resize_telnet);
974 } // Fl_Group* gp_resize_telnet
975 { Fl_Group* o = gp_spot_cmds = new Fl_Group(2, 380, 676, 33);
976 { inp_dxcluster_cmd = new Fl_Input2(40, 386, 480, 22, _("Cmd:"));
977 inp_dxcluster_cmd->tooltip(_("Command string"));
978 inp_dxcluster_cmd->box(FL_DOWN_BOX);
979 inp_dxcluster_cmd->color(FL_BACKGROUND2_COLOR);
980 inp_dxcluster_cmd->selection_color(FL_SELECTION_COLOR);
981 inp_dxcluster_cmd->labeltype(FL_NORMAL_LABEL);
982 inp_dxcluster_cmd->labelfont(0);
983 inp_dxcluster_cmd->labelsize(13);
984 inp_dxcluster_cmd->labelcolor(FL_FOREGROUND_COLOR);
985 inp_dxcluster_cmd->callback((Fl_Callback*)cb_inp_dxcluster_cmd);
986 inp_dxcluster_cmd->align(Fl_Align(FL_ALIGN_LEFT));
987 inp_dxcluster_cmd->when(FL_WHEN_ENTER_KEY);
988 } // Fl_Input2* inp_dxcluster_cmd
989 { btn_cluster_spot = new Fl_Button(524, 386, 70, 22, _("Spot"));
990 btn_cluster_spot->tooltip(_("Send SPOT string to server"));
991 btn_cluster_spot->callback((Fl_Callback*)cb_btn_cluster_spot);
992 } // Fl_Button* btn_cluster_spot
993 { btn_cluster_submit = new Fl_Button(599, 386, 70, 22, _("Submit"));
994 btn_cluster_submit->tooltip(_("Send command to server"));
995 btn_cluster_submit->callback((Fl_Callback*)cb_btn_cluster_submit);
996 } // Fl_Button* btn_cluster_submit
997 o->resizable(inp_dxcluster_cmd);
998 gp_spot_cmds->end();
999 } // Fl_Group* gp_spot_cmds
1000 o->resizable(gp_resize_telnet);
1001 tabDXclusterTelNetStream->end();
1002 } // Fl_Group* tabDXclusterTelNetStream
1003 { Fl_Group* o = tabDXclusterReports = new Fl_Group(0, 100, 680, 314, _("DX Reports"));
1004 tabDXclusterReports->hide();
1005 { reports_header = new Fl_Browser(3, 104, 671, 22);
1006 reports_header->color(FL_LIGHT2);
1007 reports_header->textfont(4);
1008 reports_header->when(FL_WHEN_NEVER);
1009 } // Fl_Browser* reports_header
1010 { brws_dx_cluster = new Fl_Browser(3, 126, 671, 260);
1011 brws_dx_cluster->tooltip(_("Left Click to select SPOT"));
1012 brws_dx_cluster->type(2);
1013 brws_dx_cluster->textfont(4);
1014 brws_dx_cluster->callback((Fl_Callback*)cb_brws_dx_cluster);
1015 brws_dx_cluster->align(Fl_Align(FL_ALIGN_BOTTOM|FL_ALIGN_INSIDE));
1016 Fl_Group::current()->resizable(brws_dx_cluster);
1017 } // Fl_Browser* brws_dx_cluster
1018 { btn_dxc_cluster_clear = new Fl_Button(328, 390, 72, 22, _("Clear"));
1019 btn_dxc_cluster_clear->tooltip(_("Clear parsed data stream"));
1020 btn_dxc_cluster_clear->callback((Fl_Callback*)cb_btn_dxc_cluster_clear);
1021 } // Fl_Button* btn_dxc_cluster_clear
1022 { Fl_Check_Button* o = brws_order = new Fl_Check_Button(31, 393, 186, 15, _("New entries in first line"));
1023 brws_order->down_box(FL_DOWN_BOX);
1024 brws_order->callback((Fl_Callback*)cb_brws_order);
1025 brws_order->when(FL_WHEN_CHANGED);
1026 o->value(progStatus.dxc_topline);
1027 } // Fl_Check_Button* brws_order
1028 { btn_cluster_spot2 = new Fl_Button(585, 390, 70, 22, _("Spot"));
1029 btn_cluster_spot2->tooltip(_("Send SPOT string to server"));
1030 btn_cluster_spot2->callback((Fl_Callback*)cb_btn_cluster_spot2);
1031 } // Fl_Button* btn_cluster_spot2
1032 { txtTOD = new Fl_Output(475, 390, 90, 22);
1033 } // Fl_Output* txtTOD
1034 { box_keepalive = new Fl_Box(450, 392, 18, 18);
1035 box_keepalive->box(FL_DIAMOND_DOWN_BOX);
1036 } // Fl_Box* box_keepalive
1037 { btn_dxc_cluster_align = new Fl_Button(221, 390, 84, 22, _("Align Cols"));
1038 btn_dxc_cluster_align->tooltip(_("Align columns after dialog resize"));
1039 btn_dxc_cluster_align->callback((Fl_Callback*)cb_btn_dxc_cluster_align);
1040 } // Fl_Button* btn_dxc_cluster_align
1041 o->resizable(brws_dx_cluster);
1042 tabDXclusterReports->end();
1043 } // Fl_Group* tabDXclusterReports
1044 { Fl_Group* o = tabDXclusterConfig = new Fl_Group(0, 100, 680, 314, _("Cluster Config"));
1045 tabDXclusterConfig->tooltip(_("Initialization strings for telnet cluster host"));
1046 tabDXclusterConfig->hide();
1047 { cc_resize_1 = new Fl_Group(0, 102, 676, 130);
1048 { Fl_Group* o = new Fl_Group(1, 102, 348, 126);
1049 { Fl_Browser* o = brws_dxcluster_hosts = new Fl_Browser(4, 121, 278, 100, _("Hosts"));
1050 brws_dxcluster_hosts->type(2);
1051 brws_dxcluster_hosts->textfont(4);
1052 brws_dxcluster_hosts->align(Fl_Align(FL_ALIGN_TOP));
1053 Fl_Group::current()->resizable(brws_dxcluster_hosts);
1054 static int widths[]={o->w()*6/10, o->w()*2/10, o->w()*2/10, 0 };
1055 o->column_widths(widths);
1056 o->column_char(':');
1057 dxcluster_hosts_load();
1058 } // Fl_Browser* brws_dxcluster_hosts
1059 { Fl_Group* o = new Fl_Group(285, 118, 60, 108);
1060 { btn_dxcluster_hosts_select = new Fl_Button(288, 120, 54, 22, _("Select"));
1061 btn_dxcluster_hosts_select->tooltip(_("Select highlighted DX cluster host"));
1062 btn_dxcluster_hosts_select->callback((Fl_Callback*)dxcluster_hosts_select);
1063 } // Fl_Button* btn_dxcluster_hosts_select
1064 { btn_dxcluster_hosts_add = new Fl_Button(288, 146, 54, 22, _("Add"));
1065 btn_dxcluster_hosts_add->tooltip(_("Add current DX cluster host"));
1066 btn_dxcluster_hosts_add->callback((Fl_Callback*)dxcluster_hosts_add);
1067 } // Fl_Button* btn_dxcluster_hosts_add
1068 { btn_dxcluster_hosts_delete = new Fl_Button(288, 172, 54, 22, _("Delete"));
1069 btn_dxcluster_hosts_delete->tooltip(_("Delete highlighted DX cluster host"));
1070 btn_dxcluster_hosts_delete->callback((Fl_Callback*)dxcluster_hosts_delete);
1071 } // Fl_Button* btn_dxcluster_hosts_delete
1072 { btn_dxcluster_servers = new Fl_Button(288, 198, 54, 22, _("Srvrs"));
1073 btn_dxcluster_servers->tooltip(_("Server List"));
1074 btn_dxcluster_servers->callback((Fl_Callback*)dxcluster_servers);
1075 } // Fl_Button* btn_dxcluster_servers
1076 { gp_resize_dummy1 = new Fl_Group(288, 222, 54, 4);
1077 gp_resize_dummy1->end();
1078 Fl_Group::current()->resizable(gp_resize_dummy1);
1079 } // Fl_Group* gp_resize_dummy1
1080 o->resizable(gp_resize_dummy1);
1081 o->end();
1082 } // Fl_Group* o
1083 o->resizable(brws_dxcluster_hosts);
1084 o->end();
1085 } // Fl_Group* o
1086 { Fl_Group* o = new Fl_Group(350, 102, 325, 104);
1087 { ed_telnet_cmds = new FTextEdit(354, 121, 248, 80, _("Cluster Server Setup Cmds"));
1088 ed_telnet_cmds->tooltip(_("Cluster server command strings"));
1089 ed_telnet_cmds->box(FL_DOWN_FRAME);
1090 ed_telnet_cmds->color(FL_BACKGROUND2_COLOR);
1091 ed_telnet_cmds->selection_color(FL_SELECTION_COLOR);
1092 ed_telnet_cmds->labeltype(FL_NORMAL_LABEL);
1093 ed_telnet_cmds->labelfont(0);
1094 ed_telnet_cmds->labelsize(14);
1095 ed_telnet_cmds->labelcolor(FL_FOREGROUND_COLOR);
1096 ed_telnet_cmds->textfont(13);
1097 ed_telnet_cmds->align(Fl_Align(FL_ALIGN_TOP));
1098 ed_telnet_cmds->when(FL_WHEN_RELEASE);
1099 Fl_Group::current()->resizable(ed_telnet_cmds);
1100 } // FTextEdit* ed_telnet_cmds
1101 { Fl_Group* o = new Fl_Group(605, 116, 68, 89);
1102 { btn_dxcluster_hosts_load_setup = new Fl_Button(610, 121, 59, 22, _("Load"));
1103 btn_dxcluster_hosts_load_setup->tooltip(_("Load Cluster Setup Commands"));
1104 btn_dxcluster_hosts_load_setup->callback((Fl_Callback*)dxcluster_hosts_load_setup);
1105 } // Fl_Button* btn_dxcluster_hosts_load_setup
1106 { btn_dxcluster_hosts_save_setup = new Fl_Button(610, 150, 59, 22, _("Save"));
1107 btn_dxcluster_hosts_save_setup->tooltip(_("Save Cluster Setup Commands"));
1108 btn_dxcluster_hosts_save_setup->callback((Fl_Callback*)dxcluster_hosts_save_setup);
1109 } // Fl_Button* btn_dxcluster_hosts_save_setup
1110 { btn_dxcluster_hosts_send_setup = new Fl_Button(610, 179, 59, 22, _("Send"));
1111 btn_dxcluster_hosts_send_setup->tooltip(_("Send Commands to Cluster Server"));
1112 btn_dxcluster_hosts_send_setup->callback((Fl_Callback*)dxcluster_hosts_send_setup);
1113 } // Fl_Button* btn_dxcluster_hosts_send_setup
1114 { gp_resize_dummy2 = new Fl_Group(610, 202, 59, 2);
1115 gp_resize_dummy2->end();
1116 Fl_Group::current()->resizable(gp_resize_dummy2);
1117 } // Fl_Group* gp_resize_dummy2
1118 o->resizable(gp_resize_dummy2);
1119 o->end();
1120 } // Fl_Group* o
1121 o->resizable(ed_telnet_cmds);
1122 o->end();
1123 } // Fl_Group* o
1124 { Fl_Check_Button* o = btn_spot_when_logged = new Fl_Check_Button(354, 208, 146, 15, _("Spot when logged"));
1125 btn_spot_when_logged->tooltip(_("Create DX spot when logging contact"));
1126 btn_spot_when_logged->down_box(FL_DOWN_BOX);
1127 btn_spot_when_logged->callback((Fl_Callback*)cb_btn_spot_when_logged);
1128 o->value(progStatus.spot_when_logged);
1129 } // Fl_Check_Button* btn_spot_when_logged
1130 { Fl_Check_Button* o = btn_dxc_hertz = new Fl_Check_Button(512, 208, 146, 15, _("Report [0..99 Hz]"));
1131 btn_dxc_hertz->tooltip(_("Add [0..99] Hz WF value to DX report notes"));
1132 btn_dxc_hertz->down_box(FL_DOWN_BOX);
1133 btn_dxc_hertz->callback((Fl_Callback*)cb_btn_dxc_hertz);
1134 o->value(progStatus.dxc_hertz);
1135 } // Fl_Check_Button* btn_dxc_hertz
1136 cc_resize_1->end();
1137 Fl_Group::current()->resizable(cc_resize_1);
1138 } // Fl_Group* cc_resize_1
1139 { Fl_Group* o = new Fl_Group(0, 238, 676, 174);
1140 o->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE));
1141 { Fl_Group* o = new Fl_Group(1, 238, 307, 170);
1142 { Fl_Input* o = mlabel_1 = new Fl_Input(5, 258, 80, 22, _("label 1"));
1143 mlabel_1->callback((Fl_Callback*)cb_mlabel_1);
1144 mlabel_1->align(Fl_Align(FL_ALIGN_TOP));
1145 o->value(progStatus.dxcm_label_1.c_str());
1146 } // Fl_Input* mlabel_1
1147 { Fl_Input2* o = mtext_1 = new Fl_Input2(87, 258, 220, 22, _("macro text"));
1148 mtext_1->box(FL_DOWN_BOX);
1149 mtext_1->color(FL_BACKGROUND2_COLOR);
1150 mtext_1->selection_color(FL_SELECTION_COLOR);
1151 mtext_1->labeltype(FL_NORMAL_LABEL);
1152 mtext_1->labelfont(0);
1153 mtext_1->labelsize(14);
1154 mtext_1->labelcolor(FL_FOREGROUND_COLOR);
1155 mtext_1->callback((Fl_Callback*)cb_mtext_1);
1156 mtext_1->align(Fl_Align(FL_ALIGN_TOP));
1157 mtext_1->when(FL_WHEN_RELEASE);
1158 o->value(progStatus.dxcm_text_1.c_str());
1159 } // Fl_Input2* mtext_1
1160 { Fl_Input* o = mlabel_2 = new Fl_Input(5, 298, 80, 22, _("label 2"));
1161 mlabel_2->callback((Fl_Callback*)cb_mlabel_2);
1162 mlabel_2->align(Fl_Align(FL_ALIGN_TOP));
1163 o->value(progStatus.dxcm_label_2.c_str());
1164 } // Fl_Input* mlabel_2
1165 { Fl_Input2* o = mtext_2 = new Fl_Input2(87, 298, 220, 22);
1166 mtext_2->box(FL_DOWN_BOX);
1167 mtext_2->color(FL_BACKGROUND2_COLOR);
1168 mtext_2->selection_color(FL_SELECTION_COLOR);
1169 mtext_2->labeltype(FL_NORMAL_LABEL);
1170 mtext_2->labelfont(0);
1171 mtext_2->labelsize(14);
1172 mtext_2->labelcolor(FL_FOREGROUND_COLOR);
1173 mtext_2->callback((Fl_Callback*)cb_mtext_2);
1174 mtext_2->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE));
1175 mtext_2->when(FL_WHEN_RELEASE);
1176 o->value(progStatus.dxcm_text_2.c_str());
1177 } // Fl_Input2* mtext_2
1178 { Fl_Input* o = mlabel_3 = new Fl_Input(5, 338, 80, 22, _("label 3"));
1179 mlabel_3->callback((Fl_Callback*)cb_mlabel_3);
1180 mlabel_3->align(Fl_Align(FL_ALIGN_TOP));
1181 o->value(progStatus.dxcm_label_3.c_str());
1182 } // Fl_Input* mlabel_3
1183 { Fl_Input2* o = mtext_3 = new Fl_Input2(87, 338, 220, 22);
1184 mtext_3->box(FL_DOWN_BOX);
1185 mtext_3->color(FL_BACKGROUND2_COLOR);
1186 mtext_3->selection_color(FL_SELECTION_COLOR);
1187 mtext_3->labeltype(FL_NORMAL_LABEL);
1188 mtext_3->labelfont(0);
1189 mtext_3->labelsize(14);
1190 mtext_3->labelcolor(FL_FOREGROUND_COLOR);
1191 mtext_3->callback((Fl_Callback*)cb_mtext_3);
1192 mtext_3->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE));
1193 mtext_3->when(FL_WHEN_RELEASE);
1194 o->value(progStatus.dxcm_text_3.c_str());
1195 } // Fl_Input2* mtext_3
1196 { Fl_Input* o = mlabel_4 = new Fl_Input(5, 378, 80, 22, _("label 4"));
1197 mlabel_4->callback((Fl_Callback*)cb_mlabel_4);
1198 mlabel_4->align(Fl_Align(FL_ALIGN_TOP));
1199 o->value(progStatus.dxcm_label_4.c_str());
1200 } // Fl_Input* mlabel_4
1201 { Fl_Input2* o = mtext_4 = new Fl_Input2(87, 378, 220, 22);
1202 mtext_4->box(FL_DOWN_BOX);
1203 mtext_4->color(FL_BACKGROUND2_COLOR);
1204 mtext_4->selection_color(FL_SELECTION_COLOR);
1205 mtext_4->labeltype(FL_NORMAL_LABEL);
1206 mtext_4->labelfont(0);
1207 mtext_4->labelsize(14);
1208 mtext_4->labelcolor(FL_FOREGROUND_COLOR);
1209 mtext_4->callback((Fl_Callback*)cb_mtext_4);
1210 mtext_4->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE));
1211 mtext_4->when(FL_WHEN_RELEASE);
1212 o->value(progStatus.dxcm_text_4.c_str());
1213 } // Fl_Input2* mtext_4
1214 o->end();
1215 } // Fl_Group* o
1216 { Fl_Group* o = new Fl_Group(308, 238, 307, 170);
1217 { Fl_Input* o = mlabel_5 = new Fl_Input(310, 257, 80, 22, _("label 5"));
1218 mlabel_5->callback((Fl_Callback*)cb_mlabel_5);
1219 mlabel_5->align(Fl_Align(FL_ALIGN_TOP));
1220 o->value(progStatus.dxcm_label_5.c_str());
1221 } // Fl_Input* mlabel_5
1222 { Fl_Input2* o = mtext_5 = new Fl_Input2(391, 257, 220, 22, _("macro text"));
1223 mtext_5->box(FL_DOWN_BOX);
1224 mtext_5->color(FL_BACKGROUND2_COLOR);
1225 mtext_5->selection_color(FL_SELECTION_COLOR);
1226 mtext_5->labeltype(FL_NORMAL_LABEL);
1227 mtext_5->labelfont(0);
1228 mtext_5->labelsize(14);
1229 mtext_5->labelcolor(FL_FOREGROUND_COLOR);
1230 mtext_5->callback((Fl_Callback*)cb_mtext_5);
1231 mtext_5->align(Fl_Align(FL_ALIGN_TOP));
1232 mtext_5->when(FL_WHEN_RELEASE);
1233 o->value(progStatus.dxcm_text_5.c_str());
1234 } // Fl_Input2* mtext_5
1235 { Fl_Input* o = mlabel_6 = new Fl_Input(310, 297, 80, 22, _("label 6"));
1236 mlabel_6->callback((Fl_Callback*)cb_mlabel_6);
1237 mlabel_6->align(Fl_Align(FL_ALIGN_TOP));
1238 o->value(progStatus.dxcm_label_6.c_str());
1239 } // Fl_Input* mlabel_6
1240 { Fl_Input2* o = mtext_6 = new Fl_Input2(391, 297, 220, 22);
1241 mtext_6->box(FL_DOWN_BOX);
1242 mtext_6->color(FL_BACKGROUND2_COLOR);
1243 mtext_6->selection_color(FL_SELECTION_COLOR);
1244 mtext_6->labeltype(FL_NORMAL_LABEL);
1245 mtext_6->labelfont(0);
1246 mtext_6->labelsize(14);
1247 mtext_6->labelcolor(FL_FOREGROUND_COLOR);
1248 mtext_6->callback((Fl_Callback*)cb_mtext_6);
1249 mtext_6->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE));
1250 mtext_6->when(FL_WHEN_RELEASE);
1251 o->value(progStatus.dxcm_text_6.c_str());
1252 } // Fl_Input2* mtext_6
1253 { Fl_Input* o = mlabel_7 = new Fl_Input(310, 337, 80, 22, _("label 7"));
1254 mlabel_7->callback((Fl_Callback*)cb_mlabel_7);
1255 mlabel_7->align(Fl_Align(FL_ALIGN_TOP));
1256 o->value(progStatus.dxcm_label_7.c_str());
1257 } // Fl_Input* mlabel_7
1258 { Fl_Input2* o = mtext_7 = new Fl_Input2(391, 337, 220, 22);
1259 mtext_7->box(FL_DOWN_BOX);
1260 mtext_7->color(FL_BACKGROUND2_COLOR);
1261 mtext_7->selection_color(FL_SELECTION_COLOR);
1262 mtext_7->labeltype(FL_NORMAL_LABEL);
1263 mtext_7->labelfont(0);
1264 mtext_7->labelsize(14);
1265 mtext_7->labelcolor(FL_FOREGROUND_COLOR);
1266 mtext_7->callback((Fl_Callback*)cb_mtext_7);
1267 mtext_7->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE));
1268 mtext_7->when(FL_WHEN_RELEASE);
1269 o->value(progStatus.dxcm_text_7.c_str());
1270 } // Fl_Input2* mtext_7
1271 { Fl_Input* o = mlabel_8 = new Fl_Input(310, 377, 80, 22, _("label 8"));
1272 mlabel_8->callback((Fl_Callback*)cb_mlabel_8);
1273 mlabel_8->align(Fl_Align(FL_ALIGN_TOP));
1274 o->value(progStatus.dxcm_label_8.c_str());
1275 } // Fl_Input* mlabel_8
1276 { Fl_Input2* o = mtext_8 = new Fl_Input2(391, 377, 220, 22);
1277 mtext_8->box(FL_DOWN_BOX);
1278 mtext_8->color(FL_BACKGROUND2_COLOR);
1279 mtext_8->selection_color(FL_SELECTION_COLOR);
1280 mtext_8->labeltype(FL_NORMAL_LABEL);
1281 mtext_8->labelfont(0);
1282 mtext_8->labelsize(14);
1283 mtext_8->labelcolor(FL_FOREGROUND_COLOR);
1284 mtext_8->callback((Fl_Callback*)cb_mtext_8);
1285 mtext_8->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE));
1286 mtext_8->when(FL_WHEN_RELEASE);
1287 o->value(progStatus.dxcm_text_8.c_str());
1288 } // Fl_Input2* mtext_8
1289 o->end();
1290 } // Fl_Group* o
1291 { btn_dxcluster_ar_help = new Fl_Button(618, 250, 56, 22, _("AR ?"));
1292 btn_dxcluster_ar_help->tooltip(_("AR Commands"));
1293 btn_dxcluster_ar_help->callback((Fl_Callback*)dxcluster_ar_help);
1294 } // Fl_Button* btn_dxcluster_ar_help
1295 { btn_dxcluster_cc_help = new Fl_Button(618, 292, 56, 22, _("CC ?"));
1296 btn_dxcluster_cc_help->tooltip(_("CC Commands"));
1297 btn_dxcluster_cc_help->callback((Fl_Callback*)dxcluster_cc_help);
1298 } // Fl_Button* btn_dxcluster_cc_help
1299 { btn_dxcluster_dx_help = new Fl_Button(618, 335, 56, 22, _("DX ?"));
1300 btn_dxcluster_dx_help->tooltip(_("Spider Commands"));
1301 btn_dxcluster_dx_help->callback((Fl_Callback*)dxcluster_dx_help);
1302 } // Fl_Button* btn_dxcluster_dx_help
1303 o->end();
1304 } // Fl_Group* o
1305 o->resizable(cc_resize_1);
1306 tabDXclusterConfig->end();
1307 } // Fl_Group* tabDXclusterConfig
1308 { Fl_Group* o = tabIOconfig = new Fl_Group(0, 100, 680, 315, _("I/O config"));
1309 tabIOconfig->hide();
1310 { Fl_Group* o = new Fl_Group(10, 110, 389, 150, _("Fldigi/Flrig Interface"));
1311 o->box(FL_ENGRAVED_FRAME);
1312 o->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE));
1313 { Fl_Check_Button* o = btn_connect_to_fldigi = new Fl_Check_Button(25, 143, 142, 15, _("Connect to Fldigi"));
1314 btn_connect_to_fldigi->down_box(FL_DOWN_BOX);
1315 btn_connect_to_fldigi->callback((Fl_Callback*)cb_btn_connect_to_fldigi);
1316 btn_connect_to_fldigi->when(FL_WHEN_CHANGED);
1317 o->value(progStatus.connect_to_fldigi);
1318 } // Fl_Check_Button* btn_connect_to_fldigi
1319 { Fl_Input* o = inp_fldigi_address = new Fl_Input(25, 179, 357, 24, _("Fldigi Socket Address:"));
1320 inp_fldigi_address->callback((Fl_Callback*)cb_inp_fldigi_address);
1321 inp_fldigi_address->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1322 o->value(progStatus.fldigi_address.c_str());
1323 } // Fl_Input* inp_fldigi_address
1324 { Fl_Input* o = inp_fldigi_port = new Fl_Input(25, 225, 123, 24, _("Fldigi Socket Port:"));
1325 inp_fldigi_port->callback((Fl_Callback*)cb_inp_fldigi_port);
1326 inp_fldigi_port->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1327 o->value(progStatus.fldigi_port.c_str());
1328 } // Fl_Input* inp_fldigi_port
1329 { lbl_fldigi_connected = new Fl_Box(185, 140, 20, 20, _("Connected"));
1330 lbl_fldigi_connected->tooltip(_("Connected State"));
1331 lbl_fldigi_connected->box(FL_DIAMOND_DOWN_BOX);
1332 lbl_fldigi_connected->color((Fl_Color)55);
1333 lbl_fldigi_connected->align(Fl_Align(FL_ALIGN_RIGHT));
1334 } // Fl_Box* lbl_fldigi_connected
1335 o->end();
1336 } // Fl_Group* o
1337 { Fl_Group* o = new Fl_Group(400, 110, 269, 296, _("RF/AF Spotting"));
1338 o->box(FL_ENGRAVED_BOX);
1339 o->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE));
1340 { Fl_Counter* o = intPSKsweetspot = new Fl_Counter(420, 149, 119, 22, _("PSK sweet spot"));
1341 intPSKsweetspot->minimum(500);
1342 intPSKsweetspot->maximum(2500);
1343 intPSKsweetspot->step(10);
1344 intPSKsweetspot->value(1500);
1345 intPSKsweetspot->callback((Fl_Callback*)cb_intPSKsweetspot);
1346 intPSKsweetspot->align(Fl_Align(FL_ALIGN_RIGHT));
1347 o->value(progStatus.PSKsweetspot);
1348 o->lstep(100);
1349 } // Fl_Counter* intPSKsweetspot
1350 { Fl_Check_Button* o = btn_PSK_on_USB = new Fl_Check_Button(435, 184, 198, 15, _("PSK mode is USB on xcvr"));
1351 btn_PSK_on_USB->down_box(FL_DOWN_BOX);
1352 btn_PSK_on_USB->callback((Fl_Callback*)cb_btn_PSK_on_USB);
1353 o->value(progStatus.USB);
1354 } // Fl_Check_Button* btn_PSK_on_USB
1355 { Fl_Counter* o = intCWsweetspot = new Fl_Counter(420, 213, 119, 22, _("CW sweet spot"));
1356 intCWsweetspot->minimum(500);
1357 intCWsweetspot->maximum(2500);
1358 intCWsweetspot->step(10);
1359 intCWsweetspot->value(1500);
1360 intCWsweetspot->callback((Fl_Callback*)cb_intCWsweetspot);
1361 intCWsweetspot->align(Fl_Align(FL_ALIGN_RIGHT));
1362 o->value(progStatus.CWsweetspot);
1363 o->lstep(100);
1364 } // Fl_Counter* intCWsweetspot
1365 { Fl_Check_Button* o = btn_cw_mode_is_USB = new Fl_Check_Button(435, 249, 198, 15, _("CW mode is USB on xcvr"));
1366 btn_cw_mode_is_USB->down_box(FL_DOWN_BOX);
1367 btn_cw_mode_is_USB->callback((Fl_Callback*)cb_btn_cw_mode_is_USB);
1368 o->value(progStatus.USBCW);
1369 } // Fl_Check_Button* btn_cw_mode_is_USB
1370 { Fl_Check_Button* o = btn_cw_mode_is_LSB = new Fl_Check_Button(435, 277, 198, 15, _("CW mode is LSB on xcvr"));
1371 btn_cw_mode_is_LSB->down_box(FL_DOWN_BOX);
1372 btn_cw_mode_is_LSB->callback((Fl_Callback*)cb_btn_cw_mode_is_LSB);
1373 o->value(progStatus.LSBCW);
1374 } // Fl_Check_Button* btn_cw_mode_is_LSB
1375 { Fl_Check_Button* o = btn_cw_mode_is_CW = new Fl_Check_Button(435, 305, 198, 15, _("CW mode is CW on xcvr"));
1376 btn_cw_mode_is_CW->down_box(FL_DOWN_BOX);
1377 btn_cw_mode_is_CW->callback((Fl_Callback*)cb_btn_cw_mode_is_CW);
1378 o->value(!progStatus.LSBCW && !progStatus.USBCW);
1379 } // Fl_Check_Button* btn_cw_mode_is_CW
1380 { Fl_Check_Button* o = btn_rtty_is_mark = new Fl_Check_Button(435, 370, 198, 15, _("RTTY tuned to Mark Freq"));
1381 btn_rtty_is_mark->down_box(FL_DOWN_BOX);
1382 btn_rtty_is_mark->callback((Fl_Callback*)cb_btn_rtty_is_mark);
1383 o->value(!progStatus.useMARKfreq);
1384 } // Fl_Check_Button* btn_rtty_is_mark
1385 { Fl_Counter* o = intRTTYsweetspot = new Fl_Counter(420, 334, 119, 22, _("RTTY sweet spot"));
1386 intRTTYsweetspot->minimum(500);
1387 intRTTYsweetspot->maximum(2500);
1388 intRTTYsweetspot->step(10);
1389 intRTTYsweetspot->value(1500);
1390 intRTTYsweetspot->callback((Fl_Callback*)cb_intRTTYsweetspot);
1391 intRTTYsweetspot->align(Fl_Align(FL_ALIGN_RIGHT));
1392 o->value(progStatus.RTTYsweetspot);
1393 o->lstep(100);
1394 } // Fl_Counter* intRTTYsweetspot
1395 o->end();
1396 } // Fl_Group* o
1397 { Fl_Group* o = new Fl_Group(10, 261, 389, 145, _("Server Help URLs"));
1398 o->box(FL_ENGRAVED_BOX);
1399 o->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE));
1400 { Fl_Input* o = serversURL = new Fl_Input(58, 285, 337, 24, _("Srvrs:"));
1401 serversURL->tooltip(_("enter INTERNAL to use local html"));
1402 serversURL->callback((Fl_Callback*)cb_serversURL);
1403 o->value(progStatus.serversURL.c_str());
1404 } // Fl_Input* serversURL
1405 { Fl_Input* o = AR_help_URL = new Fl_Input(58, 313, 337, 24, _("AR:"));
1406 AR_help_URL->tooltip(_("enter INTERNAL to use local html"));
1407 AR_help_URL->callback((Fl_Callback*)cb_AR_help_URL);
1408 o->value(progStatus.AR_help_URL.c_str());
1409 } // Fl_Input* AR_help_URL
1410 { Fl_Input* o = CC_help_URL = new Fl_Input(58, 342, 337, 24, _("CC:"));
1411 CC_help_URL->tooltip(_("enter INTERNAL to use local html"));
1412 CC_help_URL->callback((Fl_Callback*)cb_CC_help_URL);
1413 o->value(progStatus.CC_help_URL.c_str());
1414 } // Fl_Input* CC_help_URL
1415 { Fl_Input* o = DX_help_URL = new Fl_Input(58, 371, 337, 24, _("DX:"));
1416 DX_help_URL->tooltip(_("enter INTERNAL to use local html"));
1417 DX_help_URL->callback((Fl_Callback*)cb_DX_help_URL);
1418 o->value(progStatus.DX_help_URL.c_str());
1419 } // Fl_Input* DX_help_URL
1420 o->end();
1421 } // Fl_Group* o
1422 { gp_resize_io = new Fl_Group(10, 407, 660, 5);
1423 gp_resize_io->end();
1424 } // Fl_Group* gp_resize_io
1425 o->resizable(gp_resize_io);
1426 tabIOconfig->end();
1427 } // Fl_Group* tabIOconfig
1428 { Fl_Group* o = tabUserConfig = new Fl_Group(0, 100, 680, 315, _("User Config"));
1429 tabUserConfig->hide();
1430 { Fl_Group* o = new Fl_Group(5, 106, 315, 160, _("Personal Info"));
1431 o->box(FL_ENGRAVED_BOX);
1432 o->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE));
1433 { Fl_Input* o = inp_myCall = new Fl_Input(71, 135, 160, 22, _("Call"));
1434 inp_myCall->callback((Fl_Callback*)cb_inp_myCall);
1435 inp_myCall->when(FL_WHEN_CHANGED);
1436 o->value(progStatus.myCall.c_str());
1437 } // Fl_Input* inp_myCall
1438 { Fl_Input* o = inp_myName = new Fl_Input(71, 167, 160, 22, _("Name"));
1439 inp_myName->callback((Fl_Callback*)cb_inp_myName);
1440 inp_myName->when(FL_WHEN_CHANGED);
1441 o->value(progStatus.myName.c_str());
1442 } // Fl_Input* inp_myName
1443 { Fl_Input* o = inp_myQth = new Fl_Input(71, 199, 160, 22, _("Qth"));
1444 inp_myQth->callback((Fl_Callback*)cb_inp_myQth);
1445 inp_myQth->when(FL_WHEN_CHANGED);
1446 o->value(progStatus.myQth.c_str());
1447 } // Fl_Input* inp_myQth
1448 { Fl_Input* o = inp_myLocator = new Fl_Input(71, 232, 160, 22, _("Locator"));
1449 inp_myLocator->callback((Fl_Callback*)cb_inp_myLocator);
1450 inp_myLocator->when(FL_WHEN_CHANGED);
1451 o->value(progStatus.myLocator.c_str());
1452 } // Fl_Input* inp_myLocator
1453 { btn_send_name = new Fl_Button(243, 167, 70, 22, _("Update"));
1454 btn_send_name->tooltip(_("update change to server"));
1455 btn_send_name->callback((Fl_Callback*)cb_btn_send_name);
1456 } // Fl_Button* btn_send_name
1457 { btn_send_qth = new Fl_Button(243, 199, 70, 22, _("Update"));
1458 btn_send_qth->tooltip(_("update change to server"));
1459 btn_send_qth->callback((Fl_Callback*)cb_btn_send_qth);
1460 } // Fl_Button* btn_send_qth
1461 { btn_send_qra = new Fl_Button(243, 232, 70, 22, _("Update"));
1462 btn_send_qra->tooltip(_("update change to server"));
1463 btn_send_qra->callback((Fl_Callback*)cb_btn_send_qra);
1464 } // Fl_Button* btn_send_qra
1465 o->end();
1466 } // Fl_Group* o
1467 { Fl_Group* o = new Fl_Group(5, 268, 670, 137);
1468 o->box(FL_ENGRAVED_FRAME);
1469 o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
1470 { Fl_Output* o = DXC_display = new Fl_Output(24, 293, 184, 25, _("Report Browser"));
1471 DXC_display->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1472 o->textfont(progStatus.DXC_textfont);o->textsize(progStatus.DXC_textsize);
1473 o->value("DX de W1HKJ-1");
1474 o->redraw();
1475 } // Fl_Output* DXC_display
1476 { btn_DXC_font = new Fl_Button(213, 293, 86, 25, _("Font"));
1477 btn_DXC_font->callback((Fl_Callback*)cb_btn_DXC_font);
1478 } // Fl_Button* btn_DXC_font
1479 { btnDXCdefault_colors_font = new Fl_Button(305, 293, 86, 25, _("Default"));
1480 btnDXCdefault_colors_font->callback((Fl_Callback*)cb_btnDXCdefault_colors_font);
1481 } // Fl_Button* btnDXCdefault_colors_font
1482 { Fl_Button* o = btn_DXC_even_lines = new Fl_Button(213, 324, 86, 25, _("Even Lines"));
1483 btn_DXC_even_lines->color((Fl_Color)55);
1484 btn_DXC_even_lines->callback((Fl_Callback*)cb_btn_DXC_even_lines);
1485 o->color(progStatus.DXC_even_color);
1486 } // Fl_Button* btn_DXC_even_lines
1487 { Fl_Button* o = btn_DXC_odd_lines = new Fl_Button(305, 324, 86, 25, _("Odd Lines"));
1488 btn_DXC_odd_lines->color((Fl_Color)246);
1489 btn_DXC_odd_lines->callback((Fl_Callback*)cb_btn_DXC_odd_lines);
1490 o->color(progStatus.DXC_odd_color);
1491 } // Fl_Button* btn_DXC_odd_lines
1492 { Fl_Input* o = StreamText = new Fl_Input(24, 363, 184, 25, _("Stream Text"));
1493 StreamText->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1494 o->value("DX de W1HKJ...");
1495 o->color(fl_rgb_color(progStatus.DX_Color_R, progStatus.DX_Color_G, progStatus.DX_Color_B));
1496 o->textfont(progStatus.DXfontnbr); o->textsize(progStatus.DXfontsize); o->textcolor(progStatus.DXfontcolor);
1497 } // Fl_Input* StreamText
1498 { btnDXcolor = new Fl_Button(213, 363, 86, 25, _("Bg color"));
1499 btnDXcolor->callback((Fl_Callback*)cb_btnDXcolor);
1500 } // Fl_Button* btnDXcolor
1501 { btnDXfont = new Fl_Button(305, 363, 86, 25, _("Font"));
1502 btnDXfont->callback((Fl_Callback*)cb_btnDXfont);
1503 } // Fl_Button* btnDXfont
1504 { Fl_Button* o = btnDXalt_color = new Fl_Button(397, 362, 86, 25, _("Alt Color"));
1505 btnDXalt_color->tooltip(_("Color for outgoing telnet text"));
1506 btnDXalt_color->callback((Fl_Callback*)cb_btnDXalt_color);
1507 o->labelcolor(progStatus.DXalt_color);
1508 } // Fl_Button* btnDXalt_color
1509 { btnDXdefault_colors_font = new Fl_Button(491, 362, 86, 25, _("Default"));
1510 btnDXdefault_colors_font->callback((Fl_Callback*)cb_btnDXdefault_colors_font);
1511 } // Fl_Button* btnDXdefault_colors_font
1512 o->end();
1513 } // Fl_Group* o
1514 { Fl_Group* o = new Fl_Group(325, 106, 175, 160, _("Keepalive signal"));
1515 o->box(FL_ENGRAVED_BOX);
1516 o->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE));
1517 { Fl_Round_Button* o = btn_zero_keepalive = new Fl_Round_Button(340, 138, 151, 26, _("never"));
1518 btn_zero_keepalive->tooltip(_("disable keep alive signal"));
1519 btn_zero_keepalive->down_box(FL_ROUND_DOWN_BOX);
1520 btn_zero_keepalive->callback((Fl_Callback*)cb_btn_zero_keepalive);
1521 o->value(progStatus.keepalive == 0);
1522 } // Fl_Round_Button* btn_zero_keepalive
1523 { Fl_Round_Button* o = btn_one_keepalive = new Fl_Round_Button(340, 166, 151, 26, _("every minute"));
1524 btn_one_keepalive->tooltip(_("send keepalive signal every minute"));
1525 btn_one_keepalive->down_box(FL_ROUND_DOWN_BOX);
1526 btn_one_keepalive->callback((Fl_Callback*)cb_btn_one_keepalive);
1527 o->value(progStatus.keepalive == 1);
1528 } // Fl_Round_Button* btn_one_keepalive
1529 { Fl_Round_Button* o = btn_five_keepalive = new Fl_Round_Button(340, 194, 151, 26, _("every 5 minutes"));
1530 btn_five_keepalive->tooltip(_("send keepalive signal every 5 minutes"));
1531 btn_five_keepalive->down_box(FL_ROUND_DOWN_BOX);
1532 btn_five_keepalive->callback((Fl_Callback*)cb_btn_five_keepalive);
1533 o->value(progStatus.keepalive == 5);
1534 } // Fl_Round_Button* btn_five_keepalive
1535 { Fl_Round_Button* o = btn_ten_keepalive = new Fl_Round_Button(340, 224, 151, 25, _("every 10 minutes"));
1536 btn_ten_keepalive->tooltip(_("send keepalive signal every 10 minutes"));
1537 btn_ten_keepalive->down_box(FL_ROUND_DOWN_BOX);
1538 btn_ten_keepalive->callback((Fl_Callback*)cb_btn_ten_keepalive);
1539 o->value(progStatus.keepalive == 10);
1540 } // Fl_Round_Button* btn_ten_keepalive
1541 o->end();
1542 } // Fl_Group* o
1543 { grp_misc = new Fl_Group(505, 106, 170, 160, _("Miscellaneous"));
1544 grp_misc->box(FL_ENGRAVED_BOX);
1545 grp_misc->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE));
1546 { Fl_Check_Button* o = btn_tooltips = new Fl_Check_Button(525, 143, 78, 15, _("Enable Tooltips"));
1547 btn_tooltips->down_box(FL_DOWN_BOX);
1548 btn_tooltips->value(1);
1549 btn_tooltips->callback((Fl_Callback*)cb_btn_tooltips);
1550 o->value(progStatus.tooltips);
1551 } // Fl_Check_Button* btn_tooltips
1552 grp_misc->end();
1553 } // Fl_Group* grp_misc
1554 { grp_resize_uc = new Fl_Group(5, 405, 670, 7);
1555 grp_resize_uc->end();
1556 Fl_Group::current()->resizable(grp_resize_uc);
1557 } // Fl_Group* grp_resize_uc
1558 o->resizable(grp_resize_uc);
1559 tabUserConfig->end();
1560 } // Fl_Group* tabUserConfig
1561 { Fl_Group* o = tabDXclusterHelp = new Fl_Group(0, 100, 680, 314, _("Cluster Help"));
1562 tabDXclusterHelp->hide();
1563 { brws_dxc_help = new FTextView(3, 104, 673, 281);
1564 brws_dxc_help->tooltip(_("Cluster server command strings"));
1565 brws_dxc_help->box(FL_DOWN_FRAME);
1566 brws_dxc_help->color(FL_BACKGROUND2_COLOR);
1567 brws_dxc_help->selection_color(FL_SELECTION_COLOR);
1568 brws_dxc_help->labeltype(FL_NORMAL_LABEL);
1569 brws_dxc_help->labelfont(0);
1570 brws_dxc_help->labelsize(13);
1571 brws_dxc_help->labelcolor(FL_FOREGROUND_COLOR);
1572 brws_dxc_help->textfont(13);
1573 brws_dxc_help->align(Fl_Align(FL_ALIGN_TOP));
1574 brws_dxc_help->when(FL_WHEN_RELEASE);
1575 Fl_Group::current()->resizable(brws_dxc_help);
1576 } // FTextView* brws_dxc_help
1577 { btn_dxc_help_query = new Fl_Button(441, 388, 70, 22, _("Get Help"));
1578 btn_dxc_help_query->tooltip(_("Get Help from cluster server"));
1579 btn_dxc_help_query->callback((Fl_Callback*)cb_btn_dxc_help_query);
1580 } // Fl_Button* btn_dxc_help_query
1581 { inp_help_string = new Fl_Input2(265, 388, 172, 22, _("Help on:"));
1582 inp_help_string->tooltip(_("Leave blank for general help\nEnter subject, e.g. DX"));
1583 inp_help_string->box(FL_DOWN_BOX);
1584 inp_help_string->color(FL_BACKGROUND2_COLOR);
1585 inp_help_string->selection_color(FL_SELECTION_COLOR);
1586 inp_help_string->labeltype(FL_NORMAL_LABEL);
1587 inp_help_string->labelfont(0);
1588 inp_help_string->labelsize(13);
1589 inp_help_string->labelcolor(FL_FOREGROUND_COLOR);
1590 inp_help_string->callback((Fl_Callback*)cb_inp_help_string);
1591 inp_help_string->align(Fl_Align(FL_ALIGN_LEFT));
1592 inp_help_string->when(FL_WHEN_ENTER_KEY);
1593 } // Fl_Input2* inp_help_string
1594 { btn_dxc_help_clear = new Fl_Button(517, 388, 71, 22, _("Clear"));
1595 btn_dxc_help_clear->tooltip(_("Clear help panel"));
1596 btn_dxc_help_clear->callback((Fl_Callback*)cb_btn_dxc_help_clear);
1597 } // Fl_Button* btn_dxc_help_clear
1598 o->resizable(brws_dxc_help);
1599 tabDXclusterHelp->end();
1600 } // Fl_Group* tabDXclusterHelp
1601 o->resizable(tabDXclusterReports);
1602 cluster_tabs->end();
1603 Fl_Group::current()->resizable(cluster_tabs);
1604 } // Fl_Tabs* cluster_tabs
1605 o->resizable(cluster_tabs);
1606 o->size_range(680,420,0,0);
1607 o->end();
1608 } // Fl_Double_Window* o
1609 return w;
1610 }
1611