dl-fldigi/src/dialogs/confdialog.cxx

12383 wiersze
542 KiB
C++

// generated by Fast Light User Interface Designer (fluid) version 1.0303
#include "gettext.h"
#include "confdialog.h"
#include <config.h>
#include <FL/Fl_Tooltip.H>
#include <FL/Fl_Box.H>
#include <FL/filename.H>
#include <FL/Fl_File_Chooser.H>
#include <FL/fl_show_colormap.H>
#include "main.h"
#include "fl_digi.h"
#include "data_io.h"
#include "Viewer.h"
#include "soundconf.h"
#include "waterfall.h"
#include "rigxml.h"
#include "lookupcall.h"
#include "icons.h"
#include "Viewer.h"
#include "pskrep.h"
#include "logsupport.h"
#include "notify.h"
#include "debug.h"
#include "status.h"
#include "rx_extract.h"
#include "kmlserver.h"
#include "macroedit.h"
#include "fileselect.h"
extern void WefaxDestDirSet(Fl_File_Chooser *w, void *userdata);
#if USE_HAMLIB
#include "hamlib.h"
#endif
Fl_Double_Window *dlgConfig;
Mode_Browser* mode_browser;
static void choose_color(Fl_Color & c) {
unsigned char r, g, b;
Fl::get_color(c, r, g, b);
if (fl_color_chooser("Font color", r, g, b))
c = fl_rgb_color(r, g, b);
}
static void cbRxFontBrowser(Fl_Widget*, void*) {
Fl_Font font = font_browser->fontNumber();
int size = font_browser->fontSize();
Fl_Color color = font_browser->fontColor();
RxText->textfont(font);
RxText->textsize(size);
RxText->textcolor(color);
RxText->redraw();
progdefaults.RxFontnbr = font;
progdefaults.RxFontsize = size;
progdefaults.RxFontcolor = color;
ReceiveText->setFont(font);
ReceiveText->setFontSize(size);
ReceiveText->setFontColor(progdefaults.RxFontcolor, FTextBase::RECV);
fsq_rx_text->setFont(font);
fsq_rx_text->setFontSize(size);
fsq_rx_text->setFontColor(progdefaults.RxFontcolor, FTextBase::RECV);
ifkp_rx_text->setFont(font);
ifkp_rx_text->setFontSize(size);
ifkp_rx_text->setFontColor(progdefaults.RxFontcolor, FTextBase::RECV);
font_browser->hide();
progdefaults.changed = true;
}
static void cbTxFontBrowser(Fl_Widget*, void*) {
Fl_Font font = font_browser->fontNumber();
int size = font_browser->fontSize();
Fl_Color color = font_browser->fontColor();
TxText->textfont(font);
TxText->textsize(size);
TxText->textcolor(color);
TxText->redraw();
progdefaults.TxFontnbr = font;
progdefaults.TxFontsize = size;
progdefaults.TxFontcolor = color;
TransmitText->setFont(font);
TransmitText->setFontSize(size);
TransmitText->setFontColor(progdefaults.TxFontcolor, FTextBase::RECV);
fsq_tx_text->setFont(font);
fsq_tx_text->setFontSize(size);
fsq_tx_text->setFontColor(progdefaults.RxFontcolor, FTextBase::RECV);
ifkp_rx_text->setFont(font);
ifkp_rx_text->setFontSize(size);
ifkp_rx_text->setFontColor(progdefaults.RxFontcolor, FTextBase::RECV);
font_browser->hide();
progdefaults.changed = true;
}
static void cbMacroEditFontBrowser(Fl_Widget*, void*) {
Fl_Font font = font_browser->fontNumber();
int size = font_browser->fontSize();
MacroText->textfont(font);
MacroText->textsize(size);
MacroText->redraw();
progdefaults.MacroEditFontnbr = font;
progdefaults.MacroEditFontsize = size;
update_macroedit_font();
MacroText->textfont(font);
MacroText->textsize(size);
font_browser->hide();
progdefaults.changed = true;
}
void cbWaterfallFontBrowser(Fl_Widget*, void*) {
Fl_Font fnt = font_browser->fontNumber();
int size = font_browser->fontSize();
progdefaults.WaterfallFontnbr = fnt;
progdefaults.WaterfallFontsize = size;
progdefaults.changed = true;
font_browser->hide();
}
static void cbMacroBtnFontBrowser(Fl_Widget*, void*) {
progdefaults.MacroBtnFontnbr = font_browser->fontNumber();
progdefaults.MacroBtnFontsize = font_browser->fontSize();;
progdefaults.MacroBtnFontcolor = font_browser->fontColor();
font_browser->hide();
btnGroup1->labelcolor(progdefaults.MacroBtnFontcolor);
btnGroup1->labelfont(progdefaults.MacroBtnFontnbr);
btnGroup1->labelsize(progdefaults.MacroBtnFontsize);
btnGroup1->redraw_label();
btnGroup2->labelcolor(progdefaults.MacroBtnFontcolor);
btnGroup2->labelfont(progdefaults.MacroBtnFontnbr);
btnGroup2->labelsize(progdefaults.MacroBtnFontsize);
btnGroup2->redraw_label();
btnGroup3->labelcolor(progdefaults.MacroBtnFontcolor);
btnGroup3->labelfont(progdefaults.MacroBtnFontnbr);
btnGroup3->labelsize(progdefaults.MacroBtnFontsize);
btnGroup3->redraw_label();
progdefaults.changed = true;
colorize_macros();
}
void cbViewerFontBrowser(Fl_Widget*, void*) {
progdefaults.ViewerFontnbr = font_browser->fontNumber();
progdefaults.ViewerFontsize = font_browser->fontSize();
initViewer();
progdefaults.changed = true;
font_browser->hide();
}
void cbFreqControlFontBrowser(Fl_Widget*, void*) {
Fl_Font fnt = font_browser->fontNumber();
progdefaults.FreqControlFontnbr = fnt;
progdefaults.changed = true;
FDdisplay->labelfont(progdefaults.FreqControlFontnbr);
FDdisplay->redraw();
qsoFreqDisp1->font(progdefaults.FreqControlFontnbr);
qsoFreqDisp2->font(progdefaults.FreqControlFontnbr);
qsoFreqDisp3->font(progdefaults.FreqControlFontnbr);
qsoFreqDisp1->redraw();
qsoFreqDisp2->redraw();
qsoFreqDisp3->redraw();
font_browser->hide();
}
static void cbLOGGINGFontBrowser(Fl_Widget*, void*) {
Fl_Font font = font_browser->fontNumber();
int size = font_browser->fontSize();
Fl_Color color = font_browser->fontColor();
progdefaults.LOGGINGtextfont = font;
progdefaults.LOGGINGtextsize = size;
progdefaults.LOGGINGtextcolor = color;
LOGGINGdisplay->textsize(size);
LOGGINGdisplay->textcolor(color);
LOGGINGdisplay->textfont(font);
LOGGINGdisplay->redraw();
LOGGING_colors_font();
font_browser->hide();
progdefaults.changed = true;
}
static void cbLOGBOOKFontBrowser(Fl_Widget*, void*) {
Fl_Font font = font_browser->fontNumber();
int size = font_browser->fontSize();
Fl_Color color = font_browser->fontColor();
progdefaults.LOGBOOKtextfont = font;
progdefaults.LOGBOOKtextsize = size;
progdefaults.LOGBOOKtextcolor = color;
LOGBOOKdisplay->textsize(size);
LOGBOOKdisplay->textcolor(color);
LOGBOOKdisplay->textfont(font);
LOGBOOKdisplay->redraw();
LOGBOOK_colors_font();
font_browser->hide();
progdefaults.changed = true;
}
void set_qrzxml_buttons(Fl_Button* b) {
Fl_Button* qrzbxml[] = { btnQRZXMLnotavailable, btnQRZcdrom, btnQRZsub,
btnHamcall,
btnCALLOOK, btnHamQTH};
for (size_t i = 0; i < sizeof(qrzbxml)/sizeof(*qrzbxml); i++)
qrzbxml[i]->value(b == qrzbxml[i]);
}
void set_qrzweb_buttons(Fl_Button* b) {
Fl_Button* qrzbweb[] = { btnQRZWEBnotavailable, btnQRZonline,
btnHAMCALLonline,
btnHamQTHonline };
for (size_t i = 0; i < sizeof(qrzbweb)/sizeof(*qrzbweb); i++)
qrzbweb[i]->value(b == qrzbweb[i]);
}
Fl_Tabs *tabsConfigure=(Fl_Tabs *)0;
Fl_Group *tabOperator=(Fl_Group *)0;
static void cb_tabOperator(Fl_Group*, void*) {
progdefaults.changed = true;
}
Fl_Input2 *inpMyCallsign=(Fl_Input2 *)0;
static void cb_inpMyCallsign(Fl_Input2* o, void*) {
if (progdefaults.THORsecText.empty()) {
progdefaults.THORsecText = o->value();
progdefaults.THORsecText.append(" ");
txtTHORSecondary->value(progdefaults.THORsecText.c_str());
}
if (progdefaults.secText.empty()) {
progdefaults.secText = o->value();
progdefaults.secText.append(" ");
txtSecondary->value(progdefaults.secText.c_str());
}
progdefaults.myCall = o->value();
update_main_title();
notify_change_callsign();
progdefaults.changed = true;
}
Fl_Input2 *inpMyName=(Fl_Input2 *)0;
static void cb_inpMyName(Fl_Input2* o, void*) {
progdefaults.myName = o->value();
progdefaults.changed = true;
}
Fl_Input2 *inpMyQth=(Fl_Input2 *)0;
static void cb_inpMyQth(Fl_Input2* o, void*) {
progdefaults.myQth = o->value();
progdefaults.changed = true;
}
Fl_Input2 *inpMyLocator=(Fl_Input2 *)0;
static void cb_inpMyLocator(Fl_Input2* o, void*) {
progdefaults.myLocator = o->value();
progdefaults.changed = true;
}
Fl_Input2 *inpMyAntenna=(Fl_Input2 *)0;
static void cb_inpMyAntenna(Fl_Input2* o, void*) {
progdefaults.myAntenna = o->value();
progdefaults.changed = true;
}
Fl_Group *grpNoise=(Fl_Group *)0;
Fl_Check_Button *btnNoiseOn=(Fl_Check_Button *)0;
static void cb_btnNoiseOn(Fl_Check_Button* o, void*) {
progdefaults.noise = o->value();
}
Fl_Counter2 *noiseDB=(Fl_Counter2 *)0;
static void cb_noiseDB(Fl_Counter2* o, void*) {
progdefaults.s2n = o->value();
}
Fl_Check_Button *btnOffsetOn=(Fl_Check_Button *)0;
Fl_Counter *ctrl_freq_offset=(Fl_Counter *)0;
Fl_Check_Button *btn_imd_on=(Fl_Check_Button *)0;
Fl_Counter2 *xmtimd=(Fl_Counter2 *)0;
Fl_Group *tabUI=(Fl_Group *)0;
Fl_Tabs *tabsUI=(Fl_Tabs *)0;
Fl_Group *tabBrowser=(Fl_Group *)0;
Fl_Spinner2 *cntChannels=(Fl_Spinner2 *)0;
static void cb_cntChannels(Fl_Spinner2* o, void*) {
progdefaults.VIEWERchannels = (int)(o->value());
initViewer();
}
Fl_Spinner2 *cntTimeout=(Fl_Spinner2 *)0;
static void cb_cntTimeout(Fl_Spinner2* o, void*) {
progdefaults.VIEWERtimeout = (int)(o->value());
progdefaults.changed = true;
}
Fl_ListBox *listboxViewerLabel=(Fl_ListBox *)0;
static void cb_listboxViewerLabel(Fl_ListBox* o, void*) {
progdefaults.VIEWERlabeltype = o->index();
initViewer();
progdefaults.changed = true;
}
Fl_Button *btnViewerFont=(Fl_Button *)0;
static void cb_btnViewerFont(Fl_Button*, void*) {
font_browser->fontNumber(progdefaults.ViewerFontnbr);
font_browser->fontSize(progdefaults.ViewerFontsize);
font_browser->fontColor(FL_FOREGROUND_COLOR);
font_browser->fontFilter(Font_Browser::FIXED_WIDTH);
font_browser->callback(cbViewerFontBrowser);
font_browser->show();
}
Fl_Check_Button *btnFixedIntervals=(Fl_Check_Button *)0;
static void cb_btnFixedIntervals(Fl_Check_Button* o, void*) {
progdefaults.VIEWERfixed = o->value();
progdefaults.changed = true;
initViewer();
}
Fl_Check_Button *btnMarquee=(Fl_Check_Button *)0;
static void cb_btnMarquee(Fl_Check_Button* o, void*) {
progdefaults.VIEWERmarquee = o->value();
progdefaults.changed = true;
initViewer();
}
Fl_Check_Button *btnAscend=(Fl_Check_Button *)0;
static void cb_btnAscend(Fl_Check_Button* o, void*) {
progdefaults.VIEWERascend = o->value();
progdefaults.changed = true;
initViewer();
}
Fl_Check_Button *btnBrowserHistory=(Fl_Check_Button *)0;
static void cb_btnBrowserHistory(Fl_Check_Button* o, void*) {
progdefaults.VIEWERhistory = o->value();
progdefaults.changed = true;
}
Fl_Button *bwsrSliderColor=(Fl_Button *)0;
static void cb_bwsrSliderColor(Fl_Button* o, void*) {
uchar r, g, b;
r = progdefaults.bwsrSliderColor.R;
g = progdefaults.bwsrSliderColor.G;
b = progdefaults.bwsrSliderColor.B;
if (fl_color_chooser("Slider Color", r, g, b) == 0)
return;
progdefaults.bwsrSliderColor.R = r;
progdefaults.bwsrSliderColor.G = g;
progdefaults.bwsrSliderColor.B = b;
o->color(fl_rgb_color(r,g,b));
o->redraw();
sldrViewerSquelch->color(fl_rgb_color(r,g,b));
sldrViewerSquelch->redraw();
mvsquelch->color(fl_rgb_color(r,g,b));
mvsquelch->redraw();
progdefaults.changed = true;
}
Fl_Button *bwsrSldrSelColor=(Fl_Button *)0;
static void cb_bwsrSldrSelColor(Fl_Button* o, void*) {
uchar r, g, b;
r = progdefaults.bwsrSldrSelColor.R;
g = progdefaults.bwsrSldrSelColor.G;
b = progdefaults.bwsrSldrSelColor.B;
if (fl_color_chooser("Button Color", r, g, b) == 0)
return;
progdefaults.bwsrSldrSelColor.R = r;
progdefaults.bwsrSldrSelColor.G = g;
progdefaults.bwsrSldrSelColor.B = b;
o->color(fl_rgb_color(r,g,b));
o->redraw();
sldrViewerSquelch->selection_color(fl_rgb_color(r,g,b));
sldrViewerSquelch->redraw();
mvsquelch->selection_color(fl_rgb_color(r,g,b));
mvsquelch->redraw();
progdefaults.changed = true;
}
Fl_Button *bwsrHiLite_1_color=(Fl_Button *)0;
static void cb_bwsrHiLite_1_color(Fl_Button*, void*) {
progdefaults.bwsrHiLight1 = fl_show_colormap((Fl_Color)progdefaults.bwsrHiLight1);
bwsrHiLite_1_color->color((Fl_Color)progdefaults.bwsrHiLight1);
viewer_redraw();
progdefaults.changed = true;
}
Fl_Button *bwsrHiLite_2_color=(Fl_Button *)0;
static void cb_bwsrHiLite_2_color(Fl_Button*, void*) {
progdefaults.bwsrHiLight2 = fl_show_colormap((Fl_Color)progdefaults.bwsrHiLight2);
bwsrHiLite_2_color->color((Fl_Color)progdefaults.bwsrHiLight2);
viewer_redraw();
progdefaults.changed = true;
}
Fl_Button *bwsrHiLite_even_lines=(Fl_Button *)0;
static void cb_bwsrHiLite_even_lines(Fl_Button*, void*) {
progdefaults.bwsrBackgnd2 = fl_show_colormap((Fl_Color)progdefaults.bwsrBackgnd2);
bwsrHiLite_even_lines->color((Fl_Color)progdefaults.bwsrBackgnd2);
viewer_redraw();
progdefaults.changed = true;;
}
Fl_Button *bwsrHiLite_odd_lines=(Fl_Button *)0;
static void cb_bwsrHiLite_odd_lines(Fl_Button*, void*) {
progdefaults.bwsrBackgnd1 = fl_show_colormap((Fl_Color)progdefaults.bwsrBackgnd1);
bwsrHiLite_odd_lines->color((Fl_Color)progdefaults.bwsrBackgnd1);
viewer_redraw();
progdefaults.changed = true;
}
Fl_Button *bwsrHiLite_select=(Fl_Button *)0;
static void cb_bwsrHiLite_select(Fl_Button*, void*) {
progdefaults.bwsrSelect = fl_show_colormap((Fl_Color)progdefaults.bwsrSelect);
bwsrHiLite_select->color((Fl_Color)progdefaults.bwsrSelect);
viewer_redraw();
progdefaults.changed = true;
}
Fl_Group *tabContest=(Fl_Group *)0;
Fl_Box *lblSend=(Fl_Box *)0;
Fl_Input2 *inpSend1=(Fl_Input2 *)0;
static void cb_inpSend1(Fl_Input2* o, void*) {
progdefaults.myXchg=o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn599=(Fl_Check_Button *)0;
static void cb_btn599(Fl_Check_Button* o, void*) {
progdefaults.fixed599 = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnCutNbrs=(Fl_Check_Button *)0;
static void cb_btnCutNbrs(Fl_Check_Button* o, void*) {
progdefaults.cutnbrs=o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnUseLeadingZeros=(Fl_Check_Button *)0;
static void cb_btnUseLeadingZeros(Fl_Check_Button* o, void*) {
progdefaults.UseLeadingZeros = o->value();
progdefaults.changed = true;
}
Fl_Value_Input2 *nbrContestStart=(Fl_Value_Input2 *)0;
static void cb_nbrContestStart(Fl_Value_Input2* o, void*) {
progdefaults.ContestStart = (int)o->value();
progdefaults.changed = true;
}
Fl_Value_Input2 *nbrContestDigits=(Fl_Value_Input2 *)0;
static void cb_nbrContestDigits(Fl_Value_Input2* o, void*) {
progdefaults.ContestDigits = (int)o->value();
progdefaults.changed = true;
}
Fl_Button *btnResetSerNbr=(Fl_Button *)0;
static void cb_btnResetSerNbr(Fl_Button*, void*) {
cb_ResetSerNbr();
}
Fl_Light_Button *btnDupCheckOn=(Fl_Light_Button *)0;
static void cb_btnDupCheckOn(Fl_Light_Button* o, void*) {
progdefaults.EnableDupCheck = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnDupBand=(Fl_Check_Button *)0;
static void cb_btnDupBand(Fl_Check_Button* o, void*) {
progdefaults.dupband = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnDupMode=(Fl_Check_Button *)0;
static void cb_btnDupMode(Fl_Check_Button* o, void*) {
progdefaults.dupmode = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnDupState=(Fl_Check_Button *)0;
static void cb_btnDupState(Fl_Check_Button* o, void*) {
progdefaults.dupstate = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnDupXchg1=(Fl_Check_Button *)0;
static void cb_btnDupXchg1(Fl_Check_Button* o, void*) {
progdefaults.dupxchg1 = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnDupTimeSpan=(Fl_Check_Button *)0;
static void cb_btnDupTimeSpan(Fl_Check_Button* o, void*) {
progdefaults.duptimespan=(int)o->value();
progdefaults.changed = true;
}
Fl_Value_Input2 *nbrTimeSpan=(Fl_Value_Input2 *)0;
static void cb_nbrTimeSpan(Fl_Value_Input2* o, void*) {
progdefaults.timespan = (int)o->value();
progdefaults.changed = true;
}
Fl_Button *btnDupColor=(Fl_Button *)0;
static void cb_btnDupColor(Fl_Button* o, void*) {
fl_color_chooser("Dup Check",
progdefaults.dup_color.R,
progdefaults.dup_color.G,
progdefaults.dup_color.B);
o->color(
fl_rgb_color(
progdefaults.dup_color.R,
progdefaults.dup_color.G,
progdefaults.dup_color.B));
o->redraw();
progdefaults.changed = true;
}
Fl_Group *tabUserInterface=(Fl_Group *)0;
Fl_Check_Button *btnShowTooltips=(Fl_Check_Button *)0;
static void cb_btnShowTooltips(Fl_Check_Button* o, void*) {
progdefaults.tooltips = o->value();
Fl_Tooltip::enable(progdefaults.tooltips);
progdefaults.changed = true;
}
Fl_Check_Button *chkMenuIcons=(Fl_Check_Button *)0;
static void cb_chkMenuIcons(Fl_Check_Button* o, void*) {
progdefaults.menuicons = o->value();
icons::toggle_icon_labels();
progdefaults.changed = true;
}
Fl_ListBox *listboxScheme=(Fl_ListBox *)0;
static void cb_listboxScheme(Fl_ListBox* o, void*) {
progdefaults.ui_scheme = o->value();
Fl::scheme(progdefaults.ui_scheme.c_str());
progdefaults.changed = true;
}
Fl_Button *bVisibleModes=(Fl_Button *)0;
static void cb_bVisibleModes(Fl_Button* o, void*) {
mode_browser->label(o->label());
mode_browser->callback(toggle_visible_modes);
mode_browser->show(&progdefaults.visible_modes);
progdefaults.changed = true;
}
Fl_ListBox *listbox_language=(Fl_ListBox *)0;
static void cb_listbox_language(Fl_ListBox* o, void*) {
progdefaults.ui_language = o->index();
progdefaults.changed = true;
}
Fl_Check_Button *btn_rx_lowercase=(Fl_Check_Button *)0;
static void cb_btn_rx_lowercase(Fl_Check_Button* o, void*) {
progdefaults.rx_lowercase = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn_tx_lowercase=(Fl_Check_Button *)0;
static void cb_btn_tx_lowercase(Fl_Check_Button* o, void*) {
progdefaults.tx_lowercase = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn_save_config_on_exit=(Fl_Check_Button *)0;
static void cb_btn_save_config_on_exit(Fl_Check_Button* o, void*) {
progdefaults.SaveConfig = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn2_save_macros_on_exit=(Fl_Check_Button *)0;
static void cb_btn2_save_macros_on_exit(Fl_Check_Button* o, void*) {
btn_save_macros_on_exit->value(o->value());
progdefaults.SaveMacros = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn2NagMe=(Fl_Check_Button *)0;
static void cb_btn2NagMe(Fl_Check_Button* o, void*) {
btnNagMe->value(o->value());
progdefaults.NagMe=o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn2_confirm_exit=(Fl_Check_Button *)0;
static void cb_btn2_confirm_exit(Fl_Check_Button* o, void*) {
btn2_confirm_exit->value(o->value());
progdefaults.confirmExit=o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn_check_for_updates=(Fl_Check_Button *)0;
static void cb_btn_check_for_updates(Fl_Check_Button* o, void*) {
progdefaults.check_for_updates = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn_tx_show_timer=(Fl_Check_Button *)0;
static void cb_btn_tx_show_timer(Fl_Check_Button* o, void*) {
progdefaults.show_tx_timer = o->value();
progdefaults.changed = true;
}
Fl_Group *tabLogServer=(Fl_Group *)0;
Fl_Tabs *tabsLog=(Fl_Tabs *)0;
Fl_Check_Button *btnNagMe=(Fl_Check_Button *)0;
static void cb_btnNagMe(Fl_Check_Button* o, void*) {
btn2NagMe->value(o->value());
progdefaults.NagMe=o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnClearOnSave=(Fl_Check_Button *)0;
static void cb_btnClearOnSave(Fl_Check_Button* o, void*) {
progdefaults.ClearOnSave=o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnCallUpperCase=(Fl_Check_Button *)0;
static void cb_btnCallUpperCase(Fl_Check_Button* o, void*) {
progdefaults.calluppercase = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnAutoFillQSO=(Fl_Check_Button *)0;
static void cb_btnAutoFillQSO(Fl_Check_Button* o, void*) {
progdefaults.autofill_qso_fields = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnDateTimeSort=(Fl_Check_Button *)0;
static void cb_btnDateTimeSort(Fl_Check_Button* o, void*) {
progdefaults.sort_date_time_off = o->value();
progdefaults.changed = true;
reload_browser();
}
Fl_Check_Button *btndate_time_force=(Fl_Check_Button *)0;
static void cb_btndate_time_force(Fl_Check_Button* o, void*) {
progdefaults.force_date_time = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnRSTindefault=(Fl_Check_Button *)0;
static void cb_btnRSTindefault(Fl_Check_Button* o, void*) {
progdefaults.RSTin_default = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnRSTdefault=(Fl_Check_Button *)0;
static void cb_btnRSTdefault(Fl_Check_Button* o, void*) {
progdefaults.RSTdefault = o->value();
progdefaults.changed = true;
}
Fl_Input2 *txt_cty_dat_pathname=(Fl_Input2 *)0;
static void cb_txt_cty_dat_pathname(Fl_Input2* o, void*) {
progdefaults.cty_dat_pathname = o->value();
progdefaults.changed = true;
}
Fl_Button *btn_select_cty_dat=(Fl_Button *)0;
static void cb_btn_select_cty_dat(Fl_Button*, void*) {
select_cty_dat_pathname();
}
Fl_Button *btn_default_cty_dat=(Fl_Button *)0;
static void cb_btn_default_cty_dat(Fl_Button*, void*) {
default_cty_dat_pathname();
}
Fl_Button *btn_reload_cty_dat=(Fl_Button *)0;
static void cb_btn_reload_cty_dat(Fl_Button*, void*) {
reload_cty_dat();
}
Fl_Input2 *inpMyPower=(Fl_Input2 *)0;
static void cb_inpMyPower(Fl_Input2* o, void*) {
progdefaults.mytxpower = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnRXClicks=(Fl_Check_Button *)0;
static void cb_btnRXClicks(Fl_Check_Button* o, void*) {
progdefaults.rxtext_clicks_qso_data = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnRXTooltips=(Fl_Check_Button *)0;
static void cb_btnRXTooltips(Fl_Check_Button* o, void*) {
progdefaults.rxtext_tooltips = o->value();
progdefaults.changed = true;
}
Fl_Input2 *inpNonword=(Fl_Input2 *)0;
static void cb_inpNonword(Fl_Input2* o, void*) {
progdefaults.nonwordchars = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnUSunits=(Fl_Check_Button *)0;
static void cb_btnUSunits(Fl_Check_Button* o, void*) {
progdefaults.us_units = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnConnectToMaclogger=(Fl_Check_Button *)0;
static void cb_btnConnectToMaclogger(Fl_Check_Button* o, void*) {
progdefaults.connect_to_maclogger = o->value();
if (progdefaults.connect_to_maclogger == false)
maclogger_close();
else
maclogger_init();
progdefaults.changed = true;
}
Fl_Check_Button *btn_capture_maclogger_radio=(Fl_Check_Button *)0;
static void cb_btn_capture_maclogger_radio(Fl_Check_Button* o, void*) {
progdefaults.capture_maclogger_radio = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn_capture_maclogger_log=(Fl_Check_Button *)0;
static void cb_btn_capture_maclogger_log(Fl_Check_Button* o, void*) {
progdefaults.capture_maclogger_log = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn_capture_maclogger_lookup=(Fl_Check_Button *)0;
static void cb_btn_capture_maclogger_lookup(Fl_Check_Button* o, void*) {
progdefaults.capture_maclogger_lookup = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn_capture_maclogger_spot_tune=(Fl_Check_Button *)0;
static void cb_btn_capture_maclogger_spot_tune(Fl_Check_Button* o, void*) {
progdefaults.capture_maclogger_spot_tune = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn_capture_maclogger_spot_report=(Fl_Check_Button *)0;
static void cb_btn_capture_maclogger_spot_report(Fl_Check_Button* o, void*) {
progdefaults.capture_maclogger_spot_report = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn_enable_maclogger_log=(Fl_Check_Button *)0;
static void cb_btn_enable_maclogger_log(Fl_Check_Button* o, void*) {
progdefaults.enable_maclogger_log = o->value();
progdefaults.changed = true;
}
Fl_Text_Display *txt_UDP_data=(Fl_Text_Display *)0;
Fl_Output *txt_maclogger_log_filename=(Fl_Output *)0;
static void cb_Clear(Fl_Button*, void*) {
txt_UDP_data->buffer()->text("");
}
Fl_Group *tabMBars=(Fl_Group *)0;
Fl_Check_Button *btnMacroMouseWheel=(Fl_Check_Button *)0;
static void cb_btnMacroMouseWheel(Fl_Check_Button* o, void*) {
progdefaults.macro_wheel = o->value();
progdefaults.changed = true;
}
Fl_Counter *cnt_macro_height=(Fl_Counter *)0;
static void cb_cnt_macro_height(Fl_Counter* o, void*) {
progdefaults.macro_height = (int)o->value();
progdefaults.changed = true;
set_macroLabels();
UI_select();
}
Fl_Round_Button *btn_scheme_0=(Fl_Round_Button *)0;
static void cb_btn_scheme_0(Fl_Round_Button*, void*) {
progdefaults.mbar_scheme = 0;
progdefaults.changed = true;
set_macroLabels();
UI_select();
}
Fl_Round_Button *btn_scheme_1=(Fl_Round_Button *)0;
static void cb_btn_scheme_1(Fl_Round_Button*, void*) {
progdefaults.mbar_scheme = 1;
progdefaults.changed = true;
set_macroLabels();
UI_select();
}
Fl_Round_Button *btn_scheme_2=(Fl_Round_Button *)0;
static void cb_btn_scheme_2(Fl_Round_Button*, void*) {
progdefaults.mbar_scheme = 2;
progdefaults.changed = true;
set_macroLabels();
UI_select();
}
Fl_Round_Button *btn_scheme_3=(Fl_Round_Button *)0;
static void cb_btn_scheme_3(Fl_Round_Button*, void*) {
progdefaults.mbar_scheme = 3;
progdefaults.changed = true;
set_macroLabels();
UI_select();
}
Fl_Round_Button *btn_scheme_5=(Fl_Round_Button *)0;
static void cb_btn_scheme_5(Fl_Round_Button*, void*) {
progdefaults.mbar_scheme = 5;
progdefaults.changed = true;
set_macroLabels();
UI_select();
}
Fl_Round_Button *btn_scheme_7=(Fl_Round_Button *)0;
static void cb_btn_scheme_7(Fl_Round_Button*, void*) {
progdefaults.mbar_scheme = 7;
progdefaults.changed = true;
set_macroLabels();
UI_select();
}
Fl_Round_Button *btn_scheme_9=(Fl_Round_Button *)0;
static void cb_btn_scheme_9(Fl_Round_Button*, void*) {
progdefaults.mbar_scheme = 9;
progdefaults.changed = true;
set_macroLabels();
UI_select();
}
Fl_Round_Button *btn_scheme_11=(Fl_Round_Button *)0;
static void cb_btn_scheme_11(Fl_Round_Button*, void*) {
progdefaults.mbar_scheme = 11;
progdefaults.changed = true;
set_macroLabels();
UI_select();
}
Fl_Round_Button *btn_scheme_4=(Fl_Round_Button *)0;
static void cb_btn_scheme_4(Fl_Round_Button*, void*) {
progdefaults.mbar_scheme = 4;
progdefaults.changed = true;
set_macroLabels();
UI_select();
}
Fl_Round_Button *btn_scheme_6=(Fl_Round_Button *)0;
static void cb_btn_scheme_6(Fl_Round_Button*, void*) {
progdefaults.mbar_scheme = 6;
progdefaults.changed = true;
set_macroLabels();
UI_select();
}
Fl_Round_Button *btn_scheme_8=(Fl_Round_Button *)0;
static void cb_btn_scheme_8(Fl_Round_Button*, void*) {
progdefaults.mbar_scheme = 8;
progdefaults.changed = true;
set_macroLabels();
UI_select();
}
Fl_Round_Button *btn_scheme_10=(Fl_Round_Button *)0;
static void cb_btn_scheme_10(Fl_Round_Button*, void*) {
progdefaults.mbar_scheme = 10;
progdefaults.changed = true;
set_macroLabels();
UI_select();
}
Fl_Round_Button *btn_scheme_12=(Fl_Round_Button *)0;
static void cb_btn_scheme_12(Fl_Round_Button*, void*) {
progdefaults.mbar_scheme = 12;
progdefaults.changed = true;
set_macroLabels();
UI_select();
}
Fl_Check_Button *btnUseLastMacro=(Fl_Check_Button *)0;
static void cb_btnUseLastMacro(Fl_Check_Button* o, void*) {
progdefaults.UseLastMacro = o->value();
update_main_title();
progdefaults.changed = true;
}
Fl_Check_Button *btnDisplayMacroFilename=(Fl_Check_Button *)0;
static void cb_btnDisplayMacroFilename(Fl_Check_Button* o, void*) {
progdefaults.DisplayMacroFilename = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn_save_macros_on_exit=(Fl_Check_Button *)0;
static void cb_btn_save_macros_on_exit(Fl_Check_Button* o, void*) {
btn2_save_macros_on_exit->value(o->value());
progdefaults.SaveMacros = o->value();
progdefaults.changed = true;
}
Fl_Group *tabWF_UI=(Fl_Group *)0;
Fl_Check_Button *btnWF_UIrev=(Fl_Check_Button *)0;
static void cb_btnWF_UIrev(Fl_Check_Button* o, void*) {
progdefaults.WF_UIrev = o->value();
progdefaults.changed = true;
WF_UI();
}
Fl_Check_Button *btnWF_UIx1=(Fl_Check_Button *)0;
static void cb_btnWF_UIx1(Fl_Check_Button* o, void*) {
progdefaults.WF_UIx1 = o->value();
progdefaults.changed = true;
WF_UI();
}
Fl_Check_Button *btnWF_UIwfcarrier=(Fl_Check_Button *)0;
static void cb_btnWF_UIwfcarrier(Fl_Check_Button* o, void*) {
progdefaults.WF_UIwfcarrier = o->value();
progdefaults.changed = true;
WF_UI();
}
Fl_Check_Button *btnWF_UIwfshift=(Fl_Check_Button *)0;
static void cb_btnWF_UIwfshift(Fl_Check_Button* o, void*) {
progdefaults.WF_UIwfshift = o->value();
progdefaults.changed = true;
WF_UI();
}
Fl_Check_Button *btnWF_UIwfreflevel=(Fl_Check_Button *)0;
static void cb_btnWF_UIwfreflevel(Fl_Check_Button* o, void*) {
progdefaults.WF_UIwfreflevel = o->value();
progdefaults.changed = true;
WF_UI();
}
Fl_Check_Button *btnWF_UIwfdrop=(Fl_Check_Button *)0;
static void cb_btnWF_UIwfdrop(Fl_Check_Button* o, void*) {
progdefaults.WF_UIwfdrop = o->value();
progdefaults.changed = true;
WF_UI();
}
Fl_Check_Button *btnWF_UIwfampspan=(Fl_Check_Button *)0;
static void cb_btnWF_UIwfampspan(Fl_Check_Button* o, void*) {
progdefaults.WF_UIwfampspan = o->value();
progdefaults.changed = true;
WF_UI();
}
Fl_Check_Button *btnWF_UIwfstore=(Fl_Check_Button *)0;
static void cb_btnWF_UIwfstore(Fl_Check_Button* o, void*) {
progdefaults.WF_UIwfstore = o->value();
progdefaults.changed = true;
WF_UI();
}
Fl_Check_Button *btnWF_UIwfmode=(Fl_Check_Button *)0;
static void cb_btnWF_UIwfmode(Fl_Check_Button* o, void*) {
progdefaults.WF_UIwfmode = o->value();
progdefaults.changed = true;
WF_UI();
}
Fl_Check_Button *btnWF_UIqsy=(Fl_Check_Button *)0;
static void cb_btnWF_UIqsy(Fl_Check_Button* o, void*) {
progdefaults.WF_UIqsy = o->value();
progdefaults.changed = true;
WF_UI();
}
Fl_Check_Button *btnWF_UIxmtlock=(Fl_Check_Button *)0;
static void cb_btnWF_UIxmtlock(Fl_Check_Button* o, void*) {
progdefaults.WF_UIxmtlock = o->value();
progdefaults.changed = true;
WF_UI();
}
Fl_Button *btn_wf_enable_all=(Fl_Button *)0;
static void cb_btn_wf_enable_all(Fl_Button*, void*) {
btnWF_UIrev->value(progdefaults.WF_UIrev = 1);
btnWF_UIwfcarrier->value(progdefaults.WF_UIwfcarrier = 1);
btnWF_UIwfreflevel->value(progdefaults.WF_UIwfreflevel = 1);
btnWF_UIwfampspan->value(progdefaults.WF_UIwfampspan = 1);
btnWF_UIwfmode->value(progdefaults.WF_UIwfmode = 1);
btnWF_UIx1->value(progdefaults.WF_UIx1 = 1);
btnWF_UIwfshift->value(progdefaults.WF_UIwfshift = 1);
btnWF_UIwfdrop->value(progdefaults.WF_UIwfdrop = 1);
btnWF_UIwfstore->value(progdefaults.WF_UIwfstore = 1);
btnWF_UIqsy->value(progdefaults.WF_UIqsy = 1);
btnWF_UIxmtlock->value(progdefaults.WF_UIxmtlock = 1);
progdefaults.changed = true;
WF_UI();
}
Fl_Button *btn_wf_disable_all=(Fl_Button *)0;
static void cb_btn_wf_disable_all(Fl_Button*, void*) {
btnWF_UIrev->value(progdefaults.WF_UIrev = 0);
btnWF_UIwfcarrier->value(progdefaults.WF_UIwfcarrier = 0);
btnWF_UIwfreflevel->value(progdefaults.WF_UIwfreflevel = 0);
btnWF_UIwfampspan->value(progdefaults.WF_UIwfampspan = 0);
btnWF_UIwfmode->value(progdefaults.WF_UIwfmode = 0);
btnWF_UIx1->value(progdefaults.WF_UIx1 = 0);
btnWF_UIwfshift->value(progdefaults.WF_UIwfshift = 0);
btnWF_UIwfdrop->value(progdefaults.WF_UIwfdrop = 0);
btnWF_UIwfstore->value(progdefaults.WF_UIwfstore = 0);
btnWF_UIqsy->value(progdefaults.WF_UIqsy = 0);
btnWF_UIxmtlock->value(progdefaults.WF_UIxmtlock = 0);
progdefaults.changed = true;
WF_UI();
}
Fl_Group *tabColorsFonts=(Fl_Group *)0;
Fl_Tabs *tabsColors=(Fl_Tabs *)0;
Fl_ListBox *listbox_charset_status=(Fl_ListBox *)0;
Fl_Input *RxText=(Fl_Input *)0;
Fl_Button *btnRxColor=(Fl_Button *)0;
static void cb_btnRxColor(Fl_Button*, void*) {
uchar r, g, b;
r = progdefaults.RxColor.R;
g = progdefaults.RxColor.G;
b = progdefaults.RxColor.B;
if (!fl_color_chooser("Rx Color", r, g, b))
return;
progdefaults.RxColor.R = r;
progdefaults.RxColor.G = g;
progdefaults.RxColor.B = b;
RxText->color(fl_rgb_color(r,g,b));
ReceiveText->color(RxText->color());
RxText->redraw();
ReceiveText->redraw();
progdefaults.changed = true;
}
Fl_Button *btnTxColor=(Fl_Button *)0;
static void cb_btnTxColor(Fl_Button*, void*) {
uchar r, g, b;
r = progdefaults.TxColor.R;
g = progdefaults.TxColor.G;
b = progdefaults.TxColor.B;
if (!fl_color_chooser("Tx Color", r, g, b))
return;
progdefaults.TxColor.R = r;
progdefaults.TxColor.G = g;
progdefaults.TxColor.B = b;
TxText->color(fl_rgb_color(r,g,b));
TransmitText->color(TxText->color());
TxText->redraw();
TransmitText->redraw();
progdefaults.changed = true;
}
Fl_Input *TxText=(Fl_Input *)0;
Fl_Button *btnRxFont=(Fl_Button *)0;
static void cb_btnRxFont(Fl_Button*, void*) {
font_browser->fontNumber(progdefaults.RxFontnbr);
font_browser->fontSize(progdefaults.RxFontsize);
font_browser->fontColor(progdefaults.RxFontcolor);
font_browser->fontFilter(Font_Browser::ALL_TYPES);
font_browser->callback(cbRxFontBrowser);
font_browser->show();
}
Fl_Button *btnTxFont=(Fl_Button *)0;
static void cb_btnTxFont(Fl_Button*, void*) {
font_browser->fontNumber(progdefaults.TxFontnbr);
font_browser->fontSize(progdefaults.TxFontsize);
font_browser->fontColor(progdefaults.TxFontcolor);
font_browser->fontFilter(Font_Browser::ALL_TYPES);
font_browser->callback(cbTxFontBrowser);
font_browser->show();
}
Fl_Input *MacroText=(Fl_Input *)0;
Fl_Button *btnMacroEditFont=(Fl_Button *)0;
static void cb_btnMacroEditFont(Fl_Button*, void*) {
font_browser->fontNumber(progdefaults.MacroEditFontnbr);
font_browser->fontSize(progdefaults.MacroEditFontsize);
font_browser->fontFilter(Font_Browser::ALL_TYPES);
font_browser->callback(cbMacroEditFontBrowser);
font_browser->show();
}
Fl_Button *btnXMIT=(Fl_Button *)0;
static void cb_btnXMIT(Fl_Button*, void*) {
choose_color(progdefaults.XMITcolor);
btnXMIT->color( progdefaults.XMITcolor );
btnXMIT->redraw();
TransmitText->setFontColor(progdefaults.XMITcolor, FTextBase::XMIT);
ReceiveText->setFontColor(progdefaults.XMITcolor, FTextBase::XMIT);
progdefaults.changed = true;
}
Fl_Button *btnCTRL=(Fl_Button *)0;
static void cb_btnCTRL(Fl_Button*, void*) {
choose_color(progdefaults.CTRLcolor);
btnCTRL->color( progdefaults.CTRLcolor );
btnCTRL->redraw();
TransmitText->setFontColor(progdefaults.CTRLcolor, FTextBase::CTRL);
ReceiveText->setFontColor(progdefaults.CTRLcolor, FTextBase::CTRL);
progdefaults.changed = true;
}
Fl_Button *btnSKIP=(Fl_Button *)0;
static void cb_btnSKIP(Fl_Button*, void*) {
choose_color(progdefaults.SKIPcolor);
btnSKIP->color( progdefaults.SKIPcolor );
btnSKIP->redraw();
TransmitText->setFontColor(progdefaults.SKIPcolor, FTextBase::SKIP);
ReceiveText->setFontColor(progdefaults.SKIPcolor, FTextBase::SKIP);
progdefaults.changed = true;
}
Fl_Button *btnALTR=(Fl_Button *)0;
static void cb_btnALTR(Fl_Button*, void*) {
choose_color(progdefaults.ALTRcolor);
btnALTR->color( progdefaults.ALTRcolor );
btnALTR->redraw();
TransmitText->setFontColor(progdefaults.ALTRcolor, FTextBase::ALTR);
ReceiveText->setFontColor(progdefaults.ALTRcolor, FTextBase::ALTR);
progdefaults.changed = true;
}
Fl_Button *btnSEL=(Fl_Button *)0;
static void cb_btnSEL(Fl_Button*, void*) {
choose_color(progdefaults.RxTxSelectcolor);
btnSEL->color( progdefaults.RxTxSelectcolor );
btnSEL->redraw();
ReceiveText->color(
fl_rgb_color(
progdefaults.RxColor.R,
progdefaults.RxColor.G,
progdefaults.RxColor.B),
progdefaults.RxTxSelectcolor);
TransmitText->color(
fl_rgb_color(
progdefaults.TxColor.R,
progdefaults.TxColor.G,
progdefaults.TxColor.B),
progdefaults.RxTxSelectcolor);
progdefaults.changed = true;
}
Fl_Button *btnNoTextColor=(Fl_Button *)0;
static void cb_btnNoTextColor(Fl_Button*, void*) {
uchar r, g, b;
Fl_Color clr = FL_BACKGROUND2_COLOR;
Fl::get_color(clr, r, g, b);
progdefaults.TxFontcolor = FL_BLACK;
progdefaults.RxFontcolor = FL_BLACK;
progdefaults.XMITcolor = FL_RED;
progdefaults.CTRLcolor = FL_DARK_GREEN;
progdefaults.SKIPcolor = FL_BLUE;
progdefaults.ALTRcolor = FL_DARK_MAGENTA;
btnXMIT->color(progdefaults.XMITcolor);
btnCTRL->color(progdefaults.CTRLcolor);
btnSKIP->color(progdefaults.SKIPcolor);
btnALTR->color(progdefaults.ALTRcolor);
btnXMIT->redraw();
btnCTRL->redraw();
btnSKIP->redraw();
btnALTR->redraw();
progdefaults.RxColor.R = r;
progdefaults.RxColor.G = g;
progdefaults.RxColor.B = b;
clr = fl_rgb_color(r,g,b);
RxText->color(clr);
RxText->textcolor(progdefaults.RxFontcolor);
RxText->redraw();
ReceiveText->color(clr);
ReceiveText->setFontColor(progdefaults.RxFontcolor, FTextBase::RECV);
ReceiveText->setFontColor(progdefaults.XMITcolor, FTextBase::XMIT);
ReceiveText->setFontColor(progdefaults.CTRLcolor, FTextBase::CTRL);
ReceiveText->setFontColor(progdefaults.SKIPcolor, FTextBase::SKIP);
ReceiveText->setFontColor(progdefaults.ALTRcolor, FTextBase::ALTR);
ReceiveText->redraw();
progdefaults.TxColor.R = r;
progdefaults.TxColor.G = g;
progdefaults.TxColor.B = b;
TxText->color(clr);
TxText->textcolor(progdefaults.TxFontcolor);
TxText->redraw();
TransmitText->color(clr);
TransmitText->setFontColor(progdefaults.TxFontcolor, FTextBase::RECV);
TransmitText->setFontColor(progdefaults.XMITcolor, FTextBase::XMIT);
TransmitText->setFontColor(progdefaults.CTRLcolor, FTextBase::CTRL);
TransmitText->setFontColor(progdefaults.SKIPcolor, FTextBase::SKIP);
TransmitText->setFontColor(progdefaults.ALTRcolor, FTextBase::ALTR);
TransmitText->redraw();
progdefaults.changed = true;
}
Fl_Button *btnTextDefaults=(Fl_Button *)0;
static void cb_btnTextDefaults(Fl_Button*, void*) {
uchar r, g, b;
Fl_Color clr;
progdefaults.TxFontcolor = FL_BLACK;
progdefaults.RxFontcolor = FL_BLACK;
progdefaults.XMITcolor = FL_RED;
progdefaults.CTRLcolor = FL_DARK_GREEN;
progdefaults.SKIPcolor = FL_BLUE;
progdefaults.ALTRcolor = FL_DARK_MAGENTA;
btnXMIT->color(progdefaults.XMITcolor);
btnCTRL->color(progdefaults.CTRLcolor);
btnSKIP->color(progdefaults.SKIPcolor);
btnALTR->color(progdefaults.ALTRcolor);
btnXMIT->redraw();
btnCTRL->redraw();
btnSKIP->redraw();
btnALTR->redraw();
r = 255; g = 242; b = 190;
progdefaults.RxColor.R = r;
progdefaults.RxColor.G = g;
progdefaults.RxColor.B = b;
clr = fl_rgb_color(r,g,b);
RxText->color(clr);
RxText->textcolor(progdefaults.RxFontcolor);
RxText->redraw();
ReceiveText->color(clr);
ReceiveText->setFontColor(progdefaults.RxFontcolor, FTextBase::RECV);
ReceiveText->setFontColor(progdefaults.XMITcolor, FTextBase::XMIT);
ReceiveText->setFontColor(progdefaults.CTRLcolor, FTextBase::CTRL);
ReceiveText->setFontColor(progdefaults.SKIPcolor, FTextBase::SKIP);
ReceiveText->setFontColor(progdefaults.ALTRcolor, FTextBase::ALTR);
ReceiveText->redraw();
r = 200; g = 235; b = 255;
progdefaults.TxColor.R = r;
progdefaults.TxColor.G = g;
progdefaults.TxColor.B = b;
clr = fl_rgb_color(r,g,b);
TxText->color(clr);
TxText->textcolor(progdefaults.TxFontcolor);
TxText->redraw();
TransmitText->color(clr);
TransmitText->setFontColor(progdefaults.TxFontcolor, FTextBase::RECV);
TransmitText->setFontColor(progdefaults.XMITcolor, FTextBase::XMIT);
TransmitText->setFontColor(progdefaults.CTRLcolor, FTextBase::CTRL);
TransmitText->setFontColor(progdefaults.SKIPcolor, FTextBase::SKIP);
TransmitText->setFontColor(progdefaults.ALTRcolor, FTextBase::ALTR);
TransmitText->redraw();
progdefaults.changed = true;
}
Fl_Check_Button *btn_show_all_codes=(Fl_Check_Button *)0;
static void cb_btn_show_all_codes(Fl_Check_Button* o, void*) {
progdefaults.show_all_codes=o->value();
progdefaults.changed = true;
}
Fl_Box *FDdisplay=(Fl_Box *)0;
Fl_Button *btn_freq_control_font=(Fl_Button *)0;
static void cb_btn_freq_control_font(Fl_Button*, void*) {
font_browser->fontNumber(progdefaults.FreqControlFontnbr);
font_browser->fontSize(14);
font_browser->fontColor(FL_FOREGROUND_COLOR);
font_browser->fontFilter(Font_Browser::FIXED_WIDTH);
font_browser->fontFilter(Font_Browser::ALL_TYPES);
font_browser->callback(cbFreqControlFontBrowser);
font_browser->show();
}
Fl_Button *btnBackgroundColor=(Fl_Button *)0;
static void cb_btnBackgroundColor(Fl_Button*, void*) {
uchar r, g, b;
r = progdefaults.FDbackground.R;
g = progdefaults.FDbackground.G;
b = progdefaults.FDbackground.B;
if (!fl_color_chooser("Background", r, g, b))
return;
progdefaults.FDbackground.R = r;
progdefaults.FDbackground.G = g;
progdefaults.FDbackground.B = b;
FDdisplay->color(fl_rgb_color(r,g,b));
FDdisplay->redraw();
if (qsoFreqDisp) {
qsoFreqDisp->SetONOFFCOLOR(
fl_rgb_color( progdefaults.FDforeground.R,
progdefaults.FDforeground.G,
progdefaults.FDforeground.B),
fl_rgb_color( progdefaults.FDbackground.R,
progdefaults.FDbackground.G,
progdefaults.FDbackground.B));
qsoFreqDisp->redraw();
}
progdefaults.changed = true;
}
Fl_Button *btnForegroundColor=(Fl_Button *)0;
static void cb_btnForegroundColor(Fl_Button*, void*) {
uchar r, g, b;
r = progdefaults.FDforeground.R;
g = progdefaults.FDforeground.G;
b = progdefaults.FDforeground.B;
if (!fl_color_chooser("Foreground", r, g, b))
return;
progdefaults.FDforeground.R = r;
progdefaults.FDforeground.G = g;
progdefaults.FDforeground.B = b;
FDdisplay->labelcolor(fl_rgb_color(r,g,b));
FDdisplay->redraw();
if (qsoFreqDisp) {
qsoFreqDisp->SetONOFFCOLOR(
fl_rgb_color( progdefaults.FDforeground.R,
progdefaults.FDforeground.G,
progdefaults.FDforeground.B),
fl_rgb_color( progdefaults.FDbackground.R,
progdefaults.FDbackground.G,
progdefaults.FDbackground.B));
qsoFreqDisp->redraw();
}
progdefaults.changed = true;
}
Fl_Button *btnFD_SystemColor=(Fl_Button *)0;
static void cb_btnFD_SystemColor(Fl_Button*, void*) {
uchar r, g, b;
Fl_Color clr = FL_BACKGROUND2_COLOR;
Fl::get_color(clr, r, g, b);
progdefaults.FDbackground.R = r;
progdefaults.FDbackground.G = g;
progdefaults.FDbackground.B = b;
FDdisplay->color(clr);
clr = FL_FOREGROUND_COLOR;
Fl::get_color(clr, r, g, b);
FDdisplay->labelcolor(clr);
FDdisplay->redraw();
progdefaults.FDforeground.R = r;
progdefaults.FDforeground.G = g;
progdefaults.FDforeground.B = b;
if (qsoFreqDisp) {
qsoFreqDisp->SetONOFFCOLOR(
fl_rgb_color( progdefaults.FDforeground.R,
progdefaults.FDforeground.G,
progdefaults.FDforeground.B),
fl_rgb_color( progdefaults.FDbackground.R,
progdefaults.FDbackground.G,
progdefaults.FDbackground.B));
qsoFreqDisp->redraw();
}
progdefaults.changed = true;
}
Fl_Button *btnSmeter_bg_color=(Fl_Button *)0;
static void cb_btnSmeter_bg_color(Fl_Button*, void*) {
uchar r, g, b;
r = progdefaults.Smeter_bg_color.R;
g = progdefaults.Smeter_bg_color.G;
b = progdefaults.Smeter_bg_color.B;
if (!fl_color_chooser("Background", r, g, b))
return;
progdefaults.Smeter_bg_color.R = r;
progdefaults.Smeter_bg_color.G = g;
progdefaults.Smeter_bg_color.B = b;
set_smeter_colors();
progdefaults.changed = true;
}
Fl_Button *btnSmeter_scale_color=(Fl_Button *)0;
static void cb_btnSmeter_scale_color(Fl_Button*, void*) {
uchar r, g, b;
r = progdefaults.Smeter_scale_color.R;
g = progdefaults.Smeter_scale_color.G;
b = progdefaults.Smeter_scale_color.B;
if (!fl_color_chooser("Scale", r, g, b))
return;
progdefaults.Smeter_scale_color.R = r;
progdefaults.Smeter_scale_color.G = g;
progdefaults.Smeter_scale_color.B = b;
set_smeter_colors();
progdefaults.changed = true;
}
Fl_Button *btnSmeter_meter_color=(Fl_Button *)0;
static void cb_btnSmeter_meter_color(Fl_Button*, void*) {
uchar r, g, b;
r = progdefaults.Smeter_meter_color.R;
g = progdefaults.Smeter_meter_color.G;
b = progdefaults.Smeter_meter_color.B;
if (!fl_color_chooser("Meter", r, g, b))
return;
progdefaults.Smeter_meter_color.R = r;
progdefaults.Smeter_meter_color.G = g;
progdefaults.Smeter_meter_color.B = b;
set_smeter_colors();
progdefaults.changed = true;
}
Fl_Button *btnPWR_bg_color=(Fl_Button *)0;
static void cb_btnPWR_bg_color(Fl_Button*, void*) {
uchar r, g, b;
r = progdefaults.PWRmeter_bg_color.R;
g = progdefaults.PWRmeter_bg_color.G;
b = progdefaults.PWRmeter_bg_color.B;
if (!fl_color_chooser("Background", r, g, b))
return;
progdefaults.PWRmeter_bg_color.R = r;
progdefaults.PWRmeter_bg_color.G = g;
progdefaults.PWRmeter_bg_color.B = b;
set_smeter_colors();
progdefaults.changed = true;
}
Fl_Button *btnPWR_scale_color=(Fl_Button *)0;
static void cb_btnPWR_scale_color(Fl_Button*, void*) {
uchar r, g, b;
r = progdefaults.PWRmeter_scale_color.R;
g = progdefaults.PWRmeter_scale_color.G;
b = progdefaults.PWRmeter_scale_color.B;
if (!fl_color_chooser("Scale", r, g, b))
return;
progdefaults.PWRmeter_scale_color.R = r;
progdefaults.PWRmeter_scale_color.G = g;
progdefaults.PWRmeter_scale_color.B = b;
set_smeter_colors();
progdefaults.changed = true;
}
Fl_Button *btnPWR_meter_Color=(Fl_Button *)0;
static void cb_btnPWR_meter_Color(Fl_Button*, void*) {
uchar r, g, b;
r = progdefaults.PWRmeter_meter_color.R;
g = progdefaults.PWRmeter_meter_color.G;
b = progdefaults.PWRmeter_meter_color.B;
if (!fl_color_chooser("Meter", r, g, b))
return;
progdefaults.PWRmeter_meter_color.R = r;
progdefaults.PWRmeter_meter_color.G = g;
progdefaults.PWRmeter_meter_color.B = b;
set_smeter_colors();
progdefaults.changed = true;
}
Fl_ListBox *listboxPWRselect=(Fl_ListBox *)0;
static void cb_listboxPWRselect(Fl_ListBox* o, void*) {
progdefaults.PWRselect = o->index();
set_smeter_colors();
progdefaults.changed = true;
}
Fl_Output *LOGGINGdisplay=(Fl_Output *)0;
Fl_Button *btnLOGGING_color=(Fl_Button *)0;
static void cb_btnLOGGING_color(Fl_Button*, void*) {
uchar r, g, b;
Fl::get_color(progdefaults.LOGGINGcolor, r, g, b);
if (!fl_color_chooser("Background", r, g, b))
return;
progdefaults.LOGGINGcolor = fl_rgb_color(r, g, b);
LOGGINGdisplay->color(progdefaults.LOGGINGcolor);
LOGGINGdisplay->redraw();
LOGGING_colors_font();
progdefaults.changed = true;
}
Fl_Button *btn_LOGGING_font=(Fl_Button *)0;
static void cb_btn_LOGGING_font(Fl_Button*, void*) {
font_browser->fontNumber(progdefaults.LOGGINGtextfont);
font_browser->fontSize(progdefaults.LOGGINGtextsize);
font_browser->fontColor(progdefaults.LOGGINGtextcolor);
font_browser->fontFilter(Font_Browser::ALL_TYPES);
font_browser->callback(cbLOGGINGFontBrowser);
font_browser->show();
}
Fl_Button *btnLOGGINGdefault_colors_font=(Fl_Button *)0;
static void cb_btnLOGGINGdefault_colors_font(Fl_Button*, void*) {
progdefaults.LOGGINGcolor = FL_BACKGROUND2_COLOR;
progdefaults.LOGGINGtextfont = (Fl_Font)0;
progdefaults.LOGGINGtextsize = 12;
progdefaults.LOGGINGtextcolor = FL_BLACK;
LOGGINGdisplay->color(progdefaults.LOGGINGcolor);
LOGGINGdisplay->textsize(progdefaults.LOGGINGtextsize);
LOGGINGdisplay->textcolor(progdefaults.LOGGINGtextcolor);
LOGGINGdisplay->textfont(progdefaults.LOGGINGtextfont);
LOGGINGdisplay->redraw();
LOGGING_colors_font();
progdefaults.changed = true;
}
Fl_Output *LOGBOOKdisplay=(Fl_Output *)0;
Fl_Button *btnLOGBOOK_color=(Fl_Button *)0;
static void cb_btnLOGBOOK_color(Fl_Button*, void*) {
uchar r, g, b;
Fl::get_color(progdefaults.LOGBOOKcolor, r, g, b);
if (!fl_color_chooser("Background", r, g, b))
return;
progdefaults.LOGBOOKcolor = fl_rgb_color(r, g, b);
LOGBOOKdisplay->color(progdefaults.LOGBOOKcolor);
LOGBOOKdisplay->redraw();
LOGBOOK_colors_font();
progdefaults.changed = true;
}
Fl_Button *btn_LOGBOOK_font=(Fl_Button *)0;
static void cb_btn_LOGBOOK_font(Fl_Button*, void*) {
font_browser->fontNumber(progdefaults.LOGBOOKtextfont);
font_browser->fontSize(progdefaults.LOGBOOKtextsize);
font_browser->fontColor(progdefaults.LOGBOOKtextcolor);
font_browser->fontFilter(Font_Browser::ALL_TYPES);
font_browser->callback(cbLOGBOOKFontBrowser);
font_browser->show();
}
Fl_Button *btnLOGBOOKdefault_colors_font=(Fl_Button *)0;
static void cb_btnLOGBOOKdefault_colors_font(Fl_Button*, void*) {
progdefaults.LOGBOOKcolor = FL_BACKGROUND2_COLOR;
progdefaults.LOGBOOKtextfont = (Fl_Font)0;
progdefaults.LOGBOOKtextsize = 12;
progdefaults.LOGBOOKtextcolor = FL_BLACK;
LOGBOOKdisplay->color(progdefaults.LOGBOOKcolor);
LOGBOOKdisplay->textsize(progdefaults.LOGBOOKtextsize);
LOGBOOKdisplay->textcolor(progdefaults.LOGBOOKtextcolor);
LOGBOOKdisplay->textfont(progdefaults.LOGBOOKtextfont);
LOGBOOKdisplay->redraw();
LOGBOOK_colors_font();
progdefaults.changed = true;
}
Fl_Check_Button *btnUseGroupColors=(Fl_Check_Button *)0;
static void cb_btnUseGroupColors(Fl_Check_Button* o, void*) {
progdefaults.useGroupColors = o->value();
colorize_macros();
progdefaults.changed = true;
}
Fl_Button *btnGroup1=(Fl_Button *)0;
static void cb_btnGroup1(Fl_Button* o, void*) {
uchar r, g, b;
r = progdefaults.btnGroup1.R;
g = progdefaults.btnGroup1.G;
b = progdefaults.btnGroup1.B;
if (fl_color_chooser("Group 1", r, g, b) == 0)
return;
progdefaults.btnGroup1.R = r;
progdefaults.btnGroup1.G = g;
progdefaults.btnGroup1.B = b;
o->color(fl_rgb_color(r,g,b));
colorize_macros();
progdefaults.changed = true;
}
Fl_Button *btnGroup2=(Fl_Button *)0;
static void cb_btnGroup2(Fl_Button* o, void*) {
uchar r, g, b;
r = progdefaults.btnGroup2.R;
g = progdefaults.btnGroup2.G;
b = progdefaults.btnGroup2.B;
if (fl_color_chooser("Group 2", r, g, b) == 0)
return;
progdefaults.btnGroup2.R = r;
progdefaults.btnGroup2.G = g;
progdefaults.btnGroup2.B = b;
o->color(fl_rgb_color(r,g,b));
colorize_macros();
progdefaults.changed = true;
}
Fl_Button *btnGroup3=(Fl_Button *)0;
static void cb_btnGroup3(Fl_Button* o, void*) {
uchar r, g, b;
r = progdefaults.btnGroup3.R;
g = progdefaults.btnGroup3.G;
b = progdefaults.btnGroup3.B;
if (fl_color_chooser("Group 3", r, g, b) == 0)
return;
progdefaults.btnGroup3.R = r;
progdefaults.btnGroup3.G = g;
progdefaults.btnGroup3.B = b;
o->color(fl_rgb_color(r,g,b));
colorize_macros();
progdefaults.changed = true;
}
Fl_Button *btnFkeyDEfaults=(Fl_Button *)0;
static void cb_btnFkeyDEfaults(Fl_Button*, void*) {
uchar r, g, b;
Fl_Color clr;
r = 80; g = 144; b = 144;
clr = fl_rgb_color(r,g,b);
btnGroup1->color(clr);
progdefaults.btnGroup1.R = r;
progdefaults.btnGroup1.G = g;
progdefaults.btnGroup1.B = b;
r = 144; g = 80; b = 80;
clr = fl_rgb_color(r,g,b);
btnGroup2->color(clr);
progdefaults.btnGroup2.R = r;
progdefaults.btnGroup2.G = g;
progdefaults.btnGroup2.B = b;
r = 80; g = 80; b = 144;
clr = fl_rgb_color(r,g,b);
btnGroup3->color(clr);
progdefaults.btnGroup3.R = r;
progdefaults.btnGroup3.G = g;
progdefaults.btnGroup3.B = b;
progdefaults.MacroBtnFontcolor = FL_BLACK;
progdefaults.MacroBtnFontnbr = FL_HELVETICA;
progdefaults.MacroBtnFontsize = 12;
btnGroup1->labelcolor(progdefaults.MacroBtnFontcolor);
btnGroup2->labelcolor(progdefaults.MacroBtnFontcolor);
btnGroup3->labelcolor(progdefaults.MacroBtnFontcolor);
btnGroup1->labelfont(progdefaults.MacroBtnFontnbr);
btnGroup2->labelfont(progdefaults.MacroBtnFontnbr);
btnGroup3->labelfont(progdefaults.MacroBtnFontnbr);
btnGroup1->labelsize(progdefaults.MacroBtnFontsize);
btnGroup2->labelsize(progdefaults.MacroBtnFontsize);
btnGroup3->labelsize(progdefaults.MacroBtnFontsize);
btnGroup1->redraw_label();
btnGroup2->redraw_label();
btnGroup3->redraw_label();
colorize_macros();
progdefaults.changed = true;
}
Fl_Button *btnMacroBtnFont=(Fl_Button *)0;
static void cb_btnMacroBtnFont(Fl_Button*, void*) {
font_browser->fontNumber(progdefaults.MacroBtnFontnbr);
font_browser->fontSize(progdefaults.MacroBtnFontsize);
font_browser->fontColor(progdefaults.MacroBtnFontcolor);
font_browser->fontFilter(Font_Browser::ALL_TYPES);
font_browser->callback(cbMacroBtnFontBrowser);
font_browser->show();
}
Fl_Button *btnTabColor=(Fl_Button *)0;
static void cb_btnTabColor(Fl_Button*, void*) {
progdefaults.TabsColor = fl_show_colormap(progdefaults.TabsColor);
setTabColors();
progdefaults.changed = true;
}
Fl_Button *btnTabDefaultColor=(Fl_Button *)0;
static void cb_btnTabDefaultColor(Fl_Button*, void*) {
progdefaults.TabsColor = FL_BACKGROUND2_COLOR;
setTabColors();
progdefaults.changed = true;
}
Fl_Button *btnSpotColor=(Fl_Button *)0;
static void cb_btnSpotColor(Fl_Button*, void*) {
progdefaults.SpotColor = fl_show_colormap(progdefaults.SpotColor);
spotcolor->color(progdefaults.SpotColor);
spotcolor->redraw();
spot_selection_color();
progdefaults.changed = true;
}
Fl_Button *btnRevColor=(Fl_Button *)0;
static void cb_btnRevColor(Fl_Button*, void*) {
progdefaults.RevColor = fl_show_colormap(progdefaults.RevColor);
revcolor->color(progdefaults.RevColor);
revcolor->redraw();
rev_selection_color();
progdefaults.changed = true;
}
Fl_Button *btnTuneColor=(Fl_Button *)0;
static void cb_btnTuneColor(Fl_Button*, void*) {
progdefaults.TuneColor = fl_show_colormap(progdefaults.TuneColor);
tunecolor->color(progdefaults.TuneColor);
tunecolor->redraw();
tune_selection_color();
progdefaults.changed = true;
}
Fl_Button *btnRxIDColor=(Fl_Button *)0;
static void cb_btnRxIDColor(Fl_Button*, void*) {
progdefaults.RxIDColor = fl_show_colormap(progdefaults.RxIDColor);
rxidcolor->color(progdefaults.RxIDColor);
rxidcolor->redraw();
rxid_selection_color();
progdefaults.changed = true;
}
Fl_Button *btnLkColor=(Fl_Button *)0;
static void cb_btnLkColor(Fl_Button*, void*) {
progdefaults.LkColor = fl_show_colormap(progdefaults.LkColor);
lockcolor->color(progdefaults.LkColor);
lockcolor->redraw();
xmtlock_selection_color();
progdefaults.changed = true;
}
Fl_Button *btnSql1Color=(Fl_Button *)0;
static void cb_btnSql1Color(Fl_Button*, void*) {
progdefaults.Sql1Color = fl_show_colormap(progdefaults.Sql1Color);
sql1color->color(progdefaults.Sql1Color);
sql1color->redraw();
sql_selection_color();
progdefaults.changed = true;
}
Fl_Button *btnXmtColor=(Fl_Button *)0;
static void cb_btnXmtColor(Fl_Button*, void*) {
progdefaults.XmtColor = fl_show_colormap(progdefaults.XmtColor);
xmtcolor->color(progdefaults.XmtColor);
xmtcolor->redraw();
xmtrcv_selection_color();
progdefaults.changed = true;
}
Fl_Button *btnRxIDwideColor=(Fl_Button *)0;
static void cb_btnRxIDwideColor(Fl_Button*, void*) {
progdefaults.RxIDwideColor = fl_show_colormap(progdefaults.RxIDwideColor);
rxidcolorwide->color(progdefaults.RxIDwideColor);
rxidcolorwide->redraw();
rxid_selection_color();
progdefaults.changed = true;
}
Fl_Button *btnAfcColor=(Fl_Button *)0;
static void cb_btnAfcColor(Fl_Button*, void*) {
progdefaults.AfcColor = fl_show_colormap(progdefaults.AfcColor);
afccolor->color(progdefaults.AfcColor);
afccolor->redraw();
afc_selection_color();
progdefaults.changed = true;
}
Fl_Button *btnSql2Color=(Fl_Button *)0;
static void cb_btnSql2Color(Fl_Button*, void*) {
progdefaults.Sql2Color = fl_show_colormap(progdefaults.Sql2Color);
sql2color->color(progdefaults.Sql2Color);
sql2color->redraw();
sql_selection_color();
progdefaults.changed = true;
}
Fl_Button *btnTxIDColor=(Fl_Button *)0;
static void cb_btnTxIDColor(Fl_Button*, void*) {
progdefaults.TxIDColor = fl_show_colormap(progdefaults.TxIDColor);
txidcolor->color(progdefaults.TxIDColor);
txidcolor->redraw();
txid_selection_color();
progdefaults.changed = true;
}
Fl_Box *spotcolor=(Fl_Box *)0;
Fl_Box *revcolor=(Fl_Box *)0;
Fl_Box *tunecolor=(Fl_Box *)0;
Fl_Box *rxidcolor=(Fl_Box *)0;
Fl_Box *lockcolor=(Fl_Box *)0;
Fl_Box *sql1color=(Fl_Box *)0;
Fl_Box *rxidcolorwide=(Fl_Box *)0;
Fl_Box *xmtcolor=(Fl_Box *)0;
Fl_Box *afccolor=(Fl_Box *)0;
Fl_Box *sql2color=(Fl_Box *)0;
Fl_Box *txidcolor=(Fl_Box *)0;
Fl_Button *btnLowSignal=(Fl_Button *)0;
static void cb_btnLowSignal(Fl_Button*, void*) {
progdefaults.LowSignal = fl_show_colormap(progdefaults.LowSignal);
lowcolor->color(progdefaults.LowSignal);
lowcolor->redraw();
progdefaults.changed = true;
}
Fl_Box *lowcolor=(Fl_Box *)0;
Fl_Button *btnHighSignal=(Fl_Button *)0;
static void cb_btnHighSignal(Fl_Button*, void*) {
progdefaults.HighSignal = fl_show_colormap(progdefaults.HighSignal);
highcolor->color(progdefaults.HighSignal);
highcolor->redraw();
progdefaults.changed = true;
}
Fl_Box *highcolor=(Fl_Box *)0;
Fl_Button *btnNormalSignal=(Fl_Button *)0;
static void cb_btnNormalSignal(Fl_Button*, void*) {
progdefaults.NormSignal = fl_show_colormap(progdefaults.NormSignal);
normalcolor->color(progdefaults.NormSignal);
normalcolor->redraw();
progdefaults.changed = true;
}
Fl_Box *normalcolor=(Fl_Box *)0;
Fl_Button *btnOverSignal=(Fl_Button *)0;
static void cb_btnOverSignal(Fl_Button*, void*) {
progdefaults.OverSignal = fl_show_colormap(progdefaults.OverSignal);
overcolor->color(progdefaults.OverSignal);
overcolor->redraw();
progdefaults.changed = true;
}
Fl_Box *overcolor=(Fl_Box *)0;
Fl_Group *tab_touch=(Fl_Group *)0;
Fl_Choice *sel_lsd=(Fl_Choice *)0;
static void cb_sel_lsd(Fl_Choice* o, void*) {
progdefaults.sel_lsd = o->value();
set_freq_control_lsd();
progdefaults.changed = true;
}
Fl_Check_Button *btn_rxtx_swap=(Fl_Check_Button *)0;
static void cb_btn_rxtx_swap(Fl_Check_Button* o, void*) {
progdefaults.rxtx_swap = o->value();
progdefaults.changed = true;
UI_select();
}
Fl_Group *tabWaterfall=(Fl_Group *)0;
Fl_Tabs *tabsWaterfall=(Fl_Tabs *)0;
colorbox *WF_Palette=(colorbox *)0;
static void cb_WF_Palette(colorbox*, void*) {
progdefaults.changed = true;
}
static void cb_btnColor(Fl_Button*, void*) {
selectColor(0);
progdefaults.changed = true;
}
static void cb_btnColor1(Fl_Button*, void*) {
selectColor(1);
progdefaults.changed = true;
}
static void cb_btnColor2(Fl_Button*, void*) {
selectColor(2);
progdefaults.changed = true;
}
static void cb_btnColor3(Fl_Button*, void*) {
selectColor(3);
progdefaults.changed = true;
}
static void cb_btnColor4(Fl_Button*, void*) {
selectColor(4);
progdefaults.changed = true;
}
static void cb_btnColor5(Fl_Button*, void*) {
selectColor(5);
progdefaults.changed = true;
}
static void cb_btnColor6(Fl_Button*, void*) {
selectColor(6);
progdefaults.changed = true;
}
static void cb_btnColor7(Fl_Button*, void*) {
selectColor(7);
progdefaults.changed = true;
}
Fl_Button *btnColor[9]={(Fl_Button *)0};
static void cb_btnColor8(Fl_Button*, void*) {
selectColor(8);
progdefaults.changed = true;
}
Fl_Button *btnLoadPalette=(Fl_Button *)0;
static void cb_btnLoadPalette(Fl_Button*, void*) {
loadPalette();
progdefaults.changed = true;
}
Fl_Button *btnSavePalette=(Fl_Button *)0;
static void cb_btnSavePalette(Fl_Button*, void*) {
savePalette();
}
Fl_Check_Button *btnUseCursorLines=(Fl_Check_Button *)0;
static void cb_btnUseCursorLines(Fl_Check_Button* o, void*) {
progdefaults.UseCursorLines = o->value();
if (o->value())
btnCursorBWcolor->activate();
else
btnCursorBWcolor->deactivate();
progdefaults.changed = true;
}
Fl_Button *btnCursorBWcolor=(Fl_Button *)0;
static void cb_btnCursorBWcolor(Fl_Button* o, void*) {
if (fl_color_chooser("Cursor BW Lines",
progdefaults.cursorLineRGBI.R,
progdefaults.cursorLineRGBI.G,
progdefaults.cursorLineRGBI.B) ) {
o->color(fl_rgb_color(progdefaults.cursorLineRGBI.R,progdefaults.cursorLineRGBI.G,progdefaults.cursorLineRGBI.B));
o->redraw();
progdefaults.changed = true;
};
}
Fl_Check_Button *btnUseWideCursor=(Fl_Check_Button *)0;
static void cb_btnUseWideCursor(Fl_Check_Button* o, void*) {
progdefaults.UseWideCursor = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnUseCursorCenterLine=(Fl_Check_Button *)0;
static void cb_btnUseCursorCenterLine(Fl_Check_Button* o, void*) {
progdefaults.UseCursorCenterLine = o->value();
progdefaults.changed = true;
}
Fl_Button *btnCursorCenterLineColor=(Fl_Button *)0;
static void cb_btnCursorCenterLineColor(Fl_Button* o, void*) {
if (fl_color_chooser("Cursor Center Line",
progdefaults.cursorCenterRGBI.R,
progdefaults.cursorCenterRGBI.G,
progdefaults.cursorCenterRGBI.B) ) {
o->color(fl_rgb_color(progdefaults.cursorCenterRGBI.R,progdefaults.cursorCenterRGBI.G,progdefaults.cursorCenterRGBI.B));
o->redraw();
progdefaults.changed = true;
};
}
Fl_Check_Button *btnUseWideCenter=(Fl_Check_Button *)0;
static void cb_btnUseWideCenter(Fl_Check_Button* o, void*) {
progdefaults.UseWideCenter = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnUseBWTracks=(Fl_Check_Button *)0;
static void cb_btnUseBWTracks(Fl_Check_Button* o, void*) {
progdefaults.UseBWTracks = o->value();
progdefaults.changed = true;
}
Fl_Button *btnBwTracksColor=(Fl_Button *)0;
static void cb_btnBwTracksColor(Fl_Button* o, void*) {
if (fl_color_chooser("Track Lines",
progdefaults.bwTrackRGBI.R,
progdefaults.bwTrackRGBI.G,
progdefaults.bwTrackRGBI.B) ) {
o->color(fl_rgb_color(progdefaults.bwTrackRGBI.R,progdefaults.bwTrackRGBI.G,progdefaults.bwTrackRGBI.B));
o->redraw();
wf->redraw_marker();
progdefaults.changed = true;
};
}
Fl_Check_Button *btnUseWideTracks=(Fl_Check_Button *)0;
static void cb_btnUseWideTracks(Fl_Check_Button* o, void*) {
progdefaults.UseWideTracks = o->value();
progdefaults.changed = true;
}
Fl_Button *btnNotchColor=(Fl_Button *)0;
static void cb_btnNotchColor(Fl_Button* o, void*) {
if (fl_color_chooser("Notch Indicator",
progdefaults.notchRGBI.R,
progdefaults.notchRGBI.G,
progdefaults.notchRGBI.B) ) {
o->color(fl_rgb_color(progdefaults.notchRGBI.R,progdefaults.notchRGBI.G,progdefaults.notchRGBI.B));
o->redraw();
wf->redraw_marker();
progdefaults.changed = true;
};
}
Fl_Check_Button *chkShowAudioScale=(Fl_Check_Button *)0;
static void cb_chkShowAudioScale(Fl_Check_Button* o, void*) {
progdefaults.wf_audioscale = o->value();
progdefaults.changed = true;
}
Fl_Button *btnWaterfallFont=(Fl_Button *)0;
static void cb_btnWaterfallFont(Fl_Button*, void*) {
font_browser->fontNumber(progdefaults.WaterfallFontnbr);
font_browser->fontSize(progdefaults.WaterfallFontsize);
font_browser->fontColor(FL_FOREGROUND_COLOR);
font_browser->fontFilter(Font_Browser::ALL_TYPES);
font_browser->callback((Fl_Callback*)cbWaterfallFontBrowser);
font_browser->show();
}
Fl_Check_Button *btnViewXmtSignal=(Fl_Check_Button *)0;
static void cb_btnViewXmtSignal(Fl_Check_Button* o, void*) {
progdefaults.viewXmtSignal=o->value();
progdefaults.changed = true;
}
Fl_Value_Slider2 *valTxMonitorLevel=(Fl_Value_Slider2 *)0;
static void cb_valTxMonitorLevel(Fl_Value_Slider2* o, void*) {
progdefaults.TxMonitorLevel = o->value();
progdefaults.changed = true;
}
Fl_Counter2 *cntLowFreqCutoff=(Fl_Counter2 *)0;
static void cb_cntLowFreqCutoff(Fl_Counter2* o, void*) {
progdefaults.LowFreqCutoff=(int)(o->value());
progdefaults.changed = true;
setwfrange();
}
Fl_Check_Button *btnWFaveraging=(Fl_Check_Button *)0;
static void cb_btnWFaveraging(Fl_Check_Button* o, void*) {
progdefaults.WFaveraging = o->value();
progdefaults.changed = true;
}
Fl_ListBox *listboxFFTPrefilter=(Fl_ListBox *)0;
static void cb_listboxFFTPrefilter(Fl_ListBox* o, void*) {
progdefaults.wfPreFilter = o->index();
progdefaults.changed = true;
}
Fl_Counter2 *cntrWfwidth=(Fl_Counter2 *)0;
static void cb_cntrWfwidth(Fl_Counter2* o, void*) {
progdefaults.HighFreqCutoff = (int)o->value();
progdefaults.changed = true;
setwfrange();
}
Fl_Counter2 *wf_latency=(Fl_Counter2 *)0;
static void cb_wf_latency(Fl_Counter2* o, void*) {
progdefaults.wf_latency = (int)o->value();
progdefaults.changed = true;
}
Fl_Counter *cntr_drop_speed=(Fl_Counter *)0;
static void cb_cntr_drop_speed(Fl_Counter* o, void*) {
progdefaults.drop_speed=(int)o->value();
progdefaults.changed=true;
}
Fl_Counter2 *cntrWfheight=(Fl_Counter2 *)0;
static void cb_cntrWfheight(Fl_Counter2* o, void*) {
progdefaults.wfheight = (int)o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnWaterfallHistoryDefault=(Fl_Check_Button *)0;
static void cb_btnWaterfallHistoryDefault(Fl_Check_Button* o, void*) {
progdefaults.WaterfallHistoryDefault = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnWaterfallQSY=(Fl_Check_Button *)0;
static void cb_btnWaterfallQSY(Fl_Check_Button* o, void*) {
progdefaults.WaterfallQSY = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnWaterfallClickInsert=(Fl_Check_Button *)0;
static void cb_btnWaterfallClickInsert(Fl_Check_Button* o, void*) {
progdefaults.WaterfallClickInsert = o->value();
if (progdefaults.WaterfallClickInsert)
inpWaterfallClickText->activate();
else
inpWaterfallClickText->deactivate();
progdefaults.changed = true;
}
Fl_Input2 *inpWaterfallClickText=(Fl_Input2 *)0;
static void cb_inpWaterfallClickText(Fl_Input2* o, void*) {
progdefaults.WaterfallClickText = o->value();
progdefaults.changed = true;
}
Fl_ListBox *listboxWaterfallWheelAction=(Fl_ListBox *)0;
static void cb_listboxWaterfallWheelAction(Fl_ListBox* o, void*) {
progdefaults.WaterfallWheelAction = o->index();
progdefaults.changed = true;
}
Fl_Group *tabModems=(Fl_Group *)0;
Fl_Tabs *tabsModems=(Fl_Tabs *)0;
Fl_Group *tabCW=(Fl_Group *)0;
Fl_Tabs *tabsCW=(Fl_Tabs *)0;
Fl_Value_Slider2 *sldrCWbandwidth=(Fl_Value_Slider2 *)0;
static void cb_sldrCWbandwidth(Fl_Value_Slider2* o, void*) {
progdefaults.CWbandwidth = (int)o->value();
progdefaults.changed = true;
}
Fl_Value_Output *valCWrcvWPM=(Fl_Value_Output *)0;
static void cb_valCWrcvWPM(Fl_Value_Output*, void*) {
progdefaults.changed = true;
}
Fl_Progress *prgsCWrcvWPM=(Fl_Progress *)0;
Fl_Check_Button *btnCWuseSOMdecoding=(Fl_Check_Button *)0;
static void cb_btnCWuseSOMdecoding(Fl_Check_Button* o, void*) {
progdefaults.CWuseSOMdecoding = o->value();
progdefaults.changed = true;
}
Fl_Counter2 *cntLower=(Fl_Counter2 *)0;
static void cb_cntLower(Fl_Counter2* o, void*) {
progdefaults.CWlower = o->value();
progdefaults.changed = true;
}
Fl_Counter2 *cntUpper=(Fl_Counter2 *)0;
static void cb_cntUpper(Fl_Counter2* o, void*) {
progdefaults.CWupper = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnCWmfilt=(Fl_Check_Button *)0;
static void cb_btnCWmfilt(Fl_Check_Button* o, void*) {
progdefaults.CWmfilt = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnCWuseFFTfilter=(Fl_Check_Button *)0;
static void cb_btnCWuseFFTfilter(Fl_Check_Button* o, void*) {
progdefaults.CWuse_fft_filter = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnCWrcvTrack=(Fl_Check_Button *)0;
static void cb_btnCWrcvTrack(Fl_Check_Button* o, void*) {
progdefaults.CWtrack = o->value();
progdefaults.changed = true;
}
Fl_Counter2 *cntCWrange=(Fl_Counter2 *)0;
static void cb_cntCWrange(Fl_Counter2* o, void*) {
progdefaults.CWrange = (int)o->value();
progdefaults.changed = true;
}
Fl_Value_Slider2 *sldrCWxmtWPM=(Fl_Value_Slider2 *)0;
static void cb_sldrCWxmtWPM(Fl_Value_Slider2* o, void*) {
progdefaults.CWspeed = (int)o->value();
cntCW_WPM->value(progdefaults.CWspeed);
progdefaults.changed = true;
sync_cw_parameters();
}
Fl_Counter2 *cntCWdefWPM=(Fl_Counter2 *)0;
static void cb_cntCWdefWPM(Fl_Counter2* o, void*) {
progdefaults.defCWspeed = (int)o->value();
progdefaults.changed = true;
}
Fl_Counter *cntCWlowerlimit=(Fl_Counter *)0;
static void cb_cntCWlowerlimit(Fl_Counter* o, void*) {
progdefaults.CWlowerlimit = (int)o->value();
progdefaults.changed = true;
sldrCWxmtWPM->minimum(progdefaults.CWlowerlimit);
sldrCWxmtWPM->value(progdefaults.CWspeed);
sldrCWxmtWPM->redraw();
cntCWupperlimit->minimum(progdefaults.CWlowerlimit+20);
cntCW_WPM->minimum(progdefaults.CWlowerlimit);
}
Fl_Counter *cntCWupperlimit=(Fl_Counter *)0;
static void cb_cntCWupperlimit(Fl_Counter* o, void*) {
progdefaults.CWupperlimit = (int)o->value();
progdefaults.changed = true;
sldrCWxmtWPM->maximum(progdefaults.CWupperlimit);
sldrCWxmtWPM->value(progdefaults.CWspeed);
sldrCWxmtWPM->redraw();
cntCWlowerlimit->maximum(progdefaults.CWupperlimit-20);
cntCW_WPM->maximum(progdefaults.CWupperlimit);
}
Fl_Value_Slider2 *sldrCWfarnsworth=(Fl_Value_Slider2 *)0;
static void cb_sldrCWfarnsworth(Fl_Value_Slider2* o, void*) {
progdefaults.CWfarnsworth = (int)o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnCWusefarnsworth=(Fl_Check_Button *)0;
static void cb_btnCWusefarnsworth(Fl_Check_Button* o, void*) {
progdefaults.CWusefarnsworth=o->value();
progdefaults.changed = true;
}
Fl_Counter2 *cntCWweight=(Fl_Counter2 *)0;
static void cb_cntCWweight(Fl_Counter2* o, void*) {
progdefaults.CWweight=(int)o->value();
progdefaults.changed = true;
}
Fl_Counter2 *cntCWdash2dot=(Fl_Counter2 *)0;
static void cb_cntCWdash2dot(Fl_Counter2* o, void*) {
progdefaults.CWdash2dot=o->value();
progdefaults.changed = true;
}
Fl_Counter2 *cntCWrisetime=(Fl_Counter2 *)0;
static void cb_cntCWrisetime(Fl_Counter2* o, void*) {
progdefaults.CWrisetime=o->value();
progdefaults.changed = true;
}
Fl_ListBox *i_listboxQSKshape=(Fl_ListBox *)0;
static void cb_i_listboxQSKshape(Fl_ListBox* o, void*) {
progdefaults.QSKshape = o->index();
progdefaults.changed = true;
}
Fl_Check_Button *btnCWnarrow=(Fl_Check_Button *)0;
static void cb_btnCWnarrow(Fl_Check_Button* o, void*) {
progdefaults.CWnarrow = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnCW_bpf_on=(Fl_Check_Button *)0;
static void cb_btnCW_bpf_on(Fl_Check_Button* o, void*) {
progdefaults.CW_bpf_on = o->value();
progdefaults.changed = true;
}
Fl_Counter2 *cntCW_hpf=(Fl_Counter2 *)0;
static void cb_cntCW_hpf(Fl_Counter2* o, void*) {
progdefaults.CW_bpf=o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnQSK=(Fl_Check_Button *)0;
static void cb_btnQSK(Fl_Check_Button* o, void*) {
progdefaults.QSK = o->value();
btnQSK2->value(o->value());
progdefaults.changed = true;
if (o->value()) {
progdefaults.sig_on_right_channel = false;
chkAudioStereoOut->value(0);
progdefaults.PTTrightchannel = false;
btnPTTrightchannel->value(0);
};
}
Fl_Counter2 *cntPreTiming=(Fl_Counter2 *)0;
static void cb_cntPreTiming(Fl_Counter2* o, void*) {
progdefaults.CWpre=o->value();
progdefaults.changed = true;
}
Fl_Counter2 *cntPostTiming=(Fl_Counter2 *)0;
static void cb_cntPostTiming(Fl_Counter2* o, void*) {
progdefaults.CWpost=o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnQSKadjust=(Fl_Check_Button *)0;
static void cb_btnQSKadjust(Fl_Check_Button* o, void*) {
progdefaults.QSKadjust = o->value();
}
Fl_ListBox *i_listbox_test_char=(Fl_ListBox *)0;
static void cb_i_listbox_test_char(Fl_ListBox* o, void*) {
progdefaults.TestChar = o->index();
}
Fl_Check_Button *btnCW_use_paren=(Fl_Check_Button *)0;
static void cb_btnCW_use_paren(Fl_Check_Button* o, void*) {
progdefaults.CW_use_paren=o->value();
progdefaults.changed = true;
}
static void cb_listbox_prosign(Fl_ListBox* o, void*) {
int c = o->index();
for (int i = 0; i < 9; i++)
if (listbox_prosign[i]->index() == c) {
listbox_prosign[i]->index(12);
progdefaults.CW_prosigns[i] = ' ';
}
o->index(c);
char ps[] = "~%&+={}<>[] ";
progdefaults.CW_prosigns[0] = ps[c];
progdefaults.changed = true;
}
static void cb_listbox_prosign1(Fl_ListBox* o, void*) {
int c = o->index();
for (int i = 0; i < 9; i++)
if (listbox_prosign[i]->index() == c) {
listbox_prosign[i]->index(12);
progdefaults.CW_prosigns[i] = ' ';
}
o->index(c);
char ps[] = "~%&+={}<>[] ";
progdefaults.CW_prosigns[1] = ps[c];
progdefaults.changed = true;
}
static void cb_listbox_prosign2(Fl_ListBox* o, void*) {
int c = o->index();
for (int i = 0; i < 9; i++)
if (listbox_prosign[i]->index() == c) {
listbox_prosign[i]->index(12);
progdefaults.CW_prosigns[i] = ' ';
}
o->index(c);
char ps[] = "~%&+={}<>[] ";
progdefaults.CW_prosigns[2] = ps[c];
progdefaults.changed = true;
}
static void cb_listbox_prosign3(Fl_ListBox* o, void*) {
int c = o->index();
for (int i = 0; i < 9; i++)
if (listbox_prosign[i]->index() == c) {
listbox_prosign[i]->index(12);
progdefaults.CW_prosigns[i] = ' ';
}
o->index(c);
char ps[] = "~%&+={}<>[] ";
progdefaults.CW_prosigns[3] = ps[c];
progdefaults.changed = true;
}
static void cb_listbox_prosign4(Fl_ListBox* o, void*) {
int c = o->index();
for (int i = 0; i < 9; i++)
if (listbox_prosign[i]->index() == c) {
listbox_prosign[i]->index(12);
progdefaults.CW_prosigns[i] = ' ';
}
o->index(c);
char ps[] = "~%&+={}<>[] ";
progdefaults.CW_prosigns[4] = ps[c];
progdefaults.changed = true;
}
static void cb_listbox_prosign5(Fl_ListBox* o, void*) {
int c = o->index();
for (int i = 0; i < 9; i++)
if (listbox_prosign[i]->index() == c) {
listbox_prosign[i]->index(12);
progdefaults.CW_prosigns[i] = ' ';
}
o->index(c);
char ps[] = "~%&+={}<>[] ";
progdefaults.CW_prosigns[5] = ps[c];
progdefaults.changed = true;
}
static void cb_listbox_prosign6(Fl_ListBox* o, void*) {
int c = o->index();
for (int i = 0; i < 9; i++)
if (listbox_prosign[i]->index() == c) {
listbox_prosign[i]->index(12);
progdefaults.CW_prosigns[i] = ' ';
}
o->index(c);
char ps[] = "~%&+={}<>[] ";
progdefaults.CW_prosigns[6] = ps[c];
progdefaults.changed = true;
}
static void cb_listbox_prosign7(Fl_ListBox* o, void*) {
int c = o->index();
for (int i = 0; i < 9; i++)
if (listbox_prosign[i]->index() == c) {
listbox_prosign[i]->index(12);
progdefaults.CW_prosigns[i] = ' ';
}
o->index(c);
char ps[] = "~%&+={}<>[] ";
progdefaults.CW_prosigns[7] = ps[c];
progdefaults.changed = true;;
}
Fl_ListBox *listbox_prosign[9]={(Fl_ListBox *)0};
static void cb_listbox_prosign8(Fl_ListBox* o, void*) {
int c = o->index();
for (int i = 0; i < 9; i++)
if (listbox_prosign[i]->index() == c) {
listbox_prosign[i]->index(12);
progdefaults.CW_prosigns[i] = ' ';
}
o->index(c);
char ps[] = "~%&+={}<>[] ";
progdefaults.CW_prosigns[8] = ps[c];
progdefaults.changed = true;
}
Fl_Group *tabDomEX=(Fl_Group *)0;
Fl_Input2 *txtSecondary=(Fl_Input2 *)0;
static void cb_txtSecondary(Fl_Input2* o, void*) {
progdefaults.secText = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *valDominoEX_FILTER=(Fl_Check_Button *)0;
static void cb_valDominoEX_FILTER(Fl_Check_Button* o, void*) {
progdefaults.DOMINOEX_FILTER = o->value();
resetDOMEX();
progdefaults.changed = true;
}
Fl_Counter2 *valDominoEX_BW=(Fl_Counter2 *)0;
static void cb_valDominoEX_BW(Fl_Counter2* o, void*) {
progdefaults.DOMINOEX_BW = o->value();
resetDOMEX();
progdefaults.changed = true;
}
Fl_Check_Button *chkDominoEX_FEC=(Fl_Check_Button *)0;
static void cb_chkDominoEX_FEC(Fl_Check_Button* o, void*) {
progdefaults.DOMINOEX_FEC = o->value();
progdefaults.changed = true;
}
Fl_Value_Slider2 *valDomCWI=(Fl_Value_Slider2 *)0;
static void cb_valDomCWI(Fl_Value_Slider2* o, void*) {
progdefaults.DomCWI = o->value();
progdefaults.changed = true;
}
Fl_Counter2 *valDominoEX_PATHS=(Fl_Counter2 *)0;
static void cb_valDominoEX_PATHS(Fl_Counter2* o, void*) {
progdefaults.DOMINOEX_PATHS = (int)o->value();
progdefaults.changed = true;
}
Fl_Group *tabFeld=(Fl_Group *)0;
Fl_ListBox *listboxHellFont=(Fl_ListBox *)0;
static void cb_listboxHellFont(Fl_ListBox* o, void*) {
progdefaults.feldfontnbr=o->index();
progdefaults.changed = true;
}
Fl_Check_Button *btnBlackboard=(Fl_Check_Button *)0;
static void cb_btnBlackboard(Fl_Check_Button* o, void*) {
progdefaults.HellBlackboard=o->value();
progdefaults.changed = true;
}
Fl_Spinner2 *valHellXmtWidth=(Fl_Spinner2 *)0;
static void cb_valHellXmtWidth(Fl_Spinner2* o, void*) {
progdefaults.HellXmtWidth=(int)o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnHellRcvWidth=(Fl_Check_Button *)0;
static void cb_btnHellRcvWidth(Fl_Check_Button* o, void*) {
progdefaults.HellRcvWidth=o->value();
progdefaults.changed = true;
}
Fl_ListBox *listboxHellPulse=(Fl_ListBox *)0;
static void cb_listboxHellPulse(Fl_ListBox* o, void*) {
progdefaults.HellPulseFast = o->index();
progdefaults.changed = true;
}
Fl_Value_Slider2 *sldrHellBW=(Fl_Value_Slider2 *)0;
static void cb_sldrHellBW(Fl_Value_Slider2*, void*) {
progdefaults.HELL_BW = sldrHellBW->value();
}
Fl_Check_Button *btnFeldHellIdle=(Fl_Check_Button *)0;
static void cb_btnFeldHellIdle(Fl_Check_Button* o, void*) {
progdefaults.HellXmtIdle=o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnHellXmtWidth=(Fl_Check_Button *)0;
static void cb_btnHellXmtWidth(Fl_Check_Button* o, void*) {
progdefaults.HellXmtWidth=o->value();
progdefaults.changed = true;
}
Fl_Group *tabFSQ=(Fl_Group *)0;
Fl_Value_Slider *valhits=(Fl_Value_Slider *)0;
static void cb_valhits(Fl_Value_Slider* o, void*) {
progdefaults.fsqhits=(int)o->value();
progdefaults.changed = true;
}
Fl_Choice *sel_fsq_lpf=(Fl_Choice *)0;
static void cb_sel_fsq_lpf(Fl_Choice* o, void*) {
progdefaults.fsq_img_filter=o->value();
progdefaults.changed = true;
}
Fl_Value_Slider *sldrMovAvg=(Fl_Value_Slider *)0;
static void cb_sldrMovAvg(Fl_Value_Slider* o, void*) {
progdefaults.fsq_movavg = o->value();
progdefaults.changed = true;
}
Fl_Choice *sel_fsq_heard_aging=(Fl_Choice *)0;
static void cb_sel_fsq_heard_aging(Fl_Choice* o, void*) {
progdefaults.fsq_heard_aging=o->value();
progdefaults.changed = true;
}
static void cb_btn_fsqbaud(Fl_Round_Button* o, void*) {
if (o->value() == 1) {
progdefaults.fsqbaud = 2;
btn_fsqbaud[1]->value(0);
btn_fsqbaud[2]->value(0);
btn_fsqbaud[3]->value(0);
}
progdefaults.changed = true;
}
static void cb_btn_fsqbaud1(Fl_Round_Button* o, void*) {
if (o->value() == 1) {
progdefaults.fsqbaud = 3;
btn_fsqbaud[0]->value(0);
btn_fsqbaud[2]->value(0);
btn_fsqbaud[3]->value(0);
}
progdefaults.changed = true;
}
static void cb_btn_fsqbaud2(Fl_Round_Button* o, void*) {
if (o->value() == 1) {
progdefaults.fsqbaud = 4.5;
btn_fsqbaud[0]->value(0);
btn_fsqbaud[1]->value(0);
btn_fsqbaud[3]->value(0);
}
progdefaults.changed = true;
}
Fl_Round_Button *btn_fsqbaud[4]={(Fl_Round_Button *)0};
static void cb_btn_fsqbaud3(Fl_Round_Button* o, void*) {
if (o->value() == 1) {
progdefaults.fsqbaud = 6;
btn_fsqbaud[0]->value(0);
btn_fsqbaud[1]->value(0);
btn_fsqbaud[2]->value(0);
}
progdefaults.changed = true;
}
Fl_Choice *sel_fsq_frequency=(Fl_Choice *)0;
static void cb_sel_fsq_frequency(Fl_Choice* o, void*) {
progdefaults.fsq_frequency=o->value();
progdefaults.changed = true;
}
Fl_Choice *sel_fsq_sounder=(Fl_Choice *)0;
static void cb_sel_fsq_sounder(Fl_Choice* o, void*) {
progdefaults.fsq_sounder=o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn_fsq_lowercase=(Fl_Check_Button *)0;
static void cb_btn_fsq_lowercase(Fl_Check_Button* o, void*) {
progdefaults.fsq_lowercase=o->value();
progdefaults.changed = true;
}
Fl_Counter *cntr_FSQ_time_out=(Fl_Counter *)0;
static void cb_cntr_FSQ_time_out(Fl_Counter* o, void*) {
progdefaults.fsq_time_out = o->value();
progdefaults.changed = true;
}
static void cb_QTC(Fl_Input* o, void*) {
progdefaults.fsqQTCtext = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn_fsq_msg_dt_stamp=(Fl_Check_Button *)0;
static void cb_btn_fsq_msg_dt_stamp(Fl_Check_Button* o, void*) {
progdefaults.add_fsq_msg_dt=o->value();
progdefaults.changed=true;
}
Fl_Output *txtAuditLog=(Fl_Output *)0;
Fl_Light_Button *btn_enable_auditlog=(Fl_Light_Button *)0;
static void cb_btn_enable_auditlog(Fl_Light_Button* o, void*) {
progdefaults.fsq_enable_audit_log = o->value();
progdefaults.changed = true;
}
Fl_Button *btn_select_auditlog=(Fl_Button *)0;
static void cb_btn_select_auditlog(Fl_Button*, void*) {
std::string str = std::string(TempDir);
str.append(progdefaults.fsq_audit_log);
const char *fname = FSEL::saveas("Audit log", "*.txt\t*", str.c_str());
if (fname) {
progdefaults.fsq_audit_log = fl_filename_name(fname);
txtAuditLog->value(progdefaults.fsq_audit_log.c_str());
progdefaults.changed = true;
};
}
Fl_Output *txtHeardLog=(Fl_Output *)0;
Fl_Light_Button *btn_enable_fsq_heard_log=(Fl_Light_Button *)0;
static void cb_btn_enable_fsq_heard_log(Fl_Light_Button* o, void*) {
progdefaults.fsq_enable_heard_log = o->value();
progdefaults.changed = true;
}
Fl_Button *btn_select_fsq_heard_log=(Fl_Button *)0;
static void cb_btn_select_fsq_heard_log(Fl_Button*, void*) {
std::string str = std::string(TempDir);
str.append(progdefaults.fsq_heard_log);
const char *fname = FSEL::saveas("Heard log", "*.txt\t*", str.c_str());
if (fname) {
progdefaults.fsq_heard_log = fl_filename_name(fname);
txtHeardLog->value(progdefaults.fsq_heard_log.c_str());
progdefaults.changed = true;
};
}
Fl_Button *btn_fsq_xmt_color=(Fl_Button *)0;
static void cb_btn_fsq_xmt_color(Fl_Button*, void*) {
choose_color(progdefaults.fsq_xmt_color);
btn_fsq_xmt_color->color( progdefaults.fsq_xmt_color );
btn_fsq_xmt_color->redraw();
fsq_rx_text->setFontColor(progdefaults.fsq_xmt_color, FTextBase::FSQ_TX);
progdefaults.changed = true;
}
Fl_Button *btn_fsq_directed_color=(Fl_Button *)0;
static void cb_btn_fsq_directed_color(Fl_Button*, void*) {
choose_color(progdefaults.fsq_directed_color);
btn_fsq_directed_color->color( progdefaults.fsq_directed_color );
btn_fsq_directed_color->redraw();
fsq_rx_text->setFontColor(progdefaults.fsq_directed_color, FTextBase::FSQ_DIR);
progdefaults.changed = true;
}
Fl_Button *btn_fsq_undirected_color=(Fl_Button *)0;
static void cb_btn_fsq_undirected_color(Fl_Button*, void*) {
choose_color(progdefaults.fsq_undirected_color);
btn_fsq_undirected_color->color( progdefaults.fsq_undirected_color);
btn_fsq_undirected_color->redraw();
fsq_rx_text->setFontColor(progdefaults.fsq_undirected_color, FTextBase::FSQ_UND);
progdefaults.changed = true;
}
Fl_Button *btn_fsq_color_defaults=(Fl_Button *)0;
static void cb_btn_fsq_color_defaults(Fl_Button*, void*) {
progdefaults.fsq_xmt_color = FL_RED;
btn_fsq_xmt_color->color(progdefaults.fsq_xmt_color);
btn_fsq_xmt_color->redraw();
progdefaults.fsq_directed_color = FL_BLUE;
btn_fsq_directed_color->color(progdefaults.fsq_directed_color);
btn_fsq_directed_color->redraw();
progdefaults.fsq_undirected_color = FL_DARK_GREEN;
btn_fsq_undirected_color->color(progdefaults.fsq_undirected_color);
btn_fsq_undirected_color->redraw();
fsq_rx_text->setFontColor(progdefaults.fsq_xmt_color, FTextBase::FSQ_TX);
fsq_rx_text->setFontColor(progdefaults.fsq_directed_color, FTextBase::FSQ_DIR);
fsq_rx_text->setFontColor(progdefaults.fsq_undirected_color, FTextBase::FSQ_UND);
progdefaults.changed = true;
}
Fl_Group *tabIFKP=(Fl_Group *)0;
static void cb_btn_ifkpbaud(Fl_Round_Button* o, void*) {
if (o->value() == 1) {
progdefaults.ifkp_baud = 0;
btn_ifkpbaud[1]->value(0);
btn_ifkpbaud[2]->value(0);
}
progdefaults.changed = true;
}
static void cb_btn_ifkpbaud1(Fl_Round_Button* o, void*) {
if (o->value() == 1) {
progdefaults.ifkp_baud = 1;
btn_ifkpbaud[0]->value(0);
btn_ifkpbaud[2]->value(0);
}
progdefaults.changed = true;
}
Fl_Round_Button *btn_ifkpbaud[3]={(Fl_Round_Button *)0};
static void cb_btn_ifkpbaud2(Fl_Round_Button* o, void*) {
if (o->value() == 1) {
progdefaults.ifkp_baud = 2;
btn_ifkpbaud[0]->value(0);
btn_ifkpbaud[1]->value(0);
}
progdefaults.changed = true;
}
Fl_Check_Button *btn_ifkp_lowercase=(Fl_Check_Button *)0;
static void cb_btn_ifkp_lowercase(Fl_Check_Button* o, void*) {
progdefaults.ifkp_lowercase=o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn_ifkp_lowercase_call=(Fl_Check_Button *)0;
static void cb_btn_ifkp_lowercase_call(Fl_Check_Button* o, void*) {
progdefaults.ifkp_lowercase_call=o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn_ifkp_freqlock=(Fl_Check_Button *)0;
static void cb_btn_ifkp_freqlock(Fl_Check_Button* o, void*) {
progdefaults.ifkp_freqlock=o->value();
if (active_modem == ifkp_modem &&
o->value() )
active_modem->set_freq(1500);
progdefaults.changed = true;
}
Fl_Output *txt_ifkp_audit_log=(Fl_Output *)0;
Fl_Light_Button *btn_enable_ifkp_audit_log=(Fl_Light_Button *)0;
static void cb_btn_enable_ifkp_audit_log(Fl_Light_Button* o, void*) {
progdefaults.ifkp_enable_audit_log = o->value();
progdefaults.changed = true;
}
Fl_Button *btn_ifkp_select_auditlog=(Fl_Button *)0;
static void cb_btn_ifkp_select_auditlog(Fl_Button*, void*) {
std::string str = std::string(TempDir);
str.append(progdefaults.ifkp_audit_log);
const char *fname = FSEL::saveas("Audit log", "*.txt\t*", str.c_str());
if (fname) {
progdefaults.ifkp_audit_log = fl_filename_name(fname);
txt_ifkp_audit_log->value(progdefaults.ifkp_audit_log.c_str());
progdefaults.changed = true;
};
}
Fl_Output *txt_ifkp_heard_log=(Fl_Output *)0;
Fl_Light_Button *btn_enable_ifkp_heard_log=(Fl_Light_Button *)0;
static void cb_btn_enable_ifkp_heard_log(Fl_Light_Button* o, void*) {
progdefaults.ifkp_enable_heard_log = o->value();
progdefaults.changed = true;
}
Fl_Button *btn_select_ifkp_heard_log=(Fl_Button *)0;
static void cb_btn_select_ifkp_heard_log(Fl_Button*, void*) {
std::string str = std::string(TempDir);
str.append(progdefaults.ifkp_heard_log);
const char *fname = FSEL::saveas("Heard log", "*.txt\t*", str.c_str());
if (fname) {
progdefaults.ifkp_heard_log = fl_filename_name(fname);
txt_ifkp_heard_log->value(progdefaults.ifkp_heard_log.c_str());
progdefaults.changed = true;
};
}
Fl_Group *tabMT63=(Fl_Group *)0;
Fl_Check_Button *btnMT63_8bit=(Fl_Check_Button *)0;
static void cb_btnMT63_8bit(Fl_Check_Button* o, void*) {
progdefaults.mt63_8bit = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnMT63_rx_integration=(Fl_Check_Button *)0;
static void cb_btnMT63_rx_integration(Fl_Check_Button* o, void*) {
progdefaults.mt63_rx_integration = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnMT63_usetones=(Fl_Check_Button *)0;
static void cb_btnMT63_usetones(Fl_Check_Button* o, void*) {
progdefaults.mt63_usetones = o->value();
if (!o->value()) {
btnMT63_upper_lower->value(0);
btnMT63_upper_lower->do_callback();
btnMT63_upper_lower->deactivate();
}
else
btnMT63_upper_lower->activate();
progdefaults.changed = true;
}
Fl_Check_Button *btnMT63_upper_lower=(Fl_Check_Button *)0;
static void cb_btnMT63_upper_lower(Fl_Check_Button* o, void*) {
progdefaults.mt63_twotones = o->value();
progdefaults.changed = true;
}
Fl_Spinner2 *MT63_tone_duration=(Fl_Spinner2 *)0;
static void cb_MT63_tone_duration(Fl_Spinner2* o, void*) {
progdefaults.mt63_tone_duration=(int)o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnMT63_at500=(Fl_Check_Button *)0;
static void cb_btnMT63_at500(Fl_Check_Button* o, void*) {
progdefaults.mt63_at500 = !o->value();
progdefaults.changed = true;
}
Fl_Group *tabOlivia=(Fl_Group *)0;
Fl_ListBox *i_listbox_olivia_bandwidth=(Fl_ListBox *)0;
static void cb_i_listbox_olivia_bandwidth(Fl_ListBox* o, void*) {
progdefaults.oliviabw = o->index();
set_olivia_default_integ();
resetOLIVIA();
progdefaults.changed = true;
}
Fl_ListBox *i_listbox_olivia_tones=(Fl_ListBox *)0;
static void cb_i_listbox_olivia_tones(Fl_ListBox* o, void*) {
progdefaults.oliviatones = o->index();
set_olivia_default_integ();
resetOLIVIA();
progdefaults.changed = true;
}
Fl_Counter2 *cntOlivia_smargin=(Fl_Counter2 *)0;
static void cb_cntOlivia_smargin(Fl_Counter2* o, void*) {
progdefaults.oliviasmargin = (int)(o->value());
resetOLIVIA();
progdefaults.changed = true;
}
Fl_Counter2 *cntOlivia_sinteg=(Fl_Counter2 *)0;
static void cb_cntOlivia_sinteg(Fl_Counter2* o, void*) {
progdefaults.oliviasinteg = (int)(o->value());
resetOLIVIA();
progdefaults.changed = true;
}
Fl_Check_Button *btn_olivia_reset_fec=(Fl_Check_Button *)0;
static void cb_btn_olivia_reset_fec(Fl_Check_Button* o, void*) {
progdefaults.olivia_reset_fec = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnOlivia_8bit=(Fl_Check_Button *)0;
static void cb_btnOlivia_8bit(Fl_Check_Button* o, void*) {
progdefaults.olivia8bit = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnOlivia_start_stop_tones=(Fl_Check_Button *)0;
static void cb_btnOlivia_start_stop_tones(Fl_Check_Button* o, void*) {
progdefaults.olivia_start_tones = o->value();
progdefaults.changed = true;
}
Fl_Group *tabContestia=(Fl_Group *)0;
Fl_ListBox *i_listbox_contestia_bandwidth=(Fl_ListBox *)0;
static void cb_i_listbox_contestia_bandwidth(Fl_ListBox* o, void*) {
progdefaults.contestiabw = o->index();
set_contestia_default_integ();
resetCONTESTIA();
progdefaults.changed = true;
}
Fl_ListBox *i_listbox_contestia_tones=(Fl_ListBox *)0;
static void cb_i_listbox_contestia_tones(Fl_ListBox* o, void*) {
progdefaults.contestiatones = o->index();
set_contestia_default_integ();
resetCONTESTIA();
progdefaults.changed = true;
}
Fl_Counter2 *cntContestia_smargin=(Fl_Counter2 *)0;
static void cb_cntContestia_smargin(Fl_Counter2* o, void*) {
progdefaults.contestiasmargin = (int)(o->value());
resetCONTESTIA();
progdefaults.changed = true;
}
Fl_Counter2 *cntContestia_sinteg=(Fl_Counter2 *)0;
static void cb_cntContestia_sinteg(Fl_Counter2* o, void*) {
progdefaults.contestiasinteg = (int)(o->value());
resetCONTESTIA();
progdefaults.changed = true;
}
Fl_Check_Button *btnContestia_8bit=(Fl_Check_Button *)0;
static void cb_btnContestia_8bit(Fl_Check_Button* o, void*) {
progdefaults.contestia8bit = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnContestia_start_stop_tones=(Fl_Check_Button *)0;
static void cb_btnContestia_start_stop_tones(Fl_Check_Button* o, void*) {
progdefaults.contestia_start_tones = o->value();
progdefaults.changed = true;
}
Fl_Group *tabPSK=(Fl_Group *)0;
Fl_Tabs *tabsPSK=(Fl_Tabs *)0;
Fl_Group *grpPSK=(Fl_Group *)0;
Fl_Counter2 *cntSearchRange=(Fl_Counter2 *)0;
static void cb_cntSearchRange(Fl_Counter2* o, void*) {
progdefaults.SearchRange = (int)o->value();
wf->redraw_marker();
progdefaults.changed = true;
}
Fl_Counter2 *cntACQsn=(Fl_Counter2 *)0;
static void cb_cntACQsn(Fl_Counter2* o, void*) {
progdefaults.ACQsn = o->value();
progdefaults.changed = true;
}
Fl_ListBox *listbox_psk_status_timeout=(Fl_ListBox *)0;
static void cb_listbox_psk_status_timeout(Fl_ListBox* o, void*) {
progdefaults.StatusDim = o->index();
progdefaults.changed = true;
}
static void cb_seconds(Fl_Counter2* o, void*) {
progdefaults.StatusTimeout = (int)(o->value());
progdefaults.changed = true;
}
Fl_Check_Button *btnEnablePSKbrowsing=(Fl_Check_Button *)0;
static void cb_btnEnablePSKbrowsing(Fl_Check_Button* o, void*) {
progdefaults.pskbrowser_on = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnPSKpilot=(Fl_Check_Button *)0;
static void cb_btnPSKpilot(Fl_Check_Button* o, void*) {
progdefaults.pskpilot = o->value();
progdefaults.changed = true;
}
Fl_Counter2 *cnt_pilot_power=(Fl_Counter2 *)0;
static void cb_cnt_pilot_power(Fl_Counter2* o, void*) {
progdefaults.pilot_power = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnPSK8Preamble=(Fl_Check_Button *)0;
static void cb_btnPSK8Preamble(Fl_Check_Button* o, void*) {
progStatus.psk8DCDShortFlag = o->value();
}
Fl_Group *tabRTTY=(Fl_Group *)0;
Fl_Tabs *tabsRTTY=(Fl_Tabs *)0;
Fl_ListBox *selShift=(Fl_ListBox *)0;
static void cb_selShift(Fl_ListBox* o, void*) {
progdefaults.rtty_shift = o->index();
if (progdefaults.rtty_shift == o->lsize() - 1)
selCustomShift->activate();
else
selCustomShift->deactivate();
selCustomShift->redraw();
resetRTTY();
progdefaults.changed = true;
}
Fl_Counter2 *selCustomShift=(Fl_Counter2 *)0;
static void cb_selCustomShift(Fl_Counter2* o, void*) {
progdefaults.rtty_custom_shift = o->value();
resetRTTY();
progdefaults.changed = true;
}
Fl_ListBox *selBaud=(Fl_ListBox *)0;
static void cb_selBaud(Fl_ListBox* o, void*) {
progdefaults.rtty_baud = o->index();
resetRTTY();
progdefaults.changed = true;
}
Fl_ListBox *selBits=(Fl_ListBox *)0;
static void cb_selBits(Fl_ListBox* o, void*) {
progdefaults.rtty_bits = o->index();
selParity->do_callback();
}
Fl_ListBox *selParity=(Fl_ListBox *)0;
static void cb_selParity(Fl_ListBox* o, void*) {
if (progdefaults.rtty_bits == 0) {
progdefaults.rtty_parity = rtty::RTTY_PARITY_NONE;
o->index(progdefaults.rtty_parity);
} else
progdefaults.rtty_parity = o->index();
resetRTTY();
progdefaults.changed = true;
}
Fl_ListBox *selStopBits=(Fl_ListBox *)0;
static void cb_selStopBits(Fl_ListBox* o, void*) {
progdefaults.rtty_stop = o->index();
resetRTTY();
progdefaults.changed = true;
}
Fl_Check_Button *btnAUTOCRLF=(Fl_Check_Button *)0;
static void cb_btnAUTOCRLF(Fl_Check_Button* o, void*) {
progdefaults.rtty_autocrlf = o->value();
progdefaults.changed = true;
}
Fl_Counter2 *cntrAUTOCRLF=(Fl_Counter2 *)0;
static void cb_cntrAUTOCRLF(Fl_Counter2* o, void*) {
progdefaults.rtty_autocount = (int)o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnCRCRLF=(Fl_Check_Button *)0;
static void cb_btnCRCRLF(Fl_Check_Button* o, void*) {
progdefaults.rtty_crcrlf = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *chkUOStx=(Fl_Check_Button *)0;
static void cb_chkUOStx(Fl_Check_Button* o, void*) {
progdefaults.UOStx=o->value();
progdefaults.changed = true;
}
Fl_Check_Button *chk_shaped_rtty=(Fl_Check_Button *)0;
static void cb_chk_shaped_rtty(Fl_Check_Button* o, void*) {
progStatus.shaped_rtty = o->value();
}
Fl_Check_Button *chkPseudoFSK=(Fl_Check_Button *)0;
static void cb_chkPseudoFSK(Fl_Check_Button* o, void*) {
progdefaults.PseudoFSK = o->value();
chkPseudoFSK2->value(o->value());
progdefaults.changed = true;
if (o->value()) {
progdefaults.sig_on_right_channel = false;
chkAudioStereoOut->value(0);
progdefaults.PTTrightchannel = false;
btnPTTrightchannel->value(0);
};
}
Fl_ListBox *i_listbox_rtty_afc_speed=(Fl_ListBox *)0;
static void cb_i_listbox_rtty_afc_speed(Fl_ListBox* o, void*) {
progdefaults.rtty_afcspeed = o->index();
progdefaults.changed = true;
}
Fl_Check_Button *chkUOSrx=(Fl_Check_Button *)0;
static void cb_chkUOSrx(Fl_Check_Button* o, void*) {
progdefaults.UOSrx=o->value();
progdefaults.changed = true;
}
Fl_Value_Input *rtty_rx_shape=(Fl_Value_Input *)0;
static void cb_rtty_rx_shape(Fl_Value_Input* o, void*) {
progdefaults.rtty_filter = o->value();
progStatus.rtty_filter_changed = true;
progdefaults.changed = true;
}
static void cb_btnRxTones(Fl_Check_Button* o, void*) {
if (o->value()) {
btnRxTones[1]->value(0);
btnRxTones[2]->value(0);
progdefaults.rtty_cwi = 0;
};
}
static void cb_btnRxTones1(Fl_Check_Button* o, void*) {
if (o->value()) {
btnRxTones[0]->value(0);
btnRxTones[2]->value(0);
progdefaults.rtty_cwi = 1;
};
}
Fl_Check_Button *btnRxTones[3]={(Fl_Check_Button *)0};
static void cb_btnRxTones2(Fl_Check_Button* o, void*) {
if (o->value()) {
btnRxTones[1]->value(0);
btnRxTones[0]->value(0);
progdefaults.rtty_cwi = 2;
};
}
Fl_Check_Button *btnPreferXhairScope=(Fl_Check_Button *)0;
static void cb_btnPreferXhairScope(Fl_Check_Button* o, void*) {
progdefaults.PreferXhairScope=o->value();
progdefaults.changed = true;
}
Fl_Check_Button *chk_true_scope=(Fl_Check_Button *)0;
static void cb_chk_true_scope(Fl_Check_Button* o, void*) {
progdefaults.true_scope=o->value();
progdefaults.changed = true;
}
Fl_Check_Button *chk_useMARKfreq=(Fl_Check_Button *)0;
static void cb_chk_useMARKfreq(Fl_Check_Button* o, void*) {
progdefaults.useMARKfreq=o->value();
progdefaults.changed = true;
}
Fl_Button *btnRTTY_mark_color=(Fl_Button *)0;
static void cb_btnRTTY_mark_color(Fl_Button* o, void*) {
if (fl_color_chooser("MARK freq track",
progdefaults.rttymarkRGBI.R,
progdefaults.rttymarkRGBI.G,
progdefaults.rttymarkRGBI.B) ) {
o->color(fl_rgb_color(progdefaults.rttymarkRGBI.R,progdefaults.rttymarkRGBI.G,progdefaults.rttymarkRGBI.B));
o->redraw();
wf->redraw_marker();
progdefaults.changed = true;
};
}
Fl_Check_Button *btnSynopAdifDecoding=(Fl_Check_Button *)0;
static void cb_btnSynopAdifDecoding(Fl_Check_Button* o, void*) {
progdefaults.SynopAdifDecoding=o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnSynopKmlDecoding=(Fl_Check_Button *)0;
static void cb_btnSynopKmlDecoding(Fl_Check_Button* o, void*) {
progdefaults.SynopKmlDecoding=o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnSynopInterleaved=(Fl_Check_Button *)0;
static void cb_btnSynopInterleaved(Fl_Check_Button* o, void*) {
progdefaults.SynopInterleaved=o->value();
progdefaults.changed = true;
}
Fl_Group *tabTHOR=(Fl_Group *)0;
Fl_Input2 *txtTHORSecondary=(Fl_Input2 *)0;
static void cb_txtTHORSecondary(Fl_Input2* o, void*) {
progdefaults.THORsecText = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *valTHOR_FILTER=(Fl_Check_Button *)0;
static void cb_valTHOR_FILTER(Fl_Check_Button* o, void*) {
progdefaults.THOR_FILTER = o->value();
resetTHOR();
progdefaults.changed = true;
}
Fl_Counter2 *valTHOR_BW=(Fl_Counter2 *)0;
static void cb_valTHOR_BW(Fl_Counter2* o, void*) {
progdefaults.THOR_BW = o->value();
resetTHOR();
progdefaults.changed = true;
}
Fl_Value_Slider2 *valThorCWI=(Fl_Value_Slider2 *)0;
static void cb_valThorCWI(Fl_Value_Slider2* o, void*) {
progdefaults.ThorCWI = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *valTHOR_PREAMBLE=(Fl_Check_Button *)0;
static void cb_valTHOR_PREAMBLE(Fl_Check_Button* o, void*) {
progdefaults.THOR_PREAMBLE = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *valTHOR_SOFTSYMBOLS=(Fl_Check_Button *)0;
static void cb_valTHOR_SOFTSYMBOLS(Fl_Check_Button* o, void*) {
progdefaults.THOR_SOFTSYMBOLS = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *valTHOR_SOFTBITS=(Fl_Check_Button *)0;
static void cb_valTHOR_SOFTBITS(Fl_Check_Button* o, void*) {
progdefaults.THOR_SOFTBITS = o->value();
progdefaults.changed = true;
}
Fl_Counter2 *valTHOR_PATHS=(Fl_Counter2 *)0;
static void cb_valTHOR_PATHS(Fl_Counter2* o, void*) {
progdefaults.THOR_PATHS = (int)o->value();
progdefaults.changed = true;
}
Fl_Group *tabOther=(Fl_Group *)0;
Fl_Tabs *tabsOther=(Fl_Tabs *)0;
Fl_Group *tabNavtex=(Fl_Group *)0;
Fl_Check_Button *btnNvtxAdifLog=(Fl_Check_Button *)0;
static void cb_btnNvtxAdifLog(Fl_Check_Button* o, void*) {
progdefaults.NVTX_AdifLog=o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnNvtxKmlLog=(Fl_Check_Button *)0;
static void cb_btnNvtxKmlLog(Fl_Check_Button* o, void*) {
progdefaults.NVTX_KmlLog=o->value();
progdefaults.changed = true;
}
Fl_Group *tabWefax=(Fl_Group *)0;
Fl_Check_Button *btnWefaxAdifLog=(Fl_Check_Button *)0;
static void cb_btnWefaxAdifLog(Fl_Check_Button* o, void*) {
progdefaults.WEFAX_AdifLog=o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnWefaxEmbeddedGui=(Fl_Check_Button *)0;
static void cb_btnWefaxEmbeddedGui(Fl_Check_Button* o, void*) {
progdefaults.WEFAX_EmbeddedGui=o->value();
progdefaults.changed = true;
}
Fl_Value_Input2 *btnWefaxShift=(Fl_Value_Input2 *)0;
static void cb_btnWefaxShift(Fl_Value_Input2* o, void*) {
if( o->value() > 900 ) { o->value(900); return; }
if( o->value() < 750 ) { o->value(750); return; }
progdefaults.WEFAX_Shift=o->value();
progdefaults.changed = true;
}
Fl_Value_Input2 *btnWefaxMaxRows=(Fl_Value_Input2 *)0;
static void cb_btnWefaxMaxRows(Fl_Value_Input2* o, void*) {
if(o->value() > 10000 ) { o->value(10000); return ; }
if(o->value() < 1000 ) { o->value(1000); return ; }
progdefaults.WEFAX_MaxRows=o->value();
progdefaults.changed = true;
}
Fl_Input *btnWefaxSaveDir=(Fl_Input *)0;
static void cb_btnWefaxSaveDir(Fl_Input* o, void*) {
progdefaults.wefax_save_dir=o->value();
progdefaults.changed = true;
}
Fl_Button *btnSelectFaxDestDir=(Fl_Button *)0;
static void cb_btnSelectFaxDestDir(Fl_Button*, void*) {
Fl_File_Chooser *fc = new Fl_File_Chooser(".",NULL,Fl_File_Chooser::DIRECTORY,"Input File");
fc->callback(WefaxDestDirSet);
fc->show();
}
Fl_Check_Button *btnWefaxHideTx=(Fl_Check_Button *)0;
static void cb_btnWefaxHideTx(Fl_Check_Button* o, void*) {
progdefaults.WEFAX_HideTx=o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnWefaxSaveMonochrome=(Fl_Check_Button *)0;
static void cb_btnWefaxSaveMonochrome(Fl_Check_Button* o, void*) {
progdefaults.WEFAX_SaveMonochrome=o->value();
progdefaults.changed = true;
}
Fl_Group *tabDFTscan=(Fl_Group *)0;
Fl_Counter *cnt_dft_scans=(Fl_Counter *)0;
static void cb_cnt_dft_scans(Fl_Counter* o, void*) {
progdefaults.cnt_dft_scans=(int)o->value();
progdefaults.changed = true;
}
Fl_Counter *cnt_dft_range=(Fl_Counter *)0;
static void cb_cnt_dft_range(Fl_Counter* o, void*) {
progdefaults.cnt_dft_range=o->value();
update_scope();
progdefaults.changed = true;
}
Fl_Check_Button *btn_use_relative_dB=(Fl_Check_Button *)0;
static void cb_btn_use_relative_dB(Fl_Check_Button* o, void*) {
progdefaults.dft_relative=o->value();
update_scope();
progdefaults.changed = true;
}
Fl_Group *tabRig=(Fl_Group *)0;
Fl_Tabs *tabsRig=(Fl_Tabs *)0;
Fl_Check_Button *chkUSERIGCAT=(Fl_Check_Button *)0;
static void cb_chkUSERIGCAT(Fl_Check_Button* o, void*) {
if (o->value() == 1) {
chkUSEHAMLIB->value(0);
chkUSEXMLRPC->value(0);
progdefaults.chkUSEHAMLIBis = false;
progdefaults.chkUSERIGCATis = true;
progdefaults.chkUSEXMLRPCis = false;
} else {
progdefaults.chkUSERIGCATis = false;
}
btnInitRIGCAT->labelcolor(FL_RED);
btnInitRIGCAT->redraw();
}
Fl_Group *grpRigCAT=(Fl_Group *)0;
Fl_Output *txtXmlRigFilename=(Fl_Output *)0;
Fl_Button *btnSelectRigXmlFile=(Fl_Button *)0;
static void cb_btnSelectRigXmlFile(Fl_Button*, void*) {
btnInitRIGCAT->labelcolor(FL_RED);
btnInitRIGCAT->redraw_label();
selectRigXmlFilename();
}
Fl_ComboBox *inpXmlRigDevice=(Fl_ComboBox *)0;
static void cb_inpXmlRigDevice(Fl_ComboBox*, void*) {
btnInitRIGCAT->labelcolor(FL_RED);
btnInitRIGCAT->redraw_label();
btnRevertRIGCAT->activate();
}
Fl_Value_Input2 *cntRigCatRetries=(Fl_Value_Input2 *)0;
static void cb_cntRigCatRetries(Fl_Value_Input2*, void*) {
btnInitRIGCAT->labelcolor(FL_RED);
btnInitRIGCAT->redraw_label();
btnRevertRIGCAT->activate();
}
Fl_Value_Input2 *cntRigCatTimeout=(Fl_Value_Input2 *)0;
static void cb_cntRigCatTimeout(Fl_Value_Input2*, void*) {
btnInitRIGCAT->labelcolor(FL_RED);
btnInitRIGCAT->redraw_label();
btnRevertRIGCAT->activate();
}
Fl_Value_Input2 *cntRigCatWait=(Fl_Value_Input2 *)0;
static void cb_cntRigCatWait(Fl_Value_Input2*, void*) {
btnInitRIGCAT->labelcolor(FL_RED);
btnInitRIGCAT->redraw_label();
btnRevertRIGCAT->activate();
}
Fl_ListBox *listbox_xml_rig_baudrate=(Fl_ListBox *)0;
static void cb_listbox_xml_rig_baudrate(Fl_ListBox*, void*) {
btnInitRIGCAT->labelcolor(FL_RED);
btnInitRIGCAT->redraw_label();
btnRevertRIGCAT->activate();
}
Fl_Counter2 *valRigCatStopbits=(Fl_Counter2 *)0;
static void cb_valRigCatStopbits(Fl_Counter2*, void*) {
btnInitRIGCAT->labelcolor(FL_RED);
btnInitRIGCAT->redraw();
btnRevertRIGCAT->activate();
}
Fl_Button *btnInitRIGCAT=(Fl_Button *)0;
static void cb_btnInitRIGCAT(Fl_Button* o, void*) {
progdefaults.initInterface();
o->labelcolor(FL_FOREGROUND_COLOR);
progdefaults.changed = true;
}
Fl_Check_Button *btnRigCatEcho=(Fl_Check_Button *)0;
static void cb_btnRigCatEcho(Fl_Check_Button*, void*) {
btnInitRIGCAT->labelcolor(FL_RED);
btnInitRIGCAT->redraw_label();
progdefaults.changed = true;
btnRevertRIGCAT->activate();
}
Fl_Round_Button *btnRigCatCMDptt=(Fl_Round_Button *)0;
static void cb_btnRigCatCMDptt(Fl_Round_Button* o, void*) {
if (o->value()== 1) {
btnRigCatRTSptt->value(0);
btnRigCatDTRptt->value(0);
}
btnInitRIGCAT->labelcolor(FL_RED);
btnInitRIGCAT->redraw();
btnRevertRIGCAT->activate();
}
Fl_Round_Button *btnRigCatRTSptt=(Fl_Round_Button *)0;
static void cb_btnRigCatRTSptt(Fl_Round_Button* o, void*) {
if (o->value() == 1) {
// btnRigCatDTRptt->value(0);
btnRigCatCMDptt->value(0);
}
btnInitRIGCAT->labelcolor(FL_RED);
btnInitRIGCAT->redraw_label();
btnRevertRIGCAT->activate();
}
Fl_Round_Button *btnRigCatDTRptt=(Fl_Round_Button *)0;
static void cb_btnRigCatDTRptt(Fl_Round_Button* o, void*) {
if (o->value() == 1) {
// btnRigCatRTSptt->value(0);
btnRigCatCMDptt->value(0);
}
btnInitRIGCAT->labelcolor(FL_RED);
btnInitRIGCAT->redraw_label();
btnRevertRIGCAT->activate();
}
Fl_Check_Button *btnRigCatRTSplus=(Fl_Check_Button *)0;
static void cb_btnRigCatRTSplus(Fl_Check_Button*, void*) {
btnInitRIGCAT->labelcolor(FL_RED);
btnInitRIGCAT->redraw_label();
btnRevertRIGCAT->activate();
}
Fl_Check_Button *btnRigCatDTRplus=(Fl_Check_Button *)0;
static void cb_btnRigCatDTRplus(Fl_Check_Button*, void*) {
btnInitRIGCAT->labelcolor(FL_RED);
btnInitRIGCAT->redraw_label();
btnRevertRIGCAT->activate();
}
Fl_Check_Button *chkRigCatRTSCTSflow=(Fl_Check_Button *)0;
static void cb_chkRigCatRTSCTSflow(Fl_Check_Button*, void*) {
btnInitRIGCAT->labelcolor(FL_RED);
btnInitRIGCAT->redraw_label();
btnRevertRIGCAT->activate();
}
Fl_Check_Button *chk_restore_tio=(Fl_Check_Button *)0;
static void cb_chk_restore_tio(Fl_Check_Button*, void*) {
btnInitRIGCAT->labelcolor(FL_RED);
btnInitRIGCAT->redraw_label();
btnRevertRIGCAT->activate();
}
Fl_Button *btnRevertRIGCAT=(Fl_Button *)0;
static void cb_btnRevertRIGCAT(Fl_Button*, void*) {
btnInitRIGCAT->labelcolor(FL_FOREGROUND_COLOR);
btnInitRIGCAT->redraw_label();
rigCAT_restore_defaults();
}
Fl_Check_Button *chkRigCatVSP=(Fl_Check_Button *)0;
static void cb_chkRigCatVSP(Fl_Check_Button*, void*) {
btnInitRIGCAT->labelcolor(FL_RED);
btnInitRIGCAT->redraw_label();
btnRevertRIGCAT->activate();
}
Fl_Value_Input2 *cntRigCatInitDelay=(Fl_Value_Input2 *)0;
static void cb_cntRigCatInitDelay(Fl_Value_Input2*, void*) {
btnInitRIGCAT->labelcolor(FL_RED);
btnInitRIGCAT->redraw_label();
btnRevertRIGCAT->activate();
}
Fl_Group *tabHamlib=(Fl_Group *)0;
Fl_Check_Button *chkUSEHAMLIB=(Fl_Check_Button *)0;
static void cb_chkUSEHAMLIB(Fl_Check_Button* o, void*) {
progdefaults.chkUSEHAMLIBis = o->value();
if (o->value() == 1) {
chkUSERIGCAT->value(0);
chkUSEXMLRPC->value(0);
progdefaults.chkUSERIGCATis = false;
progdefaults.chkUSEXMLRPCis = false;
}
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw();
progdefaults.changed = true;
}
Fl_Group *grpHamlib=(Fl_Group *)0;
Fl_ListBox *cboHamlibRig=(Fl_ListBox *)0;
static void cb_cboHamlibRig(Fl_ListBox*, void*) {
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
btnRevertHAMLIB->activate();
#if USE_HAMLIB
hamlib_get_defaults();
#endif
}
Fl_ComboBox *inpRIGdev=(Fl_ComboBox *)0;
static void cb_inpRIGdev(Fl_ComboBox*, void*) {
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
btnRevertHAMLIB->activate();
}
Fl_Value_Input2 *cntHamlibRetries=(Fl_Value_Input2 *)0;
static void cb_cntHamlibRetries(Fl_Value_Input2*, void*) {
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
btnRevertHAMLIB->activate();
}
Fl_Value_Input2 *cntHamlibTimeout=(Fl_Value_Input2 *)0;
static void cb_cntHamlibTimeout(Fl_Value_Input2*, void*) {
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
btnRevertHAMLIB->activate();
}
Fl_Value_Input2 *cntHamlibWriteDelay=(Fl_Value_Input2 *)0;
static void cb_cntHamlibWriteDelay(Fl_Value_Input2*, void*) {
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
btnRevertHAMLIB->activate();
}
Fl_Value_Input2 *cntHamlibWait=(Fl_Value_Input2 *)0;
static void cb_cntHamlibWait(Fl_Value_Input2*, void*) {
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
btnRevertHAMLIB->activate();
}
Fl_ListBox *listbox_baudrate=(Fl_ListBox *)0;
static void cb_listbox_baudrate(Fl_ListBox*, void*) {
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
btnRevertHAMLIB->activate();
}
Fl_Counter2 *valHamRigStopbits=(Fl_Counter2 *)0;
static void cb_valHamRigStopbits(Fl_Counter2* o, void*) {
progdefaults.HamRigStopbits = (int)o->value();
btnRevertHAMLIB->activate();
progdefaults.changed = true;
}
Fl_Counter2 *cntHamlibTimeout0=(Fl_Counter2 *)0;
static void cb_cntHamlibTimeout0(Fl_Counter2* o, void*) {
progdefaults.HamlibTimeout = (int)o->value();
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
}
Fl_Input2 *inpHamlibConfig=(Fl_Input2 *)0;
static void cb_inpHamlibConfig(Fl_Input2*, void*) {
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
btnRevertHAMLIB->activate();
}
Fl_Button *btnInitHAMLIB=(Fl_Button *)0;
static void cb_btnInitHAMLIB(Fl_Button* o, void*) {
progdefaults.initInterface();
o->labelcolor(FL_FOREGROUND_COLOR);
//btnRevertHAMLIB->activate();
progdefaults.changed = true;
}
Fl_Check_Button *btnHamlibCMDptt=(Fl_Check_Button *)0;
static void cb_btnHamlibCMDptt(Fl_Check_Button*, void*) {
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
btnRevertHAMLIB->activate();
}
Fl_Check_Button *btnHamlibPTT_ON_DATA=(Fl_Check_Button *)0;
static void cb_btnHamlibPTT_ON_DATA(Fl_Check_Button* o, void*) {
progdefaults.hamlib_ptt_on_data = o->value();
}
Fl_Check_Button *btnHamlibDTRplus=(Fl_Check_Button *)0;
static void cb_btnHamlibDTRplus(Fl_Check_Button*, void*) {
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
btnRevertHAMLIB->activate();
}
Fl_Check_Button *chkHamlibRTSplus=(Fl_Check_Button *)0;
static void cb_chkHamlibRTSplus(Fl_Check_Button* o, void*) {
if (o->value() == 1)
chkHamlibRTSCTSflow->value(0);
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
btnRevertHAMLIB->activate();
}
Fl_Check_Button *chkHamlibRTSCTSflow=(Fl_Check_Button *)0;
static void cb_chkHamlibRTSCTSflow(Fl_Check_Button* o, void*) {
if (o->value() == 1) {
chkHamlibXONXOFFflow->value(0);
chkHamlibRTSplus->deactivate();
} else
chkHamlibRTSplus->activate();
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
btnRevertHAMLIB->activate();
}
Fl_Check_Button *chkHamlibXONXOFFflow=(Fl_Check_Button *)0;
static void cb_chkHamlibXONXOFFflow(Fl_Check_Button* o, void*) {
if (o->value() == 1)
chkHamlibRTSCTSflow->value(0);
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
btnRevertHAMLIB->activate();
}
Fl_Button *btnRevertHAMLIB=(Fl_Button *)0;
static void cb_btnRevertHAMLIB(Fl_Button*, void*) {
btnInitHAMLIB->labelcolor(FL_FOREGROUND_COLOR);
btnInitHAMLIB->redraw_label();
#if USE_HAMLIB
hamlib_restore_defaults();
#endif
}
Fl_Check_Button *chk_hamlib_cw_is_lsb=(Fl_Check_Button *)0;
static void cb_chk_hamlib_cw_is_lsb(Fl_Check_Button* o, void*) {
progdefaults.hamlib_cw_islsb = o->value();
}
Fl_Check_Button *chk_hamlib_rtty_is_usb=(Fl_Check_Button *)0;
static void cb_chk_hamlib_rtty_is_usb(Fl_Check_Button* o, void*) {
progdefaults.hamlib_rtty_isusb = o->value();
}
Fl_ListBox *listbox_sideband=(Fl_ListBox *)0;
Fl_Counter2 *val_hamlib_mode_delay=(Fl_Counter2 *)0;
static void cb_val_hamlib_mode_delay(Fl_Counter2* o, void*) {
progdefaults.hamlib_mode_delay = (int)o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnPTTrightchannel=(Fl_Check_Button *)0;
static void cb_btnPTTrightchannel(Fl_Check_Button* o, void*) {
progdefaults.PTTrightchannel = o->value();
btnPTTrightchannel2->value(o->value());
if (o->value()) {
progdefaults.QSK = false;
btnQSK->value(0);
progdefaults.PseudoFSK = false;
chkPseudoFSK->value(0);
progdefaults.sig_on_right_channel = false;
chkAudioStereoOut->value(0);
}
progdefaults.changed = true;
}
Fl_Group *grpHWPTT=(Fl_Group *)0;
Fl_Round_Button *btnTTYptt=(Fl_Round_Button *)0;
static void cb_btnTTYptt(Fl_Round_Button* o, void*) {
btnUsePPortPTT->value(false);
btnUseUHrouterPTT->value(false);
progdefaults.TTYptt = o->value();
progdefaults.UsePPortPTT = false;
progdefaults.UseUHrouterPTT = false;
btnInitHWPTT->labelcolor(FL_RED);
btnInitHWPTT->redraw();
progdefaults.changed = true;
}
Fl_ComboBox *inpTTYdev=(Fl_ComboBox *)0;
static void cb_inpTTYdev(Fl_ComboBox*, void*) {
btnInitHWPTT->labelcolor(FL_RED);
btnInitHWPTT->redraw();
progdefaults.changed = true;
}
Fl_Round_Button *btnRTSptt=(Fl_Round_Button *)0;
static void cb_btnRTSptt(Fl_Round_Button*, void*) {
btnInitHWPTT->labelcolor(FL_RED);
btnInitHWPTT->redraw();
progdefaults.changed = true;
}
Fl_Round_Button *btnRTSplusV=(Fl_Round_Button *)0;
static void cb_btnRTSplusV(Fl_Round_Button*, void*) {
btnInitHWPTT->labelcolor(FL_RED);
btnInitHWPTT->redraw();
progdefaults.changed = true;
}
Fl_Round_Button *btnDTRptt=(Fl_Round_Button *)0;
static void cb_btnDTRptt(Fl_Round_Button*, void*) {
btnInitHWPTT->labelcolor(FL_RED);
btnInitHWPTT->redraw();
progdefaults.changed = true;
}
Fl_Round_Button *btnDTRplusV=(Fl_Round_Button *)0;
static void cb_btnDTRplusV(Fl_Round_Button*, void*) {
btnInitHWPTT->labelcolor(FL_RED);
btnInitHWPTT->redraw();
progdefaults.changed = true;
}
Fl_Button *btnInitHWPTT=(Fl_Button *)0;
static void cb_btnInitHWPTT(Fl_Button* o, void*) {
progdefaults.initInterface();
o->labelcolor(FL_FOREGROUND_COLOR);
progdefaults.changed = true;
}
Fl_Round_Button *btnUsePPortPTT=(Fl_Round_Button *)0;
static void cb_btnUsePPortPTT(Fl_Round_Button* o, void*) {
btnTTYptt->value(false);
btnUseUHrouterPTT->value(false);
progdefaults.TTYptt = false;
progdefaults.UsePPortPTT = o->value();
progdefaults.UseUHrouterPTT = false;
btnInitHWPTT->labelcolor(FL_RED);
btnInitHWPTT->redraw();
progdefaults.changed = true;
}
Fl_Round_Button *btnUseUHrouterPTT=(Fl_Round_Button *)0;
static void cb_btnUseUHrouterPTT(Fl_Round_Button* o, void*) {
btnTTYptt->value(false);
btnUsePPortPTT->value(false);
progdefaults.TTYptt = false;
progdefaults.UsePPortPTT = false;
progdefaults.UseUHrouterPTT = o->value();
btnInitHWPTT->labelcolor(FL_RED);
btnInitHWPTT->redraw();
progdefaults.changed = true;
}
Fl_Round_Button *btnUseGPIOPTT=(Fl_Round_Button *)0;
static void cb_btnUseGPIOPTT(Fl_Round_Button* o, void*) {
btnTTYptt->value(false);
btnUsePPortPTT->value(false);
btnUseUHrouterPTT->value(false);
progdefaults.TTYptt = false;
progdefaults.UsePPortPTT = false;
progdefaults.UseUHrouterPTT = false;
progdefaults.UseGPIOPTT = o->value();
btnInitHWPTT->labelcolor(FL_RED);
btnInitHWPTT->redraw();
progdefaults.changed = true;
}
Fl_Counter2 *inpGPIOPort=(Fl_Counter2 *)0;
static void cb_inpGPIOPort(Fl_Counter2*, void*) {
btnInitHWPTT->labelcolor(FL_RED);
btnInitHWPTT->redraw();
progdefaults.changed = true;
}
Fl_Group *grpPTTdelays=(Fl_Group *)0;
Fl_Counter *cntPTT_on_delay=(Fl_Counter *)0;
static void cb_cntPTT_on_delay(Fl_Counter* o, void*) {
progdefaults.PTT_on_delay = o->value();
progdefaults.changed = true;
}
Fl_Counter *cntPTT_off_delay=(Fl_Counter *)0;
static void cb_cntPTT_off_delay(Fl_Counter* o, void*) {
progdefaults.PTT_off_delay = o->value();
progdefaults.changed = true;
}
Fl_Group *tabXMLRPC=(Fl_Group *)0;
Fl_Group *grpXMLRPC=(Fl_Group *)0;
Fl_Check_Button *chkUSEXMLRPC=(Fl_Check_Button *)0;
static void cb_chkUSEXMLRPC(Fl_Check_Button* o, void*) {
progdefaults.chkUSEXMLRPCis = o->value();
if(o->value() == 1){
chkUSEHAMLIB->value(0);
chkUSERIGCAT->value(0);
progdefaults.chkUSEHAMLIBis = false;
progdefaults.chkUSERIGCATis = false;
}
btnInitXMLRPC->labelcolor(FL_RED);
btnInitXMLRPC->redraw_label();
progdefaults.changed = true;
}
Fl_Button *btnInitXMLRPC=(Fl_Button *)0;
static void cb_btnInitXMLRPC(Fl_Button* o, void*) {
progdefaults.initInterface();
o->labelcolor(FL_FOREGROUND_COLOR);
progdefaults.changed = true;
}
Fl_Counter *mbw_delay=(Fl_Counter *)0;
static void cb_mbw_delay(Fl_Counter* o, void*) {
progdefaults.mbw=o->value();
progdefaults.changed=true;
}
Fl_Group *tabFLRIG=(Fl_Group *)0;
Fl_Check_Button *chk_flrig_keys_modem=(Fl_Check_Button *)0;
static void cb_chk_flrig_keys_modem(Fl_Check_Button* o, void*) {
progdefaults.flrig_keys_modem = o->value();
progdefaults.changed = true;
}
Fl_Group *tabSoundCard=(Fl_Group *)0;
Fl_Tabs *tabsSoundCard=(Fl_Tabs *)0;
Fl_Group *tabAudio=(Fl_Group *)0;
Fl_Group *AudioOSS=(Fl_Group *)0;
static void cb_btnAudioIO(Fl_Round_Button*, void*) {
sound_update(SND_IDX_OSS);
progdefaults.changed = true;
resetSoundCard();
}
Fl_Input_Choice *menuOSSDev=(Fl_Input_Choice *)0;
static void cb_menuOSSDev(Fl_Input_Choice* o, void*) {
scDevice[0] = scDevice[1] = progdefaults.OSSdevice = o->value();
resetSoundCard();
progdefaults.changed = true;
}
Fl_Group *AudioPort=(Fl_Group *)0;
static void cb_btnAudioIO1(Fl_Round_Button*, void*) {
sound_update(SND_IDX_PORT);
progdefaults.changed = true;
resetSoundCard();
}
Fl_Choice *menuPortInDev=(Fl_Choice *)0;
static void cb_menuPortInDev(Fl_Choice* o, void*) {
scDevice[0] = progdefaults.PortInDevice = o->text();
progdefaults.PortInIndex = reinterpret_cast<intptr_t>(o->mvalue()->user_data());
resetSoundCard();
progdefaults.changed = true;
}
Fl_Choice *menuPortOutDev=(Fl_Choice *)0;
static void cb_menuPortOutDev(Fl_Choice* o, void*) {
scDevice[1] = progdefaults.PortOutDevice = o->text();
progdefaults.PortOutIndex = reinterpret_cast<intptr_t>(o->mvalue()->user_data());
resetSoundCard();
progdefaults.changed = true;
}
Fl_Group *AudioPulse=(Fl_Group *)0;
static void cb_btnAudioIO2(Fl_Round_Button*, void*) {
sound_update(SND_IDX_PULSE);
progdefaults.changed = true;
resetSoundCard();
}
Fl_Input2 *inpPulseServer=(Fl_Input2 *)0;
static void cb_inpPulseServer(Fl_Input2* o, void*) {
scDevice[0] = scDevice[1] = progdefaults.PulseServer = o->value();
resetSoundCard();
progdefaults.changed = true;
}
Fl_Group *AudioNull=(Fl_Group *)0;
Fl_Round_Button *btnAudioIO[4]={(Fl_Round_Button *)0};
static void cb_btnAudioIO3(Fl_Round_Button*, void*) {
sound_update(SND_IDX_NULL);
progdefaults.changed = true;
resetSoundCard();
}
Fl_Group *tabAudioOpt=(Fl_Group *)0;
Fl_Group *grpAudioSampleRate=(Fl_Group *)0;
Fl_ListBox *menuInSampleRate=(Fl_ListBox *)0;
static void cb_menuInSampleRate(Fl_ListBox* o, void*) {
progdefaults.in_sample_rate = o->index() > 1 ? strtol(o->value(), 0, 10) : o->index();
resetSoundCard();
progdefaults.changed = true;
}
Fl_ListBox *menuOutSampleRate=(Fl_ListBox *)0;
static void cb_menuOutSampleRate(Fl_ListBox* o, void*) {
progdefaults.out_sample_rate = o->index() > 1 ? strtol(o->value(), 0, 10) : o->index();
resetSoundCard();
progdefaults.changed = true;
}
Fl_ListBox *menuSampleConverter=(Fl_ListBox *)0;
static void cb_menuSampleConverter(Fl_ListBox* o, void*) {
if ((o->index()) == FLDIGI_SRC_BEST)
fl_alert2("The best quality SINC interpolator has very high CPU overhead");
progdefaults.sample_converter = sample_rate_converters[o->index()];
resetSoundCard();
progdefaults.changed = true;
o->tooltip(src_get_description(progdefaults.sample_converter));
}
Fl_Spinner2 *cntRxRateCorr=(Fl_Spinner2 *)0;
static void cb_cntRxRateCorr(Fl_Spinner2* o, void*) {
progdefaults.RX_corr = (int)o->value();
progdefaults.changed = true;
}
Fl_Spinner2 *cntTxRateCorr=(Fl_Spinner2 *)0;
static void cb_cntTxRateCorr(Fl_Spinner2* o, void*) {
progdefaults.TX_corr = (int)o->value();
progdefaults.changed = true;
}
Fl_Spinner2 *cntTxOffset=(Fl_Spinner2 *)0;
static void cb_cntTxOffset(Fl_Spinner2* o, void*) {
progdefaults.TxOffset = (int)o->value();
progdefaults.changed = true;
}
Fl_Group *tabAudioRightChannel=(Fl_Group *)0;
Fl_Check_Button *chkAudioStereoOut=(Fl_Check_Button *)0;
static void cb_chkAudioStereoOut(Fl_Check_Button* o, void*) {
progdefaults.sig_on_right_channel = o->value();
progdefaults.changed = true;
if (o->value()) {
progdefaults.QSK = false;
btnQSK->value(0);
btnQSK2->value(0);
progdefaults.PseudoFSK = false;
chkPseudoFSK->value(0);
chkPseudoFSK2->value(0);
progdefaults.PTTrightchannel = false;
btnPTTrightchannel->value(0);
btnPTTrightchannel2->value(0);
};
}
Fl_Check_Button *chkReverseAudio=(Fl_Check_Button *)0;
static void cb_chkReverseAudio(Fl_Check_Button* o, void*) {
progdefaults.ReverseAudio = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnPTTrightchannel2=(Fl_Check_Button *)0;
static void cb_btnPTTrightchannel2(Fl_Check_Button* o, void*) {
progdefaults.PTTrightchannel = o->value();
btnPTTrightchannel->value(o->value());
progdefaults.changed = true;
if (o->value()) {
progdefaults.QSK = false;
btnQSK->value(0);
btnQSK2->value(0);
progdefaults.PseudoFSK = false;
chkPseudoFSK->value(0);
chkPseudoFSK2->value(0);
progdefaults.sig_on_right_channel = false;
chkAudioStereoOut->value(0);
};
}
Fl_Check_Button *btnQSK2=(Fl_Check_Button *)0;
static void cb_btnQSK2(Fl_Check_Button* o, void*) {
progdefaults.QSK = o->value();
btnQSK->value(o->value());
progdefaults.changed = true;
if (o->value()) {
progdefaults.sig_on_right_channel = false;
chkAudioStereoOut->value(0);
progdefaults.PTTrightchannel = false;
btnPTTrightchannel->value(0);
btnPTTrightchannel2->value(0);
};
}
Fl_Check_Button *chkPseudoFSK2=(Fl_Check_Button *)0;
static void cb_chkPseudoFSK2(Fl_Check_Button* o, void*) {
progdefaults.PseudoFSK = o->value();
chkPseudoFSK->value(o->value());
progdefaults.changed = true;
if (o->value()) {
progdefaults.sig_on_right_channel = false;
chkAudioStereoOut->value(0);
progdefaults.PTTrightchannel = false;
btnPTTrightchannel->value(0);
btnPTTrightchannel2->value(0);
};
}
Fl_Check_Button *chkReverseRxAudio=(Fl_Check_Button *)0;
static void cb_chkReverseRxAudio(Fl_Check_Button* o, void*) {
progdefaults.ReverseRxAudio = o->value();
progdefaults.changed = true;
}
Fl_Group *tabWavFile=(Fl_Group *)0;
Fl_ListBox *listbox_wav_samplerate=(Fl_ListBox *)0;
static void cb_listbox_wav_samplerate(Fl_ListBox* o, void*) {
progdefaults.wavSampleRate = o->index();
progdefaults.changed = true;
}
Fl_Group *tabID=(Fl_Group *)0;
Fl_Tabs *tabsID=(Fl_Tabs *)0;
Fl_Group *tabRsID=(Fl_Group *)0;
Fl_Check_Button *chkRSidNotifyOnly=(Fl_Check_Button *)0;
static void cb_chkRSidNotifyOnly(Fl_Check_Button* o, void*) {
progdefaults.rsid_notify_only = o->value();
notify_create_rsid_event(progdefaults.rsid_notify_only);
if (progdefaults.rsid_notify_only) {
chkRetainFreqLock->deactivate();
chkDisableFreqChange->deactivate();
}
else {
chkRetainFreqLock->activate();
chkDisableFreqChange->activate();
}
progdefaults.changed = true;
}
Fl_Button *bRSIDRxModes=(Fl_Button *)0;
static void cb_bRSIDRxModes(Fl_Button* o, void*) {
mode_browser->label(o->label());
mode_browser->callback(0);
mode_browser->show(&progdefaults.rsid_rx_modes);
progdefaults.changed = true;
}
Fl_Check_Button *chkRSidWideSearch=(Fl_Check_Button *)0;
static void cb_chkRSidWideSearch(Fl_Check_Button* o, void*) {
progdefaults.rsidWideSearch=o->value();
rxid_selection_color();
progdefaults.changed = true;
}
Fl_Check_Button *chkRSidMark=(Fl_Check_Button *)0;
static void cb_chkRSidMark(Fl_Check_Button* o, void*) {
progdefaults.rsid_mark = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *chkRSidAutoDisable=(Fl_Check_Button *)0;
static void cb_chkRSidAutoDisable(Fl_Check_Button* o, void*) {
progdefaults.rsid_auto_disable = o->value();
progdefaults.changed = true;
}
Fl_ListBox *listbox_rsid_errors=(Fl_ListBox *)0;
static void cb_listbox_rsid_errors(Fl_ListBox* o, void*) {
progdefaults.RsID_label_type = o->index();
progdefaults.changed = true;
}
Fl_Value_Slider2 *sldrRSIDsquelch=(Fl_Value_Slider2 *)0;
static void cb_sldrRSIDsquelch(Fl_Value_Slider2* o, void*) {
progdefaults.rsid_squelch = (int)o->value();
progdefaults.changed = true;
}
Fl_Check_Button *chkRSidShowAlert=(Fl_Check_Button *)0;
static void cb_chkRSidShowAlert(Fl_Check_Button* o, void*) {
progdefaults.disable_rsid_warning_dialog_box = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *chkRetainFreqLock=(Fl_Check_Button *)0;
static void cb_chkRetainFreqLock(Fl_Check_Button* o, void*) {
progdefaults.retain_freq_lock = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *chkDisableFreqChange=(Fl_Check_Button *)0;
static void cb_chkDisableFreqChange(Fl_Check_Button* o, void*) {
progdefaults.disable_rsid_freq_change = o->value();
progdefaults.changed = true;
}
Fl_Counter *val_pretone=(Fl_Counter *)0;
static void cb_val_pretone(Fl_Counter* o, void*) {
progdefaults.pretone = o->value();
progdefaults.changed = true;
}
Fl_Button *bRSIDTxModes=(Fl_Button *)0;
static void cb_bRSIDTxModes(Fl_Button* o, void*) {
mode_browser->label(o->label());
mode_browser->callback(0);
mode_browser->show(&progdefaults.rsid_tx_modes);
progdefaults.changed = true;
}
Fl_Check_Button *btn_post_rsid=(Fl_Check_Button *)0;
static void cb_btn_post_rsid(Fl_Check_Button* o, void*) {
progdefaults.rsid_post=o->value();
progdefaults.changed = true;
}
Fl_Group *tabVideoID=(Fl_Group *)0;
Fl_Check_Button *btnsendid=(Fl_Check_Button *)0;
static void cb_btnsendid(Fl_Check_Button* o, void*) {
progdefaults.sendid=o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnsendvideotext=(Fl_Check_Button *)0;
static void cb_btnsendvideotext(Fl_Check_Button* o, void*) {
progdefaults.sendtextid=o->value();
progdefaults.changed = true;
}
Fl_Input2 *valVideotext=(Fl_Input2 *)0;
static void cb_valVideotext(Fl_Input2* o, void*) {
progdefaults.strTextid = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *chkID_SMALL=(Fl_Check_Button *)0;
static void cb_chkID_SMALL(Fl_Check_Button* o, void*) {
progdefaults.ID_SMALL=o->value();
progdefaults.changed = true;
}
Fl_Value_Slider2 *sldrVideowidth=(Fl_Value_Slider2 *)0;
static void cb_sldrVideowidth(Fl_Value_Slider2* o, void*) {
progdefaults.videowidth = (int)o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn_vidlimit=(Fl_Check_Button *)0;
static void cb_btn_vidlimit(Fl_Check_Button* o, void*) {
progdefaults.vidlimit=o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn_vidmodelimit=(Fl_Check_Button *)0;
static void cb_btn_vidmodelimit(Fl_Check_Button* o, void*) {
progdefaults.vidmodelimit=o->value();
progdefaults.changed=true;
}
Fl_Button *bVideoIDModes=(Fl_Button *)0;
static void cb_bVideoIDModes(Fl_Button* o, void*) {
mode_browser->label(o->label());
mode_browser->callback(0);
mode_browser->show(&progdefaults.videoid_modes);
progdefaults.changed = true;
}
Fl_Group *tabCwID=(Fl_Group *)0;
Fl_Group *sld=(Fl_Group *)0;
Fl_Check_Button *btnCWID=(Fl_Check_Button *)0;
static void cb_btnCWID(Fl_Check_Button* o, void*) {
progdefaults.CWid = o->value();
progdefaults.changed = true;
}
Fl_Value_Slider2 *sldrCWIDwpm=(Fl_Value_Slider2 *)0;
static void cb_sldrCWIDwpm(Fl_Value_Slider2* o, void*) {
progdefaults.CWIDwpm = (int)o->value();
progdefaults.changed = true;
}
Fl_Button *bCWIDModes=(Fl_Button *)0;
static void cb_bCWIDModes(Fl_Button* o, void*) {
mode_browser->label(o->label());
mode_browser->callback(0);
mode_browser->show(&progdefaults.cwid_modes);
progdefaults.changed = true;
}
Fl_Group *tabMisc=(Fl_Group *)0;
Fl_Tabs *tabsMisc=(Fl_Tabs *)0;
Fl_Group *tabCPUspeed=(Fl_Group *)0;
Fl_Check_Button *chkSlowCpu=(Fl_Check_Button *)0;
static void cb_chkSlowCpu(Fl_Check_Button* o, void*) {
progdefaults.slowcpu = o->value();
progdefaults.changed = true;
}
Fl_Group *tabNBEMS=(Fl_Group *)0;
Fl_Check_Button *chkAutoExtract=(Fl_Check_Button *)0;
static void cb_chkAutoExtract(Fl_Check_Button* o, void*) {
progdefaults.autoextract = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *chk_open_wrap_folder=(Fl_Check_Button *)0;
static void cb_chk_open_wrap_folder(Fl_Check_Button* o, void*) {
progdefaults.open_nbems_folder = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *chk_open_flmsg=(Fl_Check_Button *)0;
static void cb_chk_open_flmsg(Fl_Check_Button* o, void*) {
progdefaults.open_flmsg = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *chk_open_flmsg_print=(Fl_Check_Button *)0;
static void cb_chk_open_flmsg_print(Fl_Check_Button* o, void*) {
progdefaults.open_flmsg_print = o->value();
progdefaults.changed = true;
}
Fl_Input2 *txt_flmsg_pathname=(Fl_Input2 *)0;
static void cb_txt_flmsg_pathname(Fl_Input2* o, void*) {
progdefaults.flmsg_pathname = o->value();
progdefaults.changed = true;
}
Fl_Button *btn_select_flmsg=(Fl_Button *)0;
static void cb_btn_select_flmsg(Fl_Button*, void*) {
select_flmsg_pathname();
}
Fl_Value_Slider *sldr_extract_timeout=(Fl_Value_Slider *)0;
static void cb_sldr_extract_timeout(Fl_Value_Slider* o, void*) {
progdefaults.extract_timeout=o->value();
progdefaults.changed=true;
}
Fl_Group *tabPskmail=(Fl_Group *)0;
Fl_Counter2 *cntServerCarrier=(Fl_Counter2 *)0;
static void cb_cntServerCarrier(Fl_Counter2* o, void*) {
progdefaults.ServerCarrier = (int)o->value();
wf->redraw_marker();
progdefaults.changed = true;
}
Fl_Counter2 *cntServerOffset=(Fl_Counter2 *)0;
static void cb_cntServerOffset(Fl_Counter2* o, void*) {
progdefaults.ServerOffset = (int)o->value();
wf->redraw_marker();
progdefaults.changed = true;
}
Fl_Counter2 *cntServerACQsn=(Fl_Counter2 *)0;
static void cb_cntServerACQsn(Fl_Counter2* o, void*) {
progdefaults.ServerACQsn = o->value();
progdefaults.changed = true;
}
Fl_Counter2 *cntServerAFCrange=(Fl_Counter2 *)0;
static void cb_cntServerAFCrange(Fl_Counter2* o, void*) {
progdefaults.ServerAFCrange = (int)o->value();
wf->redraw_marker();
progdefaults.changed = true;
}
Fl_Check_Button *btnPSKmailSweetSpot=(Fl_Check_Button *)0;
static void cb_btnPSKmailSweetSpot(Fl_Check_Button* o, void*) {
progdefaults.PSKmailSweetSpot = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn_arq_s2n_report=(Fl_Check_Button *)0;
static void cb_btn_arq_s2n_report(Fl_Check_Button* o, void*) {
progdefaults.Pskmails2nreport=o->value();
}
Fl_Group *tabSpot=(Fl_Group *)0;
Fl_Check_Button *btnPSKRepAuto=(Fl_Check_Button *)0;
static void cb_btnPSKRepAuto(Fl_Check_Button* o, void*) {
progdefaults.pskrep_auto = o->value();
btnPSKRepInit->labelcolor(FL_RED);
btnPSKRepInit->redraw_label();
progdefaults.changed = true;
}
Fl_Check_Button *btnPSKRepLog=(Fl_Check_Button *)0;
static void cb_btnPSKRepLog(Fl_Check_Button* o, void*) {
progdefaults.pskrep_log = o->value();
btnPSKRepInit->labelcolor(FL_RED);
btnPSKRepInit->redraw_label();
progdefaults.changed = true;
}
Fl_Check_Button *btnPSKRepQRG=(Fl_Check_Button *)0;
static void cb_btnPSKRepQRG(Fl_Check_Button* o, void*) {
progdefaults.pskrep_qrg = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn_report_when_visible=(Fl_Check_Button *)0;
static void cb_btn_report_when_visible(Fl_Check_Button* o, void*) {
progdefaults.report_when_visible = o->value();
progdefaults.changed = true;
}
Fl_Input2 *inpPSKRepHost=(Fl_Input2 *)0;
static void cb_inpPSKRepHost(Fl_Input2* o, void*) {
progdefaults.pskrep_host = o->value();
btnPSKRepInit->labelcolor(FL_RED);
btnPSKRepInit->redraw_label();
progdefaults.changed = true;
}
Fl_Input2 *inpPSKRepPort=(Fl_Input2 *)0;
static void cb_inpPSKRepPort(Fl_Input2* o, void*) {
progdefaults.pskrep_port = o->value();
btnPSKRepInit->labelcolor(FL_RED);
btnPSKRepInit->redraw_label();
progdefaults.changed = true;
}
Fl_Button *btnPSKRepInit=(Fl_Button *)0;
static void cb_btnPSKRepInit(Fl_Button* o, void*) {
pskrep_stop();
if (!pskrep_start()) {
boxPSKRepMsg->copy_label(pskrep_error());
progdefaults.usepskrep = false;
} else {
boxPSKRepMsg->label(0);
o->labelcolor(FL_FOREGROUND_COLOR);
progdefaults.usepskrep = true;
}
progdefaults.changed = true;
}
Fl_Box *boxPSKRepMsg=(Fl_Box *)0;
Fl_Group *tabSweetSpot=(Fl_Group *)0;
Fl_Value_Input2 *valCWsweetspot=(Fl_Value_Input2 *)0;
static void cb_valCWsweetspot(Fl_Value_Input2* o, void*) {
progdefaults.CWsweetspot=o->value();
progdefaults.changed = true;
}
Fl_Value_Input2 *valRTTYsweetspot=(Fl_Value_Input2 *)0;
static void cb_valRTTYsweetspot(Fl_Value_Input2* o, void*) {
progdefaults.RTTYsweetspot=o->value();
progdefaults.changed = true;
}
Fl_Value_Input2 *valPSKsweetspot=(Fl_Value_Input2 *)0;
static void cb_valPSKsweetspot(Fl_Value_Input2* o, void*) {
progdefaults.PSKsweetspot=o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnStartAtSweetSpot=(Fl_Check_Button *)0;
static void cb_btnStartAtSweetSpot(Fl_Check_Button* o, void*) {
progdefaults.StartAtSweetSpot = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnCWIsLSB=(Fl_Check_Button *)0;
static void cb_btnCWIsLSB(Fl_Check_Button* o, void*) {
progdefaults.CWIsLSB=o->value();
progdefaults.changed=true;
}
Fl_Group *tabText_IO=(Fl_Group *)0;
Fl_Group *grpTalker=(Fl_Group *)0;
Fl_Light_Button *btnConnectTalker=(Fl_Light_Button *)0;
static void cb_btnConnectTalker(Fl_Light_Button* o, void*) {
if (o->value()) open_talker();
else close_talker();
}
Fl_Check_Button *btn_auto_talk=(Fl_Check_Button *)0;
static void cb_btn_auto_talk(Fl_Check_Button* o, void*) {
progdefaults.auto_talk = o->value();
}
Fl_Check_Button *chkRxStream=(Fl_Check_Button *)0;
static void cb_chkRxStream(Fl_Check_Button* o, void*) {
progdefaults.speak = o->value();
progdefaults.changed = true;
}
Fl_Group *tabDTMF=(Fl_Group *)0;
Fl_Check_Button *chkDTMFdecode=(Fl_Check_Button *)0;
static void cb_chkDTMFdecode(Fl_Check_Button* o, void*) {
progdefaults.DTMFdecode = o->value();
}
Fl_Group *tabWX=(Fl_Group *)0;
Fl_Input *inpWXsta=(Fl_Input *)0;
static void cb_inpWXsta(Fl_Input* o, void*) {
progdefaults.wx_sta = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn_wx_full=(Fl_Check_Button *)0;
static void cb_btn_wx_full(Fl_Check_Button* o, void*) {
progdefaults.wx_full=o->value();
progdefaults.changed = true;
}
static void cb_End(Fl_Input* o, void*) {
progdefaults.wx_eoh = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn_wx_station_name=(Fl_Check_Button *)0;
static void cb_btn_wx_station_name(Fl_Check_Button* o, void*) {
progdefaults.wx_station_name = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn_wx_condx=(Fl_Check_Button *)0;
static void cb_btn_wx_condx(Fl_Check_Button* o, void*) {
progdefaults.wx_condx=o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn_wx_fahrenheit=(Fl_Check_Button *)0;
static void cb_btn_wx_fahrenheit(Fl_Check_Button* o, void*) {
progdefaults.wx_fahrenheit=o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn_wx_celsius=(Fl_Check_Button *)0;
static void cb_btn_wx_celsius(Fl_Check_Button* o, void*) {
progdefaults.wx_celsius=o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn_wx_mph=(Fl_Check_Button *)0;
static void cb_btn_wx_mph(Fl_Check_Button* o, void*) {
progdefaults.wx_mph=o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn_wx_kph=(Fl_Check_Button *)0;
static void cb_btn_wx_kph(Fl_Check_Button* o, void*) {
progdefaults.wx_kph=o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn_wx_inches=(Fl_Check_Button *)0;
static void cb_btn_wx_inches(Fl_Check_Button* o, void*) {
progdefaults.wx_inches=o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn_wx_mbars=(Fl_Check_Button *)0;
static void cb_btn_wx_mbars(Fl_Check_Button* o, void*) {
progdefaults.wx_mbars=o->value();
progdefaults.changed = true;
}
Fl_Button *btn_metar_search=(Fl_Button *)0;
static void cb_btn_metar_search(Fl_Button*, void*) {
get_METAR_station();
}
Fl_Group *tabKML=(Fl_Group *)0;
Fl_Input *btnKmlSaveDir=(Fl_Input *)0;
static void cb_btnKmlSaveDir(Fl_Input* o, void*) {
progdefaults.kml_save_dir=o->value();
progdefaults.changed = true;
kml_init();
}
Fl_Input *inputKmlRootFile=(Fl_Input *)0;
Fl_Counter *cntKmlMergeDistance=(Fl_Counter *)0;
static void cb_cntKmlMergeDistance(Fl_Counter* o, void*) {
progdefaults.kml_merge_distance = o->value();
progdefaults.changed = true;
kml_init();
}
Fl_Counter *cntKmlRetentionTime=(Fl_Counter *)0;
static void cb_cntKmlRetentionTime(Fl_Counter* o, void*) {
progdefaults.kml_retention_time = o->value();
progdefaults.changed = true;
kml_init();
}
Fl_Spinner2 *cntKmlRefreshInterval=(Fl_Spinner2 *)0;
static void cb_cntKmlRefreshInterval(Fl_Spinner2* o, void*) {
progdefaults.kml_refresh_interval = (int)(o->value());
progdefaults.changed = true;
kml_init();
}
Fl_ListBox *listbox_kml_balloon_style=(Fl_ListBox *)0;
static void cb_listbox_kml_balloon_style(Fl_ListBox* o, void*) {
progdefaults.kml_balloon_style = o->index();
progdefaults.changed = true;
kml_init();
}
Fl_Input *btnKmlCommand=(Fl_Input *)0;
static void cb_btnKmlCommand(Fl_Input* o, void*) {
progdefaults.kml_command=o->value();
progdefaults.changed = true;
kml_init();
}
Fl_Button *btlTestKmlCommand=(Fl_Button *)0;
static void cb_btlTestKmlCommand(Fl_Button*, void*) {
KmlServer::SpawnProcess();
}
Fl_Button *btnSelectKmlDestDir=(Fl_Button *)0;
static void cb_btnSelectKmlDestDir(Fl_Button*, void*) {
Fl_File_Chooser *fc = new Fl_File_Chooser(".",NULL,Fl_File_Chooser::DIRECTORY,"Input File");
fc->callback(KmlDestDirSet);
fc->show();
}
Fl_Button *btlPurge=(Fl_Button *)0;
static void cb_btlPurge(Fl_Button*, void*) {
KmlServer::GetInstance()->Reset();
}
Fl_Check_Button *btnKmlPurgeOnStartup=(Fl_Check_Button *)0;
static void cb_btnKmlPurgeOnStartup(Fl_Check_Button* o, void*) {
progdefaults.kml_purge_on_startup = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn_kml_enabled=(Fl_Check_Button *)0;
static void cb_btn_kml_enabled(Fl_Check_Button* o, void*) {
progdefaults.kml_enabled = o->value();
if (progdefaults.kml_enabled) {
kml_init(true);
progdefaults.changed = true;
} else {
KmlServer::Exit();
};
}
Fl_Group *tabQRZ=(Fl_Group *)0;
Fl_Tabs *tabsQRZ=(Fl_Tabs *)0;
Fl_Round_Button *btnQRZWEBnotavailable=(Fl_Round_Button *)0;
static void cb_btnQRZWEBnotavailable(Fl_Round_Button* o, void*) {
set_qrzweb_buttons(o);
progdefaults.QRZWEB = QRZWEBNONE;
progdefaults.changed = true;
}
Fl_Round_Button *btnQRZonline=(Fl_Round_Button *)0;
static void cb_btnQRZonline(Fl_Round_Button* o, void*) {
set_qrzweb_buttons(o);
progdefaults.QRZWEB = QRZHTML;
progdefaults.changed = true;
}
Fl_Round_Button *btnHAMCALLonline=(Fl_Round_Button *)0;
static void cb_btnHAMCALLonline(Fl_Round_Button* o, void*) {
set_qrzweb_buttons(o);
progdefaults.QRZWEB = HAMCALLHTML;
progdefaults.changed = true;
}
Fl_Round_Button *btnHamQTHonline=(Fl_Round_Button *)0;
static void cb_btnHamQTHonline(Fl_Round_Button* o, void*) {
set_qrzweb_buttons(o);
progdefaults.QRZWEB = HAMQTHHTML;
progdefaults.changed = true;
}
Fl_Input2 *inp_qrzurl=(Fl_Input2 *)0;
static void cb_inp_qrzurl(Fl_Input2* o, void*) {
progdefaults.qrzurl = o->value();
progdefaults.changed=true;
}
Fl_Input2 *inp_hamcallurl=(Fl_Input2 *)0;
static void cb_inp_hamcallurl(Fl_Input2* o, void*) {
progdefaults.hamcallurl = o->value();
progdefaults.changed = true;
}
Fl_Input2 *inp_hamqthurl=(Fl_Input2 *)0;
static void cb_inp_hamqthurl(Fl_Input2* o, void*) {
progdefaults.hamqthurl = o->value();
progdefaults.changed = true;
}
Fl_Round_Button *btnQRZXMLnotavailable=(Fl_Round_Button *)0;
static void cb_btnQRZXMLnotavailable(Fl_Round_Button* o, void*) {
set_qrzxml_buttons(o);
progdefaults.QRZXML = QRZXMLNONE;
progdefaults.changed = true;
}
Fl_Round_Button *btnQRZcdrom=(Fl_Round_Button *)0;
static void cb_btnQRZcdrom(Fl_Round_Button* o, void*) {
set_qrzxml_buttons(o);
progdefaults.QRZXML = QRZCD;
progdefaults.changed = true;
}
Fl_Round_Button *btnQRZsub=(Fl_Round_Button *)0;
static void cb_btnQRZsub(Fl_Round_Button* o, void*) {
set_qrzxml_buttons(o);
progdefaults.QRZXML = QRZNET;
progdefaults.changed = true;
}
Fl_Round_Button *btnHamcall=(Fl_Round_Button *)0;
static void cb_btnHamcall(Fl_Round_Button* o, void*) {
set_qrzxml_buttons(o);
progdefaults.QRZXML = HAMCALLNET;
progdefaults.changed = true;
}
Fl_Round_Button *btnHamQTH=(Fl_Round_Button *)0;
static void cb_btnHamQTH(Fl_Round_Button* o, void*) {
set_qrzxml_buttons(o);
progdefaults.QRZXML = HAMQTH;
progdefaults.changed = true;
}
Fl_Round_Button *btnCALLOOK=(Fl_Round_Button *)0;
static void cb_btnCALLOOK(Fl_Round_Button* o, void*) {
set_qrzxml_buttons(o);
progdefaults.QRZXML = CALLOOK;
progdefaults.changed = true;
}
Fl_Input2 *txtQRZpathname=(Fl_Input2 *)0;
static void cb_txtQRZpathname(Fl_Input2* o, void*) {
progdefaults.QRZpathname = o->value();
progdefaults.QRZchanged = true;
progdefaults.changed = true;
}
Fl_Input2 *inpQRZusername=(Fl_Input2 *)0;
static void cb_inpQRZusername(Fl_Input2* o, void*) {
progdefaults.QRZusername = o->value();
progdefaults.changed = true;
}
Fl_Input2 *inpQRZuserpassword=(Fl_Input2 *)0;
static void cb_inpQRZuserpassword(Fl_Input2* o, void*) {
progdefaults.QRZuserpassword = o->value();
progdefaults.changed = true;
}
Fl_Button *btnQRZpasswordShow=(Fl_Button *)0;
static void cb_btnQRZpasswordShow(Fl_Button* o, void*) {
inpQRZuserpassword->type(inpQRZuserpassword->type() ^ FL_SECRET_INPUT);
inpQRZuserpassword->redraw();
o->label((inpQRZuserpassword->type() & FL_SECRET_INPUT) ? "Show" : "Hide");
}
Fl_Check_Button *btn_notes_address=(Fl_Check_Button *)0;
static void cb_btn_notes_address(Fl_Check_Button* o, void*) {
progdefaults.notes_address = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn_clear_notes=(Fl_Check_Button *)0;
static void cb_btn_clear_notes(Fl_Check_Button* o, void*) {
progdefaults.clear_notes = o->value();
progdefaults.changed= true;
}
Fl_Input2 *inpEQSL_id=(Fl_Input2 *)0;
static void cb_inpEQSL_id(Fl_Input2* o, void*) {
progdefaults.eqsl_id = o->value();
progdefaults.changed = true;
}
Fl_Input2 *inpEQSL_pwd=(Fl_Input2 *)0;
static void cb_inpEQSL_pwd(Fl_Input2* o, void*) {
progdefaults.eqsl_pwd = o->value();
progdefaults.changed = true;
}
Fl_Button *btnEQSL_pwd_show=(Fl_Button *)0;
static void cb_btnEQSL_pwd_show(Fl_Button* o, void*) {
inpEQSL_pwd->type(inpEQSL_pwd->type() ^ FL_SECRET_INPUT);
inpEQSL_pwd->redraw();
o->label((inpEQSL_pwd->type() & FL_SECRET_INPUT) ? _("Show") : _("Hide"));
}
Fl_Input2 *inpEQSL_nick=(Fl_Input2 *)0;
static void cb_inpEQSL_nick(Fl_Input2* o, void*) {
progdefaults.eqsl_nick = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn_send_when_logged=(Fl_Check_Button *)0;
static void cb_btn_send_when_logged(Fl_Check_Button* o, void*) {
progdefaults.eqsl_when_logged = o->value();
progdefaults.changed = true;
}
Fl_Input2 *txt_eqsl_default_message=(Fl_Input2 *)0;
static void cb_txt_eqsl_default_message(Fl_Input2* o, void*) {
progdefaults.eqsl_default_message = o->value();
progdefaults.changed = true;
}
Fl_Box *eqsl_txt1=(Fl_Box *)0;
Fl_Box *eqsl_txt2=(Fl_Box *)0;
Fl_Box *eqsl_txt3=(Fl_Box *)0;
Fl_Check_Button *btn_send_datetime_off=(Fl_Check_Button *)0;
static void cb_btn_send_datetime_off(Fl_Check_Button* o, void*) {
progdefaults.eqsl_datetime_off = o->value();
progdefaults.changed = true;
}
Fl_Group *tabAutoStart=(Fl_Group *)0;
static void cb_tabAutoStart(Fl_Group*, void*) {
progdefaults.changed = true;
}
Fl_Input2 *txt_auto_flrig_pathname=(Fl_Input2 *)0;
static void cb_txt_auto_flrig_pathname(Fl_Input2* o, void*) {
progdefaults.auto_flrig_pathname = o->value();
progdefaults.changed = true;
}
Fl_Button *btn_select_flrig=(Fl_Button *)0;
static void cb_btn_select_flrig(Fl_Button*, void*) {
std::string str = select_binary_pathname(progdefaults.auto_flrig_pathname);
txt_auto_flrig_pathname->value(str.c_str());
progdefaults.auto_flrig_pathname = str;
progdefaults.changed = true;
}
Fl_Input2 *txt_auto_flamp_pathname=(Fl_Input2 *)0;
static void cb_txt_auto_flamp_pathname(Fl_Input2* o, void*) {
progdefaults.auto_flamp_pathname = o->value();
progdefaults.changed = true;
}
Fl_Button *btn_select_auto_flamp=(Fl_Button *)0;
static void cb_btn_select_auto_flamp(Fl_Button*, void*) {
std::string str = select_binary_pathname(progdefaults.auto_flamp_pathname);
txt_auto_flamp_pathname->value(str.c_str());
progdefaults.auto_flamp_pathname = str;
progdefaults.changed = true;
}
Fl_Input2 *txt_auto_flnet_pathname=(Fl_Input2 *)0;
static void cb_txt_auto_flnet_pathname(Fl_Input2* o, void*) {
progdefaults.flnet_pathname = o->value();
progdefaults.changed = true;
}
Fl_Button *btn_select_auto_flnet=(Fl_Button *)0;
static void cb_btn_select_auto_flnet(Fl_Button*, void*) {
std::string str = select_binary_pathname(progdefaults.auto_flnet_pathname);
txt_auto_flnet_pathname->value(str.c_str());
progdefaults.auto_flnet_pathname = str;
progdefaults.changed = true;
}
Fl_Input2 *txt_auto_fllog_pathname=(Fl_Input2 *)0;
static void cb_txt_auto_fllog_pathname(Fl_Input2* o, void*) {
progdefaults.auto_fllog_pathname = o->value();
progdefaults.changed = true;
}
Fl_Button *btn_select_fllog=(Fl_Button *)0;
static void cb_btn_select_fllog(Fl_Button*, void*) {
std::string str = select_binary_pathname(progdefaults.auto_fllog_pathname);
txt_auto_fllog_pathname->value(str.c_str());
progdefaults.auto_fllog_pathname = str;
progdefaults.changed = true;
}
Fl_Input2 *txt_auto_prog1_pathname=(Fl_Input2 *)0;
static void cb_txt_auto_prog1_pathname(Fl_Input2* o, void*) {
progdefaults.auto_prog1_pathname = o->value();
progdefaults.changed = true;
}
Fl_Button *btn_select_prog1=(Fl_Button *)0;
static void cb_btn_select_prog1(Fl_Button*, void*) {
std::string str = select_binary_pathname(progdefaults.auto_prog1_pathname);
txt_auto_prog1_pathname->value(str.c_str());
progdefaults.auto_prog1_pathname = str;
progdefaults.changed = true;
}
Fl_Input2 *txt_auto_prog2_pathname=(Fl_Input2 *)0;
static void cb_txt_auto_prog2_pathname(Fl_Input2* o, void*) {
progdefaults.auto_prog2_pathname = o->value();
progdefaults.changed = true;
}
Fl_Button *btn_select_prog2=(Fl_Button *)0;
static void cb_btn_select_prog2(Fl_Button*, void*) {
std::string str = select_binary_pathname(progdefaults.auto_prog2_pathname);
txt_auto_prog2_pathname->value(str.c_str());
progdefaults.auto_prog2_pathname = str;
progdefaults.changed = true;
}
Fl_Input2 *txt_auto_prog3_pathname=(Fl_Input2 *)0;
static void cb_txt_auto_prog3_pathname(Fl_Input2* o, void*) {
progdefaults.auto_prog3_pathname = o->value();
progdefaults.changed = true;
}
Fl_Button *btn_select_prog3=(Fl_Button *)0;
static void cb_btn_select_prog3(Fl_Button*, void*) {
std::string str = select_binary_pathname(progdefaults.auto_prog3_pathname);
txt_auto_prog3_pathname->value(str.c_str());
progdefaults.auto_prog3_pathname = str;
progdefaults.changed = true;
}
Fl_Check_Button *btn_flrig_auto_enable=(Fl_Check_Button *)0;
static void cb_btn_flrig_auto_enable(Fl_Check_Button* o, void*) {
progdefaults.flrig_auto_enable = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn_flamp_auto_enable=(Fl_Check_Button *)0;
static void cb_btn_flamp_auto_enable(Fl_Check_Button* o, void*) {
progdefaults.flamp_auto_enable = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn_flnet_auto_enable=(Fl_Check_Button *)0;
static void cb_btn_flnet_auto_enable(Fl_Check_Button* o, void*) {
progdefaults.flnet_auto_enable = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn_fllog_auto_enable=(Fl_Check_Button *)0;
static void cb_btn_fllog_auto_enable(Fl_Check_Button* o, void*) {
progdefaults.fllog_auto_enable = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn_prog1_auto_enable=(Fl_Check_Button *)0;
static void cb_btn_prog1_auto_enable(Fl_Check_Button* o, void*) {
progdefaults.prog1_auto_enable = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn_prog2_auto_enable=(Fl_Check_Button *)0;
static void cb_btn_prog2_auto_enable(Fl_Check_Button* o, void*) {
progdefaults.prog2_auto_enable = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btn_prog3_auto_enable=(Fl_Check_Button *)0;
static void cb_btn_prog3_auto_enable(Fl_Check_Button* o, void*) {
progdefaults.prog3_auto_enable = o->value();
progdefaults.changed = true;
}
Fl_Button *btn_test_flrig=(Fl_Button *)0;
static void cb_btn_test_flrig(Fl_Button*, void*) {
start_process(progdefaults.auto_flrig_pathname);
}
Fl_Button *btn_test_flamp=(Fl_Button *)0;
static void cb_btn_test_flamp(Fl_Button*, void*) {
start_process(progdefaults.auto_flamp_pathname);
}
Fl_Button *btn_test_flnet=(Fl_Button *)0;
static void cb_btn_test_flnet(Fl_Button*, void*) {
start_process(progdefaults.auto_flnet_pathname);
}
Fl_Button *btn_test_fllog=(Fl_Button *)0;
static void cb_btn_test_fllog(Fl_Button*, void*) {
start_process(progdefaults.auto_fllog_pathname);
}
Fl_Button *btn_test_prog1=(Fl_Button *)0;
static void cb_btn_test_prog1(Fl_Button*, void*) {
start_process(progdefaults.auto_prog1_pathname);
}
Fl_Button *btn_test_prog2=(Fl_Button *)0;
static void cb_btn_test_prog2(Fl_Button*, void*) {
start_process(progdefaults.auto_prog2_pathname);
}
Fl_Button *btn_test_prog3=(Fl_Button *)0;
static void cb_btn_test_prog3(Fl_Button*, void*) {
start_process(progdefaults.auto_prog3_pathname);
}
Fl_Group *tabIO=(Fl_Group *)0;
static void cb_tabIO(Fl_Group*, void*) {
btnDisable_p2p_io_widgets->value(1);
}
Fl_Check_Button *btnDisable_p2p_io_widgets=(Fl_Check_Button *)0;
static void cb_btnDisable_p2p_io_widgets(Fl_Check_Button* o, long) {
progStatus.ip_lock = o->value();
if(o->value())
disable_config_p2p_io_widgets();
else
enable_config_p2p_io_widgets();
kiss_io_set_button_state(0);
}
Fl_Check_Button *btnEnable_arq=(Fl_Check_Button *)0;
static void cb_btnEnable_arq(Fl_Check_Button* o, void*) {
if(o->value()) {
progdefaults.changed = true;
progdefaults.data_io_enabled = ARQ_IO;
data_io_enabled = ARQ_IO;
enable_disable_kpsql();
}
progdefaults.changed = true;
}
Fl_Check_Button *btnEnable_kiss=(Fl_Check_Button *)0;
static void cb_btnEnable_kiss(Fl_Check_Button* o, void*) {
if(o->value()) {
progdefaults.data_io_enabled = KISS_IO;
data_io_enabled = KISS_IO;
enable_disable_kpsql();
}
progdefaults.changed = true;
}
Fl_Check_Button *btnEnable_ax25_decode=(Fl_Check_Button *)0;
static void cb_btnEnable_ax25_decode(Fl_Check_Button* o, void*) {
if(o->value())
progdefaults.ax25_decode_enabled = true;
else
progdefaults.ax25_decode_enabled = false;
progdefaults.changed = true;
}
Fl_Check_Button *btnEnable_csma=(Fl_Check_Button *)0;
static void cb_btnEnable_csma(Fl_Check_Button* o, void*) {
if(o->value()) {
progdefaults.csma_enabled = true;
} else {
progdefaults.csma_enabled = false;
}
progdefaults.changed = true;
}
Fl_Button *btnDefault_kiss_ip=(Fl_Button *)0;
static void cb_btnDefault_kiss_ip(Fl_Button*, void*) {
set_ip_to_default(KISS_IO);
progdefaults.changed = true;
}
Fl_Input2 *txtKiss_ip_address=(Fl_Input2 *)0;
static void cb_txtKiss_ip_address(Fl_Input2* o, void*) {
progdefaults.kiss_address = o->value();
progdefaults.changed = true;
}
Fl_Counter *cntKPSQLAttenuation=(Fl_Counter *)0;
static void cb_cntKPSQLAttenuation(Fl_Counter* o, void*) {
progdefaults.kpsql_attenuation = (int) o->value();
update_kpsql_fractional_gain(progdefaults.kpsql_attenuation);
progdefaults.changed = true;
}
Fl_Input2 *txtKiss_ip_io_port_no=(Fl_Input2 *)0;
static void cb_txtKiss_ip_io_port_no(Fl_Input2* o, void*) {
progdefaults.kiss_io_port = o->value();
progdefaults.changed = true;
}
Fl_Counter *cntBusyChannelSeconds=(Fl_Counter *)0;
static void cb_cntBusyChannelSeconds(Fl_Counter* o, void*) {
progdefaults.busyChannelSeconds = (int) o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnEnableBusyChannel=(Fl_Check_Button *)0;
static void cb_btnEnableBusyChannel(Fl_Check_Button* o, void*) {
if(o->value())
progdefaults.enableBusyChannel = true;
else
progdefaults.enableBusyChannel = false;
progdefaults.changed = true;
}
Fl_Input2 *txtKiss_ip_out_port_no=(Fl_Input2 *)0;
static void cb_txtKiss_ip_out_port_no(Fl_Input2* o, void*) {
progdefaults.kiss_out_port = o->value();
progdefaults.changed = true;
}
Fl_Check_Button *btnEnable_dual_port=(Fl_Check_Button *)0;
static void cb_btnEnable_dual_port(Fl_Check_Button* o, void*) {
if(o->value())
progdefaults.kiss_dual_port_enabled = true;
else
progdefaults.kiss_dual_port_enabled = false;
progdefaults.changed = true;
}
Fl_Button *btn_restart_kiss=(Fl_Button *)0;
static void cb_btn_restart_kiss(Fl_Button*, void*) {
//restart_kiss_server();
}
Fl_Button *btn_connect_kiss_io=(Fl_Button *)0;
static void cb_btn_connect_kiss_io(Fl_Button*, void*) {
connect_to_kiss_io();
}
Fl_Check_Button *btnKissTCPIO=(Fl_Check_Button *)0;
static void cb_btnKissTCPIO(Fl_Check_Button* o, void*) {
if(o->value()) {
progdefaults.kiss_tcp_io = true;
progStatus.kiss_tcp_io = true;
} else {
progStatus.kiss_tcp_io = false;
progdefaults.kiss_tcp_io = false;
}
kiss_io_set_button_state(0);
}
Fl_Check_Button *btnKissUDPIO=(Fl_Check_Button *)0;
static void cb_btnKissUDPIO(Fl_Check_Button* o, void*) {
if(o->value()) {
progdefaults.kiss_tcp_io = false;
progStatus.kiss_tcp_io = false;
} else {
progStatus.kiss_tcp_io = true;
progdefaults.kiss_tcp_io = true;
}
kiss_io_set_button_state(0);
}
Fl_Check_Button *btnKissTCPListen=(Fl_Check_Button *)0;
static void cb_btnKissTCPListen(Fl_Check_Button* o, void*) {
if(o->value()) {
progdefaults.kiss_tcp_listen = true;
progStatus.kiss_tcp_listen = true;
} else {
progStatus.kiss_tcp_listen = false;
progdefaults.kiss_tcp_listen = false;
};
}
Fl_Input2 *txtArq_ip_address=(Fl_Input2 *)0;
static void cb_txtArq_ip_address(Fl_Input2* o, void*) {
progdefaults.arq_address = o->value();
progdefaults.changed = true;
}
Fl_Input2 *txtArq_ip_port_no=(Fl_Input2 *)0;
static void cb_txtArq_ip_port_no(Fl_Input2* o, void*) {
progdefaults.arq_port = o->value();
progdefaults.changed = true;
}
Fl_Button *btnDefault_arq_ip=(Fl_Button *)0;
static void cb_btnDefault_arq_ip(Fl_Button*, void*) {
set_ip_to_default(ARQ_IO);
progdefaults.changed = true;
}
Fl_Button *btn_restart_arq=(Fl_Button *)0;
static void cb_btn_restart_arq(Fl_Button*, void*) {
//arq_restart();
}
Fl_Button *btnDefault_xmlrpc_ip=(Fl_Button *)0;
static void cb_btnDefault_xmlrpc_ip(Fl_Button*, void*) {
set_ip_to_default(XMLRPC_IO);
progdefaults.changed = true;
}
Fl_Input2 *txtXmlrpc_ip_address=(Fl_Input2 *)0;
static void cb_txtXmlrpc_ip_address(Fl_Input2* o, void*) {
progdefaults.xmlrpc_address = o->value();
progdefaults.changed = true;
}
Fl_Input2 *txtXmlrpc_ip_port_no=(Fl_Input2 *)0;
static void cb_txtXmlrpc_ip_port_no(Fl_Input2* o, void*) {
progdefaults.xmlrpc_port = o->value();
progdefaults.changed = true;
}
Fl_Button *btn_restart_xml=(Fl_Button *)0;
static void cb_btn_restart_xml(Fl_Button*, void*) {
//restart_xml_server();
}
Fl_Button *btnDefault_flrig_ip=(Fl_Button *)0;
static void cb_btnDefault_flrig_ip(Fl_Button*, void*) {
set_ip_to_default(FLRIG_IO);
progdefaults.changed = true;
}
Fl_Input2 *txt_flrig_ip_address=(Fl_Input2 *)0;
static void cb_txt_flrig_ip_address(Fl_Input2* o, void*) {
progdefaults.flrig_ip_address = o->value();
progdefaults.changed = true;
}
Fl_Input2 *txt_flrig_ip_port=(Fl_Input2 *)0;
static void cb_txt_flrig_ip_port(Fl_Input2* o, void*) {
progdefaults.flrig_ip_port = o->value();
progdefaults.changed = true;
}
Fl_Button *btn_reconnect_flrig_server=(Fl_Button *)0;
static void cb_btn_reconnect_flrig_server(Fl_Button*, void*) {
reconnect_to_flrig();
}
Fl_Input *txt_fllog_ip_address=(Fl_Input *)0;
static void cb_txt_fllog_ip_address(Fl_Input* o, void*) {
progdefaults.xmllog_address = o->value();
}
Fl_Input *txt_fllog_ip_port=(Fl_Input *)0;
static void cb_txt_fllog_ip_port(Fl_Input* o, void*) {
progdefaults.xmllog_port = o->value();
}
Fl_Button *btn_reconnect_log_server=(Fl_Button *)0;
static void cb_btn_reconnect_log_server(Fl_Button*, void*) {
progdefaults.xml_logbook = true;
progdefaults.changed = true;
connect_to_log_server();
}
Fl_Button *btnDefault_fllog_ip=(Fl_Button *)0;
static void cb_btnDefault_fllog_ip(Fl_Button*, void*) {
set_ip_to_default(FLLOG_IO);
progdefaults.changed = true;
}
Fl_Button *btnSaveConfig=(Fl_Button *)0;
static void cb_btnSaveConfig(Fl_Button*, void*) {
progdefaults.saveDefaults();
}
Fl_Return_Button *btnCloseConfig=(Fl_Return_Button *)0;
static void cb_btnCloseConfig(Fl_Return_Button*, void*) {
closeDialog();
}
Fl_Button *btnResetConfig=(Fl_Button *)0;
static void cb_btnResetConfig(Fl_Button*, void*) {
progdefaults.resetDefaults();
progdefaults.changed = false;
}
Fl_Double_Window* ConfigureDialog() {
Fl_Double_Window* w;
font_browser = new Font_Browser;
static const char szShifts[] = "23|85|160|170|182|200|240|350|425|850|Custom";
static const char szBauds[] = "45|45.45|50|56|75|100|110|150|200|300";
static const char szSelBits[] = "5 (baudot)|7 (ascii)|8 (ascii)";
static const char szParity[] = "none|even|odd|zero|one";
static const char szStopBits[] = "1|1.5|2";
static const char szOliviaTones[] = "2|4|8|16|32|64|128|256";
static const char szOliviaBandwidth[] = "125|250|500|1000|2000";
static const char szContestiaTones[] = "2|4|8|16|32|64|128|256";
static const char szContestiaBandwidth[] = "125|250|500|1000|2000";
static const char szBaudRates[] = "300|600|1200|2400|4800|9600|19200|38400|57600|115200|230400|460800";
static const char szProsigns[] = "~|%|&|+|=|{|}|<|>|[|]| ";
{ Fl_Double_Window* o = new Fl_Double_Window(600, 415, _("Fldigi configuration"));
w = o;
o->color(FL_DARK2);
o->selection_color((Fl_Color)51);
o->labelsize(18);
o->align(Fl_Align(FL_ALIGN_CLIP|FL_ALIGN_INSIDE));
{ tabsConfigure = new Fl_Tabs(0, 0, 600, 385);
tabsConfigure->color(FL_LIGHT1);
tabsConfigure->selection_color(FL_LIGHT1);
{ tabOperator = new Fl_Group(0, 25, 600, 360, _("Operator"));
tabOperator->tooltip(_("Operator information"));
tabOperator->callback((Fl_Callback*)cb_tabOperator);
tabOperator->when(FL_WHEN_CHANGED);
{ Fl_Group* o = new Fl_Group(55, 35, 490, 170, _("Station"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ inpMyCallsign = new Fl_Input2(160, 64, 110, 24, _("Callsign:"));
inpMyCallsign->tooltip(_("Operators callsign"));
inpMyCallsign->box(FL_DOWN_BOX);
inpMyCallsign->color(FL_BACKGROUND2_COLOR);
inpMyCallsign->selection_color(FL_SELECTION_COLOR);
inpMyCallsign->labeltype(FL_NORMAL_LABEL);
inpMyCallsign->labelfont(0);
inpMyCallsign->labelsize(14);
inpMyCallsign->labelcolor(FL_FOREGROUND_COLOR);
inpMyCallsign->callback((Fl_Callback*)cb_inpMyCallsign);
inpMyCallsign->align(Fl_Align(FL_ALIGN_LEFT));
inpMyCallsign->when(FL_WHEN_RELEASE);
inpMyCallsign->labelsize(FL_NORMAL_SIZE);
} // Fl_Input2* inpMyCallsign
{ inpMyName = new Fl_Input2(340, 64, 140, 24, _("Name:"));
inpMyName->tooltip(_("Operators name"));
inpMyName->box(FL_DOWN_BOX);
inpMyName->color(FL_BACKGROUND2_COLOR);
inpMyName->selection_color(FL_SELECTION_COLOR);
inpMyName->labeltype(FL_NORMAL_LABEL);
inpMyName->labelfont(0);
inpMyName->labelsize(14);
inpMyName->labelcolor(FL_FOREGROUND_COLOR);
inpMyName->callback((Fl_Callback*)cb_inpMyName);
inpMyName->align(Fl_Align(FL_ALIGN_LEFT));
inpMyName->when(FL_WHEN_RELEASE);
inpMyName->labelsize(FL_NORMAL_SIZE);
} // Fl_Input2* inpMyName
{ inpMyQth = new Fl_Input2(160, 98, 320, 24, _("QTH:"));
inpMyQth->tooltip(_("Operators QTH"));
inpMyQth->box(FL_DOWN_BOX);
inpMyQth->color(FL_BACKGROUND2_COLOR);
inpMyQth->selection_color(FL_SELECTION_COLOR);
inpMyQth->labeltype(FL_NORMAL_LABEL);
inpMyQth->labelfont(0);
inpMyQth->labelsize(14);
inpMyQth->labelcolor(FL_FOREGROUND_COLOR);
inpMyQth->callback((Fl_Callback*)cb_inpMyQth);
inpMyQth->align(Fl_Align(FL_ALIGN_LEFT));
inpMyQth->when(FL_WHEN_RELEASE);
inpMyQth->labelsize(FL_NORMAL_SIZE);
} // Fl_Input2* inpMyQth
{ inpMyLocator = new Fl_Input2(160, 133, 85, 24, _("Locator:"));
inpMyLocator->tooltip(_("Maidenhead locator as in EM64qv"));
inpMyLocator->box(FL_DOWN_BOX);
inpMyLocator->color(FL_BACKGROUND2_COLOR);
inpMyLocator->selection_color(FL_SELECTION_COLOR);
inpMyLocator->labeltype(FL_NORMAL_LABEL);
inpMyLocator->labelfont(0);
inpMyLocator->labelsize(14);
inpMyLocator->labelcolor(FL_FOREGROUND_COLOR);
inpMyLocator->callback((Fl_Callback*)cb_inpMyLocator);
inpMyLocator->align(Fl_Align(FL_ALIGN_LEFT));
inpMyLocator->when(FL_WHEN_RELEASE);
inpMyLocator->labelsize(FL_NORMAL_SIZE);
} // Fl_Input2* inpMyLocator
o->end();
} // Fl_Group* o
{ inpMyAntenna = new Fl_Input2(160, 167, 320, 24, _("Antenna:"));
inpMyAntenna->tooltip(_("Short description of antenna"));
inpMyAntenna->box(FL_DOWN_BOX);
inpMyAntenna->color(FL_BACKGROUND2_COLOR);
inpMyAntenna->selection_color(FL_SELECTION_COLOR);
inpMyAntenna->labeltype(FL_NORMAL_LABEL);
inpMyAntenna->labelfont(0);
inpMyAntenna->labelsize(14);
inpMyAntenna->labelcolor(FL_FOREGROUND_COLOR);
inpMyAntenna->callback((Fl_Callback*)cb_inpMyAntenna);
inpMyAntenna->align(Fl_Align(FL_ALIGN_LEFT));
inpMyAntenna->when(FL_WHEN_RELEASE);
inpMyAntenna->labelsize(FL_NORMAL_SIZE);
} // Fl_Input2* inpMyAntenna
{ grpNoise = new Fl_Group(55, 231, 490, 143, _("Test Signal - Do NOT use with transmitter"));
grpNoise->box(FL_ENGRAVED_FRAME);
grpNoise->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
grpNoise->hide();
{ Fl_Check_Button* o = btnNoiseOn = new Fl_Check_Button(93, 269, 70, 15, _("Noise on"));
btnNoiseOn->down_box(FL_DOWN_BOX);
btnNoiseOn->callback((Fl_Callback*)cb_btnNoiseOn);
o->value(progdefaults.noise);
} // Fl_Check_Button* btnNoiseOn
{ Fl_Counter2* o = noiseDB = new Fl_Counter2(340, 264, 130, 21, _("dB"));
noiseDB->box(FL_UP_BOX);
noiseDB->color(FL_BACKGROUND_COLOR);
noiseDB->selection_color(FL_INACTIVE_COLOR);
noiseDB->labeltype(FL_NORMAL_LABEL);
noiseDB->labelfont(0);
noiseDB->labelsize(14);
noiseDB->labelcolor(FL_FOREGROUND_COLOR);
noiseDB->minimum(-18);
noiseDB->maximum(60);
noiseDB->value(20);
noiseDB->callback((Fl_Callback*)cb_noiseDB);
noiseDB->align(Fl_Align(FL_ALIGN_LEFT));
noiseDB->when(FL_WHEN_CHANGED);
o->value(progdefaults.s2n);
o->lstep(1);
} // Fl_Counter2* noiseDB
{ btnOffsetOn = new Fl_Check_Button(93, 307, 70, 15, _("Offset on"));
btnOffsetOn->down_box(FL_DOWN_BOX);
} // Fl_Check_Button* btnOffsetOn
{ Fl_Counter* o = ctrl_freq_offset = new Fl_Counter(340, 304, 130, 21, _("freq-offset"));
ctrl_freq_offset->tooltip(_("ONLY FOR TESTING !"));
ctrl_freq_offset->minimum(-250);
ctrl_freq_offset->maximum(250);
ctrl_freq_offset->align(Fl_Align(FL_ALIGN_LEFT));
o->lstep(10);
} // Fl_Counter* ctrl_freq_offset
{ btn_imd_on = new Fl_Check_Button(93, 342, 70, 15, _("ALC emulation on"));
btn_imd_on->down_box(FL_DOWN_BOX);
} // Fl_Check_Button* btn_imd_on
{ Fl_Counter2* o = xmtimd = new Fl_Counter2(340, 339, 130, 21, _("ALC level"));
xmtimd->box(FL_UP_BOX);
xmtimd->color(FL_BACKGROUND_COLOR);
xmtimd->selection_color(FL_INACTIVE_COLOR);
xmtimd->labeltype(FL_NORMAL_LABEL);
xmtimd->labelfont(0);
xmtimd->labelsize(14);
xmtimd->labelcolor(FL_FOREGROUND_COLOR);
xmtimd->minimum(0.5);
xmtimd->maximum(1);
xmtimd->step(0.01);
xmtimd->value(1);
xmtimd->align(Fl_Align(FL_ALIGN_LEFT));
xmtimd->when(FL_WHEN_CHANGED);
o->lstep(.1);
} // Fl_Counter2* xmtimd
grpNoise->end();
} // Fl_Group* grpNoise
tabOperator->end();
} // Fl_Group* tabOperator
{ tabUI = new Fl_Group(0, 25, 600, 360, _("UI"));
tabUI->tooltip(_("User Interface"));
tabUI->hide();
{ tabsUI = new Fl_Tabs(0, 25, 600, 360);
tabsUI->selection_color(FL_LIGHT1);
{ tabBrowser = new Fl_Group(0, 50, 600, 335, _("Browser"));
tabBrowser->tooltip(_("User Interface - Browser"));
tabBrowser->hide();
{ Fl_Group* o = new Fl_Group(30, 65, 540, 300);
o->box(FL_ENGRAVED_FRAME);
{ Fl_Spinner2* o = cntChannels = new Fl_Spinner2(46, 75, 50, 24, _("Channels, first channel starts at waterfall lower limit"));
cntChannels->tooltip(_("Change # of psk viewer channels"));
cntChannels->box(FL_NO_BOX);
cntChannels->color(FL_BACKGROUND_COLOR);
cntChannels->selection_color(FL_BACKGROUND_COLOR);
cntChannels->labeltype(FL_NORMAL_LABEL);
cntChannels->labelfont(0);
cntChannels->labelsize(14);
cntChannels->labelcolor(FL_FOREGROUND_COLOR);
cntChannels->maximum(30);
cntChannels->value(30);
cntChannels->callback((Fl_Callback*)cb_cntChannels);
cntChannels->align(Fl_Align(FL_ALIGN_RIGHT));
cntChannels->when(FL_WHEN_RELEASE);
o->minimum(5); o->maximum(30); o->step(1);
o->value(progdefaults.VIEWERchannels);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Spinner2* cntChannels
{ Fl_Spinner2* o = cntTimeout = new Fl_Spinner2(46, 111, 50, 24, _("Inactivity timeout"));
cntTimeout->tooltip(_("Clear channel text after\n# seconds of inactivity"));
cntTimeout->box(FL_NO_BOX);
cntTimeout->color(FL_BACKGROUND_COLOR);
cntTimeout->selection_color(FL_BACKGROUND_COLOR);
cntTimeout->labeltype(FL_NORMAL_LABEL);
cntTimeout->labelfont(0);
cntTimeout->labelsize(14);
cntTimeout->labelcolor(FL_FOREGROUND_COLOR);
cntTimeout->value(10);
cntTimeout->callback((Fl_Callback*)cb_cntTimeout);
cntTimeout->align(Fl_Align(FL_ALIGN_RIGHT));
cntTimeout->when(FL_WHEN_RELEASE);
o->minimum(1); o->maximum(180); o->step(1);
o->value(progdefaults.VIEWERtimeout);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Spinner2* cntTimeout
{ Fl_ListBox* o = listboxViewerLabel = new Fl_ListBox(46, 151, 150, 24, _("Channel label"));
listboxViewerLabel->tooltip(_("Appearance of label on each channel"));
listboxViewerLabel->box(FL_DOWN_BOX);
listboxViewerLabel->color(FL_BACKGROUND2_COLOR);
listboxViewerLabel->selection_color(FL_BACKGROUND_COLOR);
listboxViewerLabel->labeltype(FL_NORMAL_LABEL);
listboxViewerLabel->labelfont(0);
listboxViewerLabel->labelsize(14);
listboxViewerLabel->labelcolor(FL_FOREGROUND_COLOR);
listboxViewerLabel->callback((Fl_Callback*)cb_listboxViewerLabel);
listboxViewerLabel->align(Fl_Align(FL_ALIGN_RIGHT));
listboxViewerLabel->when(FL_WHEN_RELEASE);
listboxViewerLabel->add(_("None")); listboxViewerLabel->add(_("Audio frequency"));
listboxViewerLabel->add(_("Radio frequency")); listboxViewerLabel->add(_("Channel number"));
listboxViewerLabel->index(progdefaults.VIEWERlabeltype);
o->labelsize(FL_NORMAL_SIZE);
listboxViewerLabel->end();
} // Fl_ListBox* listboxViewerLabel
{ btnViewerFont = new Fl_Button(331, 151, 70, 24, _("Font..."));
btnViewerFont->tooltip(_("select browser font"));
btnViewerFont->callback((Fl_Callback*)cb_btnViewerFont);
} // Fl_Button* btnViewerFont
{ Fl_Check_Button* o = btnFixedIntervals = new Fl_Check_Button(236, 137, 165, 20, _("Fixed Intervals"));
btnFixedIntervals->tooltip(_("Force channel spacing to even 100 Hz increments"));
btnFixedIntervals->down_box(FL_DOWN_BOX);
btnFixedIntervals->value(1);
btnFixedIntervals->callback((Fl_Callback*)cb_btnFixedIntervals);
btnFixedIntervals->hide();
o->value(progdefaults.VIEWERfixed);
} // Fl_Check_Button* btnFixedIntervals
{ Fl_Check_Button* o = btnMarquee = new Fl_Check_Button(46, 189, 165, 20, _("Continuous scrolling"));
btnMarquee->tooltip(_("ON - Marquee style\nOFF - Clear & restart"));
btnMarquee->down_box(FL_DOWN_BOX);
btnMarquee->callback((Fl_Callback*)cb_btnMarquee);
o->value(progdefaults.VIEWERmarquee);
} // Fl_Check_Button* btnMarquee
{ Fl_Check_Button* o = btnAscend = new Fl_Check_Button(46, 213, 253, 20, _("Lowest freq on bottom of viewer"));
btnAscend->tooltip(_("Change positions of low to high channels"));
btnAscend->down_box(FL_DOWN_BOX);
btnAscend->callback((Fl_Callback*)cb_btnAscend);
o->value(progdefaults.VIEWERascend);
} // Fl_Check_Button* btnAscend
{ Fl_Check_Button* o = btnBrowserHistory = new Fl_Check_Button(46, 238, 356, 20, _("Play back history when active channel selected"));
btnBrowserHistory->tooltip(_("Audio stream history decoded on selected signal"));
btnBrowserHistory->down_box(FL_DOWN_BOX);
btnBrowserHistory->callback((Fl_Callback*)cb_btnBrowserHistory);
o->value(progdefaults.VIEWERhistory);
} // Fl_Check_Button* btnBrowserHistory
{ Fl_Group* o = new Fl_Group(40, 287, 144, 60, _("Detection Level"));
o->box(FL_ENGRAVED_FRAME);
{ bwsrSliderColor = new Fl_Button(47, 310, 60, 24, _("Backgnd"));
bwsrSliderColor->tooltip(_("Background color of signal viewer squelch control"));
bwsrSliderColor->callback((Fl_Callback*)cb_bwsrSliderColor);
bwsrSliderColor->align(Fl_Align(FL_ALIGN_TOP));
bwsrSliderColor->color(fl_rgb_color(progdefaults.bwsrSliderColor.R, progdefaults.bwsrSliderColor.G,progdefaults.bwsrSliderColor.B));
} // Fl_Button* bwsrSliderColor
{ bwsrSldrSelColor = new Fl_Button(115, 310, 60, 24, _("Button"));
bwsrSldrSelColor->tooltip(_("Slider hilite color of signal viewer squelch control"));
bwsrSldrSelColor->callback((Fl_Callback*)cb_bwsrSldrSelColor);
bwsrSldrSelColor->align(Fl_Align(FL_ALIGN_TOP));
bwsrSldrSelColor->color(fl_rgb_color(progdefaults.bwsrSldrSelColor.R, progdefaults.bwsrSldrSelColor.G,progdefaults.bwsrSliderColor.B));
} // Fl_Button* bwsrSldrSelColor
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(192, 287, 326, 60, _("Browser Line Colors"));
o->box(FL_ENGRAVED_FRAME);
{ bwsrHiLite_1_color = new Fl_Button(198, 309, 60, 24, _("HiLite 1"));
bwsrHiLite_1_color->tooltip(_("PSK/RTTY Viewer HiLite Color 1"));
bwsrHiLite_1_color->callback((Fl_Callback*)cb_bwsrHiLite_1_color);
bwsrHiLite_1_color->align(Fl_Align(FL_ALIGN_TOP));
bwsrHiLite_1_color->color((Fl_Color)progdefaults.bwsrHiLight1);
} // Fl_Button* bwsrHiLite_1_color
{ bwsrHiLite_2_color = new Fl_Button(261, 309, 60, 24, _("HiLite 2"));
bwsrHiLite_2_color->tooltip(_("PSK/RTTY Viewer HiLite Color 2"));
bwsrHiLite_2_color->callback((Fl_Callback*)cb_bwsrHiLite_2_color);
bwsrHiLite_2_color->align(Fl_Align(FL_ALIGN_TOP));
bwsrHiLite_2_color->color((Fl_Color)progdefaults.bwsrHiLight2);
} // Fl_Button* bwsrHiLite_2_color
{ bwsrHiLite_even_lines = new Fl_Button(324, 309, 60, 24, _("Even"));
bwsrHiLite_even_lines->tooltip(_("Even lines"));
bwsrHiLite_even_lines->callback((Fl_Callback*)cb_bwsrHiLite_even_lines);
bwsrHiLite_even_lines->align(Fl_Align(FL_ALIGN_TOP));
bwsrHiLite_even_lines->color((Fl_Color)progdefaults.bwsrBackgnd2);
} // Fl_Button* bwsrHiLite_even_lines
{ bwsrHiLite_odd_lines = new Fl_Button(387, 309, 60, 24, _("Odd"));
bwsrHiLite_odd_lines->tooltip(_("Odd lines"));
bwsrHiLite_odd_lines->callback((Fl_Callback*)cb_bwsrHiLite_odd_lines);
bwsrHiLite_odd_lines->align(Fl_Align(FL_ALIGN_TOP));
bwsrHiLite_odd_lines->color((Fl_Color)progdefaults.bwsrBackgnd1);
} // Fl_Button* bwsrHiLite_odd_lines
{ bwsrHiLite_select = new Fl_Button(451, 309, 60, 24, _("Select"));
bwsrHiLite_select->tooltip(_("Select line"));
bwsrHiLite_select->callback((Fl_Callback*)cb_bwsrHiLite_select);
bwsrHiLite_select->align(Fl_Align(FL_ALIGN_TOP));
bwsrHiLite_select->color((Fl_Color)progdefaults.bwsrSelect);
} // Fl_Button* bwsrHiLite_select
o->end();
} // Fl_Group* o
o->end();
} // Fl_Group* o
tabBrowser->end();
} // Fl_Group* tabBrowser
{ tabContest = new Fl_Group(0, 50, 600, 335, _("Contest"));
tabContest->tooltip(_("User Interface - Contest"));
tabContest->hide();
{ Fl_Group* o = new Fl_Group(55, 70, 490, 80, _("Exchanges"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ lblSend = new Fl_Box(87, 105, 55, 20, _("Send:"));
} // Fl_Box* lblSend
{ Fl_Input2* o = inpSend1 = new Fl_Input2(145, 105, 140, 20, _("Exchange Out"));
inpSend1->tooltip(_("free form exchange"));
inpSend1->box(FL_DOWN_BOX);
inpSend1->color(FL_BACKGROUND2_COLOR);
inpSend1->selection_color(FL_SELECTION_COLOR);
inpSend1->labeltype(FL_NORMAL_LABEL);
inpSend1->labelfont(0);
inpSend1->labelsize(14);
inpSend1->labelcolor(FL_FOREGROUND_COLOR);
inpSend1->callback((Fl_Callback*)cb_inpSend1);
inpSend1->align(Fl_Align(FL_ALIGN_TOP));
inpSend1->when(FL_WHEN_RELEASE);
o->value(progdefaults.myXchg.c_str());
inpSend1->labelsize(FL_NORMAL_SIZE);
} // Fl_Input2* inpSend1
{ Fl_Check_Button* o = btn599 = new Fl_Check_Button(360, 90, 130, 20, _("RST always 599/59"));
btn599->tooltip(_("Force RST in/out to 599/59"));
btn599->down_box(FL_DOWN_BOX);
btn599->callback((Fl_Callback*)cb_btn599);
o->value(progdefaults.fixed599);
} // Fl_Check_Button* btn599
{ Fl_Check_Button* o = btnCutNbrs = new Fl_Check_Button(360, 120, 180, 20, _("Send CW cut numbers"));
btnCutNbrs->tooltip(_("0 = T; 9 = N"));
btnCutNbrs->down_box(FL_DOWN_BOX);
btnCutNbrs->callback((Fl_Callback*)cb_btnCutNbrs);
o->value(progdefaults.cutnbrs);
} // Fl_Check_Button* btnCutNbrs
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(55, 160, 490, 65, _("Serial number"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ btnUseLeadingZeros = new Fl_Check_Button(76, 186, 154, 20, _("Use leading zeros"));
btnUseLeadingZeros->tooltip(_("Insert leading zeros into Xmtd serial number"));
btnUseLeadingZeros->down_box(FL_DOWN_BOX);
btnUseLeadingZeros->value(1);
btnUseLeadingZeros->callback((Fl_Callback*)cb_btnUseLeadingZeros);
} // Fl_Check_Button* btnUseLeadingZeros
{ Fl_Value_Input2* o = nbrContestStart = new Fl_Value_Input2(271, 186, 45, 20, _("Start"));
nbrContestStart->tooltip(_("Starting number"));
nbrContestStart->box(FL_DOWN_BOX);
nbrContestStart->color(FL_BACKGROUND2_COLOR);
nbrContestStart->selection_color(FL_SELECTION_COLOR);
nbrContestStart->labeltype(FL_NORMAL_LABEL);
nbrContestStart->labelfont(0);
nbrContestStart->labelsize(14);
nbrContestStart->labelcolor(FL_FOREGROUND_COLOR);
nbrContestStart->maximum(10000);
nbrContestStart->step(1);
nbrContestStart->callback((Fl_Callback*)cb_nbrContestStart);
nbrContestStart->align(Fl_Align(FL_ALIGN_TOP));
nbrContestStart->when(FL_WHEN_CHANGED);
o->value(progdefaults.ContestStart);
} // Fl_Value_Input2* nbrContestStart
{ nbrContestDigits = new Fl_Value_Input2(353, 185, 45, 20, _("Digits"));
nbrContestDigits->tooltip(_("Number of digits in serial number"));
nbrContestDigits->box(FL_DOWN_BOX);
nbrContestDigits->color(FL_BACKGROUND2_COLOR);
nbrContestDigits->selection_color(FL_SELECTION_COLOR);
nbrContestDigits->labeltype(FL_NORMAL_LABEL);
nbrContestDigits->labelfont(0);
nbrContestDigits->labelsize(14);
nbrContestDigits->labelcolor(FL_FOREGROUND_COLOR);
nbrContestDigits->minimum(1);
nbrContestDigits->maximum(5);
nbrContestDigits->step(1);
nbrContestDigits->value(3);
nbrContestDigits->callback((Fl_Callback*)cb_nbrContestDigits);
nbrContestDigits->align(Fl_Align(FL_ALIGN_TOP));
nbrContestDigits->when(FL_WHEN_CHANGED);
} // Fl_Value_Input2* nbrContestDigits
{ btnResetSerNbr = new Fl_Button(445, 186, 70, 20, _("Reset"));
btnResetSerNbr->tooltip(_("Initialize the QSO logging fields"));
btnResetSerNbr->callback((Fl_Callback*)cb_btnResetSerNbr);
} // Fl_Button* btnResetSerNbr
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(55, 235, 490, 130, _("Duplicate check, CALL plus"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Light_Button* o = btnDupCheckOn = new Fl_Light_Button(65, 265, 74, 20, _("On/Off"));
btnDupCheckOn->tooltip(_("Check for duplicates"));
btnDupCheckOn->selection_color((Fl_Color)2);
btnDupCheckOn->callback((Fl_Callback*)cb_btnDupCheckOn);
o->value(progdefaults.EnableDupCheck);
} // Fl_Light_Button* btnDupCheckOn
{ Fl_Check_Button* o = btnDupBand = new Fl_Check_Button(206, 265, 70, 20, _("Band"));
btnDupBand->tooltip(_("Bands must match"));
btnDupBand->down_box(FL_DOWN_BOX);
btnDupBand->callback((Fl_Callback*)cb_btnDupBand);
o->value(progdefaults.dupband);
} // Fl_Check_Button* btnDupBand
{ Fl_Check_Button* o = btnDupMode = new Fl_Check_Button(326, 265, 70, 20, _("Mode"));
btnDupMode->tooltip(_("Mode must match"));
btnDupMode->down_box(FL_DOWN_BOX);
btnDupMode->callback((Fl_Callback*)cb_btnDupMode);
o->value(progdefaults.dupmode);
} // Fl_Check_Button* btnDupMode
{ Fl_Check_Button* o = btnDupState = new Fl_Check_Button(445, 265, 70, 20, _("State"));
btnDupState->tooltip(_("State must match"));
btnDupState->down_box(FL_DOWN_BOX);
btnDupState->callback((Fl_Callback*)cb_btnDupState);
o->value(progdefaults.dupstate);
} // Fl_Check_Button* btnDupState
{ Fl_Check_Button* o = btnDupXchg1 = new Fl_Check_Button(206, 293, 105, 20, _("Exchange In"));
btnDupXchg1->tooltip(_("free form 1 must match"));
btnDupXchg1->down_box(FL_DOWN_BOX);
btnDupXchg1->callback((Fl_Callback*)cb_btnDupXchg1);
o->value(progdefaults.dupxchg1);
} // Fl_Check_Button* btnDupXchg1
{ Fl_Check_Button* o = btnDupTimeSpan = new Fl_Check_Button(206, 323, 129, 20, _("Time span over"));
btnDupTimeSpan->tooltip(_("QSO must not occur within a time period of"));
btnDupTimeSpan->down_box(FL_DOWN_BOX);
btnDupTimeSpan->callback((Fl_Callback*)cb_btnDupTimeSpan);
o->value(progdefaults.duptimespan);
} // Fl_Check_Button* btnDupTimeSpan
{ Fl_Value_Input2* o = nbrTimeSpan = new Fl_Value_Input2(335, 323, 53, 20, _("minutes"));
nbrTimeSpan->tooltip(_("Enter time span in minutes"));
nbrTimeSpan->box(FL_DOWN_BOX);
nbrTimeSpan->color(FL_BACKGROUND2_COLOR);
nbrTimeSpan->selection_color(FL_SELECTION_COLOR);
nbrTimeSpan->labeltype(FL_NORMAL_LABEL);
nbrTimeSpan->labelfont(0);
nbrTimeSpan->labelsize(14);
nbrTimeSpan->labelcolor(FL_FOREGROUND_COLOR);
nbrTimeSpan->maximum(1440);
nbrTimeSpan->step(1);
nbrTimeSpan->value(120);
nbrTimeSpan->callback((Fl_Callback*)cb_nbrTimeSpan);
nbrTimeSpan->align(Fl_Align(FL_ALIGN_RIGHT));
nbrTimeSpan->when(FL_WHEN_CHANGED);
o->value(progdefaults.timespan);
} // Fl_Value_Input2* nbrTimeSpan
{ Fl_Button* o = btnDupColor = new Fl_Button(65, 292, 90, 22, _("Dup Color"));
btnDupColor->tooltip(_("Left click to select dup color"));
btnDupColor->box(FL_DOWN_BOX);
btnDupColor->down_box(FL_DOWN_BOX);
btnDupColor->color(FL_BACKGROUND2_COLOR);
btnDupColor->selection_color(FL_BACKGROUND2_COLOR);
btnDupColor->callback((Fl_Callback*)cb_btnDupColor);
o->color(fl_rgb_color(progdefaults.dup_color.R, progdefaults.dup_color.G, progdefaults.dup_color.B));
} // Fl_Button* btnDupColor
o->end();
} // Fl_Group* o
tabContest->end();
} // Fl_Group* tabContest
{ tabUserInterface = new Fl_Group(0, 50, 600, 335, _("General"));
tabUserInterface->tooltip(_("User Interface - General"));
tabUserInterface->hide();
{ Fl_Group* o = new Fl_Group(40, 77, 520, 76);
o->box(FL_ENGRAVED_FRAME);
{ Fl_Check_Button* o = btnShowTooltips = new Fl_Check_Button(75, 90, 120, 20, _("Show tooltips"));
btnShowTooltips->tooltip(_("Enable / disable tooltips"));
btnShowTooltips->down_box(FL_DOWN_BOX);
btnShowTooltips->value(1);
btnShowTooltips->callback((Fl_Callback*)cb_btnShowTooltips);
o->value(progdefaults.tooltips);
} // Fl_Check_Button* btnShowTooltips
{ Fl_Check_Button* o = chkMenuIcons = new Fl_Check_Button(219, 90, 150, 20, _("Show menu icons"));
chkMenuIcons->tooltip(_("Enable / disable icons on menus"));
chkMenuIcons->down_box(FL_DOWN_BOX);
chkMenuIcons->callback((Fl_Callback*)cb_chkMenuIcons);
o->value(progdefaults.menuicons);
} // Fl_Check_Button* chkMenuIcons
{ Fl_ListBox* o = listboxScheme = new Fl_ListBox(193, 119, 80, 20, _("UI scheme"));
listboxScheme->tooltip(_("Change application look and feel"));
listboxScheme->box(FL_DOWN_BOX);
listboxScheme->color(FL_BACKGROUND2_COLOR);
listboxScheme->selection_color(FL_BACKGROUND_COLOR);
listboxScheme->labeltype(FL_NORMAL_LABEL);
listboxScheme->labelfont(0);
listboxScheme->labelsize(14);
listboxScheme->labelcolor(FL_FOREGROUND_COLOR);
listboxScheme->callback((Fl_Callback*)cb_listboxScheme);
listboxScheme->align(Fl_Align(FL_ALIGN_RIGHT));
listboxScheme->when(FL_WHEN_RELEASE);
listboxScheme->add("base");
listboxScheme->add("gtk+");
listboxScheme->add("plastic");
listboxScheme->value(progdefaults.ui_scheme.c_str());
o->labelsize(FL_NORMAL_SIZE);
listboxScheme->end();
} // Fl_ListBox* listboxScheme
{ bVisibleModes = new Fl_Button(58, 119, 110, 20, _("Visible modes"));
bVisibleModes->tooltip(_("Select modes for menu access"));
bVisibleModes->callback((Fl_Callback*)cb_bVisibleModes);
} // Fl_Button* bVisibleModes
{ Fl_ListBox* o = listbox_language = new Fl_ListBox(375, 119, 170, 20, _("UI language"));
listbox_language->tooltip(_("Changes take effect on next program startup"));
listbox_language->box(FL_DOWN_BOX);
listbox_language->color(FL_BACKGROUND2_COLOR);
listbox_language->selection_color(FL_BACKGROUND_COLOR);
listbox_language->labeltype(FL_NORMAL_LABEL);
listbox_language->labelfont(0);
listbox_language->labelsize(12);
listbox_language->labelcolor(FL_FOREGROUND_COLOR);
listbox_language->callback((Fl_Callback*)cb_listbox_language);
listbox_language->align(Fl_Align(FL_ALIGN_TOP_LEFT));
listbox_language->when(FL_WHEN_RELEASE);
o->labelsize(FL_NORMAL_SIZE);
listbox_language->end();
} // Fl_ListBox* listbox_language
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(40, 154, 520, 34);
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Check_Button* o = btn_rx_lowercase = new Fl_Check_Button(75, 161, 389, 20, _("Print CW / RTTY / THROB / CONTESTIA in lowercase"));
btn_rx_lowercase->down_box(FL_DOWN_BOX);
btn_rx_lowercase->callback((Fl_Callback*)cb_btn_rx_lowercase);
o->value(progdefaults.rx_lowercase);
} // Fl_Check_Button* btn_rx_lowercase
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(40, 189, 260, 34);
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Check_Button* o = btn_tx_lowercase = new Fl_Check_Button(75, 197, 199, 20, _("Transmit lower case text"));
btn_tx_lowercase->down_box(FL_DOWN_BOX);
btn_tx_lowercase->callback((Fl_Callback*)cb_btn_tx_lowercase);
o->value(progdefaults.tx_lowercase);
} // Fl_Check_Button* btn_tx_lowercase
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(40, 224, 520, 76, _("Exit prompts"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Check_Button* o = btn_save_config_on_exit = new Fl_Check_Button(75, 248, 233, 20, _("Prompt to save Configuration"));
btn_save_config_on_exit->down_box(FL_DOWN_BOX);
btn_save_config_on_exit->callback((Fl_Callback*)cb_btn_save_config_on_exit);
o->value(progdefaults.SaveConfig);
} // Fl_Check_Button* btn_save_config_on_exit
{ Fl_Check_Button* o = btn2_save_macros_on_exit = new Fl_Check_Button(75, 270, 233, 20, _("Prompt to save macro file"));
btn2_save_macros_on_exit->tooltip(_("Write current macro set on program exit"));
btn2_save_macros_on_exit->down_box(FL_DOWN_BOX);
btn2_save_macros_on_exit->callback((Fl_Callback*)cb_btn2_save_macros_on_exit);
o->value(progdefaults.SaveMacros);
} // Fl_Check_Button* btn2_save_macros_on_exit
{ Fl_Check_Button* o = btn2NagMe = new Fl_Check_Button(319, 248, 166, 20, _("Prompt to save log"));
btn2NagMe->tooltip(_("Bug me about saving log entries"));
btn2NagMe->down_box(FL_DOWN_BOX);
btn2NagMe->callback((Fl_Callback*)cb_btn2NagMe);
o->value(progdefaults.NagMe);
} // Fl_Check_Button* btn2NagMe
{ Fl_Check_Button* o = btn2_confirm_exit = new Fl_Check_Button(319, 270, 200, 20, _("Confirm exit"));
btn2_confirm_exit->down_box(FL_DOWN_BOX);
btn2_confirm_exit->callback((Fl_Callback*)cb_btn2_confirm_exit);
o->value(progdefaults.confirmExit);
} // Fl_Check_Button* btn2_confirm_exit
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(40, 301, 520, 52, _("Check for updates"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Check_Button* o = btn_check_for_updates = new Fl_Check_Button(75, 324, 324, 20, _("Check for updates when starting program"));
btn_check_for_updates->down_box(FL_DOWN_BOX);
btn_check_for_updates->callback((Fl_Callback*)cb_btn_check_for_updates);
o->value(progdefaults.check_for_updates);
} // Fl_Check_Button* btn_check_for_updates
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(300, 189, 260, 34);
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Check_Button* o = btn_tx_show_timer = new Fl_Check_Button(319, 195, 223, 20, _("Show TX timer"));
btn_tx_show_timer->down_box(FL_DOWN_BOX);
btn_tx_show_timer->callback((Fl_Callback*)cb_btn_tx_show_timer);
o->value(progdefaults.show_tx_timer);
} // Fl_Check_Button* btn_tx_show_timer
o->end();
} // Fl_Group* o
tabUserInterface->end();
} // Fl_Group* tabUserInterface
{ tabLogServer = new Fl_Group(0, 50, 600, 335, _("Log"));
tabLogServer->tooltip(_("User Interface - Colors / Fonts"));
tabLogServer->hide();
{ tabsLog = new Fl_Tabs(0, 55, 600, 335);
{ Fl_Group* o = new Fl_Group(0, 75, 600, 315, _("QSO"));
{ Fl_Group* o = new Fl_Group(60, 112, 496, 198, _("QSO logging"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Check_Button* o = btnNagMe = new Fl_Check_Button(77, 134, 236, 20, _("Prompt to save log on exit"));
btnNagMe->tooltip(_("Bug me about saving log entries"));
btnNagMe->down_box(FL_DOWN_BOX);
btnNagMe->callback((Fl_Callback*)cb_btnNagMe);
o->value(progdefaults.NagMe);
} // Fl_Check_Button* btnNagMe
{ Fl_Check_Button* o = btnClearOnSave = new Fl_Check_Button(77, 163, 236, 20, _("Clear on save"));
btnClearOnSave->tooltip(_("Clear log entries after saving or using macro <LOG>"));
btnClearOnSave->down_box(FL_DOWN_BOX);
btnClearOnSave->callback((Fl_Callback*)cb_btnClearOnSave);
o->value(progdefaults.ClearOnSave);
} // Fl_Check_Button* btnClearOnSave
{ Fl_Check_Button* o = btnCallUpperCase = new Fl_Check_Button(77, 192, 236, 20, _("Convert callsign to upper case"));
btnCallUpperCase->tooltip(_("Force callsign field to UPPERCASE"));
btnCallUpperCase->down_box(FL_DOWN_BOX);
btnCallUpperCase->callback((Fl_Callback*)cb_btnCallUpperCase);
o->value(progdefaults.calluppercase);
} // Fl_Check_Button* btnCallUpperCase
{ Fl_Check_Button* o = btnAutoFillQSO = new Fl_Check_Button(77, 222, 236, 20, _("Auto-fill Country and Azimuth"));
btnAutoFillQSO->tooltip(_("Fill in Country / Azimuth using cty.dat information"));
btnAutoFillQSO->down_box(FL_DOWN_BOX);
btnAutoFillQSO->callback((Fl_Callback*)cb_btnAutoFillQSO);
o->value(progdefaults.autofill_qso_fields);
} // Fl_Check_Button* btnAutoFillQSO
{ Fl_Check_Button* o = btnDateTimeSort = new Fl_Check_Button(330, 134, 190, 20, _("Sort by Date/Time OFF"));
btnDateTimeSort->tooltip(_("Sort by date/time OFF - effects all ADIF/Cabrillo reports"));
btnDateTimeSort->down_box(FL_DOWN_BOX);
btnDateTimeSort->callback((Fl_Callback*)cb_btnDateTimeSort);
o->value(progdefaults.sort_date_time_off);
} // Fl_Check_Button* btnDateTimeSort
{ Fl_Check_Button* o = btndate_time_force = new Fl_Check_Button(330, 163, 190, 20, _("Date time ON == OFF"));
btndate_time_force->tooltip(_("Force date/time ON == date/time OFF"));
btndate_time_force->down_box(FL_DOWN_BOX);
btndate_time_force->callback((Fl_Callback*)cb_btndate_time_force);
o->value(progdefaults.force_date_time);
} // Fl_Check_Button* btndate_time_force
{ Fl_Check_Button* o = btnRSTindefault = new Fl_Check_Button(330, 192, 213, 20, _("Default RST in to 599/59"));
btnRSTindefault->tooltip(_("Clear log controls sets RST in to 599/59"));
btnRSTindefault->down_box(FL_DOWN_BOX);
btnRSTindefault->callback((Fl_Callback*)cb_btnRSTindefault);
o->value(progdefaults.RSTin_default);
} // Fl_Check_Button* btnRSTindefault
{ Fl_Check_Button* o = btnRSTdefault = new Fl_Check_Button(330, 222, 216, 20, _("Default RST out to 599/59"));
btnRSTdefault->tooltip(_("Clear log controls sets RST out to 599/59"));
btnRSTdefault->down_box(FL_DOWN_BOX);
btnRSTdefault->callback((Fl_Callback*)cb_btnRSTdefault);
o->value(progdefaults.RSTdefault);
} // Fl_Check_Button* btnRSTdefault
{ Fl_Input2* o = txt_cty_dat_pathname = new Fl_Input2(197, 249, 346, 24, _("cty.dat folder"));
txt_cty_dat_pathname->tooltip(_("Enter full path-name for cty.dat folder"));
txt_cty_dat_pathname->box(FL_DOWN_BOX);
txt_cty_dat_pathname->color(FL_BACKGROUND2_COLOR);
txt_cty_dat_pathname->selection_color(FL_SELECTION_COLOR);
txt_cty_dat_pathname->labeltype(FL_NORMAL_LABEL);
txt_cty_dat_pathname->labelfont(0);
txt_cty_dat_pathname->labelsize(14);
txt_cty_dat_pathname->labelcolor(FL_FOREGROUND_COLOR);
txt_cty_dat_pathname->callback((Fl_Callback*)cb_txt_cty_dat_pathname);
txt_cty_dat_pathname->align(Fl_Align(FL_ALIGN_LEFT));
txt_cty_dat_pathname->when(FL_WHEN_CHANGED);
o->value(progdefaults.cty_dat_pathname.c_str());
} // Fl_Input2* txt_cty_dat_pathname
{ btn_select_cty_dat = new Fl_Button(78, 278, 75, 24, _("Browse"));
btn_select_cty_dat->tooltip(_("Locate cty.dat file"));
btn_select_cty_dat->callback((Fl_Callback*)cb_btn_select_cty_dat);
} // Fl_Button* btn_select_cty_dat
{ btn_default_cty_dat = new Fl_Button(173, 278, 75, 24, _("Default"));
btn_default_cty_dat->tooltip(_("Restore cty.dat default folder"));
btn_default_cty_dat->callback((Fl_Callback*)cb_btn_default_cty_dat);
} // Fl_Button* btn_default_cty_dat
{ btn_reload_cty_dat = new Fl_Button(268, 278, 75, 24, _("Reload"));
btn_reload_cty_dat->tooltip(_("Reload cty.dat"));
btn_reload_cty_dat->callback((Fl_Callback*)cb_btn_reload_cty_dat);
} // Fl_Button* btn_reload_cty_dat
{ Fl_Input2* o = inpMyPower = new Fl_Input2(493, 278, 50, 24, _("Transmit Power"));
inpMyPower->tooltip(_("Tx power used for logbook entries"));
inpMyPower->box(FL_DOWN_BOX);
inpMyPower->color(FL_BACKGROUND2_COLOR);
inpMyPower->selection_color(FL_SELECTION_COLOR);
inpMyPower->labeltype(FL_NORMAL_LABEL);
inpMyPower->labelfont(0);
inpMyPower->labelsize(14);
inpMyPower->labelcolor(FL_FOREGROUND_COLOR);
inpMyPower->callback((Fl_Callback*)cb_inpMyPower);
inpMyPower->align(Fl_Align(FL_ALIGN_LEFT));
inpMyPower->when(FL_WHEN_RELEASE);
o->value(progdefaults.mytxpower.c_str());
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Input2* inpMyPower
o->end();
} // Fl_Group* o
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(0, 75, 600, 315, _("Rx Text"));
o->hide();
{ Fl_Group* o = new Fl_Group(62, 96, 496, 113, _("Rx Text"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Check_Button* o = btnRXClicks = new Fl_Check_Button(85, 155, 191, 20, _("Single-click to capture"));
btnRXClicks->tooltip(_("Enable for single click capure of text in Rx panel"));
btnRXClicks->down_box(FL_DOWN_BOX);
btnRXClicks->callback((Fl_Callback*)cb_btnRXClicks);
o->value(progdefaults.rxtext_clicks_qso_data);
} // Fl_Check_Button* btnRXClicks
{ Fl_Check_Button* o = btnRXTooltips = new Fl_Check_Button(287, 155, 254, 20, _("callsign tooltips in received text"));
btnRXTooltips->tooltip(_("Popup info after a 2 second hover on a callsign"));
btnRXTooltips->down_box(FL_DOWN_BOX);
btnRXTooltips->callback((Fl_Callback*)cb_btnRXTooltips);
o->value(progdefaults.rxtext_tooltips);
} // Fl_Check_Button* btnRXTooltips
{ Fl_Input2* o = inpNonword = new Fl_Input2(204, 125, 279, 24, _("Word delimiters"));
inpNonword->tooltip(_("RX text QSO data entry is bounded by the non-word characters\ndefined here. T\
ab and newline are automatically included."));
inpNonword->box(FL_DOWN_BOX);
inpNonword->color(FL_BACKGROUND2_COLOR);
inpNonword->selection_color(FL_SELECTION_COLOR);
inpNonword->labeltype(FL_NORMAL_LABEL);
inpNonword->labelfont(0);
inpNonword->labelsize(14);
inpNonword->labelcolor(FL_FOREGROUND_COLOR);
inpNonword->textfont(4);
inpNonword->callback((Fl_Callback*)cb_inpNonword);
inpNonword->align(Fl_Align(FL_ALIGN_LEFT));
inpNonword->when(FL_WHEN_RELEASE);
o->value(progdefaults.nonwordchars.c_str());
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Input2* inpNonword
{ Fl_Check_Button* o = btnUSunits = new Fl_Check_Button(287, 180, 220, 20, _("US units of distance (QRB)"));
btnUSunits->tooltip(_("Enable for single click capure of text in Rx panel"));
btnUSunits->down_box(FL_DOWN_BOX);
btnUSunits->callback((Fl_Callback*)cb_btnUSunits);
o->value(progdefaults.us_units);
} // Fl_Check_Button* btnUSunits
o->end();
} // Fl_Group* o
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(0, 75, 600, 315, _("MacLogger"));
o->hide();
{ Fl_Check_Button* o = btnConnectToMaclogger = new Fl_Check_Button(10, 91, 186, 20, _("Connect to MacLogger"));
btnConnectToMaclogger->down_box(FL_DOWN_BOX);
btnConnectToMaclogger->callback((Fl_Callback*)cb_btnConnectToMaclogger);
o->value(progdefaults.connect_to_maclogger);
} // Fl_Check_Button* btnConnectToMaclogger
{ Fl_Check_Button* o = btn_capture_maclogger_radio = new Fl_Check_Button(205, 91, 186, 20, _("Capture Radio Report"));
btn_capture_maclogger_radio->down_box(FL_DOWN_BOX);
btn_capture_maclogger_radio->value(1);
btn_capture_maclogger_radio->callback((Fl_Callback*)cb_btn_capture_maclogger_radio);
o->value(progdefaults.capture_maclogger_radio);
} // Fl_Check_Button* btn_capture_maclogger_radio
{ Fl_Check_Button* o = btn_capture_maclogger_log = new Fl_Check_Button(205, 116, 186, 21, _("Capture Log Report"));
btn_capture_maclogger_log->down_box(FL_DOWN_BOX);
btn_capture_maclogger_log->callback((Fl_Callback*)cb_btn_capture_maclogger_log);
o->value(progdefaults.capture_maclogger_log);
} // Fl_Check_Button* btn_capture_maclogger_log
{ Fl_Check_Button* o = btn_capture_maclogger_lookup = new Fl_Check_Button(405, 91, 186, 20, _("Capture Lookup "));
btn_capture_maclogger_lookup->down_box(FL_DOWN_BOX);
btn_capture_maclogger_lookup->callback((Fl_Callback*)cb_btn_capture_maclogger_lookup);
o->value(progdefaults.capture_maclogger_lookup);
} // Fl_Check_Button* btn_capture_maclogger_lookup
{ Fl_Check_Button* o = btn_capture_maclogger_spot_tune = new Fl_Check_Button(405, 116, 186, 21, _("Capture Spot Tune"));
btn_capture_maclogger_spot_tune->down_box(FL_DOWN_BOX);
btn_capture_maclogger_spot_tune->callback((Fl_Callback*)cb_btn_capture_maclogger_spot_tune);
o->value(progdefaults.capture_maclogger_spot_tune);
} // Fl_Check_Button* btn_capture_maclogger_spot_tune
{ Fl_Check_Button* o = btn_capture_maclogger_spot_report = new Fl_Check_Button(405, 144, 186, 21, _("Capture Spot Report"));
btn_capture_maclogger_spot_report->down_box(FL_DOWN_BOX);
btn_capture_maclogger_spot_report->callback((Fl_Callback*)cb_btn_capture_maclogger_spot_report);
o->value(progdefaults.capture_maclogger_spot_report);
} // Fl_Check_Button* btn_capture_maclogger_spot_report
{ Fl_Check_Button* o = btn_enable_maclogger_log = new Fl_Check_Button(10, 173, 165, 26, _("Enable UDP log file"));
btn_enable_maclogger_log->down_box(FL_DOWN_BOX);
btn_enable_maclogger_log->callback((Fl_Callback*)cb_btn_enable_maclogger_log);
o->value(progdefaults.enable_maclogger_log);
} // Fl_Check_Button* btn_enable_maclogger_log
{ Fl_Text_Display* o = txt_UDP_data = new Fl_Text_Display(10, 220, 580, 161, _("UDP data stream"));
txt_UDP_data->align(Fl_Align(FL_ALIGN_TOP_LEFT));
Fl_Text_Buffer *txtbuffer = new Fl_Text_Buffer();
o->buffer(txtbuffer);
} // Fl_Text_Display* txt_UDP_data
{ Fl_Output* o = txt_maclogger_log_filename = new Fl_Output(178, 173, 272, 26);
o->value(progdefaults.maclogger_log_filename.c_str());
} // Fl_Output* txt_maclogger_log_filename
{ Fl_Button* o = new Fl_Button(460, 173, 129, 26, _("Clear UDP text"));
o->callback((Fl_Callback*)cb_Clear);
} // Fl_Button* o
o->end();
} // Fl_Group* o
tabsLog->end();
} // Fl_Tabs* tabsLog
tabLogServer->end();
} // Fl_Group* tabLogServer
{ tabMBars = new Fl_Group(0, 50, 600, 335, _("Macros"));
tabMBars->tooltip(_("User Interface - Macros"));
tabMBars->hide();
{ Fl_Group* o = new Fl_Group(52, 263, 496, 35);
o->box(FL_ENGRAVED_FRAME);
{ Fl_Check_Button* o = btnMacroMouseWheel = new Fl_Check_Button(62, 271, 296, 20, _("Mouse wheel active on macro buttons"));
btnMacroMouseWheel->tooltip(_("enable mouse wheel control of macro bar"));
btnMacroMouseWheel->down_box(FL_DOWN_BOX);
btnMacroMouseWheel->callback((Fl_Callback*)cb_btnMacroMouseWheel);
o->value(progdefaults.macro_wheel);
} // Fl_Check_Button* btnMacroMouseWheel
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(52, 61, 496, 200, _("Number and position of macro bars"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Counter* o = cnt_macro_height = new Fl_Counter(215, 93, 89, 22, _("Button Height"));
cnt_macro_height->tooltip(_("Height of macro bar"));
cnt_macro_height->type(1);
cnt_macro_height->minimum(22);
cnt_macro_height->maximum(66);
cnt_macro_height->step(2);
cnt_macro_height->value(22);
cnt_macro_height->callback((Fl_Callback*)cb_cnt_macro_height);
cnt_macro_height->align(Fl_Align(FL_ALIGN_RIGHT));
o->value(progdefaults.macro_height);
} // Fl_Counter* cnt_macro_height
{ btn_scheme_0 = new Fl_Round_Button(61, 130, 144, 22, _("One above Rx/Tx"));
btn_scheme_0->tooltip(_("Single macro bar below logging panel\nvariable height"));
btn_scheme_0->type(102);
btn_scheme_0->down_box(FL_ROUND_DOWN_BOX);
btn_scheme_0->callback((Fl_Callback*)cb_btn_scheme_0);
} // Fl_Round_Button* btn_scheme_0
{ btn_scheme_1 = new Fl_Round_Button(61, 155, 144, 22, _("One above waterfall"));
btn_scheme_1->type(102);
btn_scheme_1->down_box(FL_ROUND_DOWN_BOX);
btn_scheme_1->callback((Fl_Callback*)cb_btn_scheme_1);
} // Fl_Round_Button* btn_scheme_1
{ btn_scheme_2 = new Fl_Round_Button(61, 180, 144, 22, _("One below waterfall"));
btn_scheme_2->type(102);
btn_scheme_2->down_box(FL_ROUND_DOWN_BOX);
btn_scheme_2->callback((Fl_Callback*)cb_btn_scheme_2);
} // Fl_Round_Button* btn_scheme_2
{ btn_scheme_3 = new Fl_Round_Button(228, 130, 144, 22, _("Two scheme 1"));
btn_scheme_3->type(102);
btn_scheme_3->down_box(FL_ROUND_DOWN_BOX);
btn_scheme_3->callback((Fl_Callback*)cb_btn_scheme_3);
} // Fl_Round_Button* btn_scheme_3
{ btn_scheme_5 = new Fl_Round_Button(228, 155, 144, 22, _("Two scheme 3"));
btn_scheme_5->type(102);
btn_scheme_5->down_box(FL_ROUND_DOWN_BOX);
btn_scheme_5->callback((Fl_Callback*)cb_btn_scheme_5);
} // Fl_Round_Button* btn_scheme_5
{ btn_scheme_7 = new Fl_Round_Button(228, 180, 144, 22, _("Two scheme 5"));
btn_scheme_7->type(102);
btn_scheme_7->down_box(FL_ROUND_DOWN_BOX);
btn_scheme_7->callback((Fl_Callback*)cb_btn_scheme_7);
} // Fl_Round_Button* btn_scheme_7
{ btn_scheme_9 = new Fl_Round_Button(228, 205, 144, 22, _("Two scheme 7"));
btn_scheme_9->type(102);
btn_scheme_9->down_box(FL_ROUND_DOWN_BOX);
btn_scheme_9->callback((Fl_Callback*)cb_btn_scheme_9);
} // Fl_Round_Button* btn_scheme_9
{ btn_scheme_11 = new Fl_Round_Button(228, 230, 144, 22, _("Two scheme 9"));
btn_scheme_11->type(102);
btn_scheme_11->down_box(FL_ROUND_DOWN_BOX);
btn_scheme_11->callback((Fl_Callback*)cb_btn_scheme_11);
} // Fl_Round_Button* btn_scheme_11
{ btn_scheme_4 = new Fl_Round_Button(396, 130, 144, 22, _("Two scheme 2"));
btn_scheme_4->type(102);
btn_scheme_4->down_box(FL_ROUND_DOWN_BOX);
btn_scheme_4->callback((Fl_Callback*)cb_btn_scheme_4);
} // Fl_Round_Button* btn_scheme_4
{ btn_scheme_6 = new Fl_Round_Button(396, 155, 144, 22, _("Two scheme 4"));
btn_scheme_6->type(102);
btn_scheme_6->down_box(FL_ROUND_DOWN_BOX);
btn_scheme_6->callback((Fl_Callback*)cb_btn_scheme_6);
} // Fl_Round_Button* btn_scheme_6
{ btn_scheme_8 = new Fl_Round_Button(396, 180, 144, 22, _("Two scheme 6"));
btn_scheme_8->type(102);
btn_scheme_8->down_box(FL_ROUND_DOWN_BOX);
btn_scheme_8->callback((Fl_Callback*)cb_btn_scheme_8);
} // Fl_Round_Button* btn_scheme_8
{ btn_scheme_10 = new Fl_Round_Button(396, 205, 144, 22, _("Two scheme 8"));
btn_scheme_10->type(102);
btn_scheme_10->down_box(FL_ROUND_DOWN_BOX);
btn_scheme_10->callback((Fl_Callback*)cb_btn_scheme_10);
} // Fl_Round_Button* btn_scheme_10
{ btn_scheme_12 = new Fl_Round_Button(396, 230, 144, 22, _("Two scheme 10"));
btn_scheme_12->type(102);
btn_scheme_12->down_box(FL_ROUND_DOWN_BOX);
btn_scheme_12->callback((Fl_Callback*)cb_btn_scheme_12);
} // Fl_Round_Button* btn_scheme_12
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(52, 299, 496, 76);
o->box(FL_ENGRAVED_FRAME);
{ Fl_Check_Button* o = btnUseLastMacro = new Fl_Check_Button(62, 305, 277, 20, _("Load last used macro file on startup"));
btnUseLastMacro->tooltip(_("ON - use last set of macros\nOFF - use default set"));
btnUseLastMacro->down_box(FL_DOWN_BOX);
btnUseLastMacro->callback((Fl_Callback*)cb_btnUseLastMacro);
o->value(progdefaults.UseLastMacro);
} // Fl_Check_Button* btnUseLastMacro
{ Fl_Check_Button* o = btnDisplayMacroFilename = new Fl_Check_Button(62, 327, 277, 20, _("Display macro filename on startup"));
btnDisplayMacroFilename->tooltip(_("The filename is written to the RX text area"));
btnDisplayMacroFilename->down_box(FL_DOWN_BOX);
btnDisplayMacroFilename->callback((Fl_Callback*)cb_btnDisplayMacroFilename);
o->value(progdefaults.DisplayMacroFilename);
} // Fl_Check_Button* btnDisplayMacroFilename
{ Fl_Check_Button* o = btn_save_macros_on_exit = new Fl_Check_Button(62, 349, 305, 20, _("Prompt to save macro file when closing"));
btn_save_macros_on_exit->tooltip(_("Write current macro set on program exit"));
btn_save_macros_on_exit->down_box(FL_DOWN_BOX);
btn_save_macros_on_exit->callback((Fl_Callback*)cb_btn_save_macros_on_exit);
o->value(progdefaults.SaveMacros);
} // Fl_Check_Button* btn_save_macros_on_exit
o->end();
} // Fl_Group* o
tabMBars->end();
} // Fl_Group* tabMBars
{ tabWF_UI = new Fl_Group(0, 50, 600, 335, _("WF Ctrls"));
tabWF_UI->tooltip(_("User Interface - Waterfall controls"));
tabWF_UI->hide();
{ Fl_Group* o = new Fl_Group(52, 83, 496, 253);
o->box(FL_ENGRAVED_BOX);
{ Fl_Box* o = new Fl_Box(81, 90, 446, 25, _("Enable check box to show each respective operator control"));
o->box(FL_FLAT_BOX);
o->align(Fl_Align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE));
} // Fl_Box* o
{ Fl_Check_Button* o = btnWF_UIrev = new Fl_Check_Button(108, 123, 150, 20, _("Reverse"));
btnWF_UIrev->down_box(FL_DOWN_BOX);
btnWF_UIrev->value(1);
btnWF_UIrev->callback((Fl_Callback*)cb_btnWF_UIrev);
o->value(progdefaults.WF_UIrev);
} // Fl_Check_Button* btnWF_UIrev
{ Fl_Check_Button* o = btnWF_UIx1 = new Fl_Check_Button(327, 123, 162, 20, _("WF Magnification"));
btnWF_UIx1->down_box(FL_DOWN_BOX);
btnWF_UIx1->value(1);
btnWF_UIx1->callback((Fl_Callback*)cb_btnWF_UIx1);
o->value(progdefaults.WF_UIx1);
} // Fl_Check_Button* btnWF_UIx1
{ Fl_Check_Button* o = btnWF_UIwfcarrier = new Fl_Check_Button(108, 154, 150, 20, _("WF carrier"));
btnWF_UIwfcarrier->down_box(FL_DOWN_BOX);
btnWF_UIwfcarrier->value(1);
btnWF_UIwfcarrier->callback((Fl_Callback*)cb_btnWF_UIwfcarrier);
o->value(progdefaults.WF_UIwfcarrier);
} // Fl_Check_Button* btnWF_UIwfcarrier
{ Fl_Check_Button* o = btnWF_UIwfshift = new Fl_Check_Button(327, 154, 150, 20, _("WF Shift Controls"));
btnWF_UIwfshift->down_box(FL_DOWN_BOX);
btnWF_UIwfshift->value(1);
btnWF_UIwfshift->callback((Fl_Callback*)cb_btnWF_UIwfshift);
o->value(progdefaults.WF_UIwfshift);
} // Fl_Check_Button* btnWF_UIwfshift
{ Fl_Check_Button* o = btnWF_UIwfreflevel = new Fl_Check_Button(108, 186, 150, 20, _("WF ref level"));
btnWF_UIwfreflevel->down_box(FL_DOWN_BOX);
btnWF_UIwfreflevel->value(1);
btnWF_UIwfreflevel->callback((Fl_Callback*)cb_btnWF_UIwfreflevel);
o->value(progdefaults.WF_UIwfreflevel);
} // Fl_Check_Button* btnWF_UIwfreflevel
{ Fl_Check_Button* o = btnWF_UIwfdrop = new Fl_Check_Button(327, 186, 150, 20, _("WF drop rate"));
btnWF_UIwfdrop->down_box(FL_DOWN_BOX);
btnWF_UIwfdrop->value(1);
btnWF_UIwfdrop->callback((Fl_Callback*)cb_btnWF_UIwfdrop);
o->value(progdefaults.WF_UIwfdrop);
} // Fl_Check_Button* btnWF_UIwfdrop
{ Fl_Check_Button* o = btnWF_UIwfampspan = new Fl_Check_Button(108, 218, 150, 20, _("WF amp span"));
btnWF_UIwfampspan->down_box(FL_DOWN_BOX);
btnWF_UIwfampspan->value(1);
btnWF_UIwfampspan->callback((Fl_Callback*)cb_btnWF_UIwfampspan);
o->value(progdefaults.WF_UIwfampspan);
} // Fl_Check_Button* btnWF_UIwfampspan
{ Fl_Check_Button* o = btnWF_UIwfstore = new Fl_Check_Button(327, 218, 150, 20, _("WF Store"));
btnWF_UIwfstore->down_box(FL_DOWN_BOX);
btnWF_UIwfstore->value(1);
btnWF_UIwfstore->callback((Fl_Callback*)cb_btnWF_UIwfstore);
o->value(progdefaults.WF_UIwfstore);
} // Fl_Check_Button* btnWF_UIwfstore
{ Fl_Check_Button* o = btnWF_UIwfmode = new Fl_Check_Button(108, 250, 150, 20, _("WF mode"));
btnWF_UIwfmode->down_box(FL_DOWN_BOX);
btnWF_UIwfmode->value(1);
btnWF_UIwfmode->callback((Fl_Callback*)cb_btnWF_UIwfmode);
o->value(progdefaults.WF_UIwfmode);
} // Fl_Check_Button* btnWF_UIwfmode
{ Fl_Check_Button* o = btnWF_UIqsy = new Fl_Check_Button(327, 250, 150, 20, _("QSY"));
btnWF_UIqsy->down_box(FL_DOWN_BOX);
btnWF_UIqsy->value(1);
btnWF_UIqsy->callback((Fl_Callback*)cb_btnWF_UIqsy);
o->value(progdefaults.WF_UIqsy);
} // Fl_Check_Button* btnWF_UIqsy
{ Fl_Check_Button* o = btnWF_UIxmtlock = new Fl_Check_Button(327, 282, 150, 20, _("XMT lock"));
btnWF_UIxmtlock->down_box(FL_DOWN_BOX);
btnWF_UIxmtlock->value(1);
btnWF_UIxmtlock->callback((Fl_Callback*)cb_btnWF_UIxmtlock);
o->value(progdefaults.WF_UIxmtlock);
} // Fl_Check_Button* btnWF_UIxmtlock
{ btn_wf_enable_all = new Fl_Button(152, 305, 88, 20, _("Enable all"));
btn_wf_enable_all->callback((Fl_Callback*)cb_btn_wf_enable_all);
} // Fl_Button* btn_wf_enable_all
{ btn_wf_disable_all = new Fl_Button(351, 305, 88, 20, _("Disable all"));
btn_wf_disable_all->callback((Fl_Callback*)cb_btn_wf_disable_all);
} // Fl_Button* btn_wf_disable_all
o->end();
} // Fl_Group* o
tabWF_UI->end();
} // Fl_Group* tabWF_UI
{ tabColorsFonts = new Fl_Group(0, 50, 600, 335, _("Clrs/Fnts"));
tabColorsFonts->tooltip(_("User Interface - Colors / Fonts"));
{ tabsColors = new Fl_Tabs(0, 55, 600, 325);
{ Fl_Group* o = new Fl_Group(0, 80, 600, 305, _("Rx/Tx"));
o->hide();
{ Fl_ListBox* o = listbox_charset_status = new Fl_ListBox(96, 90, 165, 24, _("Rx/Tx Character set"));
listbox_charset_status->tooltip(_("Select Rx/Tx Character Set"));
listbox_charset_status->box(FL_BORDER_BOX);
listbox_charset_status->color((Fl_Color)55);
listbox_charset_status->selection_color(FL_BACKGROUND_COLOR);
listbox_charset_status->labeltype(FL_NORMAL_LABEL);
listbox_charset_status->labelfont(0);
listbox_charset_status->labelsize(14);
listbox_charset_status->labelcolor(FL_FOREGROUND_COLOR);
listbox_charset_status->align(Fl_Align(FL_ALIGN_RIGHT));
listbox_charset_status->when(FL_WHEN_RELEASE);
o->labelsize(FL_NORMAL_SIZE);
listbox_charset_status->callback(cb_listbox_charset, 0);
listbox_charset_status->end();
} // Fl_ListBox* listbox_charset_status
{ RxText = new Fl_Input(96, 121, 220, 36);
RxText->value("Receive Text");
RxText->color(fl_rgb_color(progdefaults.RxColor.R, progdefaults.RxColor.G, progdefaults.RxColor.B));
RxText->textfont(progdefaults.RxFontnbr); RxText->textsize(progdefaults.RxFontsize); RxText->textcolor(progdefaults.RxFontcolor);
RxText->type(FL_MULTILINE_INPUT_WRAP);
} // Fl_Input* RxText
{ btnRxColor = new Fl_Button(326, 128, 75, 21, _("Rx bkgnd"));
btnRxColor->callback((Fl_Callback*)cb_btnRxColor);
} // Fl_Button* btnRxColor
{ btnTxColor = new Fl_Button(326, 171, 75, 21, _("Tx bkgnd"));
btnTxColor->callback((Fl_Callback*)cb_btnTxColor);
} // Fl_Button* btnTxColor
{ TxText = new Fl_Input(96, 163, 220, 37);
TxText->value("Transmit Text");
TxText->color(fl_rgb_color(progdefaults.TxColor.R, progdefaults.TxColor.G, progdefaults.TxColor.B));
TxText->textfont(progdefaults.TxFontnbr); TxText->textsize(progdefaults.TxFontsize); TxText->textcolor(progdefaults.TxFontcolor);
TxText->type(FL_MULTILINE_INPUT_WRAP);
} // Fl_Input* TxText
{ btnRxFont = new Fl_Button(411, 128, 75, 21, _("Rx font"));
btnRxFont->callback((Fl_Callback*)cb_btnRxFont);
} // Fl_Button* btnRxFont
{ btnTxFont = new Fl_Button(411, 171, 75, 21, _("Tx font"));
btnTxFont->callback((Fl_Callback*)cb_btnTxFont);
} // Fl_Button* btnTxFont
{ MacroText = new Fl_Input(96, 206, 220, 37);
MacroText->value("Macro editor text");
MacroText->textfont(progdefaults.MacroEditFontnbr);
MacroText->textsize(progdefaults.MacroEditFontsize);
MacroText->type(FL_MULTILINE_INPUT_WRAP);
} // Fl_Input* MacroText
{ btnMacroEditFont = new Fl_Button(326, 214, 120, 21, _("Macro Edit Font"));
btnMacroEditFont->callback((Fl_Callback*)cb_btnMacroEditFont);
} // Fl_Button* btnMacroEditFont
{ Fl_Group* o = new Fl_Group(86, 253, 404, 81, _("Text Highlighting"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE));
{ btnXMIT = new Fl_Button(104, 281, 40, 21, _("XMIT"));
btnXMIT->tooltip(_("Sent chars in Rx/Tx pane"));
btnXMIT->callback((Fl_Callback*)cb_btnXMIT);
btnXMIT->align(Fl_Align(FL_ALIGN_BOTTOM));
btnXMIT->color(progdefaults.XMITcolor);
} // Fl_Button* btnXMIT
{ btnCTRL = new Fl_Button(147, 281, 40, 21, _("CTRL"));
btnCTRL->tooltip(_("Control chars in Rx/Tx pane"));
btnCTRL->callback((Fl_Callback*)cb_btnCTRL);
btnCTRL->align(Fl_Align(FL_ALIGN_BOTTOM));
btnCTRL->color(progdefaults.CTRLcolor);
} // Fl_Button* btnCTRL
{ btnSKIP = new Fl_Button(191, 281, 40, 21, _("SKIP"));
btnSKIP->tooltip(_("Skipped chars in Tx pane\n(Tx on/off in CW)"));
btnSKIP->callback((Fl_Callback*)cb_btnSKIP);
btnSKIP->align(Fl_Align(FL_ALIGN_BOTTOM));
btnSKIP->color(progdefaults.SKIPcolor);
} // Fl_Button* btnSKIP
{ btnALTR = new Fl_Button(234, 281, 40, 21, _("ALTR"));
btnALTR->tooltip(_("Alternate character color in Rx panelr"));
btnALTR->callback((Fl_Callback*)cb_btnALTR);
btnALTR->align(Fl_Align(FL_ALIGN_BOTTOM));
btnALTR->color(progdefaults.ALTRcolor);
} // Fl_Button* btnALTR
{ btnSEL = new Fl_Button(278, 281, 39, 21, _("SEL"));
btnSEL->tooltip(_("Selection background color in Rx Tx panels"));
btnSEL->callback((Fl_Callback*)cb_btnSEL);
btnSEL->align(Fl_Align(FL_ALIGN_BOTTOM));
btnSEL->color(progdefaults.RxTxSelectcolor);
} // Fl_Button* btnSEL
{ btnNoTextColor = new Fl_Button(325, 281, 70, 21, _("System"));
btnNoTextColor->callback((Fl_Callback*)cb_btnNoTextColor);
} // Fl_Button* btnNoTextColor
{ btnTextDefaults = new Fl_Button(399, 281, 70, 21, _("Defaults"));
btnTextDefaults->callback((Fl_Callback*)cb_btnTextDefaults);
} // Fl_Button* btnTextDefaults
o->end();
} // Fl_Group* o
{ Fl_Check_Button* o = btn_show_all_codes = new Fl_Check_Button(110, 345, 25, 25, _("display Rx control chars as ascii string"));
btn_show_all_codes->down_box(FL_DOWN_BOX);
btn_show_all_codes->callback((Fl_Callback*)cb_btn_show_all_codes);
o->value(progdefaults.show_all_codes);
} // Fl_Check_Button* btn_show_all_codes
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(0, 80, 600, 305, _("FreqDisp / Meters"));
o->hide();
{ Fl_Group* o = new Fl_Group(115, 108, 395, 87);
o->box(FL_ENGRAVED_FRAME);
{ Fl_Box* o = FDdisplay = new Fl_Box(195, 112, 235, 45, _("14070.150"));
FDdisplay->box(FL_DOWN_BOX);
FDdisplay->color((Fl_Color)55);
FDdisplay->labelfont(4);
FDdisplay->labelsize(40);
o->color(fl_rgb_color(progdefaults.FDbackground.R,progdefaults.FDbackground.G,progdefaults.FDbackground.B));
o->labelcolor(fl_rgb_color(progdefaults.FDforeground.R,progdefaults.FDforeground.G,progdefaults.FDforeground.B));
o->labelfont(progdefaults.FreqControlFontnbr);
} // Fl_Box* FDdisplay
{ btn_freq_control_font = new Fl_Button(122, 163, 90, 24, _("Font"));
btn_freq_control_font->callback((Fl_Callback*)cb_btn_freq_control_font);
} // Fl_Button* btn_freq_control_font
{ btnBackgroundColor = new Fl_Button(218, 163, 90, 24, _("Bg Color"));
btnBackgroundColor->callback((Fl_Callback*)cb_btnBackgroundColor);
} // Fl_Button* btnBackgroundColor
{ btnForegroundColor = new Fl_Button(314, 163, 90, 24, _("Digit Color"));
btnForegroundColor->callback((Fl_Callback*)cb_btnForegroundColor);
} // Fl_Button* btnForegroundColor
{ btnFD_SystemColor = new Fl_Button(410, 163, 90, 24, _("Sys Colors"));
btnFD_SystemColor->callback((Fl_Callback*)cb_btnFD_SystemColor);
} // Fl_Button* btnFD_SystemColor
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(115, 199, 395, 62, _("S-meter"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ btnSmeter_bg_color = new Fl_Button(122, 226, 90, 24, _("Bg Color"));
btnSmeter_bg_color->callback((Fl_Callback*)cb_btnSmeter_bg_color);
} // Fl_Button* btnSmeter_bg_color
{ btnSmeter_scale_color = new Fl_Button(218, 226, 90, 24, _("Scale Color"));
btnSmeter_scale_color->callback((Fl_Callback*)cb_btnSmeter_scale_color);
} // Fl_Button* btnSmeter_scale_color
{ btnSmeter_meter_color = new Fl_Button(314, 226, 90, 24, _("Meter Color"));
btnSmeter_meter_color->callback((Fl_Callback*)cb_btnSmeter_meter_color);
} // Fl_Button* btnSmeter_meter_color
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(115, 268, 395, 67, _("PWR-meter"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ btnPWR_bg_color = new Fl_Button(122, 295, 90, 24, _("Bg Color"));
btnPWR_bg_color->callback((Fl_Callback*)cb_btnPWR_bg_color);
} // Fl_Button* btnPWR_bg_color
{ btnPWR_scale_color = new Fl_Button(218, 295, 90, 24, _("Scale Color"));
btnPWR_scale_color->callback((Fl_Callback*)cb_btnPWR_scale_color);
} // Fl_Button* btnPWR_scale_color
{ btnPWR_meter_Color = new Fl_Button(314, 295, 90, 24, _("Meter Color"));
btnPWR_meter_Color->callback((Fl_Callback*)cb_btnPWR_meter_Color);
} // Fl_Button* btnPWR_meter_Color
{ Fl_ListBox* o = listboxPWRselect = new Fl_ListBox(410, 295, 80, 24, _("Power scale"));
listboxPWRselect->tooltip(_("Select the type of FFT prefilter"));
listboxPWRselect->box(FL_DOWN_BOX);
listboxPWRselect->color(FL_BACKGROUND2_COLOR);
listboxPWRselect->selection_color(FL_BACKGROUND_COLOR);
listboxPWRselect->labeltype(FL_NORMAL_LABEL);
listboxPWRselect->labelfont(0);
listboxPWRselect->labelsize(14);
listboxPWRselect->labelcolor(FL_FOREGROUND_COLOR);
listboxPWRselect->callback((Fl_Callback*)cb_listboxPWRselect);
listboxPWRselect->align(Fl_Align(FL_ALIGN_TOP));
listboxPWRselect->when(FL_WHEN_RELEASE);
o->add(_("25 W")); o->add("50 W");
o->add("100 W"); o->add("200 W"); o->add("AUTO");
o->index(progdefaults.PWRselect);o->labelsize(FL_NORMAL_SIZE);
listboxPWRselect->end();
} // Fl_ListBox* listboxPWRselect
o->end();
} // Fl_Group* o
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(0, 80, 600, 305, _("Log"));
o->hide();
{ Fl_Group* o = new Fl_Group(114, 101, 372, 65, _("Logging Panel Controls"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Output* o = LOGGINGdisplay = new Fl_Output(132, 125, 98, 25);
o->textfont(progdefaults.LOGGINGtextfont);o->textsize(progdefaults.LOGGINGtextsize);o->textcolor(progdefaults.LOGGINGtextcolor);
o->color(progdefaults.LOGGINGcolor);
o->value("W1HKJ");
o->redraw();
} // Fl_Output* LOGGINGdisplay
{ btnLOGGING_color = new Fl_Button(240, 125, 80, 25, _("Bg Color"));
btnLOGGING_color->callback((Fl_Callback*)cb_btnLOGGING_color);
} // Fl_Button* btnLOGGING_color
{ btn_LOGGING_font = new Fl_Button(330, 125, 55, 25, _("Font"));
btn_LOGGING_font->callback((Fl_Callback*)cb_btn_LOGGING_font);
} // Fl_Button* btn_LOGGING_font
{ btnLOGGINGdefault_colors_font = new Fl_Button(396, 125, 80, 25, _("Default"));
btnLOGGINGdefault_colors_font->callback((Fl_Callback*)cb_btnLOGGINGdefault_colors_font);
} // Fl_Button* btnLOGGINGdefault_colors_font
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(115, 176, 370, 65, _("Logbook Dialog"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Output* o = LOGBOOKdisplay = new Fl_Output(131, 200, 98, 25);
o->textfont(progdefaults.LOGGINGtextfont);o->textsize(progdefaults.LOGGINGtextsize);o->textcolor(progdefaults.LOGBOOKtextcolor);
o->color(progdefaults.LOGBOOKcolor);
o->value("14.070000");
o->redraw();
} // Fl_Output* LOGBOOKdisplay
{ btnLOGBOOK_color = new Fl_Button(239, 200, 80, 25, _("Bg Color"));
btnLOGBOOK_color->callback((Fl_Callback*)cb_btnLOGBOOK_color);
} // Fl_Button* btnLOGBOOK_color
{ btn_LOGBOOK_font = new Fl_Button(329, 200, 55, 25, _("Font"));
btn_LOGBOOK_font->callback((Fl_Callback*)cb_btn_LOGBOOK_font);
} // Fl_Button* btn_LOGBOOK_font
{ btnLOGBOOKdefault_colors_font = new Fl_Button(395, 200, 80, 25, _("Default"));
btnLOGBOOKdefault_colors_font->callback((Fl_Callback*)cb_btnLOGBOOKdefault_colors_font);
} // Fl_Button* btnLOGBOOKdefault_colors_font
o->end();
} // Fl_Group* o
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(0, 80, 600, 305, _("F_keys"));
o->hide();
{ btnUseGroupColors = new Fl_Check_Button(135, 107, 165, 21, _("Use colored buttons"));
btnUseGroupColors->down_box(FL_DOWN_BOX);
btnUseGroupColors->callback((Fl_Callback*)cb_btnUseGroupColors);
btnUseGroupColors->value(progdefaults.useGroupColors);
} // Fl_Check_Button* btnUseGroupColors
{ btnGroup1 = new Fl_Button(103, 155, 90, 30, _("Group 1"));
btnGroup1->tooltip(_("Background color for Function key group 1"));
btnGroup1->callback((Fl_Callback*)cb_btnGroup1);
btnGroup1->color(fl_rgb_color(progdefaults.btnGroup1.R, progdefaults.btnGroup1.G,progdefaults.btnGroup1.B));
btnGroup1->labelcolor(progdefaults.MacroBtnFontcolor);
} // Fl_Button* btnGroup1
{ btnGroup2 = new Fl_Button(205, 155, 90, 30, _("Group 2"));
btnGroup2->tooltip(_("Background color for Function key group 2"));
btnGroup2->callback((Fl_Callback*)cb_btnGroup2);
btnGroup2->color(fl_rgb_color(progdefaults.btnGroup2.R, progdefaults.btnGroup2.G,progdefaults.btnGroup2.B));
btnGroup2->labelcolor(progdefaults.MacroBtnFontcolor);
} // Fl_Button* btnGroup2
{ btnGroup3 = new Fl_Button(307, 155, 90, 30, _("Group 3"));
btnGroup3->tooltip(_("Background color for Function key group 3"));
btnGroup3->callback((Fl_Callback*)cb_btnGroup3);
btnGroup3->color(fl_rgb_color(progdefaults.btnGroup3.R, progdefaults.btnGroup3.G,progdefaults.btnGroup3.B));
btnGroup3->labelcolor(progdefaults.MacroBtnFontcolor);
} // Fl_Button* btnGroup3
{ btnFkeyDEfaults = new Fl_Button(410, 155, 90, 30, _("Defaults"));
btnFkeyDEfaults->callback((Fl_Callback*)cb_btnFkeyDEfaults);
} // Fl_Button* btnFkeyDEfaults
{ btnMacroBtnFont = new Fl_Button(307, 102, 90, 30, _("Font/Color"));
btnMacroBtnFont->callback((Fl_Callback*)cb_btnMacroBtnFont);
} // Fl_Button* btnMacroBtnFont
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(0, 80, 600, 305, _("Tabs"));
o->hide();
{ btnTabColor = new Fl_Button(200, 113, 75, 21, _("Tab Color"));
btnTabColor->callback((Fl_Callback*)cb_btnTabColor);
} // Fl_Button* btnTabColor
{ btnTabDefaultColor = new Fl_Button(330, 113, 75, 21, _("System"));
btnTabDefaultColor->callback((Fl_Callback*)cb_btnTabDefaultColor);
} // Fl_Button* btnTabDefaultColor
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(0, 80, 600, 305, _("Buttons"));
o->hide();
{ btnSpotColor = new Fl_Button(139, 121, 85, 21, _("Spot"));
btnSpotColor->callback((Fl_Callback*)cb_btnSpotColor);
} // Fl_Button* btnSpotColor
{ btnRevColor = new Fl_Button(139, 157, 85, 21, _("Rev"));
btnRevColor->callback((Fl_Callback*)cb_btnRevColor);
} // Fl_Button* btnRevColor
{ btnTuneColor = new Fl_Button(139, 194, 85, 21, _("Tune"));
btnTuneColor->callback((Fl_Callback*)cb_btnTuneColor);
} // Fl_Button* btnTuneColor
{ btnRxIDColor = new Fl_Button(139, 229, 85, 21, _("RxID nar"));
btnRxIDColor->callback((Fl_Callback*)cb_btnRxIDColor);
} // Fl_Button* btnRxIDColor
{ btnLkColor = new Fl_Button(274, 121, 85, 21, _("Lk"));
btnLkColor->callback((Fl_Callback*)cb_btnLkColor);
} // Fl_Button* btnLkColor
{ btnSql1Color = new Fl_Button(275, 157, 85, 21, _("SQL-1"));
btnSql1Color->callback((Fl_Callback*)cb_btnSql1Color);
} // Fl_Button* btnSql1Color
{ btnXmtColor = new Fl_Button(274, 194, 85, 20, _("T/R"));
btnXmtColor->callback((Fl_Callback*)cb_btnXmtColor);
} // Fl_Button* btnXmtColor
{ btnRxIDwideColor = new Fl_Button(274, 229, 85, 21, _("RxID wide"));
btnRxIDwideColor->callback((Fl_Callback*)cb_btnRxIDwideColor);
} // Fl_Button* btnRxIDwideColor
{ btnAfcColor = new Fl_Button(410, 121, 85, 21, _("AFC"));
btnAfcColor->callback((Fl_Callback*)cb_btnAfcColor);
} // Fl_Button* btnAfcColor
{ btnSql2Color = new Fl_Button(410, 157, 85, 20, _("SQL-2"));
btnSql2Color->callback((Fl_Callback*)cb_btnSql2Color);
} // Fl_Button* btnSql2Color
{ btnTxIDColor = new Fl_Button(409, 229, 85, 20, _("TxID"));
btnTxIDColor->callback((Fl_Callback*)cb_btnTxIDColor);
} // Fl_Button* btnTxIDColor
{ Fl_Box* o = spotcolor = new Fl_Box(115, 122, 18, 19);
spotcolor->box(FL_THIN_DOWN_BOX);
spotcolor->color((Fl_Color)3);
o->color(progdefaults.SpotColor);
} // Fl_Box* spotcolor
{ Fl_Box* o = revcolor = new Fl_Box(115, 158, 18, 19);
revcolor->box(FL_THIN_DOWN_BOX);
o->color(progdefaults.RevColor);
} // Fl_Box* revcolor
{ Fl_Box* o = tunecolor = new Fl_Box(115, 195, 18, 19);
tunecolor->box(FL_THIN_DOWN_BOX);
o->color(progdefaults.TuneColor);
} // Fl_Box* tunecolor
{ Fl_Box* o = rxidcolor = new Fl_Box(115, 230, 18, 19);
rxidcolor->box(FL_THIN_DOWN_BOX);
o->color(progdefaults.RxIDColor);
} // Fl_Box* rxidcolor
{ Fl_Box* o = lockcolor = new Fl_Box(250, 122, 18, 19);
lockcolor->box(FL_THIN_DOWN_BOX);
lockcolor->color((Fl_Color)3);
o->color(progdefaults.LkColor);
} // Fl_Box* lockcolor
{ Fl_Box* o = sql1color = new Fl_Box(250, 158, 18, 19);
sql1color->box(FL_THIN_DOWN_BOX);
o->color(progdefaults.Sql1Color);
} // Fl_Box* sql1color
{ Fl_Box* o = rxidcolorwide = new Fl_Box(250, 230, 18, 19);
rxidcolorwide->box(FL_THIN_DOWN_BOX);
o->color(progdefaults.RxIDwideColor);
} // Fl_Box* rxidcolorwide
{ Fl_Box* o = xmtcolor = new Fl_Box(250, 195, 18, 18);
xmtcolor->box(FL_THIN_DOWN_BOX);
o->color(progdefaults.XmtColor);
} // Fl_Box* xmtcolor
{ Fl_Box* o = afccolor = new Fl_Box(385, 122, 18, 19);
afccolor->box(FL_THIN_DOWN_BOX);
afccolor->color((Fl_Color)3);
o->color(progdefaults.AfcColor);
} // Fl_Box* afccolor
{ Fl_Box* o = sql2color = new Fl_Box(385, 158, 18, 18);
sql2color->box(FL_THIN_DOWN_BOX);
o->color(progdefaults.Sql2Color);
} // Fl_Box* sql2color
{ Fl_Box* o = txidcolor = new Fl_Box(385, 230, 18, 18);
txidcolor->box(FL_THIN_DOWN_BOX);
o->color(progdefaults.TxIDColor);
} // Fl_Box* txidcolor
{ Fl_Box* o = new Fl_Box(200, 275, 220, 20, _("Lighted button enabled colors"));
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
} // Fl_Box* o
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(0, 80, 600, 305, _("SigLvl"));
{ btnLowSignal = new Fl_Button(210, 142, 70, 21, _("Low"));
btnLowSignal->callback((Fl_Callback*)cb_btnLowSignal);
} // Fl_Button* btnLowSignal
{ Fl_Box* o = lowcolor = new Fl_Box(189, 142, 21, 21);
lowcolor->box(FL_DIAMOND_DOWN_BOX);
lowcolor->color(FL_FOREGROUND_COLOR);
o->color(progdefaults.LowSignal);
} // Fl_Box* lowcolor
{ btnHighSignal = new Fl_Button(210, 180, 70, 21, _("High"));
btnHighSignal->callback((Fl_Callback*)cb_btnHighSignal);
} // Fl_Button* btnHighSignal
{ Fl_Box* o = highcolor = new Fl_Box(189, 180, 21, 21);
highcolor->box(FL_DIAMOND_DOWN_BOX);
highcolor->color((Fl_Color)3);
o->color(progdefaults.HighSignal);
} // Fl_Box* highcolor
{ btnNormalSignal = new Fl_Button(333, 142, 70, 21, _("Normal"));
btnNormalSignal->callback((Fl_Callback*)cb_btnNormalSignal);
} // Fl_Button* btnNormalSignal
{ Fl_Box* o = normalcolor = new Fl_Box(312, 141, 21, 21);
normalcolor->box(FL_DIAMOND_DOWN_BOX);
normalcolor->color((Fl_Color)2);
o->color(progdefaults.NormSignal);
} // Fl_Box* normalcolor
{ btnOverSignal = new Fl_Button(333, 180, 70, 21, _("Over"));
btnOverSignal->callback((Fl_Callback*)cb_btnOverSignal);
} // Fl_Button* btnOverSignal
{ Fl_Box* o = overcolor = new Fl_Box(312, 180, 21, 21);
overcolor->box(FL_DIAMOND_DOWN_BOX);
overcolor->color((Fl_Color)1);
o->color(progdefaults.OverSignal);
} // Fl_Box* overcolor
{ new Fl_Box(135, 110, 316, 21, _("Signal Level Colors"));
} // Fl_Box* o
o->end();
} // Fl_Group* o
tabsColors->end();
} // Fl_Tabs* tabsColors
tabColorsFonts->end();
} // Fl_Group* tabColorsFonts
{ tab_touch = new Fl_Group(0, 50, 600, 335, _("Touch"));
tab_touch->hide();
{ Fl_Box* o = new Fl_Box(15, 70, 570, 52, _("Note:\nThese configuration items are useful for but not unique to using fldig\
i on a\ntouch screen device such as a tablet."));
o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
} // Fl_Box* o
{ Fl_Group* o = new Fl_Group(15, 145, 570, 102, _("Arrow Key Control of Frequency Entry"));
o->box(FL_ENGRAVED_BOX);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Box* o = new Fl_Box(30, 170, 290, 74, _("Right/Left = 1 x LSD\nUp/Dn= 10 x LSD\nShift - Right/Left = 100 x LSD\nShift \
- Up/Dn = 1000 x LSD"));
o->align(Fl_Align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE));
} // Fl_Box* o
{ Fl_Choice* o = sel_lsd = new Fl_Choice(420, 206, 90, 24, _("Right/Left\nSelect Least Signficant Digit"));
sel_lsd->down_box(FL_BORDER_BOX);
sel_lsd->callback((Fl_Callback*)cb_sel_lsd);
sel_lsd->align(Fl_Align(FL_ALIGN_TOP));
o->add("1 Hz|10 Hz|100 Hz|1 kHz");
o->value(progdefaults.sel_lsd);
} // Fl_Choice* sel_lsd
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(15, 256, 570, 64, _("Rx / Tx Panels"));
o->box(FL_ENGRAVED_BOX);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Check_Button* o = btn_rxtx_swap = new Fl_Check_Button(145, 276, 116, 30, _("Tx above Rx"));
btn_rxtx_swap->tooltip(_("Enable to put Tx panel above Rx panel"));
btn_rxtx_swap->down_box(FL_DOWN_BOX);
btn_rxtx_swap->callback((Fl_Callback*)cb_btn_rxtx_swap);
o->value(progdefaults.rxtx_swap);
} // Fl_Check_Button* btn_rxtx_swap
o->end();
} // Fl_Group* o
tab_touch->end();
} // Fl_Group* tab_touch
tabsUI->end();
} // Fl_Tabs* tabsUI
tabUI->end();
} // Fl_Group* tabUI
{ tabWaterfall = new Fl_Group(0, 25, 600, 360, _("Waterfall"));
tabWaterfall->hide();
{ tabsWaterfall = new Fl_Tabs(0, 25, 600, 360);
tabsWaterfall->color(FL_LIGHT1);
tabsWaterfall->selection_color(FL_LIGHT1);
{ Fl_Group* o = new Fl_Group(0, 50, 600, 335, _("Display"));
o->hide();
{ Fl_Group* o = new Fl_Group(50, 63, 496, 190, _("Colors and cursors"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ colorbox* o = WF_Palette = new colorbox(60, 99, 380, 24, _("aa"));
WF_Palette->box(FL_DOWN_BOX);
WF_Palette->color(FL_FOREGROUND_COLOR);
WF_Palette->selection_color(FL_BACKGROUND_COLOR);
WF_Palette->labeltype(FL_NORMAL_LABEL);
WF_Palette->labelfont(0);
WF_Palette->labelsize(12);
WF_Palette->labelcolor(FL_FOREGROUND_COLOR);
WF_Palette->callback((Fl_Callback*)cb_WF_Palette);
WF_Palette->align(Fl_Align(FL_ALIGN_TOP_LEFT));
WF_Palette->when(FL_WHEN_RELEASE);
o->label(progdefaults.PaletteName.c_str());
o->labelsize(FL_NORMAL_SIZE);
} // colorbox* WF_Palette
{ btnColor[0] = new Fl_Button(60, 125, 20, 24);
btnColor[0]->tooltip(_("Change color"));
btnColor[0]->callback((Fl_Callback*)cb_btnColor);
} // Fl_Button* btnColor[0]
{ btnColor[1] = new Fl_Button(105, 125, 20, 24);
btnColor[1]->tooltip(_("Change color"));
btnColor[1]->callback((Fl_Callback*)cb_btnColor1);
} // Fl_Button* btnColor[1]
{ btnColor[2] = new Fl_Button(150, 125, 20, 24);
btnColor[2]->tooltip(_("Change color"));
btnColor[2]->callback((Fl_Callback*)cb_btnColor2);
} // Fl_Button* btnColor[2]
{ btnColor[3] = new Fl_Button(195, 125, 20, 24);
btnColor[3]->tooltip(_("Change color"));
btnColor[3]->callback((Fl_Callback*)cb_btnColor3);
} // Fl_Button* btnColor[3]
{ btnColor[4] = new Fl_Button(240, 125, 20, 24);
btnColor[4]->tooltip(_("Change color"));
btnColor[4]->callback((Fl_Callback*)cb_btnColor4);
} // Fl_Button* btnColor[4]
{ btnColor[5] = new Fl_Button(285, 125, 20, 24);
btnColor[5]->tooltip(_("Change color"));
btnColor[5]->callback((Fl_Callback*)cb_btnColor5);
} // Fl_Button* btnColor[5]
{ btnColor[6] = new Fl_Button(330, 125, 20, 24);
btnColor[6]->tooltip(_("Change color"));
btnColor[6]->callback((Fl_Callback*)cb_btnColor6);
} // Fl_Button* btnColor[6]
{ btnColor[7] = new Fl_Button(375, 125, 20, 24);
btnColor[7]->tooltip(_("Change color"));
btnColor[7]->callback((Fl_Callback*)cb_btnColor7);
} // Fl_Button* btnColor[7]
{ btnColor[8] = new Fl_Button(420, 125, 20, 24);
btnColor[8]->tooltip(_("Change color"));
btnColor[8]->callback((Fl_Callback*)cb_btnColor8);
} // Fl_Button* btnColor[8]
{ btnLoadPalette = new Fl_Button(450, 99, 70, 24, _("Load..."));
btnLoadPalette->tooltip(_("Load a new palette"));
btnLoadPalette->callback((Fl_Callback*)cb_btnLoadPalette);
} // Fl_Button* btnLoadPalette
{ btnSavePalette = new Fl_Button(450, 125, 70, 24, _("Save..."));
btnSavePalette->tooltip(_("Save this palette"));
btnSavePalette->callback((Fl_Callback*)cb_btnSavePalette);
} // Fl_Button* btnSavePalette
{ Fl_Group* o = new Fl_Group(59, 153, 113, 96, _("Bandwidth"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Check_Button* o = btnUseCursorLines = new Fl_Check_Button(61, 173, 56, 20, _("ON"));
btnUseCursorLines->tooltip(_("Show cursor with bandwidth lines"));
btnUseCursorLines->down_box(FL_DOWN_BOX);
btnUseCursorLines->callback((Fl_Callback*)cb_btnUseCursorLines);
o->value(progdefaults.UseCursorLines);
} // Fl_Check_Button* btnUseCursorLines
{ Fl_Button* o = btnCursorBWcolor = new Fl_Button(61, 196, 20, 20, _("Color"));
btnCursorBWcolor->tooltip(_("Change color"));
btnCursorBWcolor->color((Fl_Color)3);
btnCursorBWcolor->callback((Fl_Callback*)cb_btnCursorBWcolor);
btnCursorBWcolor->align(Fl_Align(FL_ALIGN_RIGHT));
o->color(fl_rgb_color(progdefaults.cursorLineRGBI.R,progdefaults.cursorLineRGBI.G,progdefaults.cursorLineRGBI.B));
} // Fl_Button* btnCursorBWcolor
{ Fl_Check_Button* o = btnUseWideCursor = new Fl_Check_Button(61, 219, 62, 20, _("Wide"));
btnUseWideCursor->tooltip(_("Show bandwidth tracks on waterfall"));
btnUseWideCursor->down_box(FL_DOWN_BOX);
btnUseWideCursor->callback((Fl_Callback*)cb_btnUseWideCursor);
o->value(progdefaults.UseWideCursor);
} // Fl_Check_Button* btnUseWideCursor
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(183, 153, 113, 96, _("Center line"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Check_Button* o = btnUseCursorCenterLine = new Fl_Check_Button(189, 173, 48, 20, _("ON"));
btnUseCursorCenterLine->tooltip(_("Show cursor with center line"));
btnUseCursorCenterLine->down_box(FL_DOWN_BOX);
btnUseCursorCenterLine->callback((Fl_Callback*)cb_btnUseCursorCenterLine);
o->value(progdefaults.UseCursorCenterLine);
} // Fl_Check_Button* btnUseCursorCenterLine
{ Fl_Button* o = btnCursorCenterLineColor = new Fl_Button(189, 196, 20, 20, _("Color"));
btnCursorCenterLineColor->tooltip(_("Change color"));
btnCursorCenterLineColor->color(FL_BACKGROUND2_COLOR);
btnCursorCenterLineColor->callback((Fl_Callback*)cb_btnCursorCenterLineColor);
btnCursorCenterLineColor->align(Fl_Align(FL_ALIGN_RIGHT));
o->color(fl_rgb_color(progdefaults.cursorCenterRGBI.R,progdefaults.cursorCenterRGBI.G,progdefaults.cursorCenterRGBI.B));
} // Fl_Button* btnCursorCenterLineColor
{ Fl_Check_Button* o = btnUseWideCenter = new Fl_Check_Button(189, 221, 69, 20, _("Wide"));
btnUseWideCenter->tooltip(_("Show bandwidth tracks on waterfall"));
btnUseWideCenter->down_box(FL_DOWN_BOX);
btnUseWideCenter->callback((Fl_Callback*)cb_btnUseWideCenter);
o->value(progdefaults.UseWideCenter);
} // Fl_Check_Button* btnUseWideCenter
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(306, 153, 113, 96, _("Signal tracks"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Check_Button* o = btnUseBWTracks = new Fl_Check_Button(308, 172, 56, 20, _("ON"));
btnUseBWTracks->tooltip(_("Show bandwidth tracks on waterfall"));
btnUseBWTracks->down_box(FL_DOWN_BOX);
btnUseBWTracks->callback((Fl_Callback*)cb_btnUseBWTracks);
o->value(progdefaults.UseBWTracks);
} // Fl_Check_Button* btnUseBWTracks
{ Fl_Button* o = btnBwTracksColor = new Fl_Button(308, 195, 20, 20, _("Color"));
btnBwTracksColor->tooltip(_("Change color"));
btnBwTracksColor->color((Fl_Color)1);
btnBwTracksColor->callback((Fl_Callback*)cb_btnBwTracksColor);
btnBwTracksColor->align(Fl_Align(FL_ALIGN_RIGHT));
o->color(fl_rgb_color(progdefaults.bwTrackRGBI.R,progdefaults.bwTrackRGBI.G,progdefaults.bwTrackRGBI.B));
} // Fl_Button* btnBwTracksColor
{ Fl_Check_Button* o = btnUseWideTracks = new Fl_Check_Button(308, 219, 74, 20, _("Wide"));
btnUseWideTracks->tooltip(_("Show bandwidth tracks on waterfall"));
btnUseWideTracks->down_box(FL_DOWN_BOX);
btnUseWideTracks->callback((Fl_Callback*)cb_btnUseWideTracks);
o->value(progdefaults.UseWideTracks);
} // Fl_Check_Button* btnUseWideTracks
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(426, 153, 113, 96, _("Notch"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Button* o = btnNotchColor = new Fl_Button(428, 195, 20, 20, _("Color"));
btnNotchColor->tooltip(_("Change color"));
btnNotchColor->color((Fl_Color)1);
btnNotchColor->callback((Fl_Callback*)cb_btnNotchColor);
btnNotchColor->align(Fl_Align(FL_ALIGN_RIGHT));
o->color(fl_rgb_color(progdefaults.notchRGBI.R,progdefaults.notchRGBI.G,progdefaults.notchRGBI.B));
} // Fl_Button* btnNotchColor
o->end();
} // Fl_Group* o
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(50, 254, 496, 55, _("Frequency scale"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Check_Button* o = chkShowAudioScale = new Fl_Check_Button(60, 277, 241, 20, _("Always show audio frequencies"));
chkShowAudioScale->tooltip(_("Audio or RF frequencies on waterfall scale"));
chkShowAudioScale->down_box(FL_DOWN_BOX);
chkShowAudioScale->callback((Fl_Callback*)cb_chkShowAudioScale);
o->value(progdefaults.wf_audioscale);
} // Fl_Check_Button* chkShowAudioScale
{ btnWaterfallFont = new Fl_Button(360, 277, 71, 24, _("Font..."));
btnWaterfallFont->tooltip(_("Select waterfall scale font"));
btnWaterfallFont->callback((Fl_Callback*)cb_btnWaterfallFont);
} // Fl_Button* btnWaterfallFont
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(50, 310, 496, 65, _("Transmit signal"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Check_Button* o = btnViewXmtSignal = new Fl_Check_Button(60, 336, 208, 20, _("Monitor transmitted signal"));
btnViewXmtSignal->tooltip(_("Show transmit signal on waterfall"));
btnViewXmtSignal->down_box(FL_DOWN_BOX);
btnViewXmtSignal->callback((Fl_Callback*)cb_btnViewXmtSignal);
o->value(progdefaults.viewXmtSignal);
} // Fl_Check_Button* btnViewXmtSignal
{ Fl_Value_Slider2* o = valTxMonitorLevel = new Fl_Value_Slider2(318, 336, 203, 20, _("Signal level"));
valTxMonitorLevel->tooltip(_("Set level for good viewing"));
valTxMonitorLevel->type(1);
valTxMonitorLevel->box(FL_DOWN_BOX);
valTxMonitorLevel->color(FL_BACKGROUND_COLOR);
valTxMonitorLevel->selection_color(FL_BACKGROUND_COLOR);
valTxMonitorLevel->labeltype(FL_NORMAL_LABEL);
valTxMonitorLevel->labelfont(0);
valTxMonitorLevel->labelsize(14);
valTxMonitorLevel->labelcolor(FL_FOREGROUND_COLOR);
valTxMonitorLevel->step(0.05);
valTxMonitorLevel->value(0.5);
valTxMonitorLevel->textsize(14);
valTxMonitorLevel->callback((Fl_Callback*)cb_valTxMonitorLevel);
valTxMonitorLevel->align(Fl_Align(FL_ALIGN_TOP));
valTxMonitorLevel->when(FL_WHEN_CHANGED);
o->value(progdefaults.TxMonitorLevel);
o->labelsize(FL_NORMAL_SIZE); o->textsize(FL_NORMAL_SIZE);
} // Fl_Value_Slider2* valTxMonitorLevel
o->end();
} // Fl_Group* o
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(0, 50, 600, 335, _("FFT Processing"));
o->hide();
{ Fl_Group* o = new Fl_Group(55, 71, 490, 135);
o->box(FL_ENGRAVED_FRAME);
{ Fl_Counter2* o = cntLowFreqCutoff = new Fl_Counter2(100, 89, 70, 22, _("Lower limit"));
cntLowFreqCutoff->tooltip(_("Low frequency limit in Hz"));
cntLowFreqCutoff->type(1);
cntLowFreqCutoff->box(FL_UP_BOX);
cntLowFreqCutoff->color(FL_BACKGROUND_COLOR);
cntLowFreqCutoff->selection_color(FL_INACTIVE_COLOR);
cntLowFreqCutoff->labeltype(FL_NORMAL_LABEL);
cntLowFreqCutoff->labelfont(0);
cntLowFreqCutoff->labelsize(14);
cntLowFreqCutoff->labelcolor(FL_FOREGROUND_COLOR);
cntLowFreqCutoff->minimum(0);
cntLowFreqCutoff->maximum(500);
cntLowFreqCutoff->step(50);
cntLowFreqCutoff->value(300);
cntLowFreqCutoff->callback((Fl_Callback*)cb_cntLowFreqCutoff);
cntLowFreqCutoff->align(Fl_Align(FL_ALIGN_RIGHT));
cntLowFreqCutoff->when(FL_WHEN_CHANGED);
o->value(progdefaults.LowFreqCutoff);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Counter2* cntLowFreqCutoff
{ Fl_Check_Button* o = btnWFaveraging = new Fl_Check_Button(100, 125, 120, 20, _("FFT averaging"));
btnWFaveraging->tooltip(_("Use averaging to decrease waterfall noise"));
btnWFaveraging->down_box(FL_DOWN_BOX);
btnWFaveraging->callback((Fl_Callback*)cb_btnWFaveraging);
o->value(progdefaults.WFaveraging);
} // Fl_Check_Button* btnWFaveraging
{ Fl_ListBox* o = listboxFFTPrefilter = new Fl_ListBox(100, 155, 120, 24, _("FFT prefilter window function"));
listboxFFTPrefilter->tooltip(_("Select the type of FFT prefilter"));
listboxFFTPrefilter->box(FL_DOWN_BOX);
listboxFFTPrefilter->color(FL_BACKGROUND2_COLOR);
listboxFFTPrefilter->selection_color(FL_BACKGROUND_COLOR);
listboxFFTPrefilter->labeltype(FL_NORMAL_LABEL);
listboxFFTPrefilter->labelfont(0);
listboxFFTPrefilter->labelsize(14);
listboxFFTPrefilter->labelcolor(FL_FOREGROUND_COLOR);
listboxFFTPrefilter->callback((Fl_Callback*)cb_listboxFFTPrefilter);
listboxFFTPrefilter->align(Fl_Align(FL_ALIGN_RIGHT));
listboxFFTPrefilter->when(FL_WHEN_RELEASE);
listboxFFTPrefilter->add(_("Rectangular")); listboxFFTPrefilter->add("Blackman");
listboxFFTPrefilter->add("Hamming"); listboxFFTPrefilter->add("Hanning");
listboxFFTPrefilter->add(_("Triangular"));
listboxFFTPrefilter->index(progdefaults.wfPreFilter);
o->labelsize(FL_NORMAL_SIZE);
listboxFFTPrefilter->end();
} // Fl_ListBox* listboxFFTPrefilter
{ Fl_Counter2* o = cntrWfwidth = new Fl_Counter2(323, 89, 95, 22, _("Upper limit"));
cntrWfwidth->tooltip(_("High frequency limit in Hz"));
cntrWfwidth->type(1);
cntrWfwidth->box(FL_UP_BOX);
cntrWfwidth->color(FL_BACKGROUND_COLOR);
cntrWfwidth->selection_color(FL_INACTIVE_COLOR);
cntrWfwidth->labeltype(FL_NORMAL_LABEL);
cntrWfwidth->labelfont(0);
cntrWfwidth->labelsize(14);
cntrWfwidth->labelcolor(FL_FOREGROUND_COLOR);
cntrWfwidth->minimum(2000);
cntrWfwidth->maximum(4000);
cntrWfwidth->step(100);
cntrWfwidth->value(3000);
cntrWfwidth->callback((Fl_Callback*)cb_cntrWfwidth);
cntrWfwidth->align(Fl_Align(FL_ALIGN_RIGHT));
cntrWfwidth->when(FL_WHEN_CHANGED);
o->value(progdefaults.HighFreqCutoff);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Counter2* cntrWfwidth
{ Fl_Counter2* o = wf_latency = new Fl_Counter2(323, 124, 95, 22, _("Latency"));
wf_latency->tooltip(_("Signal averaging over time\n0 - least\n4 - greatest"));
wf_latency->type(1);
wf_latency->box(FL_UP_BOX);
wf_latency->color(FL_BACKGROUND_COLOR);
wf_latency->selection_color(FL_INACTIVE_COLOR);
wf_latency->labeltype(FL_NORMAL_LABEL);
wf_latency->labelfont(0);
wf_latency->labelsize(14);
wf_latency->labelcolor(FL_FOREGROUND_COLOR);
wf_latency->minimum(1);
wf_latency->maximum(16);
wf_latency->step(1);
wf_latency->value(8);
wf_latency->callback((Fl_Callback*)cb_wf_latency);
wf_latency->align(Fl_Align(FL_ALIGN_RIGHT));
wf_latency->when(FL_WHEN_CHANGED);
o->value(progdefaults.wf_latency);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Counter2* wf_latency
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(55, 212, 490, 73);
o->tooltip(_("Show me more or less waterfall"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE));
{ Fl_Counter* o = cntr_drop_speed = new Fl_Counter(100, 234, 95, 22, _("Slow drop rate"));
cntr_drop_speed->tooltip(_("Normal drop speed / value"));
cntr_drop_speed->type(1);
cntr_drop_speed->minimum(4);
cntr_drop_speed->maximum(32);
cntr_drop_speed->step(2);
cntr_drop_speed->value(4);
cntr_drop_speed->callback((Fl_Callback*)cb_cntr_drop_speed);
cntr_drop_speed->align(Fl_Align(FL_ALIGN_RIGHT_TOP));
o->value(progdefaults.drop_speed);
} // Fl_Counter* cntr_drop_speed
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(55, 292, 490, 73, _("Changes take effect on next program startup"));
o->tooltip(_("Show me more or less waterfall"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE));
{ Fl_Counter2* o = cntrWfheight = new Fl_Counter2(100, 322, 120, 22, _("Waterfall height in pixels"));
cntrWfheight->tooltip(_("CPU usage increases with waterfall height"));
cntrWfheight->box(FL_UP_BOX);
cntrWfheight->color(FL_BACKGROUND_COLOR);
cntrWfheight->selection_color(FL_INACTIVE_COLOR);
cntrWfheight->labeltype(FL_NORMAL_LABEL);
cntrWfheight->labelfont(0);
cntrWfheight->labelsize(14);
cntrWfheight->labelcolor(FL_FOREGROUND_COLOR);
cntrWfheight->minimum(100);
cntrWfheight->maximum(500);
cntrWfheight->step(5);
cntrWfheight->value(120);
cntrWfheight->callback((Fl_Callback*)cb_cntrWfheight);
cntrWfheight->align(Fl_Align(FL_ALIGN_RIGHT));
cntrWfheight->when(FL_WHEN_CHANGED);
o->value(progdefaults.wfheight);
o->labelsize(FL_NORMAL_SIZE);
o->lstep(50);
} // Fl_Counter2* cntrWfheight
o->end();
} // Fl_Group* o
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(0, 50, 600, 335, _("Mouse"));
{ Fl_Group* o = new Fl_Group(55, 73, 490, 170);
o->box(FL_ENGRAVED_FRAME);
{ Fl_Check_Button* o = btnWaterfallHistoryDefault = new Fl_Check_Button(65, 87, 340, 20, _("Left or right click always replays audio history"));
btnWaterfallHistoryDefault->tooltip(_("Replay trackline audio"));
btnWaterfallHistoryDefault->down_box(FL_DOWN_BOX);
btnWaterfallHistoryDefault->callback((Fl_Callback*)cb_btnWaterfallHistoryDefault);
o->value(progdefaults.WaterfallHistoryDefault);
} // Fl_Check_Button* btnWaterfallHistoryDefault
{ Fl_Check_Button* o = btnWaterfallQSY = new Fl_Check_Button(65, 117, 380, 20, _("Dragging on the waterfall scale changes frequency"));
btnWaterfallQSY->tooltip(_("Enable drag cursor on waterfall scale"));
btnWaterfallQSY->down_box(FL_DOWN_BOX);
btnWaterfallQSY->callback((Fl_Callback*)cb_btnWaterfallQSY);
o->value(progdefaults.WaterfallQSY);
} // Fl_Check_Button* btnWaterfallQSY
{ Fl_Check_Button* o = btnWaterfallClickInsert = new Fl_Check_Button(65, 159, 225, 20, _("Insert text on single left click"));
btnWaterfallClickInsert->tooltip(_("Insert special text in Rx panel\nwhen waterfall clicked"));
btnWaterfallClickInsert->down_box(FL_DOWN_BOX);
btnWaterfallClickInsert->callback((Fl_Callback*)cb_btnWaterfallClickInsert);
o->value(progdefaults.WaterfallClickInsert);
} // Fl_Check_Button* btnWaterfallClickInsert
{ inpWaterfallClickText = new Fl_Input2(351, 147, 180, 50);
inpWaterfallClickText->tooltip(_("The string <FREQ> is replaced with\nthe current modem and frequency"));
inpWaterfallClickText->box(FL_DOWN_BOX);
inpWaterfallClickText->color(FL_BACKGROUND2_COLOR);
inpWaterfallClickText->selection_color(FL_SELECTION_COLOR);
inpWaterfallClickText->labeltype(FL_NORMAL_LABEL);
inpWaterfallClickText->labelfont(0);
inpWaterfallClickText->labelsize(14);
inpWaterfallClickText->labelcolor(FL_FOREGROUND_COLOR);
inpWaterfallClickText->callback((Fl_Callback*)cb_inpWaterfallClickText);
inpWaterfallClickText->align(Fl_Align(FL_ALIGN_RIGHT));
inpWaterfallClickText->when(FL_WHEN_RELEASE);
} // Fl_Input2* inpWaterfallClickText
o->end();
} // Fl_Group* o
{ Fl_ListBox* o = listboxWaterfallWheelAction = new Fl_ListBox(65, 207, 150, 22, _("Wheel action"));
listboxWaterfallWheelAction->tooltip(_("Select how the mouse wheel\nbehaves inside the waterfall"));
listboxWaterfallWheelAction->box(FL_DOWN_BOX);
listboxWaterfallWheelAction->color(FL_BACKGROUND2_COLOR);
listboxWaterfallWheelAction->selection_color(FL_BACKGROUND_COLOR);
listboxWaterfallWheelAction->labeltype(FL_NORMAL_LABEL);
listboxWaterfallWheelAction->labelfont(0);
listboxWaterfallWheelAction->labelsize(14);
listboxWaterfallWheelAction->labelcolor(FL_FOREGROUND_COLOR);
listboxWaterfallWheelAction->callback((Fl_Callback*)cb_listboxWaterfallWheelAction);
listboxWaterfallWheelAction->align(Fl_Align(FL_ALIGN_RIGHT));
listboxWaterfallWheelAction->when(FL_WHEN_RELEASE);
o->labelsize(FL_NORMAL_SIZE);
listboxWaterfallWheelAction->end();
} // Fl_ListBox* listboxWaterfallWheelAction
o->end();
} // Fl_Group* o
tabsWaterfall->end();
} // Fl_Tabs* tabsWaterfall
tabWaterfall->end();
} // Fl_Group* tabWaterfall
{ tabModems = new Fl_Group(0, 25, 600, 360, _("Modems"));
tabModems->hide();
{ tabsModems = new Fl_Tabs(0, 25, 600, 360);
tabsModems->selection_color(FL_LIGHT1);
tabsModems->align(Fl_Align(FL_ALIGN_TOP_RIGHT));
{ tabCW = new Fl_Group(0, 50, 600, 335, _("CW"));
tabCW->hide();
{ tabsCW = new Fl_Tabs(0, 50, 600, 335);
tabsCW->selection_color(FL_LIGHT1);
{ Fl_Group* o = new Fl_Group(0, 75, 600, 310, _("General"));
o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
{ Fl_Group* o = new Fl_Group(35, 85, 530, 130, _("Receive"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Value_Slider2* o = sldrCWbandwidth = new Fl_Value_Slider2(50, 149, 335, 20, _("Filter bandwidth"));
sldrCWbandwidth->tooltip(_("CW dsp filter bandwidth"));
sldrCWbandwidth->type(1);
sldrCWbandwidth->box(FL_DOWN_BOX);
sldrCWbandwidth->color(FL_BACKGROUND_COLOR);
sldrCWbandwidth->selection_color(FL_BACKGROUND_COLOR);
sldrCWbandwidth->labeltype(FL_NORMAL_LABEL);
sldrCWbandwidth->labelfont(0);
sldrCWbandwidth->labelsize(14);
sldrCWbandwidth->labelcolor(FL_FOREGROUND_COLOR);
sldrCWbandwidth->minimum(10);
sldrCWbandwidth->maximum(400);
sldrCWbandwidth->step(1);
sldrCWbandwidth->value(66);
sldrCWbandwidth->textsize(14);
sldrCWbandwidth->callback((Fl_Callback*)cb_sldrCWbandwidth);
sldrCWbandwidth->align(Fl_Align(FL_ALIGN_TOP_LEFT));
sldrCWbandwidth->when(FL_WHEN_CHANGED);
o->value(progdefaults.CWbandwidth);
o->labelsize(FL_NORMAL_SIZE); o->textsize(FL_NORMAL_SIZE);
} // Fl_Value_Slider2* sldrCWbandwidth
{ valCWrcvWPM = new Fl_Value_Output(50, 188, 35, 20, _("Rx WPM"));
valCWrcvWPM->color(FL_BACKGROUND2_COLOR);
valCWrcvWPM->callback((Fl_Callback*)cb_valCWrcvWPM);
valCWrcvWPM->align(Fl_Align(FL_ALIGN_TOP_LEFT));
} // Fl_Value_Output* valCWrcvWPM
{ prgsCWrcvWPM = new Fl_Progress(86, 188, 300, 20);
prgsCWrcvWPM->tooltip(_("Tracked CW speed in WPM"));
prgsCWrcvWPM->color(FL_BACKGROUND_COLOR);
prgsCWrcvWPM->selection_color(FL_SELECTION_COLOR);
prgsCWrcvWPM->align(Fl_Align(FL_ALIGN_CENTER));
} // Fl_Progress* prgsCWrcvWPM
{ Fl_Check_Button* o = btnCWuseSOMdecoding = new Fl_Check_Button(63, 108, 125, 20, _("SOM decoding"));
btnCWuseSOMdecoding->tooltip(_("Self Organizing Mapping"));
btnCWuseSOMdecoding->down_box(FL_DOWN_BOX);
btnCWuseSOMdecoding->value(1);
btnCWuseSOMdecoding->callback((Fl_Callback*)cb_btnCWuseSOMdecoding);
o->value(progdefaults.CWuseSOMdecoding);
} // Fl_Check_Button* btnCWuseSOMdecoding
{ Fl_Counter2* o = cntLower = new Fl_Counter2(209, 108, 65, 20, _("Lower"));
cntLower->tooltip(_("Detector low threshold"));
cntLower->type(1);
cntLower->box(FL_UP_BOX);
cntLower->color(FL_BACKGROUND_COLOR);
cntLower->selection_color(FL_INACTIVE_COLOR);
cntLower->labeltype(FL_NORMAL_LABEL);
cntLower->labelfont(0);
cntLower->labelsize(14);
cntLower->labelcolor(FL_FOREGROUND_COLOR);
cntLower->minimum(0.01);
cntLower->maximum(0.99);
cntLower->step(0.01);
cntLower->value(0.45);
cntLower->callback((Fl_Callback*)cb_cntLower);
cntLower->align(Fl_Align(FL_ALIGN_TOP));
cntLower->when(FL_WHEN_CHANGED);
o->value(progdefaults.CWlower);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Counter2* cntLower
{ Fl_Counter2* o = cntUpper = new Fl_Counter2(302, 108, 65, 20, _("Upper"));
cntUpper->tooltip(_("Detector high threshold"));
cntUpper->type(1);
cntUpper->box(FL_UP_BOX);
cntUpper->color(FL_BACKGROUND_COLOR);
cntUpper->selection_color(FL_INACTIVE_COLOR);
cntUpper->labeltype(FL_NORMAL_LABEL);
cntUpper->labelfont(0);
cntUpper->labelsize(14);
cntUpper->labelcolor(FL_FOREGROUND_COLOR);
cntUpper->minimum(0.01);
cntUpper->maximum(0.99);
cntUpper->step(0.01);
cntUpper->value(0.55);
cntUpper->callback((Fl_Callback*)cb_cntUpper);
cntUpper->align(Fl_Align(FL_ALIGN_TOP));
cntUpper->when(FL_WHEN_CHANGED);
o->value(progdefaults.CWupper);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Counter2* cntUpper
{ Fl_Check_Button* o = btnCWmfilt = new Fl_Check_Button(397, 108, 80, 20, _("Matched Filter"));
btnCWmfilt->tooltip(_("Matched Filter bandwidth"));
btnCWmfilt->down_box(FL_DOWN_BOX);
btnCWmfilt->value(1);
btnCWmfilt->callback((Fl_Callback*)cb_btnCWmfilt);
o->value(progdefaults.CWmfilt);
} // Fl_Check_Button* btnCWmfilt
{ Fl_Check_Button* o = btnCWuseFFTfilter = new Fl_Check_Button(397, 134, 125, 20, _("FFT filter"));
btnCWuseFFTfilter->tooltip(_("FFT / FIR filter"));
btnCWuseFFTfilter->down_box(FL_DOWN_BOX);
btnCWuseFFTfilter->value(1);
btnCWuseFFTfilter->callback((Fl_Callback*)cb_btnCWuseFFTfilter);
o->value(progdefaults.CWuse_fft_filter);
} // Fl_Check_Button* btnCWuseFFTfilter
{ Fl_Check_Button* o = btnCWrcvTrack = new Fl_Check_Button(397, 160, 80, 20, _("Tracking"));
btnCWrcvTrack->tooltip(_("Automatic Rx speed tracking"));
btnCWrcvTrack->down_box(FL_DOWN_BOX);
btnCWrcvTrack->value(1);
btnCWrcvTrack->callback((Fl_Callback*)cb_btnCWrcvTrack);
o->value(progdefaults.CWtrack);
} // Fl_Check_Button* btnCWrcvTrack
{ Fl_Counter2* o = cntCWrange = new Fl_Counter2(397, 187, 65, 20, _("Range, WPM"));
cntCWrange->tooltip(_("Range +/- wpm"));
cntCWrange->type(1);
cntCWrange->box(FL_UP_BOX);
cntCWrange->color(FL_BACKGROUND_COLOR);
cntCWrange->selection_color(FL_INACTIVE_COLOR);
cntCWrange->labeltype(FL_NORMAL_LABEL);
cntCWrange->labelfont(0);
cntCWrange->labelsize(14);
cntCWrange->labelcolor(FL_FOREGROUND_COLOR);
cntCWrange->minimum(5);
cntCWrange->maximum(25);
cntCWrange->step(1);
cntCWrange->value(10);
cntCWrange->callback((Fl_Callback*)cb_cntCWrange);
cntCWrange->align(Fl_Align(FL_ALIGN_RIGHT));
cntCWrange->when(FL_WHEN_CHANGED);
o->value(progdefaults.CWrange);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Counter2* cntCWrange
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(35, 215, 530, 150, _("Transmit"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Value_Slider2* o = sldrCWxmtWPM = new Fl_Value_Slider2(50, 240, 440, 20, _("TX WPM"));
sldrCWxmtWPM->tooltip(_("My transmit CW WPM"));
sldrCWxmtWPM->type(1);
sldrCWxmtWPM->box(FL_DOWN_BOX);
sldrCWxmtWPM->color(FL_BACKGROUND_COLOR);
sldrCWxmtWPM->selection_color(FL_BACKGROUND_COLOR);
sldrCWxmtWPM->labeltype(FL_NORMAL_LABEL);
sldrCWxmtWPM->labelfont(0);
sldrCWxmtWPM->labelsize(14);
sldrCWxmtWPM->labelcolor(FL_FOREGROUND_COLOR);
sldrCWxmtWPM->minimum(5);
sldrCWxmtWPM->maximum(100);
sldrCWxmtWPM->step(1);
sldrCWxmtWPM->value(20);
sldrCWxmtWPM->textsize(14);
sldrCWxmtWPM->callback((Fl_Callback*)cb_sldrCWxmtWPM);
sldrCWxmtWPM->align(Fl_Align(FL_ALIGN_RIGHT));
sldrCWxmtWPM->when(FL_WHEN_CHANGED);
o->value(progdefaults.CWspeed);
o->labelsize(FL_NORMAL_SIZE); o->textsize(FL_NORMAL_SIZE);
} // Fl_Value_Slider2* sldrCWxmtWPM
{ Fl_Counter2* o = cntCWdefWPM = new Fl_Counter2(91, 281, 64, 20, _("Default"));
cntCWdefWPM->tooltip(_("The default CW speed"));
cntCWdefWPM->type(1);
cntCWdefWPM->box(FL_UP_BOX);
cntCWdefWPM->color(FL_BACKGROUND_COLOR);
cntCWdefWPM->selection_color(FL_INACTIVE_COLOR);
cntCWdefWPM->labeltype(FL_NORMAL_LABEL);
cntCWdefWPM->labelfont(0);
cntCWdefWPM->labelsize(14);
cntCWdefWPM->labelcolor(FL_FOREGROUND_COLOR);
cntCWdefWPM->minimum(5);
cntCWdefWPM->maximum(200);
cntCWdefWPM->step(1);
cntCWdefWPM->value(18);
cntCWdefWPM->callback((Fl_Callback*)cb_cntCWdefWPM);
cntCWdefWPM->align(Fl_Align(FL_ALIGN_TOP));
cntCWdefWPM->when(FL_WHEN_CHANGED);
o->value(progdefaults.defCWspeed);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Counter2* cntCWdefWPM
{ Fl_Counter* o = cntCWlowerlimit = new Fl_Counter(245, 281, 65, 20, _("Lower limit"));
cntCWlowerlimit->tooltip(_("No slower than this"));
cntCWlowerlimit->type(1);
cntCWlowerlimit->minimum(5);
cntCWlowerlimit->maximum(20);
cntCWlowerlimit->step(5);
cntCWlowerlimit->value(10);
cntCWlowerlimit->callback((Fl_Callback*)cb_cntCWlowerlimit);
cntCWlowerlimit->align(Fl_Align(FL_ALIGN_TOP));
o->value(progdefaults.CWlowerlimit);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Counter* cntCWlowerlimit
{ Fl_Counter* o = cntCWupperlimit = new Fl_Counter(401, 281, 65, 20, _("Upper limit"));
cntCWupperlimit->tooltip(_("No faster than this"));
cntCWupperlimit->type(1);
cntCWupperlimit->minimum(25);
cntCWupperlimit->maximum(200);
cntCWupperlimit->step(5);
cntCWupperlimit->value(100);
cntCWupperlimit->callback((Fl_Callback*)cb_cntCWupperlimit);
cntCWupperlimit->align(Fl_Align(FL_ALIGN_TOP));
o->value(progdefaults.CWupperlimit);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Counter* cntCWupperlimit
{ Fl_Value_Slider2* o = sldrCWfarnsworth = new Fl_Value_Slider2(50, 335, 440, 20, _("F-WPM"));
sldrCWfarnsworth->tooltip(_("My transmit CW WPM"));
sldrCWfarnsworth->type(1);
sldrCWfarnsworth->box(FL_DOWN_BOX);
sldrCWfarnsworth->color(FL_BACKGROUND_COLOR);
sldrCWfarnsworth->selection_color(FL_BACKGROUND_COLOR);
sldrCWfarnsworth->labeltype(FL_NORMAL_LABEL);
sldrCWfarnsworth->labelfont(0);
sldrCWfarnsworth->labelsize(14);
sldrCWfarnsworth->labelcolor(FL_FOREGROUND_COLOR);
sldrCWfarnsworth->minimum(5);
sldrCWfarnsworth->maximum(100);
sldrCWfarnsworth->step(1);
sldrCWfarnsworth->value(20);
sldrCWfarnsworth->textsize(14);
sldrCWfarnsworth->callback((Fl_Callback*)cb_sldrCWfarnsworth);
sldrCWfarnsworth->align(Fl_Align(FL_ALIGN_RIGHT));
sldrCWfarnsworth->when(FL_WHEN_CHANGED);
o->value(progdefaults.CWfarnsworth);
o->labelsize(FL_NORMAL_SIZE); o->textsize(FL_NORMAL_SIZE);
} // Fl_Value_Slider2* sldrCWfarnsworth
{ Fl_Check_Button* o = btnCWusefarnsworth = new Fl_Check_Button(70, 312, 180, 15, _("Use Farnsworth timing"));
btnCWusefarnsworth->down_box(FL_DOWN_BOX);
btnCWusefarnsworth->callback((Fl_Callback*)cb_btnCWusefarnsworth);
o->value(progdefaults.CWusefarnsworth);
} // Fl_Check_Button* btnCWusefarnsworth
o->end();
} // Fl_Group* o
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(0, 75, 600, 310, _("Timing and QSK"));
o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
o->hide();
{ Fl_Group* o = new Fl_Group(5, 85, 585, 120, _("Timing"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Counter2* o = cntCWweight = new Fl_Counter2(20, 110, 65, 20, _("Weight (%)"));
cntCWweight->tooltip(_("Dot to dot-space ratio"));
cntCWweight->type(1);
cntCWweight->box(FL_UP_BOX);
cntCWweight->color(FL_BACKGROUND_COLOR);
cntCWweight->selection_color(FL_INACTIVE_COLOR);
cntCWweight->labeltype(FL_NORMAL_LABEL);
cntCWweight->labelfont(0);
cntCWweight->labelsize(14);
cntCWweight->labelcolor(FL_FOREGROUND_COLOR);
cntCWweight->minimum(20);
cntCWweight->maximum(80);
cntCWweight->step(1);
cntCWweight->value(50);
cntCWweight->callback((Fl_Callback*)cb_cntCWweight);
cntCWweight->align(Fl_Align(FL_ALIGN_RIGHT));
cntCWweight->when(FL_WHEN_CHANGED);
o->value(progdefaults.CWweight);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Counter2* cntCWweight
{ Fl_Counter2* o = cntCWdash2dot = new Fl_Counter2(245, 110, 80, 20, _("Dash/Dot"));
cntCWdash2dot->tooltip(_("Dash to dot ratio"));
cntCWdash2dot->type(1);
cntCWdash2dot->box(FL_UP_BOX);
cntCWdash2dot->color(FL_BACKGROUND_COLOR);
cntCWdash2dot->selection_color(FL_INACTIVE_COLOR);
cntCWdash2dot->labeltype(FL_NORMAL_LABEL);
cntCWdash2dot->labelfont(0);
cntCWdash2dot->labelsize(14);
cntCWdash2dot->labelcolor(FL_FOREGROUND_COLOR);
cntCWdash2dot->minimum(2.5);
cntCWdash2dot->maximum(4);
cntCWdash2dot->value(3);
cntCWdash2dot->callback((Fl_Callback*)cb_cntCWdash2dot);
cntCWdash2dot->align(Fl_Align(FL_ALIGN_RIGHT));
cntCWdash2dot->when(FL_WHEN_CHANGED);
o->value(progdefaults.CWdash2dot);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Counter2* cntCWdash2dot
{ Fl_Counter2* o = cntCWrisetime = new Fl_Counter2(245, 143, 80, 20, _("Edge timing"));
cntCWrisetime->tooltip(_("Leading and Trailing edge risetimes (msec)"));
cntCWrisetime->type(1);
cntCWrisetime->box(FL_UP_BOX);
cntCWrisetime->color(FL_BACKGROUND_COLOR);
cntCWrisetime->selection_color(FL_INACTIVE_COLOR);
cntCWrisetime->labeltype(FL_NORMAL_LABEL);
cntCWrisetime->labelfont(0);
cntCWrisetime->labelsize(14);
cntCWrisetime->labelcolor(FL_FOREGROUND_COLOR);
cntCWrisetime->minimum(0);
cntCWrisetime->maximum(15);
cntCWrisetime->value(4);
cntCWrisetime->callback((Fl_Callback*)cb_cntCWrisetime);
cntCWrisetime->align(Fl_Align(FL_ALIGN_RIGHT));
cntCWrisetime->when(FL_WHEN_CHANGED);
o->value(progdefaults.CWrisetime);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Counter2* cntCWrisetime
{ Fl_ListBox* o = i_listboxQSKshape = new Fl_ListBox(20, 143, 112, 20, _("Edge shape"));
i_listboxQSKshape->tooltip(_("Hanning/Blackman - use edge timing\nBPF - use BPF bandwidth"));
i_listboxQSKshape->box(FL_DOWN_BOX);
i_listboxQSKshape->color(FL_BACKGROUND2_COLOR);
i_listboxQSKshape->selection_color(FL_BACKGROUND_COLOR);
i_listboxQSKshape->labeltype(FL_NORMAL_LABEL);
i_listboxQSKshape->labelfont(0);
i_listboxQSKshape->labelsize(14);
i_listboxQSKshape->labelcolor(FL_FOREGROUND_COLOR);
i_listboxQSKshape->callback((Fl_Callback*)cb_i_listboxQSKshape);
i_listboxQSKshape->align(Fl_Align(FL_ALIGN_RIGHT));
i_listboxQSKshape->when(FL_WHEN_RELEASE);
o->add("Hanning|Blackman");
o->index(progdefaults.QSKshape);
o->labelsize(FL_NORMAL_SIZE);
i_listboxQSKshape->end();
} // Fl_ListBox* i_listboxQSKshape
{ Fl_Check_Button* o = btnCWnarrow = new Fl_Check_Button(450, 145, 131, 15, _("Edge decrease"));
btnCWnarrow->tooltip(_("Weight decreases with increasing edge timing"));
btnCWnarrow->down_box(FL_DOWN_BOX);
btnCWnarrow->callback((Fl_Callback*)cb_btnCWnarrow);
o->value(progdefaults.CWnarrow);
} // Fl_Check_Button* btnCWnarrow
{ Fl_Check_Button* o = btnCW_bpf_on = new Fl_Check_Button(20, 180, 167, 15, _("BPF transmit audio"));
btnCW_bpf_on->tooltip(_("Enable LO/HI bfp of transmit audio"));
btnCW_bpf_on->down_box(FL_DOWN_BOX);
btnCW_bpf_on->callback((Fl_Callback*)cb_btnCW_bpf_on);
o->value(progdefaults.CW_bpf_on);
} // Fl_Check_Button* btnCW_bpf_on
{ Fl_Counter2* o = cntCW_hpf = new Fl_Counter2(235, 177, 100, 20, _("BPF bw"));
cntCW_hpf->tooltip(_("Low filter cutoff"));
cntCW_hpf->box(FL_UP_BOX);
cntCW_hpf->color(FL_BACKGROUND_COLOR);
cntCW_hpf->selection_color(FL_INACTIVE_COLOR);
cntCW_hpf->labeltype(FL_NORMAL_LABEL);
cntCW_hpf->labelfont(0);
cntCW_hpf->labelsize(14);
cntCW_hpf->labelcolor(FL_FOREGROUND_COLOR);
cntCW_hpf->minimum(10);
cntCW_hpf->maximum(1000);
cntCW_hpf->step(1);
cntCW_hpf->value(100);
cntCW_hpf->callback((Fl_Callback*)cb_cntCW_hpf);
cntCW_hpf->align(Fl_Align(FL_ALIGN_RIGHT));
cntCW_hpf->when(FL_WHEN_CHANGED);
o->value(progdefaults.CW_bpf);
o->labelsize(FL_NORMAL_SIZE);
o->lstep(10.0);
} // Fl_Counter2* cntCW_hpf
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(5, 217, 585, 118, _("QSK"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Check_Button* o = btnQSK = new Fl_Check_Button(16, 245, 233, 20, _("QSK on right audio channel"));
btnQSK->tooltip(_("Generate square wave signal on right channel"));
btnQSK->down_box(FL_DOWN_BOX);
btnQSK->callback((Fl_Callback*)cb_btnQSK);
o->value(progdefaults.QSK);
} // Fl_Check_Button* btnQSK
{ Fl_Counter2* o = cntPreTiming = new Fl_Counter2(16, 275, 71, 20, _("Pre-keydown timing (ms)"));
cntPreTiming->tooltip(_("Msec pre-keydown (+ is earlier in time)"));
cntPreTiming->type(1);
cntPreTiming->box(FL_UP_BOX);
cntPreTiming->color(FL_BACKGROUND_COLOR);
cntPreTiming->selection_color(FL_INACTIVE_COLOR);
cntPreTiming->labeltype(FL_NORMAL_LABEL);
cntPreTiming->labelfont(0);
cntPreTiming->labelsize(14);
cntPreTiming->labelcolor(FL_FOREGROUND_COLOR);
cntPreTiming->minimum(0);
cntPreTiming->maximum(20);
cntPreTiming->step(0.5);
cntPreTiming->callback((Fl_Callback*)cb_cntPreTiming);
cntPreTiming->align(Fl_Align(FL_ALIGN_RIGHT));
cntPreTiming->when(FL_WHEN_CHANGED);
o->value(progdefaults.CWpre);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Counter2* cntPreTiming
{ Fl_Counter2* o = cntPostTiming = new Fl_Counter2(16, 305, 71, 20, _("Post-keydown timing (ms)"));
cntPostTiming->tooltip(_("Msec post-keydown (+ is earlier in time)"));
cntPostTiming->type(1);
cntPostTiming->box(FL_UP_BOX);
cntPostTiming->color(FL_BACKGROUND_COLOR);
cntPostTiming->selection_color(FL_INACTIVE_COLOR);
cntPostTiming->labeltype(FL_NORMAL_LABEL);
cntPostTiming->labelfont(0);
cntPostTiming->labelsize(14);
cntPostTiming->labelcolor(FL_FOREGROUND_COLOR);
cntPostTiming->minimum(-20);
cntPostTiming->maximum(20);
cntPostTiming->step(0.5);
cntPostTiming->callback((Fl_Callback*)cb_cntPostTiming);
cntPostTiming->align(Fl_Align(FL_ALIGN_RIGHT));
cntPostTiming->when(FL_WHEN_CHANGED);
o->value(progdefaults.CWpre);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Counter2* cntPostTiming
{ Fl_Check_Button* o = btnQSKadjust = new Fl_Check_Button(320, 275, 176, 20, _("Send continuously"));
btnQSKadjust->tooltip(_("Send a continuous stream of test characters"));
btnQSKadjust->down_box(FL_DOWN_BOX);
btnQSKadjust->callback((Fl_Callback*)cb_btnQSKadjust);
o->value(progdefaults.QSKadjust);
} // Fl_Check_Button* btnQSKadjust
{ Fl_ListBox* o = i_listbox_test_char = new Fl_ListBox(320, 245, 45, 20, _("Test char"));
i_listbox_test_char->tooltip(_("Test character for QSK adjustment"));
i_listbox_test_char->box(FL_DOWN_BOX);
i_listbox_test_char->color(FL_BACKGROUND2_COLOR);
i_listbox_test_char->selection_color(FL_BACKGROUND_COLOR);
i_listbox_test_char->labeltype(FL_NORMAL_LABEL);
i_listbox_test_char->labelfont(0);
i_listbox_test_char->labelsize(14);
i_listbox_test_char->labelcolor(FL_FOREGROUND_COLOR);
i_listbox_test_char->callback((Fl_Callback*)cb_i_listbox_test_char);
i_listbox_test_char->align(Fl_Align(FL_ALIGN_RIGHT));
i_listbox_test_char->when(FL_WHEN_RELEASE);
o->add(szTestChar);
o->index(progdefaults.TestChar);
o->labelsize(FL_NORMAL_SIZE);
i_listbox_test_char->end();
} // Fl_ListBox* i_listbox_test_char
o->end();
} // Fl_Group* o
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(0, 75, 600, 310, _("Prosigns"));
o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
o->hide();
{ Fl_Group* o = new Fl_Group(35, 85, 530, 283);
o->box(FL_ENGRAVED_FRAME);
{ Fl_Check_Button* o = btnCW_use_paren = new Fl_Check_Button(266, 244, 68, 15, _("Use \'(\' paren not KN"));
btnCW_use_paren->down_box(FL_DOWN_BOX);
btnCW_use_paren->callback((Fl_Callback*)cb_btnCW_use_paren);
o->value(progdefaults.CW_use_paren);
} // Fl_Check_Button* btnCW_use_paren
o->end();
} // Fl_Group* o
{ Fl_ListBox* o = listbox_prosign[0] = new Fl_ListBox(167, 102, 47, 22, _("<BT>"));
listbox_prosign[0]->box(FL_DOWN_BOX);
listbox_prosign[0]->color(FL_BACKGROUND2_COLOR);
listbox_prosign[0]->selection_color(FL_BACKGROUND_COLOR);
listbox_prosign[0]->labeltype(FL_NORMAL_LABEL);
listbox_prosign[0]->labelfont(0);
listbox_prosign[0]->labelsize(14);
listbox_prosign[0]->labelcolor(FL_FOREGROUND_COLOR);
listbox_prosign[0]->callback((Fl_Callback*)cb_listbox_prosign);
listbox_prosign[0]->align(Fl_Align(FL_ALIGN_LEFT));
listbox_prosign[0]->when(FL_WHEN_RELEASE);
o->add(szProsigns);
char s[2] = " "; s[0] = progdefaults.CW_prosigns[0];
o->value(s);
o->labelsize(FL_NORMAL_SIZE);
listbox_prosign[0]->end();
} // Fl_ListBox* listbox_prosign[0]
{ Fl_ListBox* o = listbox_prosign[1] = new Fl_ListBox(167, 129, 47, 22, _("<AA>"));
listbox_prosign[1]->box(FL_DOWN_BOX);
listbox_prosign[1]->color(FL_BACKGROUND2_COLOR);
listbox_prosign[1]->selection_color(FL_BACKGROUND_COLOR);
listbox_prosign[1]->labeltype(FL_NORMAL_LABEL);
listbox_prosign[1]->labelfont(0);
listbox_prosign[1]->labelsize(14);
listbox_prosign[1]->labelcolor(FL_FOREGROUND_COLOR);
listbox_prosign[1]->callback((Fl_Callback*)cb_listbox_prosign1);
listbox_prosign[1]->align(Fl_Align(FL_ALIGN_LEFT));
listbox_prosign[1]->when(FL_WHEN_RELEASE);
o->add(szProsigns);
char s[2] = " "; s[0] = progdefaults.CW_prosigns[1];
o->value(s);
o->labelsize(FL_NORMAL_SIZE);
listbox_prosign[1]->end();
} // Fl_ListBox* listbox_prosign[1]
{ Fl_ListBox* o = listbox_prosign[2] = new Fl_ListBox(167, 157, 47, 22, _("<AS>"));
listbox_prosign[2]->box(FL_DOWN_BOX);
listbox_prosign[2]->color(FL_BACKGROUND2_COLOR);
listbox_prosign[2]->selection_color(FL_BACKGROUND_COLOR);
listbox_prosign[2]->labeltype(FL_NORMAL_LABEL);
listbox_prosign[2]->labelfont(0);
listbox_prosign[2]->labelsize(14);
listbox_prosign[2]->labelcolor(FL_FOREGROUND_COLOR);
listbox_prosign[2]->callback((Fl_Callback*)cb_listbox_prosign2);
listbox_prosign[2]->align(Fl_Align(FL_ALIGN_LEFT));
listbox_prosign[2]->when(FL_WHEN_RELEASE);
o->add(szProsigns);
char s[2] = " "; s[0] = progdefaults.CW_prosigns[2];
o->value(s);
o->labelsize(FL_NORMAL_SIZE);
listbox_prosign[2]->end();
} // Fl_ListBox* listbox_prosign[2]
{ Fl_ListBox* o = listbox_prosign[3] = new Fl_ListBox(167, 184, 47, 22, _("<AR>"));
listbox_prosign[3]->box(FL_DOWN_BOX);
listbox_prosign[3]->color(FL_BACKGROUND2_COLOR);
listbox_prosign[3]->selection_color(FL_BACKGROUND_COLOR);
listbox_prosign[3]->labeltype(FL_NORMAL_LABEL);
listbox_prosign[3]->labelfont(0);
listbox_prosign[3]->labelsize(14);
listbox_prosign[3]->labelcolor(FL_FOREGROUND_COLOR);
listbox_prosign[3]->callback((Fl_Callback*)cb_listbox_prosign3);
listbox_prosign[3]->align(Fl_Align(FL_ALIGN_LEFT));
listbox_prosign[3]->when(FL_WHEN_RELEASE);
o->add(szProsigns);
char s[2] = " "; s[0] = progdefaults.CW_prosigns[3];
o->value(s);
listbox_prosign[3]->end();
} // Fl_ListBox* listbox_prosign[3]
{ Fl_ListBox* o = listbox_prosign[4] = new Fl_ListBox(167, 212, 47, 22, _("<SK>"));
listbox_prosign[4]->box(FL_DOWN_BOX);
listbox_prosign[4]->color(FL_BACKGROUND2_COLOR);
listbox_prosign[4]->selection_color(FL_BACKGROUND_COLOR);
listbox_prosign[4]->labeltype(FL_NORMAL_LABEL);
listbox_prosign[4]->labelfont(0);
listbox_prosign[4]->labelsize(14);
listbox_prosign[4]->labelcolor(FL_FOREGROUND_COLOR);
listbox_prosign[4]->callback((Fl_Callback*)cb_listbox_prosign4);
listbox_prosign[4]->align(Fl_Align(FL_ALIGN_LEFT));
listbox_prosign[4]->when(FL_WHEN_RELEASE);
o->add(szProsigns);
char s[2] = " "; s[0] = progdefaults.CW_prosigns[4];
o->value(s);
o->labelsize(FL_NORMAL_SIZE);
listbox_prosign[4]->end();
} // Fl_ListBox* listbox_prosign[4]
{ Fl_ListBox* o = listbox_prosign[5] = new Fl_ListBox(167, 240, 47, 22, _("<KN>"));
listbox_prosign[5]->box(FL_DOWN_BOX);
listbox_prosign[5]->color(FL_BACKGROUND2_COLOR);
listbox_prosign[5]->selection_color(FL_BACKGROUND_COLOR);
listbox_prosign[5]->labeltype(FL_NORMAL_LABEL);
listbox_prosign[5]->labelfont(0);
listbox_prosign[5]->labelsize(14);
listbox_prosign[5]->labelcolor(FL_FOREGROUND_COLOR);
listbox_prosign[5]->callback((Fl_Callback*)cb_listbox_prosign5);
listbox_prosign[5]->align(Fl_Align(FL_ALIGN_LEFT));
listbox_prosign[5]->when(FL_WHEN_RELEASE);
o->add(szProsigns);
char s[2] = " "; s[0] = progdefaults.CW_prosigns[5];
o->value(s);
o->labelsize(FL_NORMAL_SIZE);
listbox_prosign[5]->end();
} // Fl_ListBox* listbox_prosign[5]
{ Fl_ListBox* o = listbox_prosign[6] = new Fl_ListBox(167, 267, 47, 22, _("<INT>"));
listbox_prosign[6]->box(FL_DOWN_BOX);
listbox_prosign[6]->color(FL_BACKGROUND2_COLOR);
listbox_prosign[6]->selection_color(FL_BACKGROUND_COLOR);
listbox_prosign[6]->labeltype(FL_NORMAL_LABEL);
listbox_prosign[6]->labelfont(0);
listbox_prosign[6]->labelsize(14);
listbox_prosign[6]->labelcolor(FL_FOREGROUND_COLOR);
listbox_prosign[6]->callback((Fl_Callback*)cb_listbox_prosign6);
listbox_prosign[6]->align(Fl_Align(FL_ALIGN_LEFT));
listbox_prosign[6]->when(FL_WHEN_RELEASE);
o->add(szProsigns);
char s[2] = " "; s[0] = progdefaults.CW_prosigns[6];
o->value(s);
o->labelsize(FL_NORMAL_SIZE);
listbox_prosign[6]->end();
} // Fl_ListBox* listbox_prosign[6]
{ Fl_ListBox* o = listbox_prosign[7] = new Fl_ListBox(167, 295, 47, 22, _("<HM>"));
listbox_prosign[7]->box(FL_DOWN_BOX);
listbox_prosign[7]->color(FL_BACKGROUND2_COLOR);
listbox_prosign[7]->selection_color(FL_BACKGROUND_COLOR);
listbox_prosign[7]->labeltype(FL_NORMAL_LABEL);
listbox_prosign[7]->labelfont(0);
listbox_prosign[7]->labelsize(14);
listbox_prosign[7]->labelcolor(FL_FOREGROUND_COLOR);
listbox_prosign[7]->callback((Fl_Callback*)cb_listbox_prosign7);
listbox_prosign[7]->align(Fl_Align(FL_ALIGN_LEFT));
listbox_prosign[7]->when(FL_WHEN_RELEASE);
o->add(szProsigns);
char s[2] = " "; s[0] = progdefaults.CW_prosigns[7];
o->value(s);
o->labelsize(FL_NORMAL_SIZE);
listbox_prosign[7]->end();
} // Fl_ListBox* listbox_prosign[7]
{ Fl_ListBox* o = listbox_prosign[8] = new Fl_ListBox(167, 323, 47, 22, _("<VE>"));
listbox_prosign[8]->box(FL_DOWN_BOX);
listbox_prosign[8]->color(FL_BACKGROUND2_COLOR);
listbox_prosign[8]->selection_color(FL_BACKGROUND_COLOR);
listbox_prosign[8]->labeltype(FL_NORMAL_LABEL);
listbox_prosign[8]->labelfont(0);
listbox_prosign[8]->labelsize(14);
listbox_prosign[8]->labelcolor(FL_FOREGROUND_COLOR);
listbox_prosign[8]->callback((Fl_Callback*)cb_listbox_prosign8);
listbox_prosign[8]->align(Fl_Align(FL_ALIGN_LEFT));
listbox_prosign[8]->when(FL_WHEN_RELEASE);
o->add(szProsigns);
char s[2] = " "; s[0] = progdefaults.CW_prosigns[8];
o->value(s);
o->labelsize(FL_NORMAL_SIZE);
listbox_prosign[8]->end();
} // Fl_ListBox* listbox_prosign[8]
o->end();
} // Fl_Group* o
tabsCW->end();
} // Fl_Tabs* tabsCW
tabCW->end();
} // Fl_Group* tabCW
{ tabDomEX = new Fl_Group(0, 50, 600, 335, _("Dom"));
tabDomEX->hide();
{ Fl_Group* o = new Fl_Group(55, 60, 490, 180);
o->box(FL_ENGRAVED_FRAME);
{ txtSecondary = new Fl_Input2(65, 87, 360, 40, _("Secondary Text"));
txtSecondary->tooltip(_("Text to send during keyboard idle times"));
txtSecondary->type(4);
txtSecondary->box(FL_DOWN_BOX);
txtSecondary->color(FL_BACKGROUND2_COLOR);
txtSecondary->selection_color(FL_SELECTION_COLOR);
txtSecondary->labeltype(FL_NORMAL_LABEL);
txtSecondary->labelfont(0);
txtSecondary->labelsize(14);
txtSecondary->labelcolor(FL_FOREGROUND_COLOR);
txtSecondary->callback((Fl_Callback*)cb_txtSecondary);
txtSecondary->align(Fl_Align(FL_ALIGN_TOP_LEFT));
txtSecondary->when(FL_WHEN_CHANGED);
txtSecondary->labelsize(FL_NORMAL_SIZE);
} // Fl_Input2* txtSecondary
{ Fl_Check_Button* o = valDominoEX_FILTER = new Fl_Check_Button(65, 141, 80, 20, _("Filtering"));
valDominoEX_FILTER->tooltip(_("Use DSP filter before decoder"));
valDominoEX_FILTER->down_box(FL_DOWN_BOX);
valDominoEX_FILTER->value(1);
valDominoEX_FILTER->callback((Fl_Callback*)cb_valDominoEX_FILTER);
o->value(progdefaults.DOMINOEX_FILTER);
} // Fl_Check_Button* valDominoEX_FILTER
{ Fl_Counter2* o = valDominoEX_BW = new Fl_Counter2(206, 141, 63, 20, _("Filter bandwidth factor"));
valDominoEX_BW->tooltip(_("Filter bandwidth relative to signal width"));
valDominoEX_BW->type(1);
valDominoEX_BW->box(FL_UP_BOX);
valDominoEX_BW->color(FL_BACKGROUND_COLOR);
valDominoEX_BW->selection_color(FL_INACTIVE_COLOR);
valDominoEX_BW->labeltype(FL_NORMAL_LABEL);
valDominoEX_BW->labelfont(0);
valDominoEX_BW->labelsize(14);
valDominoEX_BW->labelcolor(FL_FOREGROUND_COLOR);
valDominoEX_BW->minimum(1);
valDominoEX_BW->maximum(2);
valDominoEX_BW->value(1.5);
valDominoEX_BW->callback((Fl_Callback*)cb_valDominoEX_BW);
valDominoEX_BW->align(Fl_Align(FL_ALIGN_RIGHT));
valDominoEX_BW->when(FL_WHEN_CHANGED);
o->value(progdefaults.DOMINOEX_BW);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Counter2* valDominoEX_BW
{ Fl_Check_Button* o = chkDominoEX_FEC = new Fl_Check_Button(65, 171, 51, 20, _("FEC"));
chkDominoEX_FEC->tooltip(_("Enable MultiPSK-compatible FEC"));
chkDominoEX_FEC->down_box(FL_DOWN_BOX);
chkDominoEX_FEC->callback((Fl_Callback*)cb_chkDominoEX_FEC);
o->value(progdefaults.DOMINOEX_FEC);
} // Fl_Check_Button* chkDominoEX_FEC
{ Fl_Value_Slider2* o = valDomCWI = new Fl_Value_Slider2(65, 207, 260, 20, _("CWI threshold"));
valDomCWI->tooltip(_("CWI detection and suppression"));
valDomCWI->type(1);
valDomCWI->box(FL_DOWN_BOX);
valDomCWI->color(FL_BACKGROUND_COLOR);
valDomCWI->selection_color(FL_BACKGROUND_COLOR);
valDomCWI->labeltype(FL_NORMAL_LABEL);
valDomCWI->labelfont(0);
valDomCWI->labelsize(14);
valDomCWI->labelcolor(FL_FOREGROUND_COLOR);
valDomCWI->textsize(14);
valDomCWI->callback((Fl_Callback*)cb_valDomCWI);
valDomCWI->align(Fl_Align(FL_ALIGN_TOP));
valDomCWI->when(FL_WHEN_CHANGED);
o->value(progdefaults.DomCWI);
o->labelsize(FL_NORMAL_SIZE); o->textsize(FL_NORMAL_SIZE);
} // Fl_Value_Slider2* valDomCWI
{ Fl_Counter2* o = valDominoEX_PATHS = new Fl_Counter2(389, 194, 63, 20, _("Paths (hidden)"));
valDominoEX_PATHS->type(1);
valDominoEX_PATHS->box(FL_UP_BOX);
valDominoEX_PATHS->color(FL_BACKGROUND_COLOR);
valDominoEX_PATHS->selection_color(FL_INACTIVE_COLOR);
valDominoEX_PATHS->labeltype(FL_NORMAL_LABEL);
valDominoEX_PATHS->labelfont(0);
valDominoEX_PATHS->labelsize(14);
valDominoEX_PATHS->labelcolor(FL_FOREGROUND_COLOR);
valDominoEX_PATHS->minimum(4);
valDominoEX_PATHS->maximum(8);
valDominoEX_PATHS->step(1);
valDominoEX_PATHS->value(5);
valDominoEX_PATHS->callback((Fl_Callback*)cb_valDominoEX_PATHS);
valDominoEX_PATHS->align(Fl_Align(FL_ALIGN_BOTTOM));
valDominoEX_PATHS->when(FL_WHEN_CHANGED);
o->value(progdefaults.DOMINOEX_PATHS);
o->labelsize(FL_NORMAL_SIZE);
o->hide();
} // Fl_Counter2* valDominoEX_PATHS
o->end();
} // Fl_Group* o
tabDomEX->end();
} // Fl_Group* tabDomEX
{ tabFeld = new Fl_Group(0, 50, 600, 335, _("Feld"));
tabFeld->hide();
{ Fl_Group* o = new Fl_Group(55, 72, 490, 145);
o->box(FL_ENGRAVED_FRAME);
{ Fl_ListBox* o = listboxHellFont = new Fl_ListBox(65, 82, 150, 20, _("Transmit font"));
listboxHellFont->tooltip(_("Select TX raster font"));
listboxHellFont->box(FL_DOWN_BOX);
listboxHellFont->color(FL_BACKGROUND2_COLOR);
listboxHellFont->selection_color(FL_BACKGROUND_COLOR);
listboxHellFont->labeltype(FL_NORMAL_LABEL);
listboxHellFont->labelfont(0);
listboxHellFont->labelsize(14);
listboxHellFont->labelcolor(FL_FOREGROUND_COLOR);
listboxHellFont->callback((Fl_Callback*)cb_listboxHellFont);
listboxHellFont->align(Fl_Align(FL_ALIGN_RIGHT));
listboxHellFont->when(FL_WHEN_RELEASE);
o->add(szFeldFonts);
o->index(progdefaults.feldfontnbr);
o->labelsize(FL_NORMAL_SIZE);
listboxHellFont->end();
} // Fl_ListBox* listboxHellFont
{ Fl_Check_Button* o = btnBlackboard = new Fl_Check_Button(350, 82, 125, 20, _("Reverse video"));
btnBlackboard->tooltip(_("Display RX in reverse video"));
btnBlackboard->down_box(FL_DOWN_BOX);
btnBlackboard->callback((Fl_Callback*)cb_btnBlackboard);
o->value(progdefaults.HellBlackboard);
} // Fl_Check_Button* btnBlackboard
{ Fl_Spinner2* o = valHellXmtWidth = new Fl_Spinner2(65, 112, 40, 20, _("Transmit width"));
valHellXmtWidth->tooltip(_("# of multiple scans / character line"));
valHellXmtWidth->box(FL_NO_BOX);
valHellXmtWidth->color(FL_BACKGROUND_COLOR);
valHellXmtWidth->selection_color(FL_BACKGROUND_COLOR);
valHellXmtWidth->labeltype(FL_NORMAL_LABEL);
valHellXmtWidth->labelfont(0);
valHellXmtWidth->labelsize(14);
valHellXmtWidth->labelcolor(FL_FOREGROUND_COLOR);
valHellXmtWidth->maximum(3);
valHellXmtWidth->callback((Fl_Callback*)cb_valHellXmtWidth);
valHellXmtWidth->align(Fl_Align(FL_ALIGN_RIGHT));
valHellXmtWidth->when(FL_WHEN_RELEASE);
o->value(progdefaults.HellXmtWidth);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Spinner2* valHellXmtWidth
{ Fl_Check_Button* o = btnHellRcvWidth = new Fl_Check_Button(350, 112, 155, 20, _("Halve receive width"));
btnHellRcvWidth->tooltip(_("Compress Rx in time"));
btnHellRcvWidth->down_box(FL_DOWN_BOX);
btnHellRcvWidth->callback((Fl_Callback*)cb_btnHellRcvWidth);
o->value(progdefaults.HellRcvWidth);
} // Fl_Check_Button* btnHellRcvWidth
{ Fl_ListBox* o = listboxHellPulse = new Fl_ListBox(65, 159, 150, 20, _("Pulse shape"));
listboxHellPulse->tooltip(_("Raised cosine pulse shape factor"));
listboxHellPulse->box(FL_DOWN_BOX);
listboxHellPulse->color(FL_BACKGROUND2_COLOR);
listboxHellPulse->selection_color(FL_BACKGROUND_COLOR);
listboxHellPulse->labeltype(FL_NORMAL_LABEL);
listboxHellPulse->labelfont(0);
listboxHellPulse->labelsize(14);
listboxHellPulse->labelcolor(FL_FOREGROUND_COLOR);
listboxHellPulse->callback((Fl_Callback*)cb_listboxHellPulse);
listboxHellPulse->align(Fl_Align(FL_ALIGN_TOP_LEFT));
listboxHellPulse->when(FL_WHEN_RELEASE);
o->add(_("Slow (4 msec)"));
o->add(_("Fast (2 msec)"));
o->index(progdefaults.HellPulseFast);
o->labelsize(FL_NORMAL_SIZE);
listboxHellPulse->end();
} // Fl_ListBox* listboxHellPulse
{ Fl_Value_Slider2* o = sldrHellBW = new Fl_Value_Slider2(256, 159, 246, 20, _("Receive filter bandwidth"));
sldrHellBW->tooltip(_("Adjust the DSP bandwidth"));
sldrHellBW->type(1);
sldrHellBW->box(FL_DOWN_BOX);
sldrHellBW->color(FL_BACKGROUND_COLOR);
sldrHellBW->selection_color(FL_BACKGROUND_COLOR);
sldrHellBW->labeltype(FL_NORMAL_LABEL);
sldrHellBW->labelfont(0);
sldrHellBW->labelsize(14);
sldrHellBW->labelcolor(FL_FOREGROUND_COLOR);
sldrHellBW->minimum(10);
sldrHellBW->maximum(2400);
sldrHellBW->step(5);
sldrHellBW->value(400);
sldrHellBW->textsize(14);
sldrHellBW->callback((Fl_Callback*)cb_sldrHellBW);
sldrHellBW->align(Fl_Align(FL_ALIGN_TOP_LEFT));
sldrHellBW->when(FL_WHEN_CHANGED);
o->value(progdefaults.HELL_BW);
o->labelsize(FL_NORMAL_SIZE); o->textsize(FL_NORMAL_SIZE);
} // Fl_Value_Slider2* sldrHellBW
{ Fl_Check_Button* o = btnFeldHellIdle = new Fl_Check_Button(65, 189, 230, 20, _("Transmit periods (.) when idle"));
btnFeldHellIdle->tooltip(_("Transmits a diddle dot when no keyboard activity"));
btnFeldHellIdle->down_box(FL_DOWN_BOX);
btnFeldHellIdle->value(1);
btnFeldHellIdle->callback((Fl_Callback*)cb_btnFeldHellIdle);
o->value(progdefaults.HellXmtIdle);
} // Fl_Check_Button* btnFeldHellIdle
{ Fl_Check_Button* o = btnHellXmtWidth = new Fl_Check_Button(355, 187, 113, 20, _("2x Xmt Width (hidden)"));
btnHellXmtWidth->down_box(FL_DOWN_BOX);
btnHellXmtWidth->callback((Fl_Callback*)cb_btnHellXmtWidth);
o->value(progdefaults.HellXmtWidth);
o->hide();
} // Fl_Check_Button* btnHellXmtWidth
o->end();
} // Fl_Group* o
tabFeld->end();
} // Fl_Group* tabFeld
{ tabFSQ = new Fl_Group(0, 50, 600, 335, _("FSQ"));
tabFSQ->hide();
{ Fl_Group* o = new Fl_Group(5, 60, 585, 69, _("Rx Parameters"));
o->box(FL_ENGRAVED_BOX);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Value_Slider* o = valhits = new Fl_Value_Slider(140, 65, 125, 22, _("Min Hits"));
valhits->tooltip(_("Minimum # hits in tone detector"));
valhits->type(5);
valhits->minimum(3);
valhits->maximum(6);
valhits->step(1);
valhits->value(3);
valhits->textsize(14);
valhits->callback((Fl_Callback*)cb_valhits);
valhits->align(Fl_Align(FL_ALIGN_RIGHT));
o->value(progdefaults.fsqhits);
} // Fl_Value_Slider* valhits
{ Fl_Choice* o = sel_fsq_lpf = new Fl_Choice(163, 94, 102, 22, _("Image LPF"));
sel_fsq_lpf->tooltip(_("Narrow LPF if image noisy"));
sel_fsq_lpf->down_box(FL_BORDER_BOX);
sel_fsq_lpf->callback((Fl_Callback*)cb_sel_fsq_lpf);
o->add("None"); o->add("300 Hz"); o->add("400 Hz"); o->add("500 Hz");
o->value(progdefaults.fsq_img_filter);
} // Fl_Choice* sel_fsq_lpf
{ Fl_Value_Slider* o = sldrMovAvg = new Fl_Value_Slider(410, 65, 125, 22, _("MovAvg:"));
sldrMovAvg->tooltip(_("Filter FFT output"));
sldrMovAvg->type(1);
sldrMovAvg->minimum(1);
sldrMovAvg->maximum(4);
sldrMovAvg->step(1);
sldrMovAvg->value(4);
sldrMovAvg->textsize(14);
sldrMovAvg->callback((Fl_Callback*)cb_sldrMovAvg);
sldrMovAvg->align(Fl_Align(FL_ALIGN_LEFT));
o->value(progdefaults.fsq_movavg);
} // Fl_Value_Slider* sldrMovAvg
{ Fl_Choice* o = sel_fsq_heard_aging = new Fl_Choice(433, 94, 102, 22, _("Heard aging"));
sel_fsq_heard_aging->tooltip(_("Remove call after ..."));
sel_fsq_heard_aging->down_box(FL_BORDER_BOX);
sel_fsq_heard_aging->callback((Fl_Callback*)cb_sel_fsq_heard_aging);
o->add("Never"); o->add("1 min"); o->add("5 min");o->add("10 min"); o->add("20 min"); o->add("20 min"); o->add("30 min"); o->add("60 min"); o->add("90 min"); o->add("120 min");
o->value(progdefaults.fsq_heard_aging);
} // Fl_Choice* sel_fsq_heard_aging
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(5, 130, 585, 90, _("Tx Parameters"));
o->box(FL_ENGRAVED_BOX);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Round_Button* o = btn_fsqbaud[0] = new Fl_Round_Button(150, 139, 55, 15, _("2 baud"));
btn_fsqbaud[0]->down_box(FL_ROUND_DOWN_BOX);
btn_fsqbaud[0]->callback((Fl_Callback*)cb_btn_fsqbaud);
o->value(progdefaults.fsqbaud == 2);
} // Fl_Round_Button* btn_fsqbaud[0]
{ Fl_Round_Button* o = btn_fsqbaud[1] = new Fl_Round_Button(258, 139, 55, 15, _("3 baud"));
btn_fsqbaud[1]->down_box(FL_ROUND_DOWN_BOX);
btn_fsqbaud[1]->callback((Fl_Callback*)cb_btn_fsqbaud1);
o->value(progdefaults.fsqbaud == 3);
} // Fl_Round_Button* btn_fsqbaud[1]
{ Fl_Round_Button* o = btn_fsqbaud[2] = new Fl_Round_Button(366, 139, 55, 15, _("4.5 baud"));
btn_fsqbaud[2]->down_box(FL_ROUND_DOWN_BOX);
btn_fsqbaud[2]->callback((Fl_Callback*)cb_btn_fsqbaud2);
o->value(progdefaults.fsqbaud == 4.5);
} // Fl_Round_Button* btn_fsqbaud[2]
{ Fl_Round_Button* o = btn_fsqbaud[3] = new Fl_Round_Button(475, 139, 55, 15, _("6 baud"));
btn_fsqbaud[3]->down_box(FL_ROUND_DOWN_BOX);
btn_fsqbaud[3]->callback((Fl_Callback*)cb_btn_fsqbaud3);
o->value(progdefaults.fsqbaud == 6);
} // Fl_Round_Button* btn_fsqbaud[3]
{ Fl_Choice* o = sel_fsq_frequency = new Fl_Choice(250, 199, 102, 21, _("Center freq"));
sel_fsq_frequency->down_box(FL_BORDER_BOX);
sel_fsq_frequency->callback((Fl_Callback*)cb_sel_fsq_frequency);
sel_fsq_frequency->align(Fl_Align(FL_ALIGN_TOP));
sel_fsq_frequency->hide();
o->add("1150"); o->add("1500"); o->add("Variable");
o->value(progdefaults.fsq_frequency);
} // Fl_Choice* sel_fsq_frequency
{ Fl_Choice* o = sel_fsq_sounder = new Fl_Choice(80, 163, 100, 22, _("Sounder"));
sel_fsq_sounder->tooltip(_("Send beacon every ..."));
sel_fsq_sounder->down_box(FL_BORDER_BOX);
sel_fsq_sounder->callback((Fl_Callback*)cb_sel_fsq_sounder);
o->add("OFF"); o->add("1 min"); o->add("10 min"); o->add("30 min"); o->add("60 min");
o->value(progdefaults.fsq_sounder);
} // Fl_Choice* sel_fsq_sounder
{ Fl_Check_Button* o = btn_fsq_lowercase = new Fl_Check_Button(366, 166, 214, 15, _("MYCALL always lower case"));
btn_fsq_lowercase->tooltip(_("convert operator callsign to lower case"));
btn_fsq_lowercase->down_box(FL_DOWN_BOX);
btn_fsq_lowercase->callback((Fl_Callback*)cb_btn_fsq_lowercase);
o->value(progdefaults.fsq_lowercase);
} // Fl_Check_Button* btn_fsq_lowercase
{ Fl_Counter* o = cntr_FSQ_time_out = new Fl_Counter(254, 163, 80, 22, _("Time out"));
cntr_FSQ_time_out->tooltip(_("Time out xmt attempt in XX seconds"));
cntr_FSQ_time_out->type(1);
cntr_FSQ_time_out->minimum(2);
cntr_FSQ_time_out->maximum(20);
cntr_FSQ_time_out->step(1);
cntr_FSQ_time_out->value(6);
cntr_FSQ_time_out->callback((Fl_Callback*)cb_cntr_FSQ_time_out);
cntr_FSQ_time_out->align(Fl_Align(FL_ALIGN_LEFT));
o->value(progdefaults.fsq_time_out);
} // Fl_Counter* cntr_FSQ_time_out
{ Fl_Input* o = new Fl_Input(80, 189, 456, 22, _("QTC:"));
o->tooltip(_("Enter QTC text"));
o->callback((Fl_Callback*)cb_QTC);
o->value(progdefaults.fsqQTCtext.c_str());
} // Fl_Input* o
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(5, 220, 585, 39, _("Message Logging"));
o->box(FL_ENGRAVED_BOX);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Check_Button* o = btn_fsq_msg_dt_stamp = new Fl_Check_Button(157, 232, 297, 15, _("Add date/time stamp to each message"));
btn_fsq_msg_dt_stamp->tooltip(_("Add date/time stamp to each # received message"));
btn_fsq_msg_dt_stamp->down_box(FL_DOWN_BOX);
btn_fsq_msg_dt_stamp->value(1);
btn_fsq_msg_dt_stamp->callback((Fl_Callback*)cb_btn_fsq_msg_dt_stamp);
o->value(progdefaults.add_fsq_msg_dt);
} // Fl_Check_Button* btn_fsq_msg_dt_stamp
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(5, 260, 585, 80, _("Logging"));
o->box(FL_ENGRAVED_BOX);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Output* o = txtAuditLog = new Fl_Output(82, 280, 325, 22, _("Audit log"));
o->value(progdefaults.fsq_audit_log.c_str());
} // Fl_Output* txtAuditLog
{ Fl_Light_Button* o = btn_enable_auditlog = new Fl_Light_Button(421, 281, 74, 20, _("Enable"));
btn_enable_auditlog->selection_color((Fl_Color)2);
btn_enable_auditlog->callback((Fl_Callback*)cb_btn_enable_auditlog);
o->value(progdefaults.fsq_enable_audit_log);
} // Fl_Light_Button* btn_enable_auditlog
{ btn_select_auditlog = new Fl_Button(509, 281, 70, 20, _("Select"));
btn_select_auditlog->callback((Fl_Callback*)cb_btn_select_auditlog);
} // Fl_Button* btn_select_auditlog
{ Fl_Output* o = txtHeardLog = new Fl_Output(82, 308, 325, 22, _("Heard log"));
o->value(progdefaults.fsq_heard_log.c_str());
} // Fl_Output* txtHeardLog
{ Fl_Light_Button* o = btn_enable_fsq_heard_log = new Fl_Light_Button(421, 309, 74, 20, _("Enable"));
btn_enable_fsq_heard_log->selection_color((Fl_Color)2);
btn_enable_fsq_heard_log->callback((Fl_Callback*)cb_btn_enable_fsq_heard_log);
o->value(progdefaults.fsq_enable_heard_log);
} // Fl_Light_Button* btn_enable_fsq_heard_log
{ btn_select_fsq_heard_log = new Fl_Button(509, 309, 70, 20, _("Select"));
btn_select_fsq_heard_log->callback((Fl_Callback*)cb_btn_select_fsq_heard_log);
} // Fl_Button* btn_select_fsq_heard_log
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(5, 340, 585, 35, _("Text Colors"));
o->box(FL_ENGRAVED_BOX);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ btn_fsq_xmt_color = new Fl_Button(145, 346, 40, 24, _("XMIT"));
btn_fsq_xmt_color->tooltip(_("Transmit text"));
btn_fsq_xmt_color->callback((Fl_Callback*)cb_btn_fsq_xmt_color);
btn_fsq_xmt_color->align(Fl_Align(FL_ALIGN_LEFT));
btn_fsq_xmt_color->color(progdefaults.fsq_xmt_color);
} // Fl_Button* btn_fsq_xmt_color
{ btn_fsq_directed_color = new Fl_Button(275, 346, 40, 24, _("DIRECTED"));
btn_fsq_directed_color->tooltip(_("Directed received text"));
btn_fsq_directed_color->callback((Fl_Callback*)cb_btn_fsq_directed_color);
btn_fsq_directed_color->align(Fl_Align(FL_ALIGN_LEFT));
btn_fsq_directed_color->color(progdefaults.fsq_directed_color);
} // Fl_Button* btn_fsq_directed_color
{ btn_fsq_undirected_color = new Fl_Button(425, 346, 40, 24, _("UNDIRECTED"));
btn_fsq_undirected_color->tooltip(_("Undirected received text"));
btn_fsq_undirected_color->callback((Fl_Callback*)cb_btn_fsq_undirected_color);
btn_fsq_undirected_color->align(Fl_Align(FL_ALIGN_LEFT));
btn_fsq_undirected_color->color(progdefaults.fsq_undirected_color);
} // Fl_Button* btn_fsq_undirected_color
{ btn_fsq_color_defaults = new Fl_Button(507, 346, 74, 24, _("Defaults"));
btn_fsq_color_defaults->callback((Fl_Callback*)cb_btn_fsq_color_defaults);
} // Fl_Button* btn_fsq_color_defaults
o->end();
} // Fl_Group* o
tabFSQ->end();
} // Fl_Group* tabFSQ
{ tabIFKP = new Fl_Group(0, 50, 600, 335, _("IFKP"));
tabIFKP->hide();
{ Fl_Group* o = new Fl_Group(5, 65, 587, 120, _("Tx Parameters"));
o->box(FL_ENGRAVED_BOX);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Round_Button* o = btn_ifkpbaud[0] = new Fl_Round_Button(100, 93, 100, 17, _("1/2 speed"));
btn_ifkpbaud[0]->down_box(FL_ROUND_DOWN_BOX);
btn_ifkpbaud[0]->callback((Fl_Callback*)cb_btn_ifkpbaud);
o->value(progdefaults.ifkp_baud == 0);
} // Fl_Round_Button* btn_ifkpbaud[0]
{ Fl_Round_Button* o = btn_ifkpbaud[1] = new Fl_Round_Button(208, 93, 100, 17, _("1x speed"));
btn_ifkpbaud[1]->tooltip(_("default"));
btn_ifkpbaud[1]->down_box(FL_ROUND_DOWN_BOX);
btn_ifkpbaud[1]->callback((Fl_Callback*)cb_btn_ifkpbaud1);
o->value(progdefaults.ifkp_baud == 1);
} // Fl_Round_Button* btn_ifkpbaud[1]
{ Fl_Round_Button* o = btn_ifkpbaud[2] = new Fl_Round_Button(316, 93, 100, 17, _("2x speed"));
btn_ifkpbaud[2]->down_box(FL_ROUND_DOWN_BOX);
btn_ifkpbaud[2]->callback((Fl_Callback*)cb_btn_ifkpbaud2);
o->value(progdefaults.ifkp_baud == 2);
} // Fl_Round_Button* btn_ifkpbaud[2]
{ Fl_Check_Button* o = btn_ifkp_lowercase = new Fl_Check_Button(100, 125, 220, 15, _("MYCALL always lower case"));
btn_ifkp_lowercase->tooltip(_("convert operator callsign to lower case"));
btn_ifkp_lowercase->down_box(FL_DOWN_BOX);
btn_ifkp_lowercase->callback((Fl_Callback*)cb_btn_ifkp_lowercase);
o->value(progdefaults.ifkp_lowercase);
} // Fl_Check_Button* btn_ifkp_lowercase
{ Fl_Check_Button* o = btn_ifkp_lowercase_call = new Fl_Check_Button(325, 125, 220, 15, _("CALLSIGN always lower case"));
btn_ifkp_lowercase_call->tooltip(_("convert other callsign to lower case"));
btn_ifkp_lowercase_call->down_box(FL_DOWN_BOX);
btn_ifkp_lowercase_call->callback((Fl_Callback*)cb_btn_ifkp_lowercase_call);
o->value(progdefaults.ifkp_lowercase_call);
} // Fl_Check_Button* btn_ifkp_lowercase_call
{ Fl_Check_Button* o = btn_ifkp_freqlock = new Fl_Check_Button(100, 155, 220, 15, _("lock WF at 1500 Hz"));
btn_ifkp_freqlock->tooltip(_("Always transmit at 1500 Hertz center freq."));
btn_ifkp_freqlock->down_box(FL_DOWN_BOX);
btn_ifkp_freqlock->callback((Fl_Callback*)cb_btn_ifkp_freqlock);
o->value(progdefaults.ifkp_freqlock);
} // Fl_Check_Button* btn_ifkp_freqlock
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(5, 190, 587, 100, _("Logging"));
o->box(FL_ENGRAVED_BOX);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Output* o = txt_ifkp_audit_log = new Fl_Output(92, 220, 323, 25, _("Audit log"));
o->value(progdefaults.ifkp_audit_log.c_str());
} // Fl_Output* txt_ifkp_audit_log
{ Fl_Light_Button* o = btn_enable_ifkp_audit_log = new Fl_Light_Button(429, 220, 73, 25, _("Enable"));
btn_enable_ifkp_audit_log->selection_color((Fl_Color)2);
btn_enable_ifkp_audit_log->callback((Fl_Callback*)cb_btn_enable_ifkp_audit_log);
o->value(progdefaults.ifkp_enable_audit_log);
} // Fl_Light_Button* btn_enable_ifkp_audit_log
{ btn_ifkp_select_auditlog = new Fl_Button(510, 220, 70, 25, _("Select"));
btn_ifkp_select_auditlog->callback((Fl_Callback*)cb_btn_ifkp_select_auditlog);
} // Fl_Button* btn_ifkp_select_auditlog
{ Fl_Output* o = txt_ifkp_heard_log = new Fl_Output(92, 249, 323, 25, _("Heard log"));
o->value(progdefaults.ifkp_heard_log.c_str());
} // Fl_Output* txt_ifkp_heard_log
{ Fl_Light_Button* o = btn_enable_ifkp_heard_log = new Fl_Light_Button(429, 249, 73, 25, _("Enable"));
btn_enable_ifkp_heard_log->selection_color((Fl_Color)2);
btn_enable_ifkp_heard_log->callback((Fl_Callback*)cb_btn_enable_ifkp_heard_log);
o->value(progdefaults.ifkp_enable_heard_log);
} // Fl_Light_Button* btn_enable_ifkp_heard_log
{ btn_select_ifkp_heard_log = new Fl_Button(510, 249, 70, 25, _("Select"));
btn_select_ifkp_heard_log->callback((Fl_Callback*)cb_btn_select_ifkp_heard_log);
} // Fl_Button* btn_select_ifkp_heard_log
o->end();
} // Fl_Group* o
tabIFKP->end();
} // Fl_Group* tabIFKP
{ tabMT63 = new Fl_Group(0, 50, 600, 335, _("MT-63"));
tabMT63->hide();
{ Fl_Group* o = new Fl_Group(55, 73, 490, 84);
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Check_Button* o = btnMT63_8bit = new Fl_Check_Button(200, 87, 205, 20, _("8-bit extended characters (UTF-8)"));
btnMT63_8bit->tooltip(_("Enable this for UTF-8 characters"));
btnMT63_8bit->down_box(FL_DOWN_BOX);
btnMT63_8bit->value(1);
btnMT63_8bit->callback((Fl_Callback*)cb_btnMT63_8bit);
o->value(progdefaults.mt63_8bit);
} // Fl_Check_Button* btnMT63_8bit
{ Fl_Check_Button* o = btnMT63_rx_integration = new Fl_Check_Button(200, 117, 190, 20, _("Long receive integration"));
btnMT63_rx_integration->tooltip(_("Enable for very weak signals"));
btnMT63_rx_integration->down_box(FL_DOWN_BOX);
btnMT63_rx_integration->value(1);
btnMT63_rx_integration->callback((Fl_Callback*)cb_btnMT63_rx_integration);
o->value(progdefaults.mt63_rx_integration);
} // Fl_Check_Button* btnMT63_rx_integration
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(55, 169, 490, 131);
o->box(FL_ENGRAVED_FRAME);
{ Fl_Check_Button* o = btnMT63_usetones = new Fl_Check_Button(199, 177, 200, 20, _("Transmit lower start tone"));
btnMT63_usetones->down_box(FL_DOWN_BOX);
btnMT63_usetones->callback((Fl_Callback*)cb_btnMT63_usetones);
o->value(progdefaults.mt63_usetones);
} // Fl_Check_Button* btnMT63_usetones
{ Fl_Check_Button* o = btnMT63_upper_lower = new Fl_Check_Button(199, 207, 200, 20, _("Transmit upper start tone"));
btnMT63_upper_lower->down_box(FL_DOWN_BOX);
btnMT63_upper_lower->callback((Fl_Callback*)cb_btnMT63_upper_lower);
o->value(progdefaults.mt63_twotones);
if (!btnMT63_usetones->value()) o->deactivate();
} // Fl_Check_Button* btnMT63_upper_lower
{ Fl_Spinner2* o = MT63_tone_duration = new Fl_Spinner2(199, 233, 40, 20, _("Tone Duration (secs)"));
MT63_tone_duration->box(FL_NO_BOX);
MT63_tone_duration->color(FL_BACKGROUND_COLOR);
MT63_tone_duration->selection_color(FL_BACKGROUND_COLOR);
MT63_tone_duration->labeltype(FL_NORMAL_LABEL);
MT63_tone_duration->labelfont(0);
MT63_tone_duration->labelsize(14);
MT63_tone_duration->labelcolor(FL_FOREGROUND_COLOR);
MT63_tone_duration->maximum(10);
MT63_tone_duration->value(4);
MT63_tone_duration->callback((Fl_Callback*)cb_MT63_tone_duration);
MT63_tone_duration->align(Fl_Align(FL_ALIGN_RIGHT));
MT63_tone_duration->when(FL_WHEN_RELEASE);
o->value(progdefaults.mt63_tone_duration);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Spinner2* MT63_tone_duration
{ Fl_Check_Button* o = btnMT63_at500 = new Fl_Check_Button(199, 262, 200, 20, _("Allow manual tuning"));
btnMT63_at500->down_box(FL_DOWN_BOX);
btnMT63_at500->callback((Fl_Callback*)cb_btnMT63_at500);
o->value(!progdefaults.mt63_at500);
} // Fl_Check_Button* btnMT63_at500
o->end();
} // Fl_Group* o
tabMT63->end();
} // Fl_Group* tabMT63
{ tabOlivia = new Fl_Group(0, 50, 600, 335, _("Oliv"));
tabOlivia->hide();
{ Fl_Group* o = new Fl_Group(55, 76, 490, 280);
o->box(FL_ENGRAVED_FRAME);
{ Fl_ListBox* o = i_listbox_olivia_bandwidth = new Fl_ListBox(110, 96, 85, 22, _("Bandwidth"));
i_listbox_olivia_bandwidth->tooltip(_("Select bandwidth"));
i_listbox_olivia_bandwidth->box(FL_DOWN_BOX);
i_listbox_olivia_bandwidth->color(FL_BACKGROUND2_COLOR);
i_listbox_olivia_bandwidth->selection_color(FL_BACKGROUND_COLOR);
i_listbox_olivia_bandwidth->labeltype(FL_NORMAL_LABEL);
i_listbox_olivia_bandwidth->labelfont(0);
i_listbox_olivia_bandwidth->labelsize(14);
i_listbox_olivia_bandwidth->labelcolor(FL_FOREGROUND_COLOR);
i_listbox_olivia_bandwidth->callback((Fl_Callback*)cb_i_listbox_olivia_bandwidth);
i_listbox_olivia_bandwidth->align(Fl_Align(FL_ALIGN_RIGHT));
i_listbox_olivia_bandwidth->when(FL_WHEN_RELEASE);
o->add(szOliviaBandwidth);
o->index(progdefaults.oliviabw);
o->labelsize(FL_NORMAL_SIZE);
i_listbox_olivia_bandwidth->end();
} // Fl_ListBox* i_listbox_olivia_bandwidth
{ Fl_ListBox* o = i_listbox_olivia_tones = new Fl_ListBox(371, 96, 70, 22, _("Tones"));
i_listbox_olivia_tones->tooltip(_("Select number of tones"));
i_listbox_olivia_tones->box(FL_DOWN_BOX);
i_listbox_olivia_tones->color(FL_BACKGROUND2_COLOR);
i_listbox_olivia_tones->selection_color(FL_BACKGROUND_COLOR);
i_listbox_olivia_tones->labeltype(FL_NORMAL_LABEL);
i_listbox_olivia_tones->labelfont(0);
i_listbox_olivia_tones->labelsize(14);
i_listbox_olivia_tones->labelcolor(FL_FOREGROUND_COLOR);
i_listbox_olivia_tones->callback((Fl_Callback*)cb_i_listbox_olivia_tones);
i_listbox_olivia_tones->align(Fl_Align(FL_ALIGN_RIGHT));
i_listbox_olivia_tones->when(FL_WHEN_RELEASE);
o->add(szOliviaTones);
o->index(progdefaults.oliviatones);
o->labelsize(FL_NORMAL_SIZE);
i_listbox_olivia_tones->end();
} // Fl_ListBox* i_listbox_olivia_tones
{ Fl_Group* o = new Fl_Group(110, 135, 379, 133, _("Receive synchronizer"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Counter2* o = cntOlivia_smargin = new Fl_Counter2(125, 166, 70, 22, _("Tune margin (tone frequency spacing)"));
cntOlivia_smargin->tooltip(_("Change ONLY to experiment"));
cntOlivia_smargin->type(1);
cntOlivia_smargin->box(FL_UP_BOX);
cntOlivia_smargin->color(FL_BACKGROUND_COLOR);
cntOlivia_smargin->selection_color(FL_INACTIVE_COLOR);
cntOlivia_smargin->labeltype(FL_NORMAL_LABEL);
cntOlivia_smargin->labelfont(0);
cntOlivia_smargin->labelsize(14);
cntOlivia_smargin->labelcolor(FL_FOREGROUND_COLOR);
cntOlivia_smargin->minimum(2);
cntOlivia_smargin->maximum(128);
cntOlivia_smargin->step(1);
cntOlivia_smargin->value(8);
cntOlivia_smargin->callback((Fl_Callback*)cb_cntOlivia_smargin);
cntOlivia_smargin->align(Fl_Align(FL_ALIGN_RIGHT));
cntOlivia_smargin->when(FL_WHEN_CHANGED);
o->labelsize(FL_NORMAL_SIZE);
o->value(progdefaults.oliviasmargin);
} // Fl_Counter2* cntOlivia_smargin
{ Fl_Counter2* o = cntOlivia_sinteg = new Fl_Counter2(125, 198, 70, 22, _("Integration period (FEC blocks)"));
cntOlivia_sinteg->tooltip(_("Change ONLY to experiment"));
cntOlivia_sinteg->type(1);
cntOlivia_sinteg->box(FL_UP_BOX);
cntOlivia_sinteg->color(FL_BACKGROUND_COLOR);
cntOlivia_sinteg->selection_color(FL_INACTIVE_COLOR);
cntOlivia_sinteg->labeltype(FL_NORMAL_LABEL);
cntOlivia_sinteg->labelfont(0);
cntOlivia_sinteg->labelsize(14);
cntOlivia_sinteg->labelcolor(FL_FOREGROUND_COLOR);
cntOlivia_sinteg->minimum(2);
cntOlivia_sinteg->maximum(128);
cntOlivia_sinteg->step(1);
cntOlivia_sinteg->value(4);
cntOlivia_sinteg->callback((Fl_Callback*)cb_cntOlivia_sinteg);
cntOlivia_sinteg->align(Fl_Align(FL_ALIGN_RIGHT));
cntOlivia_sinteg->when(FL_WHEN_CHANGED);
o->labelsize(FL_NORMAL_SIZE);
o->value(progdefaults.oliviasinteg);
} // Fl_Counter2* cntOlivia_sinteg
{ Fl_Check_Button* o = btn_olivia_reset_fec = new Fl_Check_Button(126, 230, 349, 20, _("Reset FEC blocks when changing BW or Tones"));
btn_olivia_reset_fec->tooltip(_("Enable this for UTF-8 character transmission"));
btn_olivia_reset_fec->down_box(FL_DOWN_BOX);
btn_olivia_reset_fec->callback((Fl_Callback*)cb_btn_olivia_reset_fec);
o->value(progdefaults.olivia_reset_fec);
} // Fl_Check_Button* btn_olivia_reset_fec
o->end();
} // Fl_Group* o
{ Fl_Check_Button* o = btnOlivia_8bit = new Fl_Check_Button(131, 291, 265, 20, _("8-bit extended characters (UTF-8)"));
btnOlivia_8bit->tooltip(_("Enable this for UTF-8 character transmission"));
btnOlivia_8bit->down_box(FL_DOWN_BOX);
btnOlivia_8bit->callback((Fl_Callback*)cb_btnOlivia_8bit);
o->value(progdefaults.olivia8bit);
} // Fl_Check_Button* btnOlivia_8bit
{ Fl_Check_Button* o = btnOlivia_start_stop_tones = new Fl_Check_Button(131, 315, 265, 20, _("xmt start/stop tones"));
btnOlivia_start_stop_tones->tooltip(_("Enable this to send start/stop tones"));
btnOlivia_start_stop_tones->down_box(FL_DOWN_BOX);
btnOlivia_start_stop_tones->callback((Fl_Callback*)cb_btnOlivia_start_stop_tones);
o->value(progdefaults.olivia_start_tones);
} // Fl_Check_Button* btnOlivia_start_stop_tones
o->end();
} // Fl_Group* o
tabOlivia->end();
} // Fl_Group* tabOlivia
{ tabContestia = new Fl_Group(0, 50, 600, 335, _("Cont"));
tabContestia->hide();
{ Fl_Group* o = new Fl_Group(55, 80, 490, 235);
o->box(FL_ENGRAVED_FRAME);
{ Fl_ListBox* o = i_listbox_contestia_bandwidth = new Fl_ListBox(110, 100, 85, 22, _("Bandwidth"));
i_listbox_contestia_bandwidth->tooltip(_("Select bandwidth"));
i_listbox_contestia_bandwidth->box(FL_DOWN_BOX);
i_listbox_contestia_bandwidth->color(FL_BACKGROUND2_COLOR);
i_listbox_contestia_bandwidth->selection_color(FL_BACKGROUND_COLOR);
i_listbox_contestia_bandwidth->labeltype(FL_NORMAL_LABEL);
i_listbox_contestia_bandwidth->labelfont(0);
i_listbox_contestia_bandwidth->labelsize(14);
i_listbox_contestia_bandwidth->labelcolor(FL_FOREGROUND_COLOR);
i_listbox_contestia_bandwidth->callback((Fl_Callback*)cb_i_listbox_contestia_bandwidth);
i_listbox_contestia_bandwidth->align(Fl_Align(FL_ALIGN_RIGHT));
i_listbox_contestia_bandwidth->when(FL_WHEN_RELEASE);
o->add(szContestiaBandwidth);
o->index(progdefaults.contestiabw);
o->labelsize(FL_NORMAL_SIZE);
i_listbox_contestia_bandwidth->end();
} // Fl_ListBox* i_listbox_contestia_bandwidth
{ Fl_ListBox* o = i_listbox_contestia_tones = new Fl_ListBox(371, 100, 70, 22, _("Tones"));
i_listbox_contestia_tones->tooltip(_("Select number of tones"));
i_listbox_contestia_tones->box(FL_DOWN_BOX);
i_listbox_contestia_tones->color(FL_BACKGROUND2_COLOR);
i_listbox_contestia_tones->selection_color(FL_BACKGROUND_COLOR);
i_listbox_contestia_tones->labeltype(FL_NORMAL_LABEL);
i_listbox_contestia_tones->labelfont(0);
i_listbox_contestia_tones->labelsize(14);
i_listbox_contestia_tones->labelcolor(FL_FOREGROUND_COLOR);
i_listbox_contestia_tones->callback((Fl_Callback*)cb_i_listbox_contestia_tones);
i_listbox_contestia_tones->align(Fl_Align(FL_ALIGN_RIGHT));
i_listbox_contestia_tones->when(FL_WHEN_RELEASE);
o->add(szContestiaTones);
o->index(progdefaults.contestiatones);
o->labelsize(FL_NORMAL_SIZE);
i_listbox_contestia_tones->end();
} // Fl_ListBox* i_listbox_contestia_tones
{ Fl_Group* o = new Fl_Group(93, 139, 414, 131, _("Receive synchronizer"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Counter2* o = cntContestia_smargin = new Fl_Counter2(112, 170, 70, 22, _("Tune margin (tone frequency spacing)"));
cntContestia_smargin->tooltip(_("Change ONLY to experiment"));
cntContestia_smargin->type(1);
cntContestia_smargin->box(FL_UP_BOX);
cntContestia_smargin->color(FL_BACKGROUND_COLOR);
cntContestia_smargin->selection_color(FL_INACTIVE_COLOR);
cntContestia_smargin->labeltype(FL_NORMAL_LABEL);
cntContestia_smargin->labelfont(0);
cntContestia_smargin->labelsize(14);
cntContestia_smargin->labelcolor(FL_FOREGROUND_COLOR);
cntContestia_smargin->minimum(2);
cntContestia_smargin->maximum(128);
cntContestia_smargin->step(1);
cntContestia_smargin->value(8);
cntContestia_smargin->callback((Fl_Callback*)cb_cntContestia_smargin);
cntContestia_smargin->align(Fl_Align(FL_ALIGN_RIGHT));
cntContestia_smargin->when(FL_WHEN_CHANGED);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Counter2* cntContestia_smargin
{ Fl_Counter2* o = cntContestia_sinteg = new Fl_Counter2(112, 202, 70, 22, _("Integration period (FEC blocks)"));
cntContestia_sinteg->tooltip(_("Change ONLY to experiment"));
cntContestia_sinteg->type(1);
cntContestia_sinteg->box(FL_UP_BOX);
cntContestia_sinteg->color(FL_BACKGROUND_COLOR);
cntContestia_sinteg->selection_color(FL_INACTIVE_COLOR);
cntContestia_sinteg->labeltype(FL_NORMAL_LABEL);
cntContestia_sinteg->labelfont(0);
cntContestia_sinteg->labelsize(14);
cntContestia_sinteg->labelcolor(FL_FOREGROUND_COLOR);
cntContestia_sinteg->minimum(2);
cntContestia_sinteg->maximum(128);
cntContestia_sinteg->step(1);
cntContestia_sinteg->value(4);
cntContestia_sinteg->callback((Fl_Callback*)cb_cntContestia_sinteg);
cntContestia_sinteg->align(Fl_Align(FL_ALIGN_RIGHT));
cntContestia_sinteg->when(FL_WHEN_CHANGED);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Counter2* cntContestia_sinteg
o->end();
} // Fl_Group* o
{ btnContestia_8bit = new Fl_Check_Button(79, 249, 200, 20, _("8-bit extended characters"));
btnContestia_8bit->tooltip(_("Enable this for Latin-1 accented characters"));
btnContestia_8bit->down_box(FL_DOWN_BOX);
btnContestia_8bit->callback((Fl_Callback*)cb_btnContestia_8bit);
btnContestia_8bit->hide();
} // Fl_Check_Button* btnContestia_8bit
{ Fl_Check_Button* o = btnContestia_start_stop_tones = new Fl_Check_Button(141, 280, 265, 20, _("xmt start/stop tones"));
btnContestia_start_stop_tones->tooltip(_("Enable this to send start/stop tones"));
btnContestia_start_stop_tones->down_box(FL_DOWN_BOX);
btnContestia_start_stop_tones->callback((Fl_Callback*)cb_btnContestia_start_stop_tones);
o->value(progdefaults.contestia_start_tones);
} // Fl_Check_Button* btnContestia_start_stop_tones
o->end();
} // Fl_Group* o
tabContestia->end();
} // Fl_Group* tabContestia
{ tabPSK = new Fl_Group(0, 50, 600, 335, _("PSK"));
tabPSK->hide();
{ tabsPSK = new Fl_Tabs(0, 50, 600, 335);
tabsPSK->selection_color(FL_LIGHT1);
{ grpPSK = new Fl_Group(0, 75, 600, 310, _("General"));
grpPSK->align(Fl_Align(FL_ALIGN_TOP_LEFT));
{ Fl_Group* o = new Fl_Group(55, 87, 490, 86, _("AFC behavior"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Counter2* o = cntSearchRange = new Fl_Counter2(200, 111, 75, 20, _("Acquisition search range (Hz)"));
cntSearchRange->tooltip(_("Capture signals within this frequency range"));
cntSearchRange->type(1);
cntSearchRange->box(FL_UP_BOX);
cntSearchRange->color(FL_BACKGROUND_COLOR);
cntSearchRange->selection_color(FL_INACTIVE_COLOR);
cntSearchRange->labeltype(FL_NORMAL_LABEL);
cntSearchRange->labelfont(0);
cntSearchRange->labelsize(14);
cntSearchRange->labelcolor(FL_FOREGROUND_COLOR);
cntSearchRange->minimum(10);
cntSearchRange->maximum(500);
cntSearchRange->step(10);
cntSearchRange->value(200);
cntSearchRange->callback((Fl_Callback*)cb_cntSearchRange);
cntSearchRange->align(Fl_Align(FL_ALIGN_RIGHT));
cntSearchRange->when(FL_WHEN_CHANGED);
o->value(progdefaults.SearchRange);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Counter2* cntSearchRange
{ Fl_Counter2* o = cntACQsn = new Fl_Counter2(200, 140, 75, 20, _("Acquisition S/N (dB)"));
cntACQsn->tooltip(_("Capture signals over this threshold"));
cntACQsn->type(1);
cntACQsn->box(FL_UP_BOX);
cntACQsn->color(FL_BACKGROUND_COLOR);
cntACQsn->selection_color(FL_INACTIVE_COLOR);
cntACQsn->labeltype(FL_NORMAL_LABEL);
cntACQsn->labelfont(0);
cntACQsn->labelsize(14);
cntACQsn->labelcolor(FL_FOREGROUND_COLOR);
cntACQsn->minimum(3);
cntACQsn->maximum(20);
cntACQsn->step(1);
cntACQsn->value(6);
cntACQsn->callback((Fl_Callback*)cb_cntACQsn);
cntACQsn->align(Fl_Align(FL_ALIGN_RIGHT));
cntACQsn->when(FL_WHEN_CHANGED);
o->value(progdefaults.ACQsn);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Counter2* cntACQsn
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(55, 175, 490, 65, _("S/N and IMD behavior"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_ListBox* o = listbox_psk_status_timeout = new Fl_ListBox(180, 206, 80, 20, _("after"));
listbox_psk_status_timeout->tooltip(_("Behavior of s/n imd"));
listbox_psk_status_timeout->box(FL_DOWN_BOX);
listbox_psk_status_timeout->color(FL_BACKGROUND2_COLOR);
listbox_psk_status_timeout->selection_color(FL_BACKGROUND_COLOR);
listbox_psk_status_timeout->labeltype(FL_NORMAL_LABEL);
listbox_psk_status_timeout->labelfont(0);
listbox_psk_status_timeout->labelsize(14);
listbox_psk_status_timeout->labelcolor(FL_FOREGROUND_COLOR);
listbox_psk_status_timeout->callback((Fl_Callback*)cb_listbox_psk_status_timeout);
listbox_psk_status_timeout->align(Fl_Align(FL_ALIGN_RIGHT));
listbox_psk_status_timeout->when(FL_WHEN_RELEASE);
o->add(_("Clear")); o->add(_("Dim"));
o->index(progdefaults.StatusDim);
o->labelsize(FL_NORMAL_SIZE);
listbox_psk_status_timeout->end();
} // Fl_ListBox* listbox_psk_status_timeout
{ Fl_Counter2* o = new Fl_Counter2(321, 206, 75, 20, _("seconds"));
o->tooltip(_("Will occur after this time in seconds"));
o->type(1);
o->box(FL_UP_BOX);
o->color(FL_BACKGROUND_COLOR);
o->selection_color(FL_INACTIVE_COLOR);
o->labeltype(FL_NORMAL_LABEL);
o->labelfont(0);
o->labelsize(14);
o->labelcolor(FL_FOREGROUND_COLOR);
o->minimum(0);
o->maximum(30);
o->step(1);
o->callback((Fl_Callback*)cb_seconds);
o->align(Fl_Align(FL_ALIGN_RIGHT));
o->when(FL_WHEN_CHANGED);
o->value(progdefaults.StatusTimeout);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Counter2* o
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(55, 245, 490, 80, _("Multi-Channel Signal Processing"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Check_Button* o = btnEnablePSKbrowsing = new Fl_Check_Button(225, 295, 180, 20, _("Multi-channel detector"));
btnEnablePSKbrowsing->down_box(FL_DOWN_BOX);
btnEnablePSKbrowsing->callback((Fl_Callback*)cb_btnEnablePSKbrowsing);
o->value(progdefaults.pskbrowser_on);
} // Fl_Check_Button* btnEnablePSKbrowsing
{ Fl_Box* o = new Fl_Box(65, 272, 440, 20, _("Disable on very slow CPUs of if signal browser is not used"));
o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
} // Fl_Box* o
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(55, 327, 490, 47, _("8 psk"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Check_Button* o = btnPSKpilot = new Fl_Check_Button(100, 340, 113, 20, _("Pilot tone"));
btnPSKpilot->tooltip(_("Enable encode/decode vestigial pilot tone"));
btnPSKpilot->down_box(FL_DOWN_BOX);
btnPSKpilot->callback((Fl_Callback*)cb_btnPSKpilot);
o->value(progdefaults.pskpilot);
} // Fl_Check_Button* btnPSKpilot
{ Fl_Counter2* o = cnt_pilot_power = new Fl_Counter2(205, 340, 75, 20, _("pilot power (dB)"));
cnt_pilot_power->tooltip(_("Pilot tone power relative to signal"));
cnt_pilot_power->type(1);
cnt_pilot_power->box(FL_UP_BOX);
cnt_pilot_power->color(FL_BACKGROUND_COLOR);
cnt_pilot_power->selection_color(FL_INACTIVE_COLOR);
cnt_pilot_power->labeltype(FL_NORMAL_LABEL);
cnt_pilot_power->labelfont(0);
cnt_pilot_power->labelsize(14);
cnt_pilot_power->labelcolor(FL_FOREGROUND_COLOR);
cnt_pilot_power->minimum(-60);
cnt_pilot_power->maximum(-20);
cnt_pilot_power->step(1);
cnt_pilot_power->value(-30);
cnt_pilot_power->callback((Fl_Callback*)cb_cnt_pilot_power);
cnt_pilot_power->align(Fl_Align(FL_ALIGN_RIGHT));
cnt_pilot_power->when(FL_WHEN_CHANGED);
o->value(progdefaults.pilot_power);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Counter2* cnt_pilot_power
{ Fl_Check_Button* o = btnPSK8Preamble = new Fl_Check_Button(410, 340, 113, 20, _("Short Preamble"));
btnPSK8Preamble->tooltip(_("Enable encode/decode vestigial pilot tone"));
btnPSK8Preamble->down_box(FL_DOWN_BOX);
btnPSK8Preamble->callback((Fl_Callback*)cb_btnPSK8Preamble);
o->value(progStatus.psk8DCDShortFlag);
} // Fl_Check_Button* btnPSK8Preamble
o->end();
} // Fl_Group* o
grpPSK->end();
} // Fl_Group* grpPSK
tabsPSK->end();
} // Fl_Tabs* tabsPSK
tabPSK->end();
} // Fl_Group* tabPSK
{ tabRTTY = new Fl_Group(0, 50, 600, 335, _("TTY"));
tabRTTY->hide();
{ tabsRTTY = new Fl_Tabs(0, 50, 600, 335);
tabsRTTY->selection_color(FL_LIGHT1);
{ Fl_Group* o = new Fl_Group(0, 75, 600, 310, _("Tx"));
o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
o->hide();
{ Fl_ListBox* o = selShift = new Fl_ListBox(65, 104, 100, 20, _("Carrier shift"));
selShift->tooltip(_("Select carrier shift"));
selShift->box(FL_DOWN_BOX);
selShift->color(FL_BACKGROUND2_COLOR);
selShift->selection_color(FL_BACKGROUND_COLOR);
selShift->labeltype(FL_NORMAL_LABEL);
selShift->labelfont(0);
selShift->labelsize(14);
selShift->labelcolor(FL_FOREGROUND_COLOR);
selShift->callback((Fl_Callback*)cb_selShift);
selShift->align(Fl_Align(FL_ALIGN_RIGHT));
selShift->when(FL_WHEN_CHANGED);
o->add(szShifts);o->index(progdefaults.rtty_shift);
o->labelsize(FL_NORMAL_SIZE);
selShift->end();
} // Fl_ListBox* selShift
{ Fl_Counter2* o = selCustomShift = new Fl_Counter2(65, 137, 100, 20, _("Custom shift"));
selCustomShift->tooltip(_("Input carrier shift"));
selCustomShift->box(FL_UP_BOX);
selCustomShift->color(FL_BACKGROUND_COLOR);
selCustomShift->selection_color(FL_INACTIVE_COLOR);
selCustomShift->labeltype(FL_NORMAL_LABEL);
selCustomShift->labelfont(0);
selCustomShift->labelsize(14);
selCustomShift->labelcolor(FL_FOREGROUND_COLOR);
selCustomShift->minimum(10);
selCustomShift->maximum(1200);
selCustomShift->step(10);
selCustomShift->value(450);
selCustomShift->callback((Fl_Callback*)cb_selCustomShift);
selCustomShift->align(Fl_Align(FL_ALIGN_RIGHT));
selCustomShift->when(FL_WHEN_CHANGED);
o->lstep(100.0);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Counter2* selCustomShift
{ Fl_ListBox* o = selBaud = new Fl_ListBox(65, 170, 100, 20, _("Baud rate"));
selBaud->tooltip(_("Select carrier baudrate"));
selBaud->box(FL_DOWN_BOX);
selBaud->color(FL_BACKGROUND2_COLOR);
selBaud->selection_color(FL_BACKGROUND_COLOR);
selBaud->labeltype(FL_NORMAL_LABEL);
selBaud->labelfont(0);
selBaud->labelsize(14);
selBaud->labelcolor(FL_FOREGROUND_COLOR);
selBaud->callback((Fl_Callback*)cb_selBaud);
selBaud->align(Fl_Align(FL_ALIGN_RIGHT));
selBaud->when(FL_WHEN_CHANGED);
o->add(szBauds);
o->index(progdefaults.rtty_baud);
o->labelsize(FL_NORMAL_SIZE);
selBaud->end();
} // Fl_ListBox* selBaud
{ Fl_ListBox* o = selBits = new Fl_ListBox(65, 203, 100, 20, _("Bits per character"));
selBits->tooltip(_("Select # bits / char"));
selBits->box(FL_DOWN_BOX);
selBits->color(FL_BACKGROUND2_COLOR);
selBits->selection_color(FL_BACKGROUND_COLOR);
selBits->labeltype(FL_NORMAL_LABEL);
selBits->labelfont(0);
selBits->labelsize(14);
selBits->labelcolor(FL_FOREGROUND_COLOR);
selBits->callback((Fl_Callback*)cb_selBits);
selBits->align(Fl_Align(FL_ALIGN_RIGHT));
selBits->when(FL_WHEN_CHANGED);
o->add(szSelBits);o->index(progdefaults.rtty_bits);
o->labelsize(FL_NORMAL_SIZE);
selBits->end();
} // Fl_ListBox* selBits
{ Fl_ListBox* o = selParity = new Fl_ListBox(65, 236, 100, 20, _("Parity"));
selParity->tooltip(_("Select parity"));
selParity->box(FL_DOWN_BOX);
selParity->color(FL_BACKGROUND2_COLOR);
selParity->selection_color(FL_BACKGROUND_COLOR);
selParity->labeltype(FL_NORMAL_LABEL);
selParity->labelfont(0);
selParity->labelsize(14);
selParity->labelcolor(FL_FOREGROUND_COLOR);
selParity->callback((Fl_Callback*)cb_selParity);
selParity->align(Fl_Align(FL_ALIGN_RIGHT));
selParity->when(FL_WHEN_CHANGED);
o->add(szParity);o->index(progdefaults.rtty_parity);
o->labelsize(FL_NORMAL_SIZE);
selParity->end();
} // Fl_ListBox* selParity
{ Fl_ListBox* o = selStopBits = new Fl_ListBox(65, 270, 100, 20, _("Stop bits"));
selStopBits->tooltip(_("Select # stop bits"));
selStopBits->box(FL_DOWN_BOX);
selStopBits->color(FL_BACKGROUND2_COLOR);
selStopBits->selection_color(FL_BACKGROUND_COLOR);
selStopBits->labeltype(FL_NORMAL_LABEL);
selStopBits->labelfont(0);
selStopBits->labelsize(14);
selStopBits->labelcolor(FL_FOREGROUND_COLOR);
selStopBits->callback((Fl_Callback*)cb_selStopBits);
selStopBits->align(Fl_Align(FL_ALIGN_RIGHT));
selStopBits->when(FL_WHEN_CHANGED);
o->add(szStopBits);o->index(progdefaults.rtty_stop);
o->labelsize(FL_NORMAL_SIZE);
selStopBits->end();
} // Fl_ListBox* selStopBits
{ Fl_Check_Button* o = btnAUTOCRLF = new Fl_Check_Button(316, 103, 90, 22, _("AutoCRLF"));
btnAUTOCRLF->tooltip(_("Add CRLF after page width characters"));
btnAUTOCRLF->down_box(FL_DOWN_BOX);
btnAUTOCRLF->callback((Fl_Callback*)cb_btnAUTOCRLF);
o->value(progdefaults.rtty_autocrlf);
} // Fl_Check_Button* btnAUTOCRLF
{ Fl_Counter2* o = cntrAUTOCRLF = new Fl_Counter2(427, 104, 65, 20, _("chars"));
cntrAUTOCRLF->tooltip(_("Auto CRLF line length"));
cntrAUTOCRLF->type(1);
cntrAUTOCRLF->box(FL_UP_BOX);
cntrAUTOCRLF->color(FL_BACKGROUND_COLOR);
cntrAUTOCRLF->selection_color(FL_INACTIVE_COLOR);
cntrAUTOCRLF->labeltype(FL_NORMAL_LABEL);
cntrAUTOCRLF->labelfont(0);
cntrAUTOCRLF->labelsize(14);
cntrAUTOCRLF->labelcolor(FL_FOREGROUND_COLOR);
cntrAUTOCRLF->minimum(68);
cntrAUTOCRLF->maximum(80);
cntrAUTOCRLF->step(1);
cntrAUTOCRLF->value(72);
cntrAUTOCRLF->callback((Fl_Callback*)cb_cntrAUTOCRLF);
cntrAUTOCRLF->align(Fl_Align(FL_ALIGN_RIGHT));
cntrAUTOCRLF->when(FL_WHEN_CHANGED);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Counter2* cntrAUTOCRLF
{ Fl_Check_Button* o = btnCRCRLF = new Fl_Check_Button(316, 136, 90, 22, _("CR-CR-LF"));
btnCRCRLF->tooltip(_("Use \"cr cr lf\" for \"cr lf\""));
btnCRCRLF->down_box(FL_DOWN_BOX);
btnCRCRLF->callback((Fl_Callback*)cb_btnCRCRLF);
btnCRCRLF->when(FL_WHEN_RELEASE_ALWAYS);
o->value(progdefaults.rtty_crcrlf);
} // Fl_Check_Button* btnCRCRLF
{ Fl_Check_Button* o = chkUOStx = new Fl_Check_Button(316, 169, 63, 22, _("TX - unshift on space"));
chkUOStx->tooltip(_("Revert to Unsifted char\'s on a space"));
chkUOStx->down_box(FL_DOWN_BOX);
chkUOStx->callback((Fl_Callback*)cb_chkUOStx);
o->value(progdefaults.UOStx);
} // Fl_Check_Button* chkUOStx
{ Fl_Check_Button* o = chk_shaped_rtty = new Fl_Check_Button(316, 235, 212, 22, _("Shaped Tx"));
chk_shaped_rtty->tooltip(_("Use wave shaping on Tx signal"));
chk_shaped_rtty->down_box(FL_DOWN_BOX);
chk_shaped_rtty->value(1);
chk_shaped_rtty->callback((Fl_Callback*)cb_chk_shaped_rtty);
o->value(progStatus.shaped_rtty);
} // Fl_Check_Button* chk_shaped_rtty
{ Fl_Check_Button* o = chkPseudoFSK = new Fl_Check_Button(316, 202, 212, 22, _("Pseudo-FSK - right channel"));
chkPseudoFSK->tooltip(_("Create keyed square wave on right audio channel"));
chkPseudoFSK->down_box(FL_DOWN_BOX);
chkPseudoFSK->callback((Fl_Callback*)cb_chkPseudoFSK);
o->value(progdefaults.PseudoFSK);
} // Fl_Check_Button* chkPseudoFSK
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(0, 75, 600, 310, _("Rx"));
o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
{ Fl_Group* o = new Fl_Group(32, 101, 535, 69, _("Receive"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_ListBox* o = i_listbox_rtty_afc_speed = new Fl_ListBox(107, 128, 90, 22, _("AFC speed"));
i_listbox_rtty_afc_speed->tooltip(_("AFC tracking speed"));
i_listbox_rtty_afc_speed->box(FL_DOWN_BOX);
i_listbox_rtty_afc_speed->color(FL_BACKGROUND2_COLOR);
i_listbox_rtty_afc_speed->selection_color(FL_BACKGROUND_COLOR);
i_listbox_rtty_afc_speed->labeltype(FL_NORMAL_LABEL);
i_listbox_rtty_afc_speed->labelfont(0);
i_listbox_rtty_afc_speed->labelsize(14);
i_listbox_rtty_afc_speed->labelcolor(FL_FOREGROUND_COLOR);
i_listbox_rtty_afc_speed->callback((Fl_Callback*)cb_i_listbox_rtty_afc_speed);
i_listbox_rtty_afc_speed->align(Fl_Align(FL_ALIGN_TOP));
i_listbox_rtty_afc_speed->when(FL_WHEN_RELEASE);
o->add("Slow"); o->add("Normal"); o->add("Fast");
o->index(progdefaults.rtty_afcspeed);
o->labelsize(FL_NORMAL_SIZE);
i_listbox_rtty_afc_speed->end();
} // Fl_ListBox* i_listbox_rtty_afc_speed
{ Fl_Check_Button* o = chkUOSrx = new Fl_Check_Button(211, 128, 63, 22, _("RX - unshift on space"));
chkUOSrx->tooltip(_("Revert to unshifted char\'s on a space"));
chkUOSrx->down_box(FL_DOWN_BOX);
chkUOSrx->callback((Fl_Callback*)cb_chkUOSrx);
o->value(progdefaults.UOSrx);
} // Fl_Check_Button* chkUOSrx
{ Fl_Value_Input* o = rtty_rx_shape = new Fl_Value_Input(445, 126, 48, 25, _("Filter Shape Factor"));
rtty_rx_shape->tooltip(_("rcos timing coefficient:\n1.0 ... 2.0\nW1HKJ best 1.275\nDO2SMF best 1.500"));
rtty_rx_shape->minimum(1);
rtty_rx_shape->maximum(2);
rtty_rx_shape->step(0.001);
rtty_rx_shape->value(1.25);
rtty_rx_shape->callback((Fl_Callback*)cb_rtty_rx_shape);
rtty_rx_shape->align(Fl_Align(FL_ALIGN_TOP));
rtty_rx_shape->hide();
o->value(progdefaults.rtty_filter);
} // Fl_Value_Input* rtty_rx_shape
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(32, 171, 535, 55, _("Decode (CWI suppression)"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Check_Button* o = btnRxTones[0] = new Fl_Check_Button(120, 198, 70, 15, _("Mark-Space"));
btnRxTones[0]->down_box(FL_DOWN_BOX);
btnRxTones[0]->callback((Fl_Callback*)cb_btnRxTones);
o->value(progdefaults.rtty_cwi == 0);
} // Fl_Check_Button* btnRxTones[0]
{ Fl_Check_Button* o = btnRxTones[1] = new Fl_Check_Button(253, 198, 70, 15, _("Mark only"));
btnRxTones[1]->down_box(FL_DOWN_BOX);
btnRxTones[1]->callback((Fl_Callback*)cb_btnRxTones1);
o->value(progdefaults.rtty_cwi == 1);
} // Fl_Check_Button* btnRxTones[1]
{ Fl_Check_Button* o = btnRxTones[2] = new Fl_Check_Button(387, 198, 70, 15, _("Space only"));
btnRxTones[2]->down_box(FL_DOWN_BOX);
btnRxTones[2]->callback((Fl_Callback*)cb_btnRxTones2);
o->value(progdefaults.rtty_cwi == 2);
} // Fl_Check_Button* btnRxTones[2]
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(32, 228, 535, 55, _("RTTY Scope Display"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Check_Button* o = btnPreferXhairScope = new Fl_Check_Button(120, 250, 165, 22, _("Use cross hair scope"));
btnPreferXhairScope->tooltip(_("Default to cross hair digiscope"));
btnPreferXhairScope->down_box(FL_DOWN_BOX);
btnPreferXhairScope->callback((Fl_Callback*)cb_btnPreferXhairScope);
o->value(progdefaults.PreferXhairScope);
} // Fl_Check_Button* btnPreferXhairScope
{ Fl_Check_Button* o = chk_true_scope = new Fl_Check_Button(340, 250, 70, 22, _("XY - classic scope"));
chk_true_scope->tooltip(_("Enabled - use Mark/Space filter outputs\nDisabled - use pseudo signals"));
chk_true_scope->down_box(FL_DOWN_BOX);
chk_true_scope->callback((Fl_Callback*)cb_chk_true_scope);
o->value(progdefaults.true_scope);
} // Fl_Check_Button* chk_true_scope
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(32, 285, 535, 65, _("Log RTTY frequency"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Check_Button* o = chk_useMARKfreq = new Fl_Check_Button(120, 311, 146, 22, _("Use MARK freq\'"));
chk_useMARKfreq->tooltip(_("Enabled - log QSO using Mark frequency\nDisabled - log QSO using center frequ\
ency"));
chk_useMARKfreq->down_box(FL_DOWN_BOX);
chk_useMARKfreq->value(1);
chk_useMARKfreq->callback((Fl_Callback*)cb_chk_useMARKfreq);
o->value(progdefaults.useMARKfreq);
} // Fl_Check_Button* chk_useMARKfreq
{ Fl_Button* o = btnRTTY_mark_color = new Fl_Button(340, 311, 41, 18, _("track color"));
btnRTTY_mark_color->tooltip(_("Color of Mark Track"));
btnRTTY_mark_color->color((Fl_Color)2);
btnRTTY_mark_color->callback((Fl_Callback*)cb_btnRTTY_mark_color);
btnRTTY_mark_color->align(Fl_Align(FL_ALIGN_RIGHT));
o->color(fl_rgb_color(progdefaults.rttymarkRGBI.R,progdefaults.rttymarkRGBI.G,progdefaults.rttymarkRGBI.B));
} // Fl_Button* btnRTTY_mark_color
o->end();
} // Fl_Group* o
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(0, 75, 600, 310, _("Synop"));
o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
o->hide();
{ Fl_Check_Button* o = btnSynopAdifDecoding = new Fl_Check_Button(190, 91, 126, 22, _("SYNOP to ADIF"));
btnSynopAdifDecoding->tooltip(_("Decodes SYNOP messages (Ex: Deutsche Wetterdienst) to ADIF log file"));
btnSynopAdifDecoding->down_box(FL_DOWN_BOX);
btnSynopAdifDecoding->callback((Fl_Callback*)cb_btnSynopAdifDecoding);
btnSynopAdifDecoding->align(Fl_Align(132|FL_ALIGN_INSIDE));
o->value(progdefaults.SynopAdifDecoding);
} // Fl_Check_Button* btnSynopAdifDecoding
{ Fl_Check_Button* o = btnSynopKmlDecoding = new Fl_Check_Button(190, 129, 119, 22, _("SYNOP to KML"));
btnSynopKmlDecoding->tooltip(_("Decodes SYNOP messages (Ex: Deutsche Wetterdienst) to KML documents (Ex: Goog\
le Earth)"));
btnSynopKmlDecoding->down_box(FL_DOWN_BOX);
btnSynopKmlDecoding->callback((Fl_Callback*)cb_btnSynopKmlDecoding);
btnSynopKmlDecoding->align(Fl_Align(132|FL_ALIGN_INSIDE));
o->value(progdefaults.SynopKmlDecoding);
} // Fl_Check_Button* btnSynopKmlDecoding
{ Fl_Check_Button* o = btnSynopInterleaved = new Fl_Check_Button(190, 168, 210, 22, _("Interleave SYNOP and text"));
btnSynopInterleaved->tooltip(_("Interleave text with decoded SYNOP messages, or replacement."));
btnSynopInterleaved->down_box(FL_DOWN_BOX);
btnSynopInterleaved->callback((Fl_Callback*)cb_btnSynopInterleaved);
btnSynopInterleaved->align(Fl_Align(132|FL_ALIGN_INSIDE));
o->value(progdefaults.SynopInterleaved);
} // Fl_Check_Button* btnSynopInterleaved
o->end();
} // Fl_Group* o
tabsRTTY->end();
} // Fl_Tabs* tabsRTTY
tabRTTY->end();
} // Fl_Group* tabRTTY
{ tabTHOR = new Fl_Group(0, 50, 600, 335, _("Thor"));
tabTHOR->hide();
{ Fl_Group* o = new Fl_Group(55, 78, 490, 270);
o->box(FL_ENGRAVED_FRAME);
{ txtTHORSecondary = new Fl_Input2(84, 105, 430, 40, _("Secondary Text"));
txtTHORSecondary->tooltip(_("Text to send during keyboard idle times"));
txtTHORSecondary->type(4);
txtTHORSecondary->box(FL_DOWN_BOX);
txtTHORSecondary->color(FL_BACKGROUND2_COLOR);
txtTHORSecondary->selection_color(FL_SELECTION_COLOR);
txtTHORSecondary->labeltype(FL_NORMAL_LABEL);
txtTHORSecondary->labelfont(0);
txtTHORSecondary->labelsize(14);
txtTHORSecondary->labelcolor(FL_FOREGROUND_COLOR);
txtTHORSecondary->callback((Fl_Callback*)cb_txtTHORSecondary);
txtTHORSecondary->align(Fl_Align(FL_ALIGN_TOP_LEFT));
txtTHORSecondary->when(FL_WHEN_CHANGED);
txtTHORSecondary->labelsize(FL_NORMAL_SIZE);
} // Fl_Input2* txtTHORSecondary
{ Fl_Check_Button* o = valTHOR_FILTER = new Fl_Check_Button(84, 159, 80, 20, _("Filtering"));
valTHOR_FILTER->tooltip(_("Enable DSP prior to decoder"));
valTHOR_FILTER->down_box(FL_DOWN_BOX);
valTHOR_FILTER->value(1);
valTHOR_FILTER->callback((Fl_Callback*)cb_valTHOR_FILTER);
o->value(progdefaults.THOR_FILTER);
} // Fl_Check_Button* valTHOR_FILTER
{ Fl_Counter2* o = valTHOR_BW = new Fl_Counter2(229, 159, 63, 20, _("Filter bandwidth factor"));
valTHOR_BW->tooltip(_("Filter bandwidth relative to signal width"));
valTHOR_BW->type(1);
valTHOR_BW->box(FL_UP_BOX);
valTHOR_BW->color(FL_BACKGROUND_COLOR);
valTHOR_BW->selection_color(FL_INACTIVE_COLOR);
valTHOR_BW->labeltype(FL_NORMAL_LABEL);
valTHOR_BW->labelfont(0);
valTHOR_BW->labelsize(14);
valTHOR_BW->labelcolor(FL_FOREGROUND_COLOR);
valTHOR_BW->minimum(1);
valTHOR_BW->maximum(2);
valTHOR_BW->value(1.5);
valTHOR_BW->callback((Fl_Callback*)cb_valTHOR_BW);
valTHOR_BW->align(Fl_Align(FL_ALIGN_RIGHT));
valTHOR_BW->when(FL_WHEN_CHANGED);
o->value(progdefaults.THOR_BW);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Counter2* valTHOR_BW
{ Fl_Value_Slider2* o = valThorCWI = new Fl_Value_Slider2(84, 212, 260, 20, _("CWI threshold"));
valThorCWI->tooltip(_("CWI detection and suppression"));
valThorCWI->type(1);
valThorCWI->box(FL_DOWN_BOX);
valThorCWI->color(FL_BACKGROUND_COLOR);
valThorCWI->selection_color(FL_BACKGROUND_COLOR);
valThorCWI->labeltype(FL_NORMAL_LABEL);
valThorCWI->labelfont(0);
valThorCWI->labelsize(14);
valThorCWI->labelcolor(FL_FOREGROUND_COLOR);
valThorCWI->textsize(14);
valThorCWI->callback((Fl_Callback*)cb_valThorCWI);
valThorCWI->align(Fl_Align(FL_ALIGN_TOP));
valThorCWI->when(FL_WHEN_CHANGED);
o->value(progdefaults.ThorCWI);
o->labelsize(FL_NORMAL_SIZE); o->textsize(FL_NORMAL_SIZE);
} // Fl_Value_Slider2* valThorCWI
{ Fl_Check_Button* o = valTHOR_PREAMBLE = new Fl_Check_Button(84, 254, 200, 20, _("Preamble Detection"));
valTHOR_PREAMBLE->tooltip(_("Detect the THOR preamble\nClear the Rx pipeline"));
valTHOR_PREAMBLE->down_box(FL_DOWN_BOX);
valTHOR_PREAMBLE->callback((Fl_Callback*)cb_valTHOR_PREAMBLE);
o->value(progdefaults.THOR_PREAMBLE);
} // Fl_Check_Button* valTHOR_PREAMBLE
{ Fl_Check_Button* o = valTHOR_SOFTSYMBOLS = new Fl_Check_Button(84, 284, 190, 20, _("Soft-symbol decoding"));
valTHOR_SOFTSYMBOLS->tooltip(_("Use soft-decision decoding for symbol detection\nAssists soft-bit decoding"));
valTHOR_SOFTSYMBOLS->down_box(FL_DOWN_BOX);
valTHOR_SOFTSYMBOLS->callback((Fl_Callback*)cb_valTHOR_SOFTSYMBOLS);
o->value(progdefaults.THOR_SOFTSYMBOLS);
} // Fl_Check_Button* valTHOR_SOFTSYMBOLS
{ Fl_Check_Button* o = valTHOR_SOFTBITS = new Fl_Check_Button(84, 314, 170, 20, _("Soft-bit decoding"));
valTHOR_SOFTBITS->tooltip(_("Use soft-bit viterbi decoding for better Forward Error Correction\nWorks best\
with soft-symbol decoding enabled"));
valTHOR_SOFTBITS->down_box(FL_DOWN_BOX);
valTHOR_SOFTBITS->callback((Fl_Callback*)cb_valTHOR_SOFTBITS);
o->value(progdefaults.THOR_SOFTBITS);
} // Fl_Check_Button* valTHOR_SOFTBITS
{ Fl_Counter2* o = valTHOR_PATHS = new Fl_Counter2(431, 303, 75, 21, _("Paths (hidden)"));
valTHOR_PATHS->type(1);
valTHOR_PATHS->box(FL_UP_BOX);
valTHOR_PATHS->color(FL_BACKGROUND_COLOR);
valTHOR_PATHS->selection_color(FL_INACTIVE_COLOR);
valTHOR_PATHS->labeltype(FL_NORMAL_LABEL);
valTHOR_PATHS->labelfont(0);
valTHOR_PATHS->labelsize(14);
valTHOR_PATHS->labelcolor(FL_FOREGROUND_COLOR);
valTHOR_PATHS->minimum(4);
valTHOR_PATHS->maximum(8);
valTHOR_PATHS->step(1);
valTHOR_PATHS->value(5);
valTHOR_PATHS->callback((Fl_Callback*)cb_valTHOR_PATHS);
valTHOR_PATHS->align(Fl_Align(FL_ALIGN_TOP));
valTHOR_PATHS->when(FL_WHEN_CHANGED);
o->value(progdefaults.THOR_PATHS);
o->labelsize(FL_NORMAL_SIZE);
o->hide();
} // Fl_Counter2* valTHOR_PATHS
o->end();
} // Fl_Group* o
tabTHOR->end();
} // Fl_Group* tabTHOR
{ tabOther = new Fl_Group(0, 50, 600, 335, _("Other"));
{ tabsOther = new Fl_Tabs(0, 50, 600, 335);
{ tabNavtex = new Fl_Group(0, 75, 600, 310, _("Nav"));
tabNavtex->hide();
{ Fl_Check_Button* o = btnNvtxAdifLog = new Fl_Check_Button(181, 109, 235, 30, _("Log Navtex messages to Adif file"));
btnNvtxAdifLog->down_box(FL_DOWN_BOX);
btnNvtxAdifLog->callback((Fl_Callback*)cb_btnNvtxAdifLog);
o->value(progdefaults.NVTX_AdifLog);
} // Fl_Check_Button* btnNvtxAdifLog
{ Fl_Check_Button* o = btnNvtxKmlLog = new Fl_Check_Button(180, 155, 270, 30, _("Log Navtex messages to KML"));
btnNvtxKmlLog->tooltip(_("Logs messages to Keyhole Markup Language (Google Earth, Marble, Gaia, etc...)"));
btnNvtxKmlLog->down_box(FL_DOWN_BOX);
btnNvtxKmlLog->callback((Fl_Callback*)cb_btnNvtxKmlLog);
o->value(progdefaults.NVTX_KmlLog);
} // Fl_Check_Button* btnNvtxKmlLog
tabNavtex->end();
} // Fl_Group* tabNavtex
{ tabWefax = new Fl_Group(0, 75, 600, 310, _("WFx"));
tabWefax->hide();
{ Fl_Group* o = new Fl_Group(2, 79, 598, 285);
{ Fl_Check_Button* o = btnWefaxAdifLog = new Fl_Check_Button(99, 155, 235, 30, _("Log Wefax messages to Adif file"));
btnWefaxAdifLog->tooltip(_("Sent and received faxes are logged to Adif file."));
btnWefaxAdifLog->down_box(FL_DOWN_BOX);
btnWefaxAdifLog->callback((Fl_Callback*)cb_btnWefaxAdifLog);
o->value(progdefaults.WEFAX_AdifLog);
} // Fl_Check_Button* btnWefaxAdifLog
{ Fl_Check_Button* o = btnWefaxEmbeddedGui = new Fl_Check_Button(99, 92, 235, 30, _("Embedded Wefax Gui"));
btnWefaxEmbeddedGui->tooltip(_("Display tx and rx in main fldigi window.\nChange requires restart of fldigi"));
btnWefaxEmbeddedGui->down_box(FL_DOWN_BOX);
btnWefaxEmbeddedGui->callback((Fl_Callback*)cb_btnWefaxEmbeddedGui);
o->value(progdefaults.WEFAX_EmbeddedGui);
} // Fl_Check_Button* btnWefaxEmbeddedGui
{ Fl_Value_Input2* o = btnWefaxShift = new Fl_Value_Input2(99, 195, 80, 20, _("Frequency shift (800 Hz)"));
btnWefaxShift->tooltip(_("Default 800 Hz. Deutsche Wetterdienst 850Hz"));
btnWefaxShift->type(2);
btnWefaxShift->box(FL_DOWN_BOX);
btnWefaxShift->color(FL_BACKGROUND2_COLOR);
btnWefaxShift->selection_color(FL_SELECTION_COLOR);
btnWefaxShift->labeltype(FL_NORMAL_LABEL);
btnWefaxShift->labelfont(0);
btnWefaxShift->labelsize(14);
btnWefaxShift->labelcolor(FL_FOREGROUND_COLOR);
btnWefaxShift->callback((Fl_Callback*)cb_btnWefaxShift);
btnWefaxShift->align(Fl_Align(FL_ALIGN_RIGHT));
btnWefaxShift->when(FL_WHEN_RELEASE);
o->value(progdefaults.WEFAX_Shift);
} // Fl_Value_Input2* btnWefaxShift
{ Fl_Value_Input2* o = btnWefaxMaxRows = new Fl_Value_Input2(99, 235, 85, 20, _("Received fax maximum rows number (5000)"));
btnWefaxMaxRows->tooltip(_("Maximum row number for a received fax image."));
btnWefaxMaxRows->type(2);
btnWefaxMaxRows->box(FL_DOWN_BOX);
btnWefaxMaxRows->color(FL_BACKGROUND2_COLOR);
btnWefaxMaxRows->selection_color(FL_SELECTION_COLOR);
btnWefaxMaxRows->labeltype(FL_NORMAL_LABEL);
btnWefaxMaxRows->labelfont(0);
btnWefaxMaxRows->labelsize(14);
btnWefaxMaxRows->labelcolor(FL_FOREGROUND_COLOR);
btnWefaxMaxRows->callback((Fl_Callback*)cb_btnWefaxMaxRows);
btnWefaxMaxRows->align(Fl_Align(FL_ALIGN_RIGHT));
btnWefaxMaxRows->when(FL_WHEN_RELEASE);
o->value(progdefaults.WEFAX_MaxRows);
} // Fl_Value_Input2* btnWefaxMaxRows
{ Fl_Input* o = btnWefaxSaveDir = new Fl_Input(99, 285, 310, 20, _("Fax images destination directory"));
btnWefaxSaveDir->callback((Fl_Callback*)cb_btnWefaxSaveDir);
btnWefaxSaveDir->align(Fl_Align(FL_ALIGN_TOP_LEFT));
o->value(progdefaults.wefax_save_dir.c_str());
} // Fl_Input* btnWefaxSaveDir
{ btnSelectFaxDestDir = new Fl_Button(429, 285, 80, 20, _("Directory..."));
btnSelectFaxDestDir->callback((Fl_Callback*)cb_btnSelectFaxDestDir);
} // Fl_Button* btnSelectFaxDestDir
{ Fl_Check_Button* o = btnWefaxHideTx = new Fl_Check_Button(99, 125, 235, 30, _("Hide Transmission window"));
btnWefaxHideTx->tooltip(_("Hide transmission window by default."));
btnWefaxHideTx->down_box(FL_DOWN_BOX);
btnWefaxHideTx->callback((Fl_Callback*)cb_btnWefaxHideTx);
o->value(progdefaults.WEFAX_HideTx);
} // Fl_Check_Button* btnWefaxHideTx
{ Fl_Check_Button* o = btnWefaxSaveMonochrome = new Fl_Check_Button(99, 315, 235, 30, _("Save image as monochrome file"));
btnWefaxSaveMonochrome->tooltip(_("Save the fax image as a gray-level PNG file."));
btnWefaxSaveMonochrome->down_box(FL_DOWN_BOX);
btnWefaxSaveMonochrome->callback((Fl_Callback*)cb_btnWefaxSaveMonochrome);
o->value(progdefaults.WEFAX_SaveMonochrome);
} // Fl_Check_Button* btnWefaxSaveMonochrome
o->end();
} // Fl_Group* o
tabWefax->end();
} // Fl_Group* tabWefax
{ tabDFTscan = new Fl_Group(0, 75, 600, 310, _("Scan"));
{ Fl_Counter* o = cnt_dft_scans = new Fl_Counter(235, 154, 132, 21, _("# scans"));
cnt_dft_scans->minimum(10);
cnt_dft_scans->maximum(1000);
cnt_dft_scans->step(10);
cnt_dft_scans->value(60);
cnt_dft_scans->callback((Fl_Callback*)cb_cnt_dft_scans);
o->value(progdefaults.cnt_dft_scans);
o->lstep(100.0);
} // Fl_Counter* cnt_dft_scans
{ Fl_Counter* o = cnt_dft_range = new Fl_Counter(251, 219, 100, 21, _("dB Range"));
cnt_dft_range->type(1);
cnt_dft_range->minimum(20);
cnt_dft_range->maximum(120);
cnt_dft_range->step(10);
cnt_dft_range->value(60);
cnt_dft_range->callback((Fl_Callback*)cb_cnt_dft_range);
o->value(progdefaults.cnt_dft_range);
} // Fl_Counter* cnt_dft_range
{ Fl_Check_Button* o = btn_use_relative_dB = new Fl_Check_Button(275, 290, 70, 15, _("Use relative dB"));
btn_use_relative_dB->down_box(FL_DOWN_BOX);
btn_use_relative_dB->callback((Fl_Callback*)cb_btn_use_relative_dB);
o->value(progdefaults.dft_relative);
} // Fl_Check_Button* btn_use_relative_dB
tabDFTscan->end();
} // Fl_Group* tabDFTscan
tabsOther->end();
} // Fl_Tabs* tabsOther
tabOther->end();
} // Fl_Group* tabOther
tabsModems->end();
} // Fl_Tabs* tabsModems
tabModems->end();
} // Fl_Group* tabModems
{ tabRig = new Fl_Group(0, 25, 600, 360, _("Rig"));
tabRig->tooltip(_("Transceiver control"));
tabRig->hide();
{ tabsRig = new Fl_Tabs(0, 25, 600, 360);
tabsRig->selection_color(FL_LIGHT1);
{ Fl_Group* o = new Fl_Group(0, 50, 600, 335, _("RigCAT"));
o->tooltip(_("Rig Control using xml spec file"));
o->hide();
{ chkUSERIGCAT = new Fl_Check_Button(245, 60, 110, 20, _("Use RigCAT"));
chkUSERIGCAT->tooltip(_("RigCAT used for rig control"));
chkUSERIGCAT->down_box(FL_DOWN_BOX);
chkUSERIGCAT->callback((Fl_Callback*)cb_chkUSERIGCAT);
} // Fl_Check_Button* chkUSERIGCAT
{ grpRigCAT = new Fl_Group(55, 83, 490, 279);
grpRigCAT->box(FL_ENGRAVED_FRAME);
{ Fl_Output* o = txtXmlRigFilename = new Fl_Output(65, 107, 130, 22, _("Rig description file:"));
txtXmlRigFilename->tooltip(_("Use Open to select descriptor file"));
txtXmlRigFilename->color(FL_LIGHT2);
txtXmlRigFilename->align(Fl_Align(FL_ALIGN_TOP_LEFT));
o->value(fl_filename_name(progdefaults.XmlRigFilename.c_str()));
} // Fl_Output* txtXmlRigFilename
{ btnSelectRigXmlFile = new Fl_Button(198, 107, 60, 22, _("Open..."));
btnSelectRigXmlFile->tooltip(_("Select rig descriptor file"));
btnSelectRigXmlFile->callback((Fl_Callback*)cb_btnSelectRigXmlFile);
} // Fl_Button* btnSelectRigXmlFile
{ Fl_ComboBox* o = inpXmlRigDevice = new Fl_ComboBox(391, 107, 144, 22, _("Device:"));
inpXmlRigDevice->box(FL_DOWN_BOX);
inpXmlRigDevice->color(FL_BACKGROUND2_COLOR);
inpXmlRigDevice->selection_color(FL_BACKGROUND_COLOR);
inpXmlRigDevice->labeltype(FL_NORMAL_LABEL);
inpXmlRigDevice->labelfont(0);
inpXmlRigDevice->labelsize(14);
inpXmlRigDevice->labelcolor(FL_FOREGROUND_COLOR);
inpXmlRigDevice->callback((Fl_Callback*)cb_inpXmlRigDevice);
inpXmlRigDevice->align(Fl_Align(FL_ALIGN_LEFT));
inpXmlRigDevice->when(FL_WHEN_RELEASE);
o->value(progdefaults.XmlRigDevice.c_str());
o->labelsize(FL_NORMAL_SIZE);
inpXmlRigDevice->end();
} // Fl_ComboBox* inpXmlRigDevice
{ Fl_Value_Input2* o = cntRigCatRetries = new Fl_Value_Input2(80, 150, 60, 22, _("Retries"));
cntRigCatRetries->tooltip(_("# retries before giving up"));
cntRigCatRetries->box(FL_DOWN_BOX);
cntRigCatRetries->color(FL_BACKGROUND2_COLOR);
cntRigCatRetries->selection_color(FL_SELECTION_COLOR);
cntRigCatRetries->labeltype(FL_NORMAL_LABEL);
cntRigCatRetries->labelfont(0);
cntRigCatRetries->labelsize(14);
cntRigCatRetries->labelcolor(FL_FOREGROUND_COLOR);
cntRigCatRetries->maximum(1000);
cntRigCatRetries->step(1);
cntRigCatRetries->callback((Fl_Callback*)cb_cntRigCatRetries);
cntRigCatRetries->align(Fl_Align(FL_ALIGN_TOP_LEFT));
cntRigCatRetries->when(FL_WHEN_CHANGED);
o->value(progdefaults.RigCatRetries);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Value_Input2* cntRigCatRetries
{ Fl_Value_Input2* o = cntRigCatTimeout = new Fl_Value_Input2(210, 150, 60, 22, _("Retry interval (ms)"));
cntRigCatTimeout->tooltip(_("Time between retires in msec"));
cntRigCatTimeout->box(FL_DOWN_BOX);
cntRigCatTimeout->color(FL_BACKGROUND2_COLOR);
cntRigCatTimeout->selection_color(FL_SELECTION_COLOR);
cntRigCatTimeout->labeltype(FL_NORMAL_LABEL);
cntRigCatTimeout->labelfont(0);
cntRigCatTimeout->labelsize(14);
cntRigCatTimeout->labelcolor(FL_FOREGROUND_COLOR);
cntRigCatTimeout->maximum(10000);
cntRigCatTimeout->step(1);
cntRigCatTimeout->callback((Fl_Callback*)cb_cntRigCatTimeout);
cntRigCatTimeout->align(Fl_Align(FL_ALIGN_TOP_LEFT));
cntRigCatTimeout->when(FL_WHEN_CHANGED);
o->value(progdefaults.RigCatTimeout);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Value_Input2* cntRigCatTimeout
{ Fl_Value_Input2* o = cntRigCatWait = new Fl_Value_Input2(80, 190, 60, 22, _("Write delay (ms)"));
cntRigCatWait->tooltip(_("Wait for response to subsequent command"));
cntRigCatWait->box(FL_DOWN_BOX);
cntRigCatWait->color(FL_BACKGROUND2_COLOR);
cntRigCatWait->selection_color(FL_SELECTION_COLOR);
cntRigCatWait->labeltype(FL_NORMAL_LABEL);
cntRigCatWait->labelfont(0);
cntRigCatWait->labelsize(14);
cntRigCatWait->labelcolor(FL_FOREGROUND_COLOR);
cntRigCatWait->maximum(10000);
cntRigCatWait->step(1);
cntRigCatWait->callback((Fl_Callback*)cb_cntRigCatWait);
cntRigCatWait->align(Fl_Align(FL_ALIGN_TOP_LEFT));
cntRigCatWait->when(FL_WHEN_CHANGED);
o->value(progdefaults.RigCatWait);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Value_Input2* cntRigCatWait
{ Fl_ListBox* o = listbox_xml_rig_baudrate = new Fl_ListBox(436, 150, 99, 22, _("Baud rate:"));
listbox_xml_rig_baudrate->box(FL_DOWN_BOX);
listbox_xml_rig_baudrate->color(FL_BACKGROUND2_COLOR);
listbox_xml_rig_baudrate->selection_color(FL_BACKGROUND_COLOR);
listbox_xml_rig_baudrate->labeltype(FL_NORMAL_LABEL);
listbox_xml_rig_baudrate->labelfont(0);
listbox_xml_rig_baudrate->labelsize(14);
listbox_xml_rig_baudrate->labelcolor(FL_FOREGROUND_COLOR);
listbox_xml_rig_baudrate->callback((Fl_Callback*)cb_listbox_xml_rig_baudrate);
listbox_xml_rig_baudrate->align(Fl_Align(FL_ALIGN_LEFT));
listbox_xml_rig_baudrate->when(FL_WHEN_RELEASE);
o->add(szBaudRates);
o->index(progdefaults.XmlRigBaudrate);
o->labelsize(FL_NORMAL_SIZE);
listbox_xml_rig_baudrate->end();
} // Fl_ListBox* listbox_xml_rig_baudrate
{ Fl_Counter2* o = valRigCatStopbits = new Fl_Counter2(438, 184, 95, 21, _("Stopbits"));
valRigCatStopbits->type(1);
valRigCatStopbits->box(FL_UP_BOX);
valRigCatStopbits->color(FL_BACKGROUND_COLOR);
valRigCatStopbits->selection_color(FL_INACTIVE_COLOR);
valRigCatStopbits->labeltype(FL_NORMAL_LABEL);
valRigCatStopbits->labelfont(0);
valRigCatStopbits->labelsize(14);
valRigCatStopbits->labelcolor(FL_FOREGROUND_COLOR);
valRigCatStopbits->minimum(1);
valRigCatStopbits->maximum(2);
valRigCatStopbits->step(1);
valRigCatStopbits->value(1);
valRigCatStopbits->callback((Fl_Callback*)cb_valRigCatStopbits);
valRigCatStopbits->align(Fl_Align(FL_ALIGN_LEFT));
valRigCatStopbits->when(FL_WHEN_CHANGED);
o->value(progdefaults.RigCatStopbits);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Counter2* valRigCatStopbits
{ btnInitRIGCAT = new Fl_Button(415, 321, 113, 24, _("Initialize"));
btnInitRIGCAT->tooltip(_("Initialize RigCAT interface"));
btnInitRIGCAT->callback((Fl_Callback*)cb_btnInitRIGCAT);
} // Fl_Button* btnInitRIGCAT
{ Fl_Check_Button* o = btnRigCatEcho = new Fl_Check_Button(100, 216, 192, 22, _("Commands are echoed"));
btnRigCatEcho->tooltip(_("Rig or interface echos serial data"));
btnRigCatEcho->down_box(FL_DOWN_BOX);
btnRigCatEcho->callback((Fl_Callback*)cb_btnRigCatEcho);
o->value(progdefaults.RigCatECHO);
} // Fl_Check_Button* btnRigCatEcho
{ Fl_Round_Button* o = btnRigCatCMDptt = new Fl_Round_Button(306, 217, 207, 20, _("CAT command for PTT"));
btnRigCatCMDptt->tooltip(_("PTT is a CAT command (not hardware)"));
btnRigCatCMDptt->down_box(FL_DOWN_BOX);
btnRigCatCMDptt->selection_color((Fl_Color)1);
btnRigCatCMDptt->callback((Fl_Callback*)cb_btnRigCatCMDptt);
o->value(progdefaults.RigCatCMDptt);
} // Fl_Round_Button* btnRigCatCMDptt
{ Fl_Round_Button* o = btnRigCatRTSptt = new Fl_Round_Button(100, 246, 160, 20, _("Toggle RTS for PTT"));
btnRigCatRTSptt->tooltip(_("RTS is ptt line"));
btnRigCatRTSptt->down_box(FL_DOWN_BOX);
btnRigCatRTSptt->callback((Fl_Callback*)cb_btnRigCatRTSptt);
o->value(progdefaults.RigCatRTSptt);
} // Fl_Round_Button* btnRigCatRTSptt
{ Fl_Round_Button* o = btnRigCatDTRptt = new Fl_Round_Button(306, 244, 160, 20, _("Toggle DTR for PTT"));
btnRigCatDTRptt->tooltip(_("DTR is ptt line"));
btnRigCatDTRptt->down_box(FL_DOWN_BOX);
btnRigCatDTRptt->callback((Fl_Callback*)cb_btnRigCatDTRptt);
o->value(progdefaults.RigCatDTRptt);
} // Fl_Round_Button* btnRigCatDTRptt
{ Fl_Check_Button* o = btnRigCatRTSplus = new Fl_Check_Button(100, 275, 100, 20, _("RTS +12 v"));
btnRigCatRTSplus->tooltip(_("Initial state of RTS"));
btnRigCatRTSplus->down_box(FL_DOWN_BOX);
btnRigCatRTSplus->callback((Fl_Callback*)cb_btnRigCatRTSplus);
o->value(progdefaults.RigCatRTSplus);
} // Fl_Check_Button* btnRigCatRTSplus
{ Fl_Check_Button* o = btnRigCatDTRplus = new Fl_Check_Button(306, 272, 100, 20, _("DTR +12 v"));
btnRigCatDTRplus->tooltip(_("Initial state of DTR"));
btnRigCatDTRplus->down_box(FL_DOWN_BOX);
btnRigCatDTRplus->callback((Fl_Callback*)cb_btnRigCatDTRplus);
o->value(progdefaults.RigCatDTRplus);
} // Fl_Check_Button* btnRigCatDTRplus
{ Fl_Check_Button* o = chkRigCatRTSCTSflow = new Fl_Check_Button(100, 303, 170, 20, _("RTS/CTS flow control"));
chkRigCatRTSCTSflow->tooltip(_("Rig uses RTS/CTS handshake"));
chkRigCatRTSCTSflow->down_box(FL_DOWN_BOX);
chkRigCatRTSCTSflow->callback((Fl_Callback*)cb_chkRigCatRTSCTSflow);
o->value(progdefaults.RigCatRTSCTSflow);
} // Fl_Check_Button* chkRigCatRTSCTSflow
{ Fl_Check_Button* o = chk_restore_tio = new Fl_Check_Button(100, 332, 205, 20, _("Restore Settings on Close"));
chk_restore_tio->tooltip(_("Restore the serial (COM) port settings"));
chk_restore_tio->down_box(FL_DOWN_BOX);
chk_restore_tio->callback((Fl_Callback*)cb_chk_restore_tio);
o->value(progdefaults.RigCatRestoreTIO);
} // Fl_Check_Button* chk_restore_tio
{ btnRevertRIGCAT = new Fl_Button(415, 289, 113, 24, _("Revert"));
btnRevertRIGCAT->tooltip(_("Reset rigCAT interface"));
btnRevertRIGCAT->callback((Fl_Callback*)cb_btnRevertRIGCAT);
btnRevertRIGCAT->hide();
btnRevertRIGCAT->deactivate();
} // Fl_Button* btnRevertRIGCAT
{ Fl_Check_Button* o = chkRigCatVSP = new Fl_Check_Button(306, 300, 100, 25, _("VSP Enable"));
chkRigCatVSP->tooltip(_("Virtual Serial Port Emulator - suppress WARNINGS"));
chkRigCatVSP->down_box(FL_DOWN_BOX);
chkRigCatVSP->callback((Fl_Callback*)cb_chkRigCatVSP);
o->value(progdefaults.RigCatVSP);
} // Fl_Check_Button* chkRigCatVSP
{ Fl_Value_Input2* o = cntRigCatInitDelay = new Fl_Value_Input2(210, 190, 75, 22, _("Init delay (ms)"));
cntRigCatInitDelay->tooltip(_("Wait for response to first CAT command"));
cntRigCatInitDelay->box(FL_DOWN_BOX);
cntRigCatInitDelay->color(FL_BACKGROUND2_COLOR);
cntRigCatInitDelay->selection_color(FL_SELECTION_COLOR);
cntRigCatInitDelay->labeltype(FL_NORMAL_LABEL);
cntRigCatInitDelay->labelfont(0);
cntRigCatInitDelay->labelsize(14);
cntRigCatInitDelay->labelcolor(FL_FOREGROUND_COLOR);
cntRigCatInitDelay->maximum(10000);
cntRigCatInitDelay->step(1);
cntRigCatInitDelay->callback((Fl_Callback*)cb_cntRigCatInitDelay);
cntRigCatInitDelay->align(Fl_Align(FL_ALIGN_TOP_LEFT));
cntRigCatInitDelay->when(FL_WHEN_CHANGED);
o->value(progdefaults.RigCatInitDelay);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Value_Input2* cntRigCatInitDelay
grpRigCAT->end();
} // Fl_Group* grpRigCAT
o->end();
} // Fl_Group* o
{ tabHamlib = new Fl_Group(0, 50, 600, 335, _("Hamlib"));
tabHamlib->hide();
{ chkUSEHAMLIB = new Fl_Check_Button(250, 59, 100, 20, _("Use Hamlib"));
chkUSEHAMLIB->tooltip(_("Hamlib used for rig control"));
chkUSEHAMLIB->down_box(FL_DOWN_BOX);
chkUSEHAMLIB->callback((Fl_Callback*)cb_chkUSEHAMLIB);
} // Fl_Check_Button* chkUSEHAMLIB
{ grpHamlib = new Fl_Group(5, 88, 585, 277);
grpHamlib->box(FL_ENGRAVED_FRAME);
{ Fl_ListBox* o = cboHamlibRig = new Fl_ListBox(41, 98, 275, 22, _("Rig:"));
cboHamlibRig->box(FL_DOWN_BOX);
cboHamlibRig->color(FL_BACKGROUND2_COLOR);
cboHamlibRig->selection_color(FL_BACKGROUND_COLOR);
cboHamlibRig->labeltype(FL_NORMAL_LABEL);
cboHamlibRig->labelfont(0);
cboHamlibRig->labelsize(14);
cboHamlibRig->labelcolor(FL_FOREGROUND_COLOR);
cboHamlibRig->callback((Fl_Callback*)cb_cboHamlibRig);
cboHamlibRig->align(Fl_Align(FL_ALIGN_LEFT));
cboHamlibRig->when(FL_WHEN_RELEASE);
o->labelsize(FL_NORMAL_SIZE);
cboHamlibRig->end();
} // Fl_ListBox* cboHamlibRig
{ Fl_ComboBox* o = inpRIGdev = new Fl_ComboBox(385, 98, 190, 22, _("Device:"));
inpRIGdev->box(FL_DOWN_BOX);
inpRIGdev->color(FL_BACKGROUND2_COLOR);
inpRIGdev->selection_color(FL_BACKGROUND_COLOR);
inpRIGdev->labeltype(FL_NORMAL_LABEL);
inpRIGdev->labelfont(0);
inpRIGdev->labelsize(14);
inpRIGdev->labelcolor(FL_FOREGROUND_COLOR);
inpRIGdev->callback((Fl_Callback*)cb_inpRIGdev);
inpRIGdev->align(Fl_Align(FL_ALIGN_LEFT));
inpRIGdev->when(FL_WHEN_RELEASE);
o->value(progdefaults.HamRigDevice.c_str());
o->labelsize(FL_NORMAL_SIZE);
inpRIGdev->end();
} // Fl_ComboBox* inpRIGdev
{ Fl_Value_Input2* o = cntHamlibRetries = new Fl_Value_Input2(40, 138, 70, 24, _("Retries"));
cntHamlibRetries->tooltip(_("# times to resend command before giving up"));
cntHamlibRetries->box(FL_DOWN_BOX);
cntHamlibRetries->color(FL_BACKGROUND2_COLOR);
cntHamlibRetries->selection_color(FL_SELECTION_COLOR);
cntHamlibRetries->labeltype(FL_NORMAL_LABEL);
cntHamlibRetries->labelfont(0);
cntHamlibRetries->labelsize(14);
cntHamlibRetries->labelcolor(FL_FOREGROUND_COLOR);
cntHamlibRetries->maximum(1000);
cntHamlibRetries->step(1);
cntHamlibRetries->callback((Fl_Callback*)cb_cntHamlibRetries);
cntHamlibRetries->align(Fl_Align(FL_ALIGN_TOP_LEFT));
cntHamlibRetries->when(FL_WHEN_CHANGED);
o->value(progdefaults.HamlibRetries);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Value_Input2* cntHamlibRetries
{ Fl_Value_Input2* o = cntHamlibTimeout = new Fl_Value_Input2(165, 138, 70, 24, _("Retry Interval (ms)"));
cntHamlibTimeout->tooltip(_("Msec\'s between retries"));
cntHamlibTimeout->box(FL_DOWN_BOX);
cntHamlibTimeout->color(FL_BACKGROUND2_COLOR);
cntHamlibTimeout->selection_color(FL_SELECTION_COLOR);
cntHamlibTimeout->labeltype(FL_NORMAL_LABEL);
cntHamlibTimeout->labelfont(0);
cntHamlibTimeout->labelsize(14);
cntHamlibTimeout->labelcolor(FL_FOREGROUND_COLOR);
cntHamlibTimeout->maximum(10000);
cntHamlibTimeout->step(1);
cntHamlibTimeout->callback((Fl_Callback*)cb_cntHamlibTimeout);
cntHamlibTimeout->align(Fl_Align(FL_ALIGN_TOP_LEFT));
cntHamlibTimeout->when(FL_WHEN_CHANGED);
o->value(progdefaults.HamlibTimeout);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Value_Input2* cntHamlibTimeout
{ Fl_Value_Input2* o = cntHamlibWriteDelay = new Fl_Value_Input2(40, 181, 70, 24, _("Write delay (ms)"));
cntHamlibWriteDelay->tooltip(_("Msec\'s between sequential commands"));
cntHamlibWriteDelay->box(FL_DOWN_BOX);
cntHamlibWriteDelay->color(FL_BACKGROUND2_COLOR);
cntHamlibWriteDelay->selection_color(FL_SELECTION_COLOR);
cntHamlibWriteDelay->labeltype(FL_NORMAL_LABEL);
cntHamlibWriteDelay->labelfont(0);
cntHamlibWriteDelay->labelsize(14);
cntHamlibWriteDelay->labelcolor(FL_FOREGROUND_COLOR);
cntHamlibWriteDelay->maximum(10000);
cntHamlibWriteDelay->step(1);
cntHamlibWriteDelay->callback((Fl_Callback*)cb_cntHamlibWriteDelay);
cntHamlibWriteDelay->align(Fl_Align(FL_ALIGN_TOP_LEFT));
cntHamlibWriteDelay->when(FL_WHEN_CHANGED);
o->value(progdefaults.HamlibWriteDelay);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Value_Input2* cntHamlibWriteDelay
{ Fl_Value_Input2* o = cntHamlibWait = new Fl_Value_Input2(166, 181, 70, 24, _("Post write delay (ms)"));
cntHamlibWait->tooltip(_("Wait interval (msecs) before reading response"));
cntHamlibWait->box(FL_DOWN_BOX);
cntHamlibWait->color(FL_BACKGROUND2_COLOR);
cntHamlibWait->selection_color(FL_SELECTION_COLOR);
cntHamlibWait->labeltype(FL_NORMAL_LABEL);
cntHamlibWait->labelfont(0);
cntHamlibWait->labelsize(14);
cntHamlibWait->labelcolor(FL_FOREGROUND_COLOR);
cntHamlibWait->maximum(10000);
cntHamlibWait->step(1);
cntHamlibWait->callback((Fl_Callback*)cb_cntHamlibWait);
cntHamlibWait->align(Fl_Align(FL_ALIGN_TOP_LEFT));
cntHamlibWait->when(FL_WHEN_CHANGED);
o->value(progdefaults.HamlibWait);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Value_Input2* cntHamlibWait
{ Fl_ListBox* o = listbox_baudrate = new Fl_ListBox(476, 123, 99, 22, _("Baud rate:"));
listbox_baudrate->box(FL_DOWN_BOX);
listbox_baudrate->color(FL_BACKGROUND2_COLOR);
listbox_baudrate->selection_color(FL_BACKGROUND_COLOR);
listbox_baudrate->labeltype(FL_NORMAL_LABEL);
listbox_baudrate->labelfont(0);
listbox_baudrate->labelsize(14);
listbox_baudrate->labelcolor(FL_FOREGROUND_COLOR);
listbox_baudrate->callback((Fl_Callback*)cb_listbox_baudrate);
listbox_baudrate->align(Fl_Align(FL_ALIGN_LEFT));
listbox_baudrate->when(FL_WHEN_RELEASE);
o->add(szBaudRates);
o->index(progdefaults.HamRigBaudrate);
o->labelsize(FL_NORMAL_SIZE);
listbox_baudrate->end();
} // Fl_ListBox* listbox_baudrate
{ Fl_Counter2* o = valHamRigStopbits = new Fl_Counter2(480, 148, 95, 21, _("Stopbits"));
valHamRigStopbits->type(1);
valHamRigStopbits->box(FL_UP_BOX);
valHamRigStopbits->color(FL_BACKGROUND_COLOR);
valHamRigStopbits->selection_color(FL_INACTIVE_COLOR);
valHamRigStopbits->labeltype(FL_NORMAL_LABEL);
valHamRigStopbits->labelfont(0);
valHamRigStopbits->labelsize(14);
valHamRigStopbits->labelcolor(FL_FOREGROUND_COLOR);
valHamRigStopbits->minimum(1);
valHamRigStopbits->maximum(2);
valHamRigStopbits->step(1);
valHamRigStopbits->value(1);
valHamRigStopbits->callback((Fl_Callback*)cb_valHamRigStopbits);
valHamRigStopbits->align(Fl_Align(FL_ALIGN_LEFT));
valHamRigStopbits->when(FL_WHEN_CHANGED);
o->value(progdefaults.HamRigStopbits);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Counter2* valHamRigStopbits
{ Fl_Counter2* o = cntHamlibTimeout0 = new Fl_Counter2(160, 145, 100, 20, _("Retry interval (ms)"));
cntHamlibTimeout0->tooltip(_("Msec\'s between retries"));
cntHamlibTimeout0->type(1);
cntHamlibTimeout0->box(FL_UP_BOX);
cntHamlibTimeout0->color(FL_BACKGROUND_COLOR);
cntHamlibTimeout0->selection_color(FL_INACTIVE_COLOR);
cntHamlibTimeout0->labeltype(FL_NORMAL_LABEL);
cntHamlibTimeout0->labelfont(0);
cntHamlibTimeout0->labelsize(14);
cntHamlibTimeout0->labelcolor(FL_FOREGROUND_COLOR);
cntHamlibTimeout0->minimum(2);
cntHamlibTimeout0->maximum(20000);
cntHamlibTimeout0->step(1);
cntHamlibTimeout0->value(10);
cntHamlibTimeout0->callback((Fl_Callback*)cb_cntHamlibTimeout0);
cntHamlibTimeout0->align(Fl_Align(FL_ALIGN_TOP_LEFT));
cntHamlibTimeout0->when(FL_WHEN_CHANGED);
cntHamlibTimeout0->hide();
o->value(progdefaults.HamlibTimeout);
} // Fl_Counter2* cntHamlibTimeout0
{ inpHamlibConfig = new Fl_Input2(30, 331, 425, 22, _("Advanced configuration:"));
inpHamlibConfig->tooltip(_("Optional configuration\nin format: param=val ..."));
inpHamlibConfig->box(FL_DOWN_BOX);
inpHamlibConfig->color(FL_BACKGROUND2_COLOR);
inpHamlibConfig->selection_color(FL_SELECTION_COLOR);
inpHamlibConfig->labeltype(FL_NORMAL_LABEL);
inpHamlibConfig->labelfont(0);
inpHamlibConfig->labelsize(14);
inpHamlibConfig->labelcolor(FL_FOREGROUND_COLOR);
inpHamlibConfig->callback((Fl_Callback*)cb_inpHamlibConfig);
inpHamlibConfig->align(Fl_Align(FL_ALIGN_TOP_LEFT));
inpHamlibConfig->when(FL_WHEN_RELEASE);
inpHamlibConfig->value(progdefaults.HamConfig.c_str());
inpHamlibConfig->labelsize(FL_NORMAL_SIZE);
} // Fl_Input2* inpHamlibConfig
{ btnInitHAMLIB = new Fl_Button(462, 330, 113, 24, _("Initialize"));
btnInitHAMLIB->tooltip(_("Initialize hamlib interface"));
btnInitHAMLIB->callback((Fl_Callback*)cb_btnInitHAMLIB);
} // Fl_Button* btnInitHAMLIB
{ Fl_Check_Button* o = btnHamlibCMDptt = new Fl_Check_Button(55, 211, 215, 20, _("PTT via Hamlib command"));
btnHamlibCMDptt->tooltip(_("PTT using hamlib command"));
btnHamlibCMDptt->down_box(FL_DOWN_BOX);
btnHamlibCMDptt->callback((Fl_Callback*)cb_btnHamlibCMDptt);
o->value(progdefaults.HamlibCMDptt);
} // Fl_Check_Button* btnHamlibCMDptt
{ Fl_Check_Button* o = btnHamlibPTT_ON_DATA = new Fl_Check_Button(55, 236, 215, 20, _("Audio on Auxiliary Port"));
btnHamlibPTT_ON_DATA->tooltip(_("PTT enables auxiliary audio source"));
btnHamlibPTT_ON_DATA->down_box(FL_DOWN_BOX);
btnHamlibPTT_ON_DATA->callback((Fl_Callback*)cb_btnHamlibPTT_ON_DATA);
o->value(progdefaults.hamlib_ptt_on_data);
} // Fl_Check_Button* btnHamlibPTT_ON_DATA
{ Fl_Check_Button* o = btnHamlibDTRplus = new Fl_Check_Button(55, 261, 90, 20, _("DTR +12"));
btnHamlibDTRplus->tooltip(_("Initial state of DTR"));
btnHamlibDTRplus->down_box(FL_DOWN_BOX);
btnHamlibDTRplus->callback((Fl_Callback*)cb_btnHamlibDTRplus);
o->value(progdefaults.HamlibDTRplus);
} // Fl_Check_Button* btnHamlibDTRplus
{ Fl_Check_Button* o = chkHamlibRTSplus = new Fl_Check_Button(245, 261, 85, 20, _("RTS +12"));
chkHamlibRTSplus->tooltip(_("Initial state of RTS"));
chkHamlibRTSplus->down_box(FL_DOWN_BOX);
chkHamlibRTSplus->callback((Fl_Callback*)cb_chkHamlibRTSplus);
o->value(progdefaults.HamlibRTSplus);
} // Fl_Check_Button* chkHamlibRTSplus
{ Fl_Check_Button* o = chkHamlibRTSCTSflow = new Fl_Check_Button(55, 287, 170, 20, _("RTS/CTS flow control"));
chkHamlibRTSCTSflow->tooltip(_("Rig requires RTS/CTS flow control"));
chkHamlibRTSCTSflow->down_box(FL_DOWN_BOX);
chkHamlibRTSCTSflow->callback((Fl_Callback*)cb_chkHamlibRTSCTSflow);
o->value(progdefaults.HamlibRTSCTSflow);
if (o->value()) chkHamlibRTSplus->deactivate();
} // Fl_Check_Button* chkHamlibRTSCTSflow
{ Fl_Check_Button* o = chkHamlibXONXOFFflow = new Fl_Check_Button(245, 287, 185, 20, _("XON/XOFF flow control"));
chkHamlibXONXOFFflow->tooltip(_("Rig requires Xon/Xoff flow control"));
chkHamlibXONXOFFflow->down_box(FL_DOWN_BOX);
chkHamlibXONXOFFflow->callback((Fl_Callback*)cb_chkHamlibXONXOFFflow);
o->value(progdefaults.HamlibXONXOFFflow);
} // Fl_Check_Button* chkHamlibXONXOFFflow
{ btnRevertHAMLIB = new Fl_Button(381, 299, 113, 24, _("Revert"));
btnRevertHAMLIB->tooltip(_("Reset hamlib interface"));
btnRevertHAMLIB->callback((Fl_Callback*)cb_btnRevertHAMLIB);
btnRevertHAMLIB->hide();
btnRevertHAMLIB->deactivate();
} // Fl_Button* btnRevertHAMLIB
{ Fl_Check_Button* o = chk_hamlib_cw_is_lsb = new Fl_Check_Button(435, 261, 142, 20, _("CW is LSB mode"));
chk_hamlib_cw_is_lsb->tooltip(_("Check if xcvr uses LSB for CW"));
chk_hamlib_cw_is_lsb->down_box(FL_DOWN_BOX);
chk_hamlib_cw_is_lsb->callback((Fl_Callback*)cb_chk_hamlib_cw_is_lsb);
o->value(progdefaults.hamlib_cw_islsb);
} // Fl_Check_Button* chk_hamlib_cw_is_lsb
{ Fl_Check_Button* o = chk_hamlib_rtty_is_usb = new Fl_Check_Button(435, 287, 152, 20, _("RTTY is USB mode"));
chk_hamlib_rtty_is_usb->tooltip(_("Check if xcvr uses USB for RTTY"));
chk_hamlib_rtty_is_usb->down_box(FL_DOWN_BOX);
chk_hamlib_rtty_is_usb->callback((Fl_Callback*)cb_chk_hamlib_rtty_is_usb);
o->value(progdefaults.hamlib_rtty_isusb);
} // Fl_Check_Button* chk_hamlib_rtty_is_usb
{ Fl_ListBox* o = listbox_sideband = new Fl_ListBox(431, 235, 144, 22, _("Sideband:"));
listbox_sideband->box(FL_DOWN_BOX);
listbox_sideband->color(FL_BACKGROUND2_COLOR);
listbox_sideband->selection_color(FL_BACKGROUND_COLOR);
listbox_sideband->labeltype(FL_NORMAL_LABEL);
listbox_sideband->labelfont(0);
listbox_sideband->labelsize(14);
listbox_sideband->labelcolor(FL_FOREGROUND_COLOR);
listbox_sideband->align(Fl_Align(FL_ALIGN_LEFT));
listbox_sideband->when(FL_WHEN_RELEASE);
o->labelsize(FL_NORMAL_SIZE);
listbox_sideband->end();
} // Fl_ListBox* listbox_sideband
{ Fl_Counter2* o = val_hamlib_mode_delay = new Fl_Counter2(480, 210, 95, 21, _("Mode delay"));
val_hamlib_mode_delay->tooltip(_("Delay NN msec after executing mode change"));
val_hamlib_mode_delay->type(1);
val_hamlib_mode_delay->box(FL_UP_BOX);
val_hamlib_mode_delay->color(FL_BACKGROUND_COLOR);
val_hamlib_mode_delay->selection_color(FL_INACTIVE_COLOR);
val_hamlib_mode_delay->labeltype(FL_NORMAL_LABEL);
val_hamlib_mode_delay->labelfont(0);
val_hamlib_mode_delay->labelsize(14);
val_hamlib_mode_delay->labelcolor(FL_FOREGROUND_COLOR);
val_hamlib_mode_delay->minimum(0);
val_hamlib_mode_delay->maximum(2000);
val_hamlib_mode_delay->step(100);
val_hamlib_mode_delay->value(200);
val_hamlib_mode_delay->callback((Fl_Callback*)cb_val_hamlib_mode_delay);
val_hamlib_mode_delay->align(Fl_Align(FL_ALIGN_LEFT));
val_hamlib_mode_delay->when(FL_WHEN_CHANGED);
o->value(progdefaults.hamlib_mode_delay);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Counter2* val_hamlib_mode_delay
grpHamlib->end();
} // Fl_Group* grpHamlib
tabHamlib->end();
} // Fl_Group* tabHamlib
{ Fl_Group* o = new Fl_Group(0, 50, 600, 335, _("Hardware PTT"));
o->hide();
{ Fl_Group* o = new Fl_Group(55, 57, 490, 38);
o->box(FL_ENGRAVED_FRAME);
{ Fl_Check_Button* o = btnPTTrightchannel = new Fl_Check_Button(74, 66, 250, 20, _("PTT tone on right audio channel "));
btnPTTrightchannel->tooltip(_("Can be used in lieu of or in addition to other PTT types"));
btnPTTrightchannel->down_box(FL_DOWN_BOX);
btnPTTrightchannel->callback((Fl_Callback*)cb_btnPTTrightchannel);
o->value(progdefaults.PTTrightchannel);
} // Fl_Check_Button* btnPTTrightchannel
o->end();
} // Fl_Group* o
{ grpHWPTT = new Fl_Group(55, 97, 490, 184, _("h/w ptt device-pin"));
grpHWPTT->box(FL_ENGRAVED_FRAME);
grpHWPTT->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ btnTTYptt = new Fl_Round_Button(74, 121, 220, 20, _("Use separate serial port PTT"));
btnTTYptt->down_box(FL_DOWN_BOX);
btnTTYptt->selection_color((Fl_Color)1);
btnTTYptt->callback((Fl_Callback*)cb_btnTTYptt);
} // Fl_Round_Button* btnTTYptt
{ Fl_ComboBox* o = inpTTYdev = new Fl_ComboBox(128, 151, 160, 22, _("Device:"));
inpTTYdev->box(FL_DOWN_BOX);
inpTTYdev->color(FL_BACKGROUND2_COLOR);
inpTTYdev->selection_color(FL_BACKGROUND_COLOR);
inpTTYdev->labeltype(FL_NORMAL_LABEL);
inpTTYdev->labelfont(0);
inpTTYdev->labelsize(14);
inpTTYdev->labelcolor(FL_FOREGROUND_COLOR);
inpTTYdev->callback((Fl_Callback*)cb_inpTTYdev);
inpTTYdev->align(Fl_Align(FL_ALIGN_LEFT));
inpTTYdev->when(FL_WHEN_RELEASE);
o->labelsize(FL_NORMAL_SIZE);
inpTTYdev->end();
} // Fl_ComboBox* inpTTYdev
{ btnRTSptt = new Fl_Round_Button(310, 120, 85, 20, _("Use RTS"));
btnRTSptt->tooltip(_("RTS is PTT signal line"));
btnRTSptt->down_box(FL_DOWN_BOX);
btnRTSptt->callback((Fl_Callback*)cb_btnRTSptt);
} // Fl_Round_Button* btnRTSptt
{ btnRTSplusV = new Fl_Round_Button(407, 120, 100, 20, _("RTS = +V"));
btnRTSplusV->tooltip(_("Initial voltage on RTS"));
btnRTSplusV->down_box(FL_DOWN_BOX);
btnRTSplusV->callback((Fl_Callback*)cb_btnRTSplusV);
} // Fl_Round_Button* btnRTSplusV
{ btnDTRptt = new Fl_Round_Button(310, 150, 85, 20, _("Use DTR"));
btnDTRptt->tooltip(_("DTR is PTT signal line"));
btnDTRptt->down_box(FL_DOWN_BOX);
btnDTRptt->callback((Fl_Callback*)cb_btnDTRptt);
} // Fl_Round_Button* btnDTRptt
{ btnDTRplusV = new Fl_Round_Button(407, 150, 100, 20, _("DTR = +V"));
btnDTRplusV->tooltip(_("Initial voltage on DTR"));
btnDTRplusV->down_box(FL_DOWN_BOX);
btnDTRplusV->callback((Fl_Callback*)cb_btnDTRplusV);
} // Fl_Round_Button* btnDTRplusV
{ btnInitHWPTT = new Fl_Button(411, 217, 113, 24, _("Initialize"));
btnInitHWPTT->tooltip(_("Initialize the H/W PTT interface"));
btnInitHWPTT->callback((Fl_Callback*)cb_btnInitHWPTT);
} // Fl_Button* btnInitHWPTT
{ btnUsePPortPTT = new Fl_Round_Button(74, 191, 170, 20, _("Use parallel port PTT"));
btnUsePPortPTT->down_box(FL_DOWN_BOX);
btnUsePPortPTT->selection_color((Fl_Color)1);
btnUsePPortPTT->callback((Fl_Callback*)cb_btnUsePPortPTT);
} // Fl_Round_Button* btnUsePPortPTT
{ btnUseUHrouterPTT = new Fl_Round_Button(74, 221, 170, 20, _("Use uHRouter PTT"));
btnUseUHrouterPTT->down_box(FL_DOWN_BOX);
btnUseUHrouterPTT->selection_color((Fl_Color)1);
btnUseUHrouterPTT->callback((Fl_Callback*)cb_btnUseUHrouterPTT);
} // Fl_Round_Button* btnUseUHrouterPTT
{ btnUseGPIOPTT = new Fl_Round_Button(74, 252, 170, 20, _("Use GPIO PTT"));
btnUseGPIOPTT->down_box(FL_DOWN_BOX);
btnUseGPIOPTT->selection_color((Fl_Color)1);
btnUseGPIOPTT->callback((Fl_Callback*)cb_btnUseGPIOPTT);
} // Fl_Round_Button* btnUseGPIOPTT
{ inpGPIOPort = new Fl_Counter2(286, 252, 65, 20, _("GPIO:"));
inpGPIOPort->tooltip(_("Select GPIO port"));
inpGPIOPort->type(1);
inpGPIOPort->box(FL_UP_BOX);
inpGPIOPort->color(FL_BACKGROUND_COLOR);
inpGPIOPort->selection_color(FL_INACTIVE_COLOR);
inpGPIOPort->labeltype(FL_NORMAL_LABEL);
inpGPIOPort->labelfont(0);
inpGPIOPort->labelsize(14);
inpGPIOPort->labelcolor(FL_FOREGROUND_COLOR);
inpGPIOPort->minimum(0);
inpGPIOPort->maximum(31);
inpGPIOPort->step(1);
inpGPIOPort->value(17);
inpGPIOPort->callback((Fl_Callback*)cb_inpGPIOPort);
inpGPIOPort->align(Fl_Align(FL_ALIGN_LEFT));
inpGPIOPort->when(FL_WHEN_CHANGED);
} // Fl_Counter2* inpGPIOPort
grpHWPTT->end();
} // Fl_Group* grpHWPTT
{ grpPTTdelays = new Fl_Group(55, 284, 490, 91, _("PTT delays valid for all CAT/PTT types"));
grpPTTdelays->box(FL_ENGRAVED_FRAME);
grpPTTdelays->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Counter* o = cntPTT_on_delay = new Fl_Counter(74, 311, 100, 21, _("Start of transmit PTT delay"));
cntPTT_on_delay->tooltip(_("Delay NN msec before starting audio"));
cntPTT_on_delay->minimum(0);
cntPTT_on_delay->maximum(5000);
cntPTT_on_delay->step(10);
cntPTT_on_delay->callback((Fl_Callback*)cb_cntPTT_on_delay);
cntPTT_on_delay->align(Fl_Align(FL_ALIGN_RIGHT));
o->value(progdefaults.PTT_on_delay);
o->lstep(100);
} // Fl_Counter* cntPTT_on_delay
{ Fl_Counter* o = cntPTT_off_delay = new Fl_Counter(74, 341, 100, 21, _("PTT end of transmit delay"));
cntPTT_off_delay->tooltip(_("Delay NN msec before releasing PTT"));
cntPTT_off_delay->minimum(0);
cntPTT_off_delay->maximum(5000);
cntPTT_off_delay->step(10);
cntPTT_off_delay->callback((Fl_Callback*)cb_cntPTT_off_delay);
cntPTT_off_delay->align(Fl_Align(FL_ALIGN_RIGHT));
o->value(progdefaults.PTT_off_delay);
o->lstep(100);
} // Fl_Counter* cntPTT_off_delay
grpPTTdelays->end();
} // Fl_Group* grpPTTdelays
o->end();
} // Fl_Group* o
{ tabXMLRPC = new Fl_Group(0, 50, 600, 335, _("XML-RPC"));
tabXMLRPC->hide();
{ grpXMLRPC = new Fl_Group(55, 61, 490, 160);
grpXMLRPC->box(FL_ENGRAVED_FRAME);
{ Fl_Output* o = new Fl_Output(210, 80, 190, 58);
o->type(12);
o->box(FL_BORDER_BOX);
o->color(FL_LIGHT1);
o->value(_("Rig control via external\nprogram using xmlrpc\nremote calls."));
} // Fl_Output* o
{ chkUSEXMLRPC = new Fl_Check_Button(210, 148, 183, 20, _("Use XML-RPC program"));
chkUSEXMLRPC->tooltip(_("Experimental"));
chkUSEXMLRPC->down_box(FL_DOWN_BOX);
chkUSEXMLRPC->callback((Fl_Callback*)cb_chkUSEXMLRPC);
} // Fl_Check_Button* chkUSEXMLRPC
{ btnInitXMLRPC = new Fl_Button(251, 184, 113, 24, _("Initialize"));
btnInitXMLRPC->tooltip(_("Initialize XML-RPC rig control"));
btnInitXMLRPC->callback((Fl_Callback*)cb_btnInitXMLRPC);
} // Fl_Button* btnInitXMLRPC
grpXMLRPC->end();
} // Fl_Group* grpXMLRPC
{ Fl_Group* o = new Fl_Group(55, 225, 490, 50);
o->box(FL_ENGRAVED_BOX);
{ Fl_Counter* o = mbw_delay = new Fl_Counter(210, 239, 90, 21, _("Mode/BW delay"));
mbw_delay->tooltip(_("Delay in seconds between <RIGMODE... and <FILWID...\nwhen both in same macro \
definition"));
mbw_delay->type(1);
mbw_delay->minimum(0.1);
mbw_delay->maximum(2);
mbw_delay->step(0.05);
mbw_delay->value(0.1);
mbw_delay->callback((Fl_Callback*)cb_mbw_delay);
mbw_delay->align(Fl_Align(FL_ALIGN_RIGHT));
o->value(progdefaults.mbw);
} // Fl_Counter* mbw_delay
o->end();
} // Fl_Group* o
tabXMLRPC->end();
} // Fl_Group* tabXMLRPC
{ tabFLRIG = new Fl_Group(0, 50, 600, 335, _("flrig"));
{ Fl_Output* o = new Fl_Output(75, 77, 465, 58);
o->tooltip(_("\" \""));
o->type(12);
o->box(FL_BORDER_BOX);
o->color(FL_LIGHT1);
o->align(Fl_Align(FL_ALIGN_CENTER));
o->value(_("Disable this control if multiple instances of fldigi (client)\nare connected to a single flrig (server)."));
} // Fl_Output* o
{ Fl_Check_Button* o = chk_flrig_keys_modem = new Fl_Check_Button(225, 150, 183, 20, _("Flrig PTT keys modem"));
chk_flrig_keys_modem->tooltip(_("\" \""));
chk_flrig_keys_modem->down_box(FL_DOWN_BOX);
chk_flrig_keys_modem->callback((Fl_Callback*)cb_chk_flrig_keys_modem);
o->value(progdefaults.flrig_keys_modem);
} // Fl_Check_Button* chk_flrig_keys_modem
tabFLRIG->end();
} // Fl_Group* tabFLRIG
tabsRig->end();
} // Fl_Tabs* tabsRig
tabRig->end();
} // Fl_Group* tabRig
{ tabSoundCard = new Fl_Group(0, 25, 600, 360, _("Audio"));
tabSoundCard->tooltip(_("Audio devices"));
tabSoundCard->hide();
{ tabsSoundCard = new Fl_Tabs(0, 25, 600, 360);
tabsSoundCard->selection_color(FL_LIGHT1);
{ tabAudio = new Fl_Group(0, 50, 600, 335, _("Devices"));
{ AudioOSS = new Fl_Group(55, 65, 490, 45);
AudioOSS->box(FL_ENGRAVED_FRAME);
{ btnAudioIO[0] = new Fl_Round_Button(65, 75, 53, 25, _("OSS"));
btnAudioIO[0]->tooltip(_("Use OSS audio server"));
btnAudioIO[0]->down_box(FL_DOWN_BOX);
btnAudioIO[0]->selection_color((Fl_Color)1);
btnAudioIO[0]->callback((Fl_Callback*)cb_btnAudioIO);
} // Fl_Round_Button* btnAudioIO[0]
{ Fl_Input_Choice* o = menuOSSDev = new Fl_Input_Choice(424, 75, 110, 25, _("Device:"));
menuOSSDev->tooltip(_("Select device"));
menuOSSDev->callback((Fl_Callback*)cb_menuOSSDev);
o->value(progdefaults.OSSdevice.c_str());
} // Fl_Input_Choice* menuOSSDev
AudioOSS->end();
} // Fl_Group* AudioOSS
{ AudioPort = new Fl_Group(55, 110, 490, 80);
AudioPort->box(FL_ENGRAVED_FRAME);
{ btnAudioIO[1] = new Fl_Round_Button(65, 138, 95, 25, _("PortAudio"));
btnAudioIO[1]->tooltip(_("Use Port Audio server"));
btnAudioIO[1]->down_box(FL_DOWN_BOX);
btnAudioIO[1]->selection_color((Fl_Color)1);
btnAudioIO[1]->callback((Fl_Callback*)cb_btnAudioIO1);
} // Fl_Round_Button* btnAudioIO[1]
{ menuPortInDev = new Fl_Choice(244, 121, 290, 25, _("Capture:"));
menuPortInDev->tooltip(_("Audio input device"));
menuPortInDev->down_box(FL_BORDER_BOX);
menuPortInDev->callback((Fl_Callback*)cb_menuPortInDev);
} // Fl_Choice* menuPortInDev
{ menuPortOutDev = new Fl_Choice(244, 156, 290, 25, _("Playback:"));
menuPortOutDev->tooltip(_("Audio output device"));
menuPortOutDev->down_box(FL_BORDER_BOX);
menuPortOutDev->callback((Fl_Callback*)cb_menuPortOutDev);
} // Fl_Choice* menuPortOutDev
AudioPort->end();
} // Fl_Group* AudioPort
{ AudioPulse = new Fl_Group(55, 190, 490, 45);
AudioPulse->box(FL_ENGRAVED_FRAME);
{ btnAudioIO[2] = new Fl_Round_Button(65, 201, 100, 25, _("PulseAudio"));
btnAudioIO[2]->tooltip(_("Use Pulse Audio server"));
btnAudioIO[2]->down_box(FL_DOWN_BOX);
btnAudioIO[2]->selection_color((Fl_Color)1);
btnAudioIO[2]->callback((Fl_Callback*)cb_btnAudioIO2);
} // Fl_Round_Button* btnAudioIO[2]
{ Fl_Input2* o = inpPulseServer = new Fl_Input2(310, 201, 225, 24, _("Server string:"));
inpPulseServer->tooltip(_("Leave this blank or refer to\nhttp://www.pulseaudio.org/wiki/ServerStrings"));
inpPulseServer->box(FL_DOWN_BOX);
inpPulseServer->color(FL_BACKGROUND2_COLOR);
inpPulseServer->selection_color(FL_SELECTION_COLOR);
inpPulseServer->labeltype(FL_NORMAL_LABEL);
inpPulseServer->labelfont(0);
inpPulseServer->labelsize(14);
inpPulseServer->labelcolor(FL_FOREGROUND_COLOR);
inpPulseServer->callback((Fl_Callback*)cb_inpPulseServer);
inpPulseServer->align(Fl_Align(FL_ALIGN_LEFT));
inpPulseServer->when(FL_WHEN_RELEASE);
o->value(progdefaults.PulseServer.c_str());
inpPulseServer->labelsize(FL_NORMAL_SIZE);
} // Fl_Input2* inpPulseServer
AudioPulse->end();
} // Fl_Group* AudioPulse
{ AudioNull = new Fl_Group(55, 235, 490, 45);
AudioNull->box(FL_ENGRAVED_FRAME);
{ btnAudioIO[3] = new Fl_Round_Button(66, 245, 100, 25, _("File I/O only"));
btnAudioIO[3]->tooltip(_("NO AUDIO DEVICE AVAILABLE (or testing)"));
btnAudioIO[3]->down_box(FL_DOWN_BOX);
btnAudioIO[3]->selection_color((Fl_Color)1);
btnAudioIO[3]->callback((Fl_Callback*)cb_btnAudioIO3);
} // Fl_Round_Button* btnAudioIO[3]
AudioNull->end();
} // Fl_Group* AudioNull
tabAudio->end();
} // Fl_Group* tabAudio
{ tabAudioOpt = new Fl_Group(0, 50, 600, 335, _("Settings"));
tabAudioOpt->hide();
{ grpAudioSampleRate = new Fl_Group(55, 65, 490, 90, _("Sample rate"));
grpAudioSampleRate->box(FL_ENGRAVED_FRAME);
grpAudioSampleRate->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_ListBox* o = menuInSampleRate = new Fl_ListBox(65, 94, 100, 22, _("Capture"));
menuInSampleRate->tooltip(_("Force a specific sample rate. Select \"Native\" if \"Auto\"\ndoes not work we\
ll with your audio device."));
menuInSampleRate->box(FL_DOWN_BOX);
menuInSampleRate->color(FL_BACKGROUND2_COLOR);
menuInSampleRate->selection_color(FL_BACKGROUND_COLOR);
menuInSampleRate->labeltype(FL_NORMAL_LABEL);
menuInSampleRate->labelfont(0);
menuInSampleRate->labelsize(14);
menuInSampleRate->labelcolor(FL_FOREGROUND_COLOR);
menuInSampleRate->callback((Fl_Callback*)cb_menuInSampleRate);
menuInSampleRate->align(Fl_Align(FL_ALIGN_RIGHT));
menuInSampleRate->when(FL_WHEN_RELEASE);
o->clear_changed();
o->labelsize(FL_NORMAL_SIZE);
menuInSampleRate->end();
} // Fl_ListBox* menuInSampleRate
{ Fl_ListBox* o = menuOutSampleRate = new Fl_ListBox(65, 124, 100, 22, _("Playback"));
menuOutSampleRate->box(FL_DOWN_BOX);
menuOutSampleRate->color(FL_BACKGROUND2_COLOR);
menuOutSampleRate->selection_color(FL_BACKGROUND_COLOR);
menuOutSampleRate->labeltype(FL_NORMAL_LABEL);
menuOutSampleRate->labelfont(0);
menuOutSampleRate->labelsize(14);
menuOutSampleRate->labelcolor(FL_FOREGROUND_COLOR);
menuOutSampleRate->callback((Fl_Callback*)cb_menuOutSampleRate);
menuOutSampleRate->align(Fl_Align(FL_ALIGN_RIGHT));
menuOutSampleRate->when(FL_WHEN_RELEASE);
o->clear_changed();
o->tooltip(menuInSampleRate->tooltip());
o->labelsize(FL_NORMAL_SIZE);
menuOutSampleRate->end();
} // Fl_ListBox* menuOutSampleRate
{ Fl_ListBox* o = menuSampleConverter = new Fl_ListBox(319, 94, 216, 22, _("Converter"));
menuSampleConverter->tooltip(_("Set the type of resampler used of offset correction"));
menuSampleConverter->box(FL_DOWN_BOX);
menuSampleConverter->color(FL_BACKGROUND2_COLOR);
menuSampleConverter->selection_color(FL_BACKGROUND_COLOR);
menuSampleConverter->labeltype(FL_NORMAL_LABEL);
menuSampleConverter->labelfont(0);
menuSampleConverter->labelsize(14);
menuSampleConverter->labelcolor(FL_FOREGROUND_COLOR);
menuSampleConverter->callback((Fl_Callback*)cb_menuSampleConverter);
menuSampleConverter->align(Fl_Align(FL_ALIGN_TOP_LEFT));
menuSampleConverter->when(FL_WHEN_RELEASE);
o->labelsize(FL_NORMAL_SIZE);
menuSampleConverter->end();
} // Fl_ListBox* menuSampleConverter
grpAudioSampleRate->end();
} // Fl_Group* grpAudioSampleRate
{ Fl_Group* o = new Fl_Group(55, 155, 490, 62, _("Corrections"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Spinner2* o = cntRxRateCorr = new Fl_Spinner2(65, 185, 85, 20, _("RX ppm"));
cntRxRateCorr->tooltip(_("RX sound card correction"));
cntRxRateCorr->box(FL_NO_BOX);
cntRxRateCorr->color(FL_BACKGROUND_COLOR);
cntRxRateCorr->selection_color(FL_BACKGROUND_COLOR);
cntRxRateCorr->labeltype(FL_NORMAL_LABEL);
cntRxRateCorr->labelfont(0);
cntRxRateCorr->labelsize(14);
cntRxRateCorr->labelcolor(FL_FOREGROUND_COLOR);
cntRxRateCorr->callback((Fl_Callback*)cb_cntRxRateCorr);
cntRxRateCorr->align(Fl_Align(FL_ALIGN_RIGHT));
cntRxRateCorr->when(FL_WHEN_RELEASE);
o->step(1);
o->minimum(-50000);
o->maximum(50000);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Spinner2* cntRxRateCorr
{ Fl_Spinner2* o = cntTxRateCorr = new Fl_Spinner2(226, 185, 85, 20, _("TX ppm"));
cntTxRateCorr->tooltip(_("TX sound card correction"));
cntTxRateCorr->box(FL_NO_BOX);
cntTxRateCorr->color(FL_BACKGROUND_COLOR);
cntTxRateCorr->selection_color(FL_BACKGROUND_COLOR);
cntTxRateCorr->labeltype(FL_NORMAL_LABEL);
cntTxRateCorr->labelfont(0);
cntTxRateCorr->labelsize(14);
cntTxRateCorr->labelcolor(FL_FOREGROUND_COLOR);
cntTxRateCorr->callback((Fl_Callback*)cb_cntTxRateCorr);
cntTxRateCorr->align(Fl_Align(FL_ALIGN_RIGHT));
cntTxRateCorr->when(FL_WHEN_RELEASE);
o->step(1);
o->minimum(-50000);
o->maximum(50000);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Spinner2* cntTxRateCorr
{ Fl_Spinner2* o = cntTxOffset = new Fl_Spinner2(388, 185, 85, 20, _("TX offset"));
cntTxOffset->tooltip(_("Difference between Rx & Tx freq (rig offset)"));
cntTxOffset->box(FL_NO_BOX);
cntTxOffset->color(FL_BACKGROUND_COLOR);
cntTxOffset->selection_color(FL_BACKGROUND_COLOR);
cntTxOffset->labeltype(FL_NORMAL_LABEL);
cntTxOffset->labelfont(0);
cntTxOffset->labelsize(14);
cntTxOffset->labelcolor(FL_FOREGROUND_COLOR);
cntTxOffset->callback((Fl_Callback*)cb_cntTxOffset);
cntTxOffset->align(Fl_Align(FL_ALIGN_RIGHT));
cntTxOffset->when(FL_WHEN_RELEASE);
o->value(progdefaults.TxOffset);
o->step(1);
o->minimum(-50); o->maximum(50);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Spinner2* cntTxOffset
o->end();
} // Fl_Group* o
tabAudioOpt->end();
} // Fl_Group* tabAudioOpt
{ tabAudioRightChannel = new Fl_Group(0, 50, 600, 335, _("Right channel"));
tabAudioRightChannel->hide();
{ Fl_Group* o = new Fl_Group(25, 61, 550, 246, _("Transmit Usage"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ chkAudioStereoOut = new Fl_Check_Button(165, 82, 280, 20, _("Modem signal on left and right channels"));
chkAudioStereoOut->tooltip(_("Left and right channels both contain modem audio"));
chkAudioStereoOut->down_box(FL_DOWN_BOX);
chkAudioStereoOut->callback((Fl_Callback*)cb_chkAudioStereoOut);
chkAudioStereoOut->value(progdefaults.sig_on_right_channel);
} // Fl_Check_Button* chkAudioStereoOut
{ Fl_Check_Button* o = chkReverseAudio = new Fl_Check_Button(165, 112, 270, 20, _("Reverse Left/Right channels"));
chkReverseAudio->tooltip(_("Software reversal of left-right audio channels"));
chkReverseAudio->down_box(FL_DOWN_BOX);
chkReverseAudio->callback((Fl_Callback*)cb_chkReverseAudio);
o->value(progdefaults.ReverseAudio);
} // Fl_Check_Button* chkReverseAudio
{ Fl_Group* o = new Fl_Group(75, 135, 454, 162, _("...\nThese controls are on other tabs.\nThey are replicated here for convenie\
nce.\nYou may change the state from either location.\n..."));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_BOTTOM|FL_ALIGN_INSIDE));
{ Fl_Check_Button* o = btnPTTrightchannel2 = new Fl_Check_Button(165, 142, 250, 20, _("PTT tone on right audio channel "));
btnPTTrightchannel2->tooltip(_("1000 Hz tone when PTT enabled\nCan be used in lieu of or in addition to other\
PTT types"));
btnPTTrightchannel2->down_box(FL_DOWN_BOX);
btnPTTrightchannel2->callback((Fl_Callback*)cb_btnPTTrightchannel2);
o->value(progdefaults.PTTrightchannel);
} // Fl_Check_Button* btnPTTrightchannel2
{ Fl_Check_Button* o = btnQSK2 = new Fl_Check_Button(165, 172, 211, 20, _("CW QSK signal on right channel"));
btnQSK2->tooltip(_("Generate 1000 Hz square wave signal on right channel"));
btnQSK2->down_box(FL_DOWN_BOX);
btnQSK2->callback((Fl_Callback*)cb_btnQSK2);
o->value(progdefaults.QSK);
} // Fl_Check_Button* btnQSK2
{ Fl_Check_Button* o = chkPseudoFSK2 = new Fl_Check_Button(165, 203, 270, 20, _("Pseudo-FSK on right audio channel"));
chkPseudoFSK2->tooltip(_("Create 1000 Hz square wave on right channel"));
chkPseudoFSK2->down_box(FL_DOWN_BOX);
chkPseudoFSK2->callback((Fl_Callback*)cb_chkPseudoFSK2);
o->value(progdefaults.PseudoFSK);
} // Fl_Check_Button* chkPseudoFSK2
o->end();
} // Fl_Group* o
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(25, 310, 550, 60, _("Receive Usage"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Check_Button* o = chkReverseRxAudio = new Fl_Check_Button(165, 328, 270, 20, _("Reverse Left/Right channels"));
chkReverseRxAudio->tooltip(_("Software reversal of left-right audio channels"));
chkReverseRxAudio->down_box(FL_DOWN_BOX);
chkReverseRxAudio->callback((Fl_Callback*)cb_chkReverseRxAudio);
o->value(progdefaults.ReverseRxAudio);
} // Fl_Check_Button* chkReverseRxAudio
o->end();
} // Fl_Group* o
tabAudioRightChannel->end();
} // Fl_Group* tabAudioRightChannel
{ tabWavFile = new Fl_Group(0, 50, 600, 335, _("Wav"));
tabWavFile->hide();
{ Fl_ListBox* o = listbox_wav_samplerate = new Fl_ListBox(225, 96, 150, 24, _("Wav write sample rate"));
listbox_wav_samplerate->tooltip(_("Pick baud rate from list"));
listbox_wav_samplerate->box(FL_DOWN_BOX);
listbox_wav_samplerate->color(FL_BACKGROUND2_COLOR);
listbox_wav_samplerate->selection_color(FL_BACKGROUND_COLOR);
listbox_wav_samplerate->labeltype(FL_NORMAL_LABEL);
listbox_wav_samplerate->labelfont(0);
listbox_wav_samplerate->labelsize(14);
listbox_wav_samplerate->labelcolor(FL_FOREGROUND_COLOR);
listbox_wav_samplerate->callback((Fl_Callback*)cb_listbox_wav_samplerate);
listbox_wav_samplerate->align(Fl_Align(FL_ALIGN_TOP_LEFT));
listbox_wav_samplerate->when(FL_WHEN_RELEASE);
o->add("8000|11025|16000|22050|24000|44100|48000");
o->index(progdefaults.wavSampleRate);
o->labelsize(FL_NORMAL_SIZE);
listbox_wav_samplerate->end();
} // Fl_ListBox* listbox_wav_samplerate
tabWavFile->end();
} // Fl_Group* tabWavFile
tabsSoundCard->end();
} // Fl_Tabs* tabsSoundCard
tabSoundCard->end();
} // Fl_Group* tabSoundCard
{ tabID = new Fl_Group(0, 25, 600, 360, _("ID"));
tabID->hide();
{ tabsID = new Fl_Tabs(0, 25, 600, 360);
{ tabRsID = new Fl_Group(0, 50, 600, 335, _("RsID"));
tabRsID->hide();
{ Fl_Group* o = new Fl_Group(32, 55, 535, 210, _("Reed-Solomon ID (Rx)"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ chkRSidNotifyOnly = new Fl_Check_Button(40, 112, 168, 20, _("Notify only"));
chkRSidNotifyOnly->tooltip(_("Check this to be notified when an RSID is received\nwithout changing modem an\
d frequency"));
chkRSidNotifyOnly->down_box(FL_DOWN_BOX);
chkRSidNotifyOnly->callback((Fl_Callback*)cb_chkRSidNotifyOnly);
chkRSidNotifyOnly->value(progdefaults.rsid_notify_only);
} // Fl_Check_Button* chkRSidNotifyOnly
{ bRSIDRxModes = new Fl_Button(40, 81, 130, 24, _("Receive modes"));
bRSIDRxModes->callback((Fl_Callback*)cb_bRSIDRxModes);
} // Fl_Button* bRSIDRxModes
{ Fl_Check_Button* o = chkRSidWideSearch = new Fl_Check_Button(40, 143, 203, 20, _("Searches passband"));
chkRSidWideSearch->tooltip(_("ON - search over entire waterfall\nOFF - limit search to +/- 200 Hz"));
chkRSidWideSearch->down_box(FL_DOWN_BOX);
chkRSidWideSearch->callback((Fl_Callback*)cb_chkRSidWideSearch);
o->value(progdefaults.rsidWideSearch);
} // Fl_Check_Button* chkRSidWideSearch
{ chkRSidMark = new Fl_Check_Button(40, 175, 203, 20, _("Mark prev freq/mode"));
chkRSidMark->tooltip(_("Insert RX text marker before\nchanging frequency and modem"));
chkRSidMark->down_box(FL_DOWN_BOX);
chkRSidMark->callback((Fl_Callback*)cb_chkRSidMark);
chkRSidMark->value(progdefaults.rsid_mark);
} // Fl_Check_Button* chkRSidMark
{ chkRSidAutoDisable = new Fl_Check_Button(40, 207, 203, 20, _("Disables detector"));
chkRSidAutoDisable->tooltip(_("Disable further detection when RSID is received"));
chkRSidAutoDisable->down_box(FL_DOWN_BOX);
chkRSidAutoDisable->callback((Fl_Callback*)cb_chkRSidAutoDisable);
if (progdefaults.rsid_notify_only) progdefaults.rsid_auto_disable = false;
chkRSidAutoDisable->value(progdefaults.rsid_auto_disable);
if (progdefaults.rsid_notify_only) chkRSidAutoDisable->deactivate();
} // Fl_Check_Button* chkRSidAutoDisable
{ Fl_ListBox* o = listbox_rsid_errors = new Fl_ListBox(40, 233, 100, 22, _("Allow errors"));
listbox_rsid_errors->tooltip(_("Low = zero errors\nMedium = 1 error\nHigh = 2 errors"));
listbox_rsid_errors->box(FL_DOWN_BOX);
listbox_rsid_errors->color(FL_BACKGROUND2_COLOR);
listbox_rsid_errors->selection_color(FL_BACKGROUND_COLOR);
listbox_rsid_errors->labeltype(FL_NORMAL_LABEL);
listbox_rsid_errors->labelfont(0);
listbox_rsid_errors->labelsize(14);
listbox_rsid_errors->labelcolor(FL_FOREGROUND_COLOR);
listbox_rsid_errors->callback((Fl_Callback*)cb_listbox_rsid_errors);
listbox_rsid_errors->align(Fl_Align(FL_ALIGN_RIGHT));
listbox_rsid_errors->when(FL_WHEN_RELEASE);
listbox_rsid_errors->add(_("Low")); listbox_rsid_errors->add(_("Medium")); listbox_rsid_errors->add(_("High"));
listbox_rsid_errors->index(progdefaults.RsID_label_type);
o->labelsize(FL_NORMAL_SIZE);
listbox_rsid_errors->end();
} // Fl_ListBox* listbox_rsid_errors
{ Fl_Value_Slider2* o = sldrRSIDsquelch = new Fl_Value_Slider2(276, 233, 145, 22, _("Squelch open (sec)"));
sldrRSIDsquelch->tooltip(_("Open squelch for nn sec if RSID detected"));
sldrRSIDsquelch->type(1);
sldrRSIDsquelch->box(FL_DOWN_BOX);
sldrRSIDsquelch->color(FL_BACKGROUND_COLOR);
sldrRSIDsquelch->selection_color(FL_BACKGROUND_COLOR);
sldrRSIDsquelch->labeltype(FL_NORMAL_LABEL);
sldrRSIDsquelch->labelfont(0);
sldrRSIDsquelch->labelsize(14);
sldrRSIDsquelch->labelcolor(FL_FOREGROUND_COLOR);
sldrRSIDsquelch->maximum(20);
sldrRSIDsquelch->step(1);
sldrRSIDsquelch->textsize(14);
sldrRSIDsquelch->callback((Fl_Callback*)cb_sldrRSIDsquelch);
sldrRSIDsquelch->align(Fl_Align(FL_ALIGN_RIGHT));
sldrRSIDsquelch->when(FL_WHEN_CHANGED);
o->value(progdefaults.rsid_squelch);
o->labelsize(FL_NORMAL_SIZE); o->textsize(FL_NORMAL_SIZE);
} // Fl_Value_Slider2* sldrRSIDsquelch
{ Fl_Check_Button* o = chkRSidShowAlert = new Fl_Check_Button(276, 143, 203, 20, _("Disable alert dialog"));
chkRSidShowAlert->tooltip(_("Do not show RsID alert dialog box"));
chkRSidShowAlert->down_box(FL_DOWN_BOX);
chkRSidShowAlert->callback((Fl_Callback*)cb_chkRSidShowAlert);
o->value(progdefaults.disable_rsid_warning_dialog_box);
} // Fl_Check_Button* chkRSidShowAlert
{ Fl_Check_Button* o = chkRetainFreqLock = new Fl_Check_Button(276, 175, 203, 20, _("Retain tx freq lock"));
chkRetainFreqLock->tooltip(_("Retain TX lock frequency (Lk) when changing to RX RsID frequency"));
chkRetainFreqLock->down_box(FL_DOWN_BOX);
chkRetainFreqLock->callback((Fl_Callback*)cb_chkRetainFreqLock);
o->value(progdefaults.retain_freq_lock);
} // Fl_Check_Button* chkRetainFreqLock
{ Fl_Check_Button* o = chkDisableFreqChange = new Fl_Check_Button(276, 207, 203, 20, _("Disable freq change"));
chkDisableFreqChange->tooltip(_("Do not automatically change to RX RsID frequency"));
chkDisableFreqChange->down_box(FL_DOWN_BOX);
chkDisableFreqChange->callback((Fl_Callback*)cb_chkDisableFreqChange);
o->value(progdefaults.disable_rsid_freq_change);
} // Fl_Check_Button* chkDisableFreqChange
{ Fl_Group* o = new Fl_Group(216, 74, 330, 60, _("The RsID notification message contents and\ndisplay characteristics are confi\
gured on the\n\"Notifications\" configure dialog."));
o->box(FL_BORDER_BOX);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
o->end();
} // Fl_Group* o
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(32, 267, 265, 97, _("Pre-Signal Tone"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Counter* o = val_pretone = new Fl_Counter(88, 305, 140, 21, _("Seconds"));
val_pretone->tooltip(_("Use for triggering amplifier carrier detect"));
val_pretone->minimum(0);
val_pretone->maximum(10);
val_pretone->callback((Fl_Callback*)cb_val_pretone);
o->value(progdefaults.pretone);
} // Fl_Counter* val_pretone
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(300, 267, 265, 97, _("Reed-Solomon ID (Tx)"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ bRSIDTxModes = new Fl_Button(377, 294, 130, 24, _("Transmit modes"));
bRSIDTxModes->callback((Fl_Callback*)cb_bRSIDTxModes);
} // Fl_Button* bRSIDTxModes
{ Fl_Check_Button* o = btn_post_rsid = new Fl_Check_Button(377, 329, 97, 17, _("End of xmt ID"));
btn_post_rsid->tooltip(_("Add RsID signal to end of transmission"));
btn_post_rsid->down_box(FL_DOWN_BOX);
btn_post_rsid->callback((Fl_Callback*)cb_btn_post_rsid);
o->value(progdefaults.rsid_post);
} // Fl_Check_Button* btn_post_rsid
o->end();
} // Fl_Group* o
tabRsID->end();
} // Fl_Group* tabRsID
{ tabVideoID = new Fl_Group(0, 50, 600, 335, _("Video"));
tabVideoID->hide();
{ Fl_Group* o = new Fl_Group(32, 115, 536, 189, _("Video Preamble ID"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ btnsendid = new Fl_Check_Button(50, 149, 150, 20, _("Transmit mode ID"));
btnsendid->tooltip(_("Waterfall video ID"));
btnsendid->down_box(FL_DOWN_BOX);
btnsendid->callback((Fl_Callback*)cb_btnsendid);
} // Fl_Check_Button* btnsendid
{ Fl_Check_Button* o = btnsendvideotext = new Fl_Check_Button(50, 181, 155, 20, _("Transmit video text"));
btnsendvideotext->tooltip(_("Waterfall video text"));
btnsendvideotext->down_box(FL_DOWN_BOX);
btnsendvideotext->callback((Fl_Callback*)cb_btnsendvideotext);
o->value(progdefaults.sendtextid);
} // Fl_Check_Button* btnsendvideotext
{ Fl_Input2* o = valVideotext = new Fl_Input2(217, 179, 323, 24, _(":"));
valVideotext->tooltip(_("Limit to a few characters,\nas in CQEM or IOTA etc."));
valVideotext->box(FL_DOWN_BOX);
valVideotext->color(FL_BACKGROUND2_COLOR);
valVideotext->selection_color(FL_SELECTION_COLOR);
valVideotext->labeltype(FL_NORMAL_LABEL);
valVideotext->labelfont(0);
valVideotext->labelsize(14);
valVideotext->labelcolor(FL_FOREGROUND_COLOR);
valVideotext->callback((Fl_Callback*)cb_valVideotext);
valVideotext->align(Fl_Align(FL_ALIGN_LEFT));
valVideotext->when(FL_WHEN_RELEASE);
o->value(progdefaults.strTextid.c_str());
valVideotext->labelsize(FL_NORMAL_SIZE);
} // Fl_Input2* valVideotext
{ Fl_Check_Button* o = chkID_SMALL = new Fl_Check_Button(50, 213, 120, 20, _("Use small font"));
chkID_SMALL->tooltip(_("ON - small font\nOFF - large font"));
chkID_SMALL->down_box(FL_DOWN_BOX);
chkID_SMALL->value(1);
chkID_SMALL->callback((Fl_Callback*)cb_chkID_SMALL);
o->value(progdefaults.ID_SMALL);
} // Fl_Check_Button* chkID_SMALL
{ Fl_Value_Slider2* o = sldrVideowidth = new Fl_Value_Slider2(290, 211, 125, 24, _("Chars/Row:"));
sldrVideowidth->tooltip(_("Set the number of characters per row"));
sldrVideowidth->type(1);
sldrVideowidth->box(FL_DOWN_BOX);
sldrVideowidth->color(FL_BACKGROUND_COLOR);
sldrVideowidth->selection_color(FL_BACKGROUND_COLOR);
sldrVideowidth->labeltype(FL_NORMAL_LABEL);
sldrVideowidth->labelfont(0);
sldrVideowidth->labelsize(14);
sldrVideowidth->labelcolor(FL_FOREGROUND_COLOR);
sldrVideowidth->minimum(1);
sldrVideowidth->maximum(8);
sldrVideowidth->step(1);
sldrVideowidth->value(4);
sldrVideowidth->textsize(14);
sldrVideowidth->callback((Fl_Callback*)cb_sldrVideowidth);
sldrVideowidth->align(Fl_Align(FL_ALIGN_LEFT));
sldrVideowidth->when(FL_WHEN_CHANGED);
o->value(progdefaults.videowidth);
o->labelsize(FL_NORMAL_SIZE); o->textsize(FL_NORMAL_SIZE);
} // Fl_Value_Slider2* sldrVideowidth
{ Fl_Check_Button* o = btn_vidlimit = new Fl_Check_Button(50, 245, 110, 15, _("500 Hz limit"));
btn_vidlimit->down_box(FL_DOWN_BOX);
btn_vidlimit->callback((Fl_Callback*)cb_btn_vidlimit);
o->value(progdefaults.vidlimit);
} // Fl_Check_Button* btn_vidlimit
{ Fl_Check_Button* o = btn_vidmodelimit = new Fl_Check_Button(50, 273, 110, 15, _("Mode width limit"));
btn_vidmodelimit->down_box(FL_DOWN_BOX);
btn_vidmodelimit->callback((Fl_Callback*)cb_btn_vidmodelimit);
o->value(progdefaults.vidmodelimit);
} // Fl_Check_Button* btn_vidmodelimit
{ bVideoIDModes = new Fl_Button(420, 146, 120, 24, _("Video ID modes"));
bVideoIDModes->callback((Fl_Callback*)cb_bVideoIDModes);
} // Fl_Button* bVideoIDModes
o->end();
} // Fl_Group* o
tabVideoID->end();
} // Fl_Group* tabVideoID
{ tabCwID = new Fl_Group(0, 50, 600, 335, _("CW"));
{ sld = new Fl_Group(32, 146, 536, 127, _("CW Postamble ID"));
sld->box(FL_ENGRAVED_FRAME);
sld->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Check_Button* o = btnCWID = new Fl_Check_Button(139, 184, 140, 24, _("Transmit callsign"));
btnCWID->tooltip(_("Send Callsign in CW at end of every transmission"));
btnCWID->down_box(FL_DOWN_BOX);
btnCWID->callback((Fl_Callback*)cb_btnCWID);
o->value(progdefaults.CWid);
} // Fl_Check_Button* btnCWID
{ Fl_Value_Slider2* o = sldrCWIDwpm = new Fl_Value_Slider2(139, 227, 180, 20, _("Speed (WPM):"));
sldrCWIDwpm->tooltip(_("Send at this WPM"));
sldrCWIDwpm->type(1);
sldrCWIDwpm->box(FL_DOWN_BOX);
sldrCWIDwpm->color(FL_BACKGROUND_COLOR);
sldrCWIDwpm->selection_color(FL_BACKGROUND_COLOR);
sldrCWIDwpm->labeltype(FL_NORMAL_LABEL);
sldrCWIDwpm->labelfont(0);
sldrCWIDwpm->labelsize(14);
sldrCWIDwpm->labelcolor(FL_FOREGROUND_COLOR);
sldrCWIDwpm->minimum(15);
sldrCWIDwpm->maximum(40);
sldrCWIDwpm->step(1);
sldrCWIDwpm->value(18);
sldrCWIDwpm->textsize(14);
sldrCWIDwpm->callback((Fl_Callback*)cb_sldrCWIDwpm);
sldrCWIDwpm->align(Fl_Align(FL_ALIGN_TOP));
sldrCWIDwpm->when(FL_WHEN_CHANGED);
o->value(progdefaults.CWIDwpm);
o->labelsize(FL_NORMAL_SIZE); o->textsize(FL_NORMAL_SIZE);
} // Fl_Value_Slider2* sldrCWIDwpm
{ bCWIDModes = new Fl_Button(412, 184, 120, 24, _("CW ID modes"));
bCWIDModes->callback((Fl_Callback*)cb_bCWIDModes);
} // Fl_Button* bCWIDModes
sld->end();
} // Fl_Group* sld
tabCwID->end();
} // Fl_Group* tabCwID
tabsID->end();
} // Fl_Tabs* tabsID
tabID->end();
} // Fl_Group* tabID
{ tabMisc = new Fl_Group(0, 25, 600, 360, _("Misc"));
tabMisc->hide();
{ tabsMisc = new Fl_Tabs(0, 25, 600, 360);
tabsMisc->selection_color(FL_LIGHT1);
{ tabCPUspeed = new Fl_Group(0, 50, 600, 335, _("CPU"));
tabCPUspeed->hide();
{ Fl_Group* o = new Fl_Group(55, 75, 490, 51);
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Check_Button* o = chkSlowCpu = new Fl_Check_Button(201, 90, 225, 20, _("Slow CPU (less than 700MHz)"));
chkSlowCpu->tooltip(_("Enable if you\'re computer does not decode properly"));
chkSlowCpu->down_box(FL_DOWN_BOX);
chkSlowCpu->callback((Fl_Callback*)cb_chkSlowCpu);
o->value(progdefaults.slowcpu);
} // Fl_Check_Button* chkSlowCpu
o->end();
} // Fl_Group* o
tabCPUspeed->end();
} // Fl_Group* tabCPUspeed
{ tabNBEMS = new Fl_Group(0, 50, 600, 335, _("NBEMS"));
tabNBEMS->hide();
{ Fl_Group* o = new Fl_Group(50, 65, 500, 75, _("NBEMS data file interface"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Check_Button* o = chkAutoExtract = new Fl_Check_Button(104, 96, 75, 20, _("Enable"));
chkAutoExtract->tooltip(_("Extract files for use with external \"wrap / flmsg\" program"));
chkAutoExtract->down_box(FL_DOWN_BOX);
chkAutoExtract->callback((Fl_Callback*)cb_chkAutoExtract);
o->value(progdefaults.autoextract);
} // Fl_Check_Button* chkAutoExtract
{ Fl_Check_Button* o = chk_open_wrap_folder = new Fl_Check_Button(310, 96, 146, 20, _("Open message folder"));
chk_open_wrap_folder->tooltip(_("Opens NBEMS file folder upon successful capture"));
chk_open_wrap_folder->down_box(FL_DOWN_BOX);
chk_open_wrap_folder->callback((Fl_Callback*)cb_chk_open_wrap_folder);
o->value(progdefaults.open_nbems_folder);
} // Fl_Check_Button* chk_open_wrap_folder
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(50, 141, 500, 130, _("Reception of flmsg files"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Check_Button* o = chk_open_flmsg = new Fl_Check_Button(104, 168, 136, 20, _("Open with flmsg"));
chk_open_flmsg->tooltip(_("Open message with flmsg"));
chk_open_flmsg->down_box(FL_DOWN_BOX);
chk_open_flmsg->callback((Fl_Callback*)cb_chk_open_flmsg);
o->value(progdefaults.open_flmsg);
} // Fl_Check_Button* chk_open_flmsg
{ Fl_Check_Button* o = chk_open_flmsg_print = new Fl_Check_Button(310, 168, 136, 20, _("Open in browser"));
chk_open_flmsg_print->tooltip(_("Open file with default browser"));
chk_open_flmsg_print->down_box(FL_DOWN_BOX);
chk_open_flmsg_print->callback((Fl_Callback*)cb_chk_open_flmsg_print);
o->value(progdefaults.open_flmsg_print);
} // Fl_Check_Button* chk_open_flmsg_print
{ Fl_Input2* o = txt_flmsg_pathname = new Fl_Input2(104, 199, 330, 24, _("flmsg:"));
txt_flmsg_pathname->tooltip(_("Enter full path-filename for flmsg"));
txt_flmsg_pathname->box(FL_DOWN_BOX);
txt_flmsg_pathname->color(FL_BACKGROUND2_COLOR);
txt_flmsg_pathname->selection_color(FL_SELECTION_COLOR);
txt_flmsg_pathname->labeltype(FL_NORMAL_LABEL);
txt_flmsg_pathname->labelfont(0);
txt_flmsg_pathname->labelsize(14);
txt_flmsg_pathname->labelcolor(FL_FOREGROUND_COLOR);
txt_flmsg_pathname->callback((Fl_Callback*)cb_txt_flmsg_pathname);
txt_flmsg_pathname->align(Fl_Align(FL_ALIGN_LEFT));
txt_flmsg_pathname->when(FL_WHEN_CHANGED);
o->value(progdefaults.flmsg_pathname.c_str());
} // Fl_Input2* txt_flmsg_pathname
{ btn_select_flmsg = new Fl_Button(441, 199, 100, 24, _("Locate flmsg"));
btn_select_flmsg->tooltip(_("Locate flmsg executable"));
btn_select_flmsg->callback((Fl_Callback*)cb_btn_select_flmsg);
} // Fl_Button* btn_select_flmsg
{ Fl_Value_Slider* o = sldr_extract_timeout = new Fl_Value_Slider(70, 237, 364, 21, _("Timeout (secs)"));
sldr_extract_timeout->tooltip(_("Extract times out after NN seconds of inactivity."));
sldr_extract_timeout->type(5);
sldr_extract_timeout->color(FL_LIGHT3);
sldr_extract_timeout->selection_color(FL_FOREGROUND_COLOR);
sldr_extract_timeout->minimum(1);
sldr_extract_timeout->maximum(10);
sldr_extract_timeout->step(0.5);
sldr_extract_timeout->value(4);
sldr_extract_timeout->textsize(14);
sldr_extract_timeout->callback((Fl_Callback*)cb_sldr_extract_timeout);
sldr_extract_timeout->align(Fl_Align(FL_ALIGN_RIGHT));
o->value(progdefaults.extract_timeout);
} // Fl_Value_Slider* sldr_extract_timeout
o->end();
} // Fl_Group* o
tabNBEMS->end();
} // Fl_Group* tabNBEMS
{ tabPskmail = new Fl_Group(0, 50, 600, 335, _("Pskmail"));
tabPskmail->align(Fl_Align(FL_ALIGN_TOP_LEFT));
tabPskmail->hide();
{ Fl_Group* o = new Fl_Group(55, 58, 490, 174, _("Mail Server Attributes"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Counter2* o = cntServerCarrier = new Fl_Counter2(106, 86, 80, 20, _("Carrier frequency (Hz)"));
cntServerCarrier->tooltip(_("Default listen / transmit frequency"));
cntServerCarrier->type(1);
cntServerCarrier->box(FL_UP_BOX);
cntServerCarrier->color(FL_BACKGROUND_COLOR);
cntServerCarrier->selection_color(FL_INACTIVE_COLOR);
cntServerCarrier->labeltype(FL_NORMAL_LABEL);
cntServerCarrier->labelfont(0);
cntServerCarrier->labelsize(14);
cntServerCarrier->labelcolor(FL_FOREGROUND_COLOR);
cntServerCarrier->minimum(500);
cntServerCarrier->maximum(2500);
cntServerCarrier->step(25);
cntServerCarrier->value(1500);
cntServerCarrier->callback((Fl_Callback*)cb_cntServerCarrier);
cntServerCarrier->align(Fl_Align(FL_ALIGN_RIGHT));
cntServerCarrier->when(FL_WHEN_CHANGED);
o->value(progdefaults.ServerCarrier);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Counter2* cntServerCarrier
{ Fl_Counter2* o = cntServerOffset = new Fl_Counter2(106, 123, 80, 20, _("Search range (Hz)"));
cntServerOffset->tooltip(_("Listen for signals within this range"));
cntServerOffset->type(1);
cntServerOffset->box(FL_UP_BOX);
cntServerOffset->color(FL_BACKGROUND_COLOR);
cntServerOffset->selection_color(FL_INACTIVE_COLOR);
cntServerOffset->labeltype(FL_NORMAL_LABEL);
cntServerOffset->labelfont(0);
cntServerOffset->labelsize(14);
cntServerOffset->labelcolor(FL_FOREGROUND_COLOR);
cntServerOffset->minimum(10);
cntServerOffset->maximum(500);
cntServerOffset->step(10);
cntServerOffset->value(100);
cntServerOffset->callback((Fl_Callback*)cb_cntServerOffset);
cntServerOffset->align(Fl_Align(FL_ALIGN_RIGHT));
cntServerOffset->when(FL_WHEN_CHANGED);
o->value(progdefaults.SearchRange);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Counter2* cntServerOffset
{ Fl_Counter2* o = cntServerACQsn = new Fl_Counter2(106, 160, 80, 20, _("Acquisition S/N (dB)"));
cntServerACQsn->tooltip(_("Capture signals over this threshold"));
cntServerACQsn->type(1);
cntServerACQsn->box(FL_UP_BOX);
cntServerACQsn->color(FL_BACKGROUND_COLOR);
cntServerACQsn->selection_color(FL_INACTIVE_COLOR);
cntServerACQsn->labeltype(FL_NORMAL_LABEL);
cntServerACQsn->labelfont(0);
cntServerACQsn->labelsize(14);
cntServerACQsn->labelcolor(FL_FOREGROUND_COLOR);
cntServerACQsn->minimum(3);
cntServerACQsn->maximum(20);
cntServerACQsn->step(1);
cntServerACQsn->value(6);
cntServerACQsn->callback((Fl_Callback*)cb_cntServerACQsn);
cntServerACQsn->align(Fl_Align(FL_ALIGN_RIGHT));
cntServerACQsn->when(FL_WHEN_CHANGED);
o->value(progdefaults.ServerACQsn);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Counter2* cntServerACQsn
{ Fl_Counter2* o = cntServerAFCrange = new Fl_Counter2(106, 197, 80, 20, _("AFC range (Hz)"));
cntServerAFCrange->tooltip(_("Limit AFC movement to this range"));
cntServerAFCrange->type(1);
cntServerAFCrange->box(FL_UP_BOX);
cntServerAFCrange->color(FL_BACKGROUND_COLOR);
cntServerAFCrange->selection_color(FL_INACTIVE_COLOR);
cntServerAFCrange->labeltype(FL_NORMAL_LABEL);
cntServerAFCrange->labelfont(0);
cntServerAFCrange->labelsize(14);
cntServerAFCrange->labelcolor(FL_FOREGROUND_COLOR);
cntServerAFCrange->minimum(10);
cntServerAFCrange->maximum(500);
cntServerAFCrange->step(10);
cntServerAFCrange->value(25);
cntServerAFCrange->callback((Fl_Callback*)cb_cntServerAFCrange);
cntServerAFCrange->align(Fl_Align(FL_ALIGN_RIGHT));
cntServerAFCrange->when(FL_WHEN_CHANGED);
o->value(progdefaults.SearchRange);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Counter2* cntServerAFCrange
{ Fl_Check_Button* o = btnPSKmailSweetSpot = new Fl_Check_Button(361, 86, 142, 20, _("Reset to Carrier"));
btnPSKmailSweetSpot->tooltip(_("When no signal present"));
btnPSKmailSweetSpot->down_box(FL_DOWN_BOX);
btnPSKmailSweetSpot->value(1);
btnPSKmailSweetSpot->callback((Fl_Callback*)cb_btnPSKmailSweetSpot);
o->value(progdefaults.PSKmailSweetSpot);
} // Fl_Check_Button* btnPSKmailSweetSpot
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(55, 234, 490, 131, _("General"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Check_Button* o = btn_arq_s2n_report = new Fl_Check_Button(80, 259, 250, 20, _("Report ARQ frames average S/N"));
btn_arq_s2n_report->down_box(FL_DOWN_BOX);
btn_arq_s2n_report->callback((Fl_Callback*)cb_btn_arq_s2n_report);
o->value(progdefaults.Pskmails2nreport);
} // Fl_Check_Button* btn_arq_s2n_report
o->end();
} // Fl_Group* o
tabPskmail->end();
} // Fl_Group* tabPskmail
{ tabSpot = new Fl_Group(0, 50, 600, 335, _("Spotting"));
tabSpot->hide();
{ Fl_Group* o = new Fl_Group(55, 72, 490, 254, _("PSK Reporter"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ btnPSKRepAuto = new Fl_Check_Button(65, 103, 324, 20, _("Automatically spot callsigns in decoded text"));
btnPSKRepAuto->tooltip(_("Parse all incoming text"));
btnPSKRepAuto->down_box(FL_DOWN_BOX);
btnPSKRepAuto->callback((Fl_Callback*)cb_btnPSKRepAuto);
btnPSKRepAuto->value(progdefaults.pskrep_auto);
} // Fl_Check_Button* btnPSKRepAuto
{ btnPSKRepLog = new Fl_Check_Button(65, 133, 327, 20, _("Send reception report when logging a QSO"));
btnPSKRepLog->tooltip(_("Send report only when QSO is logged"));
btnPSKRepLog->down_box(FL_DOWN_BOX);
btnPSKRepLog->callback((Fl_Callback*)cb_btnPSKRepLog);
btnPSKRepLog->value(progdefaults.pskrep_log);
} // Fl_Check_Button* btnPSKRepLog
{ btnPSKRepQRG = new Fl_Check_Button(65, 164, 416, 20, _("Report rig frequency (enable only if you have rig control!)"));
btnPSKRepQRG->tooltip(_("Include the transmit frequency"));
btnPSKRepQRG->down_box(FL_DOWN_BOX);
btnPSKRepQRG->callback((Fl_Callback*)cb_btnPSKRepQRG);
btnPSKRepQRG->value(progdefaults.pskrep_qrg);
} // Fl_Check_Button* btnPSKRepQRG
{ Fl_Check_Button* o = btn_report_when_visible = new Fl_Check_Button(65, 195, 416, 20, _("Disable spotting when signal browser(s) are not visible."));
btn_report_when_visible->tooltip(_("Check to reduce CPU load in PSK and RTTY modes."));
btn_report_when_visible->down_box(FL_DOWN_BOX);
btn_report_when_visible->value(1);
btn_report_when_visible->callback((Fl_Callback*)cb_btn_report_when_visible);
o->value(progdefaults.report_when_visible);
} // Fl_Check_Button* btn_report_when_visible
{ inpPSKRepHost = new Fl_Input2(108, 228, 220, 24, _("Host:"));
inpPSKRepHost->tooltip(_("To whom the connection is made"));
inpPSKRepHost->box(FL_DOWN_BOX);
inpPSKRepHost->color(FL_BACKGROUND2_COLOR);
inpPSKRepHost->selection_color(FL_SELECTION_COLOR);
inpPSKRepHost->labeltype(FL_NORMAL_LABEL);
inpPSKRepHost->labelfont(0);
inpPSKRepHost->labelsize(14);
inpPSKRepHost->labelcolor(FL_FOREGROUND_COLOR);
inpPSKRepHost->callback((Fl_Callback*)cb_inpPSKRepHost);
inpPSKRepHost->align(Fl_Align(FL_ALIGN_LEFT));
inpPSKRepHost->when(FL_WHEN_CHANGED);
inpPSKRepHost->value(progdefaults.pskrep_host.c_str());
inpPSKRepHost->labelsize(FL_NORMAL_SIZE);
} // Fl_Input2* inpPSKRepHost
{ inpPSKRepPort = new Fl_Input2(477, 228, 60, 24, _("Port:"));
inpPSKRepPort->tooltip(_("Using UDP port #"));
inpPSKRepPort->box(FL_DOWN_BOX);
inpPSKRepPort->color(FL_BACKGROUND2_COLOR);
inpPSKRepPort->selection_color(FL_SELECTION_COLOR);
inpPSKRepPort->labeltype(FL_NORMAL_LABEL);
inpPSKRepPort->labelfont(0);
inpPSKRepPort->labelsize(14);
inpPSKRepPort->labelcolor(FL_FOREGROUND_COLOR);
inpPSKRepPort->callback((Fl_Callback*)cb_inpPSKRepPort);
inpPSKRepPort->align(Fl_Align(FL_ALIGN_LEFT));
inpPSKRepPort->when(FL_WHEN_CHANGED);
inpPSKRepPort->value(progdefaults.pskrep_port.c_str());
inpPSKRepPort->labelsize(FL_NORMAL_SIZE);
} // Fl_Input2* inpPSKRepPort
{ btnPSKRepInit = new Fl_Button(457, 273, 80, 24, _("Initialize"));
btnPSKRepInit->tooltip(_("Initialize the socket client"));
btnPSKRepInit->callback((Fl_Callback*)cb_btnPSKRepInit);
} // Fl_Button* btnPSKRepInit
{ boxPSKRepMsg = new Fl_Box(67, 257, 300, 48, _("<PSK Reporter error message>"));
boxPSKRepMsg->labelfont(2);
boxPSKRepMsg->label(0);
} // Fl_Box* boxPSKRepMsg
o->end();
} // Fl_Group* o
tabSpot->end();
} // Fl_Group* tabSpot
{ tabSweetSpot = new Fl_Group(0, 50, 600, 335, _("Sweet Spot"));
tabSweetSpot->hide();
{ Fl_Group* o = new Fl_Group(55, 71, 490, 75);
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Value_Input2* o = valCWsweetspot = new Fl_Value_Input2(92, 82, 65, 20, _("CW"));
valCWsweetspot->tooltip(_("Default CW tracking point"));
valCWsweetspot->box(FL_DOWN_BOX);
valCWsweetspot->color(FL_BACKGROUND2_COLOR);
valCWsweetspot->selection_color(FL_SELECTION_COLOR);
valCWsweetspot->labeltype(FL_NORMAL_LABEL);
valCWsweetspot->labelfont(0);
valCWsweetspot->labelsize(14);
valCWsweetspot->labelcolor(FL_FOREGROUND_COLOR);
valCWsweetspot->minimum(200);
valCWsweetspot->maximum(4000);
valCWsweetspot->step(1);
valCWsweetspot->value(1000);
valCWsweetspot->callback((Fl_Callback*)cb_valCWsweetspot);
valCWsweetspot->align(Fl_Align(FL_ALIGN_LEFT));
valCWsweetspot->when(FL_WHEN_CHANGED);
o->value(progdefaults.CWsweetspot);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Value_Input2* valCWsweetspot
{ Fl_Value_Input2* o = valRTTYsweetspot = new Fl_Value_Input2(270, 82, 65, 20, _("RTTY"));
valRTTYsweetspot->tooltip(_("Default RTTY tracking point"));
valRTTYsweetspot->box(FL_DOWN_BOX);
valRTTYsweetspot->color(FL_BACKGROUND2_COLOR);
valRTTYsweetspot->selection_color(FL_SELECTION_COLOR);
valRTTYsweetspot->labeltype(FL_NORMAL_LABEL);
valRTTYsweetspot->labelfont(0);
valRTTYsweetspot->labelsize(14);
valRTTYsweetspot->labelcolor(FL_FOREGROUND_COLOR);
valRTTYsweetspot->minimum(200);
valRTTYsweetspot->maximum(4000);
valRTTYsweetspot->step(1);
valRTTYsweetspot->value(1000);
valRTTYsweetspot->callback((Fl_Callback*)cb_valRTTYsweetspot);
valRTTYsweetspot->align(Fl_Align(FL_ALIGN_LEFT));
valRTTYsweetspot->when(FL_WHEN_CHANGED);
o->value(progdefaults.RTTYsweetspot);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Value_Input2* valRTTYsweetspot
{ Fl_Value_Input2* o = valPSKsweetspot = new Fl_Value_Input2(470, 82, 65, 20, _("PSK et al."));
valPSKsweetspot->tooltip(_("Default for all other modems"));
valPSKsweetspot->box(FL_DOWN_BOX);
valPSKsweetspot->color(FL_BACKGROUND2_COLOR);
valPSKsweetspot->selection_color(FL_SELECTION_COLOR);
valPSKsweetspot->labeltype(FL_NORMAL_LABEL);
valPSKsweetspot->labelfont(0);
valPSKsweetspot->labelsize(14);
valPSKsweetspot->labelcolor(FL_FOREGROUND_COLOR);
valPSKsweetspot->minimum(200);
valPSKsweetspot->maximum(4000);
valPSKsweetspot->step(1);
valPSKsweetspot->value(1000);
valPSKsweetspot->callback((Fl_Callback*)cb_valPSKsweetspot);
valPSKsweetspot->align(Fl_Align(FL_ALIGN_LEFT));
valPSKsweetspot->when(FL_WHEN_CHANGED);
o->value(progdefaults.PSKsweetspot);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Value_Input2* valPSKsweetspot
{ Fl_Check_Button* o = btnStartAtSweetSpot = new Fl_Check_Button(65, 112, 348, 20, _("Always start new modems at these frequencies"));
btnStartAtSweetSpot->tooltip(_("ON - start at default\nOFF - keep current wf cursor position"));
btnStartAtSweetSpot->down_box(FL_DOWN_BOX);
btnStartAtSweetSpot->value(1);
btnStartAtSweetSpot->callback((Fl_Callback*)cb_btnStartAtSweetSpot);
o->value(progdefaults.StartAtSweetSpot);
} // Fl_Check_Button* btnStartAtSweetSpot
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(55, 151, 490, 60, _("K3 A1A configuation"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
o->hide();
{ Fl_Check_Button* o = btnCWIsLSB = new Fl_Check_Button(270, 172, 70, 15, _("CW is LSB"));
btnCWIsLSB->tooltip(_("Select this for Elecraft K3\nOther radios should not need it."));
btnCWIsLSB->down_box(FL_DOWN_BOX);
btnCWIsLSB->callback((Fl_Callback*)cb_btnCWIsLSB);
o->value(progdefaults.CWIsLSB);
} // Fl_Check_Button* btnCWIsLSB
o->end();
} // Fl_Group* o
tabSweetSpot->end();
} // Fl_Group* tabSweetSpot
{ tabText_IO = new Fl_Group(0, 50, 600, 335, _("Text i/o"));
tabText_IO->hide();
{ grpTalker = new Fl_Group(55, 132, 490, 73, _("Talker Socket (MS only)"));
grpTalker->box(FL_ENGRAVED_FRAME);
grpTalker->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ btnConnectTalker = new Fl_Light_Button(81, 152, 74, 20, _("Talker"));
btnConnectTalker->selection_color(FL_DARK_GREEN);
btnConnectTalker->callback((Fl_Callback*)cb_btnConnectTalker);
} // Fl_Light_Button* btnConnectTalker
{ Fl_Box* o = new Fl_Box(160, 152, 345, 20, _("Connect/disconnect to Talker socket server"));
o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
} // Fl_Box* o
{ Fl_Check_Button* o = btn_auto_talk = new Fl_Check_Button(81, 180, 391, 15, _("Auto connect when fldigi opens (server must be up)"));
btn_auto_talk->down_box(FL_DOWN_BOX);
btn_auto_talk->callback((Fl_Callback*)cb_btn_auto_talk);
o->value(progdefaults.auto_talk);
} // Fl_Check_Button* btn_auto_talk
grpTalker->end();
} // Fl_Group* grpTalker
{ Fl_Group* o = new Fl_Group(55, 72, 490, 56, _("Capture rx text to external file"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Check_Button* o = chkRxStream = new Fl_Check_Button(81, 99, 175, 20, _("Enable rx text stream"));
chkRxStream->tooltip(_("Send rx text to file: textout.txt"));
chkRxStream->down_box(FL_DOWN_BOX);
chkRxStream->callback((Fl_Callback*)cb_chkRxStream);
o->value(progdefaults.speak);
} // Fl_Check_Button* chkRxStream
o->end();
} // Fl_Group* o
tabText_IO->end();
} // Fl_Group* tabText_IO
{ tabDTMF = new Fl_Group(0, 50, 600, 335, _("DTMF"));
tabDTMF->hide();
{ Fl_Check_Button* o = chkDTMFdecode = new Fl_Check_Button(212, 103, 175, 20, _("Decode DTMF tones"));
chkDTMFdecode->tooltip(_("Decode received DTMF tones"));
chkDTMFdecode->down_box(FL_DOWN_BOX);
chkDTMFdecode->callback((Fl_Callback*)cb_chkDTMFdecode);
o->value(progdefaults.DTMFdecode);
} // Fl_Check_Button* chkDTMFdecode
tabDTMF->end();
} // Fl_Group* tabDTMF
{ tabWX = new Fl_Group(0, 50, 600, 335, _("WX"));
tabWX->hide();
{ Fl_Group* o = new Fl_Group(55, 60, 490, 300, _("Weather query specification"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Input* o = inpWXsta = new Fl_Input(94, 92, 43, 24, _("METAR station ID code"));
inpWXsta->tooltip(_("for example KMDQ for\nHuntsville-Madison Executive Airport, AL"));
inpWXsta->callback((Fl_Callback*)cb_inpWXsta);
inpWXsta->align(Fl_Align(FL_ALIGN_RIGHT));
o->value(progdefaults.wx_sta.c_str());
} // Fl_Input* inpWXsta
{ Fl_Check_Button* o = btn_wx_full = new Fl_Check_Button(258, 130, 70, 15, _("Full report"));
btn_wx_full->tooltip(_("Insert full METAR report"));
btn_wx_full->down_box(FL_DOWN_BOX);
btn_wx_full->callback((Fl_Callback*)cb_btn_wx_full);
o->value(progdefaults.wx_full);
} // Fl_Check_Button* btn_wx_full
{ Fl_Input* o = new Fl_Input(258, 156, 266, 25, _("End of header string:"));
o->tooltip(_("Text defining end of METAR header\nTypically \'Connection: close\'\nUsed to s\
earch for station name"));
o->callback((Fl_Callback*)cb_End);
o->when(FL_WHEN_CHANGED);
o->value(progdefaults.wx_eoh.c_str());
} // Fl_Input* o
{ Fl_Check_Button* o = btn_wx_station_name = new Fl_Check_Button(258, 192, 70, 15, _("METAR station location"));
btn_wx_station_name->tooltip(_("Add geopolitical name of METAR station"));
btn_wx_station_name->down_box(FL_DOWN_BOX);
btn_wx_station_name->callback((Fl_Callback*)cb_btn_wx_station_name);
o->value(progdefaults.wx_station_name);
} // Fl_Check_Button* btn_wx_station_name
{ Fl_Check_Button* o = btn_wx_condx = new Fl_Check_Button(258, 218, 70, 15, _("Conditions"));
btn_wx_condx->tooltip(_("current wx conditions"));
btn_wx_condx->down_box(FL_DOWN_BOX);
btn_wx_condx->callback((Fl_Callback*)cb_btn_wx_condx);
o->value(progdefaults.wx_condx);
} // Fl_Check_Button* btn_wx_condx
{ Fl_Check_Button* o = btn_wx_fahrenheit = new Fl_Check_Button(258, 245, 70, 15, _("Fahrenheit"));
btn_wx_fahrenheit->tooltip(_("report Fahrenheit"));
btn_wx_fahrenheit->down_box(FL_DOWN_BOX);
btn_wx_fahrenheit->callback((Fl_Callback*)cb_btn_wx_fahrenheit);
o->value(progdefaults.wx_fahrenheit);
} // Fl_Check_Button* btn_wx_fahrenheit
{ Fl_Check_Button* o = btn_wx_celsius = new Fl_Check_Button(386, 245, 70, 15, _("Celsius"));
btn_wx_celsius->tooltip(_("report Celsius"));
btn_wx_celsius->down_box(FL_DOWN_BOX);
btn_wx_celsius->callback((Fl_Callback*)cb_btn_wx_celsius);
o->value(progdefaults.wx_celsius);
} // Fl_Check_Button* btn_wx_celsius
{ Fl_Check_Button* o = btn_wx_mph = new Fl_Check_Button(258, 271, 70, 15, _("Miles / Hour"));
btn_wx_mph->tooltip(_("report miles per hour"));
btn_wx_mph->down_box(FL_DOWN_BOX);
btn_wx_mph->callback((Fl_Callback*)cb_btn_wx_mph);
o->value(progdefaults.wx_mph);
} // Fl_Check_Button* btn_wx_mph
{ Fl_Check_Button* o = btn_wx_kph = new Fl_Check_Button(386, 271, 70, 15, _("kilometers / hour"));
btn_wx_kph->tooltip(_("report kilometers per hour"));
btn_wx_kph->down_box(FL_DOWN_BOX);
btn_wx_kph->callback((Fl_Callback*)cb_btn_wx_kph);
o->value(progdefaults.wx_kph);
} // Fl_Check_Button* btn_wx_kph
{ Fl_Check_Button* o = btn_wx_inches = new Fl_Check_Button(258, 298, 70, 15, _("Inches Hg."));
btn_wx_inches->tooltip(_("report inches mercury"));
btn_wx_inches->down_box(FL_DOWN_BOX);
btn_wx_inches->callback((Fl_Callback*)cb_btn_wx_inches);
o->value(progdefaults.wx_inches);
} // Fl_Check_Button* btn_wx_inches
{ Fl_Check_Button* o = btn_wx_mbars = new Fl_Check_Button(386, 298, 70, 15, _("mbars"));
btn_wx_mbars->tooltip(_("report millibars"));
btn_wx_mbars->down_box(FL_DOWN_BOX);
btn_wx_mbars->callback((Fl_Callback*)cb_btn_wx_mbars);
o->value(progdefaults.wx_mbars);
} // Fl_Check_Button* btn_wx_mbars
{ Fl_Box* o = new Fl_Box(93, 245, 156, 19, _("Temperature"));
o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
} // Fl_Box* o
{ Fl_Box* o = new Fl_Box(93, 271, 156, 19, _("Wind speed/dir"));
o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
} // Fl_Box* o
{ Fl_Box* o = new Fl_Box(93, 298, 156, 19, _("Barometric pressure"));
o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
} // Fl_Box* o
{ btn_metar_search = new Fl_Button(336, 92, 130, 24, _("Search on web"));
btn_metar_search->callback((Fl_Callback*)cb_btn_metar_search);
} // Fl_Button* btn_metar_search
o->end();
} // Fl_Group* o
tabWX->end();
} // Fl_Group* tabWX
{ tabKML = new Fl_Group(0, 50, 600, 335, _("KML"));
{ Fl_Input* o = btnKmlSaveDir = new Fl_Input(26, 75, 390, 24, _("KML files directory"));
btnKmlSaveDir->tooltip(_("Where generated KML documents are stored."));
btnKmlSaveDir->callback((Fl_Callback*)cb_btnKmlSaveDir);
btnKmlSaveDir->align(Fl_Align(69));
o->value(progdefaults.kml_save_dir.c_str());
} // Fl_Input* btnKmlSaveDir
{ Fl_Input* o = inputKmlRootFile = new Fl_Input(25, 119, 300, 24, _("KML root file"));
inputKmlRootFile->align(Fl_Align(FL_ALIGN_TOP_LEFT));
o->value("fldigi.kml");
} // Fl_Input* inputKmlRootFile
{ Fl_Counter* o = cntKmlMergeDistance = new Fl_Counter(26, 155, 100, 24, _("Minimum distance for splitting aliases (Meters)"));
cntKmlMergeDistance->tooltip(_("Minimum distance for splitting alias nodes (Meters)"));
cntKmlMergeDistance->minimum(0);
cntKmlMergeDistance->maximum(100000);
cntKmlMergeDistance->step(10);
cntKmlMergeDistance->value(1000);
cntKmlMergeDistance->callback((Fl_Callback*)cb_cntKmlMergeDistance);
cntKmlMergeDistance->align(Fl_Align(FL_ALIGN_RIGHT));
o->value(progdefaults.kml_merge_distance);
o->lstep(1000);
} // Fl_Counter* cntKmlMergeDistance
{ Fl_Counter* o = cntKmlRetentionTime = new Fl_Counter(25, 191, 100, 24, _("Data retention time, in hours (0 for no limit)"));
cntKmlRetentionTime->tooltip(_("Number of hours data is kept for each node. Zero means keeping everything."));
cntKmlRetentionTime->minimum(0);
cntKmlRetentionTime->maximum(500);
cntKmlRetentionTime->step(1);
cntKmlRetentionTime->callback((Fl_Callback*)cb_cntKmlRetentionTime);
cntKmlRetentionTime->align(Fl_Align(FL_ALIGN_RIGHT));
o->value(progdefaults.kml_retention_time);
o->lstep(24);
} // Fl_Counter* cntKmlRetentionTime
{ Fl_Spinner2* o = cntKmlRefreshInterval = new Fl_Spinner2(24, 227, 50, 24, _("KML refresh interval (seconds)"));
cntKmlRefreshInterval->tooltip(_("Refresh time interval written in KML file (Seconds)"));
cntKmlRefreshInterval->box(FL_NO_BOX);
cntKmlRefreshInterval->color(FL_BACKGROUND_COLOR);
cntKmlRefreshInterval->selection_color(FL_BACKGROUND_COLOR);
cntKmlRefreshInterval->labeltype(FL_NORMAL_LABEL);
cntKmlRefreshInterval->labelfont(0);
cntKmlRefreshInterval->labelsize(14);
cntKmlRefreshInterval->labelcolor(FL_FOREGROUND_COLOR);
cntKmlRefreshInterval->value(10);
cntKmlRefreshInterval->callback((Fl_Callback*)cb_cntKmlRefreshInterval);
cntKmlRefreshInterval->align(Fl_Align(FL_ALIGN_RIGHT));
cntKmlRefreshInterval->when(FL_WHEN_RELEASE);
o->minimum(1); o->maximum(3600); o->step(1);
o->value(progdefaults.kml_refresh_interval);
o->labelsize(FL_NORMAL_SIZE);
} // Fl_Spinner2* cntKmlRefreshInterval
{ Fl_ListBox* o = listbox_kml_balloon_style = new Fl_ListBox(24, 263, 201, 24, _("KML balloon display style"));
listbox_kml_balloon_style->tooltip(_("KML balloon in plain text, or HTML, in plain tables or matrices."));
listbox_kml_balloon_style->box(FL_DOWN_BOX);
listbox_kml_balloon_style->color(FL_BACKGROUND2_COLOR);
listbox_kml_balloon_style->selection_color(FL_BACKGROUND_COLOR);
listbox_kml_balloon_style->labeltype(FL_NORMAL_LABEL);
listbox_kml_balloon_style->labelfont(0);
listbox_kml_balloon_style->labelsize(14);
listbox_kml_balloon_style->labelcolor(FL_FOREGROUND_COLOR);
listbox_kml_balloon_style->callback((Fl_Callback*)cb_listbox_kml_balloon_style);
listbox_kml_balloon_style->align(Fl_Align(FL_ALIGN_RIGHT));
listbox_kml_balloon_style->when(FL_WHEN_CHANGED);
o->add("Plain text|HTML tables|Single HTML matrix");o->index(progdefaults.kml_balloon_style);
o->labelsize(FL_NORMAL_SIZE);
listbox_kml_balloon_style->end();
} // Fl_ListBox* listbox_kml_balloon_style
{ Fl_Input* o = btnKmlCommand = new Fl_Input(24, 299, 246, 24, _("Command run on KML creation"));
btnKmlCommand->tooltip(_("Command started when KML files are generated. Subprocesses are started once, \
and restarted if needed."));
btnKmlCommand->callback((Fl_Callback*)cb_btnKmlCommand);
btnKmlCommand->align(Fl_Align(72));
o->value(progdefaults.kml_command.c_str());
} // Fl_Input* btnKmlCommand
{ btlTestKmlCommand = new Fl_Button(24, 335, 191, 24, _("Test command"));
btlTestKmlCommand->tooltip(_("Execute command on KML files."));
btlTestKmlCommand->callback((Fl_Callback*)cb_btlTestKmlCommand);
} // Fl_Button* btlTestKmlCommand
{ btnSelectKmlDestDir = new Fl_Button(425, 75, 101, 24, _("Change dir..."));
btnSelectKmlDestDir->tooltip(_("Choose directory to store KML documents"));
btnSelectKmlDestDir->callback((Fl_Callback*)cb_btnSelectKmlDestDir);
} // Fl_Button* btnSelectKmlDestDir
{ btlPurge = new Fl_Button(336, 119, 190, 24, _("Cleanup KML data now !"));
btlPurge->tooltip(_("Cleanups KML documents, empties Google Earth display."));
btlPurge->callback((Fl_Callback*)cb_btlPurge);
} // Fl_Button* btlPurge
{ Fl_Check_Button* o = btnKmlPurgeOnStartup = new Fl_Check_Button(322, 231, 172, 15, _("Cleanup on startup"));
btnKmlPurgeOnStartup->tooltip(_("Empties KML documents when starting program."));
btnKmlPurgeOnStartup->down_box(FL_DOWN_BOX);
btnKmlPurgeOnStartup->callback((Fl_Callback*)cb_btnKmlPurgeOnStartup);
o->value(progdefaults.kml_purge_on_startup);
} // Fl_Check_Button* btnKmlPurgeOnStartup
{ Fl_Group* o = new Fl_Group(283, 327, 310, 40);
o->box(FL_ENGRAVED_FRAME);
{ Fl_Check_Button* o = btn_kml_enabled = new Fl_Check_Button(305, 337, 242, 19, _("KML server enabled (On / Off)"));
btn_kml_enabled->tooltip(_("Uncheck if KML is never used"));
btn_kml_enabled->down_box(FL_DOWN_BOX);
btn_kml_enabled->callback((Fl_Callback*)cb_btn_kml_enabled);
o->value(progdefaults.kml_enabled);
} // Fl_Check_Button* btn_kml_enabled
o->end();
} // Fl_Group* o
tabKML->end();
} // Fl_Group* tabKML
tabsMisc->end();
} // Fl_Tabs* tabsMisc
tabMisc->end();
} // Fl_Group* tabMisc
{ tabQRZ = new Fl_Group(0, 25, 600, 360, _("Web"));
tabQRZ->tooltip(_("Callsign database"));
tabQRZ->hide();
{ tabsQRZ = new Fl_Tabs(0, 25, 600, 360);
{ Fl_Group* o = new Fl_Group(0, 50, 600, 335, _("Call Lookup"));
o->hide();
{ Fl_Group* o = new Fl_Group(34, 56, 538, 122, _("Web Browser lookup"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Round_Button* o = btnQRZWEBnotavailable = new Fl_Round_Button(77, 79, 337, 20, _("None"));
btnQRZWEBnotavailable->tooltip(_("Do not use callsign lookup via web browser"));
btnQRZWEBnotavailable->down_box(FL_DOWN_BOX);
btnQRZWEBnotavailable->value(1);
btnQRZWEBnotavailable->callback((Fl_Callback*)cb_btnQRZWEBnotavailable);
o->value(progdefaults.QRZWEB == QRZWEBNONE);
} // Fl_Round_Button* btnQRZWEBnotavailable
{ Fl_Round_Button* o = btnQRZonline = new Fl_Round_Button(77, 103, 337, 20, _("QRZ.............."));
btnQRZonline->tooltip(_("Visit QRZ web site"));
btnQRZonline->down_box(FL_DOWN_BOX);
btnQRZonline->callback((Fl_Callback*)cb_btnQRZonline);
o->value(progdefaults.QRZWEB == QRZHTML);
} // Fl_Round_Button* btnQRZonline
{ Fl_Round_Button* o = btnHAMCALLonline = new Fl_Round_Button(77, 127, 337, 20, _("HamCall......"));
btnHAMCALLonline->tooltip(_("Visit Hamcall web site"));
btnHAMCALLonline->down_box(FL_DOWN_BOX);
btnHAMCALLonline->callback((Fl_Callback*)cb_btnHAMCALLonline);
o->value(progdefaults.QRZWEB == HAMCALLHTML);
} // Fl_Round_Button* btnHAMCALLonline
{ Fl_Round_Button* o = btnHamQTHonline = new Fl_Round_Button(77, 151, 337, 20, _("HamQTH....."));
btnHamQTHonline->tooltip(_("Visit hamQTH web site"));
btnHamQTHonline->down_box(FL_DOWN_BOX);
btnHamQTHonline->callback((Fl_Callback*)cb_btnHamQTHonline);
o->value(progdefaults.QRZWEB == HAMQTHHTML);
} // Fl_Round_Button* btnHamQTHonline
{ Fl_Input2* o = inp_qrzurl = new Fl_Input2(185, 102, 369, 22);
inp_qrzurl->box(FL_DOWN_BOX);
inp_qrzurl->color(FL_BACKGROUND2_COLOR);
inp_qrzurl->selection_color(FL_SELECTION_COLOR);
inp_qrzurl->labeltype(FL_NORMAL_LABEL);
inp_qrzurl->labelfont(0);
inp_qrzurl->labelsize(14);
inp_qrzurl->labelcolor(FL_FOREGROUND_COLOR);
inp_qrzurl->callback((Fl_Callback*)cb_inp_qrzurl);
inp_qrzurl->align(Fl_Align(FL_ALIGN_LEFT));
inp_qrzurl->when(FL_WHEN_RELEASE);
o->value(progdefaults.qrzurl.c_str());
} // Fl_Input2* inp_qrzurl
{ Fl_Input2* o = inp_hamcallurl = new Fl_Input2(185, 126, 369, 22);
inp_hamcallurl->box(FL_DOWN_BOX);
inp_hamcallurl->color(FL_BACKGROUND2_COLOR);
inp_hamcallurl->selection_color(FL_SELECTION_COLOR);
inp_hamcallurl->labeltype(FL_NORMAL_LABEL);
inp_hamcallurl->labelfont(0);
inp_hamcallurl->labelsize(14);
inp_hamcallurl->labelcolor(FL_FOREGROUND_COLOR);
inp_hamcallurl->callback((Fl_Callback*)cb_inp_hamcallurl);
inp_hamcallurl->align(Fl_Align(FL_ALIGN_LEFT));
inp_hamcallurl->when(FL_WHEN_RELEASE);
o->value(progdefaults.hamcallurl.c_str());
} // Fl_Input2* inp_hamcallurl
{ Fl_Input2* o = inp_hamqthurl = new Fl_Input2(185, 150, 369, 22);
inp_hamqthurl->box(FL_DOWN_BOX);
inp_hamqthurl->color(FL_BACKGROUND2_COLOR);
inp_hamqthurl->selection_color(FL_SELECTION_COLOR);
inp_hamqthurl->labeltype(FL_NORMAL_LABEL);
inp_hamqthurl->labelfont(0);
inp_hamqthurl->labelsize(14);
inp_hamqthurl->labelcolor(FL_FOREGROUND_COLOR);
inp_hamqthurl->callback((Fl_Callback*)cb_inp_hamqthurl);
inp_hamqthurl->align(Fl_Align(FL_ALIGN_LEFT));
inp_hamqthurl->when(FL_WHEN_RELEASE);
o->value(progdefaults.hamqthurl.c_str());
} // Fl_Input2* inp_hamqthurl
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(34, 180, 538, 195, _("Data base lookup"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Round_Button* o = btnQRZXMLnotavailable = new Fl_Round_Button(77, 203, 64, 20, _("None"));
btnQRZXMLnotavailable->tooltip(_("Do not use callsign database"));
btnQRZXMLnotavailable->down_box(FL_DOWN_BOX);
btnQRZXMLnotavailable->value(1);
btnQRZXMLnotavailable->callback((Fl_Callback*)cb_btnQRZXMLnotavailable);
o->value(progdefaults.QRZXML == QRZXMLNONE);
} // Fl_Round_Button* btnQRZXMLnotavailable
{ Fl_Round_Button* o = btnQRZcdrom = new Fl_Round_Button(77, 238, 70, 20, _("QRZ cdrom"));
btnQRZcdrom->tooltip(_("Use CD or hard drive CD image"));
btnQRZcdrom->down_box(FL_DOWN_BOX);
btnQRZcdrom->callback((Fl_Callback*)cb_btnQRZcdrom);
o->value(progdefaults.QRZXML == QRZCD);
} // Fl_Round_Button* btnQRZcdrom
{ Fl_Round_Button* o = btnQRZsub = new Fl_Round_Button(77, 266, 126, 20, _("QRZ.com"));
btnQRZsub->tooltip(_("You need a paid QRZ online\nsubscription to access"));
btnQRZsub->down_box(FL_DOWN_BOX);
btnQRZsub->callback((Fl_Callback*)cb_btnQRZsub);
o->value(progdefaults.QRZXML == QRZNET);
} // Fl_Round_Button* btnQRZsub
{ Fl_Round_Button* o = btnHamcall = new Fl_Round_Button(77, 292, 126, 20, _("Hamcall.net"));
btnHamcall->tooltip(_("You need a paid Hamcall online\nsubscription to access"));
btnHamcall->down_box(FL_DOWN_BOX);
btnHamcall->callback((Fl_Callback*)cb_btnHamcall);
o->value(progdefaults.QRZXML == HAMCALLNET);
} // Fl_Round_Button* btnHamcall
{ Fl_Round_Button* o = btnHamQTH = new Fl_Round_Button(77, 318, 126, 20, _("HamQTH.com (free service http://www.hamqth.com)"));
btnHamQTH->tooltip(_("Free service courtesy of OK"));
btnHamQTH->down_box(FL_DOWN_BOX);
btnHamQTH->callback((Fl_Callback*)cb_btnHamQTH);
o->value(progdefaults.QRZXML == HAMQTH);
} // Fl_Round_Button* btnHamQTH
{ Fl_Round_Button* o = btnCALLOOK = new Fl_Round_Button(77, 345, 126, 20, _("Callook.info lookup (free service US callsigns only)"));
btnCALLOOK->tooltip(_("Visit Hamcall web site"));
btnCALLOOK->down_box(FL_DOWN_BOX);
btnCALLOOK->callback((Fl_Callback*)cb_btnCALLOOK);
o->value(progdefaults.QRZXML == CALLOOK);
} // Fl_Round_Button* btnCALLOOK
{ Fl_Input2* o = txtQRZpathname = new Fl_Input2(203, 237, 301, 22, _("at:"));
txtQRZpathname->tooltip(_("ie: /home/dave/CALLBK/ or C:/CALLBK/\nLeave blank to search for database"));
txtQRZpathname->box(FL_DOWN_BOX);
txtQRZpathname->color(FL_BACKGROUND2_COLOR);
txtQRZpathname->selection_color(FL_SELECTION_COLOR);
txtQRZpathname->labeltype(FL_NORMAL_LABEL);
txtQRZpathname->labelfont(0);
txtQRZpathname->labelsize(14);
txtQRZpathname->labelcolor(FL_FOREGROUND_COLOR);
txtQRZpathname->callback((Fl_Callback*)cb_txtQRZpathname);
txtQRZpathname->align(Fl_Align(FL_ALIGN_LEFT));
txtQRZpathname->when(FL_WHEN_RELEASE);
o->value(progdefaults.QRZpathname.c_str());
txtQRZpathname->labelsize(FL_NORMAL_SIZE);
} // Fl_Input2* txtQRZpathname
{ Fl_Input2* o = inpQRZusername = new Fl_Input2(286, 265, 150, 22, _("User name"));
inpQRZusername->tooltip(_("Your login name"));
inpQRZusername->box(FL_DOWN_BOX);
inpQRZusername->color(FL_BACKGROUND2_COLOR);
inpQRZusername->selection_color(FL_SELECTION_COLOR);
inpQRZusername->labeltype(FL_NORMAL_LABEL);
inpQRZusername->labelfont(0);
inpQRZusername->labelsize(14);
inpQRZusername->labelcolor(FL_FOREGROUND_COLOR);
inpQRZusername->callback((Fl_Callback*)cb_inpQRZusername);
inpQRZusername->align(Fl_Align(FL_ALIGN_LEFT));
inpQRZusername->when(FL_WHEN_RELEASE);
o->value(progdefaults.QRZusername.c_str());
inpQRZusername->labelsize(FL_NORMAL_SIZE);
} // Fl_Input2* inpQRZusername
{ Fl_Input2* o = inpQRZuserpassword = new Fl_Input2(286, 291, 150, 22, _("Password"));
inpQRZuserpassword->tooltip(_("Your login password"));
inpQRZuserpassword->box(FL_DOWN_BOX);
inpQRZuserpassword->color(FL_BACKGROUND2_COLOR);
inpQRZuserpassword->selection_color(FL_SELECTION_COLOR);
inpQRZuserpassword->labeltype(FL_NORMAL_LABEL);
inpQRZuserpassword->labelfont(0);
inpQRZuserpassword->labelsize(14);
inpQRZuserpassword->labelcolor(FL_FOREGROUND_COLOR);
inpQRZuserpassword->callback((Fl_Callback*)cb_inpQRZuserpassword);
inpQRZuserpassword->align(Fl_Align(FL_ALIGN_LEFT));
inpQRZuserpassword->when(FL_WHEN_RELEASE);
o->value(progdefaults.QRZuserpassword.c_str());
o->type(FL_SECRET_INPUT);
inpQRZuserpassword->labelsize(FL_NORMAL_SIZE);
} // Fl_Input2* inpQRZuserpassword
{ btnQRZpasswordShow = new Fl_Button(447, 292, 70, 20, _("Show"));
btnQRZpasswordShow->tooltip(_("Show password in plain text"));
btnQRZpasswordShow->callback((Fl_Callback*)cb_btnQRZpasswordShow);
} // Fl_Button* btnQRZpasswordShow
{ Fl_Group* o = new Fl_Group(195, 203, 371, 27);
o->box(FL_ENGRAVED_FRAME);
{ Fl_Check_Button* o = btn_notes_address = new Fl_Check_Button(207, 210, 207, 15, _("Add address to notes field"));
btn_notes_address->down_box(FL_DOWN_BOX);
btn_notes_address->callback((Fl_Callback*)cb_btn_notes_address);
o->value(progdefaults.notes_address);
} // Fl_Check_Button* btn_notes_address
{ Fl_Check_Button* o = btn_clear_notes = new Fl_Check_Button(434, 210, 122, 15, _("clear old data"));
btn_clear_notes->down_box(FL_DOWN_BOX);
btn_clear_notes->callback((Fl_Callback*)cb_btn_clear_notes);
o->value(progdefaults.clear_notes);
} // Fl_Check_Button* btn_clear_notes
o->end();
} // Fl_Group* o
o->end();
} // Fl_Group* o
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(0, 50, 600, 335, _("eQSL"));
{ Fl_Input2* o = inpEQSL_id = new Fl_Input2(225, 58, 150, 20, _("User ID"));
inpEQSL_id->tooltip(_("Your login name"));
inpEQSL_id->box(FL_DOWN_BOX);
inpEQSL_id->color(FL_BACKGROUND2_COLOR);
inpEQSL_id->selection_color(FL_SELECTION_COLOR);
inpEQSL_id->labeltype(FL_NORMAL_LABEL);
inpEQSL_id->labelfont(0);
inpEQSL_id->labelsize(14);
inpEQSL_id->labelcolor(FL_FOREGROUND_COLOR);
inpEQSL_id->callback((Fl_Callback*)cb_inpEQSL_id);
inpEQSL_id->align(Fl_Align(FL_ALIGN_LEFT));
inpEQSL_id->when(FL_WHEN_RELEASE);
o->value(progdefaults.eqsl_id.c_str());
inpEQSL_id->labelsize(FL_NORMAL_SIZE);
} // Fl_Input2* inpEQSL_id
{ Fl_Input2* o = inpEQSL_pwd = new Fl_Input2(225, 85, 150, 20, _("Password"));
inpEQSL_pwd->tooltip(_("Your login password"));
inpEQSL_pwd->box(FL_DOWN_BOX);
inpEQSL_pwd->color(FL_BACKGROUND2_COLOR);
inpEQSL_pwd->selection_color(FL_SELECTION_COLOR);
inpEQSL_pwd->labeltype(FL_NORMAL_LABEL);
inpEQSL_pwd->labelfont(0);
inpEQSL_pwd->labelsize(14);
inpEQSL_pwd->labelcolor(FL_FOREGROUND_COLOR);
inpEQSL_pwd->callback((Fl_Callback*)cb_inpEQSL_pwd);
inpEQSL_pwd->align(Fl_Align(FL_ALIGN_LEFT));
inpEQSL_pwd->when(FL_WHEN_RELEASE);
o->value(progdefaults.eqsl_pwd.c_str());
o->type(FL_SECRET_INPUT);
inpEQSL_pwd->labelsize(FL_NORMAL_SIZE);
} // Fl_Input2* inpEQSL_pwd
{ btnEQSL_pwd_show = new Fl_Button(395, 85, 70, 20, _("Show"));
btnEQSL_pwd_show->tooltip(_("Show password in plain text"));
btnEQSL_pwd_show->callback((Fl_Callback*)cb_btnEQSL_pwd_show);
} // Fl_Button* btnEQSL_pwd_show
{ Fl_Input2* o = inpEQSL_nick = new Fl_Input2(225, 114, 150, 20, _("QTH Nickname"));
inpEQSL_nick->tooltip(_("Your login name"));
inpEQSL_nick->box(FL_DOWN_BOX);
inpEQSL_nick->color(FL_BACKGROUND2_COLOR);
inpEQSL_nick->selection_color(FL_SELECTION_COLOR);
inpEQSL_nick->labeltype(FL_NORMAL_LABEL);
inpEQSL_nick->labelfont(0);
inpEQSL_nick->labelsize(14);
inpEQSL_nick->labelcolor(FL_FOREGROUND_COLOR);
inpEQSL_nick->callback((Fl_Callback*)cb_inpEQSL_nick);
inpEQSL_nick->align(Fl_Align(FL_ALIGN_LEFT));
inpEQSL_nick->when(FL_WHEN_RELEASE);
o->value(progdefaults.eqsl_nick.c_str());
inpEQSL_nick->labelsize(FL_NORMAL_SIZE);
} // Fl_Input2* inpEQSL_nick
{ Fl_Group* o = new Fl_Group(30, 141, 516, 223, _("Options"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Check_Button* o = btn_send_when_logged = new Fl_Check_Button(79, 166, 70, 15, _("send when logged (log button, <LOG>, <LNW>)"));
btn_send_when_logged->tooltip(_("automatic data upload"));
btn_send_when_logged->down_box(FL_DOWN_BOX);
btn_send_when_logged->callback((Fl_Callback*)cb_btn_send_when_logged);
o->value(progdefaults.eqsl_when_logged);
} // Fl_Check_Button* btn_send_when_logged
{ Fl_Input2* o = txt_eqsl_default_message = new Fl_Input2(83, 226, 451, 40, _("Default message"));
txt_eqsl_default_message->tooltip(_("default text to send with <LOG> etc"));
txt_eqsl_default_message->type(4);
txt_eqsl_default_message->box(FL_DOWN_BOX);
txt_eqsl_default_message->color(FL_BACKGROUND2_COLOR);
txt_eqsl_default_message->selection_color(FL_SELECTION_COLOR);
txt_eqsl_default_message->labeltype(FL_NORMAL_LABEL);
txt_eqsl_default_message->labelfont(0);
txt_eqsl_default_message->labelsize(14);
txt_eqsl_default_message->labelcolor(FL_FOREGROUND_COLOR);
txt_eqsl_default_message->callback((Fl_Callback*)cb_txt_eqsl_default_message);
txt_eqsl_default_message->align(Fl_Align(FL_ALIGN_TOP_LEFT));
txt_eqsl_default_message->when(FL_WHEN_CHANGED);
o->value(progdefaults.eqsl_default_message.c_str());
} // Fl_Input2* txt_eqsl_default_message
{ Fl_Group* o = new Fl_Group(30, 270, 513, 90, _("Text Tags (tags use {} delimiters)"));
o->box(FL_FLAT_BOX);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ eqsl_txt1 = new Fl_Box(32, 317, 220, 17, _(" {CALL} other ops call sign"));
eqsl_txt1->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
} // Fl_Box* eqsl_txt1
{ eqsl_txt2 = new Fl_Box(30, 336, 220, 17, _(" {MODE} full mode / submode"));
eqsl_txt2->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
} // Fl_Box* eqsl_txt2
{ eqsl_txt3 = new Fl_Box(278, 317, 220, 17, _("{NAME} other ops name"));
eqsl_txt3->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
} // Fl_Box* eqsl_txt3
{ new Fl_Box(68, 293, 440, 17, _("These tags can also be used in <EQSL:[message]>"));
} // Fl_Box* o
o->end();
} // Fl_Group* o
{ Fl_Check_Button* o = btn_send_datetime_off = new Fl_Check_Button(80, 188, 70, 15, _("Use date/time off for log entry"));
btn_send_datetime_off->tooltip(_("default uses date/time on"));
btn_send_datetime_off->down_box(FL_DOWN_BOX);
btn_send_datetime_off->callback((Fl_Callback*)cb_btn_send_datetime_off);
o->value(progdefaults.eqsl_datetime_off);
} // Fl_Check_Button* btn_send_datetime_off
o->end();
} // Fl_Group* o
o->end();
} // Fl_Group* o
tabsQRZ->end();
} // Fl_Tabs* tabsQRZ
tabQRZ->end();
} // Fl_Group* tabQRZ
{ tabAutoStart = new Fl_Group(0, 25, 600, 360, _("Autostart"));
tabAutoStart->tooltip(_("Operator information"));
tabAutoStart->callback((Fl_Callback*)cb_tabAutoStart);
tabAutoStart->when(FL_WHEN_CHANGED);
tabAutoStart->hide();
{ Fl_Group* o = new Fl_Group(2, 32, 596, 335, _("Auto start programs with fldigi"));
o->box(FL_ENGRAVED_BOX);
o->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE));
{ Fl_Input2* o = txt_auto_flrig_pathname = new Fl_Input2(63, 71, 310, 24, _("flrig:"));
txt_auto_flrig_pathname->tooltip(_("Enter full path-filename for flrig"));
txt_auto_flrig_pathname->box(FL_DOWN_BOX);
txt_auto_flrig_pathname->color(FL_BACKGROUND2_COLOR);
txt_auto_flrig_pathname->selection_color(FL_SELECTION_COLOR);
txt_auto_flrig_pathname->labeltype(FL_NORMAL_LABEL);
txt_auto_flrig_pathname->labelfont(0);
txt_auto_flrig_pathname->labelsize(14);
txt_auto_flrig_pathname->labelcolor(FL_FOREGROUND_COLOR);
txt_auto_flrig_pathname->callback((Fl_Callback*)cb_txt_auto_flrig_pathname);
txt_auto_flrig_pathname->align(Fl_Align(FL_ALIGN_LEFT));
txt_auto_flrig_pathname->when(FL_WHEN_CHANGED);
o->value(progdefaults.auto_flrig_pathname.c_str());
} // Fl_Input2* txt_auto_flrig_pathname
{ btn_select_flrig = new Fl_Button(395, 71, 70, 24, _("Locate"));
btn_select_flrig->tooltip(_("Locate flrig executable"));
btn_select_flrig->callback((Fl_Callback*)cb_btn_select_flrig);
} // Fl_Button* btn_select_flrig
{ Fl_Input2* o = txt_auto_flamp_pathname = new Fl_Input2(63, 109, 310, 24, _("flamp:"));
txt_auto_flamp_pathname->tooltip(_("Enter full path-filename for flamp"));
txt_auto_flamp_pathname->box(FL_DOWN_BOX);
txt_auto_flamp_pathname->color(FL_BACKGROUND2_COLOR);
txt_auto_flamp_pathname->selection_color(FL_SELECTION_COLOR);
txt_auto_flamp_pathname->labeltype(FL_NORMAL_LABEL);
txt_auto_flamp_pathname->labelfont(0);
txt_auto_flamp_pathname->labelsize(14);
txt_auto_flamp_pathname->labelcolor(FL_FOREGROUND_COLOR);
txt_auto_flamp_pathname->callback((Fl_Callback*)cb_txt_auto_flamp_pathname);
txt_auto_flamp_pathname->align(Fl_Align(FL_ALIGN_LEFT));
txt_auto_flamp_pathname->when(FL_WHEN_CHANGED);
o->value(progdefaults.auto_flamp_pathname.c_str());
} // Fl_Input2* txt_auto_flamp_pathname
{ btn_select_auto_flamp = new Fl_Button(395, 109, 70, 24, _("Locate"));
btn_select_auto_flamp->tooltip(_("Locate flamp executable"));
btn_select_auto_flamp->callback((Fl_Callback*)cb_btn_select_auto_flamp);
} // Fl_Button* btn_select_auto_flamp
{ Fl_Input2* o = txt_auto_flnet_pathname = new Fl_Input2(63, 147, 310, 24, _("flnet:"));
txt_auto_flnet_pathname->tooltip(_("Enter full path-filename for flnet"));
txt_auto_flnet_pathname->box(FL_DOWN_BOX);
txt_auto_flnet_pathname->color(FL_BACKGROUND2_COLOR);
txt_auto_flnet_pathname->selection_color(FL_SELECTION_COLOR);
txt_auto_flnet_pathname->labeltype(FL_NORMAL_LABEL);
txt_auto_flnet_pathname->labelfont(0);
txt_auto_flnet_pathname->labelsize(14);
txt_auto_flnet_pathname->labelcolor(FL_FOREGROUND_COLOR);
txt_auto_flnet_pathname->callback((Fl_Callback*)cb_txt_auto_flnet_pathname);
txt_auto_flnet_pathname->align(Fl_Align(FL_ALIGN_LEFT));
txt_auto_flnet_pathname->when(FL_WHEN_CHANGED);
o->value(progdefaults.auto_flnet_pathname.c_str());
} // Fl_Input2* txt_auto_flnet_pathname
{ btn_select_auto_flnet = new Fl_Button(395, 147, 70, 24, _("Locate"));
btn_select_auto_flnet->tooltip(_("Locate flnet executable"));
btn_select_auto_flnet->callback((Fl_Callback*)cb_btn_select_auto_flnet);
} // Fl_Button* btn_select_auto_flnet
{ Fl_Input2* o = txt_auto_fllog_pathname = new Fl_Input2(63, 186, 310, 24, _("fllog:"));
txt_auto_fllog_pathname->tooltip(_("Enter full path-filename for fllog"));
txt_auto_fllog_pathname->box(FL_DOWN_BOX);
txt_auto_fllog_pathname->color(FL_BACKGROUND2_COLOR);
txt_auto_fllog_pathname->selection_color(FL_SELECTION_COLOR);
txt_auto_fllog_pathname->labeltype(FL_NORMAL_LABEL);
txt_auto_fllog_pathname->labelfont(0);
txt_auto_fllog_pathname->labelsize(14);
txt_auto_fllog_pathname->labelcolor(FL_FOREGROUND_COLOR);
txt_auto_fllog_pathname->callback((Fl_Callback*)cb_txt_auto_fllog_pathname);
txt_auto_fllog_pathname->align(Fl_Align(FL_ALIGN_LEFT));
txt_auto_fllog_pathname->when(FL_WHEN_CHANGED);
o->value(progdefaults.auto_fllog_pathname.c_str());
} // Fl_Input2* txt_auto_fllog_pathname
{ btn_select_fllog = new Fl_Button(395, 186, 70, 24, _("Locate"));
btn_select_fllog->tooltip(_("Locate fllog executable"));
btn_select_fllog->callback((Fl_Callback*)cb_btn_select_fllog);
} // Fl_Button* btn_select_fllog
{ Fl_Input2* o = txt_auto_prog1_pathname = new Fl_Input2(63, 224, 310, 24, _("Prog 1:"));
txt_auto_prog1_pathname->tooltip(_("Enter full path-filename for external program"));
txt_auto_prog1_pathname->box(FL_DOWN_BOX);
txt_auto_prog1_pathname->color(FL_BACKGROUND2_COLOR);
txt_auto_prog1_pathname->selection_color(FL_SELECTION_COLOR);
txt_auto_prog1_pathname->labeltype(FL_NORMAL_LABEL);
txt_auto_prog1_pathname->labelfont(0);
txt_auto_prog1_pathname->labelsize(14);
txt_auto_prog1_pathname->labelcolor(FL_FOREGROUND_COLOR);
txt_auto_prog1_pathname->callback((Fl_Callback*)cb_txt_auto_prog1_pathname);
txt_auto_prog1_pathname->align(Fl_Align(FL_ALIGN_LEFT));
txt_auto_prog1_pathname->when(FL_WHEN_CHANGED);
o->value(progdefaults.auto_prog1_pathname.c_str());
} // Fl_Input2* txt_auto_prog1_pathname
{ btn_select_prog1 = new Fl_Button(395, 224, 70, 24, _("Locate"));
btn_select_prog1->tooltip(_("Locate program #1 executable"));
btn_select_prog1->callback((Fl_Callback*)cb_btn_select_prog1);
} // Fl_Button* btn_select_prog1
{ Fl_Input2* o = txt_auto_prog2_pathname = new Fl_Input2(63, 262, 310, 24, _("Prog 2:"));
txt_auto_prog2_pathname->tooltip(_("Enter full path-filename for external program"));
txt_auto_prog2_pathname->box(FL_DOWN_BOX);
txt_auto_prog2_pathname->color(FL_BACKGROUND2_COLOR);
txt_auto_prog2_pathname->selection_color(FL_SELECTION_COLOR);
txt_auto_prog2_pathname->labeltype(FL_NORMAL_LABEL);
txt_auto_prog2_pathname->labelfont(0);
txt_auto_prog2_pathname->labelsize(14);
txt_auto_prog2_pathname->labelcolor(FL_FOREGROUND_COLOR);
txt_auto_prog2_pathname->callback((Fl_Callback*)cb_txt_auto_prog2_pathname);
txt_auto_prog2_pathname->align(Fl_Align(FL_ALIGN_LEFT));
txt_auto_prog2_pathname->when(FL_WHEN_CHANGED);
o->value(progdefaults.auto_prog2_pathname.c_str());
} // Fl_Input2* txt_auto_prog2_pathname
{ btn_select_prog2 = new Fl_Button(395, 262, 70, 24, _("Locate"));
btn_select_prog2->tooltip(_("Locate program #2 executable"));
btn_select_prog2->callback((Fl_Callback*)cb_btn_select_prog2);
} // Fl_Button* btn_select_prog2
{ Fl_Input2* o = txt_auto_prog3_pathname = new Fl_Input2(63, 301, 310, 24, _("Prog 3:"));
txt_auto_prog3_pathname->tooltip(_("Enter full path-filename for external program"));
txt_auto_prog3_pathname->box(FL_DOWN_BOX);
txt_auto_prog3_pathname->color(FL_BACKGROUND2_COLOR);
txt_auto_prog3_pathname->selection_color(FL_SELECTION_COLOR);
txt_auto_prog3_pathname->labeltype(FL_NORMAL_LABEL);
txt_auto_prog3_pathname->labelfont(0);
txt_auto_prog3_pathname->labelsize(14);
txt_auto_prog3_pathname->labelcolor(FL_FOREGROUND_COLOR);
txt_auto_prog3_pathname->callback((Fl_Callback*)cb_txt_auto_prog3_pathname);
txt_auto_prog3_pathname->align(Fl_Align(FL_ALIGN_LEFT));
txt_auto_prog3_pathname->when(FL_WHEN_CHANGED);
o->value(progdefaults.auto_prog3_pathname.c_str());
} // Fl_Input2* txt_auto_prog3_pathname
{ btn_select_prog3 = new Fl_Button(395, 301, 70, 24, _("Locate"));
btn_select_prog3->tooltip(_("Locate program #3 executable"));
btn_select_prog3->callback((Fl_Callback*)cb_btn_select_prog3);
} // Fl_Button* btn_select_prog3
{ Fl_Check_Button* o = btn_flrig_auto_enable = new Fl_Check_Button(475, 75, 19, 15, _("Enable\n-"));
btn_flrig_auto_enable->tooltip(_("Enable this entry when fldigi first starts"));
btn_flrig_auto_enable->down_box(FL_DOWN_BOX);
btn_flrig_auto_enable->callback((Fl_Callback*)cb_btn_flrig_auto_enable);
btn_flrig_auto_enable->align(Fl_Align(FL_ALIGN_TOP));
o->value(progdefaults.flrig_auto_enable);
} // Fl_Check_Button* btn_flrig_auto_enable
{ Fl_Check_Button* o = btn_flamp_auto_enable = new Fl_Check_Button(475, 113, 23, 15);
btn_flamp_auto_enable->tooltip(_("Enable this entry when fldigi first starts"));
btn_flamp_auto_enable->down_box(FL_DOWN_BOX);
btn_flamp_auto_enable->callback((Fl_Callback*)cb_btn_flamp_auto_enable);
o->value(progdefaults.flamp_auto_enable);
} // Fl_Check_Button* btn_flamp_auto_enable
{ Fl_Check_Button* o = btn_flnet_auto_enable = new Fl_Check_Button(475, 151, 23, 15);
btn_flnet_auto_enable->tooltip(_("Enable this entry when fldigi first starts"));
btn_flnet_auto_enable->down_box(FL_DOWN_BOX);
btn_flnet_auto_enable->callback((Fl_Callback*)cb_btn_flnet_auto_enable);
o->value(progdefaults.flnet_auto_enable);
} // Fl_Check_Button* btn_flnet_auto_enable
{ Fl_Check_Button* o = btn_fllog_auto_enable = new Fl_Check_Button(475, 190, 23, 15);
btn_fllog_auto_enable->tooltip(_("Enable this entry when fldigi first starts"));
btn_fllog_auto_enable->down_box(FL_DOWN_BOX);
btn_fllog_auto_enable->callback((Fl_Callback*)cb_btn_fllog_auto_enable);
o->value(progdefaults.fllog_auto_enable);
} // Fl_Check_Button* btn_fllog_auto_enable
{ Fl_Check_Button* o = btn_prog1_auto_enable = new Fl_Check_Button(475, 228, 23, 15);
btn_prog1_auto_enable->tooltip(_("Enable this entry when fldigi first starts"));
btn_prog1_auto_enable->down_box(FL_DOWN_BOX);
btn_prog1_auto_enable->callback((Fl_Callback*)cb_btn_prog1_auto_enable);
o->value(progdefaults.prog1_auto_enable);
} // Fl_Check_Button* btn_prog1_auto_enable
{ Fl_Check_Button* o = btn_prog2_auto_enable = new Fl_Check_Button(475, 266, 23, 15);
btn_prog2_auto_enable->tooltip(_("Enable this entry when fldigi first starts"));
btn_prog2_auto_enable->down_box(FL_DOWN_BOX);
btn_prog2_auto_enable->callback((Fl_Callback*)cb_btn_prog2_auto_enable);
o->value(progdefaults.prog2_auto_enable);
} // Fl_Check_Button* btn_prog2_auto_enable
{ Fl_Check_Button* o = btn_prog3_auto_enable = new Fl_Check_Button(475, 305, 23, 15);
btn_prog3_auto_enable->tooltip(_("Enable this entry when fldigi first starts"));
btn_prog3_auto_enable->down_box(FL_DOWN_BOX);
btn_prog3_auto_enable->callback((Fl_Callback*)cb_btn_prog3_auto_enable);
o->value(progdefaults.prog3_auto_enable);
} // Fl_Check_Button* btn_prog3_auto_enable
{ btn_test_flrig = new Fl_Button(505, 71, 70, 24, _("Test"));
btn_test_flrig->tooltip(_("Start flrig"));
btn_test_flrig->callback((Fl_Callback*)cb_btn_test_flrig);
} // Fl_Button* btn_test_flrig
{ btn_test_flamp = new Fl_Button(505, 109, 70, 24, _("Test"));
btn_test_flamp->tooltip(_("Start flamp"));
btn_test_flamp->callback((Fl_Callback*)cb_btn_test_flamp);
} // Fl_Button* btn_test_flamp
{ btn_test_flnet = new Fl_Button(505, 147, 70, 24, _("Test"));
btn_test_flnet->tooltip(_("Start flnet"));
btn_test_flnet->callback((Fl_Callback*)cb_btn_test_flnet);
} // Fl_Button* btn_test_flnet
{ btn_test_fllog = new Fl_Button(505, 186, 70, 24, _("Test"));
btn_test_fllog->tooltip(_("Start fllog"));
btn_test_fllog->callback((Fl_Callback*)cb_btn_test_fllog);
} // Fl_Button* btn_test_fllog
{ btn_test_prog1 = new Fl_Button(505, 224, 70, 24, _("Test"));
btn_test_prog1->tooltip(_("Start prog1"));
btn_test_prog1->callback((Fl_Callback*)cb_btn_test_prog1);
} // Fl_Button* btn_test_prog1
{ btn_test_prog2 = new Fl_Button(505, 262, 70, 24, _("Test"));
btn_test_prog2->tooltip(_("Start prog2"));
btn_test_prog2->callback((Fl_Callback*)cb_btn_test_prog2);
} // Fl_Button* btn_test_prog2
{ btn_test_prog3 = new Fl_Button(505, 301, 70, 24, _("Test"));
btn_test_prog3->tooltip(_("Start prog3"));
btn_test_prog3->callback((Fl_Callback*)cb_btn_test_prog3);
} // Fl_Button* btn_test_prog3
o->end();
} // Fl_Group* o
tabAutoStart->end();
} // Fl_Group* tabAutoStart
{ tabIO = new Fl_Group(0, 25, 600, 360, _("IO"));
tabIO->tooltip(_("Program to Program Communications"));
tabIO->callback((Fl_Callback*)cb_tabIO);
tabIO->hide();
{ Fl_Group* o = new Fl_Group(6, 34, 588, 102);
o->box(FL_ENGRAVED_BOX);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Check_Button* o = btnDisable_p2p_io_widgets = new Fl_Check_Button(12, 112, 85, 20, _("Lock"));
btnDisable_p2p_io_widgets->tooltip(_("Allow/Disallow Changes"));
btnDisable_p2p_io_widgets->down_box(FL_DOWN_BOX);
btnDisable_p2p_io_widgets->callback((Fl_Callback*)cb_btnDisable_p2p_io_widgets);
o->value(progStatus.ip_lock);
} // Fl_Check_Button* btnDisable_p2p_io_widgets
{ Fl_Check_Button* o = btnEnable_arq = new Fl_Check_Button(96, 112, 115, 20, _("Enable ARQ"));
btnEnable_arq->tooltip(_("Used For PSKMail and FLDIGI Suite of Programs"));
btnEnable_arq->type(102);
btnEnable_arq->down_box(FL_DOWN_BOX);
btnEnable_arq->callback((Fl_Callback*)cb_btnEnable_arq);
if(progdefaults.data_io_enabled == ARQ_IO) o->value(true);
progStatus.ip_lock ? o->deactivate() : o->activate();
} // Fl_Check_Button* btnEnable_arq
{ Fl_Check_Button* o = btnEnable_kiss = new Fl_Check_Button(221, 112, 115, 20, _("Enable KISS"));
btnEnable_kiss->tooltip(_("Used for BPQ32"));
btnEnable_kiss->type(102);
btnEnable_kiss->down_box(FL_DOWN_BOX);
btnEnable_kiss->callback((Fl_Callback*)cb_btnEnable_kiss);
if(progdefaults.data_io_enabled == KISS_IO) o->value(true);
progStatus.ip_lock ? o->deactivate() : o->activate();
} // Fl_Check_Button* btnEnable_kiss
{ Fl_Check_Button* o = btnEnable_ax25_decode = new Fl_Check_Button(346, 112, 115, 20, _("AX25 Decode"));
btnEnable_ax25_decode->tooltip(_("Decode AX25 Packets into human readable form"));
btnEnable_ax25_decode->down_box(FL_DOWN_BOX);
btnEnable_ax25_decode->callback((Fl_Callback*)cb_btnEnable_ax25_decode);
if(progdefaults.ax25_decode_enabled) o->value(true); else o->value(false);
progStatus.ip_lock ? o->deactivate() : o->activate();
} // Fl_Check_Button* btnEnable_ax25_decode
{ Fl_Check_Button* o = btnEnable_csma = new Fl_Check_Button(471, 112, 115, 20, _("Enable CSMA"));
btnEnable_csma->tooltip(_("Used for BPQ32"));
btnEnable_csma->down_box(FL_DOWN_BOX);
btnEnable_csma->callback((Fl_Callback*)cb_btnEnable_csma);
if(progdefaults.csma_enabled) o->value(true);
progStatus.ip_lock ? o->deactivate() : o->activate();
} // Fl_Check_Button* btnEnable_csma
{ new Fl_Box(8, 37, 582, 72, _("Enable ARQ for programs that support TCP and FLDIGI ARQ protocol.\nEnable KIS\
S for programs that supports TCP/UDP and TNC-2 KISS protocol.\nOnly one interf\
ace (ARQ/KISS) can be active at any given time.\nKISS/ARQ/XML Addr/Port change\
s require program restart."));
} // Fl_Box* o
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(6, 138, 588, 85, _("KISS"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Button* o = btnDefault_kiss_ip = new Fl_Button(425, 193, 73, 25, _("Default"));
btnDefault_kiss_ip->tooltip(_("Returns IP Address and port\nnumber to the default value."));
btnDefault_kiss_ip->callback((Fl_Callback*)cb_btnDefault_kiss_ip);
progStatus.ip_lock ? o->deactivate() : o->activate();
} // Fl_Button* btnDefault_kiss_ip
{ Fl_Input2* o = txtKiss_ip_address = new Fl_Input2(56, 193, 230, 25, _("Addr"));
txtKiss_ip_address->tooltip(_("IP Address for KISS interface\nIP Address format: nnn.nnn.nnn.nnn\nor name: i\
.e. localhost"));
txtKiss_ip_address->box(FL_DOWN_BOX);
txtKiss_ip_address->color(FL_BACKGROUND2_COLOR);
txtKiss_ip_address->selection_color(FL_SELECTION_COLOR);
txtKiss_ip_address->labeltype(FL_NORMAL_LABEL);
txtKiss_ip_address->labelfont(0);
txtKiss_ip_address->labelsize(14);
txtKiss_ip_address->labelcolor(FL_FOREGROUND_COLOR);
txtKiss_ip_address->callback((Fl_Callback*)cb_txtKiss_ip_address);
txtKiss_ip_address->align(Fl_Align(FL_ALIGN_RIGHT));
txtKiss_ip_address->when(FL_WHEN_CHANGED);
txtKiss_ip_address->labelsize(FL_NORMAL_SIZE);
o->value(progdefaults.kiss_address.c_str());
progStatus.ip_lock ? o->deactivate() : o->activate();
} // Fl_Input2* txtKiss_ip_address
{ Fl_Counter* o = cntKPSQLAttenuation = new Fl_Counter(56, 169, 110, 20, _("KPSQL Attenuate"));
cntKPSQLAttenuation->tooltip(_("Attenuation"));
cntKPSQLAttenuation->minimum(1);
cntKPSQLAttenuation->maximum(999);
cntKPSQLAttenuation->step(1);
cntKPSQLAttenuation->value(1);
cntKPSQLAttenuation->callback((Fl_Callback*)cb_cntKPSQLAttenuation);
cntKPSQLAttenuation->align(Fl_Align(FL_ALIGN_RIGHT));
o->value(progdefaults.kpsql_attenuation);
o->step(1,10);
update_kpsql_fractional_gain(progdefaults.kpsql_attenuation);
progStatus.ip_lock ? o->deactivate() : o->activate();
} // Fl_Counter* cntKPSQLAttenuation
{ Fl_Input2* o = txtKiss_ip_io_port_no = new Fl_Input2(333, 164, 55, 25, _("I/O"));
txtKiss_ip_io_port_no->tooltip(_("IP Address Port Number"));
txtKiss_ip_io_port_no->box(FL_DOWN_BOX);
txtKiss_ip_io_port_no->color(FL_BACKGROUND2_COLOR);
txtKiss_ip_io_port_no->selection_color(FL_SELECTION_COLOR);
txtKiss_ip_io_port_no->labeltype(FL_NORMAL_LABEL);
txtKiss_ip_io_port_no->labelfont(0);
txtKiss_ip_io_port_no->labelsize(14);
txtKiss_ip_io_port_no->labelcolor(FL_FOREGROUND_COLOR);
txtKiss_ip_io_port_no->callback((Fl_Callback*)cb_txtKiss_ip_io_port_no);
txtKiss_ip_io_port_no->align(Fl_Align(FL_ALIGN_RIGHT));
txtKiss_ip_io_port_no->when(FL_WHEN_CHANGED);
txtKiss_ip_io_port_no->labelsize(FL_NORMAL_SIZE);
o->value(progdefaults.kiss_io_port.c_str());
progStatus.ip_lock ? o->deactivate() : o->activate();
} // Fl_Input2* txtKiss_ip_io_port_no
{ Fl_Counter* o = cntBusyChannelSeconds = new Fl_Counter(56, 145, 110, 20, _("Continue"));
cntBusyChannelSeconds->tooltip(_("Continue after in seconds"));
cntBusyChannelSeconds->minimum(1);
cntBusyChannelSeconds->maximum(999);
cntBusyChannelSeconds->step(1);
cntBusyChannelSeconds->value(1);
cntBusyChannelSeconds->callback((Fl_Callback*)cb_cntBusyChannelSeconds);
cntBusyChannelSeconds->align(Fl_Align(FL_ALIGN_RIGHT));
o->value(progdefaults.busyChannelSeconds);
o->step(1,10);
progStatus.ip_lock ? o->deactivate() : o->activate();
} // Fl_Counter* cntBusyChannelSeconds
{ Fl_Check_Button* o = btnEnableBusyChannel = new Fl_Check_Button(331, 145, 65, 15, _("Busy"));
btnEnableBusyChannel->tooltip(_("Enable Busy Channel"));
btnEnableBusyChannel->down_box(FL_DOWN_BOX);
btnEnableBusyChannel->callback((Fl_Callback*)cb_btnEnableBusyChannel);
if(progdefaults.enableBusyChannel) o->value(true);
else o->value(false);
progStatus.ip_lock ? o->deactivate() : o->activate();
} // Fl_Check_Button* btnEnableBusyChannel
{ Fl_Input2* o = txtKiss_ip_out_port_no = new Fl_Input2(333, 193, 55, 25, _("O"));
txtKiss_ip_out_port_no->tooltip(_("Output port number when same IP address used"));
txtKiss_ip_out_port_no->box(FL_DOWN_BOX);
txtKiss_ip_out_port_no->color(FL_BACKGROUND2_COLOR);
txtKiss_ip_out_port_no->selection_color(FL_SELECTION_COLOR);
txtKiss_ip_out_port_no->labeltype(FL_NORMAL_LABEL);
txtKiss_ip_out_port_no->labelfont(0);
txtKiss_ip_out_port_no->labelsize(14);
txtKiss_ip_out_port_no->labelcolor(FL_FOREGROUND_COLOR);
txtKiss_ip_out_port_no->callback((Fl_Callback*)cb_txtKiss_ip_out_port_no);
txtKiss_ip_out_port_no->align(Fl_Align(FL_ALIGN_RIGHT));
txtKiss_ip_out_port_no->when(FL_WHEN_CHANGED);
txtKiss_ip_out_port_no->labelsize(FL_NORMAL_SIZE);
o->value(progdefaults.kiss_out_port.c_str());
progStatus.ip_lock ? o->deactivate() : o->activate();
} // Fl_Input2* txtKiss_ip_out_port_no
{ Fl_Check_Button* o = btnEnable_dual_port = new Fl_Check_Button(485, 169, 90, 16, _("Dual Port"));
btnEnable_dual_port->tooltip(_("Enable when both programs are using the same IP address"));
btnEnable_dual_port->down_box(FL_DOWN_BOX);
btnEnable_dual_port->callback((Fl_Callback*)cb_btnEnable_dual_port);
if(progdefaults.kiss_dual_port_enabled) o->value(true); else o->value(false);
progStatus.ip_lock ? o->deactivate() : o->activate();
} // Fl_Check_Button* btnEnable_dual_port
{ Fl_Button* o = btn_restart_kiss = new Fl_Button(505, 193, 82, 25, _("Restart"));
btn_restart_kiss->callback((Fl_Callback*)cb_btn_restart_kiss);
btn_restart_kiss->hide();
progStatus.ip_lock ? o->deactivate() : o->activate();
} // Fl_Button* btn_restart_kiss
{ Fl_Button* o = btn_connect_kiss_io = new Fl_Button(504, 193, 82, 25, _("Connect"));
btn_connect_kiss_io->tooltip(_("Return KISS TCP IO connection to a Listening state"));
btn_connect_kiss_io->callback((Fl_Callback*)cb_btn_connect_kiss_io);
(progStatus.ip_lock || !progStatus.kiss_tcp_io) ? o->deactivate() : o->activate();
} // Fl_Button* btn_connect_kiss_io
{ Fl_Check_Button* o = btnKissTCPIO = new Fl_Check_Button(425, 145, 60, 15, _("TCP"));
btnKissTCPIO->tooltip(_("Check to enable TCP/IP IO Connection"));
btnKissTCPIO->down_box(FL_DOWN_BOX);
btnKissTCPIO->callback((Fl_Callback*)cb_btnKissTCPIO);
if(progStatus.kiss_tcp_io) o->value(true); else o->value(false);
progStatus.ip_lock ? o->deactivate() : o->activate();
} // Fl_Check_Button* btnKissTCPIO
{ Fl_Check_Button* o = btnKissUDPIO = new Fl_Check_Button(425, 170, 60, 15, _("UDP"));
btnKissUDPIO->tooltip(_("Check to enable UDP/IP IO"));
btnKissUDPIO->down_box(FL_DOWN_BOX);
btnKissUDPIO->callback((Fl_Callback*)cb_btnKissUDPIO);
if(progStatus.kiss_tcp_io) o->value(true); else o->value(false);
progStatus.ip_lock ? o->deactivate() : o->activate();
} // Fl_Check_Button* btnKissUDPIO
{ Fl_Check_Button* o = btnKissTCPListen = new Fl_Check_Button(485, 145, 95, 15, _("Listen / Bind"));
btnKissTCPListen->tooltip(_("Monitor for TCP connection"));
btnKissTCPListen->down_box(FL_DOWN_BOX);
btnKissTCPListen->callback((Fl_Callback*)cb_btnKissTCPListen);
if(progStatus.kiss_tcp_listen) o->value(true); else o->value(false);
progStatus.ip_lock ? o->deactivate() : o->activate();
} // Fl_Check_Button* btnKissTCPListen
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(6, 225, 588, 35, _("ARQ"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Input2* o = txtArq_ip_address = new Fl_Input2(56, 229, 230, 25, _("Addr"));
txtArq_ip_address->tooltip(_("IP Address for ARQ interface\nIP Address format: nnn.nnn.nnn.nnn\nor name: i.\
e. localhost"));
txtArq_ip_address->box(FL_DOWN_BOX);
txtArq_ip_address->color(FL_BACKGROUND2_COLOR);
txtArq_ip_address->selection_color(FL_SELECTION_COLOR);
txtArq_ip_address->labeltype(FL_NORMAL_LABEL);
txtArq_ip_address->labelfont(0);
txtArq_ip_address->labelsize(14);
txtArq_ip_address->labelcolor(FL_FOREGROUND_COLOR);
txtArq_ip_address->callback((Fl_Callback*)cb_txtArq_ip_address);
txtArq_ip_address->align(Fl_Align(FL_ALIGN_RIGHT));
txtArq_ip_address->when(FL_WHEN_CHANGED);
o->labelsize(FL_NORMAL_SIZE);
o->value(progdefaults.arq_address.c_str());
progStatus.ip_lock ? o->deactivate() : o->activate();
} // Fl_Input2* txtArq_ip_address
{ Fl_Input2* o = txtArq_ip_port_no = new Fl_Input2(333, 229, 55, 25, _("Port"));
txtArq_ip_port_no->tooltip(_("IP Address Port Number"));
txtArq_ip_port_no->box(FL_DOWN_BOX);
txtArq_ip_port_no->color(FL_BACKGROUND2_COLOR);
txtArq_ip_port_no->selection_color(FL_SELECTION_COLOR);
txtArq_ip_port_no->labeltype(FL_NORMAL_LABEL);
txtArq_ip_port_no->labelfont(0);
txtArq_ip_port_no->labelsize(14);
txtArq_ip_port_no->labelcolor(FL_FOREGROUND_COLOR);
txtArq_ip_port_no->callback((Fl_Callback*)cb_txtArq_ip_port_no);
txtArq_ip_port_no->align(Fl_Align(FL_ALIGN_RIGHT));
txtArq_ip_port_no->when(FL_WHEN_CHANGED);
o->labelsize(FL_NORMAL_SIZE);
o->value(progdefaults.arq_port.c_str());
progStatus.ip_lock ? o->deactivate() : o->activate();
} // Fl_Input2* txtArq_ip_port_no
{ Fl_Button* o = btnDefault_arq_ip = new Fl_Button(425, 229, 73, 25, _("Default"));
btnDefault_arq_ip->tooltip(_("Returns IP Address and port\nnumber to the default value."));
btnDefault_arq_ip->callback((Fl_Callback*)cb_btnDefault_arq_ip);
progStatus.ip_lock ? o->deactivate() : o->activate();
} // Fl_Button* btnDefault_arq_ip
{ Fl_Button* o = btn_restart_arq = new Fl_Button(505, 229, 82, 25, _("Restart"));
btn_restart_arq->callback((Fl_Callback*)cb_btn_restart_arq);
btn_restart_arq->hide();
progStatus.ip_lock ? o->deactivate() : o->activate();
} // Fl_Button* btn_restart_arq
o->end();
} // Fl_Group* o
{ Fl_Box* o = new Fl_Box(6, 262, 588, 1);
o->box(FL_BORDER_BOX);
} // Fl_Box* o
{ Fl_Group* o = new Fl_Group(6, 266, 588, 35, _("XML"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Button* o = btnDefault_xmlrpc_ip = new Fl_Button(425, 270, 73, 25, _("Default"));
btnDefault_xmlrpc_ip->tooltip(_("Returns IP Address and port\nnumber to the default value."));
btnDefault_xmlrpc_ip->callback((Fl_Callback*)cb_btnDefault_xmlrpc_ip);
progStatus.ip_lock ? o->deactivate() : o->activate();
} // Fl_Button* btnDefault_xmlrpc_ip
{ Fl_Input2* o = txtXmlrpc_ip_address = new Fl_Input2(56, 270, 230, 25, _("Addr"));
txtXmlrpc_ip_address->tooltip(_("IP Address for XMLRPC interface\nIP Address format: nnn.nnn.nnn.nnn\nor name:\
i.e. localhost"));
txtXmlrpc_ip_address->box(FL_DOWN_BOX);
txtXmlrpc_ip_address->color(FL_BACKGROUND2_COLOR);
txtXmlrpc_ip_address->selection_color(FL_SELECTION_COLOR);
txtXmlrpc_ip_address->labeltype(FL_NORMAL_LABEL);
txtXmlrpc_ip_address->labelfont(0);
txtXmlrpc_ip_address->labelsize(14);
txtXmlrpc_ip_address->labelcolor(FL_FOREGROUND_COLOR);
txtXmlrpc_ip_address->callback((Fl_Callback*)cb_txtXmlrpc_ip_address);
txtXmlrpc_ip_address->align(Fl_Align(FL_ALIGN_RIGHT));
txtXmlrpc_ip_address->when(FL_WHEN_CHANGED);
o->labelsize(FL_NORMAL_SIZE);
o->value(progdefaults.xmlrpc_address.c_str());
progStatus.ip_lock ? o->deactivate() : o->activate();
} // Fl_Input2* txtXmlrpc_ip_address
{ Fl_Input2* o = txtXmlrpc_ip_port_no = new Fl_Input2(333, 270, 55, 25, _("Port"));
txtXmlrpc_ip_port_no->tooltip(_("IP Address Port Number"));
txtXmlrpc_ip_port_no->box(FL_DOWN_BOX);
txtXmlrpc_ip_port_no->color(FL_BACKGROUND2_COLOR);
txtXmlrpc_ip_port_no->selection_color(FL_SELECTION_COLOR);
txtXmlrpc_ip_port_no->labeltype(FL_NORMAL_LABEL);
txtXmlrpc_ip_port_no->labelfont(0);
txtXmlrpc_ip_port_no->labelsize(14);
txtXmlrpc_ip_port_no->labelcolor(FL_FOREGROUND_COLOR);
txtXmlrpc_ip_port_no->callback((Fl_Callback*)cb_txtXmlrpc_ip_port_no);
txtXmlrpc_ip_port_no->align(Fl_Align(FL_ALIGN_RIGHT));
txtXmlrpc_ip_port_no->when(FL_WHEN_CHANGED);
o->labelsize(FL_NORMAL_SIZE);
o->value(progdefaults.xmlrpc_port.c_str());
progStatus.ip_lock ? o->deactivate() : o->activate();
} // Fl_Input2* txtXmlrpc_ip_port_no
{ Fl_Button* o = btn_restart_xml = new Fl_Button(505, 270, 82, 25, _("Restart"));
btn_restart_xml->callback((Fl_Callback*)cb_btn_restart_xml);
btn_restart_xml->hide();
progStatus.ip_lock ? o->deactivate() : o->activate();
} // Fl_Button* btn_restart_xml
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(6, 304, 588, 35, _("flrig"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Button* o = btnDefault_flrig_ip = new Fl_Button(425, 309, 73, 25, _("Default"));
btnDefault_flrig_ip->tooltip(_("Returns IP Address and port\nnumber to the default value."));
btnDefault_flrig_ip->callback((Fl_Callback*)cb_btnDefault_flrig_ip);
progStatus.ip_lock ? o->deactivate() : o->activate();
} // Fl_Button* btnDefault_flrig_ip
{ Fl_Input2* o = txt_flrig_ip_address = new Fl_Input2(56, 309, 230, 25, _("Addr"));
txt_flrig_ip_address->tooltip(_("IP Address for flrig interface\nIP Address format: nnn.nnn.nnn.nnn\nor name: \
i.e. localhost"));
txt_flrig_ip_address->box(FL_DOWN_BOX);
txt_flrig_ip_address->color(FL_BACKGROUND2_COLOR);
txt_flrig_ip_address->selection_color(FL_SELECTION_COLOR);
txt_flrig_ip_address->labeltype(FL_NORMAL_LABEL);
txt_flrig_ip_address->labelfont(0);
txt_flrig_ip_address->labelsize(14);
txt_flrig_ip_address->labelcolor(FL_FOREGROUND_COLOR);
txt_flrig_ip_address->callback((Fl_Callback*)cb_txt_flrig_ip_address);
txt_flrig_ip_address->align(Fl_Align(FL_ALIGN_RIGHT));
txt_flrig_ip_address->when(FL_WHEN_CHANGED);
o->labelsize(FL_NORMAL_SIZE);
o->value(progdefaults.flrig_ip_address.c_str());
progStatus.ip_lock ? o->deactivate() : o->activate();
} // Fl_Input2* txt_flrig_ip_address
{ Fl_Input2* o = txt_flrig_ip_port = new Fl_Input2(333, 309, 55, 25, _("Port"));
txt_flrig_ip_port->tooltip(_("IP Address Port Number"));
txt_flrig_ip_port->box(FL_DOWN_BOX);
txt_flrig_ip_port->color(FL_BACKGROUND2_COLOR);
txt_flrig_ip_port->selection_color(FL_SELECTION_COLOR);
txt_flrig_ip_port->labeltype(FL_NORMAL_LABEL);
txt_flrig_ip_port->labelfont(0);
txt_flrig_ip_port->labelsize(14);
txt_flrig_ip_port->labelcolor(FL_FOREGROUND_COLOR);
txt_flrig_ip_port->callback((Fl_Callback*)cb_txt_flrig_ip_port);
txt_flrig_ip_port->align(Fl_Align(FL_ALIGN_RIGHT));
txt_flrig_ip_port->when(FL_WHEN_CHANGED);
o->labelsize(FL_NORMAL_SIZE);
o->value(progdefaults.flrig_ip_port.c_str());
progStatus.ip_lock ? o->deactivate() : o->activate();
} // Fl_Input2* txt_flrig_ip_port
{ Fl_Button* o = btn_reconnect_flrig_server = new Fl_Button(505, 309, 82, 25, _("Reconnect"));
btn_reconnect_flrig_server->callback((Fl_Callback*)cb_btn_reconnect_flrig_server);
progStatus.ip_lock ? o->deactivate() : o->activate();
} // Fl_Button* btn_reconnect_flrig_server
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(6, 340, 588, 36, _("fllog"));
o->box(FL_ENGRAVED_FRAME);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
{ Fl_Input* o = txt_fllog_ip_address = new Fl_Input(56, 345, 230, 25, _("Addr"));
txt_fllog_ip_address->tooltip(_("IP Address for fllog interface\nIP Address format: nnn.nnn.nnn.nnn\nor name: \
i.e. localhost"));
txt_fllog_ip_address->callback((Fl_Callback*)cb_txt_fllog_ip_address);
txt_fllog_ip_address->align(Fl_Align(FL_ALIGN_RIGHT));
o->value(progdefaults.xmllog_address.c_str());
progStatus.ip_lock ? o->deactivate() : o->activate();
} // Fl_Input* txt_fllog_ip_address
{ Fl_Input* o = txt_fllog_ip_port = new Fl_Input(333, 345, 55, 25, _("Port"));
txt_fllog_ip_port->tooltip(_("IP Address Port Number"));
txt_fllog_ip_port->callback((Fl_Callback*)cb_txt_fllog_ip_port);
txt_fllog_ip_port->align(Fl_Align(FL_ALIGN_RIGHT));
o->value(progdefaults.xmllog_port.c_str());
progStatus.ip_lock ? o->deactivate() : o->activate();
} // Fl_Input* txt_fllog_ip_port
{ Fl_Button* o = btn_reconnect_log_server = new Fl_Button(505, 345, 82, 25, _("Reconnect"));
btn_reconnect_log_server->callback((Fl_Callback*)cb_btn_reconnect_log_server);
progStatus.ip_lock ? o->deactivate() : o->activate();
} // Fl_Button* btn_reconnect_log_server
{ Fl_Button* o = btnDefault_fllog_ip = new Fl_Button(425, 345, 73, 25, _("Default"));
btnDefault_fllog_ip->tooltip(_("Returns IP Address and port\nnumber to the default value."));
btnDefault_fllog_ip->callback((Fl_Callback*)cb_btnDefault_fllog_ip);
progStatus.ip_lock ? o->deactivate() : o->activate();
} // Fl_Button* btnDefault_fllog_ip
o->end();
} // Fl_Group* o
btnDisable_p2p_io_widgets->value(1);
tabIO->end();
} // Fl_Group* tabIO
tabsConfigure->end();
} // Fl_Tabs* tabsConfigure
{ btnSaveConfig = new Fl_Button(330, 390, 130, 22, _("Save"));
btnSaveConfig->callback((Fl_Callback*)cb_btnSaveConfig);
} // Fl_Button* btnSaveConfig
{ btnCloseConfig = new Fl_Return_Button(462, 390, 130, 22, _("Close"));
btnCloseConfig->callback((Fl_Callback*)cb_btnCloseConfig);
} // Fl_Return_Button* btnCloseConfig
{ btnResetConfig = new Fl_Button(20, 390, 130, 22, _("Restore defaults"));
btnResetConfig->callback((Fl_Callback*)cb_btnResetConfig);
} // Fl_Button* btnResetConfig
o->set_non_modal();
o->end();
} // Fl_Double_Window* o
return w;
}
void openConfig() {
if (!dlgConfig) createConfig();
progdefaults.loadDefaults();
}
void closeDialog() {
if (dlgConfig) dlgConfig->hide();
}
void createConfig() {
if (!dlgConfig) {
dlgConfig = ConfigureDialog();
dlgConfig->xclass(PACKAGE_NAME);
}
}
void WefaxDestDirSet(Fl_File_Chooser *w, void *userdata) {
/* http://www.fltk.org/documentation.php/doc-1.1/Fl_File_Chooser.html */
if( ( w->value() != NULL ) && ( ! w->shown() ) ) {
btnWefaxSaveDir->value( w->value() );
btnWefaxSaveDir->redraw();
cb_btnWefaxSaveDir( btnWefaxSaveDir, NULL );
}
}
void KmlDestDirSet(Fl_File_Chooser *w, void *userdata) {
/* http://www.fltk.org/documentation.php/doc-1.1/Fl_File_Chooser.html */
if( ( w->value() != NULL ) && ( ! w->shown() ) ) {
btnKmlSaveDir->value( w->value() );
btnKmlSaveDir->redraw();
cb_btnKmlSaveDir( btnKmlSaveDir, NULL );
}
}