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