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