1 // ----------------------------------------------------------------------------
2 // Copyright (C) 2014
3 //              David Freese, W1HKJ
4 //
5 // This file is part of flrig.
6 //
7 // flrig is free software; you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License as published by
9 // the Free Software Foundation; either version 3 of the License, or
10 // (at your option) any later version.
11 //
12 // flrig is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 // GNU General Public License for more details.
16 //
17 // You should have received a copy of the GNU General Public License
18 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
19 // ----------------------------------------------------------------------------
20 
21 Fl_Group *gsmall = (Fl_Group *)0;
22 
23 Fl_Menu_Item menu_small_menu[] = {
24  {_("&File"), 0,  0, 0, 64, FL_NORMAL_LABEL, 0, 14, 0},
25  {_("E&xit"), 0,  (Fl_Callback*)cb_mnuExit, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
26  {0,0,0,0,0,0,0,0,0},
27  {_("&Config"), 0,  0, 0, 64, FL_NORMAL_LABEL, 0, 14, 0},
28  {_("Setup"), 0, 0, 0, 64, FL_NORMAL_LABEL, 0, 14, 0},
29  {_("Transceiver"), 0,  (Fl_Callback*)cb_mnuConfigXcvr, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
30  {_("tcpip"), 0, (Fl_Callback*)cb_mnuTCPIP, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
31  {_("PTT"), 0, (Fl_Callback*)cb_mnuPTT, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
32  {_("GPIO"), 0, (Fl_Callback*)cb_mnuGPIO, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
33  {_("AUX"), 0, (Fl_Callback*)cb_mnuAUX, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
34  {_("Server"), 0, (Fl_Callback*)cb_mnuSERVER, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
35  {_("Polling"), 0, (Fl_Callback*)cb_Polling, 0, 128, FL_NORMAL_LABEL, 0, 14, 0},
36  {_("Trace"), 0, (Fl_Callback*)cb_mnuTrace, 0, 128, FL_NORMAL_LABEL, 0, 14, 0},
37  {_("Commands"), 0, (Fl_Callback*)cb_mnuCommands, 0, 128, FL_NORMAL_LABEL, 0, 14, 0},
38  {_("Send command"), 0, (Fl_Callback*)cb_Send, 0, 128, FL_NORMAL_LABEL, 0, 14, 0},
39  {_("Restore"), 0, (Fl_Callback*)cb_Restore, 0, 128, FL_NORMAL_LABEL, 0, 14, 0},
40  {0,0,0,0,0,0,0,0,0},
41  {_("UI"), 0, 0, 0, 64, FL_NORMAL_LABEL, 0, 14, 0},
42  {_("Meter filtering"), 0,  (Fl_Callback*)cb_mnu_meter_filtering, 0, 128, FL_NORMAL_LABEL, 0, 14, 0},
43  {_("Small sliders"), 0,  (Fl_Callback*)cb_mnuSchema, 0, 130, FL_NORMAL_LABEL, 0, 14, 0},
44  {_("Tooltips"), 0,  (Fl_Callback*)cb_mnuTooltips, 0, 130, FL_NORMAL_LABEL, 0, 14, 0},
45  {_("User Interface"), 0,  (Fl_Callback*)cb_mnuColorConfig, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
46  {0,0,0,0,0,0,0,0,0},
47  {0,0,0,0,0,0,0,0,0},
48  {_("&Memory"), 0, 0, 0, 64, FL_NORMAL_LABEL, 0, 14, 0},
49  {_("Save"), 0,  (Fl_Callback*)cb_save_me, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
50  {_("Manage"), 0,  (Fl_Callback*)cb_Memory, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
51  {0,0,0,0,0,0,0,0,0},
52  {_("&Keyer"), 0, (Fl_Callback*)cb_keyer, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
53  {_("&Help"), 0,  0, 0, 64, FL_NORMAL_LABEL, 0, 14, 0},
54  {_("On Line Help"), 0,  (Fl_Callback*)cb_mnuOnLineHelp, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
55  {_("&About"), 0,  (Fl_Callback*)cb_mnuAbout, 0, 128, FL_NORMAL_LABEL, 0, 14, 0},
56  {_("&Events"), 0,  (Fl_Callback*)cb_Events, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
57  {_("&xml-help"), 0,  (Fl_Callback*)cb_xml_help, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
58  {0,0,0,0,0,0,0,0,0},
59  {0,0,0,0,0,0,0,0,0}
60 };
61 
62 int small_menuH = SMALL_MENUH;
63 int small_mainW = SMALL_MAINW;
64 int small_mainH = SMALL_MAINH;
65 
small_main_group(int X,int Y,int W,int H)66 Fl_Group *small_main_group(int X, int Y, int W, int H)
67 {
68 	Fl_Group *g = new Fl_Group(X,Y,W,H);
69 	g->box(FL_FLAT_BOX);
70 
71 	FreqDispA = new cFreqControl(1, 24, 210, 35, _("10"));
72 //	FreqDispA->box(FL_DOWN_BOX);
73 //	FreqDispA->color(FL_BACKGROUND_COLOR);
74 //	FreqDispA->selection_color(FL_BACKGROUND_COLOR);
75 //	FreqDispA->labeltype(FL_NORMAL_LABEL);
76 //	FreqDispA->labelfont(0);
77 //	FreqDispA->labelsize(14);
78 //	FreqDispA->labelcolor(FL_FOREGROUND_COLOR);
79 //	FreqDispA->align(Fl_Align(FL_ALIGN_CENTER));
80 	FreqDispA->when(FL_WHEN_CHANGED);
81 	FreqDispA->SetONOFFCOLOR (FL_YELLOW, FL_BLACK);
82 	FreqDispA->setCallBack(movFreqA);
83 
84 	FreqDispB = new cFreqControl(213, 24, 210, 35, _("10"));
85 //	FreqDispB->box(FL_DOWN_BOX);
86 //	FreqDispB->color(FL_BACKGROUND_COLOR);
87 //	FreqDispB->selection_color(FL_BACKGROUND_COLOR);
88 //	FreqDispB->labeltype(FL_NORMAL_LABEL);
89 //	FreqDispB->labelfont(0);
90 //	FreqDispB->labelsize(14);
91 //	FreqDispB->labelcolor(FL_FOREGROUND_COLOR);
92 //	FreqDispB->align(Fl_Align(FL_ALIGN_CENTER));
93 	FreqDispB->when(FL_WHEN_CHANGED);
94 	FreqDispB->SetONOFFCOLOR (FL_YELLOW, FL_BLACK);
95 	FreqDispB->setCallBack(movFreqB);
96 
97 	btnVol = new Fl_Light_Button(2, 125, 50, 18, _("Vol"));
98 	btnVol->tooltip(_("Speaker on/off"));
99 	btnVol->down_box(FL_THIN_DOWN_BOX);
100 	btnVol->value(1);
101 	btnVol->labelsize(12);
102 	btnVol->callback((Fl_Callback*)cb_btnVol);
103 
104 	sldrVOLUME = new Fl_Wheel_Value_Slider(54, 125, 156, 18);
105 	sldrVOLUME->tooltip(_("Adjust Audio Volume"));
106 	sldrVOLUME->type(5);
107 	sldrVOLUME->box(FL_THIN_DOWN_BOX);
108 	sldrVOLUME->color(FL_BACKGROUND_COLOR);
109 	sldrVOLUME->selection_color(FL_BACKGROUND_COLOR);
110 	sldrVOLUME->labeltype(FL_NORMAL_LABEL);
111 	sldrVOLUME->labelfont(0);
112 	sldrVOLUME->labelsize(12);
113 	sldrVOLUME->labelcolor(FL_FOREGROUND_COLOR);
114 	sldrVOLUME->maximum(100);
115 	sldrVOLUME->step(1);
116 	sldrVOLUME->textsize(12);
117 	sldrVOLUME->callback((Fl_Callback*)cb_sldrVOLUME);
118 	sldrVOLUME->align(Fl_Align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE));
119 	sldrVOLUME->when(FL_WHEN_CHANGED | FL_MOUSEWHEEL | FL_LEAVE);
120 	sldrVOLUME->reverse(true);
121 
122 	btnAGC = new Fl_Light_Button(2, 145, 50, 18, _("AGC"));
123 	btnAGC->tooltip(_("Automatic Gain Control"));
124 	btnAGC->down_box(FL_THIN_DOWN_BOX);
125 	btnAGC->value(0);
126 	btnAGC->labelsize(12);
127 	btnAGC->callback((Fl_Callback*)cb_btnAGC);
128 
129 	sldrRFGAIN = new Fl_Wheel_Value_Slider(54, 145, 156, 18);
130 	sldrRFGAIN->tooltip(_("Adjust RF gain"));
131 	sldrRFGAIN->type(5);
132 	sldrRFGAIN->box(FL_THIN_DOWN_BOX);
133 	sldrRFGAIN->color(FL_BACKGROUND_COLOR);
134 	sldrRFGAIN->selection_color(FL_BACKGROUND_COLOR);
135 	sldrRFGAIN->labeltype(FL_NORMAL_LABEL);
136 	sldrRFGAIN->labelfont(0);
137 	sldrRFGAIN->labelsize(14);
138 	sldrRFGAIN->labelcolor(FL_FOREGROUND_COLOR);
139 	sldrRFGAIN->maximum(100);
140 	sldrRFGAIN->step(1);
141 	sldrRFGAIN->value(15);
142 	sldrRFGAIN->textsize(12);
143 	sldrRFGAIN->callback((Fl_Callback*)cb_sldrRFGAIN);
144 	sldrRFGAIN->align(Fl_Align(FL_ALIGN_LEFT));
145 	sldrRFGAIN->when(FL_WHEN_CHANGED);
146 	sldrRFGAIN->reverse(true);
147 
148 	sldrSQUELCH = new Fl_Wheel_Value_Slider(54, 165, 156, 18, _("SQL"));
149 	sldrSQUELCH->tooltip(_("Adjust Squelch"));
150 	sldrSQUELCH->type(5);
151 	sldrSQUELCH->box(FL_THIN_DOWN_BOX);
152 	sldrSQUELCH->color(FL_BACKGROUND_COLOR);
153 	sldrSQUELCH->selection_color(FL_BACKGROUND_COLOR);
154 	sldrSQUELCH->labeltype(FL_NORMAL_LABEL);
155 	sldrSQUELCH->labelfont(0);
156 	sldrSQUELCH->labelsize(14);
157 	sldrSQUELCH->labelcolor(FL_FOREGROUND_COLOR);
158 	sldrSQUELCH->maximum(100);
159 	sldrSQUELCH->step(1);
160 	sldrSQUELCH->value(15);
161 	sldrSQUELCH->textsize(12);
162 	sldrSQUELCH->callback((Fl_Callback*)cb_sldrSQUELCH);
163 	sldrSQUELCH->align(Fl_Align(FL_ALIGN_LEFT));
164 	sldrSQUELCH->when(FL_WHEN_CHANGED);
165 	sldrSQUELCH->reverse(true);
166 
167 	btnNR = new Fl_Light_Button(2, 185, 50, 18, _("NR"));
168 	btnNR->tooltip(_("Noise Reduction On/Off"));
169 	btnNR->down_box(FL_THIN_DOWN_BOX);
170 	btnNR->labelsize(12);
171 	btnNR->callback((Fl_Callback*)cb_btnNR);
172 
173 	sldrNR = new Fl_Wheel_Value_Slider(54, 185, 156, 18);
174 	sldrNR->tooltip(_("Adjust noise reduction"));
175 	sldrNR->type(5);
176 	sldrNR->box(FL_THIN_DOWN_BOX);
177 	sldrNR->color(FL_BACKGROUND_COLOR);
178 	sldrNR->selection_color(FL_BACKGROUND_COLOR);
179 	sldrNR->labeltype(FL_NORMAL_LABEL);
180 	sldrNR->labelfont(0);
181 	sldrNR->labelsize(12);
182 	sldrNR->labelcolor(FL_FOREGROUND_COLOR);
183 	sldrNR->maximum(100);
184 	sldrNR->step(2);
185 	sldrNR->textsize(12);
186 	sldrNR->callback((Fl_Callback*)cb_sldrNR);
187 	sldrNR->align(Fl_Align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE));
188 	sldrNR->when(FL_WHEN_CHANGED);
189 	sldrNR->reverse(true);
190 
191 	btnNotch = new Fl_Light_Button(2, 205, 50, 18, _("Nch"));
192 	btnNotch->tooltip(_("Notch - Manual (off) Auto (on)"));
193 	btnNotch->down_box(FL_THIN_DOWN_BOX);
194 	btnNotch->labelsize(12);
195 	btnNotch->callback((Fl_Callback*)cb_btnNotch);
196 
197 	sldrNOTCH = new Fl_Wheel_Value_Slider(54, 205, 156, 18);
198 	sldrNOTCH->tooltip(_("Adjust Notch Frequency"));
199 	sldrNOTCH->type(5);
200 	sldrNOTCH->box(FL_THIN_DOWN_BOX);
201 	sldrNOTCH->color(FL_BACKGROUND_COLOR);
202 	sldrNOTCH->selection_color(FL_BACKGROUND_COLOR);
203 	sldrNOTCH->labeltype(FL_NORMAL_LABEL);
204 	sldrNOTCH->labelfont(0);
205 	sldrNOTCH->labelsize(14);
206 	sldrNOTCH->labelcolor(FL_FOREGROUND_COLOR);
207 	sldrNOTCH->minimum(-1000);
208 	sldrNOTCH->maximum(1000);
209 	sldrNOTCH->step(10);
210 	sldrNOTCH->textsize(12);
211 	sldrNOTCH->callback((Fl_Callback*)cb_sldrNOTCH);
212 	sldrNOTCH->align(Fl_Align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE));
213 	sldrNOTCH->when(FL_WHEN_CHANGED);
214 	sldrNOTCH->reverse(true);
215 
216 	btnLOCK = new Fl_Light_Button(2, 225, 50, 18, _("Lock"));
217 	btnLOCK->tooltip(_("Lock PBT Inner/Outer sliders"));
218 	btnLOCK->down_box(FL_THIN_DOWN_BOX);
219 	btnLOCK->labelsize(12);
220 	btnLOCK->callback((Fl_Callback*)cb_btnLOCK);
221 
222 	sldrINNER = new Fl_Wheel_Value_Slider(54, 225, 156, 18, "");
223 	sldrINNER->tooltip(_("Adjust Icom Inner PBT"));
224 	sldrINNER->type(5);
225 	sldrINNER->box(FL_THIN_DOWN_BOX);
226 	sldrINNER->color(FL_BACKGROUND_COLOR);
227 	sldrINNER->selection_color(FL_BACKGROUND_COLOR);
228 	sldrINNER->labeltype(FL_NORMAL_LABEL);
229 	sldrINNER->labelfont(0);
230 	sldrINNER->labelsize(12);
231 	sldrINNER->labelcolor(FL_FOREGROUND_COLOR);
232 	sldrINNER->minimum(-50);
233 	sldrINNER->maximum(50);
234 	sldrINNER->step(1);
235 	sldrINNER->textsize(12);
236 	sldrINNER->callback((Fl_Callback*)cb_sldrINNER);
237 	sldrINNER->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
238 	sldrINNER->when(FL_WHEN_CHANGED);
239 	sldrINNER->reverse(true);
240 
241 	btnCLRPBT = new Fl_Button(
242 		2, 245,
243 		50, 18, _("ClrPBT"));
244 	btnCLRPBT->tooltip(_("Zero PBT Inner/Outer sliders"));
245 	btnCLRPBT->down_box(FL_THIN_DOWN_BOX);
246 	btnCLRPBT->labelsize(12);
247 	btnCLRPBT->callback((Fl_Callback*)cb_btnCLRPBT);
248 
249 	sldrOUTER = new Fl_Wheel_Value_Slider(54, 245, 156, 18, "");
250 	sldrOUTER->tooltip(_("Adjust Icom Outer PBT"));
251 	sldrOUTER->type(5);
252 	sldrOUTER->box(FL_THIN_DOWN_BOX);
253 	sldrOUTER->color(FL_BACKGROUND_COLOR);
254 	sldrOUTER->selection_color(FL_BACKGROUND_COLOR);
255 	sldrOUTER->labeltype(FL_NORMAL_LABEL);
256 	sldrOUTER->labelfont(0);
257 	sldrOUTER->labelsize(12);
258 	sldrOUTER->labelcolor(FL_FOREGROUND_COLOR);
259 	sldrOUTER->minimum(-50);
260 	sldrOUTER->maximum(50);
261 	sldrOUTER->step(1);
262 	sldrOUTER->textsize(12);
263 	sldrOUTER->callback((Fl_Callback*)cb_sldrOUTER);
264 	sldrOUTER->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
265 	sldrOUTER->when(FL_WHEN_CHANGED);
266 	sldrOUTER->reverse(true);
267 
268 	btnIFsh = new Fl_Light_Button(2, 265, 50, 18, _("IFsh"));
269 	btnIFsh->tooltip(_("IF Shift On/Off"));
270 	btnIFsh->down_box(FL_THIN_DOWN_BOX);
271 	btnIFsh->labelsize(12);
272 	btnIFsh->callback((Fl_Callback*)cb_btnIFsh);
273 
274 	sldrIFSHIFT = new Fl_Wheel_Value_Slider(54, 265, 156, 18);
275 	sldrIFSHIFT->tooltip(_("Adjust IF Shift"));
276 	sldrIFSHIFT->type(5);
277 	sldrIFSHIFT->box(FL_THIN_DOWN_BOX);
278 	sldrIFSHIFT->color(FL_BACKGROUND_COLOR);
279 	sldrIFSHIFT->selection_color(FL_BACKGROUND_COLOR);
280 	sldrIFSHIFT->labeltype(FL_NORMAL_LABEL);
281 	sldrIFSHIFT->labelfont(0);
282 	sldrIFSHIFT->labelsize(12);
283 	sldrIFSHIFT->labelcolor(FL_FOREGROUND_COLOR);
284 	sldrIFSHIFT->minimum(-1000);
285 	sldrIFSHIFT->maximum(1000);
286 	sldrIFSHIFT->step(10);
287 	sldrIFSHIFT->textsize(12);
288 	sldrIFSHIFT->callback((Fl_Callback*)cb_sldrIFSHIFT);
289 	sldrIFSHIFT->align(Fl_Align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE));
290 	sldrIFSHIFT->when(FL_WHEN_CHANGED);
291 	sldrIFSHIFT->reverse(true);
292 
293 	btnDataPort = new Fl_Light_Button(2, 285, 50, 18, _("Data"));
294 	btnDataPort->tooltip(_("Input on Data Port"));
295 	btnDataPort->down_box(FL_THIN_DOWN_BOX);
296 	btnDataPort->labelsize(12);
297 	btnDataPort->callback((Fl_Callback*)cb_btnDataPort);
298 	btnDataPort->hide();
299 	btnDataPort->value(progStatus.data_port);
300 
301 	sldrMICGAIN = new Fl_Wheel_Value_Slider(54, 285, 156, 18, _("Mic"));
302 	sldrMICGAIN->tooltip(_("Adjust Mic Gain"));
303 	sldrMICGAIN->type(5);
304 	sldrMICGAIN->box(FL_THIN_DOWN_BOX);
305 	sldrMICGAIN->color(FL_BACKGROUND_COLOR);
306 	sldrMICGAIN->selection_color(FL_BACKGROUND_COLOR);
307 	sldrMICGAIN->labeltype(FL_NORMAL_LABEL);
308 	sldrMICGAIN->labelfont(0);
309 	sldrMICGAIN->labelsize(14);
310 	sldrMICGAIN->labelcolor(FL_FOREGROUND_COLOR);
311 	sldrMICGAIN->maximum(100);
312 	sldrMICGAIN->step(1);
313 	sldrMICGAIN->textsize(12);
314 	sldrMICGAIN->callback((Fl_Callback*)cb_sldrMICGAIN);
315 	sldrMICGAIN->align(Fl_Align(FL_ALIGN_LEFT));
316 	sldrMICGAIN->when(FL_WHEN_CHANGED);
317 	sldrMICGAIN->reverse(true);
318 
319 	btnPOWER = new Fl_Light_Button(2, 305, 50, 18, _("Pwr"));
320 	btnPOWER->tooltip(_("Enable/Disable Power adjuster"));
321 	btnPOWER->value(1);
322 	btnPOWER-> callback((Fl_Callback*) cb_btnPOWER);
323 
324 	sldrPOWER = new Fl_Wheel_Value_Slider(54, 305, 156, 18, "");
325 	sldrPOWER->tooltip(_("Adjust power level"));
326 	sldrPOWER->type(5);
327 	sldrPOWER->box(FL_THIN_DOWN_BOX);
328 	sldrPOWER->color(FL_BACKGROUND_COLOR);
329 	sldrPOWER->selection_color(FL_BACKGROUND_COLOR);
330 	sldrPOWER->labeltype(FL_NORMAL_LABEL);
331 	sldrPOWER->labelfont(0);
332 	sldrPOWER->labelsize(14);
333 	sldrPOWER->labelcolor(FL_FOREGROUND_COLOR);
334 	sldrPOWER->maximum(100);
335 	sldrPOWER->step(1);
336 	sldrPOWER->value(15);
337 	sldrPOWER->textsize(12);
338 	sldrPOWER->callback((Fl_Callback*)cb_sldrPOWER);
339 	sldrPOWER->align(Fl_Align(FL_ALIGN_LEFT));
340 	sldrPOWER->when(FL_WHEN_CHANGED);
341 	sldrPOWER->reverse(true);
342 
343 	btnA = new Fl_Light_Button(212, 62, 52, 20, _("vfoA"));
344 	btnA->tooltip(_("Rx-A / Tx-A"));
345 	btnA->down_box(FL_THIN_DOWN_BOX);
346 	btnA->labelsize(12);
347 	btnA->callback((Fl_Callback*)cb_btnA);
348 	btnA->value(!useB);
349 
350 	btnB = new Fl_Light_Button(265, 62, 52, 20, _("vfoB"));
351 	btnB->tooltip(_("Rx-B / Tx-B"));
352 	btnB->down_box(FL_THIN_DOWN_BOX);
353 	btnB->labelsize(12);
354 	btnB->callback((Fl_Callback*)cb_btnB);
355 	btnB->value(useB);
356 
357 	labelMEMORY = new Fl_Box(212, 62, 105, 20, _("MEMORY"));
358 	labelMEMORY->box(FL_DOWN_BOX);
359 	labelMEMORY->color(FL_YELLOW);
360 	labelMEMORY->align(FL_ALIGN_CENTER);
361 	labelMEMORY->hide();
362 
363 	btn_K3_swapAB = new Fl_Button(265, 62, 52, 20, _("A/B"));
364 	btn_K3_swapAB->tooltip(_("Swap A/B"));
365 	btn_K3_swapAB->down_box(FL_DOWN_BOX);
366 	btn_K3_swapAB->labelsize(12);
367 	btn_K3_swapAB->callback((Fl_Callback*)cb_btn_K3_swapAB);
368 	btn_K3_swapAB->hide();
369 
370 	btn_KX3_swapAB = new Fl_Button(265, 62, 52, 20, _("A/B"));
371 	btn_KX3_swapAB->tooltip(_("Swap A/B"));
372 	btn_KX3_swapAB->down_box(FL_DOWN_BOX);
373 	btn_KX3_swapAB->labelsize(12);
374 	btn_KX3_swapAB->callback((Fl_Callback*)cb_btn_KX3_swapAB);
375 	btn_KX3_swapAB->hide();
376 
377 	btnAswapB = new Fl_Button(318, 62, 52, 20, _("A<->B"));
378 	btnAswapB->tooltip(_("Left click:Swap A/B\nRight click:Copy A to B"));
379 	btnAswapB->down_box(FL_DOWN_BOX);
380 	btnAswapB->labelsize(12);
381 	btnAswapB->callback((Fl_Callback*)cb_btnAswapB);
382 
383 	btnSplit = new Fl_Light_Button(371, 62, 52, 20, _("Split"));
384 	btnSplit->tooltip(_("Rx-A / Tx-B"));
385 	btnSplit->down_box(FL_THIN_DOWN_BOX);
386 	btnSplit->labelsize(12);
387 	btnSplit->callback((Fl_Callback*)cb_btnSplit);
388 	btnSplit->value(progStatus.split);
389 
390 	opBW = new Fl_ComboBox(212, 84, 105, 18, _("Bandwidth"));
391 	opBW->tooltip(_("Select Transceiver Bandwidth"));
392 	opBW->box(FL_NO_BOX);
393 	opBW->color(FL_BACKGROUND2_COLOR);
394 	opBW->selection_color(FL_BACKGROUND_COLOR);
395 	opBW->labeltype(FL_NORMAL_LABEL);
396 	opBW->labelfont(0);
397 	opBW->labelsize(12);
398 	opBW->labelcolor(FL_FOREGROUND_COLOR);
399 	opBW->callback((Fl_Callback*)cb_opBW);
400 	opBW->align(Fl_Align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE));
401 	opBW->when(FL_WHEN_RELEASE);
402 	opBW->readonly();
403 	opBW->end();
404 
405 	btnDSP = new Fl_Button(212, 84, 18, 18, _("L"));
406 	btnDSP->callback((Fl_Callback*)cb_btnDSP);
407 	btnDSP->hide();
408 
409 	btnFILT = new Fl_Button(btnDSP->x(), btnDSP->y(), 18, 18, _("1"));
410 	btnFILT->callback((Fl_Callback*)cb_btnFILT);
411 	btnFILT->tooltip(_("Select filter"));
412 	btnFILT->hide();
413 
414 	opDSP_lo = new Fl_ComboBox(231, 84, 86, 18, _("Lo Cut"));
415 	opDSP_lo->tooltip(_("Lo Cut Freq"));
416 	opDSP_lo->box(FL_FLAT_BOX);
417 	opDSP_lo->color(FL_BACKGROUND2_COLOR);
418 	opDSP_lo->selection_color(FL_BACKGROUND_COLOR);
419 	opDSP_lo->labeltype(FL_NORMAL_LABEL);
420 	opDSP_lo->labelfont(0);
421 	opDSP_lo->labelsize(12);
422 	opDSP_lo->labelcolor(FL_FOREGROUND_COLOR);
423 	opDSP_lo->callback((Fl_Callback*)cb_opDSP_lo);
424 	opDSP_lo->align(Fl_Align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE));
425 	opDSP_lo->when(FL_WHEN_RELEASE);
426 	opDSP_lo->readonly();
427 	opDSP_lo->hide();
428 	opDSP_lo->end();
429 
430 	opDSP_hi = new Fl_ComboBox(231, 84, 86, 18, _("Hi Cut"));
431 	opDSP_hi->tooltip(_("Hi Cut Freq"));
432 	opDSP_hi->box(FL_FLAT_BOX);
433 	opDSP_hi->color(FL_BACKGROUND2_COLOR);
434 	opDSP_hi->selection_color(FL_BACKGROUND_COLOR);
435 	opDSP_hi->labeltype(FL_NORMAL_LABEL);
436 	opDSP_hi->labelfont(0);
437 	opDSP_hi->labelsize(12);
438 	opDSP_hi->labelcolor(FL_FOREGROUND_COLOR);
439 	opDSP_hi->callback((Fl_Callback*)cb_opDSP_hi);
440 	opDSP_hi->align(Fl_Align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE));
441 	opDSP_hi->when(FL_WHEN_RELEASE);
442 	opDSP_hi->readonly();
443 	opDSP_hi->hide();
444 	opDSP_hi->end();
445 
446 	opMODE = new Fl_ComboBox(318, 84, 105, 18, _("Mode"));
447 	opMODE->tooltip(_("Select transceiver operating mode"));
448 	opMODE->box(FL_NO_BOX);
449 	opMODE->color(FL_BACKGROUND2_COLOR);
450 	opMODE->selection_color(FL_BACKGROUND_COLOR);
451 	opMODE->labeltype(FL_NORMAL_LABEL);
452 	opMODE->labelfont(0);
453 	opMODE->labelsize(12);
454 	opMODE->labelcolor(FL_FOREGROUND_COLOR);
455 	opMODE->callback((Fl_Callback*)cb_opMODE);
456 	opMODE->align(Fl_Align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE));
457 	opMODE->when(FL_WHEN_RELEASE);
458 	opMODE->readonly();
459 	opMODE->end();
460 
461 	btn_show_controls = new Fl_Button(3, 325, 18, 18, _("@-22->"));
462 	btn_show_controls->tooltip(_("Show/Hide controls"));
463 	btn_show_controls->callback((Fl_Callback*)cb_btn_show_controls);
464 
465 	btnAttenuator = new Fl_Light_Button(26, 325, 60, 18, _("ATT"));
466 	btnAttenuator->tooltip(_("Attenuator On/Off"));
467 	btnAttenuator->down_box(FL_THIN_DOWN_BOX);
468 	btnAttenuator->labelsize(12);
469 	btnAttenuator->callback((Fl_Callback*)cb_btnAttenuator);
470 
471 	btnPreamp = new Fl_Light_Button(93, 325, 60, 18, _("PRE"));
472 	btnPreamp->tooltip(_("Preamp On/Off"));
473 	btnPreamp->down_box(FL_THIN_DOWN_BOX);
474 	btnPreamp->labelsize(12);
475 	btnPreamp->callback((Fl_Callback*)cb_btnPreamp);
476 
477 	btnNOISE = new Fl_Light_Button(160, 325, 60, 18, _("NB"));
478 	btnNOISE->tooltip(_("Noise Blanker On/Off"));
479 	btnNOISE->down_box(FL_THIN_DOWN_BOX);
480 	btnNOISE->labelsize(12);
481 	btnNOISE->callback((Fl_Callback*)cb_btnNOISE);
482 
483 	btnAutoNotch = new Fl_Light_Button(227, 325, 60, 18, _("AN"));
484 	btnAutoNotch->tooltip(_("Auto Notch On/Off"));
485 	btnAutoNotch->down_box(FL_THIN_DOWN_BOX);
486 	btnAutoNotch->labelsize(12);
487 	btnAutoNotch->callback((Fl_Callback*)cb_btnAutoNotch);
488 
489 	btn_tune_on_off = new Fl_Light_Button(294, 325, 20, 18, "");
490 	btn_tune_on_off->tooltip("Tuner On/Off");
491 	btn_tune_on_off->callback((Fl_Callback*)cb_btn_tune_on_off);
492 
493 	btnTune = new Fl_Button(
494 		btn_tune_on_off->x() + btn_tune_on_off->w(),
495 		btn_tune_on_off->y(), 40, 18, _("Tune"));
496 	btnTune->tooltip(_("Manual Tune"));
497 	btnTune->callback((Fl_Callback*)cb_btnTune);
498 
499 	btnPTT = new Fl_Light_Button(362, 325, 60, 18, _("PTT"));
500 	btnPTT->tooltip(_("Xmt On/Off"));
501 	btnPTT->down_box(FL_THIN_DOWN_BOX);
502 	btnPTT->labelsize(12);
503 	btnPTT->callback((Fl_Callback*)cb_btnPTT);
504 
505 	Fl_Group* sm_grp1 = new Fl_Group(1, 62, 210, 60);
506 		sm_grp1->box(FL_DOWN_BOX);
507 
508 		grpMeters = new Fl_Group(3, 63, 206, 57);
509 		grpMeters->box(FL_FLAT_BOX);
510 
511 			scaleSmeter = new Fl_Box(3, 63, 206, 20);
512 			scaleSmeter->box(FL_FLAT_BOX);
513 			scaleSmeter->image(image_S60);
514 			scaleSmeter->tooltip(_("S units meter"));
515 
516 			btnALC_SWR = new Fl_Button(3, 63, 206, 20);
517 			btnALC_SWR->tooltip(_("Press SWR / ALC"));
518 			btnALC_SWR->box(FL_FLAT_BOX);
519 			btnALC_SWR->down_box(FL_FLAT_BOX);
520 			btnALC_SWR->image(image_SWR);
521 			btnALC_SWR->callback((Fl_Callback*)cb_btnALC_SWR);
522 			btnALC_SWR->hide();
523 
524 			sldrRcvSignal = new Fl_SigBar(5, 85, 200, 6);
525 			sldrRcvSignal->box(FL_FLAT_BOX);
526 			sldrRcvSignal->color(FL_BACKGROUND_COLOR);
527 			sldrRcvSignal->selection_color(FL_BACKGROUND_COLOR);
528 			sldrRcvSignal->labeltype(FL_NORMAL_LABEL);
529 			sldrRcvSignal->labelfont(0);
530 			sldrRcvSignal->labelsize(14);
531 			sldrRcvSignal->labelcolor(FL_FOREGROUND_COLOR);
532 			sldrRcvSignal->align(Fl_Align(FL_ALIGN_CENTER));
533 			sldrRcvSignal->when(FL_WHEN_CHANGED);
534 			sldrRcvSignal->hide();
535 			sldrRcvSignal->minimum(0);
536 			sldrRcvSignal->maximum(100);
537 
538 			sldrALC = new Fl_SigBar(5, 85, 200, 6);
539 			sldrALC->box(FL_FLAT_BOX);
540 			sldrALC->color(FL_BACKGROUND_COLOR);
541 			sldrALC->selection_color(FL_BACKGROUND_COLOR);
542 			sldrALC->labeltype(FL_NORMAL_LABEL);
543 			sldrALC->labelfont(0);
544 			sldrALC->labelsize(14);
545 			sldrALC->labelcolor(FL_FOREGROUND_COLOR);
546 			sldrALC->align(Fl_Align(FL_ALIGN_CENTER));
547 			sldrALC->when(FL_WHEN_CHANGED);
548 			sldrALC->hide();
549 			sldrALC->minimum(0);
550 			sldrALC->maximum(100);
551 
552 			sldrSWR = new Fl_SigBar(5, 85, 200, 6);
553 			sldrSWR->box(FL_FLAT_BOX);
554 			sldrSWR->color(FL_BACKGROUND_COLOR);
555 			sldrSWR->selection_color(FL_BACKGROUND_COLOR);
556 			sldrSWR->labeltype(FL_NORMAL_LABEL);
557 			sldrSWR->labelfont(0);
558 			sldrSWR->labelsize(14);
559 			sldrSWR->labelcolor(FL_FOREGROUND_COLOR);
560 			sldrSWR->align(Fl_Align(FL_ALIGN_CENTER));
561 			sldrSWR->when(FL_WHEN_CHANGED);
562 			sldrSWR->hide();
563 			sldrSWR->minimum(0);
564 			sldrSWR->maximum(100);
565 
566 			sldrFwdPwr = new Fl_SigBar(5, 92, 200, 6);
567 			sldrFwdPwr->box(FL_FLAT_BOX);
568 			sldrFwdPwr->color(FL_BACKGROUND_COLOR);
569 			sldrFwdPwr->selection_color(FL_BACKGROUND_COLOR);
570 			sldrFwdPwr->labeltype(FL_NORMAL_LABEL);
571 			sldrFwdPwr->labelfont(0);
572 			sldrFwdPwr->labelsize(14);
573 			sldrFwdPwr->labelcolor(FL_FOREGROUND_COLOR);
574 			sldrFwdPwr->align(Fl_Align(FL_ALIGN_CENTER));
575 			sldrFwdPwr->when(FL_WHEN_CHANGED);
576 			sldrFwdPwr->hide();
577 			sldrFwdPwr->minimum(0);
578 			sldrFwdPwr->maximum(100);
579 
580 			scalePower = new Fl_Button(3, 99, 206, 20);
581 			scalePower->tooltip(_("right-click to select power scale"));
582 			scalePower->box(FL_FLAT_BOX);
583 			scalePower->down_box(FL_FLAT_BOX);
584 			scalePower->image(image_P100);
585 			scalePower->callback((Fl_Callback*)cb_scalePower);
586 
587 			meter_fill_box = new Fl_Box(207, 63, 0, 57);
588 			meter_fill_box->box(FL_FLAT_BOX);
589 			meter_fill_box->color((Fl_Color)246);
590 
591 		grpMeters->end();
592 
593 	sm_grp1->end();
594 
595 	boxControl = new Fl_Box(3, 231, 130, 17, _("Auxilliary Controls:"));
596 	boxControl->box(FL_FLAT_BOX);
597 	boxControl->align(Fl_Align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE));
598 
599 	btnAuxRTS = new Fl_Light_Button(218, 230, 60, 18, _("RTS"));
600 	btnAuxRTS->tooltip(_("RTS control pin"));
601 	btnAuxRTS->down_box(FL_THIN_DOWN_BOX);
602 	btnAuxRTS->labelsize(12);
603 	btnAuxRTS->callback((Fl_Callback*)cb_btnAuxRTS);
604 	btnAuxRTS->value(progStatus.aux_rts);
605 
606 	btnAuxDTR = new Fl_Light_Button(146, 230, 60, 18, _("DTR"));
607 	btnAuxDTR->tooltip(_("DTR control pin"));
608 	btnAuxDTR->down_box(FL_THIN_DOWN_BOX);
609 	btnAuxDTR->labelsize(12);
610 	btnAuxDTR->callback((Fl_Callback*)cb_btnAuxDTR);
611 	btnAuxDTR->value(progStatus.aux_dtr);
612 
613 	cntRIT = new Hspinner(213, 104, 54, 18, _("R"));
614 	cntRIT->tooltip(_("RIT"));
615 	cntRIT->type(FL_INT_INPUT);
616 	cntRIT->labelsize(12);
617 	cntRIT->minimum(-1000);
618 	cntRIT->maximum(1000);
619 	cntRIT->step(10);
620 	cntRIT->callback((Fl_Callback*)cb_cntRIT);
621 	cntRIT->align(Fl_Align(FL_ALIGN_RIGHT));
622 
623 	cntXIT = new Hspinner(283, 104, 54, 18, _("X"));
624 	cntXIT->tooltip(_("XIT"));
625 	cntXIT->type(FL_INT_INPUT);
626 	cntXIT->labelsize(12);
627 	cntXIT->minimum(-1000);
628 	cntXIT->maximum(1000);
629 	cntXIT->step(10);
630 	cntXIT->callback((Fl_Callback*)cb_cntXIT);
631 	cntXIT->align(Fl_Align(FL_ALIGN_RIGHT));
632 
633 	cntBFO = new Hspinner(355, 104, 54, 18, _("B"));
634 	cntBFO->tooltip(_("BFO"));
635 	cntBFO->type(FL_INT_INPUT);
636 	cntBFO->labelsize(12);
637 	cntBFO->minimum(0);
638 	cntBFO->maximum(1000);
639 	cntBFO->step(10);
640 	cntBFO->value(600);
641 	cntBFO->callback((Fl_Callback*)cb_cntBFO);
642 	cntBFO->align(Fl_Align(FL_ALIGN_RIGHT));
643 
644 	g->end();
645 
646 	return g;
647 }
648 
649 static Fl_Box *filler = (Fl_Box *)0;
650 
tabs_window()651 Fl_Double_Window *tabs_window()
652 {
653 	int gph = 70 + 22;
654 
655 	Fl_Double_Window *w = new Fl_Double_Window(
656 		0, 0,
657 		small_mainW, gph,
658 		"flrig extra controls");
659 
660 	grpTABS = new Fl_Group(0, 0, small_mainW, gph);
661 
662 	tabs550 = new Fl_Tabs(0, 0, small_mainW, gph);
663 		tabs550->selection_color(FL_LIGHT1);
664 		tabs550->hide();
665 
666 		tt550_CW = new Fl_Group(0, 24, small_mainW, gph - 24, _("CW"));
667 			tt550_CW->color(FL_LIGHT1);
668 			tt550_CW->selection_color(FL_LIGHT1);
669 
670 			spnr_tt550_cw_wpm = new Hspinner(
671 				2, 28,
672 				70, 22, _("wpm"));
673 			spnr_tt550_cw_wpm->type(FL_INT_INPUT);
674 			spnr_tt550_cw_wpm->minimum(1);
675 			spnr_tt550_cw_wpm->maximum(80);
676 			spnr_tt550_cw_wpm->step(1);
677 			spnr_tt550_cw_wpm->value(24);
678 			spnr_tt550_cw_wpm->callback((Fl_Callback*)cb_spnr_tt550_cw_wpm);
679 			spnr_tt550_cw_wpm->value(progStatus.tt550_cw_wpm);
680 			spnr_tt550_cw_wpm->align(FL_ALIGN_BOTTOM | FL_ALIGN_CENTER);
681 
682 			spnr_tt550_cw_weight = new Hspinner(
683 				spnr_tt550_cw_wpm->x() +
684 				spnr_tt550_cw_wpm->w() + 2, 40,
685 				70, 22, _("Weight"));
686 			spnr_tt550_cw_weight->type(FL_FLOAT_INPUT);
687 			spnr_tt550_cw_weight->minimum(0.75);
688 			spnr_tt550_cw_weight->maximum(1.5);
689 			spnr_tt550_cw_weight->step(0.05);
690 			spnr_tt550_cw_weight->format("%.2f");
691 			spnr_tt550_cw_weight->value(1);
692 			spnr_tt550_cw_weight->callback((Fl_Callback*)cb_spnr_tt550_cw_weight);
693 			spnr_tt550_cw_weight->value(progStatus.tt550_cw_weight);
694 			spnr_tt550_cw_weight->align(FL_ALIGN_BOTTOM | FL_ALIGN_CENTER);
695 
696 			spnr_tt550_cw_qsk = new Hspinner(
697 				spnr_tt550_cw_weight->x() +
698 				spnr_tt550_cw_weight->w() + 2, 40,
699 				70, 22, _("Delay"));
700 			spnr_tt550_cw_qsk->tooltip(_("QSK delay (msec)"));
701 			spnr_tt550_cw_qsk->type(1);
702 			spnr_tt550_cw_qsk->minimum(0);
703 			spnr_tt550_cw_qsk->maximum(100);
704 			spnr_tt550_cw_qsk->step(1);
705 			spnr_tt550_cw_qsk->value(20);
706 			spnr_tt550_cw_qsk->callback((Fl_Callback*)cb_spnr_tt550_cw_qsk);
707 			spnr_tt550_cw_qsk->value(progStatus.tt550_cw_qsk);
708 			spnr_tt550_cw_qsk->align(FL_ALIGN_BOTTOM | FL_ALIGN_CENTER);
709 
710 			spnr_tt550_cw_vol = new Hspinner(
711 				spnr_tt550_cw_qsk->x() +
712 				spnr_tt550_cw_qsk->w() + 2, 40,
713 				70, 22, _("S-T vol"));
714 			spnr_tt550_cw_vol->tooltip(_("Side tone volume"));
715 			spnr_tt550_cw_vol->type(1);
716 			spnr_tt550_cw_vol->minimum(5);
717 			spnr_tt550_cw_vol->maximum(80);
718 			spnr_tt550_cw_vol->step(1);
719 			spnr_tt550_cw_vol->value(24);
720 			spnr_tt550_cw_vol->callback((Fl_Callback*)cb_spnr_tt550_cw_vol);
721 			spnr_tt550_cw_vol->value(progStatus.tt550_cw_vol);
722 			spnr_tt550_cw_vol->align(FL_ALIGN_BOTTOM | FL_ALIGN_CENTER);
723 
724 			spnr_tt550_cw_spot = new Hspinner(
725 				spnr_tt550_cw_vol->x() +
726 				spnr_tt550_cw_vol->w() + 2, 40,
727 				70, 22, _("Spot Vol"));
728 			spnr_tt550_cw_spot->tooltip(_("Spot volume"));
729 			spnr_tt550_cw_spot->type(1);
730 			spnr_tt550_cw_spot->minimum(0);
731 			spnr_tt550_cw_spot->maximum(100);
732 			spnr_tt550_cw_spot->step(1);
733 			spnr_tt550_cw_spot->value(20);
734 			spnr_tt550_cw_spot->callback((Fl_Callback*)cb_spnr_tt550_cw_spot);
735 			spnr_tt550_cw_spot->value(progStatus.tt550_cw_spot);
736 			spnr_tt550_cw_spot->align(FL_ALIGN_BOTTOM | FL_ALIGN_CENTER);
737 
738 			btn_tt550_enable_keyer = new Fl_Check_Button(
739 				spnr_tt550_cw_spot->x() +
740 				spnr_tt550_cw_spot->w() + 2, 40,
741 				50, 22, _("Keyer"));
742 			btn_tt550_enable_keyer->tooltip(_("Enable keyer"));
743 			btn_tt550_enable_keyer->down_box(FL_DOWN_BOX);
744 			btn_tt550_enable_keyer->callback((Fl_Callback*)cb_btn_tt550_enable_keyer);
745 			btn_tt550_enable_keyer->value(progStatus.tt550_enable_keyer);
746 		tt550_CW->end();
747 
748 		tt550_VOX = new Fl_Group(0, 24, small_mainW, gph - 24, _("Vox"));
749 			tt550_VOX->hide();
750 
751 			spnr_tt550_vox_gain = new Hspinner(
752 				2, 40,
753 				70, 22, _("gain"));
754 			spnr_tt550_vox_gain->type(1);
755 			spnr_tt550_vox_gain->minimum(0);
756 			spnr_tt550_vox_gain->maximum(100);
757 			spnr_tt550_vox_gain->step(1);
758 			spnr_tt550_vox_gain->callback((Fl_Callback*)cb_spnr_tt550_vox_gain);
759 			spnr_tt550_vox_gain->value(progStatus.tt550_vox_gain);
760 			spnr_tt550_vox_gain->align(FL_ALIGN_BOTTOM | FL_ALIGN_CENTER);
761 
762 			spnr_tt550_anti_vox = new Hspinner(
763 				spnr_tt550_vox_gain->x() +
764 				spnr_tt550_vox_gain->w() + 4, 40,
765 				70, 22, _("anti"));
766 			spnr_tt550_anti_vox->type(1);
767 			spnr_tt550_anti_vox->minimum(0);
768 			spnr_tt550_anti_vox->maximum(100);
769 			spnr_tt550_anti_vox->step(1);
770 			spnr_tt550_anti_vox->callback((Fl_Callback*)cb_spnr_tt550_anti_vox);
771 			spnr_tt550_anti_vox->value(progStatus.tt550_vox_anti);
772 			spnr_tt550_anti_vox->align(FL_ALIGN_BOTTOM | FL_ALIGN_CENTER);
773 
774 			spnr_tt550_vox_hang = new Hspinner(
775 				spnr_tt550_anti_vox->x() +
776 				spnr_tt550_anti_vox->w() + 4, 40,
777 				70, 22, _("hang"));
778 			spnr_tt550_vox_hang->type(1);
779 			spnr_tt550_vox_hang->minimum(0);
780 			spnr_tt550_vox_hang->maximum(100);
781 			spnr_tt550_vox_hang->step(1);
782 			spnr_tt550_vox_hang->callback((Fl_Callback*)cb_spnr_tt550_vox_hang);
783 			spnr_tt550_vox_hang->value(progStatus.tt550_vox_hang);
784 			spnr_tt550_vox_hang->align(FL_ALIGN_BOTTOM | FL_ALIGN_CENTER);
785 
786 			btn_tt550_vox = new Fl_Light_Button(
787 				spnr_tt550_vox_hang->x() +
788 				spnr_tt550_vox_hang->w() + 4, 40,
789 				50, 22, _("VOX"));
790 			btn_tt550_vox->callback((Fl_Callback*)cb_btn_tt550_vox);
791 			btn_tt550_vox->value(progStatus.tt550_vox_onoff);
792 		tt550_VOX->end();
793 
794 		tt550_Speech = new Fl_Group(0, 24, small_mainW, gph - 24, _("Spch"));
795 			tt550_Speech->hide();
796 
797 			btn_tt550_CompON = new Fl_Light_Button(
798 				4, 40, 60, 22, _("On"));
799 			btn_tt550_CompON->callback((Fl_Callback*)cb_btn_tt550_CompON);
800 			btn_tt550_CompON->value(progStatus.tt550_compON);
801 
802 			spnr_tt550_compression = new Hspinner(
803 				btn_tt550_CompON->x() +
804 				btn_tt550_CompON->w() + 4, 40,
805 				70, 22, _("Comp"));
806 			spnr_tt550_compression->type(1);
807 			spnr_tt550_compression->minimum(0);
808 			spnr_tt550_compression->maximum(100);
809 			spnr_tt550_compression->step(1);
810 			spnr_tt550_compression->callback((Fl_Callback*)cb_spnr_tt550_compression);
811 			spnr_tt550_compression->value(progStatus.tt550_compression);
812 			spnr_tt550_compression->align(FL_ALIGN_BOTTOM | FL_ALIGN_CENTER);
813 
814 			spnr_tt550_mon_vol = new Hspinner(
815 				spnr_tt550_compression->x() +
816 				spnr_tt550_compression->w() + 4, 40,
817 				70, 22, _("Mon vol"));
818 			spnr_tt550_mon_vol->tooltip(_("Side tone volume"));
819 			spnr_tt550_mon_vol->type(1);
820 			spnr_tt550_mon_vol->minimum(0);
821 			spnr_tt550_mon_vol->maximum(100);
822 			spnr_tt550_mon_vol->step(1);
823 			spnr_tt550_mon_vol->value(25);
824 			spnr_tt550_mon_vol->callback((Fl_Callback*)cb_spnr_tt550_mon_vol);
825 			spnr_tt550_mon_vol->value(progStatus.tt550_mon_vol);
826 			spnr_tt550_mon_vol->align(FL_ALIGN_BOTTOM | FL_ALIGN_CENTER);
827 		tt550_Speech->end();
828 
829 		tt550_Audio = new Fl_Group(0, 24, small_mainW, gph, _("Audio"));
830 			tt550_Audio->hide();
831 
832 			spnr_tt550_line_out = new Hspinner(
833 				4, 40,
834 				70, 22, _("line out"));
835 			spnr_tt550_line_out->type(1);
836 			spnr_tt550_line_out->minimum(0);
837 			spnr_tt550_line_out->maximum(100);
838 			spnr_tt550_line_out->step(1);
839 			spnr_tt550_line_out->value(20);
840 			spnr_tt550_line_out->callback((Fl_Callback*)cb_spnr_tt550_line_out);
841 			spnr_tt550_line_out->align(Fl_Align(FL_ALIGN_LEFT));
842 			spnr_tt550_line_out->value(progStatus.tt550_line_out);
843 			spnr_tt550_line_out->align(FL_ALIGN_BOTTOM | FL_ALIGN_CENTER);
844 
845 			btnAccInp = new Fl_Check_Button(
846 				spnr_tt550_line_out->x() +
847 				spnr_tt550_line_out->w() + 4, 40,
848 				80, 22, _("Acc Inp"));
849 			btnAccInp->tooltip(_("Enable to use accessory audio input"));
850 			btnAccInp->down_box(FL_DOWN_BOX);
851 			btnAccInp->callback((Fl_Callback*)cb_btnAccInp);
852 			btnAccInp->value(progStatus.tt550_use_line_in);
853 		tt550_Audio->end();
854 
855 		tt550_Rx = new Fl_Group(0, 24, small_mainW, gph - 24, _("RX"));
856 			tt550_Rx->hide();
857 
858 			cbo_tt550_nb_level = new Fl_ComboBox(
859 				4, 40,
860 				80, 22, _("NB level"));
861 				cbo_tt550_nb_level->tooltip(_("Select Noise Blanker level"));
862 			cbo_tt550_nb_level->box(FL_DOWN_BOX);
863 			cbo_tt550_nb_level->color(FL_WHITE);
864 			cbo_tt550_nb_level->selection_color(FL_BACKGROUND_COLOR);
865 			cbo_tt550_nb_level->labeltype(FL_NORMAL_LABEL);
866 			cbo_tt550_nb_level->labelfont(0);
867 			cbo_tt550_nb_level->labelsize(14);
868 			cbo_tt550_nb_level->labelcolor(FL_FOREGROUND_COLOR);
869 			cbo_tt550_nb_level->callback((Fl_Callback*)cb_cbo_tt550_nb_level);
870 			cbo_tt550_nb_level->align(FL_ALIGN_BOTTOM | FL_ALIGN_CENTER);
871 			cbo_tt550_nb_level->when(FL_WHEN_RELEASE);
872 			cbo_tt550_nb_level->index(progStatus.tt550_nb_level);
873 			cbo_tt550_nb_level->readonly();
874 			cbo_tt550_nb_level->end();
875 
876 			cbo_tt550_agc_level = new Fl_ComboBox(
877 				cbo_tt550_nb_level->x() +
878 				cbo_tt550_nb_level->w() + 5, 40,
879 				80, 22, _("AGC"));
880 			cbo_tt550_agc_level->tooltip(_("Select AGC"));
881 			cbo_tt550_agc_level->box(FL_DOWN_BOX);
882 			cbo_tt550_agc_level->color(FL_WHITE);
883 			cbo_tt550_agc_level->selection_color(FL_BACKGROUND_COLOR);
884 			cbo_tt550_agc_level->labeltype(FL_NORMAL_LABEL);
885 			cbo_tt550_agc_level->labelfont(0);
886 			cbo_tt550_agc_level->labelsize(14);
887 			cbo_tt550_agc_level->labelcolor(FL_FOREGROUND_COLOR);
888 			cbo_tt550_agc_level->callback((Fl_Callback*)cb_cbo_tt550_agc_level);
889 			cbo_tt550_agc_level->align(FL_ALIGN_BOTTOM | FL_ALIGN_CENTER);
890 			cbo_tt550_agc_level->when(FL_WHEN_RELEASE);
891 			cbo_tt550_agc_level->index(progStatus.tt550_agc_level);
892 			cbo_tt550_agc_level->readonly();
893 			cbo_tt550_agc_level->end();
894 
895 			spnr_tt550_vfo_adj = new Hspinner(
896 				cbo_tt550_agc_level->x() +
897 				cbo_tt550_agc_level->w() + 5, 40,
898 				100, 22, _("Vfo Adj(ppm)"), 16);
899 			spnr_tt550_vfo_adj->callback((Fl_Callback*)cb_spnr_tt550_vfo_adj);
900 			spnr_tt550_vfo_adj->align(FL_ALIGN_BOTTOM | FL_ALIGN_CENTER);
901 			spnr_tt550_vfo_adj->minimum(-100);
902 			spnr_tt550_vfo_adj->maximum(100);
903 			spnr_tt550_vfo_adj->type(FL_FLOAT_INPUT);
904 			spnr_tt550_vfo_adj->step(0.02);
905 			spnr_tt550_vfo_adj->format("%0.2f");
906 			spnr_tt550_vfo_adj->value(progStatus.vfo_adj);
907 		tt550_Rx->end();
908 
909 		tt550_Tx = new Fl_Group(0, 24, small_mainW, gph - 24, _("TX"));
910 			tt550_Tx->hide();
911 
912 			btn_tt550_enable_xmtr = new Fl_Check_Button(10, 40, 70, 22, _("Tx ON"));
913 			btn_tt550_enable_xmtr->down_box(FL_DOWN_BOX);
914 			btn_tt550_enable_xmtr->value(1);
915 			btn_tt550_enable_xmtr->callback((Fl_Callback*)cb_btn_tt550_enable_xmtr);
916 			btn_tt550_enable_xmtr->value(progStatus.tt550_enable_xmtr);
917 
918 			btn_tt550_enable_tloop = new Fl_Check_Button(87, 40, 70, 22, _("Tloop"));
919 			btn_tt550_enable_tloop->down_box(FL_DOWN_BOX);
920 			btn_tt550_enable_tloop->callback((Fl_Callback*)cb_btn_tt550_enable_tloop);
921 			btn_tt550_enable_tloop->value(progStatus.tt550_enable_tloop);
922 
923 			btn_tt550_tuner_bypass = new Fl_Check_Button(164, 40, 70, 22, _("Tuner"));
924 			btn_tt550_tuner_bypass->tooltip(_("Check to bypass tuner"));
925 			btn_tt550_tuner_bypass->down_box(FL_DOWN_BOX);
926 			btn_tt550_tuner_bypass->callback((Fl_Callback*)cb_btn_tt550_tuner_bypass);
927 
928 			op_tt550_XmtBW = new Fl_ComboBox(241, 40, 100, 22, _("Xmt BW"));
929 			op_tt550_XmtBW->tooltip(_("Select Transceiver Bandwidth"));
930 			op_tt550_XmtBW->box(FL_DOWN_BOX);
931 			op_tt550_XmtBW->color(FL_WHITE);
932 			op_tt550_XmtBW->selection_color(FL_BACKGROUND_COLOR);
933 			op_tt550_XmtBW->labeltype(FL_NORMAL_LABEL);
934 			op_tt550_XmtBW->labelfont(0);
935 			op_tt550_XmtBW->labelsize(12);
936 			op_tt550_XmtBW->labelcolor(FL_FOREGROUND_COLOR);
937 			op_tt550_XmtBW->callback((Fl_Callback*)cb_op_tt550_XmtBW);
938 			op_tt550_XmtBW->align(Fl_Align(FL_ALIGN_BOTTOM));
939 			op_tt550_XmtBW->when(FL_WHEN_RELEASE);
940 			op_tt550_XmtBW->index(progStatus.tt550_xmt_bw);
941 			op_tt550_XmtBW->readonly();
942 			op_tt550_XmtBW->end();
943 
944 			btn_tt550_use_xmt_bw = new Fl_Check_Button(345, 40, 21, 22, _("Enable"));
945 			btn_tt550_use_xmt_bw->tooltip(_("Use Xmt BW setting"));
946 			btn_tt550_use_xmt_bw->down_box(FL_DOWN_BOX);
947 			btn_tt550_use_xmt_bw->callback((Fl_Callback*)cb_btn_tt550_use_xmt_bw);
948 			btn_tt550_use_xmt_bw->align(Fl_Align(FL_ALIGN_RIGHT));
949 			btn_tt550_use_xmt_bw->value(progStatus.tt550_use_xmt_bw);
950 		tt550_Tx->end();
951 
952 		tt550_302A = new Fl_Group(0, 24, small_mainW, gph - 24, _("302-A"));
953 			tt550_302A->hide();
954 
955 			spnr_tt550_keypad_time_out = new Hspinner(30, 40, 120, 22, _("Time out"), 16);
956 			spnr_tt550_keypad_time_out->tooltip(_("Clear M302 keypad after ## secs"));
957 			spnr_tt550_keypad_time_out->minimum(0.5);
958 			spnr_tt550_keypad_time_out->maximum(10);
959 			spnr_tt550_keypad_time_out->value(2);
960 			spnr_tt550_keypad_time_out->color(FL_WHITE);
961 			spnr_tt550_keypad_time_out->callback((Fl_Callback*)cb_spnr_tt550_keypad_time_out);
962 			spnr_tt550_keypad_time_out->align(Fl_Align(34));
963 			spnr_tt550_keypad_time_out->value(progStatus.tt550_keypad_timeout/1000.0);
964 			spnr_tt550_keypad_time_out->step(0.1);
965 			spnr_tt550_keypad_time_out->align(FL_ALIGN_BOTTOM | FL_ALIGN_CENTER);
966 
967 			spnr_tt550_encoder_sensitivity = new Hspinner(
968 				spnr_tt550_keypad_time_out->x() +
969 				spnr_tt550_keypad_time_out->w() + 10, 40, 80, 22, _("Sensitivity"), 16);
970 			spnr_tt550_encoder_sensitivity->tooltip(_("1 - most sensitive"));
971 			spnr_tt550_encoder_sensitivity->type(1);
972 			spnr_tt550_encoder_sensitivity->minimum(1);
973 			spnr_tt550_encoder_sensitivity->maximum(25);
974 			spnr_tt550_encoder_sensitivity->step(1);
975 			spnr_tt550_encoder_sensitivity->value(10);
976 			spnr_tt550_encoder_sensitivity->color(FL_WHITE);
977 			spnr_tt550_encoder_sensitivity->callback((Fl_Callback*)cb_spnr_tt550_encoder_sensitivity);
978 			spnr_tt550_encoder_sensitivity->value(progStatus.tt550_encoder_sensitivity);
979 			spnr_tt550_encoder_sensitivity->align(FL_ALIGN_BOTTOM | FL_ALIGN_CENTER);
980 
981 			sel_tt550_encoder_step = new Fl_Choice(312, 277, 72, 21, _("Step size"));
982 			sel_tt550_encoder_step->down_box(FL_BORDER_BOX);
983 			sel_tt550_encoder_step->callback((Fl_Callback*)cb_sel_tt550_encoder_step);
984 			sel_tt550_encoder_step->align(Fl_Align(FL_ALIGN_BOTTOM));
985 			sel_tt550_encoder_step->add("1|10|100|1 K|10 K");
986 			sel_tt550_encoder_step->value(progStatus.tt550_encoder_step);
987 			sel_tt550_encoder_step->align(FL_ALIGN_BOTTOM | FL_ALIGN_CENTER);
988 		tt550_302A->end();
989 
990 		tt550_302B = new Fl_Group(0, 24, small_mainW, gph - 24, _("302-B"));
991 			tt550_302B->hide();
992 
993 			sel_tt550_F1_func = new Fl_Choice(34, 40, 99, 22, _("F1"));
994 			sel_tt550_F1_func->tooltip(_("Assign Func Key"));
995 			sel_tt550_F1_func->down_box(FL_BORDER_BOX);
996 			sel_tt550_F1_func->callback((Fl_Callback*)cb_sel_tt550_F1_func);
997 			sel_tt550_F1_func->add("None|Clear|CW++|CW--|Band++|Band--|Step++|Step--");
998 			sel_tt550_F1_func->value(progStatus.tt550_F1_func);
999 
1000 			sel_tt550_F2_func = new Fl_Choice(169, 40, 99, 22, _("F2"));
1001 			sel_tt550_F2_func->tooltip(_("Assign Func Key"));
1002 			sel_tt550_F2_func->down_box(FL_BORDER_BOX);
1003 			sel_tt550_F2_func->callback((Fl_Callback*)cb_sel_tt550_F2_func);
1004 			sel_tt550_F2_func->add("None|Clear|CW++|CW--|Band++|Band--|Step++|Step--");
1005 			sel_tt550_F2_func->value(progStatus.tt550_F2_func);
1006 
1007 			sel_tt550_F3_func = new Fl_Choice(50, 40, 99, 22, _("F3"));
1008 			sel_tt550_F3_func->tooltip(_("Assign Func Key"));
1009 			sel_tt550_F3_func->down_box(FL_BORDER_BOX);
1010 			sel_tt550_F3_func->callback((Fl_Callback*)cb_sel_tt550_F3_func);
1011 			sel_tt550_F3_func->add("None|Clear|CW++|CW--|Band++|Band--|Step++|Step--");
1012 			sel_tt550_F3_func->value(progStatus.tt550_F3_func);
1013 		tt550_302B->end();
1014 
1015 		tt550_AT = new Fl_Group(0, 24, small_mainW, gph - 24, _("AT-11"));
1016 			tt550_AT_inline = new Fl_Light_Button(5, 40, 100, 22, _("Inline"));
1017 			tt550_AT_inline->tooltip(_("Enabled - autotune\nDisabled - bypass"));
1018 			tt550_AT_inline->callback((Fl_Callback*)cb_AT_bypass);
1019 
1020 			tt550_AT_Z = new Fl_Light_Button(
1021 				RIGHT_OF(tt550_AT_inline) + 10, 40, 55, 22, _("Z hi"));
1022 			tt550_AT_Z->tooltip(_("Hi / Lo Impedance network"));
1023 			tt550_AT_Z->callback((Fl_Callback*)cb_AT_Z);
1024 
1025 			tt550_AT_capUP = new Fl_Button(
1026 				RIGHT_OF(tt550_AT_Z) + 4, 40, 40, 22, _("C >"));
1027 			tt550_AT_capUP->tooltip(_("Increase C"));
1028 			tt550_AT_capUP->callback((Fl_Callback*)cb_AT_capUP);
1029 
1030 			tt550_AT_capDN = new Fl_Button(
1031 				RIGHT_OF(tt550_AT_capUP) + 4, 40, 40, 22, _("C <"));
1032 			tt550_AT_capDN->tooltip(_("Decrease C"));
1033 			tt550_AT_capDN->callback((Fl_Callback*)cb_AT_capDN);
1034 
1035 			tt550_AT_indUP = new Fl_Button(
1036 				RIGHT_OF(tt550_AT_capDN) + 4, 40, 40, 22, _("L >"));
1037 			tt550_AT_indUP->tooltip(_("Increase L"));
1038 			tt550_AT_indUP->callback((Fl_Callback*)cb_AT_indUP);
1039 
1040 			tt550_AT_indDN = new Fl_Button(
1041 				RIGHT_OF(tt550_AT_indUP) + 4, 40, 40, 22, _("L <"));
1042 			tt550_AT_indDN->tooltip(_("Decrease L"));
1043 			tt550_AT_indDN->callback((Fl_Callback*)cb_AT_indDN);
1044 
1045 			tt550_Nsamples = new Fl_Simple_Counter(
1046 				RIGHT_OF(tt550_AT_indDN) + 4, 40, 50, 22, _("N"));
1047 			tt550_Nsamples->tooltip(_("Fwd/Rev Pwr detect over # samples"));
1048 			tt550_Nsamples->align(FL_ALIGN_RIGHT);
1049 			tt550_Nsamples->step(1);
1050 			tt550_Nsamples->minimum(1);
1051 			tt550_Nsamples->maximum(FPLEN);
1052 			tt550_Nsamples->value(progStatus.tt550_Nsamples);
1053 			tt550_Nsamples->callback((Fl_Callback*)cb_tt550_Nsamples);
1054 		tt550_AT->end();
1055 	tabs550->end();
1056 
1057 	tabsGeneric = new Fl_Tabs(0, 0, small_mainW, gph);
1058 		tabsGeneric->selection_color(FL_LIGHT1);
1059 
1060 		tab_yaesu_bands = new Fl_Group(0, 24, small_mainW, gph - 24, _("Band"));
1061 			btn_yaesu_select_1 = new Fl_Button(4, 40, 60, 18, _("1.8"));
1062 			btn_yaesu_select_1->tooltip(_("160m Band"));
1063 			btn_yaesu_select_1->color((Fl_Color)246);
1064 			btn_yaesu_select_1->callback((Fl_Callback*)cb_btn_band_select, (void *)1);
1065 
1066 			btn_yaesu_select_2 = new Fl_Button(74, 40, 60, 18, _("3.5"));
1067 			btn_yaesu_select_2->tooltip(_("80m band"));
1068 			btn_yaesu_select_2->color((Fl_Color)246);
1069 			btn_yaesu_select_2->callback((Fl_Callback*)cb_btn_band_select, (void *)2);
1070 
1071 			btn_yaesu_select_3 = new Fl_Button(145, 40, 60, 18, _("7"));
1072 			btn_yaesu_select_3->tooltip(_("40m band"));
1073 			btn_yaesu_select_3->color((Fl_Color)246);
1074 			btn_yaesu_select_3->callback((Fl_Callback*)cb_btn_band_select, (void *)3);
1075 			btn_yaesu_select_3->align(Fl_Align(FL_ALIGN_CLIP));
1076 
1077 			btn_yaesu_select_4 = new Fl_Button(216, 40, 60, 18, _("10"));
1078 			btn_yaesu_select_4->tooltip(_("30m band"));
1079 			btn_yaesu_select_4->color((Fl_Color)246);
1080 			btn_yaesu_select_4->callback((Fl_Callback*)cb_btn_band_select, (void *)4);
1081 
1082 			btn_yaesu_select_5 = new Fl_Button(287, 40, 60, 18, _("14"));
1083 			btn_yaesu_select_5->tooltip(_("20m band"));
1084 			btn_yaesu_select_5->color((Fl_Color)246);
1085 			btn_yaesu_select_5->callback((Fl_Callback*)cb_btn_band_select, (void *)5);
1086 
1087 			btn_yaesu_select_6 = new Fl_Button(358, 40, 60, 18, _("18"));
1088 			btn_yaesu_select_6->tooltip(_("17m band"));
1089 			btn_yaesu_select_6->color((Fl_Color)246);
1090 			btn_yaesu_select_6->callback((Fl_Callback*)cb_btn_band_select, (void *)6);
1091 
1092 			btn_yaesu_select_7 = new Fl_Button(4, 60, 60, 18, _("21"));
1093 			btn_yaesu_select_7->tooltip(_("15m band"));
1094 			btn_yaesu_select_7->color((Fl_Color)246);
1095 			btn_yaesu_select_7->callback((Fl_Callback*)cb_btn_band_select, (void *)7);
1096 
1097 			btn_yaesu_select_8 = new Fl_Button(74, 60, 60, 18, _("24"));
1098 			btn_yaesu_select_8->tooltip(_("12m band"));
1099 			btn_yaesu_select_8->color((Fl_Color)246);
1100 			btn_yaesu_select_8->callback((Fl_Callback*)cb_btn_band_select, (void *)8);
1101 
1102 			btn_yaesu_select_9 = new Fl_Button(145, 60, 60, 18, _("28"));
1103 			btn_yaesu_select_9->tooltip(_("10m band"));
1104 			btn_yaesu_select_9->color((Fl_Color)246);
1105 			btn_yaesu_select_9->callback((Fl_Callback*)cb_btn_band_select, (void *)9);
1106 
1107 			btn_yaesu_select_10 = new Fl_Button(216, 60, 60, 18, _("50"));
1108 			btn_yaesu_select_10->tooltip(_("6m band"));
1109 			btn_yaesu_select_10->color((Fl_Color)246);
1110 			btn_yaesu_select_10->callback((Fl_Callback*)cb_btn_band_select, (void *)10);
1111 
1112 			btn_yaesu_select_11 = new Fl_Button(287, 60, 60, 18, _("GEN"));
1113 			btn_yaesu_select_11->tooltip(_("General RX"));
1114 			btn_yaesu_select_11->color((Fl_Color)246);
1115 			btn_yaesu_select_11->callback((Fl_Callback*)cb_btn_band_select, (void *)11);
1116 
1117 			op_yaesu_select60 = new Fl_ComboBox(358, 60, 60, 18, _("combo"));
1118 			op_yaesu_select60->tooltip(_("vfo / 60 meter channel"));
1119 			op_yaesu_select60->box(FL_NO_BOX);
1120 			op_yaesu_select60->color((Fl_Color)246);
1121 			op_yaesu_select60->selection_color(FL_BACKGROUND_COLOR);
1122 			op_yaesu_select60->labeltype(FL_NORMAL_LABEL);
1123 			op_yaesu_select60->labelfont(0);
1124 			op_yaesu_select60->labelsize(12);
1125 			op_yaesu_select60->labelcolor(FL_FOREGROUND_COLOR);
1126 			op_yaesu_select60->callback((Fl_Callback*)cb_btn_band_select, (void *)13);
1127 			op_yaesu_select60->align(Fl_Align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE));
1128 			op_yaesu_select60->when(FL_WHEN_RELEASE);
1129 			op_yaesu_select60->readonly();
1130 			op_yaesu_select60->end();
1131 
1132 		tab_yaesu_bands->end();
1133 
1134 		tab_ft991_bands = new Fl_Group(0, 24, small_mainW, gph - 24, _("Band"));
1135 			btn_ft991_select_1 = new Fl_Button(4, 30, 60, 18, _("1.8"));
1136 			btn_ft991_select_1->tooltip(_("Left click - get"));
1137 			btn_ft991_select_1->color((Fl_Color)246);
1138 			btn_ft991_select_1->callback((Fl_Callback*)cb_btn_band_select, (void *)1);
1139 
1140 			btn_ft991_select_2 = new Fl_Button(74, 30, 60, 18, _("3.5"));
1141 			btn_ft991_select_2->tooltip(_("Left click - get"));
1142 			btn_ft991_select_2->color((Fl_Color)246);
1143 			btn_ft991_select_2->callback((Fl_Callback*)cb_btn_band_select, (void *)2);
1144 
1145 			btn_ft991_select_3 = new Fl_Button(145, 30, 60, 18, _("7"));
1146 			btn_ft991_select_3->tooltip(_("Left click - get"));
1147 			btn_ft991_select_3->color((Fl_Color)246);
1148 			btn_ft991_select_3->callback((Fl_Callback*)cb_btn_band_select, (void *)3);
1149 
1150 			btn_ft991_select_4 = new Fl_Button(216, 30, 60, 18, _("10"));
1151 			btn_ft991_select_4->tooltip(_("Left click - get"));
1152 			btn_ft991_select_4->color((Fl_Color)246);
1153 			btn_ft991_select_4->callback((Fl_Callback*)cb_btn_band_select, (void *)4);
1154 
1155 			btn_ft991_select_5 = new Fl_Button(287, 30, 60, 18, _("14"));
1156 			btn_ft991_select_5->tooltip(_("Left click - get"));
1157 			btn_ft991_select_5->color((Fl_Color)246);
1158 			btn_ft991_select_5->callback((Fl_Callback*)cb_btn_band_select, (void *)5);
1159 
1160 			btn_ft991_select_6 = new Fl_Button(358, 30, 60, 18, _("18"));
1161 			btn_ft991_select_6->tooltip(_("Left click - get"));
1162 			btn_ft991_select_6->color((Fl_Color)246);
1163 			btn_ft991_select_6->callback((Fl_Callback*)cb_btn_band_select, (void *)6);
1164 
1165 			btn_ft991_select_7 = new Fl_Button(4, 50, 60, 18, _("21"));
1166 			btn_ft991_select_7->tooltip(_("Left click - get"));
1167 			btn_ft991_select_7->color((Fl_Color)246);
1168 			btn_ft991_select_7->callback((Fl_Callback*)cb_btn_band_select, (void *)7);
1169 
1170 			btn_ft991_select_8 = new Fl_Button(74, 50, 60, 18, _("24"));
1171 			btn_ft991_select_8->tooltip(_("Left click - get"));
1172 			btn_ft991_select_8->color((Fl_Color)246);
1173 			btn_ft991_select_8->callback((Fl_Callback*)cb_btn_band_select, (void *)8);
1174 
1175 			btn_ft991_select_9 = new Fl_Button(145, 50, 60, 18, _("28"));
1176 			btn_ft991_select_9->tooltip(_("Left click - get"));
1177 			btn_ft991_select_9->color((Fl_Color)246);
1178 			btn_ft991_select_9->callback((Fl_Callback*)cb_btn_band_select, (void *)9);
1179 
1180 			btn_ft991_select_10 = new Fl_Button(216, 50, 60, 18, _("50"));
1181 			btn_ft991_select_10->tooltip(_("Left click - get"));
1182 			btn_ft991_select_10->color((Fl_Color)246);
1183 			btn_ft991_select_10->callback((Fl_Callback*)cb_btn_band_select, (void *)10);
1184 
1185 			btn_ft991_select_11 = new Fl_Button(287, 50, 60, 18, _("144"));
1186 			btn_ft991_select_11->tooltip(_("Left click - get"));
1187 			btn_ft991_select_11->color((Fl_Color)246);
1188 			btn_ft991_select_11->callback((Fl_Callback*)cb_btn_band_select, (void *)11);
1189 
1190 			btn_ft991_select_12 = new Fl_Button(358, 50, 60, 18, _("430"));
1191 			btn_ft991_select_12->tooltip(_("Left click - get"));
1192 			btn_ft991_select_12->color((Fl_Color)246);
1193 			btn_ft991_select_12->callback((Fl_Callback*)cb_btn_band_select, (void *)12);
1194 
1195 			btn_ft991_select_13 = new Fl_Button(4, 70, 60, 18, _("Gen"));
1196 			btn_ft991_select_13->tooltip(_("Left click - get"));
1197 			btn_ft991_select_13->color((Fl_Color)246);
1198 			btn_ft991_select_13->callback((Fl_Callback*)cb_btn_band_select, (void *)13);
1199 
1200 			choice_ft991_tTONE = new Fl_PL_tone(145, 70, 75, 18, _("tTONE"));
1201 			choice_ft991_tTONE->align((Fl_Align)FL_ALIGN_LEFT);
1202 			choice_ft991_tTONE->value(8);
1203 			choice_ft991_tTONE->end();
1204 			choice_ft991_tTONE->hide();
1205 
1206 			choice_ft991_rTONE = new Fl_PL_tone(287, 70, 75, 18, _("rTONE"));
1207 			choice_ft991_rTONE->align((Fl_Align)FL_ALIGN_LEFT);
1208 			choice_ft991_rTONE->value(8);
1209 			choice_ft991_rTONE->end();
1210 			choice_ft991_rTONE->hide();
1211 
1212 		tab_ft991_bands->end();
1213 
1214 		tab_FT8n_bands = new Fl_Group(0, 24, small_mainW, gph - 24, _("Band"));
1215 		static const char setsave[] = _("Left click - set\nRight click - save");
1216 			btn_FT8n_select_1 = new Fl_Button(4, 30, 60, 18, _("1.8"));
1217 			btn_FT8n_select_1->tooltip(setsave);
1218 			btn_FT8n_select_1->color((Fl_Color)246);
1219 			btn_FT8n_select_1->callback((Fl_Callback*)cb_btn_band_select, (void *)1);
1220 
1221 			btn_FT8n_select_2 = new Fl_Button(74, 30, 60, 18, _("3.5"));
1222 			btn_FT8n_select_2->tooltip(setsave);
1223 			btn_FT8n_select_2->color((Fl_Color)246);
1224 			btn_FT8n_select_2->callback((Fl_Callback*)cb_btn_band_select, (void *)2);
1225 
1226 			btn_FT8n_select_3 = new Fl_Button(145, 30, 60, 18, _("7"));
1227 			btn_FT8n_select_3->tooltip(setsave);
1228 			btn_FT8n_select_3->color((Fl_Color)246);
1229 			btn_FT8n_select_3->callback((Fl_Callback*)cb_btn_band_select, (void *)3);
1230 
1231 			btn_FT8n_select_4 = new Fl_Button(216, 30, 60, 18, _("10"));
1232 			btn_FT8n_select_4->tooltip(setsave);
1233 			btn_FT8n_select_4->color((Fl_Color)246);
1234 			btn_FT8n_select_4->callback((Fl_Callback*)cb_btn_band_select, (void *)4);
1235 
1236 			btn_FT8n_select_5 = new Fl_Button(287, 30, 60, 18, _("14"));
1237 			btn_FT8n_select_5->tooltip(setsave);
1238 			btn_FT8n_select_5->color((Fl_Color)246);
1239 			btn_FT8n_select_5->callback((Fl_Callback*)cb_btn_band_select, (void *)5);
1240 
1241 			btn_FT8n_select_6 = new Fl_Button(358, 30, 60, 18, _("18"));
1242 			btn_FT8n_select_6->tooltip(setsave);
1243 			btn_FT8n_select_6->color((Fl_Color)246);
1244 			btn_FT8n_select_6->callback((Fl_Callback*)cb_btn_band_select, (void *)6);
1245 
1246 			btn_FT8n_select_7 = new Fl_Button(4, 50, 60, 18, _("21"));
1247 			btn_FT8n_select_7->tooltip(setsave);
1248 			btn_FT8n_select_7->color((Fl_Color)246);
1249 			btn_FT8n_select_7->callback((Fl_Callback*)cb_btn_band_select, (void *)7);
1250 
1251 			btn_FT8n_select_8 = new Fl_Button(74, 50, 60, 18, _("24"));
1252 			btn_FT8n_select_8->tooltip(setsave);
1253 			btn_FT8n_select_8->color((Fl_Color)246);
1254 			btn_FT8n_select_8->callback((Fl_Callback*)cb_btn_band_select, (void *)8);
1255 
1256 			btn_FT8n_select_9 = new Fl_Button(145, 50, 60, 18, _("28"));
1257 			btn_FT8n_select_9->tooltip(setsave);
1258 			btn_FT8n_select_9->color((Fl_Color)246);
1259 			btn_FT8n_select_9->callback((Fl_Callback*)cb_btn_band_select, (void *)9);
1260 
1261 			btn_FT8n_select_10 = new Fl_Button(216, 50, 60, 18, _("50"));
1262 			btn_FT8n_select_10->tooltip(setsave);
1263 			btn_FT8n_select_10->color((Fl_Color)246);
1264 			btn_FT8n_select_10->callback((Fl_Callback*)cb_btn_band_select, (void *)10);
1265 
1266 			btn_FT8n_select_11 = new Fl_Button(287, 50, 60, 18, _("144"));
1267 			btn_FT8n_select_11->tooltip(setsave);
1268 			btn_FT8n_select_11->color((Fl_Color)246);
1269 			btn_FT8n_select_11->callback((Fl_Callback*)cb_btn_band_select, (void *)11);
1270 
1271 			btn_FT8n_select_12 = new Fl_Button(358, 50, 60, 18, _("430"));
1272 			btn_FT8n_select_12->tooltip(setsave);
1273 			btn_FT8n_select_12->color((Fl_Color)246);
1274 			btn_FT8n_select_12->callback((Fl_Callback*)cb_btn_band_select, (void *)12);
1275 
1276 		tab_FT8n_bands->end();
1277 
1278 		tab_FT8n_CTCSS = new Fl_Group(0, 24, small_mainW, gph - 24, _("CTCSS"));
1279 
1280 			choice_FT8n_tTONE = new Fl_PL_tone(70, 34, 75, 18, _("Tone X:"));
1281 			choice_FT8n_tTONE->align((Fl_Align)FL_ALIGN_LEFT);
1282 			choice_FT8n_tTONE->value(8);
1283 			choice_FT8n_tTONE->end();
1284 
1285 			choice_FT8n_rTONE = new Fl_PL_tone(70, 66, 75, 18, _("R:"));
1286 			choice_FT8n_rTONE->align((Fl_Align)FL_ALIGN_LEFT);
1287 			choice_FT8n_rTONE->value(8);
1288 			choice_FT8n_rTONE->end();
1289 
1290 			setTONES = new Fl_Button(150, 34, 60, 18, _("Set"));
1291 			setTONES->callback((Fl_Callback*)cb_tones, 0);
1292 
1293 			FMoff_freq = new cFreqControl(225, 34, 100, 26, "5");
1294 			FMoff_freq->value(600);
1295 			Fl_Box *MHZ = new Fl_Box(FMoff_freq->x() + FMoff_freq->w() + 4, 34, 50, 26, "MHz");
1296 			MHZ->box(FL_FLAT_BOX);
1297 			MHZ->align(FL_ALIGN_CENTER);
1298 
1299 			FMoffset = new Fl_ComboBox(225, 66, 100, 18, "");
1300 			FMoffset->tooltip(_("Select FM operation"));
1301 			FMoffset->box(FL_NO_BOX);
1302 			FMoffset->color(FL_BACKGROUND2_COLOR);
1303 			FMoffset->selection_color(FL_BACKGROUND_COLOR);
1304 			FMoffset->add("simplex|minus|plus");
1305 			FMoffset->index(0);
1306 
1307 			setOFFSET = new Fl_Button(FMoffset->x() + FMoffset->w() + 5, 66, 60, 18, _("Set"));
1308 			setOFFSET->callback((Fl_Callback*)cb_offset, 0);
1309 
1310 		tab_FT8n_CTCSS->end();
1311 
1312 		tab_icom_bands = new Fl_Group(0, 24, small_mainW, gph - 24, _("Band"));
1313 			btn_icom_select_1 = new Fl_Button(4, 30, 60, 18, _("1.8"));
1314 			btn_icom_select_1->tooltip(_("Left click - get\nRight click - set"));
1315 			btn_icom_select_1->color((Fl_Color)246);
1316 			btn_icom_select_1->callback((Fl_Callback*)cb_btn_band_select, (void *)1);
1317 
1318 			btn_icom_select_2 = new Fl_Button(74, 30, 60, 18, _("3.5"));
1319 			btn_icom_select_2->tooltip(_("Left click - get\nRight click - set"));
1320 			btn_icom_select_2->color((Fl_Color)246);
1321 			btn_icom_select_2->callback((Fl_Callback*)cb_btn_band_select, (void *)2);
1322 
1323 			btn_icom_select_3 = new Fl_Button(145, 30, 60, 18, _("7"));
1324 			btn_icom_select_3->tooltip(_("Left click - get\nRight click - set"));
1325 			btn_icom_select_3->color((Fl_Color)246);
1326 			btn_icom_select_3->callback((Fl_Callback*)cb_btn_band_select, (void *)3);
1327 
1328 			btn_icom_select_4 = new Fl_Button(216, 30, 60, 18, _("10"));
1329 			btn_icom_select_4->tooltip(_("Left click - get\nRight click - set"));
1330 			btn_icom_select_4->color((Fl_Color)246);
1331 			btn_icom_select_4->callback((Fl_Callback*)cb_btn_band_select, (void *)4);
1332 
1333 			btn_icom_select_5 = new Fl_Button(287, 30, 60, 18, _("14"));
1334 			btn_icom_select_5->tooltip(_("Left click - get\nRight click - set"));
1335 			btn_icom_select_5->color((Fl_Color)246);
1336 			btn_icom_select_5->callback((Fl_Callback*)cb_btn_band_select, (void *)5);
1337 
1338 			btn_icom_select_6 = new Fl_Button(358, 30, 60, 18, _("18"));
1339 			btn_icom_select_6->tooltip(_("Left click - get\nRight click - set"));
1340 			btn_icom_select_6->color((Fl_Color)246);
1341 			btn_icom_select_6->callback((Fl_Callback*)cb_btn_band_select, (void *)6);
1342 
1343 			btn_icom_select_7 = new Fl_Button(4, 50, 60, 18, _("21"));
1344 			btn_icom_select_7->tooltip(_("Left click - get\nRight click - set"));
1345 			btn_icom_select_7->color((Fl_Color)246);
1346 			btn_icom_select_7->callback((Fl_Callback*)cb_btn_band_select, (void *)7);
1347 
1348 			btn_icom_select_8 = new Fl_Button(74, 50, 60, 18, _("24"));
1349 			btn_icom_select_8->tooltip(_("Left click - get\nRight click - set"));
1350 			btn_icom_select_8->color((Fl_Color)246);
1351 			btn_icom_select_8->callback((Fl_Callback*)cb_btn_band_select, (void *)8);
1352 
1353 			btn_icom_select_9 = new Fl_Button(145, 50, 60, 18, _("28"));
1354 			btn_icom_select_9->tooltip(_("Left click - get\nRight click - set"));
1355 			btn_icom_select_9->color((Fl_Color)246);
1356 			btn_icom_select_9->callback((Fl_Callback*)cb_btn_band_select, (void *)9);
1357 
1358 			btn_icom_select_10 = new Fl_Button(216, 50, 60, 18, _("50"));
1359 			btn_icom_select_10->tooltip(_("Left click - get\nRight click - set"));
1360 			btn_icom_select_10->color((Fl_Color)246);
1361 			btn_icom_select_10->callback((Fl_Callback*)cb_btn_band_select, (void *)10);
1362 
1363 			btn_icom_select_11 = new Fl_Button(287, 50, 60, 18, _("144"));
1364 			btn_icom_select_11->tooltip(_("Left click - get\nRight click - set"));
1365 			btn_icom_select_11->color((Fl_Color)246);
1366 			btn_icom_select_11->callback((Fl_Callback*)cb_btn_band_select, (void *)11);
1367 
1368 			btn_icom_select_12 = new Fl_Button(358, 50, 60, 18, _("430"));
1369 			btn_icom_select_12->tooltip(_("Left click - get\nRight click - set"));
1370 			btn_icom_select_12->color((Fl_Color)246);
1371 			btn_icom_select_12->callback((Fl_Callback*)cb_btn_band_select, (void *)12);
1372 
1373 			btn_icom_select_13 = new Fl_Button(4, 70, 60, 18, _("1.2 G"));
1374 			btn_icom_select_13->tooltip(_("Left click - get\nRight click - set"));
1375 			btn_icom_select_13->color((Fl_Color)246);
1376 			btn_icom_select_13->callback((Fl_Callback*)cb_btn_band_select, (void *)13);
1377 
1378 			choice_tTONE = new Fl_PL_tone(145, 70, 75, 18, _("tTONE"));
1379 			choice_tTONE->align((Fl_Align)FL_ALIGN_LEFT);
1380 			choice_tTONE->value(8);
1381 			choice_tTONE->end();
1382 
1383 			choice_rTONE = new Fl_PL_tone(287, 70, 75, 18, _("rTONE"));
1384 			choice_rTONE->align((Fl_Align)FL_ALIGN_LEFT);
1385 			choice_rTONE->value(8);
1386 			choice_rTONE->end();
1387 
1388 		tab_icom_bands->end();
1389 
1390 		genericCW = new Fl_Group(0, 24, small_mainW, gph - 24, _("CW"));
1391 			genericCW->color(FL_LIGHT1);
1392 			genericCW->selection_color(FL_LIGHT1);
1393 			genericCW->hide();
1394 
1395 			spnr_cw_wpm = new Hspinner(
1396 				4, 40,
1397 				85, 22, _("wpm"), 16);
1398 			spnr_cw_wpm->type(1);
1399 			spnr_cw_wpm->minimum(5);
1400 			spnr_cw_wpm->maximum(80);
1401 			spnr_cw_wpm->step(1);
1402 			spnr_cw_wpm->callback((Fl_Callback*)cb_spnr_cw_wpm);
1403 			spnr_cw_wpm->value(progStatus.cw_wpm);
1404 			spnr_cw_wpm->labelsize(12);
1405 			spnr_cw_wpm->align(FL_ALIGN_BOTTOM | FL_ALIGN_CENTER);
1406 			spnr_cw_wpm->tooltip(_("CW words per minute"));
1407 
1408 			spnr_cw_weight = new Hspinner(
1409 				spnr_cw_wpm->x() + spnr_cw_wpm->w() + 4, 40,
1410 				85, 22, _("Weight"), 16);
1411 			spnr_cw_weight->type(1);
1412 			spnr_cw_weight->minimum(2.5);
1413 			spnr_cw_weight->maximum(4.5);
1414 			spnr_cw_weight->step(0.1);
1415 			spnr_cw_weight->value(3);
1416 			spnr_cw_weight->callback((Fl_Callback*)cb_spnr_cw_weight);
1417 			spnr_cw_weight->value(progStatus.cw_weight);
1418 			spnr_cw_weight->labelsize(12);
1419 			spnr_cw_weight->align(FL_ALIGN_BOTTOM | FL_ALIGN_CENTER);
1420 			spnr_cw_weight->tooltip(_("CW weight"));
1421 
1422 			spnr_cw_spot_tone= new Hspinner(
1423 				spnr_cw_weight->w() + spnr_cw_weight->x() + 4, 40,
1424 				85, 22, _("Spot tone"), 16);
1425 			spnr_cw_spot_tone->tooltip(_("Spot volume"));
1426 			spnr_cw_spot_tone->type(1);
1427 			spnr_cw_spot_tone->minimum(50);
1428 			spnr_cw_spot_tone->maximum(1050);
1429 			spnr_cw_spot_tone->step(5);
1430 			spnr_cw_spot_tone->value(700);
1431 			spnr_cw_spot_tone->callback((Fl_Callback*)cb_spnr_cw_spot_tone);
1432 			spnr_cw_spot_tone->value(progStatus.cw_spot);
1433 			spnr_cw_spot_tone->labelsize(12);
1434 			spnr_cw_spot_tone->align(FL_ALIGN_BOTTOM | FL_ALIGN_CENTER);
1435 
1436 			btnSpot = new Fl_Light_Button(
1437 				spnr_cw_spot_tone->x() + spnr_cw_spot_tone->w() + 4, 36,
1438 				60, 22, _("Spot"));
1439 			btnSpot->tooltip(_("Spot tone on/off"));
1440 			btnSpot->callback((Fl_Callback*)cb_btnSpot);
1441 			btnSpot->value(progStatus.cw_spot);
1442 
1443 			btn_enable_keyer = new Fl_Check_Button(
1444 				btnSpot->x(), 62, 60, 15, _("Keyer"));
1445 			btn_enable_keyer->tooltip(_("Enable internal keyer"));
1446 			btn_enable_keyer->down_box(FL_DOWN_BOX);
1447 			btn_enable_keyer->callback((Fl_Callback*)cb_btn_enable_keyer);
1448 			btn_enable_keyer->value(progStatus.enable_keyer);
1449 
1450 		genericCW->end();
1451 
1452 		genericQSK = new Fl_Group(0, 24, small_mainW, gph - 24, _("QSK"));
1453 			genericQSK->color(FL_LIGHT1);
1454 			genericQSK->selection_color(FL_LIGHT1);
1455 			genericQSK->hide();
1456 
1457 			btnBreakIn = new Fl_Button(
1458 				5, 40, 60, 22, _("QSK"));
1459 			btnBreakIn->tooltip(_("Full break in"));
1460 			btnBreakIn->callback((Fl_Callback*)cb_btnBreakIn);
1461 			btnBreakIn->value(progStatus.break_in);
1462 
1463 			spnr_cw_qsk = new Hspinner(
1464 				btnBreakIn->x() + btnBreakIn->w() + 4, 40,
1465 				85, 22, _("Bk-in Dly"), 16);
1466 			spnr_cw_qsk->tooltip(_("msec"));
1467 			spnr_cw_qsk->type(1);
1468 			spnr_cw_qsk->minimum(0);
1469 			spnr_cw_qsk->maximum(100);
1470 			spnr_cw_qsk->step(1);
1471 			spnr_cw_qsk->value(20);
1472 			spnr_cw_qsk->callback((Fl_Callback*)cb_spnr_cw_qsk);
1473 			spnr_cw_qsk->value(progStatus.cw_qsk);
1474 			spnr_cw_qsk->align(FL_ALIGN_BOTTOM | FL_ALIGN_CENTER);
1475 
1476 			spnr_cw_delay = new Hspinner(
1477 				spnr_cw_qsk->x() + spnr_cw_qsk->w() + 4, 40,
1478 				120, 22, _("QSK delay"), 16);
1479 			spnr_cw_delay->tooltip(_("msec"));
1480 			spnr_cw_delay->type(0);
1481 			spnr_cw_delay->minimum(30);
1482 			spnr_cw_delay->maximum(500);
1483 			spnr_cw_delay->step(10);
1484 			spnr_cw_delay->callback((Fl_Callback*)cb_spnr_cw_delay);
1485 			spnr_cw_delay->value(progStatus.cw_delay);
1486 			spnr_cw_delay->align(FL_ALIGN_BOTTOM | FL_ALIGN_CENTER);
1487 
1488 		genericQSK->end();
1489 
1490 		genericVOX = new Fl_Group(0, 24, small_mainW, gph - 24, _("Vox"));
1491 			genericVOX->hide();
1492 
1493 			spnr_vox_gain = new Hspinner(
1494 				4, 40,
1495 				80, 22, _("gain"), 16);
1496 			spnr_vox_gain->type(1);
1497 			spnr_vox_gain->minimum(0);
1498 			spnr_vox_gain->maximum(100);
1499 			spnr_vox_gain->step(1);
1500 			spnr_vox_gain->tooltip(_("VOX gain"));
1501 			spnr_vox_gain->callback((Fl_Callback*)cb_spnr_vox_gain);
1502 			spnr_vox_gain->value(progStatus.vox_gain);
1503 			spnr_vox_gain->align(FL_ALIGN_CENTER | FL_ALIGN_BOTTOM);
1504 
1505 			spnr_anti_vox = new Hspinner(
1506 				spnr_vox_gain->x() + spnr_vox_gain->w() + 10, 40,
1507 				80, 22, _("anti"), 16);
1508 			spnr_anti_vox->type(1);
1509 			spnr_anti_vox->minimum(0);
1510 			spnr_anti_vox->maximum(100);
1511 			spnr_anti_vox->step(1);
1512 			spnr_anti_vox->tooltip(_("Anti VOX gain"));
1513 			spnr_anti_vox->callback((Fl_Callback*)cb_spnr_anti_vox);
1514 			spnr_anti_vox->value(progStatus.vox_anti);
1515 			spnr_anti_vox->align(FL_ALIGN_CENTER | FL_ALIGN_BOTTOM);
1516 
1517 			spnr_vox_hang = new Hspinner(
1518 				spnr_anti_vox->x() + spnr_anti_vox->w() + 10, 40,
1519 				80, 22, _("hang"), 16);
1520 			spnr_vox_hang->type(1);
1521 			spnr_vox_hang->minimum(0);
1522 			spnr_vox_hang->maximum(100);
1523 			spnr_vox_hang->step(1);
1524 			spnr_vox_hang->tooltip(_("VOX hang time"));
1525 			spnr_vox_hang->callback((Fl_Callback*)cb_spnr_vox_hang);
1526 			spnr_vox_hang->value(progStatus.vox_hang);
1527 			spnr_vox_hang->align(FL_ALIGN_CENTER | FL_ALIGN_BOTTOM);
1528 
1529 			btn_vox = new Fl_Light_Button(
1530 				spnr_vox_hang->x() + spnr_vox_hang->w() + 10, 40,
1531 				50, 22, _("VOX"));
1532 			btn_vox->callback((Fl_Callback*)cb_btn_vox);
1533 			btn_vox->value(progStatus.vox_onoff);
1534 			btn_vox->tooltip(_("VOX on/off"));
1535 
1536 			btn_vox_on_dataport = new Fl_Check_Button(
1537 				btn_vox->x() + btn_vox->w() + 10, 44,
1538 				50, 15, _("Data port"));
1539 			btn_vox_on_dataport->tooltip(_("Data port signal triggers VOX"));
1540 			btn_vox_on_dataport->down_box(FL_DOWN_BOX);
1541 			btn_vox_on_dataport->callback((Fl_Callback*)cb_btn_vox_on_dataport);
1542 			btn_vox_on_dataport->value(progStatus.vox_on_dataport);
1543 
1544 		genericVOX->end();
1545 
1546 		genericSpeech = new Fl_Group(0, 24, small_mainW, gph - 24, _("Spch"));
1547 			genericSpeech->hide();
1548 
1549 			btnCompON = new Fl_Light_Button(215, 40, 100, 22, _("On"));
1550 			btnCompON->callback((Fl_Callback*)cb_btnCompON);
1551 			btnCompON->value(progStatus.compON);
1552 			btnCompON->tooltip(_("Compression on/off"));
1553 
1554 			spnr_compression = new Hspinner(138, 40, 70, 22, _("Comp"));
1555 			spnr_compression->type(1);
1556 			spnr_compression->minimum(0);
1557 			spnr_compression->maximum(100);
1558 			spnr_compression->step(1);
1559 			spnr_compression->tooltip(_("Compression level"));
1560 			spnr_compression->callback((Fl_Callback*)cb_spnr_compression);
1561 			spnr_compression->value(progStatus.compression);
1562 
1563 		genericSpeech->end();
1564 
1565 		genericRx = new Fl_Group(0, 24, small_mainW, gph - 24, _("RX"));
1566 			genericRx->hide();
1567 
1568 			sldr_nb_level = new Fl_Wheel_Value_Slider(5, 40, 200, 20, _("NB level"));
1569 			sldr_nb_level->tooltip(_("Noise Blanker level"));
1570 			sldr_nb_level->type(5);
1571 			sldr_nb_level->box(FL_THIN_DOWN_BOX);
1572 			sldr_nb_level->color(FL_BACKGROUND_COLOR);
1573 			sldr_nb_level->selection_color(FL_BACKGROUND_COLOR);
1574 			sldr_nb_level->labeltype(FL_NORMAL_LABEL);
1575 			sldr_nb_level->labelfont(0);
1576 			sldr_nb_level->labelsize(14);
1577 			sldr_nb_level->labelcolor(FL_FOREGROUND_COLOR);
1578 			sldr_nb_level->minimum(0);
1579 			sldr_nb_level->maximum(0);
1580 			sldr_nb_level->step(1);
1581 			sldr_nb_level->callback((Fl_Callback*)cb_sldr_nb_level);
1582 			sldr_nb_level->align(Fl_Align(FL_ALIGN_BOTTOM));
1583 			sldr_nb_level->when(FL_WHEN_CHANGED);
1584 
1585 			sldr_nb_level->value(progStatus.nb_level);
1586 
1587 //			cbo_agc_level = new Fl_ComboBox(123, 40, 80, 22, _("AGC"));
1588 //			cbo_agc_level->tooltip(_("AGC level"));
1589 //			cbo_agc_level->box(FL_DOWN_BOX);
1590 //			cbo_agc_level->color(FL_BACKGROUND_COLOR);
1591 //			cbo_agc_level->selection_color(FL_BACKGROUND_COLOR);
1592 //			cbo_agc_level->labeltype(FL_NORMAL_LABEL);
1593 //			cbo_agc_level->labelfont(0);
1594 //			cbo_agc_level->labelsize(14);
1595 //			cbo_agc_level->labelcolor(FL_FOREGROUND_COLOR);
1596 //			cbo_agc_level->callback((Fl_Callback*)cb_cbo_agc_level);
1597 //			cbo_agc_level->align(Fl_Align(FL_ALIGN_BOTTOM));
1598 //			cbo_agc_level->when(FL_WHEN_CHANGED);
1599 //			cbo_agc_level->end();
1600 
1601 			spnr_bpf_center = new Hspinner(234, 40, 96, 22, _("BPF Center Freq"));
1602 			spnr_bpf_center->tooltip(_("Bandpass Filter Center Freq"));
1603 			spnr_bpf_center->type(1);
1604 			spnr_bpf_center->minimum(600);
1605 			spnr_bpf_center->maximum(2500);
1606 			spnr_bpf_center->step(10);
1607 			spnr_bpf_center->value(1500);
1608 			spnr_bpf_center->callback((Fl_Callback*)cb_spnr_bpf_center);
1609 			spnr_bpf_center->align(Fl_Align(34));
1610 			spnr_bpf_center->value(progStatus.bpf_center);
1611 
1612 			btn_use_bpf_center = new Fl_Check_Button(361, 40, 50, 15, _("On"));
1613 			btn_use_bpf_center->tooltip(_("Use Filter Center Freq Adj"));
1614 			btn_use_bpf_center->down_box(FL_DOWN_BOX);
1615 			btn_use_bpf_center->value(1);
1616 			btn_use_bpf_center->callback((Fl_Callback*)cb_btn_use_bpf_center);
1617 			btn_use_bpf_center->value(progStatus.use_bpf_center);
1618 
1619 		genericRx->end();
1620 
1621 		genericMisc = new Fl_Group(0, 24, small_mainW, gph - 24, _("Misc"));
1622 			genericMisc->hide();
1623 
1624 			spnr_vfo_adj = new Hspinner(24, 40, 96, 22, _("Vfo Adj"));
1625 			spnr_vfo_adj->type(1);
1626 			spnr_vfo_adj->callback((Fl_Callback*)cb_spnr_vfo_adj);
1627 			spnr_vfo_adj->align(Fl_Align(34));
1628 			spnr_vfo_adj->step(1);
1629 			spnr_vfo_adj->value(progStatus.vfo_adj);
1630 
1631 			spnr_line_out = new Hspinner(146, 40, 70, 22, _("line out"));
1632 			spnr_line_out->type(1);
1633 			spnr_line_out->minimum(0);
1634 			spnr_line_out->maximum(100);
1635 			spnr_line_out->step(1);
1636 			spnr_line_out->value(20);
1637 			spnr_line_out->align(Fl_Align(34));
1638 			spnr_line_out->callback((Fl_Callback*)cb_spnr_line_out);
1639 			spnr_line_out->value(progStatus.line_out);
1640 
1641 			btnSpecial = new Fl_Light_Button(242, 30, 74, 20, _("Special"));
1642 			btnSpecial->callback((Fl_Callback*)cb_btnSpecial);
1643 
1644 			btn_ext_tuner = new Fl_Check_Button(242, 60, 74, 15, _("Ext tuner"));
1645 			btn_ext_tuner->tooltip(_("use external auto tuner"));
1646 			btn_ext_tuner->down_box(FL_DOWN_BOX);
1647 			btn_ext_tuner->callback((Fl_Callback*)cb_btn_ext_tuner);
1648 			btn_ext_tuner->value(progStatus.external_tuner);
1649 
1650 			btn_xcvr_auto_on = new Fl_Check_Button(325, 38, 95, 15, _("Rig autOn"));
1651 			btn_xcvr_auto_on->tooltip(_("Auto Turn Rig On with Flrig startup"));
1652 			btn_xcvr_auto_on->down_box(FL_DOWN_BOX);
1653 			btn_xcvr_auto_on->callback((Fl_Callback*)cb_btn_xcvr_auto_on);
1654 			btn_xcvr_auto_on->value(progStatus.xcvr_auto_on);
1655 
1656 			btn_xcvr_auto_off = new Fl_Check_Button(325, 60, 95, 15, _("Rig autOff"));
1657 			btn_xcvr_auto_off->tooltip(_("Auto Turn Rig Off with Flrig exit"));
1658 			btn_xcvr_auto_off->down_box(FL_DOWN_BOX);
1659 			btn_xcvr_auto_off->callback((Fl_Callback*)cb_btn_xcvr_auto_off);
1660 			btn_xcvr_auto_off->value(progStatus.xcvr_auto_off);
1661 
1662 		genericMisc->end();
1663 
1664 		genericUser_1 = new Fl_Group(0, 24, small_mainW, gph - 24, _("Cmds A"));
1665 			btnUser1 = new Fl_Button(5, genericUser_1->y() + 12, 100, 20, "USER 1");
1666 			btnUser1->callback((Fl_Callback*)cb_btnUser, (void*)1);
1667 
1668 			btnUser2 = new Fl_Button(110, genericUser_1->y() + 12, 100, 20, "USER 2");
1669 			btnUser2->callback((Fl_Callback*)cb_btnUser, (void*)2);
1670 
1671 			btnUser3 = new Fl_Button(215, genericUser_1->y() + 12, 100, 20, "USER 3");
1672 			btnUser3->callback((Fl_Callback*)cb_btnUser, (void*)3);
1673 
1674 			btnUser4 = new Fl_Button(320, genericUser_1->y() + 12, 100, 20, "USER 4");
1675 			btnUser4->callback((Fl_Callback*)cb_btnUser, (void*)4);
1676 
1677 			btnUser5 = new Fl_Button(5, genericUser_1->y() + 36, 100, 20, "USER 5");
1678 			btnUser5->callback((Fl_Callback*)cb_btnUser, (void*)5);
1679 
1680 			btnUser6 = new Fl_Button(110, genericUser_1->y() + 36, 100, 20, "USER 6");
1681 			btnUser6->callback((Fl_Callback*)cb_btnUser, (void*)6);
1682 
1683 			btnUser7 = new Fl_Button(215, genericUser_1->y() + 36, 100, 20, "USER 7");
1684 			btnUser7->callback((Fl_Callback*)cb_btnUser, (void*)7);
1685 
1686 			btnUser8 = new Fl_Button(320, genericUser_1->y() + 36, 100, 20, "USER 8");
1687 			btnUser8->callback((Fl_Callback*)cb_btnUser, (void*)8);
1688 
1689 		genericUser_1->end();
1690 
1691 		genericUser_2 = new Fl_Group(0, 24, small_mainW, gph - 24, _("B"));
1692 			btnUser9 = new Fl_Button(5, genericUser_2->y() + 12, 100, 20, "USER 9");
1693 			btnUser9->callback((Fl_Callback*)cb_btnUser, (void*)9);
1694 
1695 			btnUser10 = new Fl_Button(110, genericUser_2->y() + 12, 100, 20, "USER 10");
1696 			btnUser10->callback((Fl_Callback*)cb_btnUser, (void*)10);
1697 
1698 			btnUser11 = new Fl_Button(215, genericUser_2->y() + 12, 100, 20, "USER 11");
1699 			btnUser11->callback((Fl_Callback*)cb_btnUser, (void*)11);
1700 
1701 			btnUser12 = new Fl_Button(320, genericUser_2->y() + 12, 100, 20, "USER 12");
1702 			btnUser12->callback((Fl_Callback*)cb_btnUser, (void*)12);
1703 
1704 			btnUser13 = new Fl_Button(5, genericUser_2->y() + 36, 100, 20, "USER 13");
1705 			btnUser13->callback((Fl_Callback*)cb_btnUser, (void*)13);
1706 
1707 			btnUser14 = new Fl_Button(110, genericUser_2->y() + 36, 100, 20, "USER 14");
1708 			btnUser14->callback((Fl_Callback*)cb_btnUser, (void*)14);
1709 
1710 			btnUser15 = new Fl_Button(215, genericUser_2->y() + 36, 100, 20, "USER 15");
1711 			btnUser15->callback((Fl_Callback*)cb_btnUser, (void*)15);
1712 
1713 			btnUser16 = new Fl_Button(320, genericUser_2->y() + 36, 100, 20, "USER 16");
1714 			btnUser16->callback((Fl_Callback*)cb_btnUser, (void*)16);
1715 
1716 		genericUser_2->end();
1717 
1718 		genericUser_3 = new Fl_Group(0, 24, small_mainW, gph - 24, _("C"));
1719 			btnUser17 = new Fl_Button(5, genericUser_3->y() + 12, 100, 20, "USER 17");
1720 			btnUser17->callback((Fl_Callback*)cb_btnUser, (void*)17);
1721 
1722 			btnUser18 = new Fl_Button(110, genericUser_3->y() + 12, 100, 20, "USER 18");
1723 			btnUser18->callback((Fl_Callback*)cb_btnUser, (void*)18);
1724 
1725 			btnUser19 = new Fl_Button(215, genericUser_3->y() + 12, 100, 20, "USER 19");
1726 			btnUser19->callback((Fl_Callback*)cb_btnUser, (void*)19);
1727 
1728 			btnUser20 = new Fl_Button(320, genericUser_3->y() + 12, 100, 20, "USER 20");
1729 			btnUser20->callback((Fl_Callback*)cb_btnUser, (void*)20);
1730 
1731 			btnUser21 = new Fl_Button(5, genericUser_3->y() + 36, 100, 20, "USER 21");
1732 			btnUser21->callback((Fl_Callback*)cb_btnUser, (void*)21);
1733 
1734 			btnUser22 = new Fl_Button(110, genericUser_3->y() + 36, 100, 20, "USER 22");
1735 			btnUser22->callback((Fl_Callback*)cb_btnUser, (void*)22);
1736 
1737 			btnUser23 = new Fl_Button(215, genericUser_3->y() + 36, 100, 20, "USER 23");
1738 			btnUser23->callback((Fl_Callback*)cb_btnUser, (void*)23);
1739 
1740 			btnUser24 = new Fl_Button(320, genericUser_3->y() + 36, 100, 20, "USER 24");
1741 			btnUser24->callback((Fl_Callback*)cb_btnUser, (void*)24);
1742 
1743 		genericUser_3->end();
1744 
1745 		tab7610 = new Fl_Group(0, 24, small_mainW, gph - 24, _("IC7610"));
1746 			ic7610att = new Fl_ComboBox(5, tab7610->y() + 10, 70, 20, "Att level");
1747 			ic7610att->add("OFF|3db|6db|9db|12db|15db|18db|21db|24db|27db|30db|33db|36db|39db|42db|45db|");
1748 			ic7610att->align(FL_ALIGN_RIGHT);
1749 			ic7610att->index(progStatus.index_ic7610att);
1750 			ic7610att->readonly();
1751 			ic7610att->callback((Fl_Callback *)cb_ic7610_att);
1752 
1753 			ic7610dual_watch = new Fl_Light_Button(150, tab7610->y() + 10, 120, 20, "Dual Watch");
1754 			ic7610dual_watch->value(progStatus.dual_watch);
1755 			ic7610dual_watch->callback((Fl_Callback *)cb_dual_watch);
1756 
1757 			ic7610digi_sel_on_off = new Fl_Light_Button(5, tab7610->y() + 35, 70, 20, "Digi-Sel");
1758 			ic7610digi_sel_on_off->value(progStatus.digi_sel_on_off);
1759 			ic7610digi_sel_on_off->callback((Fl_Callback *)cb_digi_sel_on_off);
1760 
1761 			ic7610_digi_sel_val = new Fl_Wheel_Value_Slider(80, tab7610->y() + 35, small_mainW - 85, 20, "");
1762 			ic7610_digi_sel_val->tooltip(_("Digi-Sel value"));
1763 			ic7610_digi_sel_val->type(5);
1764 			ic7610_digi_sel_val->box(FL_THIN_DOWN_BOX);
1765 			ic7610_digi_sel_val->color(FL_BACKGROUND_COLOR);
1766 			ic7610_digi_sel_val->selection_color(FL_BACKGROUND_COLOR);
1767 			ic7610_digi_sel_val->labeltype(FL_NORMAL_LABEL);
1768 			ic7610_digi_sel_val->labelfont(0);
1769 			ic7610_digi_sel_val->labelsize(14);
1770 			ic7610_digi_sel_val->labelcolor(FL_FOREGROUND_COLOR);
1771 			ic7610_digi_sel_val->minimum(0);
1772 			ic7610_digi_sel_val->maximum(255);
1773 			ic7610_digi_sel_val->step(1);
1774 			ic7610_digi_sel_val->callback((Fl_Callback*)cb_digi_sel_val);
1775 			ic7610_digi_sel_val->align(Fl_Align(FL_ALIGN_BOTTOM));
1776 			ic7610_digi_sel_val->when(FL_WHEN_CHANGED);
1777 			ic7610_digi_sel_val->value(progStatus.digi_sel_val);
1778 
1779 		tab7610->end();
1780 
1781 	tabsGeneric->resizable(genericUser_3);
1782 	tabsGeneric->end();
1783 
1784 	grpTABS->end();
1785 	w->end();
1786 	w->resizable(grpTABS);
1787 	w->size_range (small_mainW, gph, 0, gph);
1788 	return w;
1789 }
1790 
Small_rig_window()1791 Fl_Double_Window* Small_rig_window() {
1792 	Fl_Double_Window* w = new Fl_Double_Window(small_mainW, small_mainH, _("Flrig"));
1793 	w->align(Fl_Align(FL_ALIGN_CLIP|FL_ALIGN_INSIDE));
1794 
1795 	grp_menu = new Fl_Group(0,0,small_mainW,small_menuH);
1796 
1797 		small_menu = new Fl_Menu_Bar(0, 0, small_mainW - 64, small_menuH);
1798 		small_menu->textsize(12);
1799 		small_menu->menu(menu_small_menu);
1800 
1801 		Fl_Menu_Item * mnu = getMenuItem(_("Tooltips"), menu_small_menu);
1802 		if (mnu) {
1803 			progStatus.tooltips ? mnu->set() : mnu->clear();
1804 			mnuTooltips = mnu;
1805 		}
1806 
1807 		mnu = getMenuItem(_("Small sliders"), menu_small_menu);
1808 		if (mnu) {
1809 			progStatus.schema ? mnu->set() : mnu->clear();
1810 			mnuSchema = mnu;
1811 		}
1812 
1813 		Fl_Group *mnu_box = new Fl_Group(small_mainW-64, 0, 64, small_menuH);
1814 		mnu_box->box(FL_UP_BOX);
1815 
1816 			tcpip_box = new Fl_Group(small_mainW-62, 2, 60, 18);
1817 			tcpip_box->box(FL_FLAT_BOX);
1818 
1819 				tcpip_menu_box = new Fl_Box(small_mainH - 62, 3, 16, 16);
1820 				tcpip_menu_box->box(FL_DIAMOND_BOX);
1821 				tcpip_menu_box->color(FL_GREEN);
1822 				Fl_Box *tcpip_menu_label = new Fl_Box(small_mainH - 62 + 18, 3, 64 - 22, 16, _("tcpip"));
1823 				tcpip_menu_label->box(FL_FLAT_BOX);
1824 				tcpip_menu_label->align(FL_ALIGN_CENTER);
1825 				tcpip_menu_label->tooltip(_("lit when connected to remote tcpip"));
1826 
1827 			tcpip_box->end();
1828 			tcpip_box->hide();
1829 
1830 		mnu_box->end();
1831 		grp_menu->resizable(small_menu);
1832 
1833 	grp_menu->end();
1834 
1835 	txt_encA = new Fl_Output( small_mainW - 90, 1, 90, 20, "");
1836 	txt_encA->box(FL_THIN_DOWN_BOX);
1837 	txt_encA->align(20);
1838 	txt_encA->hide();
1839 
1840 	main_group = small_main_group(
1841 		0, small_menuH,
1842 		small_mainW, small_mainH - small_menuH);
1843 
1844 	grpInitializing = new Fl_Group(
1845 		0, 0, small_mainW, small_mainH);
1846 
1847 		grpInitializing->box(FL_FLAT_BOX);
1848 		grpInitializing->color(FL_LIGHT2);
1849 
1850 		progress = new Fl_Progress(
1851 			small_mainW / 4, small_mainH / 2,
1852 			small_mainW / 2, 20, "Initializing");
1853 		progress->maximum(100);
1854 		progress->minimum(0);
1855 		progress->labelcolor(FL_DARK_RED);
1856 		progress->labelsize(14);
1857 		progress->align(Fl_Align(FL_ALIGN_TOP));
1858 		progress->selection_color(FL_GREEN);
1859 
1860 		filler = new Fl_Box(
1861 			0, small_mainH - 5,
1862 			small_mainW, 4);
1863 		filler->box(FL_FLAT_BOX);
1864 		filler->color(FL_LIGHT2);
1865 
1866 		grpInitializing->end();
1867 	grpInitializing->resizable(filler);
1868 
1869 	grpInitializing->show();
1870 
1871 	w->end();
1872 	return w;
1873 }
1874