create_fl_digi_main_primary()1 void create_fl_digi_main_primary() {
2 // bx used as a temporary spacer
3 Fl_Box *bx;
4 int Wmacrobtn;
5 int xpos;
6 int ypos;
7 int wBLANK;
8
9 int fnt = progdefaults.FreqControlFontnbr;
10 int freqheight = Hentry;
11 fl_font(fnt, freqheight);
12 int freqwidth = (int)fl_width("9") * 10;
13 fl_font(progdefaults.LOGGINGtextfont, progdefaults.LOGGINGtextsize);
14
15 int Y = 0;
16
17 #ifdef __APPLE__
18 fl_mac_set_about(cb_mnuAboutURL, 0);
19 #endif
20
21 IMAGE_WIDTH = 4000;
22
23 Hwfall = progdefaults.wfheight;
24
25 Wwfall = progStatus.mainW - 2 * DEFAULT_SW;
26
27 int fixed_height =
28 Hmenu +
29 Hqsoframe +
30 Hwfall +
31 Hstatus;
32 int hmacros = TB_HEIGHT * 4;
33
34 fixed_height += hmacros;
35
36 //----------------------------------------------------------------------
37 // needed to prevent user from manually modifying fldigi_def.xml
38 // with values to would cause the UI to seg fault
39 if (progdefaults.HellRcvHeight < 14) progdefaults.HellRcvHeight = 14;
40 if (progdefaults.HellRcvHeight > 42) progdefaults.HellRcvHeight = 42;
41 if (progdefaults.HellRcvWidth < 1) progdefaults.HellRcvWidth = 1;
42 if (progdefaults.HellRcvWidth > 4) progdefaults.HellRcvWidth = 4;
43 //----------------------------------------------------------------------
44
45 minhtext = 2 * progdefaults.HellRcvHeight + 4;//6;
46
47 int Htext = 3 * minhtext;
48 if (Htext < 120) Htext = 120;
49
50 main_hmin = Htext + fixed_height;
51
52 // developer usage
53 //cout << "=============================================================" << endl;
54 //cout << "min main_height ..... " << main_hmin << endl;
55 //cout << " = Hmenu ............ " << Hmenu << endl;
56 //cout << " + Hqsoframe ........ " << Hqsoframe << endl;
57 //cout << " + Hwfall ........... " << Hwfall << endl;
58 //cout << " + Hstatus ......... " << Hstatus << endl;
59 //cout << " + Hmacros .......... " << hmacros << endl;
60 //cout << " + text height ...... " << Htext << endl;
61 //cout << "=============================================================" << endl;
62
63 if (progStatus.mainH < main_hmin) {
64 progStatus.mainH = main_hmin;
65 }
66
67 if (progStatus.tile_y > Htext) progStatus.tile_y = Htext / 2;
68
69 int W = progStatus.mainW;
70 int H = main_hmin;
71 int xtmp = 0;
72
73 fl_digi_main = new Fl_Double_Window(
74 progStatus.mainX, progStatus.mainY, W, H);
75
76 int lfont = fl_digi_main->labelfont();
77 int lsize = FL_NORMAL_SIZE;
78 fl_font(lfont, lsize);
79
80 { // mnuFrame
81 mnuFrame = new Fl_Group(0,0, W, Hmenu);
82 mnu = new Fl_Menu_Bar(0, 0, W - 325, Hmenu);
83 // do some more work on the menu
84 for (size_t i = 0; i < sizeof(menu_)/sizeof(menu_[0]); i++) {
85 // FL_NORMAL_SIZE may have changed; update the menu items
86 if (menu_[i].text) {
87 menu_[i].labelsize_ = lsize;
88 }
89 // set the icon label for items with the multi label type
90 if (menu_[i].labeltype() == _FL_MULTI_LABEL)
91 icons::set_icon_label(&menu_[i]);
92 }
93 mnu->menu(menu_);
94 toggle_visible_modes(NULL, NULL);
95
96 tx_timer = new Fl_Box(W - 325, 0, 75, Hmenu, "");
97 tx_timer->box(FL_UP_BOX);
98 tx_timer->color(FL_BACKGROUND_COLOR);
99 tx_timer->labelcolor(FL_BACKGROUND_COLOR);
100 tx_timer->labelsize(FL_NORMAL_SIZE - 1);
101 tx_timer->labelfont(lfont);
102
103 btnAutoSpot = new Fl_Light_Button(W - 250, 0, 50, Hmenu, "Spot");
104 btnAutoSpot->selection_color(progdefaults.SpotColor);
105 btnAutoSpot->callback(cbAutoSpot, 0);
106 btnAutoSpot->deactivate();
107 btnAutoSpot->labelsize(FL_NORMAL_SIZE - 1);
108 btnAutoSpot->labelfont(lfont);
109
110 btnRSID = new Fl_Light_Button(W - 200, 0, 50, Hmenu, "RxID");
111 btnRSID->tooltip("Receive RSID");
112 btnRSID->selection_color(
113 progdefaults.rsidWideSearch ? progdefaults.RxIDwideColor : progdefaults.RxIDColor);
114 btnRSID->value(progdefaults.rsid);
115 btnRSID->callback(cbRSID, 0);
116 btnRSID->labelsize(FL_NORMAL_SIZE - 1);
117 btnRSID->labelfont(lfont);
118
119 btnTxRSID = new Fl_Light_Button(W - 150, 0, 50, Hmenu, "TxID");
120 btnTxRSID->selection_color(progdefaults.TxIDColor);
121 btnTxRSID->tooltip("Transmit RSID");
122 btnTxRSID->callback(cbTxRSID, 0);
123 btnTxRSID->labelsize(FL_NORMAL_SIZE - 1);
124 btnTxRSID->labelfont(lfont);
125
126 btnTune = new Fl_Light_Button(W - 100, 0, 50, Hmenu, "TUNE");
127 btnTune->selection_color(progdefaults.TuneColor);
128 btnTune->callback(cbTune, 0);
129 btnTune->labelsize(FL_NORMAL_SIZE - 1);
130 btnTune->labelfont(lfont);
131
132 btnMacroTimer = new Fl_Button(W - 50, 0, 50, Hmenu);
133 btnMacroTimer->labelcolor(FL_DARK_RED);
134 btnMacroTimer->callback(cbMacroTimerButton);
135 btnMacroTimer->set_output();
136 btnMacroTimer->labelsize(FL_NORMAL_SIZE - 1);
137 btnMacroTimer->labelfont(lfont);
138
139 mnuFrame->resizable(mnu);
140 mnuFrame->end();
141 }
142
143 int alt_btn_width = 2 * DEFAULT_SW;
144
145 { // Constants
146 // reset the message dialog font
147 fl_message_font(FL_HELVETICA, FL_NORMAL_SIZE);
148 // reset the tooltip font
149 Fl_Tooltip::font(FL_HELVETICA);
150 Fl_Tooltip::size(FL_NORMAL_SIZE);
151 Fl_Tooltip::hoverdelay(0.5);
152 Fl_Tooltip::delay(2.0);
153 Fl_Tooltip::enable(progdefaults.tooltips);
154
155 Y += mnuFrame->h();
156 }
157 TopFrame1 = new Fl_Group(
158 0, Y,
159 fl_digi_main->w(), Hqsoframe);
160 { // TopFrame1
161
162 int fnt1 = progdefaults.FreqControlFontnbr;
163 int freqheight1 = 2 * Hentry + pad - 2;
164 fl_font(fnt1, freqheight1);
165 int freqwidth1 = (int)fl_width("9") * 10;
166 int mode_cbo_w = (freqwidth1 - 2 * Wbtn - 3 * pad) / 2;
167 int bw_cbo_w = freqwidth1 - 2 * Wbtn - 3 * pad - mode_cbo_w;
168 int smeter_w = mode_cbo_w + bw_cbo_w + pad;
169 int rig_control_frame_width = freqwidth1 + 3 * pad;
170
171 fl_font(progdefaults.LOGGINGtextfont, progdefaults.LOGGINGtextsize);
172
173 RigControlFrame = new Fl_Group(
174 0, TopFrame1->y(),
175 rig_control_frame_width, Hqsoframe);
176 { // RigControlFrame 1
177
178 RigControlFrame->box(FL_FLAT_BOX);
179
180 qsoFreqDisp1 = new cFreqControl(
181 pad, RigControlFrame->y() + pad,
182 freqwidth1, freqheight1, "10");
183 qsoFreqDisp1->box(FL_DOWN_BOX);
184 qsoFreqDisp1->color(FL_BACKGROUND_COLOR);
185 qsoFreqDisp1->selection_color(FL_BACKGROUND_COLOR);
186 qsoFreqDisp1->labeltype(FL_NORMAL_LABEL);
187 qsoFreqDisp1->font(progdefaults.FreqControlFontnbr);
188 qsoFreqDisp1->labelsize(12);
189 qsoFreqDisp1->labelcolor(FL_FOREGROUND_COLOR);
190 qsoFreqDisp1->align(FL_ALIGN_CENTER);
191 qsoFreqDisp1->when(FL_WHEN_RELEASE);
192 qsoFreqDisp1->callback(qso_movFreq);
193 qsoFreqDisp1->SetONOFFCOLOR(
194 fl_rgb_color( progdefaults.FDforeground.R,
195 progdefaults.FDforeground.G,
196 progdefaults.FDforeground.B),
197 fl_rgb_color( progdefaults.FDbackground.R,
198 progdefaults.FDbackground.G,
199 progdefaults.FDbackground.B));
200 qsoFreqDisp1->value(0);
201 qsoFreqDisp1->end();
202
203 pwrmeter = new PWRmeter(
204 qsoFreqDisp1->x(), qsoFreqDisp1->y() + qsoFreqDisp1->h() + pad,
205 smeter_w, Hentry);
206 pwrmeter->select(progdefaults.PWRselect);
207 pwrmeter->tooltip(_("Click to set power level"));
208 pwrmeter->callback( (Fl_Callback *) cb_meters);
209 pwrmeter->hide();
210
211 smeter = new Smeter(
212 qsoFreqDisp1->x(), qsoFreqDisp1->y() + qsoFreqDisp1->h() + pad,
213 smeter_w, Hentry);
214 set_smeter_colors();
215 smeter->tooltip(_("Click to set power level"));
216 smeter->callback( (Fl_Callback *) cb_meters);
217 smeter->hide();
218
219 pwrlevel_grp = new Fl_Group(
220 smeter->x(), smeter->y(),
221 smeter->w(), smeter->h());
222
223 pwr_level = new Fl_Value_Slider2(
224 pwrlevel_grp->x(), pwrlevel_grp->y(),
225 pwrlevel_grp->w() - 50, pwrlevel_grp->h());
226 pwr_level->type(FL_HOR_NICE_SLIDER);
227 pwr_level->range(0, 100.0);
228 pwr_level->step(1);
229 pwr_level->callback( (Fl_Callback *) cb_set_pwr_level );
230 pwr_level->color( fl_rgb_color(
231 progdefaults.bwsrSliderColor.R,
232 progdefaults.bwsrSliderColor.G,
233 progdefaults.bwsrSliderColor.B));
234 pwr_level->selection_color( fl_rgb_color(
235 progdefaults.bwsrSldrSelColor.R,
236 progdefaults.bwsrSldrSelColor.G,
237 progdefaults.bwsrSldrSelColor.B));
238 pwr_level->tooltip(_("Adjust Power Level"));
239
240 set_pwr_level = new Fl_Button(
241 pwr_level->x() + pwr_level->w(), pwr_level->y(),
242 50, pwr_level->h(),
243 _("Done"));
244 set_pwr_level->tooltip(_("Return to Smeter / Pmeter"));
245 set_pwr_level->callback( (Fl_Callback *) cb_exit_pwr_level );
246
247 pwrlevel_grp->end();
248 pwrlevel_grp->hide();
249
250 qso_combos = new Fl_Group(
251 qsoFreqDisp1->x(), qsoFreqDisp1->y() + qsoFreqDisp1->h() + pad,
252 smeter_w, Hentry);
253 qso_combos->box(FL_FLAT_BOX);
254
255 qso_opMODE = new Fl_ListBox(
256 smeter->x(), smeter->y(), mode_cbo_w, Hentry);
257 qso_opMODE->box(FL_DOWN_BOX);
258 qso_opMODE->color(FL_BACKGROUND2_COLOR);
259 qso_opMODE->selection_color(FL_BACKGROUND_COLOR);
260 qso_opMODE->labeltype(FL_NORMAL_LABEL);
261 qso_opMODE->labelfont(0);
262 qso_opMODE->labelsize(FL_NORMAL_SIZE);
263 qso_opMODE->labelcolor(FL_FOREGROUND_COLOR);
264 qso_opMODE->callback((Fl_Callback*)cb_qso_opMODE);
265 qso_opMODE->align(FL_ALIGN_TOP);
266 qso_opMODE->when(FL_WHEN_RELEASE);
267 qso_opMODE->readonly(true);
268 qso_opMODE->end();
269
270 qso_opBW = new Fl_ListBox(
271 qso_opMODE->x() + mode_cbo_w + pad,
272 smeter->y(),
273 bw_cbo_w, Hentry);
274 qso_opBW->box(FL_DOWN_BOX);
275 qso_opBW->color(FL_BACKGROUND2_COLOR);
276 qso_opBW->selection_color(FL_BACKGROUND_COLOR);
277 qso_opBW->labeltype(FL_NORMAL_LABEL);
278 qso_opBW->labelfont(0);
279 qso_opBW->labelsize(FL_NORMAL_SIZE);
280 qso_opBW->labelcolor(FL_FOREGROUND_COLOR);
281 qso_opBW->callback((Fl_Callback*)cb_qso_opBW);
282 qso_opBW->align(FL_ALIGN_TOP);
283 qso_opBW->when(FL_WHEN_RELEASE);
284 qso_opBW->readonly(true);
285 qso_opBW->end();
286
287 qso_opGROUP = new Fl_Group(
288 qso_opMODE->x() + mode_cbo_w + pad,
289 smeter->y(),
290 bw_cbo_w, Hentry);
291 qso_opGROUP->box(FL_FLAT_BOX);
292
293 qso_btnBW1 = new Fl_Button(
294 qso_opGROUP->x(), qso_opGROUP->y(),
295 qso_opGROUP->h() * 3 / 4, qso_opGROUP->h());
296 qso_btnBW1->callback((Fl_Callback*)cb_qso_btnBW1);
297
298 qso_opBW1 = new Fl_ListBox(
299 qso_btnBW1->x()+qso_btnBW1->w(), qso_btnBW1->y(),
300 qso_opGROUP->w() - qso_btnBW1->w(), qso_btnBW1->h());
301 qso_opBW1->box(FL_DOWN_BOX);
302 qso_opBW1->color(FL_BACKGROUND2_COLOR);
303 qso_opBW1->selection_color(FL_BACKGROUND_COLOR);
304 qso_opBW1->labeltype(FL_NORMAL_LABEL);
305 qso_opBW1->labelfont(0);
306 qso_opBW1->labelsize(FL_NORMAL_SIZE);
307 qso_opBW1->labelcolor(FL_FOREGROUND_COLOR);
308 qso_opBW1->callback((Fl_Callback*)cb_qso_opBW1);
309 qso_opBW1->align(FL_ALIGN_TOP);
310 qso_opBW1->when(FL_WHEN_RELEASE);
311 qso_opBW1->end();
312
313 qso_btnBW1->hide();
314 qso_opBW1->hide();
315
316 qso_btnBW2 = new Fl_Button(
317 qso_opGROUP->x(), qso_opGROUP->y(),
318 qso_opGROUP->h() * 3 / 4, qso_opGROUP->h());
319 qso_btnBW2->callback((Fl_Callback*)cb_qso_btnBW2);
320
321 qso_opBW2 = new Fl_ListBox(
322 qso_btnBW2->x()+qso_btnBW2->w(), qso_btnBW2->y(),
323 qso_opGROUP->w() - qso_btnBW2->w(), qso_btnBW2->h());
324 qso_opBW2->box(FL_DOWN_BOX);
325 qso_opBW2->color(FL_BACKGROUND2_COLOR);
326 qso_opBW2->selection_color(FL_BACKGROUND_COLOR);
327 qso_opBW2->labeltype(FL_NORMAL_LABEL);
328 qso_opBW2->labelfont(0);
329 qso_opBW2->labelsize(FL_NORMAL_SIZE);
330 qso_opBW2->labelcolor(FL_FOREGROUND_COLOR);
331 qso_opBW2->callback((Fl_Callback*)cb_qso_opBW2);
332 qso_opBW2->align(FL_ALIGN_TOP);
333 qso_opBW2->when(FL_WHEN_RELEASE);
334 qso_opBW2->end();
335
336 qso_opGROUP->end();
337 qso_opGROUP->hide();
338
339 qso_combos->end();
340
341 Fl_Button *smeter_toggle = new Fl_Button(
342 qso_opBW->x() + qso_opBW->w() + pad, smeter->y(), Wbtn, Hentry);
343 smeter_toggle->callback(cb_toggle_smeter, 0);
344 smeter_toggle->tooltip(_("Toggle smeter / combo controls"));
345 smeter_toggle->image(new Fl_Pixmap(tango_view_refresh));
346
347 qso_opPICK = new Fl_Button(
348 smeter_toggle->x() + Wbtn + pad, smeter->y(), Wbtn, Hentry);
349 addrbookpixmap = new Fl_Pixmap(address_book_icon);
350 qso_opPICK->image(addrbookpixmap);
351 qso_opPICK->callback(showOpBrowserView, 0);
352 qso_opPICK->tooltip(_("Open List"));
353
354 RigControlFrame->resizable(NULL);
355 RigControlFrame->end();
356 }
357 Fl_Group *rightframes = new Fl_Group(
358 rightof(RigControlFrame) + pad, RigControlFrame->y(),
359 W - rightof(RigControlFrame) - pad, Hqsoframe);
360 rightframes->box(FL_FLAT_BOX);
361 { // rightframes
362 RigViewerFrame = new Fl_Group(
363 rightframes->x(), rightframes->y(),
364 rightframes->w(), rightframes->h());
365 { // RigViewerFrame
366
367 qso_btnSelFreq = new Fl_Button(
368 RigViewerFrame->x(), RigViewerFrame->y() + pad,
369 Wbtn, Hentry);
370 qso_btnSelFreq->image(new Fl_Pixmap(left_arrow_icon));
371 qso_btnSelFreq->tooltip(_("Select"));
372 qso_btnSelFreq->callback((Fl_Callback*)cb_qso_btnSelFreq);
373
374 qso_btnAddFreq = new Fl_Button(
375 rightof(qso_btnSelFreq) + pad, RigViewerFrame->y() + pad,
376 Wbtn, Hentry);
377 qso_btnAddFreq->image(new Fl_Pixmap(plus_icon));
378 qso_btnAddFreq->tooltip(_("Add current frequency"));
379 qso_btnAddFreq->callback((Fl_Callback*)cb_qso_btnAddFreq);
380
381 qso_btnClearList = new Fl_Button(
382 RigViewerFrame->x(), RigViewerFrame->y() + Hentry + 2 * pad,
383 Wbtn, Hentry);
384 qso_btnClearList->image(new Fl_Pixmap(trash_icon));
385 qso_btnClearList->tooltip(_("Clear list"));
386 qso_btnClearList->callback((Fl_Callback*)cb_qso_btnClearList);
387
388 qso_btnDelFreq = new Fl_Button(
389 rightof(qso_btnClearList) + pad, RigViewerFrame->y() + Hentry + 2 * pad,
390 Wbtn, Hentry);
391 qso_btnDelFreq->image(new Fl_Pixmap(minus_icon));
392 qso_btnDelFreq->tooltip(_("Delete from list"));
393 qso_btnDelFreq->callback((Fl_Callback*)cb_qso_btnDelFreq);
394
395 qso_btnAct = new Fl_Button(
396 RigViewerFrame->x(), RigViewerFrame->y() + 2*(Hentry + pad) + pad,
397 Wbtn, Hentry);
398 qso_btnAct->image(new Fl_Pixmap(chat_icon));
399 qso_btnAct->callback(cb_qso_inpAct);
400 qso_btnAct->tooltip("Show active frequencies");
401
402 qso_inpAct = new Fl_Input2(
403 rightof(qso_btnAct) + pad, RigViewerFrame->y() + 2*(Hentry + pad) + pad,
404 Wbtn, Hentry);
405 qso_inpAct->when(FL_WHEN_ENTER_KEY);
406 qso_inpAct->callback(cb_qso_inpAct);
407 qso_inpAct->tooltip("Grid prefix for activity list");
408
409 // fwidths set in rigsupport.cxx
410 qso_opBrowser = new Fl_Browser(
411 rightof(qso_btnDelFreq) + pad, RigViewerFrame->y() + pad,
412 rightframes->w() - 2*Wbtn - pad, Hqsoframe - 2 * pad );
413 qso_opBrowser->column_widths(fwidths);
414 qso_opBrowser->column_char('|');
415 qso_opBrowser->tooltip(_("Select operating parameters"));
416 qso_opBrowser->callback((Fl_Callback*)cb_qso_opBrowser);
417 qso_opBrowser->type(FL_MULTI_BROWSER);
418 qso_opBrowser->box(FL_DOWN_BOX);
419 qso_opBrowser->labelfont(4);
420 qso_opBrowser->labelsize(12);
421 #ifdef __APPLE__
422 qso_opBrowser->textfont(FL_SCREEN_BOLD);
423 qso_opBrowser->textsize(13);
424 #else
425 qso_opBrowser->textfont(FL_HELVETICA);
426 qso_opBrowser->textsize(13);
427 #endif
428 opUsageFrame = new Fl_Group(
429 qso_opBrowser->x(),
430 qso_opBrowser->y(),
431 qso_opBrowser->w(), Hentry);
432 opUsageFrame->box(FL_DOWN_BOX);
433
434 opOutUsage = new Fl_Output(
435 opUsageFrame->x() + pad, opUsageFrame->y() + opUsageFrame->h() / 2 - Hentry / 2,
436 opUsageFrame->w() * 4 / 10, Hentry);
437 opOutUsage->color(FL_BACKGROUND_COLOR);
438
439 opUsage = new Fl_Input2(
440 opOutUsage->x() + opOutUsage->w() + pad,
441 opOutUsage->y(),
442 opUsageFrame->w() - opOutUsage->w() - 50 - 3 * pad,
443 Hentry);
444
445 opUsageEnter = new Fl_Button(
446 opUsage->x() + opUsage->w() , opUsage->y(),
447 50, Hentry, "Enter");
448 opUsageEnter->callback((Fl_Callback*)cb_opUsageEnter);
449
450 opUsageFrame->end();
451 opUsageFrame->hide();
452
453 RigViewerFrame->resizable(qso_opBrowser);
454
455 RigViewerFrame->end();
456 RigViewerFrame->hide();
457 }
458 int y2 = TopFrame1->y() + Hentry + 2 * pad;
459 int y3 = TopFrame1->y() + 2 * (Hentry + pad) + pad;
460
461 x_qsoframe = RigViewerFrame->x();
462 Logging_frame = new Fl_Group(
463 rightframes->x(), rightframes->y(),
464 rightframes->w(), rightframes->h());
465 { // Logging frame
466 { // buttons
467 btnQRZ = new Fl_Button(
468 x_qsoframe, qsoFreqDisp1->y(), Wbtn, Hentry);
469 btnQRZ->image(new Fl_Pixmap(net_icon));
470 btnQRZ->callback(cb_QRZ, 0);
471 btnQRZ->tooltip(_("QRZ"));
472
473 qsoClear = new Fl_Button(
474 x_qsoframe, btnQRZ->y() + pad + Wbtn, Wbtn, Hentry);
475 qsoClear->image(new Fl_Pixmap(edit_clear_icon));
476 qsoClear->callback(qsoClear_cb, 0);
477 qsoClear->tooltip(_("Clear"));
478
479 qsoSave = new Fl_Button(
480 x_qsoframe, qsoClear->y() + pad + Wbtn, Wbtn, Hentry);
481 qsoSave->image(new Fl_Pixmap(save_icon));
482 qsoSave->callback(qsoSave_cb, 0);
483 qsoSave->tooltip(_("Save"));
484 }
485 fl_font(progdefaults.LOGGINGtextfont, progdefaults.LOGGINGtextsize);
486 wf1 = fl_width("xFreq") + 90 +
487 Hentry +
488 40 +
489 fl_width("xOff") + 40 +
490 fl_width("xIn") + 35 +
491 fl_width("xOut") + 35;
492
493 Logging_frame_1 = new Fl_Group(
494 rightof(btnQRZ) + pad,
495 TopFrame1->y(), wf1, Hqsoframe);
496 { // Logging frame 1
497 { // Line 1
498 inpFreq1 = new Fl_Input2(
499 Logging_frame_1->x() + fl_width("xFreq"),
500 TopFrame1->y() + pad, 90, Hentry, _("Freq"));
501 inpFreq1->type(FL_NORMAL_OUTPUT);
502 inpFreq1->tooltip(_("frequency kHz"));
503 inpFreq1->align(FL_ALIGN_LEFT);
504
505 btnTimeOn = new Fl_Button(
506 rightof(inpFreq1), TopFrame1->y() + pad,
507 Hentry, Hentry, _("On"));
508 btnTimeOn->tooltip(_("Press to update QSO start time"));
509 btnTimeOn->callback(cb_btnTimeOn);
510
511 inpTimeOn1 = new Fl_Input2(
512 rightof(btnTimeOn), TopFrame1->y() + pad,
513 40, Hentry, "");
514 inpTimeOn1->tooltip(_("QSO start time"));
515 inpTimeOn1->align(FL_ALIGN_LEFT);
516 inpTimeOn1->type(FL_INT_INPUT);
517
518 inpTimeOff1 = new Fl_Input2(
519 rightof(inpTimeOn1) + fl_width("xOff"), TopFrame1->y() + pad,
520 40, Hentry, _("Off"));
521 inpTimeOff1->tooltip(_("QSO end time"));
522
523 inpRstIn1 = new Fl_Input2(
524 rightof(inpTimeOff1) + fl_width("xIn"), TopFrame1->y() + pad,
525 35, Hentry, _("In"));
526 inpRstIn1->tooltip("RST in");
527 inpRstIn1->align(FL_ALIGN_LEFT);
528
529 inpRstOut1 = new Fl_Input2(
530 rightof(inpRstIn1) + fl_width("xOut"), TopFrame1->y() + pad,
531 35, Hentry, _("Out"));
532 inpRstOut1->tooltip("RST out");
533 inpRstOut1->align(FL_ALIGN_LEFT);
534
535 inpCall1 = new Fl_Input2(
536 inpFreq1->x(), y2,
537 rightof(inpTimeOn1) - inpFreq1->x(),
538 Hentry, _("Call"));
539 inpCall1->tooltip(_("call sign"));
540 inpCall1->align(FL_ALIGN_LEFT);
541
542 inpName1 = new Fl_Input2(
543 inpTimeOff1->x(), y2,
544 rightof(inpRstIn1) - inpTimeOff1->x(),Hentry, _("Op"));
545 inpName1->tooltip(_("Operator name"));
546 inpName1->align(FL_ALIGN_LEFT);
547
548 inpAZ = new Fl_Input2(
549 inpRstOut1->x(), y2, 35, Hentry, "Az");
550 inpAZ->tooltip(_("Azimuth"));
551 inpAZ->align(FL_ALIGN_LEFT);
552
553 }
554 gGEN_QSO_1 = new Fl_Group (x_qsoframe, y3, wf1, Hentry + pad);
555 { // QSO frame 1
556 inpQth = new Fl_Input2(
557 inpCall1->x(), y3, inpCall1->w(), Hentry, "Qth");
558 inpQth->tooltip(_("QTH City"));
559 inpQth->align(FL_ALIGN_LEFT);
560 inpQTH = inpQth;
561
562 inpState1 = new Fl_Input2(
563 rightof(inpQth) + 20, y3, 30, Hentry, "St");
564 inpState1->tooltip(_("US State"));
565 inpState1->align(FL_ALIGN_LEFT);
566 inpState = inpState1;
567
568 inpVEprov = new Fl_Input2(
569 rightof(inpState1) + 20, y3, 30, Hentry, "Pr");
570 inpVEprov->tooltip(_("Can. Province"));
571 inpVEprov->align(FL_ALIGN_LEFT);
572
573 inpLoc1 = new Fl_Input2(
574 rightof(inpVEprov) + 15, y3,
575 rightof(inpAZ) - (rightof(inpVEprov) + 15), Hentry, "L");
576 inpLoc1->tooltip(_("Maidenhead Locator"));
577 inpLoc1->align(FL_ALIGN_LEFT);
578
579 gGEN_QSO_1->end();
580 }
581 gGEN_CONTEST = new Fl_Group (
582 Logging_frame_1->x(), y3, wf1, Hentry + pad);
583 { // Contest - LOG_GENERIC
584 outSerNo1 = new Fl_Input2(
585 inpFreq1->x(), y3,
586 40, Hentry,
587 "S#");
588 outSerNo1->align(FL_ALIGN_LEFT);
589 outSerNo1->tooltip(_("Sent serial number (read only)"));
590 outSerNo1->type(FL_NORMAL_OUTPUT);
591
592 inpSerNo1 = new Fl_Input2(
593 rightof(outSerNo1) + fl_width("xR#"), y3,
594 40, Hentry,
595 "R#");
596 inpSerNo1->align(FL_ALIGN_LEFT);
597 inpSerNo1->tooltip(_("Received serial number"));
598
599 xtmp = rightof(inpSerNo1) + fl_width("xXch");
600 inpXchgIn1 = new Fl_Input2(
601 xtmp, y3,
602 Logging_frame_1->x() + Logging_frame_1->w() - xtmp, Hentry,
603 "Xch");
604 inpXchgIn1->align(FL_ALIGN_LEFT);
605 inpXchgIn1->tooltip(_("Contest exchange in"));
606
607 gGEN_CONTEST->end();
608 gGEN_CONTEST->hide();
609 }
610 gFD = new Fl_Group (
611 Logging_frame_1->x(), y3, wf1, Hentry + pad);
612 { // Field Day - LOG_FD
613 inp_FD_class1 = new Fl_Input2(
614 Logging_frame_1->x() + fl_width("xClass"), y3, 40, Hentry,
615 "Class");
616 inp_FD_class1->align(FL_ALIGN_LEFT);
617 inp_FD_class1->tooltip(_("Received FD class"));
618 inp_FD_class1->type(FL_NORMAL_INPUT);
619
620 inp_FD_section1 = new Fl_Input2(
621 rightof(inp_FD_class1) + fl_width("xSection"), y3, 40, Hentry,
622 "Section");
623 inp_FD_section1->align(FL_ALIGN_LEFT);
624 inp_FD_section1->tooltip(_("Received FD section"));
625 inp_FD_section1->type(FL_NORMAL_INPUT);
626 gFD->end();
627 gFD->hide();
628 }
629 gKD_1 = new Fl_Group (
630 Logging_frame_1->x(), y3, wf1, Hentry + pad);
631 { // ARRL Kids Day - LOG_KD
632 inp_KD_age1 = new Fl_Input2(
633 inpCall1->x(), y3, 40, Hentry,
634 "Age");
635 inp_KD_age1->align(FL_ALIGN_LEFT);
636 inp_KD_age1->tooltip(_("Guest operators age"));
637 inp_KD_age1->type(FL_NORMAL_INPUT);
638
639 inp_KD_state1 = new Fl_Input2(
640 rightof(inp_KD_age1) + fl_width("xSt"), y3, 40, Hentry,
641 "St");
642 inp_KD_state1->align(FL_ALIGN_LEFT);
643 inp_KD_state1->tooltip(_("Station state"));
644 inp_KD_state1->type(FL_NORMAL_INPUT);
645
646 inp_KD_VEprov1 = new Fl_Input2(
647 rightof(inp_KD_state1) + fl_width("xPr"), y3, 40, Hentry,
648 "Pr");
649 inp_KD_VEprov1->align(FL_ALIGN_LEFT);
650 inp_KD_VEprov1->tooltip(_("Station province"));
651 inp_KD_VEprov1->type(FL_NORMAL_INPUT);
652
653 inp_KD_XchgIn1 = new Fl_Input2(
654 rightof(inp_KD_VEprov1) + fl_width("xXchg"), y3,
655 gKD_1->x() + gKD_1->w() - (rightof(inp_KD_VEprov1) + fl_width("xXchg")), Hentry,
656 "Xch");
657 inp_KD_XchgIn1->align(FL_ALIGN_LEFT);
658 inp_KD_XchgIn1->tooltip(_("Additional Exchange"));
659 inp_KD_XchgIn1->type(FL_NORMAL_INPUT);
660 gKD_1->end();
661 gKD_1->hide();
662 }
663 gARR = new Fl_Group (
664 Logging_frame_1->x(), y3, wf1, Hentry + pad);
665 { // LOG_ARR rookie roundup
666 inp_ARR_check1 = new Fl_Input2(
667 inpCall1->x(), y3, 40, Hentry,
668 "Chk");
669 inp_ARR_check1->align(FL_ALIGN_LEFT);
670 inp_ARR_check1->tooltip(_("Check / birth-year"));
671 inp_ARR_check1->type(FL_NORMAL_INPUT);
672
673 inp_ARR_XchgIn1 = new Fl_Input2(
674 rightof(inp_ARR_check1) + fl_width("xXchg"), y3,
675 gARR->x() + gARR->w() - (rightof(inp_ARR_check1) + fl_width("xXchg")), Hentry,
676 "Xchg");
677 inp_ARR_XchgIn1->align(FL_ALIGN_LEFT);
678 inp_ARR_XchgIn1->tooltip(_("Round Up Exchange - State, Province, Country"));
679 inp_ARR_XchgIn1->type(FL_NORMAL_INPUT);
680 gARR->end();
681 gARR->hide();
682 }
683 g1010 = new Fl_Group (
684 Logging_frame_1->x(), y3, wf1, Hentry + pad);
685 { // LOG_1010
686 inp_1010_nr1 = new Fl_Input2(
687 g1010->x() + fl_width("x1010#"), y3, 60, Hentry,
688 "1010#");
689 inp_1010_nr1->align(FL_ALIGN_LEFT);
690 inp_1010_nr1->tooltip(_("1010 number"));
691 inp_1010_nr1->type(FL_NORMAL_INPUT);
692
693 inp_1010_XchgIn1 = new Fl_Input2(
694 rightof(inp_1010_nr1) + fl_width("xXchg"), y3,
695 g1010->x() + g1010->w() - (rightof(inp_1010_nr1) + fl_width("xXchg")), Hentry,
696 "Xchg");
697 inp_1010_XchgIn1->align(FL_ALIGN_LEFT);
698 inp_1010_XchgIn1->tooltip(_("1010 exchange"));
699 inp_1010_XchgIn1->type(FL_NORMAL_INPUT);
700
701 g1010->end();
702 g1010->hide();
703 }
704 gVHF = new Fl_Group (
705 Logging_frame_1->x(), y3, wf1, Hentry + pad);
706 { // LOG_VHF
707 inp_vhf_RSTin1 = new Fl_Input2(
708 gVHF->x() + fl_width("xRSTin"), y3, 60, Hentry,
709 "RSTin");
710 inp_vhf_RSTin1->align(FL_ALIGN_LEFT);
711 inp_vhf_RSTin1->tooltip(_("Received RST"));
712 inp_vhf_RSTin1->type(FL_NORMAL_INPUT);
713
714 inp_vhf_RSTout1 = new Fl_Input2(
715 rightof(inp_vhf_RSTin1) + fl_width("xout"), y3, 60, Hentry,
716 "out");
717 inp_vhf_RSTout1->align(FL_ALIGN_LEFT);
718 inp_vhf_RSTout1->tooltip(_("Sent RST"));
719 inp_vhf_RSTout1->type(FL_NORMAL_INPUT);
720
721 inp_vhf_Loc1 = new Fl_Input2(
722 rightof(inp_vhf_RSTout1) + fl_width("xGrid"), y3, 80, Hentry,
723 "Grid");
724 inp_vhf_Loc1->align(FL_ALIGN_LEFT);
725 inp_vhf_Loc1->tooltip(_("Grid Locator"));
726 inp_vhf_Loc1->type(FL_NORMAL_INPUT);
727
728 gVHF->end();
729 gVHF->hide();
730 }
731 gCQWW_RTTY = new Fl_Group (
732 Logging_frame_1->x(), y3, wf1, Hentry + pad);
733 { // CQWW RTTY - LOG_CQWW_RTTY
734
735 inp_CQzone1 = new Fl_Input2(
736 gCQWW_RTTY->x() + fl_width("xCQz"), y3, 40, Hentry,
737 "CQz");
738 inp_CQzone1->align(FL_ALIGN_LEFT);
739 inp_CQzone1->tooltip(_("Received CQ zone"));
740 inp_CQzone1->type(FL_NORMAL_INPUT);
741
742 inp_CQstate1 = new Fl_Input2(
743 rightof(inp_CQzone1) + fl_width("xCQs"), y3, 40, Hentry,
744 "CQs");
745 inp_CQstate1->align(FL_ALIGN_LEFT);
746 inp_CQstate1->tooltip(_("Received State/Prov"));
747 inp_CQstate1->type(FL_NORMAL_INPUT);
748
749 gCQWW_RTTY->end();
750 gCQWW_RTTY->hide();
751 }
752 gCQWW_DX = new Fl_Group (
753 Logging_frame_1->x(), y3, wf1, Hentry + pad);
754 { // CQWW DX -- LOG_CQWWDX0
755 inp_CQDXzone1 = new Fl_Input2(
756 gCQWW_DX->x() + fl_width("xCQz"), y3, 40, Hentry,
757 "CQz");
758 inp_CQDXzone1->align(FL_ALIGN_LEFT);
759 inp_CQDXzone1->tooltip(_("Received CQ zone"));
760 inp_CQDXzone1->type(FL_NORMAL_INPUT);
761
762 gCQWW_DX->end();
763 gCQWW_DX->hide();
764 }
765 gCQWPX = new Fl_Group (
766 Logging_frame_1->x(), y3, wf1, Hentry + pad);
767 { // LOG_CQWPX
768 outSerNo_WPX1 = new Fl_Input2(
769 inpCall1->x(), y3, 40, Hentry,
770 "S #");
771 outSerNo_WPX1->align(FL_ALIGN_LEFT);
772 outSerNo_WPX1->tooltip(_("Sent serno"));
773 outSerNo_WPX1->type(FL_NORMAL_OUTPUT);
774
775 inpSerNo_WPX1 = new Fl_Input2(
776 rightof(outSerNo_WPX1) + fl_width("xR#"), y3, 40, Hentry,
777 "R#");
778 inpSerNo_WPX1->align(FL_ALIGN_LEFT);
779 inpSerNo_WPX1->tooltip(_("Received serno"));
780 inpSerNo_WPX1->type(FL_NORMAL_INPUT);
781
782 gCQWPX->end();
783 gCQWPX->hide();
784 }
785 gCWSS = new Fl_Group (
786 Logging_frame_1->x(), y3, wf1, Hentry + pad);
787 { // CW Sweepstakes - LOG_CWSS
788 outSerNo3 = new Fl_Input2(
789 inpCall1->x(), y3, 40, Hentry,
790 "S#");
791 outSerNo3->align(FL_ALIGN_LEFT);
792 outSerNo3->tooltip(_("Sent serno"));
793 outSerNo3->type(FL_NORMAL_OUTPUT);
794
795 inp_SS_SerialNoR1 = new Fl_Input2(
796 rightof(outSerNo3) + fl_width("xR#"), y3, 40, Hentry,
797 "R#");
798 inp_SS_SerialNoR1->align(FL_ALIGN_LEFT);
799 inp_SS_SerialNoR1->tooltip(_("Received serno"));
800 inp_SS_SerialNoR1->type(FL_NORMAL_INPUT);
801
802 inp_SS_Precedence1 = new Fl_Input2(
803 rightof(inp_SS_SerialNoR1) + fl_width("xPre"), y3, 40, Hentry,
804 "Pre");
805 inp_SS_Precedence1->align(FL_ALIGN_LEFT);
806 inp_SS_Precedence1->tooltip(_("SS Precedence"));
807 inp_SS_Precedence1->type(FL_NORMAL_INPUT);
808
809 inp_SS_Check1 = new Fl_Input2(
810 rightof(inp_SS_Precedence1) + fl_width("xChk"), y3, 40, Hentry,
811 "Chk");
812 inp_SS_Check1->align(FL_ALIGN_LEFT);
813 inp_SS_Check1->tooltip(_("SS Check"));
814 inp_SS_Check1->type(FL_NORMAL_INPUT);
815
816 inp_SS_Section1 = new Fl_Input2(
817 rightof(inp_SS_Check1) + fl_width("xSec"), y3, 40, Hentry,
818 "Sec");
819 inp_SS_Section1->align(FL_ALIGN_LEFT);
820 inp_SS_Section1->tooltip(_("SS section"));
821 inp_SS_Section1->type(FL_NORMAL_INPUT);
822
823 gCWSS->end();
824 gCWSS->hide();
825 }
826 gASCR = new Fl_Group (
827 Logging_frame_1->x(), y3, wf1, Hentry + pad);
828 { // School Roundup - LOG_ASCR
829 inp_ASCR_class1 = new Fl_Input2(
830 Logging_frame_1->x() + fl_width("xClass"), y3, 30, Hentry,
831 "Class");
832 inp_ASCR_class1->align(FL_ALIGN_LEFT);
833 inp_ASCR_class1->tooltip(_("ASCR class, I/C/S"));
834 inp_ASCR_class1->type(FL_NORMAL_INPUT);
835 inp_ASCR_class1->hide();
836
837 xtmp = rightof(inp_ASCR_class1) + fl_width("xSPC");
838 inp_ASCR_XchgIn1 = new Fl_Input2(
839 xtmp, y3,
840 Logging_frame_1->x() + Logging_frame_1->w() - xtmp - pad, Hentry,
841 "SPC");
842 inp_ASCR_XchgIn1->align(FL_ALIGN_LEFT);
843 inp_ASCR_XchgIn1->tooltip(_("State/Province/Country received"));
844 inp_ASCR_XchgIn1->type(FL_NORMAL_INPUT);
845 inp_ASCR_XchgIn1->hide();
846 gASCR->end();
847 gASCR->hide();
848 }
849 gIARI = new Fl_Group (
850 Logging_frame_1->x(), y3, wf1, Hentry + pad);
851 { // IARI - Italian International DX LOG_IARI
852 inp_IARI_PR1 = new Fl_Input2(
853 inpCall1->x(), y3, 40, Hentry,
854 "Pr");
855 inp_IARI_PR1->align(FL_ALIGN_LEFT);
856 inp_IARI_PR1->tooltip(_("Received Province / Ser #"));
857 inp_IARI_PR1->type(FL_NORMAL_INPUT);
858
859 out_IARI_SerNo1 = new Fl_Input2(
860 rightof(inp_IARI_PR1) + fl_width("xS#"), y3, 40, Hentry,
861 "S#");
862 out_IARI_SerNo1->align(FL_ALIGN_LEFT);
863 out_IARI_SerNo1->tooltip(_("Sent serno"));
864 out_IARI_SerNo1->type(FL_NORMAL_OUTPUT);
865
866 inp_IARI_SerNo1 = new Fl_Input2(
867 rightof(out_IARI_SerNo1) + fl_width("xR#"), y3, 40, Hentry,
868 "R#");
869 inp_IARI_SerNo1->align(FL_ALIGN_LEFT);
870 inp_IARI_SerNo1->tooltip(_("Received serno"));
871 inp_IARI_SerNo1->type(FL_NORMAL_INPUT);
872
873 gIARI->end();
874 gIARI->hide();
875 }
876 gNAQP = new Fl_Group(
877 Logging_frame_1->x(), y3, wf1, Hentry + pad);
878 { // North American Qso Party - LOG_NAQP
879 inpSPCnum_NAQP1 = new Fl_Input2(
880 Logging_frame_1->x() + fl_width("xNAQP xchg"), y3, 100, Hentry,
881 "NAQP xchg");
882 inpSPCnum_NAQP1->align(FL_ALIGN_LEFT);
883 inpSPCnum_NAQP1->tooltip(_("Received State/Province/Country"));
884 inpSPCnum_NAQP1->type(FL_NORMAL_INPUT);
885 inpSPCnum_NAQP1->hide();
886 gNAQP->end();
887 gNAQP->hide();
888 }
889 gARRL_RTTY = new Fl_Group(
890 Logging_frame_1->x(), y3, wf1, Hentry + pad);
891 { // LOG_RTTY ARRL RTTY Roundup
892 inpRTU_stpr1 = new Fl_Input2(
893 inpCall1->x(), y3, fl_width("xWWW"), Hentry,
894 "S/P");
895 inpRTU_stpr1->align(FL_ALIGN_LEFT);
896 inpRTU_stpr1->tooltip(_("State/Province/#"));
897 inpRTU_stpr1->type(FL_NORMAL_INPUT);
898
899 xtmp = rightof(inpRTU_stpr1) + fl_width("xSer");
900 inpRTU_serno1 = new Fl_Input2(
901 xtmp, y3, fl_width("x9999"), Hentry, "Ser");
902 inpRTU_serno1->align(FL_ALIGN_LEFT);
903 inpRTU_serno1->tooltip(_("Serial number received"));
904 inpRTU_serno1->type(FL_NORMAL_INPUT);
905
906 gARRL_RTTY->end();
907 gARRL_RTTY->hide();
908 }
909 gNAS = new Fl_Group (
910 Logging_frame_1->x(), y3, wf1, Hentry + pad);
911 { // NA Sprint - LOG_NAS
912 outSerNo5 = new Fl_Input2(
913 Logging_frame_1->x() + fl_width("xS#"), y3, 40, Hentry,
914 "S#");
915 outSerNo5->align(FL_ALIGN_LEFT);
916 outSerNo5->tooltip(_("Sent serial number"));
917 outSerNo5->type(FL_NORMAL_OUTPUT);
918 outSerNo5->hide();
919
920 xtmp = rightof(outSerNo5) + fl_width("xR#");
921 inp_ser_NAS1 = new Fl_Input2(
922 xtmp, y3, 40, Hentry,
923 "R #");
924 inp_ser_NAS1->align(FL_ALIGN_LEFT);
925 inp_ser_NAS1->tooltip(_("Received serial number"));
926 inp_ser_NAS1->type(FL_NORMAL_INPUT);
927 inp_ser_NAS1->hide();
928
929 xtmp = rightof(inp_ser_NAS1) + fl_width("xS/P/C");
930 inpSPCnum_NAS1 = new Fl_Input2(
931 xtmp, y3,
932 Logging_frame_1->x() + Logging_frame_1->w() - xtmp - pad, Hentry,
933 "S/P/C");
934 inpSPCnum_NAS1->align(FL_ALIGN_LEFT);
935 inpSPCnum_NAS1->tooltip(_("State/Province/Country received"));
936 inpSPCnum_NAS1->type(FL_NORMAL_INPUT);
937 inpSPCnum_NAS1->hide();
938
939 gASCR->end();
940 gASCR->hide();
941 }
942 gAIDX = new Fl_Group (
943 Logging_frame_1->x(), y3, wf1, Hentry + pad);
944 { // LOG_AAM
945 outSerNo7 = new Fl_Input2(
946 Logging_frame_1->x() + fl_width("xS#"), y3, 40, Hentry,
947 "S#");
948 outSerNo7->align(FL_ALIGN_LEFT);
949 outSerNo7->tooltip(_("Sent serial number"));
950 outSerNo7->type(FL_NORMAL_OUTPUT);
951 outSerNo7->hide();
952
953 xtmp = rightof(outSerNo7) + fl_width("xR#");
954 inpSerNo3 = new Fl_Input2(
955 xtmp, y3, 40, Hentry,
956 "R#");
957 inpSerNo3->align(FL_ALIGN_LEFT);
958 inpSerNo3->tooltip(_("Received serial number"));
959 inpSerNo3->type(FL_NORMAL_INPUT);
960 inpSerNo3->hide();
961
962 gAIDX->end();
963 gAIDX->hide();
964 }
965 gJOTA = new Fl_Group (
966 Logging_frame_1->x(), y3, wf1, Hentry + pad);
967 { // LOG_JOTA - Jamboree On The Air
968 xtmp = Logging_frame_1->x() + fl_width("xTroop");
969 inp_JOTA_troop1 = new Fl_Input2(
970 xtmp, y3, 60, Hentry,
971 "Troop");
972 inp_JOTA_troop1->align(FL_ALIGN_LEFT);
973 inp_JOTA_troop1->tooltip(_("Troop received"));
974 inp_JOTA_troop1->type(FL_NORMAL_INPUT);
975 inp_JOTA_troop1->hide();
976
977 xtmp = rightof(inp_JOTA_troop1) + fl_width("xScout");
978 inp_JOTA_scout1 = new Fl_Input2(
979 xtmp, y3, 80, Hentry,
980 "Scout");
981 inp_JOTA_scout1->align(FL_ALIGN_LEFT);
982 inp_JOTA_scout1->tooltip(_("Scout name received"));
983 inp_JOTA_scout1->type(FL_NORMAL_INPUT);
984 inp_JOTA_scout1->hide();
985
986 xtmp = rightof(inp_JOTA_scout1) + fl_width("xS/P/C");
987 inp_JOTA_spc1 = new Fl_Input2(
988 xtmp, y3,
989 Logging_frame_1->x() + Logging_frame_1->w() - xtmp - pad, Hentry,
990 "S/P/C");
991 inp_JOTA_spc1->align(FL_ALIGN_LEFT);
992 inp_JOTA_spc1->tooltip(_("State/Province/Country received"));
993 inp_JOTA_spc1->type(FL_NORMAL_INPUT);
994 inp_JOTA_spc1->hide();
995
996 gJOTA->end();
997 gJOTA->hide();
998 }
999 gAICW = new Fl_Group (
1000 Logging_frame_1->x(), y3, wf1, Hentry + pad);
1001 { // LOG_AICW - ARRL International DX - CW
1002 xtmp = Logging_frame_1->x() + fl_width("xPwr-R");
1003 inpSPCnum_AICW1 = new Fl_Input2(
1004 xtmp, y3, 60, Hentry,
1005 "Pwr-R");
1006 inpSPCnum_AICW1->align(FL_ALIGN_LEFT);
1007 inpSPCnum_AICW1->tooltip(_("Power received"));
1008 inpSPCnum_AICW1->type(FL_NORMAL_INPUT);
1009 inpSPCnum_AICW1->hide();
1010
1011 gAICW->end();
1012 gAICW->hide();
1013 }
1014 gSQSO = new Fl_Group (
1015 Logging_frame_1->x(), y3, wf1, Hentry + pad);
1016 { // LOG_SQSO - all state QSO party controls
1017
1018 xtmp = inpCall1->x();
1019 inpSQSO_state1 = new Fl_Input2(
1020 xtmp, y3, fl_width("xWW"), Hentry,
1021 "St");
1022 inpSQSO_state1->align(FL_ALIGN_LEFT);
1023 inpSQSO_state1->tooltip(_("State received"));
1024 inpSQSO_state1->type(FL_NORMAL_INPUT);
1025 inpSQSO_state1->hide();
1026
1027 xtmp = rightof(inpSQSO_state1) + fl_width("xCnty");
1028 inpSQSO_county1 = new Fl_Input2(
1029 xtmp, y3, fl_width("WWWWW"), Hentry,
1030 "Cnty");
1031 inpSQSO_county1->align(FL_ALIGN_LEFT);
1032 inpSQSO_county1->tooltip(_("County received"));
1033 inpSQSO_county1->type(FL_NORMAL_INPUT);
1034 inpSQSO_county1->hide();
1035
1036 inpCounty = inpSQSO_county1;
1037
1038 xtmp = rightof(inpSQSO_county1) + fl_width("xS#");
1039 outSQSO_serno1 = new Fl_Input2(
1040 xtmp, y3, fl_width("9999"), Hentry,
1041 "S#");
1042 outSQSO_serno1->align(FL_ALIGN_LEFT);
1043 outSQSO_serno1->tooltip(_("Sent serial number"));
1044 outSQSO_serno1->type(FL_NORMAL_INPUT);
1045 outSQSO_serno1->hide();
1046
1047 xtmp = rightof(outSQSO_serno1) + fl_width("xR#");
1048 inpSQSO_serno1 = new Fl_Input2(
1049 xtmp, y3, fl_width("9999"), Hentry,
1050 "R#");
1051 inpSQSO_serno1->align(FL_ALIGN_LEFT);
1052 inpSQSO_serno1->tooltip(_("Received serial number"));
1053 inpSQSO_serno1->type(FL_NORMAL_INPUT);
1054 inpSQSO_serno1->hide();
1055
1056 xtmp = rightof(inpSQSO_serno1) + fl_width("x Cat");
1057 inpSQSO_category1 = new Fl_Input2(
1058 xtmp, y3, gSQSO->x() + gSQSO->w() - xtmp - pad, Hentry,
1059 "Cat");
1060 inpSQSO_category1->tooltip(_("Category: CLB, MOB, QRP, STD"));
1061 inpSQSO_category1->type(FL_NORMAL_INPUT);
1062 inpSQSO_category1->hide();
1063
1064 inpSQSO_category = inpSQSO_category1;
1065
1066 gSQSO->end();
1067 gSQSO->hide();
1068 }
1069 gWAE = new Fl_Group (
1070 Logging_frame_1->x(), y3, wf1, Hentry + pad);
1071 { // LOG_WAE
1072 outSerNo_WAE1 = new Fl_Input2(
1073 inpCall1->x(), y3, 40, Hentry,
1074 "S #");
1075 outSerNo_WAE1->align(FL_ALIGN_LEFT);
1076 outSerNo_WAE1->tooltip(_("Sent serno"));
1077 outSerNo_WAE1->type(FL_NORMAL_OUTPUT);
1078
1079 inpSerNo_WAE1 = new Fl_Input2(
1080 rightof(outSerNo_WAE1) + fl_width("xR#"), y3, 40, Hentry,
1081 "R#");
1082 inpSerNo_WAE1->align(FL_ALIGN_LEFT);
1083 inpSerNo_WAE1->tooltip(_("Received serno"));
1084 inpSerNo_WAE1->type(FL_NORMAL_INPUT);
1085
1086 // xtmp = rightof(inpSerNo_WAE1) + fl_width("xCntry");
1087 // cboCountryWAE1 = new Fl_ComboBox(
1088 // xtmp, y3,
1089 // Logging_frame_1->x() + Logging_frame_1->w() - xtmp - pad, Hentry,
1090 // "Cntry");
1091 // cboCountryWAE1->align(FL_ALIGN_LEFT);
1092 // cboCountryWAE1->tooltip(_("Country"));
1093 // cboCountryWAE1->end();
1094
1095 gWAE->end();
1096 gWAE->hide();
1097 }
1098
1099 Logging_frame_1->resizable(NULL);
1100 Logging_frame_1->end();
1101 }
1102 { // NFtabs groups // Logging frame 2
1103 int nfx = rightof(Logging_frame_1) + pad;
1104 int nfy = Logging_frame_1->y();
1105 int nfw = W - nfx - pad;
1106 int nfh = Logging_frame_1->h();
1107
1108 NFtabs = new Fl_Tabs(nfx, nfy, nfw, nfh, "");
1109
1110 int cax = nfx + pad;
1111 int caw = nfw - 2*pad;
1112 int cay = nfy + Hentry;
1113 int cah = nfh - Hentry;
1114
1115 Ccframe = new Fl_Group(cax, cay, caw, cah, "Cnty/Cntry");
1116
1117 cboCountyQSO = new Fl_ComboBox(
1118 cax + pad, inpCall1->y(), caw - 2*pad, Hentry, "");
1119 cboCountyQSO->tooltip(_("County"));
1120 cboCountyQSO->callback(cb_CountyQSO);
1121 cboCountyQSO->readonly();
1122 cboCountyQSO->end();
1123
1124 cboCountryQSO = new Fl_ComboBox(
1125 cax + pad, inpQth->y(), caw - 2*pad, Hentry, "");
1126 cboCountryQSO->tooltip(_("Country"));
1127 cboCountryQSO->readonly();
1128 cboCountryQSO->end();
1129
1130 Ccframe->end();
1131
1132 NotesFrame = new Fl_Group(cax, cay, caw, cah,"Notes");
1133
1134 inpNotes = new Fl_Input2(
1135 cax + pad, cay + pad, caw-2*pad, cah-2*pad, "");
1136 inpNotes->type(FL_MULTILINE_INPUT);
1137 inpNotes->tooltip(_("Notes"));
1138
1139 NotesFrame->end();
1140
1141 NFtabs->end();
1142 }
1143 // NFtabs end
1144
1145 ifkp_avatar = new picture(
1146 W - 59 - pad, NFtabs->y(), 59, 74);
1147 ifkp_avatar->box(FL_FLAT_BOX);
1148 ifkp_avatar->noslant();
1149 ifkp_avatar->callback(cb_ifkp_send_avatar);
1150 ifkp_avatar->tooltip(_("Left click - save avatar\nRight click - send my avatar"));
1151 ifkp_load_avatar();
1152 ifkp_avatar->hide();
1153
1154 thor_avatar = new picture(
1155 W - 59 - pad, NFtabs->y(), 59, 74);
1156 thor_avatar->box(FL_FLAT_BOX);
1157 thor_avatar->noslant();
1158 thor_avatar->callback(cb_thor_send_avatar);
1159 thor_avatar->tooltip(_("Left click - save avatar\nRight click - send my avatar"));
1160 thor_load_avatar();
1161 thor_avatar->hide();
1162
1163 Logging_frame->end();
1164 Logging_frame->resizable(NFtabs);
1165 // Logging_frame->resizable(Logging_frame_2);
1166 }
1167 rightframes->end();
1168 }
1169 TopFrame1->resizable(rightframes);
1170 TopFrame1->end();
1171 }
1172 TopFrame2 = new Fl_Group(0, TopFrame1->y(), W, Hentry + 2 * pad);
1173 { // TopFrame2
1174 int y = TopFrame1->y() + pad;
1175 int h = Hentry;
1176 qsoFreqDisp2 = new cFreqControl(
1177 pad, y,
1178 freqwidth, freqheight, "10");
1179 qsoFreqDisp2->box(FL_DOWN_BOX);
1180 qsoFreqDisp2->color(FL_BACKGROUND_COLOR);
1181 qsoFreqDisp2->selection_color(FL_BACKGROUND_COLOR);
1182 qsoFreqDisp2->labeltype(FL_NORMAL_LABEL);
1183 qsoFreqDisp2->align(FL_ALIGN_CENTER);
1184 qsoFreqDisp2->when(FL_WHEN_RELEASE);
1185 qsoFreqDisp2->callback(qso_movFreq);
1186 qsoFreqDisp2->font(progdefaults.FreqControlFontnbr);
1187 qsoFreqDisp2->SetONOFFCOLOR(
1188 fl_rgb_color( progdefaults.FDforeground.R,
1189 progdefaults.FDforeground.G,
1190 progdefaults.FDforeground.B),
1191 fl_rgb_color( progdefaults.FDbackground.R,
1192 progdefaults.FDbackground.G,
1193 progdefaults.FDbackground.B));
1194 qsoFreqDisp2->value(0);
1195
1196 qso_opPICK2 = new Fl_Button(
1197 rightof(qsoFreqDisp2), y,
1198 Wbtn, Hentry);
1199 qso_opPICK2->align(FL_ALIGN_INSIDE);
1200 qso_opPICK2->image(addrbookpixmap);
1201 qso_opPICK2->callback(showOpBrowserView2, 0);
1202 qso_opPICK2->tooltip(_("Open List"));
1203
1204 btnQRZ2 = new Fl_Button(
1205 pad + rightof(qso_opPICK2), y,
1206 Wbtn, Hentry);
1207 btnQRZ2->align(FL_ALIGN_INSIDE);
1208 btnQRZ2->image(new Fl_Pixmap(net_icon));
1209 btnQRZ2->callback(cb_QRZ, 0);
1210 btnQRZ2->tooltip(_("QRZ"));
1211
1212 qsoClear2 = new Fl_Button(
1213 pad + rightof(btnQRZ2), y,
1214 Wbtn, Hentry);
1215 qsoClear2->align(FL_ALIGN_INSIDE);
1216 qsoClear2->image(new Fl_Pixmap(edit_clear_icon));
1217 qsoClear2->callback(qsoClear_cb, 0);
1218 qsoClear2->tooltip(_("Clear"));
1219
1220 qsoSave2 = new Fl_Button(
1221 pad + rightof(qsoClear2), y,
1222 Wbtn, Hentry);
1223 qsoSave2->align(FL_ALIGN_INSIDE);
1224 qsoSave2->image(new Fl_Pixmap(save_icon));
1225 qsoSave2->callback(qsoSave_cb, 0);
1226 qsoSave2->tooltip(_("Save"));
1227
1228 const char *label2 = _("On");
1229 btnTimeOn2 = new Fl_Button(
1230 pad + rightof(qsoSave2), y,
1231 static_cast<int>(fl_width(label2)), h, label2);
1232 btnTimeOn2->tooltip(_("Press to update"));
1233 btnTimeOn2->callback(cb_btnTimeOn);
1234 inpTimeOn2 = new Fl_Input2(
1235 pad + btnTimeOn2->x() + btnTimeOn2->w(), y,
1236 w_inpTime2, h, "");
1237 inpTimeOn2->tooltip(_("Time On"));
1238 inpTimeOn2->type(FL_INT_INPUT);
1239
1240 const char *label3 = _("Off");
1241 Fl_Box *bx3 = new Fl_Box(pad + rightof(inpTimeOn2), y,
1242 static_cast<int>(fl_width(label3)), h, label3);
1243 inpTimeOff2 = new Fl_Input2(
1244 pad + bx3->x() + bx3->w(), y,
1245 w_inpTime2, h, "");
1246 inpTimeOff2->tooltip(_("Time Off"));
1247 inpTimeOff2->type(FL_NORMAL_OUTPUT);
1248
1249 const char *label4 = _("Call");
1250 Fl_Box *bx4 = new Fl_Box(pad + rightof(inpTimeOff2), y,
1251 static_cast<int>(fl_width(label4)), h, label4);
1252 inpCall2 = new Fl_Input2(
1253 pad + bx4->x() + bx4->w(), y,
1254 w_inpCall2, h, "");
1255 inpCall2->tooltip(_("Other call"));
1256
1257 const char *label6 = _("In");
1258 Fl_Box *bx6 = new Fl_Box(pad + rightof(inpCall2), y,
1259 static_cast<int>(fl_width(label6)), h, label6);
1260 inpRstIn2 = new Fl_Input2(
1261 pad + bx6->x() + bx6->w(), y,
1262 w_inpRstIn2, h, "");
1263 inpRstIn2->tooltip(_("Received RST"));
1264
1265 const char *label7 = _("Out");
1266 Fl_Box *bx7 = new Fl_Box(pad + rightof(inpRstIn2), y,
1267 static_cast<int>(fl_width(label7)), h, label7);
1268 inpRstOut2 = new Fl_Input2(
1269 pad + bx7->x() + bx7->w(), y,
1270 w_inpRstOut2, h, "");
1271 inpRstOut2->tooltip(_("Sent RST"));
1272
1273 const char *label5 = _("Nm");
1274 Fl_Box *bx5 = new Fl_Box(pad + rightof(inpRstOut2), y,
1275 static_cast<int>(fl_width(label5)), h, label5);
1276 int xn = pad + bx5->x() + bx5->w();
1277 inpName2 = new Fl_Input2(
1278 xn, y,
1279 W - xn - pad, h, "");
1280 inpName2->tooltip(_("Other name"));
1281
1282 TopFrame2->resizable(inpName2);
1283 TopFrame2->end();
1284 TopFrame2->hide();
1285 }
1286 TopFrame3 = new Fl_Group(0, TopFrame1->y(), W, Hentry + 2 * pad);
1287 { // TopFrame3
1288
1289 int y = TopFrame3->y() + pad;
1290 int h = Hentry;
1291
1292 fl_font(progdefaults.LOGGINGtextfont, progdefaults.LOGGINGtextsize);
1293 const char *xData = "x8888";
1294 const char *xCall = "xWW8WWW";
1295 const char *xRST = "x599";
1296 int wData = static_cast<int>(fl_width(xData));
1297 int wCall = static_cast<int>(fl_width(xCall));
1298 int wRST = static_cast<int>(fl_width(xRST));
1299
1300 int w3a = pad + freqwidth +
1301 3*(pad + Wbtn) +
1302 fl_width("xCall") + wCall;
1303
1304 // Top Frame 3a
1305 // freqdisp, oppick, qsoclear, qsosave, call
1306
1307 TopFrame3a = new Fl_Group(
1308 0, TopFrame1->y(),
1309 w3a, Hentry,"");
1310
1311 qsoFreqDisp3 = new cFreqControl(
1312 pad, y,
1313 freqwidth, freqheight, "10");
1314 qsoFreqDisp3->box(FL_DOWN_BOX);
1315 qsoFreqDisp3->color(FL_BACKGROUND_COLOR);
1316 qsoFreqDisp3->selection_color(FL_BACKGROUND_COLOR);
1317 qsoFreqDisp3->labeltype(FL_NORMAL_LABEL);
1318 qsoFreqDisp3->align(FL_ALIGN_CENTER);
1319 qsoFreqDisp3->when(FL_WHEN_RELEASE);
1320 qsoFreqDisp3->callback(qso_movFreq);
1321 qsoFreqDisp3->font(progdefaults.FreqControlFontnbr);
1322 qsoFreqDisp3->SetONOFFCOLOR(
1323 fl_rgb_color( progdefaults.FDforeground.R,
1324 progdefaults.FDforeground.G,
1325 progdefaults.FDforeground.B),
1326 fl_rgb_color( progdefaults.FDbackground.R,
1327 progdefaults.FDbackground.G,
1328 progdefaults.FDbackground.B));
1329 qsoFreqDisp3->value(0);
1330
1331 qso_opPICK3 = new Fl_Button(
1332 pad + rightof(qsoFreqDisp3), y,
1333 Wbtn, Hentry);
1334 qso_opPICK3->align(FL_ALIGN_INSIDE);
1335 qso_opPICK3->image(addrbookpixmap);
1336 qso_opPICK3->callback(showOpBrowserView2, 0);
1337 qso_opPICK3->tooltip(_("Open List"));
1338
1339 qsoClear3 = new Fl_Button(
1340 pad + rightof(qso_opPICK3), y,
1341 Wbtn, Hentry);
1342 qsoClear3->align(FL_ALIGN_INSIDE);
1343 qsoClear3->image(new Fl_Pixmap(edit_clear_icon));
1344 qsoClear3->callback(qsoClear_cb, 0);
1345 qsoClear3->tooltip(_("Clear"));
1346
1347 qsoSave3 = new Fl_Button(
1348 pad + rightof(qsoClear3), y,
1349 Wbtn, Hentry);
1350 qsoSave3->align(FL_ALIGN_INSIDE);
1351 qsoSave3->image(new Fl_Pixmap(save_icon));
1352 qsoSave3->callback(qsoSave_cb, 0);
1353 qsoSave3->tooltip(_("Save"));
1354
1355 inpCall3 = new Fl_Input2(
1356 rightof(qsoSave3) + fl_width("Call"), y,
1357 wCall, h, "Call");
1358 inpCall3->align(FL_ALIGN_LEFT);
1359 inpCall3->tooltip(_("Other call"));
1360
1361 TopFrame3a->end();
1362
1363 TopFrame3b = new Fl_Group(
1364 rightof(TopFrame3a), TopFrame1->y(),
1365 W - rightof(TopFrame3a), Hentry,"");
1366
1367 // LOG_GENERIC - partial
1368 log_generic_frame = new Fl_Group(
1369 TopFrame3b->x(), TopFrame3b->y(),
1370 TopFrame3b->w(), Hentry,"");
1371
1372 btnTimeOn3 = new Fl_Button(
1373 rightof(inpCall3) + pad, y,
1374 h, h, "On");
1375 btnTimeOn3->tooltip(_("Press to update"));
1376 btnTimeOn3->callback(cb_btnTimeOn);
1377
1378 inpTimeOn3 = new Fl_Input2(
1379 rightof(btnTimeOn3) + pad, y,
1380 wData, h, "");
1381 inpTimeOn3->tooltip(_("Time On"));
1382 inpTimeOn3->type(FL_INT_INPUT);
1383
1384 inpTimeOff3 = new Fl_Input2(
1385 rightof(inpTimeOn3) + fl_width("xOff"), y,
1386 wData, h, "Off");
1387 inpTimeOff3->tooltip(_("Time Off"));
1388 inpTimeOff3->type(FL_NORMAL_OUTPUT);
1389
1390 inpSerNo2 = new Fl_Input2(
1391 rightof(inpTimeOff3) + fl_width("xR#"), y,
1392 wData, h, "R#");
1393 inpSerNo2->align(FL_ALIGN_LEFT);
1394 inpSerNo2->tooltip(_("Received serial number"));
1395
1396 outSerNo2 = new Fl_Input2(
1397 rightof(inpSerNo2) + fl_width("xS#"), y,
1398 wData, h, "S#");
1399 outSerNo2->align(FL_ALIGN_LEFT);
1400 outSerNo2->tooltip(_("Sent serial number (read only)"));
1401
1402 inpXchgIn2 = new Fl_Input2(
1403 rightof(outSerNo2) + fl_width("xXch"), y,
1404 fl_digi_main->w() - (rightof(outSerNo2) + fl_width("xXchg"))- pad, h, "Xch");
1405 inpXchgIn2->align(FL_ALIGN_LEFT);
1406 inpXchgIn2->tooltip(_("Contest exchange in"));
1407
1408 Fl_Box lgf_box(rightof(inpXchgIn2), y, pad, h,"");
1409 lgf_box.box(FL_FLAT_BOX);
1410
1411 log_generic_frame->end();
1412 log_generic_frame->hide();
1413 log_generic_frame->resizable(lgf_box);
1414 // end LOG_GENERIC - partial
1415
1416 // LOG_FD - partial
1417 log_fd_frame = new Fl_Group(
1418 TopFrame3b->x(), TopFrame3b->y(),
1419 TopFrame3b->w(), Hentry,"");
1420
1421 btnTimeOn4 = new Fl_Button(
1422 rightof(inpCall3) + pad, y,
1423 h, h, "On");
1424 btnTimeOn4->tooltip(_("Press to update"));
1425 btnTimeOn4->callback(cb_btnTimeOn);
1426
1427 inpTimeOn4 = new Fl_Input2(
1428 rightof(btnTimeOn4) + pad, y,
1429 wData, h, "");
1430 inpTimeOn4->tooltip(_("Time On"));
1431 inpTimeOn4->type(FL_INT_INPUT);
1432
1433 inpTimeOff4 = new Fl_Input2(
1434 rightof(inpTimeOn4) + fl_width("xOff"), y,
1435 wData, h, "Off");
1436 inpTimeOff4->tooltip(_("Time Off"));
1437 inpTimeOff4->type(FL_NORMAL_OUTPUT);
1438
1439 inp_FD_class2 = new Fl_Input2(
1440 rightof(inpTimeOff4) + fl_width("xClass"), y, wData, h, " Class");
1441 inp_FD_class2->align(FL_ALIGN_LEFT);
1442 inp_FD_class2->tooltip(_("Received FD class"));
1443 inp_FD_class2->type(FL_NORMAL_INPUT);
1444
1445 inp_FD_section2 = new Fl_Input2(
1446 rightof(inp_FD_class2) + fl_width("xSect") - pad, y, wData, h, "Sect");
1447 inp_FD_section2->align(FL_ALIGN_LEFT);
1448 inp_FD_section2->tooltip(_("Received FD section"));
1449 inp_FD_section2->type(FL_NORMAL_INPUT);
1450
1451 Fl_Box lfd_box(rightof(inp_FD_section2), y, pad, h,"");
1452 lfd_box.box(FL_FLAT_BOX);
1453
1454 log_fd_frame->end();
1455 log_fd_frame->hide();
1456 log_fd_frame->resizable(lfd_box);
1457 // end LOG_FD - partial
1458
1459 // LOG_KD - partial
1460 log_kd_frame = new Fl_Group(
1461 TopFrame3b->x(), TopFrame3b->y(),
1462 TopFrame3b->w(), Hentry,"");
1463
1464 inp_KD_name2 = new Fl_Input2(
1465 rightof(inpCall3) + fl_width("xNam"), y, 70, h, "Nam");
1466 inp_KD_name2->align(FL_ALIGN_LEFT);
1467 inp_KD_name2->tooltip("Guest operator");
1468 inp_KD_name2->type(FL_NORMAL_INPUT);
1469
1470 inp_KD_age2 = new Fl_Input2(
1471 rightof(inp_KD_name2) + fl_width("xAge"), y, wData, h,
1472 "Age");
1473 inp_KD_age2->align(FL_ALIGN_LEFT);
1474 inp_KD_age2->tooltip(_("Guest operators age"));
1475 inp_KD_age2->type(FL_NORMAL_INPUT);
1476
1477 inp_KD_state2 = new Fl_Input2(
1478 rightof(inp_KD_age2) + fl_width("xSt"), y, 40, h,
1479 "St");
1480 inp_KD_state2->align(FL_ALIGN_LEFT);
1481 inp_KD_state2->tooltip(_("Station state"));
1482 inp_KD_state2->type(FL_NORMAL_INPUT);
1483
1484 inp_KD_VEprov2 = new Fl_Input2(
1485 rightof(inp_KD_state2) + fl_width("xPr"), y, 40, h,
1486 "Pr");
1487 inp_KD_VEprov2->align(FL_ALIGN_LEFT);
1488 inp_KD_VEprov2->tooltip(_("Station province"));
1489 inp_KD_VEprov2->type(FL_NORMAL_INPUT);
1490
1491 inp_KD_XchgIn2 = new Fl_Input2(
1492 rightof(inp_KD_VEprov2) + fl_width("xXch"), y,
1493 fl_digi_main->w() - (rightof(inp_KD_state2) + fl_width("xXch")) - pad, h,
1494 "Xch");
1495 inp_KD_XchgIn2->align(FL_ALIGN_LEFT);
1496 inp_KD_XchgIn2->tooltip(_("Special Kids Day Special Exchange"));
1497 inp_KD_XchgIn2->type(FL_NORMAL_INPUT);
1498
1499 Fl_Box lkd_box(rightof(inp_KD_XchgIn2), y, pad, h,"");
1500 lkd_box.box(FL_FLAT_BOX);
1501
1502 log_kd_frame->end();
1503 log_kd_frame->hide();
1504 log_kd_frame->resizable(lkd_box);
1505 // end LOG_KD -partial
1506
1507 // LOG_1010 - partial
1508 log_1010_frame = new Fl_Group(
1509 TopFrame3b->x(), TopFrame3b->y(),
1510 TopFrame3b->w(), Hentry,"");
1511
1512 inp_1010_name2 = new Fl_Input2(
1513 rightof(inpCall3) + fl_width("xOp"), y, 80, h, "Op");
1514 inp_1010_name2->align(FL_ALIGN_LEFT);
1515 inp_1010_name2->tooltip("Operator's name");
1516 inp_1010_name2->type(FL_NORMAL_INPUT);
1517
1518 inp_1010_nr2 = new Fl_Input2(
1519 rightof(inp_1010_name2) + fl_width("x1010"), y, wData, h,
1520 "1010");
1521 inp_1010_nr2->align(FL_ALIGN_LEFT);
1522 inp_1010_nr2->tooltip(_("1010 number"));
1523 inp_1010_nr2->type(FL_NORMAL_INPUT);
1524
1525 inp_1010_XchgIn2 = new Fl_Input2(
1526 rightof(inp_1010_nr2) + fl_width("xXch"), y,
1527 fl_digi_main->w() - (rightof(inp_1010_nr2) + fl_width("xXch")) - pad, h,
1528 "Xch");
1529 inp_1010_XchgIn2->align(FL_ALIGN_LEFT);
1530 inp_1010_XchgIn2->tooltip(_("1010 Exchange"));
1531 inp_1010_XchgIn2->type(FL_NORMAL_INPUT);
1532
1533 Fl_Box l1010_box(rightof(inp_1010_XchgIn2), y, pad, h,"");
1534 l1010_box.box(FL_FLAT_BOX);
1535
1536 log_1010_frame->end();
1537 log_1010_frame->hide();
1538 log_1010_frame->resizable(l1010_box);
1539 // end LOG_1010 -partial
1540
1541 // LOG_ARR - partial
1542 log_arr_frame = new Fl_Group(
1543 TopFrame3b->x(), TopFrame3b->y(),
1544 TopFrame3b->w(), Hentry,"");
1545
1546 inp_ARR_Name2 = new Fl_Input2(
1547 rightof(inpCall3) + fl_width("xNam"), y, 80, h,
1548 "Nam");
1549 inp_ARR_Name2->align(FL_ALIGN_LEFT);
1550 inp_ARR_Name2->tooltip("Operator's name");
1551 inp_ARR_Name2->type(FL_NORMAL_INPUT);
1552
1553 inp_ARR_check2 = new Fl_Input2(
1554 rightof(inp_ARR_Name2) + fl_width("xChk"), y, 40, h,
1555 "Chk");
1556 inp_ARR_check2->align(FL_ALIGN_LEFT);
1557 inp_ARR_check2->tooltip(_("Check / birth-year"));
1558 inp_ARR_check2->type(FL_NORMAL_INPUT);
1559
1560 inp_ARR_XchgIn2 = new Fl_Input2(
1561 rightof(inp_ARR_check2) + fl_width("xXch"), y,
1562 fl_digi_main->w() - (rightof(inp_ARR_check2) + fl_width("xXch")) - pad, Hentry,
1563 "Xch");
1564 inp_ARR_XchgIn2->align(FL_ALIGN_LEFT);
1565 inp_ARR_XchgIn2->tooltip(_("Round Up Exchange"));
1566 inp_ARR_XchgIn2->type(FL_NORMAL_INPUT);
1567
1568 Fl_Box larr_box(rightof(inp_ARR_XchgIn2), y, pad, h,"");
1569 larr_box.box(FL_FLAT_BOX);
1570
1571 log_arr_frame->end();
1572 log_arr_frame->hide();
1573 log_arr_frame->resizable(larr_box);
1574 // end LOG_ARR - partial
1575
1576 // LOG_VHF - partial
1577 log_vhf_frame = new Fl_Group(
1578 TopFrame3b->x(), TopFrame3b->y(),
1579 TopFrame3b->w(), Hentry,"");
1580
1581 inp_vhf_RSTin2 = new Fl_Input2(
1582 rightof(inpCall3) + fl_width("xIn"), y, wRST, h,
1583 "In");
1584 inp_vhf_RSTin2->align(FL_ALIGN_LEFT);
1585 inp_vhf_RSTin2->tooltip(_("Received RST"));
1586 inp_vhf_RSTin2->type(FL_NORMAL_INPUT);
1587
1588 inp_vhf_RSTout2 = new Fl_Input2(
1589 rightof(inp_vhf_RSTin2) + fl_width("xOut"), y, wRST, h,
1590 "Out");
1591 inp_vhf_RSTout2->align(FL_ALIGN_LEFT);
1592 inp_vhf_RSTout2->tooltip(_("Sent RST"));
1593 inp_vhf_RSTout2->type(FL_NORMAL_INPUT);
1594
1595 inp_vhf_Loc2 = new Fl_Input2(
1596 rightof(inp_vhf_RSTout2) + fl_width("xGr")- pad, y, 80, h,
1597 "Gr");
1598 inp_vhf_Loc2->align(FL_ALIGN_LEFT);
1599 inp_vhf_Loc2->tooltip(_("Grid Locator"));
1600 inp_vhf_Loc2->type(FL_NORMAL_INPUT);
1601
1602 Fl_Box lvhf_box(rightof(inp_vhf_Loc2), y, pad, h,"");
1603 lvhf_box.box(FL_FLAT_BOX);
1604
1605 log_vhf_frame->end();
1606 log_vhf_frame->hide();
1607 log_vhf_frame->resizable(lvhf_box);
1608 // end LOG_VHF - partial
1609
1610 // LOG_CQWW_DX - partial
1611 log_cqww_frame = new Fl_Group(
1612 TopFrame3b->x(), TopFrame3b->y(),
1613 TopFrame3b->w(), Hentry,"");
1614
1615 inp_CQDX_RSTin2 = new Fl_Input2(
1616 rightof(inpCall3) + fl_width("xIn"), y, wRST, h, "In");
1617 inp_CQDX_RSTin2->align(FL_ALIGN_LEFT);
1618 inp_CQDX_RSTin2->tooltip(_("Received RST"));
1619 inp_CQDX_RSTin2->type(FL_NORMAL_INPUT);
1620
1621 inp_CQDX_RSTout2 = new Fl_Input2(
1622 rightof(inp_CQDX_RSTin2) + fl_width("xOut"), y, wRST, h, "Out");
1623 inp_CQDX_RSTout2->align(FL_ALIGN_LEFT);
1624 inp_CQDX_RSTout2->tooltip(_("Sent RST"));
1625 inp_CQDX_RSTout2->type(FL_NORMAL_INPUT);
1626
1627 inp_CQDXzone2 = new Fl_Input2(
1628 rightof(inp_CQDX_RSTout2) + fl_width("xCQz"), y, 40, h, "CQz");
1629 inp_CQDXzone2->align(FL_ALIGN_LEFT);
1630 inp_CQDXzone2->tooltip(_("Received CQ zone"));
1631 inp_CQDXzone2->type(FL_NORMAL_INPUT);
1632
1633 xtmp = rightof(inp_CQDXzone2) + fl_width("xCQc");
1634 cboCountryCQDX2 = new Fl_ComboBox(
1635 xtmp, y,
1636 fl_digi_main->w() - xtmp - pad, Hentry, "CQc");
1637 cboCountryCQDX2->align(FL_ALIGN_LEFT);
1638 cboCountryCQDX2->tooltip(_("Received CQ country"));
1639 cboCountryCQDX2->end();
1640
1641 Fl_Box lcqdx_box(rightof(cboCountryCQDX2), y, pad, h,"");
1642 lcqdx_box.box(FL_FLAT_BOX);
1643
1644 log_cqww_frame->end();
1645 log_cqww_frame->hide();
1646 log_cqww_frame->resizable(lcqdx_box);
1647 // end LOG_CQWW_DX - partial
1648
1649 // LOG_CQWW_RTTY - partial
1650 log_cqww_rtty_frame = new Fl_Group(
1651 TopFrame3b->x(), TopFrame3b->y(),
1652 TopFrame3b->w(), Hentry,"");
1653
1654 inp_CQ_RSTin2 = new Fl_Input2(
1655 rightof(inpCall3) + fl_width("xIn"), y, wRST, h, "In");
1656 inp_CQ_RSTin2->align(FL_ALIGN_LEFT);
1657 inp_CQ_RSTin2->tooltip(_("Received RST"));
1658 inp_CQ_RSTin2->type(FL_NORMAL_INPUT);
1659
1660 inp_CQ_RSTout2 = new Fl_Input2(
1661 rightof(inp_CQ_RSTin2) + fl_width("xOut"), y, wRST, h, "Out");
1662 inp_CQ_RSTout2->align(FL_ALIGN_LEFT);
1663 inp_CQ_RSTout2->tooltip(_("Sent RST"));
1664 inp_CQ_RSTout2->type(FL_NORMAL_INPUT);
1665
1666 inp_CQzone2 = new Fl_Input2(
1667 rightof(inp_CQ_RSTout2) + fl_width("xCQz"), y, 40, h, "CQz");
1668 inp_CQzone2->align(FL_ALIGN_LEFT);
1669 inp_CQzone2->tooltip(_("Received CQ zone"));
1670 inp_CQzone2->type(FL_NORMAL_INPUT);
1671
1672 inp_CQstate2 = new Fl_Input2(
1673 rightof(inp_CQzone2) + fl_width("xCQst"), y, 40, h, "CQst");
1674 inp_CQstate2->align(FL_ALIGN_LEFT);
1675 inp_CQstate2->tooltip(_("Received CQ State/Prov"));
1676 inp_CQstate2->type(FL_NORMAL_INPUT);
1677
1678 cboCountryCQ2 = new Fl_ComboBox(
1679 rightof(inp_CQstate2) + fl_width("xCQc"), y,
1680 fl_digi_main->w() - (rightof(inp_CQstate2) + fl_width("xCQc")) - pad, Hentry, "CQc");
1681 cboCountryCQ2->align(FL_ALIGN_LEFT);
1682 cboCountryCQ2->tooltip(_("Received CQ country"));
1683 cboCountryCQ2->end();
1684
1685 Fl_Box lcq_box(rightof(cboCountryCQ2), y, pad, h,"");
1686 lcq_box.box(FL_FLAT_BOX);
1687
1688 log_cqww_rtty_frame->end();
1689 log_cqww_rtty_frame->hide();
1690 log_cqww_rtty_frame->resizable(lcq_box);
1691 // end LOG_CQWW_RTTY - partial
1692
1693 // LOG CWSS - partial
1694 log_cqss_frame = new Fl_Group(
1695 TopFrame3b->x(), TopFrame3b->y(),
1696 TopFrame3b->w(), Hentry,"");
1697
1698 outSerNo4 = new Fl_Input2(
1699 rightof(inpCall3) + fl_width("xS#"), y, 40, h,
1700 "S#");
1701 outSerNo4->align(FL_ALIGN_LEFT);
1702 outSerNo4->tooltip(_("Sent serno"));
1703 outSerNo4->type(FL_NORMAL_OUTPUT);
1704
1705 inp_SS_SerialNoR2 = new Fl_Input2(
1706 rightof(outSerNo4) + fl_width("xR#"), y, 40, Hentry,
1707 "R#");
1708 inp_SS_SerialNoR2->align(FL_ALIGN_LEFT);
1709 inp_SS_SerialNoR2->tooltip(_("Received serno"));
1710 inp_SS_SerialNoR2->type(FL_NORMAL_INPUT);
1711
1712 inp_SS_Precedence2 = new Fl_Input2(
1713 rightof(inp_SS_SerialNoR2) + fl_width("xPre"), y, 40, Hentry,
1714 "Pre");
1715 inp_SS_Precedence2->align(FL_ALIGN_LEFT);
1716 inp_SS_Precedence2->tooltip(_("SS Precedence"));
1717 inp_SS_Precedence2->type(FL_NORMAL_INPUT);
1718
1719 inp_SS_Check2 = new Fl_Input2(
1720 rightof(inp_SS_Precedence2) + fl_width("xChk"), y, 40, Hentry,
1721 "Chk");
1722 inp_SS_Check2->align(FL_ALIGN_LEFT);
1723 inp_SS_Check2->tooltip(_("SS Check"));
1724 inp_SS_Check2->type(FL_NORMAL_INPUT);
1725
1726 inp_SS_Section2 = new Fl_Input2(
1727 rightof(inp_SS_Check2) + fl_width("xSec"), y, 40, Hentry,
1728 "Sec");
1729 inp_SS_Section2->align(FL_ALIGN_LEFT);
1730 inp_SS_Section2->tooltip(_("SS section"));
1731 inp_SS_Section2->type(FL_NORMAL_INPUT);
1732
1733 Fl_Box lss_box(rightof(inp_SS_Section2), y, pad, h,"");
1734 lss_box.box(FL_FLAT_BOX);
1735
1736 log_cqss_frame->end();
1737 log_cqss_frame->hide();
1738 log_cqss_frame->resizable(lss_box);
1739 // end LOG CWSS - partial
1740
1741 // LOG_CQWPX - partial
1742 log_cqwpx_frame = new Fl_Group(
1743 TopFrame3b->x(), TopFrame3b->y(),
1744 TopFrame3b->w(), Hentry,"");
1745
1746 inpRstIn_WPX2 = new Fl_Input2(
1747 rightof(inpCall3) + fl_width("xIn"), y, wRST, h, "In");
1748 inpRstIn_WPX2->align(FL_ALIGN_LEFT);
1749 inpRstIn_WPX2->tooltip(_("Received RST"));
1750 inpRstIn_WPX2->type(FL_NORMAL_INPUT);
1751
1752 inpRstOut_WPX2 = new Fl_Input2(
1753 rightof(inpRstIn_WPX2) + fl_width("xOut"), y, wRST, h, "Out");
1754 inpRstOut_WPX2->align(FL_ALIGN_LEFT);
1755 inpRstOut_WPX2->tooltip(_("Sent RST"));
1756 inpRstOut_WPX2->type(FL_NORMAL_INPUT);
1757
1758 outSerNo_WPX2 = new Fl_Input2(
1759 rightof(inpRstOut_WPX2) + fl_width("xS#"), y, 40, h, "S#");
1760 outSerNo_WPX2->align(FL_ALIGN_LEFT);
1761 outSerNo_WPX2->tooltip(_("Sent serial number"));
1762 outSerNo_WPX2->type(FL_NORMAL_INPUT);
1763
1764 inpSerNo_WPX2 = new Fl_Input2(
1765 rightof(outSerNo_WPX2) + fl_width("xR#") - pad, y, 40, h, "R#");
1766 inpSerNo_WPX2->align(FL_ALIGN_LEFT);
1767 inpSerNo_WPX2->tooltip(_("Received serial number"));
1768 inpSerNo_WPX2->type(FL_NORMAL_INPUT);
1769
1770 Fl_Box lwpx_box(rightof(inpSerNo_WPX2), y, pad, h,"");
1771 lwpx_box.box(FL_FLAT_BOX);
1772
1773 log_cqwpx_frame->end();
1774 log_cqwpx_frame->hide();
1775 log_cqwpx_frame->resizable(lwpx_box);
1776 // end LOG_CQWPX - partial
1777
1778 // LOG_ASCR - partial
1779 log_ascr_frame = new Fl_Group(
1780 TopFrame3b->x(), TopFrame3b->y(),
1781 TopFrame3b->w(), Hentry,"");
1782
1783 inp_ASCR_name2 = new Fl_Input2(
1784 rightof(inpCall3) + fl_width("xNam"), y, 80, h,
1785 "Nam");
1786 inp_ASCR_name2->align(FL_ALIGN_LEFT);
1787 inp_ASCR_name2->tooltip(_("Rcvd name"));
1788 inp_ASCR_name2->type(FL_NORMAL_INPUT);
1789
1790 inp_ASCR_RSTin2 = new Fl_Input2(
1791 rightof(inp_ASCR_name2) + fl_width("xIn"), y, wRST, Hentry,
1792 "In");
1793 inp_ASCR_RSTin2->align(FL_ALIGN_LEFT);
1794 inp_ASCR_RSTin2->tooltip(_("Received RST"));
1795 inp_ASCR_RSTin2->type(FL_NORMAL_INPUT);
1796
1797 inp_ASCR_RSTout2 = new Fl_Input2(
1798 rightof(inp_ASCR_RSTin2) + fl_width("xOut"), y, wRST, Hentry,
1799 "Out");
1800 inp_ASCR_RSTout2->align(FL_ALIGN_LEFT);
1801 inp_ASCR_RSTout2->tooltip(_("Sent RST"));
1802 inp_ASCR_RSTout2->type(FL_NORMAL_INPUT);
1803
1804 inp_ASCR_class2 = new Fl_Input2(
1805 rightof(inp_ASCR_RSTout2) + fl_width("xClass"), y, 30, Hentry,
1806 "Class");
1807 inp_ASCR_class2->align(FL_ALIGN_LEFT);
1808 inp_ASCR_class2->tooltip(_("ASCR class"));
1809 inp_ASCR_class2->type(FL_NORMAL_INPUT);
1810
1811 xtmp = rightof(inp_ASCR_class2) + fl_width("xSPC");
1812
1813 inp_ASCR_XchgIn2 = new Fl_Input2(
1814 xtmp, y, TopFrame3->x() + TopFrame3->w() - xtmp - pad, Hentry,
1815 "SPC");
1816 inp_ASCR_XchgIn2->align(FL_ALIGN_LEFT);
1817 inp_ASCR_XchgIn2->tooltip(_("State/Province/Country received"));
1818 inp_ASCR_XchgIn2->type(FL_NORMAL_INPUT);
1819
1820 Fl_Box lascr_box(rightof(inp_ASCR_XchgIn2), y, pad, h,"");
1821 lascr_box.box(FL_FLAT_BOX);
1822
1823 log_ascr_frame->end();
1824 log_ascr_frame->hide();
1825 log_ascr_frame->resizable(lascr_box);
1826
1827 // end LOG_ASCR - partial
1828
1829 // LOG_NAQP - partial
1830 log_naqp_frame = new Fl_Group(
1831 TopFrame3b->x(), TopFrame3b->y(),
1832 TopFrame3b->w(), Hentry,"");
1833
1834 btnTimeOn5 = new Fl_Button(
1835 rightof(inpCall3) + pad, y,
1836 h, h, "On");
1837 btnTimeOn5->tooltip(_("Press to update"));
1838 btnTimeOn5->callback(cb_btnTimeOn);
1839
1840 inpTimeOn5 = new Fl_Input2(
1841 rightof(btnTimeOn3) + pad, y,
1842 wData, h, "");
1843 inpTimeOn5->tooltip(_("Time On"));
1844 inpTimeOn5->type(FL_INT_INPUT);
1845
1846 inpTimeOff5 = new Fl_Input2(
1847 rightof(inpTimeOn5) + fl_width("xOff"), y,
1848 wData, h, "Off");
1849 inpTimeOff5->tooltip(_("Time Off"));
1850 inpTimeOff5->type(FL_NORMAL_OUTPUT);
1851
1852 inpNAQPname2 = new Fl_Input2(
1853 rightof(inpTimeOff5) + fl_width("xNam"), y, 100, h, "Nam");
1854 inpNAQPname2->align(FL_ALIGN_LEFT);
1855 inpNAQPname2->tooltip(_("Received operator name"));
1856 inpNAQPname2->type(FL_NORMAL_INPUT);
1857
1858 inpSPCnum_NAQP2 = new Fl_Input2(
1859 rightof(inpNAQPname2) + fl_width("xXch"), y,
1860 80, h, "Xch");
1861 inpSPCnum_NAQP2->align(FL_ALIGN_LEFT);
1862 inpSPCnum_NAQP2->tooltip(_("Received State/Province/Country"));
1863 inpSPCnum_NAQP2->type(FL_NORMAL_INPUT);
1864
1865 Fl_Box lnaqp_box(rightof(inpSPCnum_NAQP2), y, pad, h,"");
1866 lnaqp_box.box(FL_FLAT_BOX);
1867
1868 log_naqp_frame->end();
1869 log_naqp_frame->hide();
1870 log_naqp_frame->resizable(lnaqp_box);
1871 // LOG_NAQP - partial
1872
1873 // LOG_RTTY - partial
1874 log_rtty_frame = new Fl_Group(
1875 TopFrame3b->x(), TopFrame3b->y(),
1876 TopFrame3b->w(), Hentry,"");
1877
1878 inpRTU_stpr2 = new Fl_Input2(
1879 rightof(inpCall3) + fl_width("xS/P"), y, fl_width("xWW"), Hentry,
1880 "S/P");
1881 inpRTU_stpr2->align(FL_ALIGN_LEFT);
1882 inpRTU_stpr2->tooltip(_("State/Province"));
1883 inpRTU_stpr2->type(FL_NORMAL_INPUT);
1884
1885 inpRTU_serno2 = new Fl_Input2(
1886 rightof(inpRTU_stpr2) + fl_width("xSer"), y, fl_width("x9999"), Hentry,
1887 "Ser");
1888 inpRTU_serno2->align(FL_ALIGN_LEFT);
1889 inpRTU_serno2->tooltip(_("Serial number received"));
1890 inpRTU_serno2->type(FL_NORMAL_INPUT);
1891
1892 inpRTU_RSTin2 = new Fl_Input2(
1893 rightof(inpRTU_serno2) + fl_width("xR"), y, wRST, Hentry,
1894 "R");
1895 inpRTU_RSTin2->align(FL_ALIGN_LEFT);
1896 inpRTU_RSTin2->tooltip("Received RST");
1897 inpRTU_RSTin2->type(FL_NORMAL_INPUT);
1898
1899 inpRTU_RSTout2 = new Fl_Input2(
1900 rightof(inpRTU_RSTin2) + fl_width("xS"), y, wRST, Hentry,
1901 "S");
1902 inpRTU_RSTout2->align(FL_ALIGN_LEFT);
1903 inpRTU_RSTout2->tooltip("Sent RST");
1904 inpRTU_RSTout2->type(FL_NORMAL_INPUT);
1905
1906 xtmp = rightof(inpRTU_RSTout2) + fl_width("xCntry");
1907 cboCountryRTU2 = new Fl_ComboBox(
1908 xtmp, y,
1909 TopFrame3->x() + TopFrame3->w() - xtmp - pad, Hentry,
1910 "Cntry");
1911 cboCountryRTU2->align(FL_ALIGN_LEFT);
1912 cboCountryRTU2->tooltip(_("Country"));
1913 cboCountryRTU2->end();
1914
1915 log_rtty_frame->end();
1916 log_rtty_frame->hide();
1917 log_rtty_frame->resizable(cboCountryRTU2);
1918 // end LOG_RTTY - partial
1919
1920 // LOG_IARI - partial
1921 log_iari_frame = new Fl_Group(
1922 rightof(TopFrame3a), TopFrame1->y(),
1923 W - rightof(TopFrame3a), Hentry,"");
1924
1925 inp_IARI_RSTin2 = new Fl_Input2(
1926 rightof(inpCall3) + fl_width("In"), y, wRST, h, "In");
1927 inp_IARI_RSTin2->align(FL_ALIGN_LEFT);
1928 inp_IARI_RSTin2->tooltip(_("Received RST"));
1929 inp_IARI_RSTin2->type(FL_NORMAL_INPUT);
1930
1931 inp_IARI_RSTout2 = new Fl_Input2(
1932 rightof(inp_IARI_RSTin2) + fl_width("Out"), y, wRST, h, "Out");
1933 inp_IARI_RSTout2->align(FL_ALIGN_LEFT);
1934 inp_IARI_RSTout2->tooltip(_("Sent RST"));
1935 inp_IARI_RSTout2->type(FL_NORMAL_INPUT);
1936
1937 inp_IARI_PR2 = new Fl_Input2(
1938 rightof(inp_IARI_RSTout2) + fl_width("xPr"), y, fl_width("WW"), Hentry,
1939 "Pr");
1940 inp_IARI_PR2->align(FL_ALIGN_LEFT);
1941 inp_IARI_PR2->tooltip(_("Received IARI Province"));
1942 inp_IARI_PR2->type(FL_NORMAL_INPUT);
1943
1944 out_IARI_SerNo2 = new Fl_Input2(
1945 rightof(inp_IARI_PR2) + fl_width("S#"), y, wRST, Hentry,
1946 "S#");
1947 out_IARI_SerNo2->align(FL_ALIGN_LEFT);
1948 out_IARI_SerNo2->tooltip(_("Sent serno"));
1949 out_IARI_SerNo2->type(FL_NORMAL_OUTPUT);
1950
1951 inp_IARI_SerNo2 = new Fl_Input2(
1952 rightof(out_IARI_SerNo2) + fl_width("R#"), y, wRST, Hentry,
1953 "R#");
1954 inp_IARI_SerNo2->align(FL_ALIGN_LEFT);
1955 inp_IARI_SerNo2->tooltip(_("Received serno"));
1956 inp_IARI_SerNo2->type(FL_NORMAL_INPUT);
1957
1958 xtmp = rightof(inp_IARI_SerNo2) + fl_width("Cntry");
1959 cboCountryIARI2 = new Fl_ComboBox(
1960 xtmp, y,
1961 fl_digi_main->w() - xtmp - pad, Hentry, "Cntry");
1962 cboCountryIARI2->align(FL_ALIGN_LEFT);
1963 cboCountryIARI2->tooltip(_("Received IARI country"));
1964 cboCountryIARI2->end();
1965
1966 Fl_Box liari_box(rightof(cboCountryIARI2), y, pad, h,"");
1967 liari_box.box(FL_FLAT_BOX);
1968
1969 log_iari_frame->end();
1970 log_iari_frame->hide();
1971 log_iari_frame->resizable(liari_box);
1972 // end LOG_IARI - partial
1973
1974 // LOG_NAS - partial
1975 log_nas_frame = new Fl_Group(
1976 TopFrame3b->x(), TopFrame3b->y(),
1977 TopFrame3b->w(), Hentry,"");
1978
1979 outSerNo6 = new Fl_Input2(
1980 rightof(inpCall3) + fl_width("xS#"), y, 40, h, "S#");
1981 outSerNo6->align(FL_ALIGN_LEFT);
1982 outSerNo6->tooltip(_("Sent serial number"));
1983 outSerNo6->type(FL_NORMAL_OUTPUT);
1984
1985 inp_ser_NAS2 = new Fl_Input2(
1986 rightof(outSerNo6) + fl_width("xR#"), y, 40, Hentry, "R#");
1987 inp_ser_NAS2->align(FL_ALIGN_LEFT);
1988 inp_ser_NAS2->tooltip(_("Received serno"));
1989 inp_ser_NAS2->type(FL_NORMAL_INPUT);
1990
1991 xtmp = rightof(inp_ser_NAS2) + fl_width("xS/P/C");
1992 inpSPCnum_NAS2 = new Fl_Input2(
1993 xtmp, y, 80, Hentry,
1994 "S/P/C");
1995 inpSPCnum_NAS2->align(FL_ALIGN_LEFT);
1996 inpSPCnum_NAS2->tooltip(_("Received State/Province/Country"));
1997 inpSPCnum_NAS2->type(FL_NORMAL_INPUT);
1998
1999 xtmp = rightof(inpSPCnum_NAS2) + fl_width("xNm");
2000 inp_name_NAS2 = new Fl_Input2(
2001 xtmp, y,
2002 TopFrame3->x() + TopFrame3->w() - xtmp - pad, Hentry,
2003 "Nm");
2004 inp_name_NAS2->align(FL_ALIGN_LEFT);
2005 inp_name_NAS2->tooltip(_("Name"));
2006 inp_name_NAS2->type(FL_NORMAL_INPUT);
2007
2008 Fl_Box lnas_box(rightof(inp_name_NAS2), y, pad, h,"");
2009 lnas_box.box(FL_FLAT_BOX);
2010
2011 log_nas_frame->end();
2012 log_nas_frame->hide();
2013 log_nas_frame->resizable(lnas_box);
2014 // end LOG_NAS - partial
2015
2016 // LOG_AIDX - partial
2017 log_aidx_frame = new Fl_Group(
2018 TopFrame3b->x(), TopFrame3b->y(),
2019 TopFrame3b->w(), Hentry,"");
2020
2021 outSerNo8 = new Fl_Input2(
2022 rightof(inpCall3) + fl_width("xS#"), y, 40, Hentry, "S#");
2023 outSerNo8->align(FL_ALIGN_LEFT);
2024 outSerNo8->tooltip(_("Sent serial number"));
2025 outSerNo8->type(FL_NORMAL_OUTPUT);
2026
2027 inpSerNo4 = new Fl_Input2(
2028 rightof(outSerNo8) + fl_width("xR#"), y, 40, Hentry, "R#");
2029 inpSerNo4->align(FL_ALIGN_LEFT);
2030 inpSerNo4->tooltip(_("Received serial number"));
2031 inpSerNo4->type(FL_NORMAL_INPUT);
2032
2033 xtmp = rightof(inpSerNo4) + fl_width("xIn");
2034 inpRstIn3 = new Fl_Input2(
2035 xtmp, y, wRST, Hentry,
2036 "In");
2037 inpRstIn3->align(FL_ALIGN_LEFT);
2038 inpRstIn3->tooltip(_("Received RST"));
2039 inpRstIn3->type(FL_NORMAL_INPUT);
2040
2041 xtmp = rightof(inpRstIn3) + fl_width("xOut");
2042 inpRstOut3 = new Fl_Input2(
2043 xtmp, y, wRST, Hentry,
2044 "Out");
2045 inpRstOut3->align(FL_ALIGN_LEFT);
2046 inpRstOut3->tooltip(_("Sent RST"));
2047 inpRstOut3->type(FL_NORMAL_INPUT);
2048
2049 xtmp = rightof(inpRstOut3) + fl_width("xCntry");
2050 cboCountryAIDX2 = new Fl_ComboBox(
2051 xtmp, y,
2052 TopFrame3->x() + TopFrame3->w() - xtmp - pad, Hentry,
2053 "Cntry");
2054 cboCountryAIDX2->align(FL_ALIGN_LEFT);
2055 cboCountryAIDX2->tooltip(_("Received Country"));
2056 cboCountryAIDX2->end();
2057
2058 Fl_Box laam_box(rightof(cboCountryAIDX2), y, pad, h,"");
2059 laam_box.box(FL_FLAT_BOX);
2060
2061 log_aidx_frame->end();
2062 log_aidx_frame->hide();
2063 log_aidx_frame->resizable(laam_box);
2064 // end LOG_AIDX - partial
2065
2066 // LOG_JOTA - partial
2067 log_jota_frame = new Fl_Group(
2068 TopFrame3b->x(), TopFrame3b->y(),
2069 TopFrame3b->w(), Hentry,"");
2070
2071 xtmp = rightof(inpCall3) + fl_width("xIn");
2072 inpRstIn4 = new Fl_Input2(
2073 xtmp, y, wRST, Hentry,
2074 "In");
2075 inpRstIn4->align(FL_ALIGN_LEFT);
2076 inpRstIn4->tooltip(_("Received RST"));
2077 inpRstIn4->type(FL_NORMAL_INPUT);
2078
2079 xtmp = rightof(inpRstIn4) + fl_width("xOut");
2080 inpRstOut4 = new Fl_Input2(
2081 xtmp, y, wRST, Hentry,
2082 "Out");
2083 inpRstOut4->align(FL_ALIGN_LEFT);
2084 inpRstOut4->tooltip(_("Sent RST"));
2085 inpRstOut4->type(FL_NORMAL_INPUT);
2086
2087 xtmp = rightof(inpRstOut4) + fl_width("xSc");
2088 inp_JOTA_troop2 = new Fl_Input2(
2089 xtmp, y, 50, Hentry,
2090 "Tp");
2091 inp_JOTA_troop2->align(FL_ALIGN_LEFT);
2092 inp_JOTA_troop2->tooltip(_("Received troop number"));
2093 inp_JOTA_troop2->type(FL_NORMAL_INPUT);
2094
2095 xtmp = rightof(inp_JOTA_troop2) + fl_width("xTNm");
2096 inp_JOTA_scout2 = new Fl_Input2(
2097 xtmp, y, 80, Hentry,
2098 "Nm");
2099 inp_JOTA_scout2->align(FL_ALIGN_LEFT);
2100 inp_JOTA_scout2->tooltip(_("Received scout name"));
2101 inp_JOTA_scout2->type(FL_NORMAL_INPUT);
2102
2103 xtmp = rightof(inp_JOTA_scout2) + fl_width("xSPC");
2104 inp_JOTA_spc2 = new Fl_Input2(
2105 xtmp, y,
2106 TopFrame3->x() + TopFrame3->w() - xtmp - pad, Hentry,
2107 "SPC");
2108 inp_JOTA_spc2->align(FL_ALIGN_LEFT);
2109 inp_JOTA_spc2->tooltip(_("State/Province,Country received"));
2110 inp_JOTA_spc2->type(FL_NORMAL_INPUT);
2111
2112 Fl_Box ljota_box(rightof(inp_JOTA_spc2), y, pad, h,"");
2113 ljota_box.box(FL_FLAT_BOX);
2114
2115 log_jota_frame->end();
2116 log_jota_frame->hide();
2117 log_jota_frame->resizable(ljota_box);
2118 // LOG_JOTA - partial
2119
2120 // LOG_AICW - partial
2121 log_aicw_frame = new Fl_Group(
2122 TopFrame3b->x(), TopFrame3b->y(),
2123 TopFrame3b->w(), Hentry,"");
2124
2125 xtmp = rightof(inpCall3) + fl_width("xIn");
2126 inpRstIn_AICW2 = new Fl_Input2(
2127 xtmp, y, wRST, Hentry,
2128 "In");
2129 inpRstIn_AICW2->align(FL_ALIGN_LEFT);
2130 inpRstIn_AICW2->tooltip(_("Received RST"));
2131 inpRstIn_AICW2->type(FL_NORMAL_INPUT);
2132
2133 xtmp = rightof(inpRstIn_AICW2) + fl_width("xOut");
2134 inpRstOut_AICW2 = new Fl_Input2(
2135 xtmp, y, wRST, Hentry,
2136 "Out");
2137 inpRstOut_AICW2->align(FL_ALIGN_LEFT);
2138 inpRstOut_AICW2->tooltip(_("Sent RST"));
2139 inpRstOut_AICW2->type(FL_NORMAL_INPUT);
2140
2141 xtmp = rightof(inpRstOut_AICW2) + fl_width("xPwr-R");
2142 inpSPCnum_AICW2 = new Fl_Input2(
2143 xtmp, y, 50, Hentry,
2144 "Pwr-R");
2145 inpSPCnum_AICW2->align(FL_ALIGN_LEFT);
2146 inpSPCnum_AICW2->tooltip(_("Received power"));
2147 inpSPCnum_AICW2->type(FL_NORMAL_INPUT);
2148
2149 xtmp = rightof(inpSPCnum_AICW2) + fl_width("xCntry");
2150 cboCountryAICW2 = new Fl_ComboBox(
2151 xtmp, y,
2152 TopFrame3->x() + TopFrame3->w() - xtmp - pad, Hentry,
2153 "Cntry");
2154 cboCountryAICW2->align(FL_ALIGN_LEFT);
2155 cboCountryAICW2->tooltip(_("Country received"));
2156 cboCountryAICW2->end();
2157
2158 Fl_Box laicw_box(rightof(cboCountryAICW2), y, pad, h,"");
2159 laicw_box.box(FL_FLAT_BOX);
2160
2161 log_aicw_frame->end();
2162 log_aicw_frame->hide();
2163 log_aicw_frame->resizable(laicw_box);
2164 // LOG_AICW - partial
2165
2166 // LOG_SQSO - partial
2167 log_sqso_frame = new Fl_Group(
2168 TopFrame3b->x(), TopFrame3b->y(),
2169 TopFrame3b->w(), Hentry,"");
2170
2171 xtmp = rightof(inpCall3) + fl_width("St");
2172 inpSQSO_state2 = new Fl_Input2(
2173 xtmp, y, 35, Hentry,
2174 "St");
2175 inpSQSO_state2->align(FL_ALIGN_LEFT);
2176 inpSQSO_state2->tooltip(_("State"));
2177 inpSQSO_state2->type(FL_NORMAL_INPUT);
2178
2179 xtmp = rightof(inpSQSO_state2) + fl_width("Co");
2180 inpSQSO_county2 = new Fl_Input2(
2181 xtmp, y, 50, Hentry,
2182 "Cy");
2183 inpSQSO_county2->align(FL_ALIGN_LEFT);
2184 inpSQSO_county2->tooltip(_("County"));
2185 inpSQSO_county2->type(FL_NORMAL_INPUT);
2186
2187 xtmp = rightof(inpSQSO_county2) + fl_width("Ca");
2188 inpSQSO_category2 = new Fl_Input2(
2189 xtmp, y , 40, Hentry, "Cat");
2190 inpSQSO_category2->align(FL_ALIGN_LEFT);
2191 inpSQSO_category2->tooltip(_("Category: CLB, MOB, QRP, STD"));
2192 inpSQSO_category2->type(FL_NORMAL_INPUT);
2193 inpSQSO_category2->hide();
2194
2195 xtmp = rightof(inpSQSO_county2) + fl_width("In");
2196 inpRstIn_SQSO2 = new Fl_Input2(
2197 xtmp, y, wRST, Hentry,
2198 "In");
2199 inpRstIn_SQSO2->align(FL_ALIGN_LEFT);
2200 inpRstIn_SQSO2->tooltip(_("Received RST"));
2201 inpRstIn_SQSO2->type(FL_NORMAL_INPUT);
2202 inpRstIn_SQSO2->hide();
2203
2204 xtmp = rightof(inpRstIn_SQSO2) + fl_width("Out");
2205 inpRstOut_SQSO2 = new Fl_Input2(
2206 xtmp, y, wRST, Hentry,
2207 "Out");
2208 inpRstOut_SQSO2->align(FL_ALIGN_LEFT);
2209 inpRstOut_SQSO2->tooltip(_("Sent RST"));
2210 inpRstOut_SQSO2->type(FL_NORMAL_INPUT);
2211 inpRstOut_SQSO2->hide();
2212
2213 xtmp = rightof(inpRstOut_SQSO2) + fl_width("S#");
2214 outSQSO_serno2 = new Fl_Input2(
2215 xtmp, y, 30, Hentry,
2216 "S#");
2217 outSQSO_serno2->align(FL_ALIGN_LEFT);
2218 outSQSO_serno2->tooltip(_("Sent serial number"));
2219 outSQSO_serno2->type(FL_NORMAL_INPUT);
2220 outSQSO_serno2->hide();
2221
2222 xtmp = rightof(outSQSO_serno2) + fl_width("R#");
2223 inpSQSO_serno2 = new Fl_Input2(
2224 xtmp, y, 30, Hentry,
2225 "R#");
2226 inpSQSO_serno2->align(FL_ALIGN_LEFT);
2227 inpSQSO_serno2->tooltip(_("Received serial number"));
2228 inpSQSO_serno2->type(FL_NORMAL_INPUT);
2229 inpSQSO_serno2->hide();
2230
2231 xtmp = rightof(inpSQSO_serno2) + fl_width("Nm");
2232 inpSQSO_name2 = new Fl_Input2(
2233 xtmp, y,
2234 TopFrame3b->x() + TopFrame3b->w() - xtmp - pad, Hentry,
2235 "Nm");
2236 inpSQSO_name2->align(FL_ALIGN_LEFT);
2237 inpSQSO_name2->tooltip(_("Rx name"));
2238 inpSQSO_name2->type(FL_NORMAL_INPUT);
2239 inpSQSO_name2->hide();
2240
2241 Fl_Box lsqso_box(rightof(inpSQSO_name2), y, pad, h,"");
2242 lsqso_box.box(FL_FLAT_BOX);
2243
2244 log_sqso_frame->end();
2245 log_sqso_frame->hide();
2246 log_sqso_frame->resizable(lsqso_box);
2247 // end LOG_SQSO - partial
2248
2249 // LOG_WAE - partial
2250 log_wae_frame = new Fl_Group(
2251 TopFrame3b->x(), TopFrame3b->y(),
2252 TopFrame3b->w(), Hentry,"");
2253
2254 inpRstIn_WAE2 = new Fl_Input2(
2255 rightof(inpCall3) + fl_width("xIn"), y, wRST, h, "In");
2256 inpRstIn_WAE2->align(FL_ALIGN_LEFT);
2257 inpRstIn_WAE2->tooltip(_("Received RST"));
2258 inpRstIn_WAE2->type(FL_NORMAL_INPUT);
2259
2260 inpRstOut_WAE2 = new Fl_Input2(
2261 rightof(inpRstIn_WAE2) + fl_width("xOut"), y, wRST, h, "Out");
2262 inpRstOut_WAE2->align(FL_ALIGN_LEFT);
2263 inpRstOut_WAE2->tooltip(_("Sent RST"));
2264 inpRstOut_WAE2->type(FL_NORMAL_INPUT);
2265
2266 outSerNo_WAE2 = new Fl_Input2(
2267 rightof(inpRstOut_WAE2) + fl_width("xS#"), y, 40, h, "S#");
2268 outSerNo_WAE2->align(FL_ALIGN_LEFT);
2269 outSerNo_WAE2->tooltip(_("Sent serial number"));
2270 outSerNo_WAE2->type(FL_NORMAL_INPUT);
2271
2272 inpSerNo_WAE2 = new Fl_Input2(
2273 rightof(outSerNo_WAE2) + fl_width("xR#"), y, 40, h, "R#");
2274 inpSerNo_WAE2->align(FL_ALIGN_LEFT);
2275 inpSerNo_WAE2->tooltip(_("Received serial number"));
2276 inpSerNo_WAE2->type(FL_NORMAL_INPUT);
2277
2278 xtmp = rightof(inpSerNo_WAE2) + fl_width("xCntry");
2279 cboCountryWAE2 = new Fl_ComboBox(
2280 xtmp, y,
2281 TopFrame3->x() + TopFrame3->w() - xtmp - pad, Hentry,
2282 "Cntry");
2283 cboCountryWAE2->align(FL_ALIGN_LEFT);
2284 cboCountryWAE2->tooltip(_("Country worked"));
2285 cboCountryWAE2->end();
2286
2287 Fl_Box lwae_box(rightof(cboCountryWAE2), y, pad, h,"");
2288 lwae_box.box(FL_FLAT_BOX);
2289
2290 log_wae_frame->end();
2291 log_wae_frame->hide();
2292 log_wae_frame->resizable(lwae_box);
2293 // LOG_WAE - partial
2294
2295 TopFrame3b->end();
2296
2297 TopFrame3->end();
2298 TopFrame3->resizable(TopFrame3b);
2299 TopFrame3->hide();
2300 }
2301 { // default controls
2302 inpFreq = inpFreq1;
2303 inpCall = inpCall1;
2304 inpTimeOn = inpTimeOn1;
2305 inpTimeOff = inpTimeOff1;
2306 inpName = inpName1;
2307 inpRstIn = inpRstIn1;
2308 inpRstOut = inpRstOut1;
2309 qsoFreqDisp = qsoFreqDisp1;
2310 inpSerNo = inpSerNo1;
2311 outSerNo = outSerNo1;
2312 inpXchgIn = inpXchgIn1;
2313 inpClass = inp_FD_class1;
2314 inpSection = inp_FD_section1;
2315 inp_CQzone = inp_CQzone1;
2316 inp_CQstate = inp_CQstate1;
2317 cboCountry = cboCountryQSO;//cboCountryCQ1;
2318 inpLoc = inpLoc1;
2319 inp_SS_Check = inp_SS_Check1;
2320 inp_SS_Precedence = inp_SS_Precedence1;
2321 inp_SS_Section = inp_SS_Section1;
2322 inp_SS_SerialNoR = inp_SS_SerialNoR1;
2323 inp_KD_age = inp_KD_age1;
2324 inp_1010_nr = inp_1010_nr1;
2325 inp_ARR_check = inp_ARR_check1;
2326 inpSPCnum = inpSPCnum_NAQP1;
2327 inp_JOTA_troop = inp_JOTA_troop1;
2328 inp_JOTA_scout = inp_JOTA_scout1;
2329 inp_JOTA_spc = inp_JOTA_spc1;
2330
2331 qsoFreqDisp1->set_lsd(progdefaults.sel_lsd);
2332 qsoFreqDisp2->set_lsd(progdefaults.sel_lsd);
2333 qsoFreqDisp3->set_lsd(progdefaults.sel_lsd);
2334 }
2335 { // Top Macro group
2336 Y = TopFrame1->y() + Hqsoframe + pad;
2337
2338 //------------------- 4 bar macros
2339 tbar = new Fl_Group(0, Y, fl_digi_main->w(), TB_HEIGHT * 4);
2340 {
2341 int xpos = tbar->x();
2342 int ypos = Y;
2343 int Wbtn = tbar->w() / 12;
2344 int remainder = tbar->w() - Wbtn * 12;
2345 tbar->box(FL_FLAT_BOX);
2346 for (int i = 0; i < 48; i++) {
2347 btnDockMacro[i] = new Fl_Button(
2348 xpos, ypos,
2349 (remainder > 0) ? Wbtn + 1 : Wbtn, TB_HEIGHT, "");
2350 remainder--;
2351 btnDockMacro[i]->box(FL_THIN_UP_BOX);
2352 btnDockMacro[i]->tooltip(_("Left Click - execute\nRight Click - edit"));
2353 btnDockMacro[i]->callback(macro_cb, reinterpret_cast<void *>(i | 0x80));
2354 xpos += btnDockMacro[i]->w();
2355 if (i == 11 || i == 23 || i == 35) {
2356 xpos = tbar->x();
2357 remainder = tbar->w() - Wbtn * 12;
2358 ypos += TB_HEIGHT;
2359 }
2360 }
2361 tbar->end();
2362 tbar->hide();
2363 }
2364 //--------------------------------
2365
2366 macroFrame2 = new Fl_Group(0, Y, W, MACROBAR_MAX);
2367 macroFrame2->box(FL_FLAT_BOX);
2368 mf_group2 = new Fl_Group(0, Y, W - alt_btn_width, macroFrame2->h());
2369 Wmacrobtn = (mf_group2->w()) / NUMMACKEYS;
2370 wBLANK = (mf_group2->w() - NUMMACKEYS * Wmacrobtn) / 2;
2371 xpos = 0;
2372 ypos = mf_group2->y();
2373 for (int i = 0; i < NUMMACKEYS; i++) {
2374 if (i == 4 || i == 8) {
2375 bx = new Fl_Box(xpos, ypos, wBLANK, macroFrame2->h());
2376 bx->box(FL_FLAT_BOX);
2377 xpos += wBLANK;
2378 }
2379 btnMacro[NUMMACKEYS + i] = new Fl_Button(xpos, ypos, Wmacrobtn, macroFrame2->h(),
2380 macros.name[NUMMACKEYS + i].c_str());
2381 btnMacro[NUMMACKEYS + i]->callback(macro_cb, reinterpret_cast<void *>(NUMMACKEYS + i));
2382 btnMacro[NUMMACKEYS + i]->tooltip(
2383 _("Left Click - execute\nShift-Fkey - execute\nRight Click - edit"));
2384 xpos += Wmacrobtn;
2385 }
2386 mf_group2->end();
2387 btnAltMacros2 = new Fl_Button(
2388 W - alt_btn_width, ypos,
2389 alt_btn_width, MACROBAR_MAX, "2");
2390 btnAltMacros2->callback(altmacro_cb, 0);
2391 btnAltMacros2->tooltip(_("Shift-key macro set"));
2392 macroFrame2->resizable(mf_group2);
2393 macroFrame2->end();
2394
2395 Y += Hmacros;
2396 }
2397 { // Center group Rx/Tx/Raster displays
2398 center_group = new Fl_Group(0, Y, W, Htext);
2399 center_group->box(FL_FLAT_BOX);
2400
2401 text_group = new Fl_Group(0, Y, center_group->w(), center_group->h());
2402 text_group->box(FL_FLAT_BOX);
2403
2404 text_panel = new Panel(0, Y, center_group->w(), center_group->h());
2405 text_panel->box(FL_FLAT_BOX);
2406
2407 mvgroup = new Fl_Group(
2408 text_panel->x(), text_panel->y(),
2409 text_panel->w()/2, Htext, "");
2410
2411 mainViewer = new pskBrowser(mvgroup->x(), mvgroup->y(), mvgroup->w(), mvgroup->h()-42, "");
2412 mainViewer->box(FL_DOWN_BOX);
2413 mainViewer->has_scrollbar(Fl_Browser_::VERTICAL);
2414 mainViewer->callback((Fl_Callback*)cb_mainViewer);
2415 mainViewer->setfont(progdefaults.ViewerFontnbr, progdefaults.ViewerFontsize);
2416 mainViewer->tooltip(_("Left click - select\nRight click - clear line"));
2417
2418 // mainViewer uses same regular expression evaluator as Viewer
2419 mainViewer->seek_re = &seek_re;
2420
2421 Fl_Group* gseek = new Fl_Group(mvgroup->x(), mvgroup->y() + mvgroup->h() - 42, mvgroup->w(), 20);
2422 // search field
2423 gseek->box(FL_FLAT_BOX);
2424
2425 int seek_x = mvgroup->x();
2426 int seek_y = mvgroup->y() + Htext - 42;
2427 int seek_w = mvgroup->w();
2428 txtInpSeek = new Fl_Input2( seek_x, seek_y, seek_w, gseek->h(), "");
2429 txtInpSeek->callback((Fl_Callback*)cb_mainViewer_Seek);
2430 txtInpSeek->when(FL_WHEN_CHANGED);
2431 txtInpSeek->textfont(FL_HELVETICA);
2432 txtInpSeek->value(progStatus.browser_search.c_str());
2433 txtInpSeek->do_callback();
2434 txtInpSeek->tooltip(_("seek - regular expression"));
2435 gseek->resizable(txtInpSeek);
2436 gseek->end();
2437
2438 Fl_Group *g = new Fl_Group(
2439 mvgroup->x(), mvgroup->y() + mvgroup->h() - 22,
2440 mvgroup->w(), 22);
2441 g->box(FL_DOWN_BOX);
2442 // squelch
2443 mvsquelch = new Fl_Value_Slider2(g->x(), g->y(), g->w() - 75, g->h());
2444 mvsquelch->type(FL_HOR_NICE_SLIDER);
2445 mvsquelch->range(-3.0, 6.0);
2446 mvsquelch->value(progStatus.VIEWER_psksquelch);
2447 mvsquelch->step(0.1);
2448 mvsquelch->color( fl_rgb_color(
2449 progdefaults.bwsrSliderColor.R,
2450 progdefaults.bwsrSliderColor.G,
2451 progdefaults.bwsrSliderColor.B));
2452 mvsquelch->selection_color( fl_rgb_color(
2453 progdefaults.bwsrSldrSelColor.R,
2454 progdefaults.bwsrSldrSelColor.G,
2455 progdefaults.bwsrSldrSelColor.B));
2456 mvsquelch->callback( (Fl_Callback *)cb_mvsquelch);
2457 mvsquelch->tooltip(_("Set Viewer Squelch"));
2458
2459 // clear button
2460 btnClearMViewer = new Fl_Button(
2461 mvsquelch->x() + mvsquelch->w(), g->y(),
2462 75, g->h(),
2463 icons::make_icon_label(_("Clear"), edit_clear_icon));
2464 btnClearMViewer->align(FL_ALIGN_LEFT | FL_ALIGN_INSIDE);
2465 icons::set_icon_label(btnClearMViewer);
2466 btnClearMViewer->callback((Fl_Callback*)cb_btnClearMViewer);
2467
2468 g->resizable(mvsquelch);
2469 g->end();
2470
2471 mvgroup->resizable(mainViewer);
2472 mvgroup->end();
2473 save_mvx = mvgroup->w();
2474
2475 int rh = progStatus.tile_y_ratio * text_panel->h();
2476
2477 if (progdefaults.rxtx_swap) rh = text_panel->h() - rh;
2478
2479 ReceiveText = new FTextRX(
2480 text_panel->x() + mvgroup->w(), text_panel->y(),
2481 text_panel->w() - mvgroup->w(), rh, "" );
2482 ReceiveText->color(
2483 fl_rgb_color(
2484 progdefaults.RxColor.R,
2485 progdefaults.RxColor.G,
2486 progdefaults.RxColor.B),
2487 progdefaults.RxTxSelectcolor);
2488 ReceiveText->setFont(progdefaults.RxFontnbr);
2489 ReceiveText->setFontSize(progdefaults.RxFontsize);
2490 ReceiveText->setFontColor(progdefaults.RxFontcolor, FTextBase::RECV);
2491 ReceiveText->setFontColor(progdefaults.XMITcolor, FTextBase::XMIT);
2492 ReceiveText->setFontColor(progdefaults.CTRLcolor, FTextBase::CTRL);
2493 ReceiveText->setFontColor(progdefaults.SKIPcolor, FTextBase::SKIP);
2494 ReceiveText->setFontColor(progdefaults.ALTRcolor, FTextBase::ALTR);
2495
2496 FHdisp = new Raster(
2497 text_panel->x() + mvgroup->w(), text_panel->y(),
2498 text_panel->w() - mvgroup->w(), rh,
2499 progdefaults.HellRcvHeight);
2500 FHdisp->align(FL_ALIGN_CLIP);
2501 FHdisp->reverse(progdefaults.HellBlackboard);
2502 FHdisp->clear();
2503 FHdisp->hide();
2504
2505 TransmitText = new FTextTX(
2506 text_panel->x() + mvgroup->w(), text_panel->y() + ReceiveText->h(),
2507 text_panel->w() - mvgroup->w(), text_panel->h() - ReceiveText->h() );
2508 TransmitText->color(
2509 fl_rgb_color(
2510 progdefaults.TxColor.R,
2511 progdefaults.TxColor.G,
2512 progdefaults.TxColor.B),
2513 progdefaults.RxTxSelectcolor);
2514 TransmitText->setFont(progdefaults.TxFontnbr);
2515 TransmitText->setFontSize(progdefaults.TxFontsize);
2516 TransmitText->setFontColor(progdefaults.TxFontcolor, FTextBase::RECV);
2517 TransmitText->setFontColor(progdefaults.XMITcolor, FTextBase::XMIT);
2518 TransmitText->setFontColor(progdefaults.CTRLcolor, FTextBase::CTRL);
2519 TransmitText->setFontColor(progdefaults.SKIPcolor, FTextBase::SKIP);
2520 TransmitText->setFontColor(progdefaults.ALTRcolor, FTextBase::ALTR);
2521 TransmitText->align(FL_ALIGN_CLIP);
2522
2523 minbox = new Fl_Box(
2524 text_panel->x(),
2525 text_panel->y() + minhtext,
2526 text_panel->w() - 100,
2527 text_panel->h() - 2*minhtext);
2528 minbox->hide();
2529
2530 text_panel->resizable(minbox);
2531 text_panel->end();
2532
2533 text_group->end();
2534 text_group->resizable(text_panel);
2535
2536 // wefax_group = new Fl_Group(0, Y, W, Htext);
2537 // wefax_group->box(FL_FLAT_BOX);
2538 // wefax_group = wefax_pic::create_wefax_rx_viewer(wefax_group->x(), wefax_group->y(), wefax_group->w(), wefax_group->h());
2539 wefax_group = create_wefax_rx_viewer(0, Y, W, Htext);
2540 wefax_group->end();
2541 // wefax_pic::create_both( true );
2542 // wefax_group->end();
2543 // wefax_pic:: wefax_pic::create_wefax_tx_viewer(0, 0, 800, 400 );
2544
2545 fsq_group = new Fl_Group(0, Y, W, Htext);
2546 fsq_group->box(FL_FLAT_BOX);
2547 // left, resizable rx/tx widgets
2548 fsq_left = new Panel(
2549 0, Y,
2550 W - 180, Htext);
2551
2552 fsq_left->box(FL_FLAT_BOX);
2553 // add rx & monitor
2554 fsq_rx_text = new FTextRX(
2555 0, Y,
2556 fsq_left->w(), fsq_left->h() / 2);
2557 fsq_rx_text->color(
2558 fl_rgb_color(
2559 progdefaults.RxColor.R,
2560 progdefaults.RxColor.G,
2561 progdefaults.RxColor.B),
2562 progdefaults.RxTxSelectcolor);
2563 fsq_rx_text->setFont(progdefaults.RxFontnbr);
2564 fsq_rx_text->setFontSize(progdefaults.RxFontsize);
2565 fsq_rx_text->setFontColor(progdefaults.RxFontcolor, FTextBase::RECV);
2566 fsq_rx_text->setFontColor(progdefaults.XMITcolor, FTextBase::XMIT);
2567 fsq_rx_text->setFontColor(progdefaults.CTRLcolor, FTextBase::CTRL);
2568 fsq_rx_text->setFontColor(progdefaults.SKIPcolor, FTextBase::SKIP);
2569 fsq_rx_text->setFontColor(progdefaults.ALTRcolor, FTextBase::ALTR);
2570 fsq_rx_text->setFontColor(progdefaults.fsq_xmt_color, FTextBase::FSQ_TX);
2571 fsq_rx_text->setFontColor(progdefaults.fsq_directed_color, FTextBase::FSQ_DIR);
2572 fsq_rx_text->setFontColor(progdefaults.fsq_undirected_color, FTextBase::FSQ_UND);
2573
2574 fsq_tx_text = new FTextTX(
2575 0, Y + fsq_rx_text->h(),
2576 fsq_left->w(), fsq_left->h() - fsq_rx_text->h());
2577 fsq_tx_text->color(
2578 fl_rgb_color(
2579 progdefaults.TxColor.R,
2580 progdefaults.TxColor.G,
2581 progdefaults.TxColor.B),
2582 progdefaults.RxTxSelectcolor);
2583 fsq_tx_text->setFont(progdefaults.TxFontnbr);
2584 fsq_tx_text->setFontSize(progdefaults.TxFontsize);
2585 fsq_tx_text->setFontColor(progdefaults.TxFontcolor, FTextBase::RECV);
2586 fsq_tx_text->setFontColor(progdefaults.XMITcolor, FTextBase::XMIT);
2587 fsq_tx_text->setFontColor(progdefaults.CTRLcolor, FTextBase::CTRL);
2588 fsq_tx_text->setFontColor(progdefaults.SKIPcolor, FTextBase::SKIP);
2589 fsq_tx_text->setFontColor(progdefaults.ALTRcolor, FTextBase::ALTR);
2590 fsq_tx_text->align(FL_ALIGN_CLIP);
2591
2592 fsq_minbox = new Fl_Box(
2593 0, Y + minhtext,
2594 fsq_tx_text->w(),
2595 fsq_left->h() - 2 * minhtext);
2596 fsq_minbox->hide();
2597
2598 fsq_left->resizable(fsq_minbox);
2599 fsq_left->end();
2600
2601 // right, heard list, special fsq controls, s/n indicator
2602 Fl_Group *fsq_right = new Fl_Group(
2603 fsq_left->w(), Y, 180, fsq_left->h());
2604 fsq_right->box(FL_FLAT_BOX);
2605
2606 int bh = 20;
2607 int qh = bh + bh + 1 + 8 + image_s2n.h();
2608
2609 static int heard_widths[] =
2610 { 40*fsq_right->w()/100,
2611 30*fsq_right->w()/100,
2612 0 };
2613 fsq_heard = new Fl_Browser(
2614 fsq_right->x(), fsq_right->y(),
2615 fsq_right->w(), fsq_right->h() - qh);//minhtext);
2616 fsq_heard->column_widths(heard_widths);
2617 fsq_heard->column_char(',');
2618 fsq_heard->tooltip(_("Select FSQ station"));
2619 fsq_heard->callback((Fl_Callback*)cb_fsq_heard);
2620 fsq_heard->type(FL_MULTI_BROWSER);
2621 fsq_heard->box(FL_DOWN_BOX);
2622 fsq_heard->add("allcall");
2623 fsq_heard->labelfont(progdefaults.RxFontnbr);
2624 fsq_heard->labelsize(11);
2625 #ifdef __APPLE__
2626 fsq_heard->textfont(FL_SCREEN_BOLD);
2627 fsq_heard->textsize(13);
2628 #else
2629 fsq_heard->textfont(FL_HELVETICA);
2630 fsq_heard->textsize(13);
2631 #endif
2632
2633 int qw = fsq_right->w();
2634
2635 int bw2 = qw / 2;
2636 int bw4 = qw / 4;
2637
2638 fsq_lower_right = new Fl_Group(
2639 fsq_right->x(), fsq_heard->y() + fsq_heard->h(),
2640 qw, qh);
2641 fsq_lower_right->box(FL_FLAT_BOX);
2642 fsq_lower_right->color(FL_WHITE);
2643
2644 int _yp = fsq_lower_right->y();
2645 int _xp = fsq_lower_right->x();
2646
2647 btn_FSQCALL = new Fl_Light_Button(
2648 _xp, _yp, bw2, bh, "FSQ-ON");
2649 btn_FSQCALL->value(progdefaults.fsq_directed);
2650 btn_FSQCALL->selection_color(FL_DARK_GREEN);
2651 btn_FSQCALL->callback(cbFSQCALL, 0);
2652 btn_FSQCALL->tooltip("Left click - on/off");
2653
2654 _xp += bw2;
2655
2656 btn_SELCAL = new Fl_Light_Button(
2657 _xp, _yp, bw2, bh, "ACTIVE");
2658 btn_SELCAL->selection_color(FL_DARK_RED);
2659 btn_SELCAL->value(1);
2660 btn_SELCAL->callback(cbSELCAL, 0);
2661 btn_SELCAL->tooltip("Sleep / Active");
2662
2663 _xp = fsq_lower_right->x();
2664 _yp += bh;
2665
2666 btn_MONITOR = new Fl_Light_Button(
2667 _xp, _yp, bw4, bh, "MON");
2668 btn_MONITOR->selection_color(FL_DARK_GREEN);
2669 btn_MONITOR->value(progdefaults.fsq_show_monitor = false);
2670 btn_MONITOR->callback(cbMONITOR, 0);
2671 btn_MONITOR->tooltip("Monitor Open/Close");
2672
2673 _xp += bw4;
2674
2675 btn_FSQQTH = new Fl_Button(
2676 _xp, _yp, bw4, bh, "QTH");
2677 btn_FSQQTH->callback(cbFSQQTH, 0);
2678 btn_FSQQTH->tooltip("QTH->tx panel");
2679
2680 _xp += bw4;
2681
2682 btn_FSQQTC = new Fl_Button(
2683 _xp, _yp, bw4, bh, "QTC");
2684 btn_FSQQTC->callback(cbFSQQTC, 0);
2685 btn_FSQQTC->tooltip("QTC->tx panel");
2686
2687 _xp += bw4;
2688
2689 btn_FSQCQ = new Fl_Button(
2690 _xp, _yp, bw4, bh, "CQ");
2691 btn_FSQCQ->callback(cbFSQCQ, 0);
2692 btn_FSQCQ->tooltip("Xmt cqcqcq");
2693
2694 _xp = fsq_lower_right->x();
2695 _yp += (bh + 1);
2696
2697 ind_fsq_s2n = new Progress(
2698 _xp + 10, _yp, qw - 20, 8, "");
2699 ind_fsq_s2n->color(FL_WHITE, FL_DARK_GREEN);
2700 ind_fsq_s2n->type(Progress::HORIZONTAL);
2701 ind_fsq_s2n->value(40);
2702
2703 _yp += 8;
2704 int th = fsq_tx_text->y() + fsq_tx_text->h();
2705 th = (th - _yp);
2706
2707 // Clear remainder of area if needed.
2708 if(th > image_s2n.h()) {
2709 Fl_Box *_nA = new Fl_Box(_xp, _yp, qw, th, "");
2710 _nA->box(FL_FLAT_BOX);
2711 _nA->color(FL_WHITE);
2712 }
2713
2714 // Add S/N rule
2715 Fl_Box *s2n = new Fl_Box(
2716 _xp + 10, _yp, qw - 20, image_s2n.h(), "");
2717 s2n->box(FL_FLAT_BOX);
2718 s2n->color(FL_WHITE);
2719 s2n->align(FL_ALIGN_INSIDE | FL_ALIGN_TOP | FL_ALIGN_CENTER | FL_ALIGN_CLIP);
2720 s2n->image(image_s2n);
2721
2722 fsq_lower_right->end();
2723
2724 fsq_right->resizable(fsq_heard);
2725
2726 fsq_right->end();
2727
2728 fsq_group->resizable(fsq_left);
2729
2730 fsq_group->end();
2731
2732 ifkp_group = new Fl_Group(0, Y, W, Htext);
2733 ifkp_group->box(FL_FLAT_BOX);
2734 // upper, receive ifkp widgets
2735 ifkp_left = new Panel(
2736 0, Y,
2737 W - (image_s2n.w()+4), Htext);
2738 // add rx & tx
2739 ifkp_rx_text = new FTextRX(
2740 0, Y,
2741 ifkp_left->w(), ifkp_group->h() / 2);
2742 ifkp_rx_text->color(
2743 fl_rgb_color(
2744 progdefaults.RxColor.R,
2745 progdefaults.RxColor.G,
2746 progdefaults.RxColor.B),
2747 progdefaults.RxTxSelectcolor);
2748 ifkp_rx_text->setFont(progdefaults.RxFontnbr);
2749 ifkp_rx_text->setFontSize(progdefaults.RxFontsize);
2750 ifkp_rx_text->setFontColor(progdefaults.RxFontcolor, FTextBase::RECV);
2751 ifkp_rx_text->setFontColor(progdefaults.XMITcolor, FTextBase::XMIT);
2752 ifkp_rx_text->setFontColor(progdefaults.CTRLcolor, FTextBase::CTRL);
2753 ifkp_rx_text->setFontColor(progdefaults.SKIPcolor, FTextBase::SKIP);
2754 ifkp_rx_text->setFontColor(progdefaults.ALTRcolor, FTextBase::ALTR);
2755
2756 ifkp_tx_text = new FTextTX(
2757 0, Y + ifkp_rx_text->h(),
2758 ifkp_rx_text->w(), ifkp_group->h() - ifkp_rx_text->h());
2759 ifkp_tx_text->color(
2760 fl_rgb_color(
2761 progdefaults.TxColor.R,
2762 progdefaults.TxColor.G,
2763 progdefaults.TxColor.B),
2764 progdefaults.RxTxSelectcolor);
2765 ifkp_tx_text->setFont(progdefaults.TxFontnbr);
2766 ifkp_tx_text->setFontSize(progdefaults.TxFontsize);
2767 ifkp_tx_text->setFontColor(progdefaults.TxFontcolor, FTextBase::RECV);
2768 ifkp_tx_text->setFontColor(progdefaults.XMITcolor, FTextBase::XMIT);
2769 ifkp_tx_text->setFontColor(progdefaults.CTRLcolor, FTextBase::CTRL);
2770 ifkp_tx_text->setFontColor(progdefaults.SKIPcolor, FTextBase::SKIP);
2771 ifkp_tx_text->setFontColor(progdefaults.ALTRcolor, FTextBase::ALTR);
2772 ifkp_tx_text->align(FL_ALIGN_CLIP);
2773
2774 ifkp_minbox = new Fl_Box(
2775 0, Y + minhtext,
2776 ifkp_tx_text->w(),
2777 ifkp_left->h() - 2 * minhtext);
2778 ifkp_minbox->hide();
2779
2780 ifkp_left->resizable(ifkp_minbox);
2781 ifkp_left->end();
2782
2783 ifkp_right = new Fl_Group(
2784 ifkp_left->w(), Y,
2785 image_s2n.w()+4, ifkp_group->h());
2786 ifkp_right->box(FL_FLAT_BOX);
2787
2788 static int ifkp_heard_widths[] =
2789 { 40*ifkp_right->w()/100,
2790 30*ifkp_right->w()/100,
2791 0 };
2792 ifkp_heard = new Fl_Browser(
2793 ifkp_right->x(), ifkp_right->y(),
2794 image_s2n.w()+4, ifkp_right->h() - (14 + image_s2n.h()));
2795 ifkp_heard->column_widths(ifkp_heard_widths);
2796 ifkp_heard->type(FL_MULTI_BROWSER);
2797 ifkp_heard->callback((Fl_Callback*)cb_ifkp_heard);
2798 ifkp_heard->column_char(',');
2799 ifkp_heard->tooltip(_("Stations Heard"));
2800 ifkp_heard->box(FL_DOWN_BOX);
2801 ifkp_heard->labelfont(progdefaults.RxFontnbr);
2802 ifkp_heard->labelsize(11);
2803 #ifdef __APPLE__
2804 ifkp_heard->textfont(FL_SCREEN_BOLD);
2805 ifkp_heard->textsize(13);
2806 #else
2807 ifkp_heard->textfont(FL_HELVETICA);
2808 ifkp_heard->textsize(13);
2809 #endif
2810 Fl_Group *ifkp_sn_box = new Fl_Group(
2811 ifkp_heard->x(), ifkp_heard->y() + ifkp_heard->h(),
2812 ifkp_heard->w(), 14 + image_s2n.h(), "");
2813 ifkp_sn_box->box(FL_DOWN_BOX);
2814
2815 ifkp_sn_box->color(FL_WHITE);
2816 ifkp_s2n_progress = new Progress(
2817 ifkp_sn_box->x() + 2, ifkp_sn_box->y() + 2,
2818 image_s2n.w(), 10, "");
2819 ifkp_s2n_progress->color(FL_WHITE, FL_DARK_GREEN);
2820 ifkp_s2n_progress->type(Progress::HORIZONTAL);
2821 ifkp_s2n_progress->value(40);
2822
2823 Fl_Box *ifkp_s2n = new Fl_Box(
2824 ifkp_s2n_progress->x(), ifkp_s2n_progress->y() + ifkp_s2n_progress->h(),
2825 image_s2n.w(), image_s2n.h(), "");
2826 ifkp_s2n->box(FL_FLAT_BOX);
2827 ifkp_s2n->color(FL_WHITE);
2828 ifkp_s2n->align(FL_ALIGN_INSIDE | FL_ALIGN_TOP | FL_ALIGN_CENTER | FL_ALIGN_CLIP);
2829 ifkp_s2n->image(image_s2n);
2830
2831 ifkp_sn_box->end();
2832
2833 ifkp_right->end();
2834 ifkp_right->resizable(ifkp_heard);
2835
2836 ifkp_right->end();
2837
2838 // lower, transmit ifkp widgets
2839 ifkp_group->resizable(ifkp_left);
2840
2841 ifkp_group->end();
2842
2843 fmt_group = fmt_panel(0, Y, W, Htext);
2844 fmt_group->end();
2845
2846 center_group->end();
2847
2848 text_group->show();
2849 wefax_group->hide();
2850 fsq_group->hide();
2851 ifkp_group->hide();
2852 fmt_group->hide();
2853
2854 }
2855 { // Bottom Macro group
2856 Y += center_group->h();
2857
2858 Fl::add_handler(default_handler);
2859
2860 macroFrame1 = new Fl_Group(0, Y, W, MACROBAR_MAX);
2861 macroFrame1->box(FL_FLAT_BOX);
2862 mf_group1 = new Fl_Group(0, Y, W - alt_btn_width, macroFrame1->h());
2863 Wmacrobtn = (mf_group1->w()) / NUMMACKEYS;
2864 wBLANK = (mf_group1->w() - NUMMACKEYS * Wmacrobtn) / 2;
2865 xpos = 0;
2866 ypos = mf_group1->y();
2867 for (int i = 0; i < NUMMACKEYS; i++) {
2868 if (i == 4 || i == 8) {
2869 bx = new Fl_Box(xpos, ypos, wBLANK, macroFrame1->h());
2870 bx->box(FL_FLAT_BOX);
2871 xpos += wBLANK;
2872 }
2873 btnMacro[i] = new Fl_Button(xpos, ypos, Wmacrobtn, macroFrame1->h(),
2874 macros.name[i].c_str());
2875 btnMacro[i]->callback(macro_cb, reinterpret_cast<void *>(i));
2876 btnMacro[i]->tooltip(_("Left Click - execute\nFkey - execute\nRight Click - edit"));
2877 xpos += Wmacrobtn;
2878 }
2879 mf_group1->end();
2880 btnAltMacros1 = new Fl_Button(
2881 W - alt_btn_width, ypos,
2882 alt_btn_width, macroFrame1->h(), "1");
2883 btnAltMacros1->callback(altmacro_cb, 0);
2884 btnAltMacros1->labelsize(progdefaults.MacroBtnFontsize);
2885 btnAltMacros1->tooltip(_("Primary macro set"));
2886 macroFrame1->resizable(mf_group1);
2887 macroFrame1->end();
2888 Y += Hmacros;
2889 }
2890 { // Waterfall group
2891 wf_group = new Fl_Pack(0, Y, W, Hwfall);
2892 wf_group->type(1);
2893
2894 wf = new waterfall(0, Y, Wwfall, Hwfall);
2895 wf->end();
2896
2897 pgrsSquelch = new Progress(
2898 rightof(wf), Y,
2899 DEFAULT_SW, Hwfall,
2900 "");
2901 pgrsSquelch->color(FL_BACKGROUND2_COLOR, FL_DARK_GREEN);
2902 pgrsSquelch->type(Progress::VERTICAL);
2903 pgrsSquelch->tooltip(_("Detected signal level"));
2904 sldrSquelch = new Fl_Slider2(
2905 rightof(pgrsSquelch), Y,
2906 DEFAULT_SW, Hwfall,
2907 "");
2908 sldrSquelch->minimum(100);
2909 sldrSquelch->maximum(0);
2910 sldrSquelch->step(1);
2911 sldrSquelch->value(progStatus.sldrSquelchValue);
2912 sldrSquelch->callback((Fl_Callback*)cb_sldrSquelch);
2913 sldrSquelch->color(FL_INACTIVE_COLOR);
2914 sldrSquelch->tooltip(_("Squelch level"));
2915 // Fl_Group::current()->resizable(wf);
2916 wf_group->end();
2917 wf_group->resizable(wf);
2918 }
2919 { // Status bar group
2920 Y += Hwfall;
2921
2922 status_group = new Fl_Group(0, Y, W, Hstatus);
2923
2924 MODEstatus = new Fl_Button(0, Y, Wmode, Hstatus, "");
2925 MODEstatus->box(FL_DOWN_BOX);
2926 MODEstatus->color(FL_BACKGROUND2_COLOR);
2927 MODEstatus->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
2928 MODEstatus->callback(status_cb, (void *)0);
2929 MODEstatus->when(FL_WHEN_CHANGED);
2930 MODEstatus->tooltip(_("Left click: change mode\nRight click: configure"));
2931
2932 cntCW_WPM = new Fl_Counter2(
2933 rightof(MODEstatus), Y,
2934 Ws2n - Hstatus, Hstatus, "");
2935 cntCW_WPM->callback(cb_cntCW_WPM);
2936 cntCW_WPM->minimum(progdefaults.CWlowerlimit);
2937 cntCW_WPM->maximum(progdefaults.CWupperlimit);
2938 cntCW_WPM->value(progdefaults.CWspeed);
2939 cntCW_WPM->type(1);
2940 cntCW_WPM->step(1);
2941 cntCW_WPM->tooltip(_("CW transmit WPM"));
2942 cntCW_WPM->hide();
2943
2944 btnCW_Default = new Fl_Button(
2945 rightof(cntCW_WPM), Y,
2946 Hstatus, Hstatus, "*");
2947 btnCW_Default->callback(cb_btnCW_Default);
2948 btnCW_Default->tooltip(_("Default WPM"));
2949 btnCW_Default->hide();
2950
2951 Status1 = new Fl_Box(
2952 rightof(MODEstatus), Y,
2953 Ws2n, Hstatus, "STATUS1");
2954 Status1->box(FL_DOWN_BOX);
2955 Status1->color(FL_BACKGROUND2_COLOR);
2956 Status1->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
2957
2958 Status2 = new Fl_Box(
2959 rightof(Status1), Y,
2960 Wimd, Hstatus, "STATUS2");
2961 Status2->box(FL_DOWN_BOX);
2962 Status2->color(FL_BACKGROUND2_COLOR);
2963 Status2->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
2964
2965 inpCall4 = new Fl_Input2(
2966 rightof(Status1), Y,
2967 Wimd, Hstatus, "");
2968 inpCall4->align(FL_ALIGN_LEFT);
2969 inpCall4->tooltip(_("Other call"));
2970 inpCall4->hide();
2971
2972 // see corner_box below
2973 // corner_box used to leave room for OS X corner drag handle
2974 #ifdef __APPLE__
2975 #define cbwidth DEFAULT_SW
2976 #else
2977 #define cbwidth 0
2978 #endif
2979
2980 StatusBar = new status_box(
2981 rightof(Status2), Y,
2982 W - rightof(Status2)
2983 - bwAfcOnOff - bwSqlOnOff
2984 - Wwarn - bwTxLevel
2985 - bwSqlOnOff
2986 - cbwidth,
2987 Hstatus, "");
2988 StatusBar->box(FL_DOWN_BOX);
2989 StatusBar->color(FL_BACKGROUND2_COLOR);
2990 StatusBar->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
2991 StatusBar->callback((Fl_Callback *)StatusBar_cb);
2992 StatusBar->when(FL_WHEN_RELEASE_ALWAYS);
2993 StatusBar->tooltip(_("Left click to toggle VuMeter"));
2994
2995 VuMeter = new vumeter(StatusBar->x(), StatusBar->y(), StatusBar->w() - 2, StatusBar->h(), "");
2996 VuMeter->align(Fl_Align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE));
2997 VuMeter->when(FL_WHEN_RELEASE);
2998 VuMeter->callback((Fl_Callback *)VuMeter_cb);
2999 VuMeter->when(FL_WHEN_RELEASE_ALWAYS);
3000 VuMeter->tooltip(_("Left click to toggle Status Bar"));
3001
3002 if (progStatus.vumeter_shown) {
3003 VuMeter->show();
3004 StatusBar->hide();
3005 } else {
3006 VuMeter->hide();
3007 StatusBar->show();
3008 }
3009
3010 Fl_Box vuspacer(rightof(VuMeter),Y,2,Hstatus,"");
3011 vuspacer.box(FL_FLAT_BOX);
3012
3013 cntTxLevel = new Fl_Counter2(
3014 rightof(&vuspacer), Y,
3015 bwTxLevel, Hstatus, "");
3016 cntTxLevel->minimum(-30);
3017 cntTxLevel->maximum(0);
3018 cntTxLevel->value(-6);
3019 cntTxLevel->callback((Fl_Callback*)cb_cntTxLevel);
3020 cntTxLevel->value(progdefaults.txlevel);
3021 cntTxLevel->lstep(1.0);
3022 cntTxLevel->tooltip(_("Tx level attenuator (dB)"));
3023
3024 WARNstatus = new Fl_Box(
3025 rightof(cntTxLevel) + pad, Y,
3026 Wwarn, Hstatus, "");
3027 WARNstatus->box(FL_DIAMOND_DOWN_BOX);
3028 WARNstatus->color(FL_BACKGROUND_COLOR);
3029 WARNstatus->labelcolor(FL_RED);
3030 WARNstatus->align(FL_ALIGN_CENTER | FL_ALIGN_INSIDE);
3031
3032 btnAFC = new Fl_Light_Button(
3033 rightof(WARNstatus) + pad, Y,
3034 bwAfcOnOff, Hstatus, "AFC");
3035
3036 btnSQL = new Fl_Light_Button(
3037 rightof(btnAFC), Y,
3038 bwSqlOnOff, Hstatus, "SQL");
3039
3040 // btnPSQL will be resized later depending on the state of the
3041 // configuration parameter to show that widget
3042
3043 btnPSQL = new Fl_Light_Button(
3044 rightof(btnSQL), Y,
3045 bwSqlOnOff, Hstatus, "PSM");
3046
3047 btnSQL->selection_color(progdefaults.Sql1Color);
3048
3049 btnAFC->callback(cbAFC, 0);
3050 btnAFC->value(1);
3051 btnAFC->tooltip(_("Automatic Frequency Control"));
3052
3053 btnSQL->callback(cbSQL, 0);
3054 btnSQL->value(1);
3055 btnSQL->tooltip(_("Squelch"));
3056
3057 btnPSQL->selection_color(progdefaults.Sql1Color);
3058 btnPSQL->value(progdefaults.kpsql_enabled);
3059 btnPSQL->callback(cbPwrSQL, 0);
3060 btnPSQL->tooltip(_("Power Signal Monitor"));
3061
3062 corner_box = new Fl_Box(
3063 fl_digi_main->w() - cbwidth, Y,
3064 cbwidth, Hstatus, "");
3065
3066 corner_box->box(FL_FLAT_BOX);
3067
3068 status_group->end();
3069 status_group->resizable(VuMeter);
3070
3071 Y += status_group->h();
3072 }
3073 { // adjust callbacks
3074 showMacroSet();
3075
3076 Fl_Widget* logfields[] = {
3077 inpCall1, inpCall2, inpCall3, inpCall4,
3078 inpLoc1, inp_vhf_Loc1, inp_vhf_Loc2,
3079 inpName1, inpName1,
3080 inpTimeOn1, inpTimeOn2, inpTimeOn3, inpTimeOff1, inpTimeOff2, inpTimeOff3,
3081 inpRstIn1, inpRstIn2, inpRstIn3, inpRstIn4, inpRstIn_AICW2,
3082 inpRstOut1, inpRstOut2, inpRstOut3, inpRstOut4, inpRstOut_AICW2,
3083 inpQth, inpVEprov,
3084 inpAZ, inpNotes,
3085 inpState1,
3086 inpSerNo1, inpSerNo2, outSerNo1, outSerNo2, outSerNo3,
3087 inp_SS_Check1, inp_SS_Precedence1, inp_SS_Section1, inp_SS_SerialNoR1,
3088 outSerNo4, inp_SS_Check2, inp_SS_Precedence2, inp_SS_Section2, inp_SS_SerialNoR2,
3089 inpXchgIn1, inpXchgIn2,
3090 inp_FD_class1, inp_FD_class2, inp_FD_section1, inp_FD_section2,
3091 inp_KD_age1, inp_KD_age2,
3092 inp_KD_state1, inp_KD_state2,
3093 inp_KD_VEprov1, inp_KD_VEprov2,
3094 inp_KD_XchgIn1, inp_KD_XchgIn2,
3095 inp_vhf_RSTin1, inp_vhf_RSTin2, inp_vhf_RSTout1, inp_vhf_RSTout2,
3096 inp_1010_XchgIn1, inp_1010_XchgIn2, inp_1010_name2, inp_1010_nr1, inp_1010_nr2,
3097 inp_ARR_Name2, inp_ARR_XchgIn1, inp_ARR_XchgIn2, inp_ARR_check1, inp_ARR_check2,
3098 inp_ASCR_RSTin2, inp_ASCR_RSTout2, inp_ASCR_XchgIn1, inp_ASCR_XchgIn2,
3099 inp_ASCR_class1, inp_ASCR_class2, inp_ASCR_name2,
3100 inpSPCnum_NAQP1, inpSPCnum_NAQP2,
3101 inpRTU_stpr1, inpRTU_stpr2,
3102 inpRTU_serno1, inpRTU_serno2,
3103 cboCountryRTU2,
3104 inpRTU_RSTin2,
3105 inp_IARI_PR1, inp_IARI_PR2,
3106 inp_IARI_RSTin2, inp_IARI_RSTout2,
3107 out_IARI_SerNo1, inp_IARI_SerNo1,
3108 out_IARI_SerNo2, inp_IARI_SerNo2,
3109 inp_IARI_PR2, cboCountryIARI2,
3110 inp_JOTA_scout1, inp_JOTA_scout2,
3111 inp_JOTA_spc1, inp_JOTA_spc2,
3112 inp_JOTA_troop1, inp_JOTA_troop2,
3113 inp_CQzone1,
3114 inpSPCnum_AICW1, inpSPCnum_AICW2,
3115 inpSQSO_state1, inpSQSO_state2,
3116 inpSQSO_county1, inpSQSO_county2,
3117 inpSQSO_serno1, inpSQSO_serno2,
3118 outSQSO_serno1, outSQSO_serno2,
3119 inpSQSO_name2,
3120 inpSQSO_category1, inpSQSO_category2
3121 };
3122 for (size_t i = 0; i < sizeof(logfields)/sizeof(*logfields); i++) {
3123 logfields[i]->callback(cb_log);
3124 logfields[i]->when(FL_WHEN_CHANGED);//RELEASE || FL_WHEN_ENTER_KEY );//CHANGED);
3125 }
3126
3127 Fl_ComboBox *country_fields[] = {
3128 cboCountryQSO,
3129 cboCountryAICW2,
3130 cboCountryAIDX2,
3131 cboCountryCQ2,
3132 cboCountryCQDX2,
3133 cboCountryIARI2,
3134 cboCountryRTU2// ,
3135 // cboCountryWAE2
3136 };
3137 for (size_t i = 0; i < sizeof(country_fields)/sizeof(*country_fields); i++) {
3138 country_fields[i]->callback(cb_country);
3139 country_fields[i]->when(FL_WHEN_CHANGED);
3140 }
3141
3142 // exceptions
3143 inpCall1->callback(cb_call);
3144 inpCall1->when(FL_WHEN_CHANGED | FL_WHEN_ENTER_KEY_ALWAYS);
3145 inpCall2->callback(cb_call);
3146 inpCall2->when(FL_WHEN_CHANGED | FL_WHEN_ENTER_KEY_ALWAYS);
3147 inpCall3->callback(cb_call);
3148 inpCall3->when(FL_WHEN_CHANGED | FL_WHEN_ENTER_KEY_ALWAYS);
3149 inpCall4->callback(cb_call);
3150 inpCall4->when(FL_WHEN_CHANGED | FL_WHEN_ENTER_KEY_ALWAYS);
3151
3152 inpNotes->when(FL_WHEN_RELEASE);
3153
3154 }
3155
3156 fl_digi_main->end();
3157
3158 fl_digi_main->callback(cb_wMain);
3159 fl_digi_main->resizable(center_group);
3160
3161 { // scope view dialog
3162 scopeview = new Fl_Double_Window(0,0,140,140, _("Scope"));
3163 scopeview->xclass(PACKAGE_NAME);
3164 digiscope = new Digiscope (0, 0, 140, 140);
3165 scopeview->resizable(digiscope);
3166 scopeview->size_range(SCOPEWIN_MIN_WIDTH, SCOPEWIN_MIN_HEIGHT);
3167 scopeview->end();
3168 scopeview->hide();
3169 }
3170
3171 { // field day viewer dialog
3172 field_day_viewer = make_fd_view();
3173 field_day_viewer->hide();
3174 }
3175
3176 { // adjust menu toggle items
3177 if (!progdefaults.menuicons)
3178 icons::toggle_icon_labels();
3179
3180 // Set the state of checked toggle menu items. Never changes.
3181 const struct {
3182 bool var; const char* label;
3183 } toggles[] = {
3184 { progStatus.LOGenabled, LOG_TO_FILE_MLABEL },
3185 { progStatus.WF_UI, WF_MLABEL },
3186 { progStatus.Rig_Log_UI, RIGLOG_PARTIAL_MLABEL },
3187 { !progStatus.Rig_Log_UI, RIGLOG_FULL_MLABEL },
3188 { progStatus.NO_RIGLOG, RIGLOG_NONE_MLABEL },
3189 { progStatus.DOCKEDSCOPE, DOCKEDSCOPE_MLABEL }
3190 };
3191 Fl_Menu_Item* toggle;
3192 for (size_t i = 0; i < sizeof(toggles)/sizeof(*toggles); i++) {
3193 if (toggles[i].var && (toggle = getMenuItem(toggles[i].label))) {
3194 toggle->set();
3195 if (toggle->callback()) {
3196 mnu->value(toggle);
3197 toggle->do_callback(reinterpret_cast<Fl_Widget*>(mnu));
3198 }
3199 }
3200 }
3201 }
3202
3203 if (!dxcc_is_open())
3204 getMenuItem(COUNTRIES_MLABEL)->hide();
3205
3206 toggle_smeter();
3207
3208 adjust_for_contest(0);
3209
3210 UI_select();
3211
3212 wf->UI_select(progStatus.WF_UI);
3213
3214 LOGGING_colors_font();
3215
3216 init_country_fields();
3217
3218 clearQSO();
3219
3220 fsqMonitor = create_fsqMonitor();
3221
3222 createConfig();
3223
3224 createRecordLoader();
3225
3226 switch (progdefaults.mbar_scheme) {
3227 case 0: btn_scheme_0->setonly(); break;
3228 case 1: btn_scheme_1->setonly(); break;
3229 case 2: btn_scheme_2->setonly(); break;
3230 case 3: btn_scheme_3->setonly(); break;
3231 case 4: btn_scheme_4->setonly(); break;
3232 case 5: btn_scheme_5->setonly(); break;
3233 case 6: btn_scheme_6->setonly(); break;
3234 case 7: btn_scheme_7->setonly(); break;
3235 case 8: btn_scheme_8->setonly(); break;
3236 case 9: btn_scheme_9->setonly(); break;
3237 case 10: btn_scheme_10->setonly(); break;
3238 case 11: btn_scheme_11->setonly(); break;
3239 case 12: btn_scheme_12->setonly(); break;
3240 }
3241
3242 colorize_macros();
3243
3244 if (rx_only) {
3245 btnTune->deactivate();
3246 wf->xmtrcv->deactivate();
3247 }
3248
3249 set_mode_controls(active_modem->get_mode());
3250
3251 create_wefax_tx_viewer(0, 0, 800, 400 );
3252
3253 }
3254