kopia lustrzana https://github.com/jamescoxon/dl-fldigi
7076 wiersze
288 KiB
Plaintext
7076 wiersze
288 KiB
Plaintext
# data file for the Fltk User Interface Designer (fluid)
|
|
version 1.0302
|
|
i18n_type 1
|
|
i18n_include "gettext.h"
|
|
i18n_function _
|
|
header_name {.h}
|
|
code_name {.cxx}
|
|
decl {\#include <config.h>} {private local
|
|
}
|
|
|
|
decl {\#include <FL/Fl_Tooltip.H>} {private local
|
|
}
|
|
|
|
decl {\#include <FL/Fl_Box.H>} {private local
|
|
}
|
|
|
|
decl {\#include <FL/filename.H>} {private local
|
|
}
|
|
|
|
decl {\#include <FL/Fl_File_Chooser.H>} {private local
|
|
}
|
|
|
|
decl {\#include <FL/fl_show_colormap.H>} {private local
|
|
}
|
|
|
|
decl {\#include "main.h"} {private local
|
|
}
|
|
|
|
decl {\#include "fl_digi.h"} {private local
|
|
}
|
|
|
|
decl {\#include "dl_fldigi/dl_fldigi.h"} {private local
|
|
}
|
|
|
|
decl {\#include "dl_fldigi/location.h"} {private local
|
|
}
|
|
|
|
decl {\#include "dl_fldigi/flights.h"} {private local
|
|
}
|
|
|
|
decl {\#include "dl_fldigi/hbtint.h"} {private local
|
|
}
|
|
|
|
decl {\#include "data_io.h"} {private local
|
|
}
|
|
|
|
decl {\#include "Viewer.h"} {private global
|
|
}
|
|
|
|
decl {\#include "font_browser.h"} {public global
|
|
}
|
|
|
|
decl {\#include "soundconf.h"} {private local
|
|
}
|
|
|
|
decl {\#include "globals.h"} {public local
|
|
}
|
|
|
|
decl {\#include "modem.h"} {public local
|
|
}
|
|
|
|
decl {\#include "configuration.h"} {public local
|
|
}
|
|
|
|
decl {\#include "combo.h"} {public local
|
|
}
|
|
|
|
decl {\#include "waterfall.h"} {private local
|
|
}
|
|
|
|
decl {\#include "rigxml.h"} {private local
|
|
}
|
|
|
|
decl {\#include "lookupcall.h"} {private local
|
|
}
|
|
|
|
decl {\#include "icons.h"} {private local
|
|
}
|
|
|
|
decl {\#include "Viewer.h"} {private local
|
|
}
|
|
|
|
decl {\#include "pskrep.h"} {private global
|
|
}
|
|
|
|
decl {\#include "flinput2.h"} {public local
|
|
}
|
|
|
|
decl {\#include "flslider2.h"} {public local
|
|
}
|
|
|
|
decl {\#include "flmisc.h"} {public local
|
|
}
|
|
|
|
decl {\#include "logsupport.h"} {private local
|
|
}
|
|
|
|
decl {\#include "notify.h"} {private local
|
|
}
|
|
|
|
decl {\#include "debug.h"} {private local
|
|
}
|
|
|
|
decl {\#include "status.h"} {private local
|
|
}
|
|
|
|
decl {\#include "rx_extract.h"} {private local
|
|
}
|
|
|
|
decl {\#include "kmlserver.h"} {private local
|
|
}
|
|
|
|
decl {\#include "macroedit.h"} {private local
|
|
}
|
|
|
|
decl {extern void WefaxDestDirSet(Fl_File_Chooser *w, void *userdata);} {private local
|
|
}
|
|
|
|
decl {\#if USE_HAMLIB
|
|
\#include "hamlib.h"
|
|
\#endif} {private local
|
|
}
|
|
|
|
decl {Fl_Double_Window *dlgConfig;} {public local
|
|
}
|
|
|
|
decl {Mode_Browser* mode_browser;} {public local
|
|
}
|
|
|
|
Function {choose_color(Fl_Color & c)} {open private return_type void
|
|
} {
|
|
code {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);} {}
|
|
}
|
|
|
|
Function {cbRxFontBrowser(Fl_Widget*, void*)} {private return_type void
|
|
} {
|
|
code {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);
|
|
|
|
font_browser->hide();
|
|
|
|
progdefaults.changed = true;} {}
|
|
}
|
|
|
|
Function {cbTxFontBrowser(Fl_Widget*, void*)} {private return_type void
|
|
} {
|
|
code {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);
|
|
|
|
font_browser->hide();
|
|
|
|
progdefaults.changed = true;} {}
|
|
}
|
|
|
|
Function {cbMacroEditFontBrowser(Fl_Widget*, void*)} {open private return_type void
|
|
} {
|
|
code {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;} {}
|
|
}
|
|
|
|
Function {cbWaterfallFontBrowser(Fl_Widget*, void*)} {return_type void
|
|
} {
|
|
code {Fl_Font fnt = font_browser->fontNumber();
|
|
int size = font_browser->fontSize();
|
|
|
|
progdefaults.WaterfallFontnbr = fnt;
|
|
progdefaults.WaterfallFontsize = size;
|
|
progdefaults.changed = true;
|
|
|
|
font_browser->hide();} {}
|
|
}
|
|
|
|
Function {cbMacroBtnFontBrowser(Fl_Widget*, void*)} {private return_type void
|
|
} {
|
|
code {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();} {}
|
|
}
|
|
|
|
Function {cbViewerFontBrowser(Fl_Widget*, void*)} {return_type void
|
|
} {
|
|
code {progdefaults.ViewerFontnbr = font_browser->fontNumber();
|
|
progdefaults.ViewerFontsize = font_browser->fontSize();
|
|
initViewer();
|
|
progdefaults.changed = true;
|
|
|
|
font_browser->hide();} {}
|
|
}
|
|
|
|
Function {cbFreqControlFontBrowser(Fl_Widget*, void*)} {return_type void
|
|
} {
|
|
code {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();} {}
|
|
}
|
|
|
|
Function {cbLOGGINGFontBrowser(Fl_Widget*, void*)} {private return_type void
|
|
} {
|
|
code {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;} {}
|
|
}
|
|
|
|
Function {cbLOGBOOKFontBrowser(Fl_Widget*, void*)} {private return_type void
|
|
} {
|
|
code {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;} {}
|
|
}
|
|
|
|
Function {set_qrzxml_buttons(Fl_Button* b)} {return_type void
|
|
} {
|
|
code {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]);} {}
|
|
}
|
|
|
|
Function {set_qrzweb_buttons(Fl_Button* b)} {return_type void
|
|
} {
|
|
code {Fl_Button* qrzbweb[] = { btnQRZWEBnotavailable, btnQRZonline,
|
|
btnHAMCALLonline,
|
|
btnHamQTHonline };
|
|
|
|
for (size_t i = 0; i < sizeof(qrzbweb)/sizeof(*qrzbweb); i++)
|
|
qrzbweb[i]->value(b == qrzbweb[i]);} {}
|
|
}
|
|
|
|
Function {ConfigureDialog()} {open
|
|
} {
|
|
code {font_browser = new Font_Browser;} {}
|
|
code {static const char szShifts[] = "23|85|160|170|182|200|240|350|425|600|850|Custom";
|
|
static const char szBauds[] = "45|45.45|50|56|75|100|110|150|200|300|600|1200";
|
|
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[] = "~|%|&|+|=|{|}|<|>|[|]| ";} {}
|
|
code {static const int flight_browser_columns[] = { 180, 160, 190 };} {}
|
|
code {static const int payload_browser_columns[] = { 180, 350 };} {}
|
|
Fl_Window {} {
|
|
label {Fldigi configuration} open
|
|
xywh {666 113 600 415} type Double color 45 selection_color 51 labelsize 18 align 80 non_modal visible
|
|
} {
|
|
Fl_Tabs tabsConfigure {open
|
|
xywh {0 0 600 380} color 50 selection_color 50
|
|
} {
|
|
Fl_Group tabOperator {
|
|
label Operator
|
|
callback {progdefaults.changed = true;} open
|
|
tooltip {Operator information} xywh {0 25 600 355} when 1 hide
|
|
} {
|
|
Fl_Group {} {
|
|
label Station open
|
|
xywh {55 35 490 200} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Input inpMyCallsign {
|
|
label {Callsign:}
|
|
callback {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;
|
|
|
|
dl_fldigi::changed(dl_fldigi::CH_UTHR_SETTINGS);
|
|
btnApplyConfig->activate();}
|
|
tooltip {Operators callsign} xywh {160 64 110 24}
|
|
code0 {inpMyCallsign->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Input2
|
|
}
|
|
Fl_Input inpMyName {
|
|
label {Name:}
|
|
callback {progdefaults.myName = o->value();
|
|
progdefaults.changed = true;
|
|
dl_fldigi::changed(dl_fldigi::CH_INFO);
|
|
btnApplyConfig->activate();}
|
|
tooltip {Operators name} xywh {340 64 140 24}
|
|
code0 {inpMyName->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Input2
|
|
}
|
|
Fl_Input inpMyQth {
|
|
label {QTH:}
|
|
callback {progdefaults.myQth = o->value();
|
|
progdefaults.changed = true;
|
|
dl_fldigi::changed(dl_fldigi::CH_INFO);
|
|
btnApplyConfig->activate();}
|
|
tooltip {Operators QTH} xywh {160 98 320 24}
|
|
code0 {inpMyQth->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Input2
|
|
}
|
|
Fl_Input inpMyLocator {
|
|
label {Locator:}
|
|
callback {progdefaults.myLocator = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Maidenhead locator as in EM64qv} xywh {160 133 85 24}
|
|
code0 {inpMyLocator->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Input2
|
|
}
|
|
Fl_Input inpMyAntenna {
|
|
label {Antenna:}
|
|
callback {progdefaults.myAntenna = o->value();
|
|
progdefaults.changed = true;
|
|
dl_fldigi::changed(dl_fldigi::CH_INFO);
|
|
btnApplyConfig->activate();}
|
|
tooltip {Short description of antenna} xywh {160 167 320 24}
|
|
code0 {inpMyAntenna->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Input2
|
|
}
|
|
Fl_Input MyRadio {
|
|
label {Radio:}
|
|
callback {progdefaults.myRadio = o->value();
|
|
progdefaults.changed = true;
|
|
dl_fldigi::changed(dl_fldigi::CH_INFO);
|
|
btnApplyConfig->activate();}
|
|
tooltip {Short description of radio} xywh {160 200 320 24}
|
|
code0 {o->value(progdefaults.myRadio.c_str());}
|
|
}
|
|
}
|
|
Fl_Group grpNoise {
|
|
label {Test Signal - Do NOT use with transmitter} open
|
|
xywh {55 231 490 114} box ENGRAVED_FRAME align 21 hide
|
|
} {
|
|
Fl_Check_Button btnNoiseOn {
|
|
label {Noise on}
|
|
callback {progdefaults.noise = o->value();}
|
|
xywh {93 269 70 15} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.noise);}
|
|
}
|
|
Fl_Counter noiseDB {
|
|
label dB
|
|
callback {progdefaults.s2n = o->value();}
|
|
xywh {90 307 89 21} type Simple align 4 minimum -18 maximum 60 step 1 value 20
|
|
code0 {o->value(progdefaults.s2n);}
|
|
class Fl_Counter2
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabUI {
|
|
label UI open
|
|
tooltip {User Interface} xywh {0 25 600 355} hide
|
|
} {
|
|
Fl_Tabs tabsUI {open
|
|
xywh {0 25 600 355} selection_color 50
|
|
} {
|
|
Fl_Group tabBrowser {
|
|
label Browser
|
|
tooltip {User Interface - Browser} xywh {0 50 600 330}
|
|
} {
|
|
Fl_Group {} {open
|
|
xywh {30 65 540 300} box ENGRAVED_FRAME
|
|
} {
|
|
Fl_Spinner cntChannels {
|
|
label {Channels, first channel starts at waterfall lower limit}
|
|
callback {progdefaults.VIEWERchannels = (int)(o->value());
|
|
initViewer();}
|
|
tooltip {Change \# of psk viewer channels} xywh {46 75 50 24} align 8 maximum 30 value 30
|
|
code0 {o->minimum(5); o->maximum(30); o->step(1);}
|
|
code1 {o->value(progdefaults.VIEWERchannels);}
|
|
code2 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Spinner2
|
|
}
|
|
Fl_Spinner cntTimeout {
|
|
label {Inactivity timeout}
|
|
callback {progdefaults.VIEWERtimeout = (int)(o->value());
|
|
progdefaults.changed = true;}
|
|
tooltip {Clear channel text after
|
|
\# seconds of inactivity} xywh {46 111 50 24} align 8 value 10
|
|
code0 {o->minimum(1); o->maximum(180); o->step(1);}
|
|
code1 {o->value(progdefaults.VIEWERtimeout);}
|
|
code2 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Spinner2
|
|
}
|
|
Fl_Group listboxViewerLabel {
|
|
label {Channel label}
|
|
callback {progdefaults.VIEWERlabeltype = o->index();
|
|
initViewer();
|
|
progdefaults.changed = true;} open
|
|
tooltip {Appearance of label on each channel} xywh {46 151 150 24} box DOWN_BOX color 7 align 8
|
|
code0 {listboxViewerLabel->add(_("None")); listboxViewerLabel->add(_("Audio frequency"));}
|
|
code1 {listboxViewerLabel->add(_("Radio frequency")); listboxViewerLabel->add(_("Channel number"));}
|
|
code3 {listboxViewerLabel->index(progdefaults.VIEWERlabeltype);
|
|
o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
Fl_Button btnViewerFont {
|
|
label {Font...}
|
|
callback {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();}
|
|
tooltip {select browser font} xywh {331 151 70 24}
|
|
}
|
|
Fl_Check_Button btnFixedIntervals {
|
|
label {Fixed Intervals}
|
|
callback {progdefaults.VIEWERfixed = o->value();
|
|
progdefaults.changed = true;
|
|
initViewer();}
|
|
tooltip {Force channel spacing to even 100 Hz increments} xywh {236 137 165 20} down_box DOWN_BOX value 1 hide
|
|
code0 {o->value(progdefaults.VIEWERfixed);}
|
|
}
|
|
Fl_Check_Button btnMarquee {
|
|
label {Continuous scrolling}
|
|
callback {progdefaults.VIEWERmarquee = o->value();
|
|
progdefaults.changed = true;
|
|
initViewer();}
|
|
tooltip {ON - Marquee style
|
|
OFF - Clear & restart} xywh {46 189 165 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.VIEWERmarquee);}
|
|
}
|
|
Fl_Check_Button btnAscend {
|
|
label {Lowest freq on bottom of viewer}
|
|
callback {progdefaults.VIEWERascend = o->value();
|
|
progdefaults.changed = true;
|
|
initViewer();}
|
|
tooltip {Change positions of low to high channels} xywh {46 213 253 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.VIEWERascend);}
|
|
}
|
|
Fl_Check_Button btnBrowserHistory {
|
|
label {Play back history when active channel selected}
|
|
callback {progdefaults.VIEWERhistory = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Audio stream history decoded on selected signal} xywh {46 238 356 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.VIEWERhistory);}
|
|
}
|
|
Fl_Group {} {
|
|
label {Detection Level} open
|
|
xywh {40 287 144 60} box ENGRAVED_FRAME
|
|
} {
|
|
Fl_Button bwsrSliderColor {
|
|
label Backgnd
|
|
callback {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;}
|
|
tooltip {Background color of signal viewer squelch control} xywh {47 310 60 24} align 1
|
|
code0 {bwsrSliderColor->color(fl_rgb_color(progdefaults.bwsrSliderColor.R, progdefaults.bwsrSliderColor.G,progdefaults.bwsrSliderColor.B));}
|
|
}
|
|
Fl_Button bwsrSldrSelColor {
|
|
label Button
|
|
callback {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;}
|
|
tooltip {Slider hilite color of signal viewer squelch control} xywh {115 310 60 24} align 1
|
|
code0 {bwsrSldrSelColor->color(fl_rgb_color(progdefaults.bwsrSldrSelColor.R, progdefaults.bwsrSldrSelColor.G,progdefaults.bwsrSliderColor.B));}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label {Browser Line Colors} open
|
|
xywh {192 287 326 60} box ENGRAVED_FRAME
|
|
} {
|
|
Fl_Button bwsrHiLite_1_color {
|
|
label {HiLite 1}
|
|
callback {progdefaults.bwsrHiLight1 = fl_show_colormap((Fl_Color)progdefaults.bwsrHiLight1);
|
|
bwsrHiLite_1_color->color((Fl_Color)progdefaults.bwsrHiLight1);
|
|
viewer_redraw();
|
|
progdefaults.changed = true;}
|
|
tooltip {PSK/RTTY Viewer HiLite Color 1} xywh {198 309 60 24} align 1
|
|
code0 {bwsrHiLite_1_color->color((Fl_Color)progdefaults.bwsrHiLight1);}
|
|
code1 {\#include "Viewer.h"}
|
|
}
|
|
Fl_Button bwsrHiLite_2_color {
|
|
label {HiLite 2}
|
|
callback {progdefaults.bwsrHiLight2 = fl_show_colormap((Fl_Color)progdefaults.bwsrHiLight2);
|
|
bwsrHiLite_2_color->color((Fl_Color)progdefaults.bwsrHiLight2);
|
|
viewer_redraw();
|
|
progdefaults.changed = true;}
|
|
tooltip {PSK/RTTY Viewer HiLite Color 2} xywh {261 309 60 24} align 1
|
|
code0 {bwsrHiLite_2_color->color((Fl_Color)progdefaults.bwsrHiLight2);}
|
|
}
|
|
Fl_Button bwsrHiLite_even_lines {
|
|
label Even
|
|
callback {progdefaults.bwsrBackgnd2 = fl_show_colormap((Fl_Color)progdefaults.bwsrBackgnd2);
|
|
bwsrHiLite_even_lines->color((Fl_Color)progdefaults.bwsrBackgnd2);
|
|
viewer_redraw();
|
|
progdefaults.changed = true;;}
|
|
tooltip {Even lines} xywh {324 309 60 24} align 1
|
|
code0 {bwsrHiLite_even_lines->color((Fl_Color)progdefaults.bwsrBackgnd2);}
|
|
}
|
|
Fl_Button bwsrHiLite_odd_lines {
|
|
label Odd
|
|
callback {progdefaults.bwsrBackgnd1 = fl_show_colormap((Fl_Color)progdefaults.bwsrBackgnd1);
|
|
bwsrHiLite_odd_lines->color((Fl_Color)progdefaults.bwsrBackgnd1);
|
|
viewer_redraw();
|
|
progdefaults.changed = true;}
|
|
tooltip {Odd lines} xywh {387 309 60 24} align 1
|
|
code0 {bwsrHiLite_odd_lines->color((Fl_Color)progdefaults.bwsrBackgnd1);}
|
|
}
|
|
Fl_Button bwsrHiLite_select {
|
|
label Select
|
|
callback {progdefaults.bwsrSelect = fl_show_colormap((Fl_Color)progdefaults.bwsrSelect);
|
|
bwsrHiLite_select->color((Fl_Color)progdefaults.bwsrSelect);
|
|
viewer_redraw();
|
|
progdefaults.changed = true;}
|
|
tooltip {Select line} xywh {451 309 60 24} align 1
|
|
code0 {bwsrHiLite_select->color((Fl_Color)progdefaults.bwsrSelect);}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabContest {
|
|
label Contest
|
|
tooltip {User Interface - Contest} xywh {0 50 600 330} hide
|
|
} {
|
|
Fl_Group {} {
|
|
label Exchanges open
|
|
xywh {55 70 490 80} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Box lblSend {
|
|
label {Send:}
|
|
xywh {87 105 55 20}
|
|
}
|
|
Fl_Input inpSend1 {
|
|
label {Exchange Out}
|
|
callback {progdefaults.myXchg=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {free form exchange} xywh {145 105 140 20} align 1
|
|
code0 {o->value(progdefaults.myXchg.c_str());}
|
|
code1 {inpSend1->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Input2
|
|
}
|
|
Fl_Check_Button btn599 {
|
|
label {RST always 599/59}
|
|
callback {progdefaults.fixed599 = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Force RST in/out to 599/59} xywh {360 90 130 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.fixed599);}
|
|
}
|
|
Fl_Check_Button btnCutNbrs {
|
|
label {Send CW cut numbers}
|
|
callback {progdefaults.cutnbrs=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {0 = T; 9 = N} xywh {360 120 180 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.cutnbrs);}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label {Serial number} open
|
|
xywh {55 160 490 65} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Check_Button btnUseLeadingZeros {
|
|
label {Use leading zeros}
|
|
callback {progdefaults.UseLeadingZeros = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Insert leading zeros into Xmtd serial number} xywh {76 186 154 20} down_box DOWN_BOX value 1
|
|
}
|
|
Fl_Value_Input nbrContestStart {
|
|
label Start
|
|
callback {progdefaults.ContestStart = (int)o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Starting number} xywh {271 186 45 20} align 1 maximum 10000 step 1
|
|
code0 {o->value(progdefaults.ContestStart);}
|
|
class Fl_Value_Input2
|
|
}
|
|
Fl_Value_Input nbrContestDigits {
|
|
label Digits
|
|
callback {progdefaults.ContestDigits = (int)o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Number of digits in serial number} xywh {353 185 45 20} align 1 minimum 1 maximum 5 step 1 value 3
|
|
class Fl_Value_Input2
|
|
}
|
|
Fl_Button btnResetSerNbr {
|
|
label Reset
|
|
callback {cb_ResetSerNbr();}
|
|
tooltip {Initialize the QSO logging fields} xywh {445 186 70 20}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label {Duplicate check, CALL plus} open
|
|
xywh {55 235 490 130} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Light_Button btnDupCheckOn {
|
|
label {On/Off}
|
|
callback {progdefaults.EnableDupCheck = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Check for duplicates} xywh {65 265 74 20} selection_color 2
|
|
code0 {o->value(progdefaults.EnableDupCheck);}
|
|
}
|
|
Fl_Check_Button btnDupBand {
|
|
label Band
|
|
callback {progdefaults.dupband = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Bands must match} xywh {206 265 70 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.dupband);}
|
|
}
|
|
Fl_Check_Button btnDupMode {
|
|
label Mode
|
|
callback {progdefaults.dupmode = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Mode must match} xywh {326 265 70 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.dupmode);}
|
|
}
|
|
Fl_Check_Button btnDupState {
|
|
label State
|
|
callback {progdefaults.dupstate = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {State must match} xywh {445 265 70 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.dupstate);}
|
|
}
|
|
Fl_Check_Button btnDupXchg1 {
|
|
label {Exchange In}
|
|
callback {progdefaults.dupxchg1 = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {free form 1 must match} xywh {206 293 105 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.dupxchg1);}
|
|
}
|
|
Fl_Check_Button btnDupTimeSpan {
|
|
label {Time span over}
|
|
callback {progdefaults.duptimespan=(int)o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {QSO must not occur within a time period of} xywh {206 323 129 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.duptimespan);}
|
|
}
|
|
Fl_Value_Input nbrTimeSpan {
|
|
label minutes
|
|
callback {progdefaults.timespan = (int)o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Enter time span in minutes} xywh {335 323 53 20} align 8 maximum 1440 step 1 value 120
|
|
code0 {o->value(progdefaults.timespan);}
|
|
class Fl_Value_Input2
|
|
}
|
|
Fl_Button btnDupColor {
|
|
label {Dup Color}
|
|
callback {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;}
|
|
tooltip {Left click to select dup color} xywh {65 292 90 22} box DOWN_BOX down_box DOWN_BOX color 7 selection_color 7
|
|
code0 {o->color(fl_rgb_color(progdefaults.dup_color.R, progdefaults.dup_color.G, progdefaults.dup_color.B));}
|
|
code1 {\#include <FL/Fl_Color_Chooser.H>}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabUserInterface {
|
|
label General open
|
|
tooltip {User Interface - General} xywh {0 50 600 330} hide
|
|
} {
|
|
Fl_Group {} {open
|
|
xywh {40 77 520 76} box ENGRAVED_FRAME
|
|
} {
|
|
Fl_Check_Button btnShowTooltips {
|
|
label {Show tooltips}
|
|
callback {progdefaults.tooltips = o->value();
|
|
Fl_Tooltip::enable(progdefaults.tooltips);
|
|
progdefaults.changed = true;}
|
|
tooltip {Enable / disable tooltips} xywh {75 90 120 20} down_box DOWN_BOX value 1
|
|
code0 {o->value(progdefaults.tooltips);}
|
|
}
|
|
Fl_Check_Button chkMenuIcons {
|
|
label {Show menu icons}
|
|
callback {progdefaults.menuicons = o->value();
|
|
icons::toggle_icon_labels();
|
|
progdefaults.changed = true;}
|
|
tooltip {Enable / disable icons on menus} xywh {219 90 150 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.menuicons);}
|
|
}
|
|
Fl_Group listboxScheme {
|
|
label {UI scheme}
|
|
callback {progdefaults.ui_scheme = o->value();
|
|
Fl::scheme(progdefaults.ui_scheme.c_str());
|
|
|
|
progdefaults.changed = true;} open
|
|
tooltip {Change application look and feel} xywh {193 119 80 20} box DOWN_BOX color 7 align 8
|
|
code0 {listboxScheme->add("base");}
|
|
code1 {listboxScheme->add("gtk+");}
|
|
code2 {listboxScheme->add("plastic");}
|
|
code3 {listboxScheme->value(progdefaults.ui_scheme.c_str());
|
|
o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
Fl_Button bVisibleModes {
|
|
label {Visible modes}
|
|
callback {mode_browser->label(o->label());
|
|
mode_browser->callback(toggle_visible_modes);
|
|
mode_browser->show(&progdefaults.visible_modes);
|
|
progdefaults.changed = true;}
|
|
tooltip {Select modes for menu access} xywh {58 119 110 20}
|
|
}
|
|
Fl_Group listbox_language {
|
|
label {UI language}
|
|
callback {progdefaults.ui_language = o->index();
|
|
progdefaults.changed = true;} open
|
|
tooltip {Changes take effect on next program startup} xywh {375 119 170 20} box DOWN_BOX color 7 labelsize 12 align 5
|
|
code0 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
}
|
|
Fl_Group {} {
|
|
xywh {40 154 520 34} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Check_Button btn_rx_lowercase {
|
|
label {Print CW / RTTY / THROB / CONTESTIA in lowercase}
|
|
callback {progdefaults.rx_lowercase = o->value();
|
|
progdefaults.changed = true;}
|
|
xywh {75 161 389 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.rx_lowercase);}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
xywh {40 189 520 34} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Check_Button btn_tx_lowercase {
|
|
label {Transmit all text in lower case}
|
|
callback {progdefaults.tx_lowercase = o->value();
|
|
progdefaults.changed = true;}
|
|
xywh {75 197 389 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.tx_lowercase);}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label {Exit prompts}
|
|
xywh {40 224 520 76} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Check_Button btn_save_config_on_exit {
|
|
label {Prompt to save Configuration}
|
|
callback {progdefaults.SaveConfig = o->value();
|
|
progdefaults.changed = true;}
|
|
xywh {75 248 233 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.SaveConfig);}
|
|
}
|
|
Fl_Check_Button btn2_save_macros_on_exit {
|
|
label {Prompt to save macro file}
|
|
callback {btn_save_macros_on_exit->value(o->value());
|
|
progdefaults.SaveMacros = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Write current macro set on program exit} xywh {75 270 233 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.SaveMacros);}
|
|
}
|
|
Fl_Check_Button btn2NagMe {
|
|
label {Prompt to save log}
|
|
callback {btnNagMe->value(o->value());
|
|
progdefaults.NagMe=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Bug me about saving log entries} xywh {319 248 166 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.NagMe);}
|
|
}
|
|
Fl_Check_Button btn2_confirm_exit {
|
|
label {Confirm exit}
|
|
callback {btn2_confirm_exit->value(o->value());
|
|
progdefaults.confirmExit=o->value();
|
|
progdefaults.changed = true;}
|
|
xywh {319 270 200 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.confirmExit);}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label {Check for updates} open
|
|
xywh {40 301 520 52} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Check_Button btn_check_for_updates {
|
|
label {Check for updates when starting program}
|
|
callback {progdefaults.check_for_updates = o->value();
|
|
progdefaults.changed = true;}
|
|
xywh {75 324 324 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.check_for_updates);}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabLogServer {
|
|
label Log open
|
|
tooltip {User Interface - Logging} xywh {0 50 600 330} hide
|
|
} {
|
|
Fl_Group {} {
|
|
label {QSO logging} open
|
|
xywh {52 59 496 198} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Check_Button btnNagMe {
|
|
label {Prompt to save log on exit}
|
|
callback {btn2NagMe->value(o->value());
|
|
progdefaults.NagMe=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Bug me about saving log entries} xywh {69 81 236 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.NagMe);}
|
|
}
|
|
Fl_Check_Button btnClearOnSave {
|
|
label {Clear on save}
|
|
callback {progdefaults.ClearOnSave=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Clear log entries after saving or using macro <LOG>} xywh {69 110 236 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.ClearOnSave);}
|
|
}
|
|
Fl_Check_Button btnCallUpperCase {
|
|
label {Convert callsign to upper case}
|
|
callback {progdefaults.calluppercase = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Force callsign field to UPPERCASE} xywh {69 139 236 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.calluppercase);}
|
|
}
|
|
Fl_Check_Button btnAutoFillQSO {
|
|
label {Auto-fill Country and Azimuth}
|
|
callback {progdefaults.autofill_qso_fields = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Fill in Country / Azimuth using cty.dat information} xywh {69 169 236 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.autofill_qso_fields);}
|
|
}
|
|
Fl_Check_Button btnDateTimeSort {
|
|
label {Sort by Date/Time OFF}
|
|
callback {progdefaults.sort_date_time_off = o->value();
|
|
progdefaults.changed = true;
|
|
reload_browser();}
|
|
tooltip {Sort by date/time OFF - effects all ADIF/Cabrillo reports} xywh {322 81 190 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.sort_date_time_off);}
|
|
}
|
|
Fl_Check_Button btndate_time_force {
|
|
label {Date time ON == OFF}
|
|
callback {progdefaults.force_date_time = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Force date/time ON == date/time OFF} xywh {322 110 190 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.force_date_time);}
|
|
}
|
|
Fl_Check_Button btnRSTindefault {
|
|
label {Default RST in to 599/59}
|
|
callback {progdefaults.RSTin_default = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Clear log controls sets RST in to 599/59} xywh {322 139 213 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.RSTin_default);}
|
|
}
|
|
Fl_Check_Button btnRSTdefault {
|
|
label {Default RST out to 599/59}
|
|
callback {progdefaults.RSTdefault = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Clear log controls sets RST out to 599/59} xywh {322 169 216 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.RSTdefault);}
|
|
}
|
|
Fl_Input txt_cty_dat_pathname {
|
|
label {cty.dat folder}
|
|
callback {progdefaults.cty_dat_pathname = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Enter full path-name for cty.dat folder} xywh {189 196 346 24} when 1
|
|
code0 {o->value(progdefaults.cty_dat_pathname.c_str());}
|
|
code1 {\#include "dxcc.h"}
|
|
class Fl_Input2
|
|
}
|
|
Fl_Button btn_select_cty_dat {
|
|
label Browse
|
|
callback {select_cty_dat_pathname();}
|
|
tooltip {Locate cty.dat file} xywh {70 225 75 24}
|
|
}
|
|
Fl_Button btn_default_cty_dat {
|
|
label Default
|
|
callback {default_cty_dat_pathname();}
|
|
tooltip {Restore cty.dat default folder} xywh {165 225 75 24}
|
|
}
|
|
Fl_Button btn_reload_cty_dat {
|
|
label Reload
|
|
callback {reload_cty_dat();}
|
|
tooltip {Reload cty.dat} xywh {260 225 75 24}
|
|
}
|
|
Fl_Input inpMyPower {
|
|
label {Transmit Power}
|
|
callback {progdefaults.mytxpower = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Tx power used for logbook entries} xywh {485 225 50 24}
|
|
code0 {o->value(progdefaults.mytxpower.c_str());}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Input2
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label {Rx Text} open
|
|
xywh {52 263 496 110} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Check_Button btnRXClicks {
|
|
label {Single-click to capture}
|
|
callback {progdefaults.rxtext_clicks_qso_data = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Enable for single click capure of text in Rx panel} xywh {75 318 191 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.rxtext_clicks_qso_data);}
|
|
}
|
|
Fl_Check_Button btnRXTooltips {
|
|
label {callsign tooltips in received text}
|
|
callback {progdefaults.rxtext_tooltips = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Popup info after a 2 second hover on a callsign} xywh {277 318 254 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.rxtext_tooltips);}
|
|
}
|
|
Fl_Input inpNonword {
|
|
label {Word delimiters}
|
|
callback {progdefaults.nonwordchars = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {RX text QSO data entry is bounded by the non-word characters
|
|
defined here. Tab and newline are automatically included.} xywh {194 288 279 24} textfont 4
|
|
code0 {o->value(progdefaults.nonwordchars.c_str());}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Input2
|
|
}
|
|
Fl_Check_Button btnUSunits {
|
|
label {US units of distance (QRB)}
|
|
callback {progdefaults.us_units = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Enable for single click capure of text in Rx panel} xywh {277 343 220 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.us_units);}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabMBars {
|
|
label Macros open
|
|
tooltip {User Interface - Macros} xywh {0 50 600 330} hide
|
|
} {
|
|
Fl_Group {} {open
|
|
xywh {52 263 496 35} box ENGRAVED_FRAME
|
|
} {
|
|
Fl_Check_Button btnMacroMouseWheel {
|
|
label {Mouse wheel active on macro buttons}
|
|
callback {progdefaults.macro_wheel = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {enable mouse wheel control of macro bar} xywh {62 271 296 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.macro_wheel);}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label {Number and position of macro bars} open
|
|
xywh {52 61 496 200} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Counter cnt_macro_height {
|
|
label {Button Height}
|
|
callback {progdefaults.macro_height = (int)o->value();
|
|
progdefaults.changed = true;
|
|
set_macroLabels();
|
|
UI_select();}
|
|
tooltip {Height of macro bar} xywh {215 93 89 22} type Simple align 8 minimum 22 maximum 66 step 2 value 22
|
|
code0 {o->value(progdefaults.macro_height);}
|
|
}
|
|
Fl_Round_Button btn_scheme_0 {
|
|
label {One above Rx/Tx}
|
|
callback {progdefaults.mbar_scheme = 0;
|
|
progdefaults.changed = true;
|
|
set_macroLabels();
|
|
UI_select();}
|
|
tooltip {Single macro bar below logging panel
|
|
variable height} xywh {61 130 144 22} type Radio down_box ROUND_DOWN_BOX
|
|
}
|
|
Fl_Round_Button btn_scheme_1 {
|
|
label {One above waterfall}
|
|
callback {progdefaults.mbar_scheme = 1;
|
|
progdefaults.changed = true;
|
|
set_macroLabels();
|
|
UI_select();}
|
|
xywh {61 155 144 22} type Radio down_box ROUND_DOWN_BOX
|
|
}
|
|
Fl_Round_Button btn_scheme_2 {
|
|
label {One below waterfall}
|
|
callback {progdefaults.mbar_scheme = 2;
|
|
progdefaults.changed = true;
|
|
set_macroLabels();
|
|
UI_select();}
|
|
xywh {61 180 144 22} type Radio down_box ROUND_DOWN_BOX
|
|
}
|
|
Fl_Round_Button btn_scheme_3 {
|
|
label {Two scheme 1}
|
|
callback {progdefaults.mbar_scheme = 3;
|
|
progdefaults.changed = true;
|
|
set_macroLabels();
|
|
UI_select();}
|
|
xywh {228 130 144 22} type Radio down_box ROUND_DOWN_BOX
|
|
}
|
|
Fl_Round_Button btn_scheme_5 {
|
|
label {Two scheme 3}
|
|
callback {progdefaults.mbar_scheme = 5;
|
|
progdefaults.changed = true;
|
|
set_macroLabels();
|
|
UI_select();}
|
|
xywh {228 155 144 22} type Radio down_box ROUND_DOWN_BOX
|
|
}
|
|
Fl_Round_Button btn_scheme_7 {
|
|
label {Two scheme 5}
|
|
callback {progdefaults.mbar_scheme = 7;
|
|
progdefaults.changed = true;
|
|
set_macroLabels();
|
|
UI_select();}
|
|
xywh {228 180 144 22} type Radio down_box ROUND_DOWN_BOX
|
|
}
|
|
Fl_Round_Button btn_scheme_9 {
|
|
label {Two scheme 7}
|
|
callback {progdefaults.mbar_scheme = 9;
|
|
progdefaults.changed = true;
|
|
set_macroLabels();
|
|
UI_select();}
|
|
xywh {228 205 144 22} type Radio down_box ROUND_DOWN_BOX
|
|
}
|
|
Fl_Round_Button btn_scheme_11 {
|
|
label {Two scheme 9}
|
|
callback {progdefaults.mbar_scheme = 11;
|
|
progdefaults.changed = true;
|
|
set_macroLabels();
|
|
UI_select();}
|
|
xywh {228 230 144 22} type Radio down_box ROUND_DOWN_BOX
|
|
}
|
|
Fl_Round_Button btn_scheme_4 {
|
|
label {Two scheme 2}
|
|
callback {progdefaults.mbar_scheme = 4;
|
|
progdefaults.changed = true;
|
|
set_macroLabels();
|
|
UI_select();}
|
|
xywh {396 130 144 22} type Radio down_box ROUND_DOWN_BOX
|
|
}
|
|
Fl_Round_Button btn_scheme_6 {
|
|
label {Two scheme 4}
|
|
callback {progdefaults.mbar_scheme = 6;
|
|
progdefaults.changed = true;
|
|
set_macroLabels();
|
|
UI_select();}
|
|
xywh {396 155 144 22} type Radio down_box ROUND_DOWN_BOX
|
|
}
|
|
Fl_Round_Button btn_scheme_8 {
|
|
label {Two scheme 6}
|
|
callback {progdefaults.mbar_scheme = 8;
|
|
progdefaults.changed = true;
|
|
set_macroLabels();
|
|
UI_select();}
|
|
xywh {396 180 144 22} type Radio down_box ROUND_DOWN_BOX
|
|
}
|
|
Fl_Round_Button btn_scheme_10 {
|
|
label {Two scheme 8}
|
|
callback {progdefaults.mbar_scheme = 10;
|
|
progdefaults.changed = true;
|
|
set_macroLabels();
|
|
UI_select();}
|
|
xywh {396 205 144 22} type Radio down_box ROUND_DOWN_BOX
|
|
}
|
|
Fl_Round_Button btn_scheme_12 {
|
|
label {Two scheme 10}
|
|
callback {progdefaults.mbar_scheme = 12;
|
|
progdefaults.changed = true;
|
|
set_macroLabels();
|
|
UI_select();}
|
|
xywh {396 230 144 22} type Radio down_box ROUND_DOWN_BOX
|
|
}
|
|
}
|
|
Fl_Group {} {open
|
|
xywh {52 299 496 76} box ENGRAVED_FRAME
|
|
} {
|
|
Fl_Check_Button btnUseLastMacro {
|
|
label {Load last used macro file on startup}
|
|
callback {progdefaults.UseLastMacro = o->value();
|
|
update_main_title();
|
|
progdefaults.changed = true;}
|
|
tooltip {ON - use last set of macros
|
|
OFF - use default set} xywh {62 305 277 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.UseLastMacro);}
|
|
}
|
|
Fl_Check_Button btnDisplayMacroFilename {
|
|
label {Display macro filename on startup}
|
|
callback {progdefaults.DisplayMacroFilename = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {The filename is written to the RX text area} xywh {62 327 277 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.DisplayMacroFilename);}
|
|
}
|
|
Fl_Check_Button btn_save_macros_on_exit {
|
|
label {Prompt to save macro file when closing}
|
|
callback {btn2_save_macros_on_exit->value(o->value());
|
|
progdefaults.SaveMacros = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Write current macro set on program exit} xywh {62 349 305 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.SaveMacros);}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabWF_UI {
|
|
label {WF Ctrls}
|
|
tooltip {User Interface - Waterfall controls} xywh {0 50 600 330} hide
|
|
} {
|
|
Fl_Group {} {open
|
|
xywh {52 83 496 253} box ENGRAVED_BOX
|
|
} {
|
|
Fl_Box {} {
|
|
label {Enable check box to show each respective operator control}
|
|
xywh {81 90 446 25} box FLAT_BOX align 16
|
|
}
|
|
Fl_Check_Button btnWF_UIrev {
|
|
label Reverse
|
|
callback {progdefaults.WF_UIrev = o->value();
|
|
progdefaults.changed = true;
|
|
WF_UI();}
|
|
xywh {108 123 150 20} down_box DOWN_BOX value 1
|
|
code0 {o->value(progdefaults.WF_UIrev);}
|
|
}
|
|
Fl_Check_Button btnWF_UIx1 {
|
|
label {WF Magnification}
|
|
callback {progdefaults.WF_UIx1 = o->value();
|
|
progdefaults.changed = true;
|
|
WF_UI();}
|
|
xywh {327 123 162 20} down_box DOWN_BOX value 1
|
|
code0 {o->value(progdefaults.WF_UIx1);}
|
|
}
|
|
Fl_Check_Button btnWF_UIwfcarrier {
|
|
label {WF carrier}
|
|
callback {progdefaults.WF_UIwfcarrier = o->value();
|
|
progdefaults.changed = true;
|
|
WF_UI();}
|
|
xywh {108 154 150 20} down_box DOWN_BOX value 1
|
|
code0 {o->value(progdefaults.WF_UIwfcarrier);}
|
|
}
|
|
Fl_Check_Button btnWF_UIwfshift {
|
|
label {WF Shift Controls}
|
|
callback {progdefaults.WF_UIwfshift = o->value();
|
|
progdefaults.changed = true;
|
|
WF_UI();}
|
|
xywh {327 154 150 20} down_box DOWN_BOX value 1
|
|
code0 {o->value(progdefaults.WF_UIwfshift);}
|
|
}
|
|
Fl_Check_Button btnWF_UIwfreflevel {
|
|
label {WF ref level}
|
|
callback {progdefaults.WF_UIwfreflevel = o->value();
|
|
progdefaults.changed = true;
|
|
WF_UI();}
|
|
xywh {108 186 150 20} down_box DOWN_BOX value 1
|
|
code0 {o->value(progdefaults.WF_UIwfreflevel);}
|
|
}
|
|
Fl_Check_Button btnWF_UIwfdrop {
|
|
label {WF drop rate}
|
|
callback {progdefaults.WF_UIwfdrop = o->value();
|
|
progdefaults.changed = true;
|
|
WF_UI();}
|
|
xywh {327 186 150 20} down_box DOWN_BOX value 1
|
|
code0 {o->value(progdefaults.WF_UIwfdrop);}
|
|
}
|
|
Fl_Check_Button btnWF_UIwfampspan {
|
|
label {WF amp span}
|
|
callback {progdefaults.WF_UIwfampspan = o->value();
|
|
progdefaults.changed = true;
|
|
WF_UI();}
|
|
xywh {108 218 150 20} down_box DOWN_BOX value 1
|
|
code0 {o->value(progdefaults.WF_UIwfampspan);}
|
|
}
|
|
Fl_Check_Button btnWF_UIwfstore {
|
|
label {WF Store}
|
|
callback {progdefaults.WF_UIwfstore = o->value();
|
|
progdefaults.changed = true;
|
|
WF_UI();}
|
|
xywh {327 218 150 20} down_box DOWN_BOX value 1
|
|
code0 {o->value(progdefaults.WF_UIwfstore);}
|
|
}
|
|
Fl_Check_Button btnWF_UIwfmode {
|
|
label {WF mode}
|
|
callback {progdefaults.WF_UIwfmode = o->value();
|
|
progdefaults.changed = true;
|
|
WF_UI();}
|
|
xywh {108 250 150 20} down_box DOWN_BOX value 1
|
|
code0 {o->value(progdefaults.WF_UIwfmode);}
|
|
}
|
|
Fl_Check_Button btnWF_UIqsy {
|
|
label QSY
|
|
callback {progdefaults.WF_UIqsy = o->value();
|
|
progdefaults.changed = true;
|
|
WF_UI();}
|
|
xywh {327 250 150 20} down_box DOWN_BOX value 1
|
|
code0 {o->value(progdefaults.WF_UIqsy);}
|
|
}
|
|
Fl_Check_Button btnWF_UIxmtlock {
|
|
label {XMT lock}
|
|
callback {progdefaults.WF_UIxmtlock = o->value();
|
|
progdefaults.changed = true;
|
|
WF_UI();}
|
|
xywh {327 282 150 20} down_box DOWN_BOX value 1
|
|
code0 {o->value(progdefaults.WF_UIxmtlock);}
|
|
}
|
|
Fl_Button btn_wf_enable_all {
|
|
label {Enable all}
|
|
callback {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();}
|
|
xywh {152 305 88 20}
|
|
}
|
|
Fl_Button btn_wf_disable_all {
|
|
label {Disable all}
|
|
callback {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();}
|
|
xywh {351 305 88 20}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabColorsFonts {
|
|
label {Clrs/Fnts} open
|
|
tooltip {User Interface - Colors / Fonts} xywh {0 50 600 330} hide
|
|
} {
|
|
Fl_Tabs tabsColors {open
|
|
xywh {0 55 600 325}
|
|
} {
|
|
Fl_Group {} {
|
|
label {Rx/Tx} open
|
|
xywh {0 75 600 305}
|
|
} {
|
|
Fl_Group listbox_charset_status {
|
|
label {Rx/Tx Character set} open
|
|
tooltip {Select Rx/Tx Character Set} xywh {96 85 165 24} box BORDER_BOX color 55 align 8
|
|
code0 {\#include "fl_digi.h"}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);
|
|
listbox_charset_status->callback(cb_listbox_charset, 0);}
|
|
class Fl_ListBox
|
|
} {}
|
|
Fl_Input RxText {
|
|
xywh {96 116 220 36}
|
|
code0 {RxText->value("Receive Text");}
|
|
code1 {RxText->color(fl_rgb_color(progdefaults.RxColor.R, progdefaults.RxColor.G, progdefaults.RxColor.B));}
|
|
code2 {RxText->textfont(progdefaults.RxFontnbr); RxText->textsize(progdefaults.RxFontsize); RxText->textcolor(progdefaults.RxFontcolor);}
|
|
code3 {RxText->type(FL_MULTILINE_INPUT_WRAP);}
|
|
}
|
|
Fl_Button btnRxColor {
|
|
label {Rx bkgnd}
|
|
callback {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;}
|
|
xywh {326 123 75 21}
|
|
}
|
|
Fl_Button btnTxColor {
|
|
label {Tx bkgnd}
|
|
callback {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;}
|
|
xywh {326 166 75 21}
|
|
}
|
|
Fl_Input TxText {
|
|
xywh {96 158 220 37}
|
|
code0 {TxText->value("Transmit Text");}
|
|
code1 {TxText->color(fl_rgb_color(progdefaults.TxColor.R, progdefaults.TxColor.G, progdefaults.TxColor.B));}
|
|
code2 {TxText->textfont(progdefaults.TxFontnbr); TxText->textsize(progdefaults.TxFontsize); TxText->textcolor(progdefaults.TxFontcolor);}
|
|
code3 {TxText->type(FL_MULTILINE_INPUT_WRAP);}
|
|
}
|
|
Fl_Button btnRxFont {
|
|
label {Rx font}
|
|
callback {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();}
|
|
xywh {411 123 75 21}
|
|
}
|
|
Fl_Button btnTxFont {
|
|
label {Tx font}
|
|
callback {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();}
|
|
xywh {411 166 75 21}
|
|
}
|
|
Fl_Input MacroText {
|
|
xywh {96 201 220 37}
|
|
code0 {MacroText->value("Macro editor text");}
|
|
code1 {MacroText->textfont(progdefaults.MacroEditFontnbr);}
|
|
code2 {MacroText->textsize(progdefaults.MacroEditFontsize);}
|
|
code3 {MacroText->type(FL_MULTILINE_INPUT_WRAP);}
|
|
}
|
|
Fl_Button btnMacroEditFont {
|
|
label {Macro Edit Font}
|
|
callback {font_browser->fontNumber(progdefaults.MacroEditFontnbr);
|
|
font_browser->fontSize(progdefaults.MacroEditFontsize);
|
|
font_browser->fontFilter(Font_Browser::ALL_TYPES);
|
|
font_browser->callback(cbMacroEditFontBrowser);
|
|
font_browser->show();}
|
|
xywh {326 209 120 21}
|
|
}
|
|
Fl_Group {} {
|
|
label {Text Highlighting} open
|
|
xywh {86 248 404 81} box ENGRAVED_FRAME align 17
|
|
} {
|
|
Fl_Button btnXMIT {
|
|
label XMIT
|
|
callback {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;}
|
|
tooltip {Sent chars in Rx/Tx pane} xywh {104 276 40 21} align 2
|
|
code0 {btnXMIT->color(progdefaults.XMITcolor);}
|
|
}
|
|
Fl_Button btnCTRL {
|
|
label CTRL
|
|
callback {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;}
|
|
tooltip {Control chars in Rx/Tx pane} xywh {147 276 40 21} align 2
|
|
code0 {btnCTRL->color(progdefaults.CTRLcolor);}
|
|
}
|
|
Fl_Button btnSKIP {
|
|
label SKIP
|
|
callback {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;}
|
|
tooltip {Skipped chars in Tx pane
|
|
(Tx on/off in CW)} xywh {191 276 40 21} align 2
|
|
code0 {btnSKIP->color(progdefaults.SKIPcolor);}
|
|
}
|
|
Fl_Button btnALTR {
|
|
label ALTR
|
|
callback {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;}
|
|
tooltip {Alternate character color in Rx panelr} xywh {234 276 40 21} align 2
|
|
code0 {btnALTR->color(progdefaults.ALTRcolor);}
|
|
}
|
|
Fl_Button btnSEL {
|
|
label SEL
|
|
callback {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;}
|
|
tooltip {Selection background color in Rx Tx panels} xywh {278 276 39 21} align 2
|
|
code0 {btnSEL->color(progdefaults.RxTxSelectcolor);}
|
|
}
|
|
Fl_Button btnNoTextColor {
|
|
label System
|
|
callback {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;}
|
|
xywh {325 276 70 21}
|
|
}
|
|
Fl_Button btnTextDefaults {
|
|
label Defaults
|
|
callback {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;}
|
|
xywh {399 276 70 21}
|
|
}
|
|
}
|
|
Fl_Check_Button btn_show_all_codes {
|
|
label {display Rx control chars as ascii string}
|
|
callback {progdefaults.show_all_codes=o->value();
|
|
progdefaults.changed = true;}
|
|
xywh {110 340 25 25} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.show_all_codes);}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label {FreqDisp / Meters} open
|
|
xywh {0 75 600 305} hide
|
|
} {
|
|
Fl_Group {} {open
|
|
xywh {115 88 394 87} box ENGRAVED_FRAME
|
|
} {
|
|
Fl_Box FDdisplay {
|
|
label {14070.150}
|
|
xywh {195 92 235 45} box DOWN_BOX color 55 labelfont 4 labelsize 40
|
|
code0 {o->color(fl_rgb_color(progdefaults.FDbackground.R,progdefaults.FDbackground.G,progdefaults.FDbackground.B));}
|
|
code1 {o->labelcolor(fl_rgb_color(progdefaults.FDforeground.R,progdefaults.FDforeground.G,progdefaults.FDforeground.B));}
|
|
code2 {o->labelfont(progdefaults.FreqControlFontnbr);}
|
|
}
|
|
Fl_Button btn_freq_control_font {
|
|
label Font
|
|
callback {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();}
|
|
xywh {122 143 90 24}
|
|
}
|
|
Fl_Button btnBackgroundColor {
|
|
label {Bg Color}
|
|
callback {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;}
|
|
xywh {218 143 90 24}
|
|
}
|
|
Fl_Button btnForegroundColor {
|
|
label {Digit Color}
|
|
callback {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;}
|
|
xywh {314 143 90 24}
|
|
}
|
|
Fl_Button btnFD_SystemColor {
|
|
label {Sys Colors}
|
|
callback {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;}
|
|
xywh {410 143 90 24}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label {S-meter} open
|
|
xywh {115 179 420 62} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Button btnSmeter_bg_color {
|
|
label {Bg Color}
|
|
callback {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;}
|
|
xywh {122 206 90 24}
|
|
}
|
|
Fl_Button btnSmeter_scale_color {
|
|
label {Scale Color}
|
|
callback {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;}
|
|
xywh {218 206 90 24}
|
|
}
|
|
Fl_Button btnSmeter_meter_color {
|
|
label {Meter Color}
|
|
callback {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;}
|
|
xywh {314 206 90 24}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label {PWR-meter} open
|
|
xywh {115 248 394 67} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Button btnPWR_bg_color {
|
|
label {Bg Color}
|
|
callback {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;}
|
|
xywh {122 275 90 24}
|
|
}
|
|
Fl_Button btnPWR_scale_color {
|
|
label {Scale Color}
|
|
callback {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;}
|
|
xywh {218 275 90 24}
|
|
}
|
|
Fl_Button btnPWR_meter_Color {
|
|
label {Meter Color}
|
|
callback {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;}
|
|
xywh {314 275 90 24}
|
|
}
|
|
Fl_Group listboxPWRselect {
|
|
label {Power scale}
|
|
callback {progdefaults.PWRselect = o->index();
|
|
set_smeter_colors();
|
|
progdefaults.changed = true;} open
|
|
tooltip {Select the type of FFT prefilter} xywh {410 275 80 24} box DOWN_BOX color 7
|
|
code0 {o->add(_("25 W")); o->add("50 W");}
|
|
code1 {o->add("100 W"); o->add("200 W"); o->add("AUTO");}
|
|
code3 {o->index(progdefaults.PWRselect);o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label Log open
|
|
xywh {0 75 600 305} hide
|
|
} {
|
|
Fl_Group {} {
|
|
label {Logging Panel Controls} open
|
|
xywh {114 101 372 65} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Output LOGGINGdisplay {
|
|
xywh {132 125 98 25}
|
|
code0 {o->textfont(progdefaults.LOGGINGtextfont);o->textsize(progdefaults.LOGGINGtextsize);o->textcolor(progdefaults.LOGGINGtextcolor);}
|
|
code1 {o->color(progdefaults.LOGGINGcolor);}
|
|
code2 {o->value("W1HKJ");}
|
|
code3 {o->redraw();}
|
|
}
|
|
Fl_Button btnLOGGING_color {
|
|
label {Bg Color}
|
|
callback {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;}
|
|
xywh {240 125 80 25}
|
|
}
|
|
Fl_Button btn_LOGGING_font {
|
|
label Font
|
|
callback {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();}
|
|
xywh {330 125 55 25}
|
|
}
|
|
Fl_Button btnLOGGINGdefault_colors_font {
|
|
label Default
|
|
callback {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;}
|
|
xywh {396 125 80 25}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label {Logbook Dialog} open
|
|
xywh {115 176 370 65} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Output LOGBOOKdisplay {
|
|
xywh {131 200 98 25}
|
|
code0 {o->textfont(progdefaults.LOGGINGtextfont);o->textsize(progdefaults.LOGGINGtextsize);o->textcolor(progdefaults.LOGBOOKtextcolor);}
|
|
code1 {o->color(progdefaults.LOGBOOKcolor);}
|
|
code2 {o->value("14.070000");}
|
|
code3 {o->redraw();}
|
|
}
|
|
Fl_Button btnLOGBOOK_color {
|
|
label {Bg Color}
|
|
callback {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;}
|
|
xywh {239 200 80 25}
|
|
}
|
|
Fl_Button btn_LOGBOOK_font {
|
|
label Font
|
|
callback {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();}
|
|
xywh {329 200 55 25}
|
|
}
|
|
Fl_Button btnLOGBOOKdefault_colors_font {
|
|
label Default
|
|
callback {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;}
|
|
xywh {395 200 80 25}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label F_keys open
|
|
xywh {0 75 600 305} hide
|
|
} {
|
|
Fl_Check_Button btnUseGroupColors {
|
|
label {Use colored buttons}
|
|
callback {progdefaults.useGroupColors = o->value();
|
|
colorize_macros();
|
|
progdefaults.changed = true;}
|
|
xywh {135 107 165 21} down_box DOWN_BOX
|
|
code0 {btnUseGroupColors->value(progdefaults.useGroupColors);}
|
|
}
|
|
Fl_Button btnGroup1 {
|
|
label {Group 1}
|
|
callback {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;}
|
|
tooltip {Background color for Function key group 1} xywh {103 155 90 30}
|
|
code0 {btnGroup1->color(fl_rgb_color(progdefaults.btnGroup1.R, progdefaults.btnGroup1.G,progdefaults.btnGroup1.B));}
|
|
code1 {btnGroup1->labelcolor(progdefaults.MacroBtnFontcolor);}
|
|
}
|
|
Fl_Button btnGroup2 {
|
|
label {Group 2}
|
|
callback {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;}
|
|
tooltip {Background color for Function key group 2} xywh {205 155 90 30}
|
|
code0 {btnGroup2->color(fl_rgb_color(progdefaults.btnGroup2.R, progdefaults.btnGroup2.G,progdefaults.btnGroup2.B));}
|
|
code1 {btnGroup2->labelcolor(progdefaults.MacroBtnFontcolor);}
|
|
}
|
|
Fl_Button btnGroup3 {
|
|
label {Group 3}
|
|
callback {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;}
|
|
tooltip {Background color for Function key group 3} xywh {307 155 90 30}
|
|
code0 {btnGroup3->color(fl_rgb_color(progdefaults.btnGroup3.R, progdefaults.btnGroup3.G,progdefaults.btnGroup3.B));}
|
|
code1 {btnGroup3->labelcolor(progdefaults.MacroBtnFontcolor);}
|
|
}
|
|
Fl_Button btnFkeyDEfaults {
|
|
label Defaults
|
|
callback {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;}
|
|
xywh {410 155 90 30}
|
|
}
|
|
Fl_Button btnMacroBtnFont {
|
|
label {Font/Color}
|
|
callback {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();}
|
|
xywh {307 102 90 30}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label Tabs open
|
|
xywh {0 75 600 305} hide
|
|
} {
|
|
Fl_Button btnTabColor {
|
|
label {Tab Color}
|
|
callback {progdefaults.TabsColor = fl_show_colormap(progdefaults.TabsColor);
|
|
setTabColors();
|
|
progdefaults.changed = true;}
|
|
xywh {200 113 75 21}
|
|
}
|
|
Fl_Button btnTabDefaultColor {
|
|
label System
|
|
callback {progdefaults.TabsColor = FL_BACKGROUND2_COLOR;
|
|
setTabColors();
|
|
progdefaults.changed = true;}
|
|
xywh {330 113 75 21}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label Buttons open
|
|
xywh {0 75 600 305} hide
|
|
} {
|
|
Fl_Button btnSpotColor {
|
|
label Spot
|
|
callback {progdefaults.SpotColor = fl_show_colormap(progdefaults.SpotColor);
|
|
spotcolor->color(progdefaults.SpotColor);
|
|
spotcolor->redraw();
|
|
spot_selection_color();
|
|
progdefaults.changed = true;}
|
|
xywh {159 121 70 21}
|
|
}
|
|
Fl_Button btnRxIDColor {
|
|
label RxID
|
|
callback {progdefaults.RxIDColor = fl_show_colormap(progdefaults.RxIDColor);
|
|
rxidcolor->color(progdefaults.RxIDColor);
|
|
rxidcolor->redraw();
|
|
rxid_selection_color();
|
|
progdefaults.changed = true;}
|
|
xywh {159 157 70 21}
|
|
}
|
|
Fl_Button btnTxIDColor {
|
|
label TxID
|
|
callback {progdefaults.TxIDColor = fl_show_colormap(progdefaults.TxIDColor);
|
|
txidcolor->color(progdefaults.TxIDColor);
|
|
txidcolor->redraw();
|
|
txid_selection_color();
|
|
progdefaults.changed = true;}
|
|
xywh {159 193 70 20}
|
|
}
|
|
Fl_Button btnTuneColor {
|
|
label Tune
|
|
callback {progdefaults.TuneColor = fl_show_colormap(progdefaults.TuneColor);
|
|
tunecolor->color(progdefaults.TuneColor);
|
|
tunecolor->redraw();
|
|
tune_selection_color();
|
|
progdefaults.changed = true;}
|
|
xywh {159 229 70 21}
|
|
}
|
|
Fl_Button btnLkColor {
|
|
label Lk
|
|
callback {progdefaults.LkColor = fl_show_colormap(progdefaults.LkColor);
|
|
lockcolor->color(progdefaults.LkColor);
|
|
lockcolor->redraw();
|
|
xmtlock_selection_color();
|
|
progdefaults.changed = true;}
|
|
xywh {274 121 70 21}
|
|
}
|
|
Fl_Button btnRevColor {
|
|
label Rev
|
|
callback {progdefaults.RevColor = fl_show_colormap(progdefaults.RevColor);
|
|
revcolor->color(progdefaults.RevColor);
|
|
revcolor->redraw();
|
|
rev_selection_color();
|
|
progdefaults.changed = true;}
|
|
xywh {274 157 70 21}
|
|
}
|
|
Fl_Button btnXmtColor {
|
|
label {T/R}
|
|
callback {progdefaults.XmtColor = fl_show_colormap(progdefaults.XmtColor);
|
|
xmtcolor->color(progdefaults.XmtColor);
|
|
xmtcolor->redraw();
|
|
xmtrcv_selection_color();
|
|
progdefaults.changed = true;}
|
|
xywh {274 193 70 20}
|
|
}
|
|
Fl_Button btnAfcColor {
|
|
label AFC
|
|
callback {progdefaults.AfcColor = fl_show_colormap(progdefaults.AfcColor);
|
|
afccolor->color(progdefaults.AfcColor);
|
|
afccolor->redraw();
|
|
afc_selection_color();
|
|
progdefaults.changed = true;}
|
|
xywh {390 121 70 21}
|
|
}
|
|
Fl_Button btnSql1Color {
|
|
label {SQL-1}
|
|
callback {progdefaults.Sql1Color = fl_show_colormap(progdefaults.Sql1Color);
|
|
sql1color->color(progdefaults.Sql1Color);
|
|
sql1color->redraw();
|
|
sql_selection_color();
|
|
progdefaults.changed = true;}
|
|
xywh {390 157 70 21}
|
|
}
|
|
Fl_Button btnSql2Color {
|
|
label {SQL-2}
|
|
callback {progdefaults.Sql2Color = fl_show_colormap(progdefaults.Sql2Color);
|
|
sql2color->color(progdefaults.Sql2Color);
|
|
sql2color->redraw();
|
|
sql_selection_color();
|
|
progdefaults.changed = true;}
|
|
xywh {390 193 70 20}
|
|
}
|
|
Fl_Box spotcolor {
|
|
xywh {135 122 18 19} box THIN_DOWN_BOX color 3
|
|
code0 {o->color(progdefaults.SpotColor);}
|
|
}
|
|
Fl_Box rxidcolor {
|
|
xywh {135 158 18 19} box THIN_DOWN_BOX
|
|
code0 {o->color(progdefaults.RxIDColor);}
|
|
}
|
|
Fl_Box txidcolor {
|
|
xywh {135 194 18 18} box THIN_DOWN_BOX
|
|
code0 {o->color(progdefaults.TxIDColor);}
|
|
}
|
|
Fl_Box tunecolor {
|
|
xywh {135 230 18 19} box THIN_DOWN_BOX
|
|
code0 {o->color(progdefaults.TuneColor);}
|
|
}
|
|
Fl_Box lockcolor {
|
|
xywh {250 122 18 19} box THIN_DOWN_BOX color 3
|
|
code0 {o->color(progdefaults.LkColor);}
|
|
}
|
|
Fl_Box revcolor {
|
|
xywh {250 158 18 19} box THIN_DOWN_BOX
|
|
code0 {o->color(progdefaults.RevColor);}
|
|
}
|
|
Fl_Box xmtcolor {
|
|
xywh {250 194 18 18} box THIN_DOWN_BOX
|
|
code0 {o->color(progdefaults.XmtColor);}
|
|
}
|
|
Fl_Box afccolor {
|
|
xywh {365 122 18 19} box THIN_DOWN_BOX color 3
|
|
code0 {o->color(progdefaults.AfcColor);}
|
|
}
|
|
Fl_Box sql1color {
|
|
xywh {365 158 18 19} box THIN_DOWN_BOX
|
|
code0 {o->color(progdefaults.Sql1Color);}
|
|
}
|
|
Fl_Box sql2color {
|
|
xywh {365 194 18 18} box THIN_DOWN_BOX
|
|
code0 {o->color(progdefaults.Sql2Color);}
|
|
}
|
|
Fl_Box {} {
|
|
label {Lighted button enabled colors}
|
|
xywh {248 229 220 20} align 21
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label SigLvl open
|
|
xywh {0 75 600 305} hide
|
|
} {
|
|
Fl_Button btnLowSignal {
|
|
label Low
|
|
callback {progdefaults.LowSignal = fl_show_colormap(progdefaults.LowSignal);
|
|
lowcolor->color(progdefaults.LowSignal);
|
|
lowcolor->redraw();
|
|
progdefaults.changed = true;}
|
|
xywh {210 142 70 21}
|
|
}
|
|
Fl_Box lowcolor {
|
|
xywh {189 142 21 21} box DIAMOND_DOWN_BOX color 0
|
|
code0 {o->color(progdefaults.LowSignal);}
|
|
}
|
|
Fl_Button btnHighSignal {
|
|
label High
|
|
callback {progdefaults.HighSignal = fl_show_colormap(progdefaults.HighSignal);
|
|
highcolor->color(progdefaults.HighSignal);
|
|
highcolor->redraw();
|
|
progdefaults.changed = true;}
|
|
xywh {210 180 70 21}
|
|
}
|
|
Fl_Box highcolor {
|
|
xywh {189 180 21 21} box DIAMOND_DOWN_BOX color 3
|
|
code0 {o->color(progdefaults.HighSignal);}
|
|
}
|
|
Fl_Button btnNormalSignal {
|
|
label Normal
|
|
callback {progdefaults.NormSignal = fl_show_colormap(progdefaults.NormSignal);
|
|
normalcolor->color(progdefaults.NormSignal);
|
|
normalcolor->redraw();
|
|
progdefaults.changed = true;}
|
|
xywh {333 142 70 21}
|
|
}
|
|
Fl_Box normalcolor {
|
|
xywh {312 141 21 21} box DIAMOND_DOWN_BOX color 2
|
|
code0 {o->color(progdefaults.NormSignal);}
|
|
}
|
|
Fl_Button btnOverSignal {
|
|
label Over
|
|
callback {progdefaults.OverSignal = fl_show_colormap(progdefaults.OverSignal);
|
|
overcolor->color(progdefaults.OverSignal);
|
|
overcolor->redraw();
|
|
progdefaults.changed = true;}
|
|
xywh {333 180 70 21}
|
|
}
|
|
Fl_Box overcolor {
|
|
xywh {312 180 21 21} box DIAMOND_DOWN_BOX color 1
|
|
code0 {o->color(progdefaults.OverSignal);}
|
|
}
|
|
Fl_Box {} {
|
|
label {Signal Level Colors}
|
|
xywh {135 110 316 21}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tab_touch {
|
|
label Touch open
|
|
xywh {0 50 600 330} hide
|
|
} {
|
|
Fl_Box {} {
|
|
label {Note:
|
|
These configuration items are useful for but not unique to using fldigi on a
|
|
touch screen device such as a tablet.}
|
|
xywh {15 70 570 52} align 20
|
|
}
|
|
Fl_Group {} {
|
|
label {Arrow Key Control of Frequency Entry} open
|
|
xywh {15 145 570 102} box ENGRAVED_BOX align 21
|
|
} {
|
|
Fl_Box {} {
|
|
label {Right/Left = 1 x LSD
|
|
Up/Dn= 10 x LSD
|
|
Shift - Right/Left = 100 x LSD
|
|
Shift - Up/Dn = 1000 x LSD}
|
|
xywh {30 170 290 74} align 16
|
|
}
|
|
Fl_Choice sel_lsd {
|
|
label {Right/Left
|
|
Select Least Signficant Digit}
|
|
callback {progdefaults.sel_lsd = o->value();
|
|
set_freq_control_lsd();
|
|
progdefaults.changed = true;} open
|
|
xywh {420 206 90 24} down_box BORDER_BOX align 1
|
|
code0 {o->add("1 Hz|10 Hz|100 Hz|1 kHz");}
|
|
code1 {o->value(progdefaults.sel_lsd);}
|
|
} {}
|
|
}
|
|
Fl_Group {} {
|
|
label {Rx / Tx Panels} open
|
|
xywh {15 256 570 64} box ENGRAVED_BOX align 21
|
|
} {
|
|
Fl_Check_Button btn_rxtx_swap {
|
|
label {Tx above Rx}
|
|
callback {progdefaults.rxtx_swap = o->value();
|
|
progdefaults.changed = true;
|
|
UI_select();}
|
|
tooltip {Enable to put Tx panel above Rx panel} xywh {145 276 116 30} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.rxtx_swap);}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabWaterfall {
|
|
label Waterfall
|
|
xywh {0 25 600 355} hide
|
|
} {
|
|
Fl_Tabs tabsWaterfall {open
|
|
xywh {0 25 600 355} color 50 selection_color 50
|
|
} {
|
|
Fl_Group {} {
|
|
label Display open
|
|
xywh {0 50 600 330}
|
|
} {
|
|
Fl_Group {} {
|
|
label {Colors and cursors} open
|
|
xywh {50 63 496 190} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Button WF_Palette {
|
|
label aa
|
|
callback {progdefaults.changed = true;}
|
|
xywh {60 99 380 24} box DOWN_BOX color 0 labelsize 12 align 5
|
|
code0 {\#include "colorbox.h"}
|
|
code1 {o->label(progdefaults.PaletteName.c_str());}
|
|
code2 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class colorbox
|
|
}
|
|
Fl_Button {btnColor[0]} {
|
|
callback {selectColor(0);
|
|
progdefaults.changed = true;}
|
|
tooltip {Change color} xywh {60 125 20 24}
|
|
}
|
|
Fl_Button {btnColor[1]} {
|
|
callback {selectColor(1);
|
|
progdefaults.changed = true;}
|
|
tooltip {Change color} xywh {105 125 20 24}
|
|
}
|
|
Fl_Button {btnColor[2]} {
|
|
callback {selectColor(2);
|
|
progdefaults.changed = true;}
|
|
tooltip {Change color} xywh {150 125 20 24}
|
|
}
|
|
Fl_Button {btnColor[3]} {
|
|
callback {selectColor(3);
|
|
progdefaults.changed = true;}
|
|
tooltip {Change color} xywh {195 125 20 24}
|
|
}
|
|
Fl_Button {btnColor[4]} {
|
|
callback {selectColor(4);
|
|
progdefaults.changed = true;}
|
|
tooltip {Change color} xywh {240 125 20 24}
|
|
}
|
|
Fl_Button {btnColor[5]} {
|
|
callback {selectColor(5);
|
|
progdefaults.changed = true;}
|
|
tooltip {Change color} xywh {285 125 20 24}
|
|
}
|
|
Fl_Button {btnColor[6]} {
|
|
callback {selectColor(6);
|
|
progdefaults.changed = true;}
|
|
tooltip {Change color} xywh {330 125 20 24}
|
|
}
|
|
Fl_Button {btnColor[7]} {
|
|
callback {selectColor(7);
|
|
progdefaults.changed = true;}
|
|
tooltip {Change color} xywh {375 125 20 24}
|
|
}
|
|
Fl_Button {btnColor[8]} {
|
|
callback {selectColor(8);
|
|
progdefaults.changed = true;}
|
|
tooltip {Change color} xywh {420 125 20 24}
|
|
}
|
|
Fl_Button btnLoadPalette {
|
|
label {Load...}
|
|
callback {loadPalette();
|
|
progdefaults.changed = true;}
|
|
tooltip {Load a new palette} xywh {450 99 70 24}
|
|
code0 {\#include "colorbox.h"}
|
|
}
|
|
Fl_Button btnSavePalette {
|
|
label {Save...}
|
|
callback {savePalette();}
|
|
tooltip {Save this palette} xywh {450 125 70 24}
|
|
code0 {\#include "colorbox.h"}
|
|
}
|
|
Fl_Group {} {
|
|
label Bandwidth open
|
|
xywh {59 153 113 96} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Check_Button btnUseCursorLines {
|
|
label ON
|
|
callback {progdefaults.UseCursorLines = o->value();
|
|
if (o->value())
|
|
btnCursorBWcolor->activate();
|
|
else
|
|
btnCursorBWcolor->deactivate();
|
|
progdefaults.changed = true;}
|
|
tooltip {Show cursor with bandwidth lines} xywh {61 173 56 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.UseCursorLines);}
|
|
}
|
|
Fl_Button btnCursorBWcolor {
|
|
label Color
|
|
callback {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;
|
|
}}
|
|
tooltip {Change color} xywh {61 196 20 20} color 3 align 8
|
|
code0 {\#include <FL/Fl_Color_Chooser.H>}
|
|
code1 {o->color(fl_rgb_color(progdefaults.cursorLineRGBI.R,progdefaults.cursorLineRGBI.G,progdefaults.cursorLineRGBI.B));}
|
|
}
|
|
Fl_Check_Button btnUseWideCursor {
|
|
label Wide
|
|
callback {progdefaults.UseWideCursor = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Show bandwidth tracks on waterfall} xywh {61 219 62 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.UseWideCursor);}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label {Center line} open
|
|
xywh {183 153 113 96} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Check_Button btnUseCursorCenterLine {
|
|
label ON
|
|
callback {progdefaults.UseCursorCenterLine = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Show cursor with center line} xywh {189 173 48 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.UseCursorCenterLine);}
|
|
}
|
|
Fl_Button btnCursorCenterLineColor {
|
|
label Color
|
|
callback {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;
|
|
}}
|
|
tooltip {Change color} xywh {189 196 20 20} color 7 align 8
|
|
code0 {o->color(fl_rgb_color(progdefaults.cursorCenterRGBI.R,progdefaults.cursorCenterRGBI.G,progdefaults.cursorCenterRGBI.B));}
|
|
}
|
|
Fl_Check_Button btnUseWideCenter {
|
|
label Wide
|
|
callback {progdefaults.UseWideCenter = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Show bandwidth tracks on waterfall} xywh {189 221 69 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.UseWideCenter);}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label {Signal tracks} open
|
|
xywh {306 153 113 96} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Check_Button btnUseBWTracks {
|
|
label ON
|
|
callback {progdefaults.UseBWTracks = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Show bandwidth tracks on waterfall} xywh {308 172 56 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.UseBWTracks);}
|
|
}
|
|
Fl_Button btnBwTracksColor {
|
|
label Color
|
|
callback {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;
|
|
}}
|
|
tooltip {Change color} xywh {308 195 20 20} color 1 align 8
|
|
code0 {o->color(fl_rgb_color(progdefaults.bwTrackRGBI.R,progdefaults.bwTrackRGBI.G,progdefaults.bwTrackRGBI.B));}
|
|
}
|
|
Fl_Check_Button btnUseWideTracks {
|
|
label Wide
|
|
callback {progdefaults.UseWideTracks = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Show bandwidth tracks on waterfall} xywh {308 219 74 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.UseWideTracks);}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label Notch open
|
|
xywh {426 153 113 96} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Button btnNotchColor {
|
|
label Color
|
|
callback {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;
|
|
}}
|
|
tooltip {Change color} xywh {428 195 20 20} color 1 align 8
|
|
code0 {o->color(fl_rgb_color(progdefaults.notchRGBI.R,progdefaults.notchRGBI.G,progdefaults.notchRGBI.B));}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label {Frequency scale} open
|
|
xywh {50 254 496 55} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Check_Button chkShowAudioScale {
|
|
label {Always show audio frequencies}
|
|
callback {progdefaults.wf_audioscale = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Audio or RF frequencies on waterfall scale} xywh {60 277 241 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.wf_audioscale);}
|
|
}
|
|
Fl_Button btnWaterfallFont {
|
|
label {Font...}
|
|
callback {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();}
|
|
tooltip {Select waterfall scale font} xywh {360 277 71 24}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label {Transmit signal} open
|
|
xywh {50 310 496 65} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Check_Button btnViewXmtSignal {
|
|
label {Monitor transmitted signal}
|
|
callback {progdefaults.viewXmtSignal=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Show transmit signal on waterfall} xywh {60 336 208 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.viewXmtSignal);}
|
|
}
|
|
Fl_Value_Slider valTxMonitorLevel {
|
|
label {Signal level}
|
|
callback {progdefaults.TxMonitorLevel = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Set level for good viewing} xywh {318 336 203 20} type Horizontal align 1 step 0.05 value 0.5 textsize 14
|
|
code0 {o->value(progdefaults.TxMonitorLevel);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE); o->textsize(FL_NORMAL_SIZE);}
|
|
class Fl_Value_Slider2
|
|
}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label {FFT Processing} open
|
|
xywh {0 50 600 330} hide
|
|
} {
|
|
Fl_Group {} {open
|
|
xywh {55 71 490 135} box ENGRAVED_FRAME
|
|
} {
|
|
Fl_Counter cntLowFreqCutoff {
|
|
label {Lower limit}
|
|
callback {progdefaults.LowFreqCutoff=(int)(o->value());
|
|
progdefaults.changed = true;
|
|
setwfrange();}
|
|
tooltip {Low frequency limit in Hz} xywh {100 89 70 22} type Simple align 8 minimum 0 maximum 500 step 50 value 300
|
|
code0 {o->value(progdefaults.LowFreqCutoff);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Counter2
|
|
}
|
|
Fl_Check_Button btnWFaveraging {
|
|
label {FFT averaging}
|
|
callback {progdefaults.WFaveraging = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Use averaging to decrease waterfall noise} xywh {100 125 120 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.WFaveraging);}
|
|
}
|
|
Fl_Group listboxFFTPrefilter {
|
|
label {FFT prefilter window function}
|
|
callback {progdefaults.wfPreFilter = o->index();
|
|
progdefaults.changed = true;} open
|
|
tooltip {Select the type of FFT prefilter} xywh {100 155 120 24} box DOWN_BOX color 7 align 8
|
|
code0 {listboxFFTPrefilter->add(_("Rectangular")); listboxFFTPrefilter->add("Blackman");}
|
|
code1 {listboxFFTPrefilter->add("Hamming"); listboxFFTPrefilter->add("Hanning");}
|
|
code2 {listboxFFTPrefilter->add(_("Triangular"));}
|
|
code3 {listboxFFTPrefilter->index(progdefaults.wfPreFilter);
|
|
o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
Fl_Counter cntrWfwidth {
|
|
label {Upper limit}
|
|
callback {progdefaults.HighFreqCutoff = (int)o->value();
|
|
progdefaults.changed = true;
|
|
setwfrange();}
|
|
tooltip {High frequency limit in Hz} xywh {323 89 95 22} type Simple align 8 minimum 2000 maximum 4000 step 100 value 3000
|
|
code0 {o->value(progdefaults.HighFreqCutoff);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Counter2
|
|
}
|
|
Fl_Counter wf_latency {
|
|
label Latency
|
|
callback {progdefaults.wf_latency = (int)o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Signal averaging over time
|
|
0 - least
|
|
4 - greatest} xywh {323 124 95 22} type Simple align 8 minimum 1 maximum 16 step 1 value 8
|
|
code0 {o->value(progdefaults.wf_latency);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Counter2
|
|
}
|
|
}
|
|
Fl_Group {} {open
|
|
tooltip {Show me more or less waterfall} xywh {55 212 490 73} box ENGRAVED_FRAME align 17
|
|
} {
|
|
Fl_Counter cntr_drop_speed {
|
|
label {Slow drop rate}
|
|
callback {progdefaults.drop_speed=(int)o->value();
|
|
progdefaults.changed=true;}
|
|
tooltip {Normal drop speed / value} xywh {100 234 95 22} type Simple align 11 minimum 4 maximum 32 step 2 value 4
|
|
code0 {o->value(progdefaults.drop_speed);}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label {Changes take effect on next program startup} open
|
|
tooltip {Show me more or less waterfall} xywh {55 292 490 73} box ENGRAVED_FRAME align 17
|
|
} {
|
|
Fl_Counter cntrWfheight {
|
|
label {Waterfall height in pixels}
|
|
callback {progdefaults.wfheight = (int)o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {CPU usage increases with waterfall height} xywh {100 322 120 22} align 8 minimum 100 maximum 500 step 5 value 120
|
|
code0 {o->value(progdefaults.wfheight);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
code2 {o->lstep(50);}
|
|
class Fl_Counter2
|
|
}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label Mouse open
|
|
xywh {0 50 600 330} hide
|
|
} {
|
|
Fl_Group {} {open
|
|
xywh {55 73 490 170} box ENGRAVED_FRAME
|
|
} {
|
|
Fl_Check_Button btnWaterfallHistoryDefault {
|
|
label {Left or right click always replays audio history}
|
|
callback {progdefaults.WaterfallHistoryDefault = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Replay trackline audio} xywh {65 87 340 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.WaterfallHistoryDefault);}
|
|
}
|
|
Fl_Check_Button btnWaterfallQSY {
|
|
label {Dragging on the waterfall scale changes frequency}
|
|
callback {progdefaults.WaterfallQSY = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Enable drag cursor on waterfall scale} xywh {65 117 380 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.WaterfallQSY);}
|
|
}
|
|
Fl_Check_Button btnWaterfallClickInsert {
|
|
label {Insert text on single left click}
|
|
callback {progdefaults.WaterfallClickInsert = o->value();
|
|
if (progdefaults.WaterfallClickInsert)
|
|
inpWaterfallClickText->activate();
|
|
else
|
|
inpWaterfallClickText->deactivate();
|
|
progdefaults.changed = true;}
|
|
tooltip {Insert special text in Rx panel
|
|
when waterfall clicked} xywh {65 159 225 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.WaterfallClickInsert);}
|
|
}
|
|
Fl_Input inpWaterfallClickText {
|
|
callback {progdefaults.WaterfallClickText = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {The string <FREQ> is replaced with
|
|
the current modem and frequency} xywh {351 147 180 50} align 8
|
|
class Fl_Input2
|
|
}
|
|
}
|
|
Fl_Group listboxWaterfallWheelAction {
|
|
label {Wheel action}
|
|
callback {progdefaults.WaterfallWheelAction = o->index();
|
|
progdefaults.changed = true;} open
|
|
tooltip {Select how the mouse wheel
|
|
behaves inside the waterfall} xywh {65 207 150 22} box DOWN_BOX color 7 align 8
|
|
code0 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabModems {
|
|
label Modems open
|
|
xywh {0 25 600 355}
|
|
} {
|
|
Fl_Tabs tabsModems {open
|
|
xywh {0 25 600 355} selection_color 50 align 9
|
|
} {
|
|
Fl_Group tabCW {
|
|
label CW open
|
|
xywh {0 50 600 330} hide
|
|
} {
|
|
Fl_Tabs tabsCW {open
|
|
xywh {0 50 600 330} selection_color 50
|
|
} {
|
|
Fl_Group {} {
|
|
label General open
|
|
xywh {0 75 600 305} align 5 hide
|
|
} {
|
|
Fl_Group {} {
|
|
label Receive open
|
|
xywh {35 85 530 130} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Value_Slider sldrCWbandwidth {
|
|
label {Filter bandwidth}
|
|
callback {progdefaults.CWbandwidth = (int)o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {CW dsp filter bandwidth} xywh {50 149 335 20} type Horizontal align 5 minimum 10 maximum 400 step 1 value 66 textsize 14
|
|
code0 {o->value(progdefaults.CWbandwidth);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE); o->textsize(FL_NORMAL_SIZE);}
|
|
class Fl_Value_Slider2
|
|
}
|
|
Fl_Value_Output valCWrcvWPM {
|
|
label {Rx WPM}
|
|
callback {progdefaults.changed = true;}
|
|
xywh {50 188 35 20} color 7 align 5
|
|
}
|
|
Fl_Progress prgsCWrcvWPM {
|
|
tooltip {Tracked CW speed in WPM} xywh {86 188 300 20} color 49 selection_color 15 align 0
|
|
}
|
|
Fl_Check_Button btnCWuseSOMdecoding {
|
|
label {SOM decoding}
|
|
callback {progdefaults.CWuseSOMdecoding = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Self Organizing Mapping} xywh {63 108 125 20} down_box DOWN_BOX value 1
|
|
code0 {o->value(progdefaults.CWuseSOMdecoding);}
|
|
}
|
|
Fl_Counter cntLower {
|
|
label Lower
|
|
callback {progdefaults.CWlower = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Detector low threshold} xywh {209 108 65 20} type Simple align 1 minimum 0.01 maximum 0.99 step 0.01 value 0.45
|
|
code0 {o->value(progdefaults.CWlower);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Counter2
|
|
}
|
|
Fl_Counter cntUpper {
|
|
label Upper
|
|
callback {progdefaults.CWupper = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Detector high threshold} xywh {302 108 65 20} type Simple align 1 minimum 0.01 maximum 0.99 step 0.01 value 0.55
|
|
code0 {o->value(progdefaults.CWupper);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Counter2
|
|
}
|
|
Fl_Check_Button btnCWmfilt {
|
|
label {Matched Filter}
|
|
callback {progdefaults.CWmfilt = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Matched Filter bandwidth} xywh {397 108 80 20} down_box DOWN_BOX value 1
|
|
code0 {o->value(progdefaults.CWmfilt);}
|
|
}
|
|
Fl_Check_Button btnCWuseFFTfilter {
|
|
label {FFT filter}
|
|
callback {progdefaults.CWuse_fft_filter = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {FFT / FIR filter} xywh {397 134 125 20} down_box DOWN_BOX value 1
|
|
code0 {o->value(progdefaults.CWuse_fft_filter);}
|
|
}
|
|
Fl_Check_Button btnCWrcvTrack {
|
|
label Tracking
|
|
callback {progdefaults.CWtrack = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Automatic Rx speed tracking} xywh {397 160 80 20} down_box DOWN_BOX value 1
|
|
code0 {o->value(progdefaults.CWtrack);}
|
|
}
|
|
Fl_Counter cntCWrange {
|
|
label {Range, WPM}
|
|
callback {progdefaults.CWrange = (int)o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Range +/- wpm} xywh {397 187 65 20} type Simple align 8 minimum 5 maximum 25 step 1 value 10
|
|
code0 {o->value(progdefaults.CWrange);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Counter2
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label Transmit open
|
|
xywh {35 215 530 150} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Value_Slider sldrCWxmtWPM {
|
|
label {TX WPM}
|
|
callback {progdefaults.CWspeed = (int)o->value();
|
|
cntCW_WPM->value(progdefaults.CWspeed);
|
|
progdefaults.changed = true;
|
|
sync_cw_parameters();}
|
|
tooltip {My transmit CW WPM} xywh {50 240 440 20} type Horizontal align 8 minimum 5 maximum 100 step 1 value 20 textsize 14
|
|
code0 {o->value(progdefaults.CWspeed);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE); o->textsize(FL_NORMAL_SIZE);}
|
|
class Fl_Value_Slider2
|
|
}
|
|
Fl_Counter cntCWdefWPM {
|
|
label Default
|
|
callback {progdefaults.defCWspeed = (int)o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {The default CW speed} xywh {91 281 64 20} type Simple align 1 minimum 5 maximum 200 step 1 value 18
|
|
code0 {o->value(progdefaults.defCWspeed);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Counter2
|
|
}
|
|
Fl_Counter cntCWlowerlimit {
|
|
label {Lower limit}
|
|
callback {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);}
|
|
tooltip {No slower than this} xywh {245 281 65 20} type Simple align 1 minimum 5 maximum 20 step 5 value 10
|
|
code0 {o->value(progdefaults.CWlowerlimit);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
}
|
|
Fl_Counter cntCWupperlimit {
|
|
label {Upper limit}
|
|
callback {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);}
|
|
tooltip {No faster than this} xywh {401 281 65 20} type Simple align 1 minimum 25 maximum 200 step 5 value 100
|
|
code0 {o->value(progdefaults.CWupperlimit);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
}
|
|
Fl_Value_Slider sldrCWfarnsworth {
|
|
label {F-WPM}
|
|
callback {progdefaults.CWfarnsworth = (int)o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {My transmit CW WPM} xywh {50 335 440 20} type Horizontal align 8 minimum 5 maximum 100 step 1 value 20 textsize 14
|
|
code0 {o->value(progdefaults.CWfarnsworth);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE); o->textsize(FL_NORMAL_SIZE);}
|
|
class Fl_Value_Slider2
|
|
}
|
|
Fl_Check_Button btnCWusefarnsworth {
|
|
label {Use Farnsworth timing}
|
|
callback {progdefaults.CWusefarnsworth=o->value();
|
|
progdefaults.changed = true;}
|
|
xywh {70 312 180 15} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.CWusefarnsworth);}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label {Timing and QSK} open
|
|
xywh {0 75 600 305} align 5
|
|
} {
|
|
Fl_Group {} {
|
|
label Timing open
|
|
xywh {5 85 585 120} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Counter cntCWweight {
|
|
label {Weight (%)}
|
|
callback {progdefaults.CWweight=(int)o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Dot to dot-space ratio} xywh {20 110 65 20} type Simple align 8 minimum 20 maximum 80 step 1 value 50
|
|
code0 {o->value(progdefaults.CWweight);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Counter2
|
|
}
|
|
Fl_Counter cntCWdash2dot {
|
|
label {Dash/Dot}
|
|
callback {progdefaults.CWdash2dot=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Dash to dot ratio} xywh {245 110 80 20} type Simple align 8 minimum 2.5 maximum 4 value 3
|
|
code0 {o->value(progdefaults.CWdash2dot);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Counter2
|
|
}
|
|
Fl_Counter cntCWrisetime {
|
|
label {Edge timing}
|
|
callback {progdefaults.CWrisetime=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Leading and Trailing edge risetimes (msec)} xywh {245 143 80 20} type Simple align 8 minimum 0 maximum 15 value 4
|
|
code0 {o->value(progdefaults.CWrisetime);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Counter2
|
|
}
|
|
Fl_Group i_listboxQSKshape {
|
|
label {Edge shape}
|
|
callback {progdefaults.QSKshape = o->index();
|
|
progdefaults.changed = true;} open
|
|
tooltip {Hanning/Blackman - use edge timing
|
|
BPF - use BPF bandwidth} xywh {20 143 112 20} box DOWN_BOX color 7 align 8
|
|
code0 {o->add("Hanning|Blackman");}
|
|
code1 {o->index(progdefaults.QSKshape);}
|
|
code2 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
Fl_Check_Button btnCWnarrow {
|
|
label {Edge decrease}
|
|
callback {progdefaults.CWnarrow = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Weight decreases with increasing edge timing} xywh {450 145 131 15} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.CWnarrow);}
|
|
}
|
|
Fl_Check_Button btnCW_bpf_on {
|
|
label {BPF transmit audio}
|
|
callback {progdefaults.CW_bpf_on = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Enable LO/HI bfp of transmit audio} xywh {20 180 167 15} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.CW_bpf_on);}
|
|
}
|
|
Fl_Counter cntCW_hpf {
|
|
label {BPF bw}
|
|
callback {progdefaults.CW_bpf=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Low filter cutoff} xywh {235 177 100 20} align 8 minimum 10 maximum 1000 step 1 value 100
|
|
code0 {o->value(progdefaults.CW_bpf);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
code2 {o->lstep(10.0);}
|
|
class Fl_Counter2
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label QSK open
|
|
xywh {5 217 585 118} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Check_Button btnQSK {
|
|
label {QSK on right audio channel}
|
|
callback {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);
|
|
}}
|
|
tooltip {Generate square wave signal on right channel} xywh {16 245 233 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.QSK);}
|
|
}
|
|
Fl_Counter cntPreTiming {
|
|
label {Pre-keydown timing (ms)}
|
|
callback {progdefaults.CWpre=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Msec pre-keydown (+ is earlier in time)} xywh {16 275 71 20} type Simple align 8 minimum 0 maximum 20 step 0.5
|
|
code0 {o->value(progdefaults.CWpre);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Counter2
|
|
}
|
|
Fl_Counter cntPostTiming {
|
|
label {Post-keydown timing (ms)}
|
|
callback {progdefaults.CWpost=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Msec post-keydown (+ is earlier in time)} xywh {16 305 71 20} type Simple align 8 minimum -20 maximum 20 step 0.5
|
|
code0 {o->value(progdefaults.CWpre);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Counter2
|
|
}
|
|
Fl_Check_Button btnQSKadjust {
|
|
label {Send continuously}
|
|
callback {progdefaults.QSKadjust = o->value();}
|
|
tooltip {Send a continuous stream of test characters} xywh {320 275 176 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.QSKadjust);}
|
|
}
|
|
Fl_Group i_listbox_test_char {
|
|
label {Test char}
|
|
callback {progdefaults.TestChar = o->index();} open
|
|
tooltip {Test character for QSK adjustment} xywh {320 245 45 20} box DOWN_BOX color 7 align 8
|
|
code0 {extern char szTestChar[];}
|
|
code1 {o->add(szTestChar);}
|
|
code2 {o->index(progdefaults.TestChar);}
|
|
code3 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label Prosigns open
|
|
xywh {0 75 600 305} align 5 hide
|
|
} {
|
|
Fl_Group {} {open
|
|
xywh {35 85 530 283} box ENGRAVED_FRAME
|
|
} {
|
|
Fl_Check_Button btnCW_use_paren {
|
|
label {Use '(' paren not KN}
|
|
callback {progdefaults.CW_use_paren=o->value();
|
|
progdefaults.changed = true;}
|
|
xywh {266 244 68 15} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.CW_use_paren);}
|
|
}
|
|
}
|
|
Fl_Group {listbox_prosign[0]} {
|
|
label {<BT>}
|
|
callback {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;} open
|
|
xywh {167 102 47 22} box DOWN_BOX color 7 align 4
|
|
code0 {o->add(szProsigns);}
|
|
code1 {char s[2] = " "; s[0] = progdefaults.CW_prosigns[0];}
|
|
code2 {o->value(s);
|
|
o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
Fl_Group {listbox_prosign[1]} {
|
|
label {<AA>}
|
|
callback {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;} open
|
|
xywh {167 129 47 22} box DOWN_BOX color 7 align 4
|
|
code0 {o->add(szProsigns);}
|
|
code1 {char s[2] = " "; s[0] = progdefaults.CW_prosigns[1];}
|
|
code2 {o->value(s);
|
|
o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
Fl_Group {listbox_prosign[2]} {
|
|
label {<AS>}
|
|
callback {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;} open
|
|
xywh {167 157 47 22} box DOWN_BOX color 7 align 4
|
|
code0 {o->add(szProsigns);}
|
|
code1 {char s[2] = " "; s[0] = progdefaults.CW_prosigns[2];}
|
|
code2 {o->value(s);
|
|
o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
Fl_Group {listbox_prosign[3]} {
|
|
label {<AR>}
|
|
callback {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;} open
|
|
xywh {167 184 47 22} box DOWN_BOX color 7 align 4
|
|
code0 {o->add(szProsigns);}
|
|
code1 {char s[2] = " "; s[0] = progdefaults.CW_prosigns[3];}
|
|
code2 {o->value(s);}
|
|
class Fl_ListBox
|
|
} {}
|
|
Fl_Group {listbox_prosign[4]} {
|
|
label {<SK>}
|
|
callback {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;} open
|
|
xywh {167 212 47 22} box DOWN_BOX color 7 align 4
|
|
code0 {o->add(szProsigns);}
|
|
code1 {char s[2] = " "; s[0] = progdefaults.CW_prosigns[4];}
|
|
code2 {o->value(s);
|
|
o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
Fl_Group {listbox_prosign[5]} {
|
|
label {<KN>}
|
|
callback {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;} open
|
|
xywh {167 240 47 22} box DOWN_BOX color 7 align 4
|
|
code0 {o->add(szProsigns);}
|
|
code1 {char s[2] = " "; s[0] = progdefaults.CW_prosigns[5];}
|
|
code2 {o->value(s);
|
|
o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
Fl_Group {listbox_prosign[6]} {
|
|
label {<INT>}
|
|
callback {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;} open
|
|
xywh {167 267 47 22} box DOWN_BOX color 7 align 4
|
|
code0 {o->add(szProsigns);}
|
|
code1 {char s[2] = " "; s[0] = progdefaults.CW_prosigns[6];}
|
|
code2 {o->value(s);
|
|
o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
Fl_Group {listbox_prosign[7]} {
|
|
label {<HM>}
|
|
callback {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;;} open
|
|
xywh {167 295 47 22} box DOWN_BOX color 7 align 4
|
|
code0 {o->add(szProsigns);}
|
|
code1 {char s[2] = " "; s[0] = progdefaults.CW_prosigns[7];}
|
|
code2 {o->value(s);
|
|
o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
Fl_Group {listbox_prosign[8]} {
|
|
label {<VE>}
|
|
callback {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;} open
|
|
xywh {167 323 47 22} box DOWN_BOX color 7 align 4
|
|
code0 {o->add(szProsigns);}
|
|
code1 {char s[2] = " "; s[0] = progdefaults.CW_prosigns[8];}
|
|
code2 {o->value(s);
|
|
o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabDomEX {
|
|
label Dom
|
|
xywh {0 50 600 330} hide
|
|
} {
|
|
Fl_Group {} {open
|
|
xywh {55 60 490 180} box ENGRAVED_FRAME
|
|
} {
|
|
Fl_Input txtSecondary {
|
|
label {Secondary Text}
|
|
callback {progdefaults.secText = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Text to send during keyboard idle times} xywh {65 87 360 40} type Multiline align 5 when 1
|
|
code0 {txtSecondary->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Input2
|
|
}
|
|
Fl_Check_Button valDominoEX_FILTER {
|
|
label Filtering
|
|
callback {progdefaults.DOMINOEX_FILTER = o->value();
|
|
resetDOMEX();
|
|
progdefaults.changed = true;}
|
|
tooltip {Use DSP filter before decoder} xywh {65 141 80 20} down_box DOWN_BOX value 1
|
|
code0 {o->value(progdefaults.DOMINOEX_FILTER);}
|
|
}
|
|
Fl_Counter valDominoEX_BW {
|
|
label {Filter bandwidth factor}
|
|
callback {progdefaults.DOMINOEX_BW = o->value();
|
|
resetDOMEX();
|
|
progdefaults.changed = true;}
|
|
tooltip {Filter bandwidth relative to signal width} xywh {206 141 63 20} type Simple align 8 minimum 1 maximum 2 value 1.5
|
|
code0 {o->value(progdefaults.DOMINOEX_BW);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Counter2
|
|
}
|
|
Fl_Counter valDominoEX_ADJ {
|
|
label {Tone-spacing adjust}
|
|
callback {progdefaults.DOMINOEX_ADJ = o->value();
|
|
resetDOMEX();
|
|
progdefaults.changed = true;}
|
|
tooltip {Tone-spacing adjust} xywh {156 166 63 20} type Simple align 8 minimum -100 maximum 100 value 0
|
|
code0 {o->value(progdefaults.DOMINOEX_ADJ);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Counter2
|
|
}
|
|
Fl_Check_Button chkDominoEX_FEC {
|
|
label FEC
|
|
callback {progdefaults.DOMINOEX_FEC = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Enable MultiPSK-compatible FEC} xywh {65 171 51 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.DOMINOEX_FEC);}
|
|
}
|
|
Fl_Value_Slider valDomCWI {
|
|
label {CWI threshold}
|
|
callback {progdefaults.DomCWI = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {CWI detection and suppression} xywh {65 207 260 20} type Horizontal align 1 textsize 14
|
|
code0 {o->value(progdefaults.DomCWI);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE); o->textsize(FL_NORMAL_SIZE);}
|
|
class Fl_Value_Slider2
|
|
}
|
|
Fl_Counter valDominoEX_PATHS {
|
|
label {Paths (hidden)}
|
|
callback {progdefaults.DOMINOEX_PATHS = (int)o->value();
|
|
progdefaults.changed = true;}
|
|
xywh {389 194 63 20} type Simple minimum 4 maximum 8 step 1 value 5
|
|
code0 {o->value(progdefaults.DOMINOEX_PATHS);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
code2 {o->hide();}
|
|
class Fl_Counter2
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabFeld {
|
|
label Feld open
|
|
xywh {0 50 600 330} hide
|
|
} {
|
|
Fl_Group {} {open
|
|
xywh {55 72 490 145} box ENGRAVED_FRAME
|
|
} {
|
|
Fl_Group listboxHellFont {
|
|
label {Transmit font}
|
|
callback {progdefaults.feldfontnbr=o->index();
|
|
progdefaults.changed = true;} open
|
|
tooltip {Select TX raster font} xywh {65 82 150 20} box DOWN_BOX color 7 align 8
|
|
code0 {\#include "fontdef.h"}
|
|
code1 {o->add(szFeldFonts);}
|
|
code2 {o->index(progdefaults.feldfontnbr);
|
|
o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
Fl_Check_Button btnBlackboard {
|
|
label {Reverse video}
|
|
callback {progdefaults.HellBlackboard=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Display RX in reverse video} xywh {350 82 125 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.HellBlackboard);}
|
|
}
|
|
Fl_Spinner valHellXmtWidth {
|
|
label {Transmit width}
|
|
callback {progdefaults.HellXmtWidth=(int)o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {\# of multiple scans / character line} xywh {65 112 40 20} align 8 maximum 3
|
|
code0 {o->value(progdefaults.HellXmtWidth);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Spinner2
|
|
}
|
|
Fl_Check_Button btnHellRcvWidth {
|
|
label {Halve receive width}
|
|
callback {progdefaults.HellRcvWidth=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Compress Rx in time} xywh {350 112 155 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.HellRcvWidth);}
|
|
}
|
|
Fl_Group listboxHellPulse {
|
|
label {Pulse shape}
|
|
callback {progdefaults.HellPulseFast = o->index();
|
|
progdefaults.changed = true;} open
|
|
tooltip {Raised cosine pulse shape factor} xywh {65 159 150 20} box DOWN_BOX color 7 align 5
|
|
code0 {o->add(_("Slow (4 msec)"));}
|
|
code1 {o->add(_("Fast (2 msec)"));}
|
|
code2 {o->index(progdefaults.HellPulseFast);
|
|
o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
Fl_Value_Slider sldrHellBW {
|
|
label {Receive filter bandwidth}
|
|
callback {progdefaults.HELL_BW = sldrHellBW->value();}
|
|
tooltip {Adjust the DSP bandwidth} xywh {256 159 246 20} type Horizontal align 5 minimum 10 maximum 2400 step 5 value 400 textsize 14
|
|
code0 {o->value(progdefaults.HELL_BW);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE); o->textsize(FL_NORMAL_SIZE);}
|
|
class Fl_Value_Slider2
|
|
}
|
|
Fl_Check_Button btnFeldHellIdle {
|
|
label {Transmit periods (.) when idle}
|
|
callback {progdefaults.HellXmtIdle=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Transmits a diddle dot when no keyboard activity} xywh {65 189 230 20} down_box DOWN_BOX value 1
|
|
code0 {o->value(progdefaults.HellXmtIdle);}
|
|
}
|
|
Fl_Check_Button btnHellXmtWidth {
|
|
label {2x Xmt Width (hidden)}
|
|
callback {progdefaults.HellXmtWidth=o->value();
|
|
progdefaults.changed = true;}
|
|
xywh {355 187 113 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.HellXmtWidth);}
|
|
code1 {o->hide();}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabMT63 {
|
|
label {MT-63} open
|
|
xywh {0 50 600 330} hide
|
|
} {
|
|
Fl_Group {} {open
|
|
xywh {55 73 490 84} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Check_Button btnMT63_8bit {
|
|
label {8-bit extended characters (UTF-8)}
|
|
callback {progdefaults.mt63_8bit = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Enable this for UTF-8 characters} xywh {200 87 205 20} down_box DOWN_BOX value 1
|
|
code0 {o->value(progdefaults.mt63_8bit);}
|
|
}
|
|
Fl_Check_Button btnMT63_rx_integration {
|
|
label {Long receive integration}
|
|
callback {progdefaults.mt63_rx_integration = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Enable for very weak signals} xywh {200 117 190 20} down_box DOWN_BOX value 1
|
|
code0 {o->value(progdefaults.mt63_rx_integration);}
|
|
}
|
|
}
|
|
Fl_Group {} {open
|
|
xywh {55 169 490 131} box ENGRAVED_FRAME
|
|
} {
|
|
Fl_Check_Button btnMT63_usetones {
|
|
label {Transmit lower start tone}
|
|
callback {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;}
|
|
xywh {199 177 200 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.mt63_usetones);}
|
|
}
|
|
Fl_Check_Button btnMT63_upper_lower {
|
|
label {Transmit upper start tone}
|
|
callback {progdefaults.mt63_twotones = o->value();
|
|
progdefaults.changed = true;}
|
|
xywh {199 207 200 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.mt63_twotones);}
|
|
code1 {if (!btnMT63_usetones->value()) o->deactivate();}
|
|
}
|
|
Fl_Spinner MT63_tone_duration {
|
|
label {Tone Duration (secs)}
|
|
callback {progdefaults.mt63_tone_duration=(int)o->value();
|
|
progdefaults.changed = true;}
|
|
xywh {199 233 40 20} align 8 maximum 10 value 4
|
|
code0 {o->value(progdefaults.mt63_tone_duration);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Spinner2
|
|
}
|
|
Fl_Check_Button btnMT63_at500 {
|
|
label {Allow manual tuning}
|
|
callback {progdefaults.mt63_at500 = !o->value();
|
|
progdefaults.changed = true;}
|
|
xywh {199 262 200 20} down_box DOWN_BOX
|
|
code0 {o->value(!progdefaults.mt63_at500);}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabOlivia {
|
|
label Olivia open
|
|
xywh {0 50 600 330} hide
|
|
} {
|
|
Fl_Group {} {
|
|
xywh {55 76 490 280} box ENGRAVED_FRAME
|
|
} {
|
|
Fl_Group i_listbox_olivia_bandwidth {
|
|
label Bandwidth
|
|
callback {progdefaults.oliviabw = o->index();
|
|
set_olivia_default_integ();
|
|
resetOLIVIA();
|
|
progdefaults.changed = true;} open
|
|
tooltip {Select bandwidth} xywh {110 96 85 22} box DOWN_BOX color 7 align 8
|
|
code0 {o->add(szOliviaBandwidth);}
|
|
code1 {o->index(progdefaults.oliviabw);
|
|
o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
Fl_Group i_listbox_olivia_tones {
|
|
label Tones
|
|
callback {progdefaults.oliviatones = o->index();
|
|
set_olivia_default_integ();
|
|
resetOLIVIA();
|
|
progdefaults.changed = true;} open
|
|
tooltip {Select number of tones} xywh {371 96 70 22} box DOWN_BOX color 7 align 8
|
|
code0 {o->add(szOliviaTones);}
|
|
code1 {o->index(progdefaults.oliviatones);
|
|
o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
Fl_Group {} {
|
|
label {Receive synchronizer} open
|
|
xywh {110 135 379 133} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Counter cntOlivia_smargin {
|
|
label {Tune margin (tone frequency spacing)}
|
|
callback {progdefaults.oliviasmargin = (int)(o->value());
|
|
resetOLIVIA();
|
|
progdefaults.changed = true;}
|
|
tooltip {Change ONLY to experiment} xywh {125 166 70 22} type Simple align 8 minimum 2 maximum 128 step 1 value 8
|
|
code0 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Counter2
|
|
}
|
|
Fl_Counter cntOlivia_sinteg {
|
|
label {Integration period (FEC blocks)}
|
|
callback {progdefaults.oliviasinteg = (int)(o->value());
|
|
resetOLIVIA();
|
|
progdefaults.changed = true;}
|
|
tooltip {Change ONLY to experiment} xywh {125 198 70 22} type Simple align 8 minimum 2 maximum 128 step 1 value 4
|
|
code0 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Counter2
|
|
}
|
|
Fl_Check_Button btn_olivia_reset_fec {
|
|
label {Reset FEC blocks when changing BW or Tones}
|
|
callback {progdefaults.olivia_reset_fec = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Enable this for UTF-8 character transmission} xywh {126 230 349 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.olivia_reset_fec);}
|
|
}
|
|
}
|
|
Fl_Check_Button btnOlivia_8bit {
|
|
label {8-bit extended characters (UTF-8)}
|
|
callback {progdefaults.olivia8bit = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Enable this for UTF-8 character transmission} xywh {131 291 265 20} down_box DOWN_BOX
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabContestia {
|
|
label {Cont'} open
|
|
xywh {0 50 600 330} hide
|
|
} {
|
|
Fl_Group {} {open
|
|
xywh {55 80 490 200} box ENGRAVED_FRAME
|
|
} {
|
|
Fl_Group i_listbox_contestia_bandwidth {
|
|
label Bandwidth
|
|
callback {progdefaults.contestiabw = o->index();
|
|
set_contestia_default_integ();
|
|
resetCONTESTIA();
|
|
progdefaults.changed = true;} open
|
|
tooltip {Select bandwidth} xywh {110 100 85 22} box DOWN_BOX color 7 align 8
|
|
code0 {o->add(szContestiaBandwidth);}
|
|
code1 {o->index(progdefaults.contestiabw);}
|
|
code2 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
Fl_Group i_listbox_contestia_tones {
|
|
label Tones
|
|
callback {progdefaults.contestiatones = o->index();
|
|
set_contestia_default_integ();
|
|
resetCONTESTIA();
|
|
progdefaults.changed = true;} open
|
|
tooltip {Select number of tones} xywh {371 100 70 22} box DOWN_BOX color 7 align 8
|
|
code0 {o->add(szContestiaTones);}
|
|
code1 {o->index(progdefaults.contestiatones);}
|
|
code2 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
Fl_Group {} {
|
|
label {Receive synchronizer} open
|
|
xywh {93 139 414 131} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Counter cntContestia_smargin {
|
|
label {Tune margin (tone frequency spacing)}
|
|
callback {progdefaults.contestiasmargin = (int)(o->value());
|
|
resetCONTESTIA();
|
|
progdefaults.changed = true;}
|
|
tooltip {Change ONLY to experiment} xywh {112 170 70 22} type Simple align 8 minimum 2 maximum 128 step 1 value 8
|
|
code0 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Counter2
|
|
}
|
|
Fl_Counter cntContestia_sinteg {
|
|
label {Integration period (FEC blocks)}
|
|
callback {progdefaults.contestiasinteg = (int)(o->value());
|
|
resetCONTESTIA();
|
|
progdefaults.changed = true;}
|
|
tooltip {Change ONLY to experiment} xywh {112 202 70 22} type Simple align 8 minimum 2 maximum 128 step 1 value 4
|
|
code0 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Counter2
|
|
}
|
|
Fl_Check_Button btn_contestia_reset_fec {
|
|
label {Reset FEC blocks when changing BW or Tones}
|
|
callback {progdefaults.contestia_reset_fec = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Enable this for UTF-8 character transmission} xywh {108 235 349 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.contestia_reset_fec);}
|
|
}
|
|
}
|
|
Fl_Check_Button btnContestia_8bit {
|
|
label {8-bit extended characters}
|
|
callback {progdefaults.contestia8bit = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Enable this for Latin-1 accented characters} xywh {79 249 200 20} down_box DOWN_BOX hide
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabPSK {
|
|
label PSK open
|
|
xywh {0 50 600 330} hide
|
|
} {
|
|
Fl_Tabs tabsPSK {open
|
|
xywh {0 50 600 330} selection_color 50
|
|
} {
|
|
Fl_Group grpPSK {
|
|
label General open
|
|
xywh {0 75 600 305} align 5
|
|
} {
|
|
Fl_Group {} {
|
|
label {AFC behavior} open
|
|
xywh {55 87 490 86} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Counter cntSearchRange {
|
|
label {Acquisition search range (Hz)}
|
|
callback {progdefaults.SearchRange = (int)o->value();
|
|
wf->redraw_marker();
|
|
progdefaults.changed = true;}
|
|
tooltip {Capture signals within this frequency range} xywh {200 111 75 20} type Simple align 8 minimum 10 maximum 500 step 10 value 200
|
|
code0 {o->value(progdefaults.SearchRange);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Counter2
|
|
}
|
|
Fl_Counter cntACQsn {
|
|
label {Acquisition S/N (dB)}
|
|
callback {progdefaults.ACQsn = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Capture signals over this threshold} xywh {200 140 75 20} type Simple align 8 minimum 3 maximum 20 step 1 value 6
|
|
code0 {o->value(progdefaults.ACQsn);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Counter2
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label {S/N and IMD behavior} open
|
|
xywh {55 175 490 65} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Group listbox_psk_status_timeout {
|
|
label after
|
|
callback {progdefaults.StatusDim = o->index();
|
|
progdefaults.changed = true;} open
|
|
tooltip {Behavior of s/n imd} xywh {180 206 80 20} box DOWN_BOX color 7 align 8
|
|
code0 {o->add(_("Clear")); o->add(_("Dim"));}
|
|
code1 {o->index(progdefaults.StatusDim);
|
|
o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
Fl_Counter {} {
|
|
label seconds
|
|
callback {progdefaults.StatusTimeout = (int)(o->value());
|
|
progdefaults.changed = true;}
|
|
tooltip {Will occur after this time in seconds} xywh {321 206 75 20} type Simple align 8 minimum 0 maximum 30 step 1
|
|
code0 {o->value(progdefaults.StatusTimeout);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Counter2
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label {Multi-Channel Signal Processing} open
|
|
xywh {55 245 490 80} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Check_Button btnEnablePSKbrowsing {
|
|
label {Multi-channel detector}
|
|
callback {progdefaults.pskbrowser_on = o->value();
|
|
progdefaults.changed = true;}
|
|
xywh {225 295 180 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.pskbrowser_on);}
|
|
}
|
|
Fl_Box {} {
|
|
label {Disable on very slow CPUs of if signal browser is not used}
|
|
xywh {65 272 440 20} align 20
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label {8 psk} open
|
|
xywh {55 327 490 47} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Check_Button btnPSKpilot {
|
|
label {Pilot tone}
|
|
callback {progdefaults.pskpilot = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Enable encode/decode vestigial pilot tone} xywh {141 342 113 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.pskpilot);}
|
|
}
|
|
Fl_Counter cnt_pilot_power {
|
|
label {pilot power (dB)}
|
|
callback {progdefaults.pilot_power = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Pilot tone power relative to signal} xywh {305 342 75 20} type Simple align 8 minimum -60 maximum -20 step 1 value -30
|
|
code0 {o->value(progdefaults.pilot_power);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Counter2
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabRTTY {
|
|
label RTTY open
|
|
xywh {0 50 600 330}
|
|
} {
|
|
Fl_Tabs tabsRTTY {open
|
|
xywh {0 50 600 330} selection_color 50
|
|
} {
|
|
Fl_Group {} {
|
|
label Tx open
|
|
xywh {0 75 600 305} align 5
|
|
} {
|
|
Fl_Group selShift {
|
|
label {Carrier shift}
|
|
callback {progdefaults.rtty_shift = o->index();
|
|
if (progdefaults.rtty_shift == o->lsize() - 1)
|
|
selCustomShift->activate();
|
|
else
|
|
selCustomShift->deactivate();
|
|
selCustomShift->redraw();
|
|
resetRTTY();
|
|
progdefaults.changed = true;} open
|
|
tooltip {Select carrier shift} xywh {65 104 100 20} box DOWN_BOX color 7 align 8 when 1
|
|
code0 {o->add(szShifts);o->index(progdefaults.rtty_shift);
|
|
o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
Fl_Counter selCustomShift {
|
|
label {Custom shift}
|
|
callback {progdefaults.rtty_custom_shift = o->value();
|
|
resetRTTY();
|
|
progdefaults.changed = true;}
|
|
tooltip {Input carrier shift} xywh {65 137 100 20} align 8 minimum 10 maximum 1200 step 10 value 450
|
|
code0 {o->lstep(100.0);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Counter2
|
|
}
|
|
Fl_Group selBaud {
|
|
label {Baud rate}
|
|
callback {progdefaults.rtty_baud = o->index();
|
|
resetRTTY();
|
|
progdefaults.changed = true;} open
|
|
tooltip {Select carrier baudrate} xywh {65 170 100 20} box DOWN_BOX color 7 align 8 when 1
|
|
code0 {o->add(szBauds);}
|
|
code1 {o->index(progdefaults.rtty_baud);}
|
|
code2 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
Fl_Group selBits {
|
|
label {Bits per character}
|
|
callback {progdefaults.rtty_bits = o->index();
|
|
selParity->do_callback();} open
|
|
tooltip {Select \# bits / char} xywh {65 203 100 20} box DOWN_BOX color 7 align 8 when 1
|
|
code0 {o->add(szSelBits);o->index(progdefaults.rtty_bits);
|
|
o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
Fl_Group selParity {
|
|
label Parity
|
|
callback {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;} open
|
|
tooltip {Select parity} xywh {65 236 100 20} box DOWN_BOX color 7 align 8 when 1
|
|
code0 {o->add(szParity);o->index(progdefaults.rtty_parity);
|
|
o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
Fl_Group selStopBits {
|
|
label {Stop bits}
|
|
callback {progdefaults.rtty_stop = o->index();
|
|
resetRTTY();
|
|
progdefaults.changed = true;} open
|
|
tooltip {Select \# stop bits} xywh {65 270 100 20} box DOWN_BOX color 7 align 8 when 1
|
|
code0 {o->add(szStopBits);o->index(progdefaults.rtty_stop);
|
|
o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
Fl_Value_Slider sldrRTTYbandwidth {
|
|
label {Filter Adjustment}
|
|
callback {progdefaults.RTTY_BW = o->value();
|
|
resetRTTY();
|
|
progdefaults.changed = true;} selected
|
|
tooltip {RTTY filter bandwidth} xywh {35 320 250 20} type Horizontal align 5 minimum 0.5 maximum 2 step 0.1 value 1 textsize 14
|
|
code0 {o->value(progdefaults.RTTY_BW);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE); o->textsize(FL_NORMAL_SIZE);}
|
|
class Fl_Value_Slider2
|
|
}
|
|
Fl_Check_Button btnAUTOCRLF {
|
|
label AutoCRLF
|
|
callback {progdefaults.rtty_autocrlf = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Add CRLF after page width characters} xywh {316 103 90 22} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.rtty_autocrlf);}
|
|
}
|
|
Fl_Counter cntrAUTOCRLF {
|
|
label chars
|
|
callback {progdefaults.rtty_autocount = (int)o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Auto CRLF line length} xywh {427 104 65 20} type Simple align 8 minimum 68 maximum 80 step 1 value 72
|
|
code0 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Counter2
|
|
}
|
|
Fl_Check_Button btnCRCRLF {
|
|
label {CR-CR-LF}
|
|
callback {progdefaults.rtty_crcrlf = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Use "cr cr lf" for "cr lf"} xywh {316 136 90 22} down_box DOWN_BOX when 6
|
|
code0 {o->value(progdefaults.rtty_crcrlf);}
|
|
}
|
|
Fl_Check_Button chkUOStx {
|
|
label {TX - unshift on space}
|
|
callback {progdefaults.UOStx=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Revert to Unsifted char's on a space} xywh {316 169 63 22} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.UOStx);}
|
|
}
|
|
Fl_Check_Button chk_shaped_rtty {
|
|
label {Shaped Tx}
|
|
callback {progStatus.shaped_rtty = o->value();}
|
|
tooltip {Use wave shaping on Tx signal} xywh {316 235 212 22} down_box DOWN_BOX value 1
|
|
code0 {o->value(progStatus.shaped_rtty);}
|
|
}
|
|
Fl_Check_Button chkPseudoFSK {
|
|
label {Pseudo-FSK - right channel}
|
|
callback {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);
|
|
}}
|
|
tooltip {Create keyed square wave on right audio channel} xywh {316 202 212 22} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.PseudoFSK);}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label Rx open
|
|
xywh {0 75 600 305} align 5 hide
|
|
} {
|
|
Fl_Group {} {
|
|
label Receive open
|
|
xywh {32 101 535 69} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Group i_listbox_rtty_afc_speed {
|
|
label {AFC speed}
|
|
callback {progdefaults.rtty_afcspeed = o->index();
|
|
progdefaults.changed = true;} open
|
|
tooltip {AFC tracking speed} xywh {107 128 90 22} box DOWN_BOX color 7
|
|
code0 {o->add("Slow"); o->add("Normal"); o->add("Fast");}
|
|
code1 {o->index(progdefaults.rtty_afcspeed);}
|
|
code2 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
Fl_Check_Button chkUOSrx {
|
|
label {RX - unshift on space}
|
|
callback {progdefaults.UOSrx=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Revert to unshifted char's on a space} xywh {211 128 63 22} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.UOSrx);}
|
|
}
|
|
Fl_Value_Input rtty_rx_shape {
|
|
label {Filter Shape Factor}
|
|
callback {progdefaults.rtty_filter = o->value();
|
|
progStatus.rtty_filter_changed = true;
|
|
progdefaults.changed = true;}
|
|
tooltip {rcos timing coefficient:
|
|
1.0 ... 2.0
|
|
W1HKJ best 1.275
|
|
DO2SMF best 1.500} xywh {445 126 48 25} align 1 minimum 1 maximum 2 step 0.001 value 1.25 hide
|
|
code0 {o->value(progdefaults.rtty_filter);}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label {Decode (CWI suppression)} open
|
|
xywh {32 171 535 55} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Check_Button {btnRxTones[0]} {
|
|
label {Mark-Space}
|
|
callback {if (o->value()) {
|
|
btnRxTones[1]->value(0);
|
|
btnRxTones[2]->value(0);
|
|
progdefaults.rtty_cwi = 0;
|
|
}}
|
|
xywh {120 198 70 15} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.rtty_cwi == 0);}
|
|
}
|
|
Fl_Check_Button {btnRxTones[1]} {
|
|
label {Mark only}
|
|
callback {if (o->value()) {
|
|
btnRxTones[0]->value(0);
|
|
btnRxTones[2]->value(0);
|
|
progdefaults.rtty_cwi = 1;
|
|
}}
|
|
xywh {253 198 70 15} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.rtty_cwi == 1);}
|
|
}
|
|
Fl_Check_Button {btnRxTones[2]} {
|
|
label {Space only}
|
|
callback {if (o->value()) {
|
|
btnRxTones[1]->value(0);
|
|
btnRxTones[0]->value(0);
|
|
progdefaults.rtty_cwi = 2;
|
|
}}
|
|
xywh {387 198 70 15} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.rtty_cwi == 2);}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label {RTTY Scope Display} open
|
|
xywh {32 228 535 55} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Check_Button btnPreferXhairScope {
|
|
label {Use cross hair scope}
|
|
callback {progdefaults.PreferXhairScope=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Default to cross hair digiscope} xywh {120 250 165 22} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.PreferXhairScope);}
|
|
}
|
|
Fl_Check_Button chk_true_scope {
|
|
label {XY - classic scope}
|
|
callback {progdefaults.true_scope=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Enabled - use Mark/Space filter outputs
|
|
Disabled - use pseudo signals} xywh {340 250 70 22} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.true_scope);}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label {Log RTTY frequency} open
|
|
xywh {32 285 535 65} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Check_Button chk_useMARKfreq {
|
|
label {Use MARK freq'}
|
|
callback {progdefaults.useMARKfreq=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Enabled - log QSO using Mark frequency
|
|
Disabled - log QSO using center frequency} xywh {120 311 146 22} down_box DOWN_BOX value 1
|
|
code0 {o->value(progdefaults.useMARKfreq);}
|
|
}
|
|
Fl_Button btnRTTY_mark_color {
|
|
label {track color}
|
|
callback {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;
|
|
}}
|
|
tooltip {Color of Mark Track} xywh {340 311 41 18} color 2 align 8
|
|
code0 {o->color(fl_rgb_color(progdefaults.rttymarkRGBI.R,progdefaults.rttymarkRGBI.G,progdefaults.rttymarkRGBI.B));}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label Synop open
|
|
xywh {0 75 600 305} align 5 hide
|
|
} {
|
|
Fl_Check_Button btnSynopAdifDecoding {
|
|
label {SYNOP to ADIF}
|
|
callback {progdefaults.SynopAdifDecoding=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Decodes SYNOP messages (Ex: Deutsche Wetterdienst) to ADIF log file} xywh {190 91 126 22} down_box DOWN_BOX align 148
|
|
code0 {o->value(progdefaults.SynopAdifDecoding);}
|
|
}
|
|
Fl_Check_Button btnSynopKmlDecoding {
|
|
label {SYNOP to KML}
|
|
callback {progdefaults.SynopKmlDecoding=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Decodes SYNOP messages (Ex: Deutsche Wetterdienst) to KML documents (Ex: Google Earth)} xywh {190 129 119 22} down_box DOWN_BOX align 148
|
|
code0 {o->value(progdefaults.SynopKmlDecoding);}
|
|
}
|
|
Fl_Check_Button btnSynopInterleaved {
|
|
label {Interleave SYNOP and text}
|
|
callback {progdefaults.SynopInterleaved=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Interleave text with decoded SYNOP messages, or replacement.} xywh {190 168 210 22} down_box DOWN_BOX align 148
|
|
code0 {o->value(progdefaults.SynopInterleaved);}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabTHOR {
|
|
label Thor
|
|
xywh {0 50 600 330} hide
|
|
} {
|
|
Fl_Group {} {open
|
|
xywh {55 78 490 270} box ENGRAVED_FRAME
|
|
} {
|
|
Fl_Input txtTHORSecondary {
|
|
label {Secondary Text}
|
|
callback {progdefaults.THORsecText = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Text to send during keyboard idle times} xywh {84 105 430 40} type Multiline align 5 when 1
|
|
code0 {txtTHORSecondary->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Input2
|
|
}
|
|
Fl_Check_Button valTHOR_FILTER {
|
|
label Filtering
|
|
callback {progdefaults.THOR_FILTER = o->value();
|
|
resetTHOR();
|
|
progdefaults.changed = true;}
|
|
tooltip {Enable DSP prior to decoder} xywh {84 159 80 20} down_box DOWN_BOX value 1
|
|
code0 {o->value(progdefaults.THOR_FILTER);}
|
|
}
|
|
Fl_Counter valTHOR_BW {
|
|
label {Filter bandwidth factor}
|
|
callback {progdefaults.THOR_BW = o->value();
|
|
resetTHOR();
|
|
progdefaults.changed = true;}
|
|
tooltip {Filter bandwidth relative to signal width} xywh {229 159 63 20} type Simple align 8 minimum 1 maximum 2 value 1.5
|
|
code0 {o->value(progdefaults.THOR_BW);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Counter2
|
|
}
|
|
Fl_Value_Slider valThorCWI {
|
|
label {CWI threshold}
|
|
callback {progdefaults.ThorCWI = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {CWI detection and suppression} xywh {84 212 260 20} type Horizontal align 1 textsize 14
|
|
code0 {o->value(progdefaults.ThorCWI);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE); o->textsize(FL_NORMAL_SIZE);}
|
|
class Fl_Value_Slider2
|
|
}
|
|
Fl_Check_Button valTHOR_PREAMBLE {
|
|
label {Preamble Detection}
|
|
callback {progdefaults.THOR_PREAMBLE = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Detect the THOR preamble
|
|
Clear the Rx pipeline} xywh {84 254 200 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.THOR_PREAMBLE);}
|
|
}
|
|
Fl_Check_Button valTHOR_SOFTSYMBOLS {
|
|
label {Soft-symbol decoding}
|
|
callback {progdefaults.THOR_SOFTSYMBOLS = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Use soft-decision decoding for symbol detection
|
|
Assists soft-bit decoding} xywh {84 284 190 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.THOR_SOFTSYMBOLS);}
|
|
}
|
|
Fl_Check_Button valTHOR_SOFTBITS {
|
|
label {Soft-bit decoding}
|
|
callback {progdefaults.THOR_SOFTBITS = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Use soft-bit viterbi decoding for better Forward Error Correction
|
|
Works best with soft-symbol decoding enabled} xywh {84 314 170 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.THOR_SOFTBITS);}
|
|
}
|
|
Fl_Counter valTHOR_PATHS {
|
|
label {Paths (hidden)}
|
|
callback {progdefaults.THOR_PATHS = (int)o->value();
|
|
progdefaults.changed = true;}
|
|
xywh {431 303 75 21} type Simple align 1 minimum 4 maximum 8 step 1 value 5
|
|
code0 {o->value(progdefaults.THOR_PATHS);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
code2 {o->hide();}
|
|
class Fl_Counter2
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabNavtex {
|
|
label Navtex
|
|
xywh {0 50 600 330} hide
|
|
} {
|
|
Fl_Check_Button btnNvtxAdifLog {
|
|
label {Log Navtex messages to Adif file}
|
|
callback {progdefaults.NVTX_AdifLog=o->value();
|
|
progdefaults.changed = true;}
|
|
xywh {171 79 235 30} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.NVTX_AdifLog);}
|
|
}
|
|
Fl_Check_Button btnNvtxKmlLog {
|
|
label {Log Navtex messages to KML}
|
|
callback {progdefaults.NVTX_KmlLog=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Logs messages to Keyhole Markup Language (Google Earth, Marble, Gaia, etc...)} xywh {170 125 270 30} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.NVTX_KmlLog);}
|
|
}
|
|
}
|
|
Fl_Group tabWefax {
|
|
label Wefax open
|
|
xywh {0 50 600 330} hide
|
|
} {
|
|
Fl_Group {} {open
|
|
xywh {2 63 598 300}
|
|
} {
|
|
Fl_Check_Button btnWefaxAdifLog {
|
|
label {Log Wefax messages to Adif file}
|
|
callback {progdefaults.WEFAX_AdifLog=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Sent and received faxes are logged to Adif file.} xywh {94 137 235 30} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.WEFAX_AdifLog);}
|
|
}
|
|
Fl_Check_Button btnWefaxEmbeddedGui {
|
|
label {Embedded Wefax Gui}
|
|
callback {progdefaults.WEFAX_EmbeddedGui=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Display tx and rx in main fldigi window.
|
|
Change requires restart of fldigi} xywh {94 74 235 30} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.WEFAX_EmbeddedGui);}
|
|
}
|
|
Fl_Input btnWefaxShift {
|
|
label {Frequency shift (800 Hz)}
|
|
callback {if( o->value() > 900 ) { o->value(900); return; }
|
|
if( o->value() < 750 ) { o->value(750); return; }
|
|
progdefaults.WEFAX_Shift=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Default 800 Hz. Deutsche Wetterdienst 850Hz} xywh {94 177 80 20} type Int align 8
|
|
code0 {o->value(progdefaults.WEFAX_Shift);}
|
|
class Fl_Value_Input2
|
|
}
|
|
Fl_Input btnWefaxMaxRows {
|
|
label {Received fax maximum rows number (5000)}
|
|
callback {if(o->value() > 10000 ) { o->value(10000); return ; }
|
|
if(o->value() < 1000 ) { o->value(1000); return ; }
|
|
progdefaults.WEFAX_MaxRows=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Maximum row number for a received fax image.} xywh {94 217 85 20} type Int align 8
|
|
code0 {o->value(progdefaults.WEFAX_MaxRows);}
|
|
class Fl_Value_Input2
|
|
}
|
|
Fl_Input btnWefaxSaveDir {
|
|
label {Fax images destination directory}
|
|
callback {progdefaults.wefax_save_dir=o->value();
|
|
progdefaults.changed = true;}
|
|
xywh {94 267 310 20} align 5
|
|
code0 {o->value(progdefaults.wefax_save_dir.c_str());}
|
|
}
|
|
Fl_Button btnSelectFaxDestDir {
|
|
label {Directory...}
|
|
callback {Fl_File_Chooser *fc = new Fl_File_Chooser(".",NULL,Fl_File_Chooser::DIRECTORY,"Input File");
|
|
fc->callback(WefaxDestDirSet);
|
|
fc->show();}
|
|
xywh {424 267 80 20}
|
|
}
|
|
Fl_Check_Button btnWefaxHideTx {
|
|
label {Hide Transmission window}
|
|
callback {progdefaults.WEFAX_HideTx=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Hide transmission window by default.} xywh {94 107 235 30} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.WEFAX_HideTx);}
|
|
}
|
|
Fl_Check_Button btnWefaxSaveMonochrome {
|
|
label {Save image as monochrome file}
|
|
callback {progdefaults.WEFAX_SaveMonochrome=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Save the fax image as a gray-level PNG file.} xywh {94 297 235 30} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.WEFAX_SaveMonochrome);}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabDFTscan {
|
|
label Scan open
|
|
xywh {0 50 600 330} hide
|
|
} {
|
|
Fl_Counter cnt_dft_scans {
|
|
label {\# scans}
|
|
callback {progdefaults.cnt_dft_scans=(int)o->value();
|
|
progdefaults.changed = true;}
|
|
xywh {235 129 132 21} minimum 10 maximum 1000 step 10 value 60
|
|
code0 {o->value(progdefaults.cnt_dft_scans);}
|
|
code1 {o->lstep(100.0);}
|
|
}
|
|
Fl_Counter cnt_dft_range {
|
|
label {dB Range}
|
|
callback {progdefaults.cnt_dft_range=o->value();
|
|
update_scope();
|
|
progdefaults.changed = true;}
|
|
xywh {251 194 100 21} type Simple minimum 20 maximum 120 step 10 value 60
|
|
code0 {o->value(progdefaults.cnt_dft_range);}
|
|
}
|
|
Fl_Check_Button btn_use_relative_dB {
|
|
label {Use relative dB}
|
|
callback {progdefaults.dft_relative=o->value();
|
|
update_scope();
|
|
progdefaults.changed = true;}
|
|
xywh {275 265 70 15} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.dft_relative);}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabRig {
|
|
label Rig open
|
|
tooltip {Transceiver control} xywh {0 23 600 357} hide
|
|
} {
|
|
Fl_Tabs tabsRig {open
|
|
xywh {0 23 600 357} selection_color 50
|
|
} {
|
|
Fl_Group {} {
|
|
label {Hardware PTT} open
|
|
xywh {0 50 600 330}
|
|
} {
|
|
Fl_Group {} {open
|
|
xywh {55 57 490 38} box ENGRAVED_FRAME
|
|
} {
|
|
Fl_Check_Button btnPTTrightchannel {
|
|
label {PTT tone on right audio channel }
|
|
callback {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;}
|
|
tooltip {Can be used in lieu of or in addition to other PTT types} xywh {74 66 250 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.PTTrightchannel);}
|
|
}
|
|
}
|
|
Fl_Group grpHWPTT {
|
|
label {h/w ptt device-pin} open
|
|
xywh {55 97 490 171} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Round_Button btnTTYptt {
|
|
label {Use separate serial port PTT}
|
|
callback {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;}
|
|
xywh {74 121 220 20} down_box DOWN_BOX selection_color 1
|
|
}
|
|
Fl_Group inpTTYdev {
|
|
label {Device:}
|
|
callback {btnInitHWPTT->labelcolor(FL_RED);
|
|
btnInitHWPTT->redraw();
|
|
progdefaults.changed = true;} open
|
|
xywh {128 151 160 22} box DOWN_BOX color 7 align 4
|
|
code0 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ComboBox
|
|
} {}
|
|
Fl_Round_Button btnRTSptt {
|
|
label {Use RTS}
|
|
callback {btnInitHWPTT->labelcolor(FL_RED);
|
|
btnInitHWPTT->redraw();
|
|
progdefaults.changed = true;}
|
|
tooltip {RTS is PTT signal line} xywh {310 120 85 20} down_box DOWN_BOX
|
|
}
|
|
Fl_Round_Button btnRTSplusV {
|
|
label {RTS = +V}
|
|
callback {btnInitHWPTT->labelcolor(FL_RED);
|
|
btnInitHWPTT->redraw();
|
|
progdefaults.changed = true;}
|
|
tooltip {Initial voltage on RTS} xywh {407 120 100 20} down_box DOWN_BOX
|
|
}
|
|
Fl_Round_Button btnDTRptt {
|
|
label {Use DTR}
|
|
callback {btnInitHWPTT->labelcolor(FL_RED);
|
|
btnInitHWPTT->redraw();
|
|
progdefaults.changed = true;}
|
|
tooltip {DTR is PTT signal line} xywh {310 150 85 20} down_box DOWN_BOX
|
|
}
|
|
Fl_Round_Button btnDTRplusV {
|
|
label {DTR = +V}
|
|
callback {btnInitHWPTT->labelcolor(FL_RED);
|
|
btnInitHWPTT->redraw();
|
|
progdefaults.changed = true;}
|
|
tooltip {Initial voltage on DTR} xywh {407 150 100 20} down_box DOWN_BOX
|
|
}
|
|
Fl_Button btnInitHWPTT {
|
|
label Initialize
|
|
callback {progdefaults.initInterface();
|
|
o->labelcolor(FL_FOREGROUND_COLOR);
|
|
progdefaults.changed = true;}
|
|
tooltip {Initialize the H/W PTT interface} xywh {411 217 113 24}
|
|
}
|
|
Fl_Round_Button btnUsePPortPTT {
|
|
label {Use parallel port PTT}
|
|
callback {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;}
|
|
xywh {74 197 170 20} down_box DOWN_BOX selection_color 1
|
|
}
|
|
Fl_Round_Button btnUseUHrouterPTT {
|
|
label {Use uHRouter PTT}
|
|
callback {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;}
|
|
xywh {74 227 170 20} down_box DOWN_BOX selection_color 1
|
|
}
|
|
}
|
|
Fl_Group grpPTTdelays {
|
|
label {PTT delays valid for all CAT/PTT types}
|
|
xywh {55 270 490 91} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Counter cntPTT_on_delay {
|
|
label {Start of transmit PTT delay}
|
|
callback {progdefaults.PTT_on_delay = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Delay NN msec before starting audio} xywh {74 297 100 21} align 8 minimum 0 maximum 500 step 1
|
|
code0 {o->value(progdefaults.PTT_on_delay);}
|
|
code1 {o->lstep(10);}
|
|
}
|
|
Fl_Counter cntPTT_off_delay {
|
|
label {PTT end of transmit delay}
|
|
callback {progdefaults.PTT_off_delay = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Delay NN msec before releasing PTT} xywh {74 327 100 21} align 8 minimum 0 maximum 500 step 1
|
|
code0 {o->value(progdefaults.PTT_off_delay);}
|
|
code1 {o->lstep(10);}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label RigCAT open
|
|
tooltip {Rig Control using xml spec file} xywh {0 50 600 330} hide
|
|
} {
|
|
Fl_Check_Button chkUSERIGCAT {
|
|
label {Use RigCAT}
|
|
callback {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();}
|
|
tooltip {RigCAT used for rig control} xywh {245 60 110 20} down_box DOWN_BOX
|
|
}
|
|
Fl_Group grpRigCAT {open
|
|
xywh {55 83 490 279} box ENGRAVED_FRAME
|
|
} {
|
|
Fl_Output txtXmlRigFilename {
|
|
label {Rig description file:}
|
|
tooltip {Use Open to select descriptor file} xywh {65 107 130 22} color 52 align 5
|
|
code0 {o->value(fl_filename_name(progdefaults.XmlRigFilename.c_str()));}
|
|
}
|
|
Fl_Button btnSelectRigXmlFile {
|
|
label {Open...}
|
|
callback {btnInitRIGCAT->labelcolor(FL_RED);
|
|
btnInitRIGCAT->redraw_label();
|
|
selectRigXmlFilename();}
|
|
tooltip {Select rig descriptor file} xywh {198 107 60 22}
|
|
}
|
|
Fl_Group inpXmlRigDevice {
|
|
label {Device:}
|
|
callback {btnInitRIGCAT->labelcolor(FL_RED);
|
|
btnInitRIGCAT->redraw_label();
|
|
btnRevertRIGCAT->activate();} open
|
|
xywh {391 107 144 22} box DOWN_BOX color 7 align 4
|
|
code0 {o->value(progdefaults.XmlRigDevice.c_str());
|
|
o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ComboBox
|
|
} {}
|
|
Fl_Value_Input cntRigCatRetries {
|
|
label Retries
|
|
callback {btnInitRIGCAT->labelcolor(FL_RED);
|
|
btnInitRIGCAT->redraw_label();
|
|
btnRevertRIGCAT->activate();}
|
|
tooltip {\# retries before giving up} xywh {80 150 60 22} align 5 maximum 1000 step 1
|
|
code0 {o->value(progdefaults.RigCatRetries);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Value_Input2
|
|
}
|
|
Fl_Value_Input cntRigCatTimeout {
|
|
label {Retry interval (ms)}
|
|
callback {btnInitRIGCAT->labelcolor(FL_RED);
|
|
btnInitRIGCAT->redraw_label();
|
|
btnRevertRIGCAT->activate();}
|
|
tooltip {Time between retires in msec} xywh {210 150 60 22} align 5 maximum 10000 step 1
|
|
code0 {o->value(progdefaults.RigCatTimeout);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Value_Input2
|
|
}
|
|
Fl_Value_Input cntRigCatWait {
|
|
label {Write delay (ms)}
|
|
callback {btnInitRIGCAT->labelcolor(FL_RED);
|
|
btnInitRIGCAT->redraw_label();
|
|
btnRevertRIGCAT->activate();}
|
|
tooltip {Wait for response to subsequent command} xywh {80 190 60 22} align 5 maximum 10000 step 1
|
|
code0 {o->value(progdefaults.RigCatWait);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Value_Input2
|
|
}
|
|
Fl_Group listbox_xml_rig_baudrate {
|
|
label {Baud rate:}
|
|
callback {btnInitRIGCAT->labelcolor(FL_RED);
|
|
btnInitRIGCAT->redraw_label();
|
|
btnRevertRIGCAT->activate();} open
|
|
xywh {436 150 99 22} box DOWN_BOX color 7 align 4
|
|
code0 {o->add(szBaudRates);}
|
|
code1 {o->index(progdefaults.XmlRigBaudrate);
|
|
o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
Fl_Counter valRigCatStopbits {
|
|
label Stopbits
|
|
callback {btnInitRIGCAT->labelcolor(FL_RED);
|
|
btnInitRIGCAT->redraw();
|
|
btnRevertRIGCAT->activate();}
|
|
xywh {438 184 95 21} type Simple align 4 minimum 1 maximum 2 step 1 value 1
|
|
code0 {o->value(progdefaults.RigCatStopbits);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Counter2
|
|
}
|
|
Fl_Button btnInitRIGCAT {
|
|
label Initialize
|
|
callback {progdefaults.initInterface();
|
|
o->labelcolor(FL_FOREGROUND_COLOR);
|
|
progdefaults.changed = true;}
|
|
tooltip {Initialize RigCAT interface} xywh {415 321 113 24}
|
|
}
|
|
Fl_Check_Button btnRigCatEcho {
|
|
label {Commands are echoed}
|
|
callback {btnInitRIGCAT->labelcolor(FL_RED);
|
|
btnInitRIGCAT->redraw_label();
|
|
progdefaults.changed = true;
|
|
btnRevertRIGCAT->activate();}
|
|
tooltip {Rig or interface echos serial data} xywh {100 216 192 22} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.RigCatECHO);}
|
|
}
|
|
Fl_Round_Button btnRigCatCMDptt {
|
|
label {CAT command for PTT}
|
|
callback {if (o->value()== 1) {
|
|
btnRigCatRTSptt->value(0);
|
|
btnRigCatDTRptt->value(0);
|
|
}
|
|
|
|
btnInitRIGCAT->labelcolor(FL_RED);
|
|
btnInitRIGCAT->redraw();
|
|
btnRevertRIGCAT->activate();}
|
|
tooltip {PTT is a CAT command (not hardware)} xywh {306 217 207 20} down_box DOWN_BOX selection_color 1
|
|
code0 {o->value(progdefaults.RigCatCMDptt);}
|
|
}
|
|
Fl_Round_Button btnRigCatRTSptt {
|
|
label {Toggle RTS for PTT}
|
|
callback {if (o->value() == 1) {
|
|
// btnRigCatDTRptt->value(0);
|
|
btnRigCatCMDptt->value(0);
|
|
}
|
|
|
|
btnInitRIGCAT->labelcolor(FL_RED);
|
|
btnInitRIGCAT->redraw_label();
|
|
btnRevertRIGCAT->activate();}
|
|
tooltip {RTS is ptt line} xywh {100 246 160 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.RigCatRTSptt);}
|
|
}
|
|
Fl_Round_Button btnRigCatDTRptt {
|
|
label {Toggle DTR for PTT}
|
|
callback {if (o->value() == 1) {
|
|
// btnRigCatRTSptt->value(0);
|
|
btnRigCatCMDptt->value(0);
|
|
}
|
|
|
|
btnInitRIGCAT->labelcolor(FL_RED);
|
|
btnInitRIGCAT->redraw_label();
|
|
btnRevertRIGCAT->activate();}
|
|
tooltip {DTR is ptt line} xywh {306 244 160 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.RigCatDTRptt);}
|
|
}
|
|
Fl_Check_Button btnRigCatRTSplus {
|
|
label {RTS +12 v}
|
|
callback {btnInitRIGCAT->labelcolor(FL_RED);
|
|
btnInitRIGCAT->redraw_label();
|
|
btnRevertRIGCAT->activate();}
|
|
tooltip {Initial state of RTS} xywh {100 275 100 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.RigCatRTSplus);}
|
|
}
|
|
Fl_Check_Button btnRigCatDTRplus {
|
|
label {DTR +12 v}
|
|
callback {btnInitRIGCAT->labelcolor(FL_RED);
|
|
btnInitRIGCAT->redraw_label();
|
|
btnRevertRIGCAT->activate();}
|
|
tooltip {Initial state of DTR} xywh {306 272 100 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.RigCatDTRplus);}
|
|
}
|
|
Fl_Check_Button chkRigCatRTSCTSflow {
|
|
label {RTS/CTS flow control}
|
|
callback {btnInitRIGCAT->labelcolor(FL_RED);
|
|
btnInitRIGCAT->redraw_label();
|
|
btnRevertRIGCAT->activate();}
|
|
tooltip {Rig uses RTS/CTS handshake} xywh {100 303 170 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.RigCatRTSCTSflow);}
|
|
}
|
|
Fl_Check_Button chk_restore_tio {
|
|
label {Restore Settings on Close}
|
|
callback {btnInitRIGCAT->labelcolor(FL_RED);
|
|
btnInitRIGCAT->redraw_label();
|
|
btnRevertRIGCAT->activate();}
|
|
tooltip {Restore the serial (COM) port settings} xywh {100 332 205 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.RigCatRestoreTIO);}
|
|
}
|
|
Fl_Button btnRevertRIGCAT {
|
|
label Revert
|
|
callback {btnInitRIGCAT->labelcolor(FL_FOREGROUND_COLOR);
|
|
btnInitRIGCAT->redraw_label();
|
|
rigCAT_restore_defaults();}
|
|
tooltip {Reset rigCAT interface} xywh {415 289 113 24} hide deactivate
|
|
code0 {\#include "rigio.h"}
|
|
}
|
|
Fl_Check_Button chkRigCatVSP {
|
|
label {VSP Enable}
|
|
callback {btnInitRIGCAT->labelcolor(FL_RED);
|
|
btnInitRIGCAT->redraw_label();
|
|
btnRevertRIGCAT->activate();}
|
|
tooltip {Virtual Serial Port Emulator - suppress WARNINGS} xywh {306 300 100 25} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.RigCatVSP);}
|
|
}
|
|
Fl_Value_Input cntRigCatInitDelay {
|
|
label {Init delay (ms)}
|
|
callback {btnInitRIGCAT->labelcolor(FL_RED);
|
|
btnInitRIGCAT->redraw_label();
|
|
btnRevertRIGCAT->activate();}
|
|
tooltip {Wait for response to first CAT command} xywh {210 190 75 22} align 5 maximum 10000 step 1
|
|
code0 {o->value(progdefaults.RigCatInitDelay);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Value_Input2
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabHamlib {
|
|
label Hamlib open
|
|
xywh {0 50 600 330} hide
|
|
} {
|
|
Fl_Check_Button chkUSEHAMLIB {
|
|
label {Use Hamlib}
|
|
callback {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;}
|
|
tooltip {Hamlib used for rig control} xywh {250 59 100 20} down_box DOWN_BOX
|
|
}
|
|
Fl_Group grpHamlib {open
|
|
xywh {5 88 585 277} box ENGRAVED_FRAME
|
|
} {
|
|
Fl_Group cboHamlibRig {
|
|
label {Rig:}
|
|
callback {btnInitHAMLIB->labelcolor(FL_RED);
|
|
btnInitHAMLIB->redraw_label();
|
|
btnRevertHAMLIB->activate();
|
|
\#if USE_HAMLIB
|
|
hamlib_get_defaults();
|
|
\#endif} open
|
|
xywh {41 98 275 22} box DOWN_BOX color 7 align 4
|
|
code0 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
Fl_Group inpRIGdev {
|
|
label {Device:}
|
|
callback {btnInitHAMLIB->labelcolor(FL_RED);
|
|
btnInitHAMLIB->redraw_label();
|
|
btnRevertHAMLIB->activate();} open
|
|
xywh {385 98 190 22} box DOWN_BOX color 7 align 4
|
|
code0 {o->value(progdefaults.HamRigDevice.c_str());
|
|
o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ComboBox
|
|
} {}
|
|
Fl_Value_Input cntHamlibRetries {
|
|
label Retries
|
|
callback {btnInitHAMLIB->labelcolor(FL_RED);
|
|
btnInitHAMLIB->redraw_label();
|
|
btnRevertHAMLIB->activate();}
|
|
tooltip {\# times to resend command before giving up} xywh {40 138 70 24} align 5 maximum 1000 step 1
|
|
code0 {o->value(progdefaults.HamlibRetries);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Value_Input2
|
|
}
|
|
Fl_Value_Input cntHamlibTimeout {
|
|
label {Retry Interval (ms)}
|
|
callback {btnInitHAMLIB->labelcolor(FL_RED);
|
|
btnInitHAMLIB->redraw_label();
|
|
btnRevertHAMLIB->activate();}
|
|
tooltip {Msec's between retries} xywh {165 138 70 24} align 5 maximum 10000 step 1
|
|
code0 {o->value(progdefaults.HamlibTimeout);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Value_Input2
|
|
}
|
|
Fl_Value_Input cntHamlibWriteDelay {
|
|
label {Write delay (ms)}
|
|
callback {btnInitHAMLIB->labelcolor(FL_RED);
|
|
btnInitHAMLIB->redraw_label();
|
|
btnRevertHAMLIB->activate();}
|
|
tooltip {Msec's between sequential commands} xywh {40 181 70 24} align 5 maximum 10000 step 1
|
|
code0 {o->value(progdefaults.HamlibWriteDelay);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Value_Input2
|
|
}
|
|
Fl_Value_Input cntHamlibWait {
|
|
label {Post write delay (ms)}
|
|
callback {btnInitHAMLIB->labelcolor(FL_RED);
|
|
btnInitHAMLIB->redraw_label();
|
|
btnRevertHAMLIB->activate();}
|
|
tooltip {Wait interval (msecs) before reading response} xywh {166 181 70 24} align 5 maximum 10000 step 1
|
|
code0 {o->value(progdefaults.HamlibWait);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Value_Input2
|
|
}
|
|
Fl_Group listbox_baudrate {
|
|
label {Baud rate:}
|
|
callback {btnInitHAMLIB->labelcolor(FL_RED);
|
|
btnInitHAMLIB->redraw_label();
|
|
btnRevertHAMLIB->activate();} open
|
|
xywh {476 132 99 22} box DOWN_BOX color 7 align 4
|
|
code0 {o->add(szBaudRates);}
|
|
code1 {o->index(progdefaults.HamRigBaudrate);
|
|
o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
Fl_Counter valHamRigStopbits {
|
|
label Stopbits
|
|
callback {progdefaults.HamRigStopbits = (int)o->value();
|
|
btnRevertHAMLIB->activate();
|
|
progdefaults.changed = true;}
|
|
xywh {480 168 95 21} type Simple align 4 minimum 1 maximum 2 step 1 value 1
|
|
code0 {o->value(progdefaults.HamRigStopbits);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Counter2
|
|
}
|
|
Fl_Counter cntHamlibTimeout0 {
|
|
label {Retry interval (ms)}
|
|
callback {progdefaults.HamlibTimeout = (int)o->value();
|
|
btnInitHAMLIB->labelcolor(FL_RED);
|
|
btnInitHAMLIB->redraw_label();}
|
|
tooltip {Msec's between retries} xywh {160 145 100 20} type Simple align 5 minimum 2 maximum 20000 step 1 value 10 hide
|
|
code0 {o->value(progdefaults.HamlibTimeout);}
|
|
class Fl_Counter2
|
|
}
|
|
Fl_Input inpHamlibConfig {
|
|
label {Advanced configuration:}
|
|
callback {btnInitHAMLIB->labelcolor(FL_RED);
|
|
btnInitHAMLIB->redraw_label();
|
|
btnRevertHAMLIB->activate();}
|
|
tooltip {Optional configuration
|
|
in format: param=val ...} xywh {30 331 425 22} align 5
|
|
code0 {inpHamlibConfig->value(progdefaults.HamConfig.c_str());}
|
|
code1 {inpHamlibConfig->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Input2
|
|
}
|
|
Fl_Button btnInitHAMLIB {
|
|
label Initialize
|
|
callback {progdefaults.initInterface();
|
|
o->labelcolor(FL_FOREGROUND_COLOR);
|
|
//btnRevertHAMLIB->activate();
|
|
progdefaults.changed = true;}
|
|
tooltip {Initialize hamlib interface} xywh {462 330 113 24}
|
|
}
|
|
Fl_Group listbox_sideband {
|
|
label {Sideband:}
|
|
callback {btnInitHAMLIB->labelcolor(FL_RED);
|
|
btnInitHAMLIB->redraw_label();
|
|
btnRevertHAMLIB->activate();} open
|
|
xywh {431 222 144 22} box DOWN_BOX color 7 align 5
|
|
code0 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
Fl_Round_Button btnHamlibCMDptt {
|
|
label {PTT via Hamlib command}
|
|
callback {btnInitHAMLIB->labelcolor(FL_RED);
|
|
btnInitHAMLIB->redraw_label();
|
|
btnRevertHAMLIB->activate();}
|
|
tooltip {PTT is a hamlib command} xywh {55 223 200 20} down_box DOWN_BOX selection_color 1
|
|
code0 {o->value(progdefaults.HamlibCMDptt);}
|
|
}
|
|
Fl_Check_Button btnHamlibDTRplus {
|
|
label {DTR +12}
|
|
callback {btnInitHAMLIB->labelcolor(FL_RED);
|
|
btnInitHAMLIB->redraw_label();
|
|
btnRevertHAMLIB->activate();}
|
|
tooltip {Initial state of DTR} xywh {55 248 90 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.HamlibDTRplus);}
|
|
}
|
|
Fl_Check_Button chkHamlibRTSplus {
|
|
label {RTS +12}
|
|
callback {if (o->value() == 1)
|
|
chkHamlibRTSCTSflow->value(0);
|
|
btnInitHAMLIB->labelcolor(FL_RED);
|
|
btnInitHAMLIB->redraw_label();
|
|
btnRevertHAMLIB->activate();}
|
|
tooltip {Initial state of RTS} xywh {345 248 85 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.HamlibRTSplus);}
|
|
}
|
|
Fl_Check_Button chkHamlibRTSCTSflow {
|
|
label {RTS/CTS flow control}
|
|
callback {if (o->value() == 1) {
|
|
chkHamlibXONXOFFflow->value(0);
|
|
chkHamlibRTSplus->deactivate();
|
|
} else
|
|
chkHamlibRTSplus->activate();
|
|
btnInitHAMLIB->labelcolor(FL_RED);
|
|
btnInitHAMLIB->redraw_label();
|
|
btnRevertHAMLIB->activate();}
|
|
tooltip {Rig requires RTS/CTS flow control} xywh {55 276 170 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.HamlibRTSCTSflow);}
|
|
code1 {if (o->value()) chkHamlibRTSplus->deactivate();}
|
|
}
|
|
Fl_Check_Button chkHamlibXONXOFFflow {
|
|
label {XON/XOFF flow control}
|
|
callback {if (o->value() == 1)
|
|
chkHamlibRTSCTSflow->value(0);
|
|
btnInitHAMLIB->labelcolor(FL_RED);
|
|
btnInitHAMLIB->redraw_label();
|
|
btnRevertHAMLIB->activate();}
|
|
tooltip {Rig requires Xon/Xoff flow control} xywh {345 276 185 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.HamlibXONXOFFflow);}
|
|
}
|
|
Fl_Button btnRevertHAMLIB {
|
|
label Revert
|
|
callback {btnInitHAMLIB->labelcolor(FL_FOREGROUND_COLOR);
|
|
btnInitHAMLIB->redraw_label();
|
|
\#if USE_HAMLIB
|
|
hamlib_restore_defaults();
|
|
\#endif}
|
|
tooltip {Reset hamlib interface} xywh {381 299 113 24} hide deactivate
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabXMLRPC {
|
|
label {XML-RPC} open
|
|
xywh {0 50 600 330} hide
|
|
} {
|
|
Fl_Group grpXMLRPC {open
|
|
xywh {55 61 490 160} box ENGRAVED_FRAME
|
|
} {
|
|
Fl_Output {} {
|
|
xywh {210 80 190 58} type Multiline box BORDER_BOX color 50
|
|
code0 {o->value(_("Rig control via external\\nprogram using xmlrpc\\nremote calls."));}
|
|
}
|
|
Fl_Check_Button chkUSEXMLRPC {
|
|
label {Use XML-RPC program}
|
|
callback {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;}
|
|
tooltip Experimental xywh {210 148 183 20} down_box DOWN_BOX
|
|
}
|
|
Fl_Button btnInitXMLRPC {
|
|
label Initialize
|
|
callback {progdefaults.initInterface();
|
|
o->labelcolor(FL_FOREGROUND_COLOR);
|
|
progdefaults.changed = true;}
|
|
tooltip {Initialize XML-RPC rig control} xywh {251 184 113 24}
|
|
}
|
|
}
|
|
Fl_Group {} {open
|
|
xywh {55 225 490 50} box ENGRAVED_BOX
|
|
} {
|
|
Fl_Counter mbw_delay {
|
|
label {Mode/BW delay}
|
|
callback {progdefaults.mbw=o->value();
|
|
progdefaults.changed=true;}
|
|
tooltip {Delay in seconds between <RIGMODE... and <FILWID...
|
|
when both in same macro definition} xywh {210 239 90 21} type Simple align 8 minimum 0.1 maximum 2 step 0.05 value 0.1
|
|
code0 {o->value(progdefaults.mbw);}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabSoundCard {
|
|
label Audio open
|
|
tooltip {Audio devices} xywh {0 25 600 355} hide
|
|
} {
|
|
Fl_Tabs tabsSoundCard {open
|
|
xywh {0 25 600 355} selection_color 50
|
|
} {
|
|
Fl_Group tabAudio {
|
|
label Devices open
|
|
xywh {0 50 600 330}
|
|
} {
|
|
Fl_Group AudioOSS {open
|
|
xywh {55 65 490 45} box ENGRAVED_FRAME
|
|
} {
|
|
Fl_Round_Button {btnAudioIO[0]} {
|
|
label OSS
|
|
callback {sound_update(SND_IDX_OSS);
|
|
progdefaults.changed = true;
|
|
resetSoundCard();}
|
|
tooltip {Use OSS audio server} xywh {65 75 53 25} down_box DOWN_BOX selection_color 1
|
|
}
|
|
Fl_Input_Choice menuOSSDev {
|
|
label {Device:}
|
|
callback {scDevice[0] = scDevice[1] = progdefaults.OSSdevice = o->value();
|
|
resetSoundCard();
|
|
progdefaults.changed = true;} open
|
|
tooltip {Select device} xywh {424 75 110 25}
|
|
code0 {o->value(progdefaults.OSSdevice.c_str());}
|
|
} {}
|
|
}
|
|
Fl_Group AudioPort {open
|
|
xywh {55 110 490 80} box ENGRAVED_FRAME
|
|
} {
|
|
Fl_Round_Button {btnAudioIO[1]} {
|
|
label PortAudio
|
|
callback {sound_update(SND_IDX_PORT);
|
|
progdefaults.changed = true;
|
|
resetSoundCard();}
|
|
tooltip {Use Port Audio server} xywh {65 138 95 25} down_box DOWN_BOX selection_color 1
|
|
}
|
|
Fl_Choice menuPortInDev {
|
|
label {Capture:}
|
|
callback {scDevice[0] = progdefaults.PortInDevice = o->text();
|
|
progdefaults.PortInIndex = reinterpret_cast<intptr_t>(o->mvalue()->user_data());
|
|
resetSoundCard();
|
|
progdefaults.changed = true;} open
|
|
tooltip {Audio input device} xywh {244 121 290 25} down_box BORDER_BOX
|
|
} {}
|
|
Fl_Choice menuPortOutDev {
|
|
label {Playback:}
|
|
callback {scDevice[1] = progdefaults.PortOutDevice = o->text();
|
|
progdefaults.PortOutIndex = reinterpret_cast<intptr_t>(o->mvalue()->user_data());
|
|
resetSoundCard();
|
|
progdefaults.changed = true;} open
|
|
tooltip {Audio output device} xywh {244 156 290 25} down_box BORDER_BOX
|
|
} {}
|
|
}
|
|
Fl_Group AudioPulse {open
|
|
xywh {55 190 490 45} box ENGRAVED_FRAME
|
|
} {
|
|
Fl_Round_Button {btnAudioIO[2]} {
|
|
label PulseAudio
|
|
callback {sound_update(SND_IDX_PULSE);
|
|
progdefaults.changed = true;
|
|
resetSoundCard();}
|
|
tooltip {Use Pulse Audio server} xywh {65 201 100 25} down_box DOWN_BOX selection_color 1
|
|
}
|
|
Fl_Input inpPulseServer {
|
|
label {Server string:}
|
|
callback {scDevice[0] = scDevice[1] = progdefaults.PulseServer = o->value();
|
|
resetSoundCard();
|
|
progdefaults.changed = true;}
|
|
tooltip {Leave this blank or refer to
|
|
http://www.pulseaudio.org/wiki/ServerStrings} xywh {310 201 225 24}
|
|
code0 {o->value(progdefaults.PulseServer.c_str());}
|
|
code1 {inpPulseServer->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Input2
|
|
}
|
|
}
|
|
Fl_Group AudioNull {open
|
|
xywh {55 235 490 45} box ENGRAVED_FRAME
|
|
} {
|
|
Fl_Round_Button {btnAudioIO[3]} {
|
|
label {File I/O only}
|
|
callback {sound_update(SND_IDX_NULL);
|
|
progdefaults.changed = true;
|
|
resetSoundCard();}
|
|
tooltip {NO AUDIO DEVICE AVAILABLE (or testing)} xywh {66 245 100 25} down_box DOWN_BOX selection_color 1
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabAudioOpt {
|
|
label Settings open
|
|
xywh {0 50 600 330} hide
|
|
} {
|
|
Fl_Group grpAudioSampleRate {
|
|
label {Sample rate} open
|
|
xywh {55 65 490 90} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Group menuInSampleRate {
|
|
label Capture
|
|
callback {progdefaults.in_sample_rate = o->index() > 1 ? strtol(o->value(), 0, 10) : o->index();
|
|
resetSoundCard();
|
|
progdefaults.changed = true;} open
|
|
tooltip {Force a specific sample rate. Select "Native" if "Auto"
|
|
does not work well with your audio device.} xywh {65 94 100 22} box DOWN_BOX color 7 align 8
|
|
code0 {o->clear_changed();}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
Fl_Group menuOutSampleRate {
|
|
label Playback
|
|
callback {progdefaults.out_sample_rate = o->index() > 1 ? strtol(o->value(), 0, 10) : o->index();
|
|
resetSoundCard();
|
|
progdefaults.changed = true;} open
|
|
xywh {65 124 100 22} box DOWN_BOX color 7 align 8
|
|
code0 {o->clear_changed();}
|
|
code1 {o->tooltip(menuInSampleRate->tooltip());}
|
|
code2 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
Fl_Group menuSampleConverter {
|
|
label Converter
|
|
callback {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));} open
|
|
tooltip {Set the type of resampler used of offset correction} xywh {319 94 216 22} box DOWN_BOX color 7 align 5
|
|
code0 {\#include <FL/fl_ask.H>}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
}
|
|
Fl_Group {} {
|
|
label Corrections open
|
|
xywh {55 155 490 62} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Spinner cntRxRateCorr {
|
|
label {RX ppm}
|
|
callback {progdefaults.RX_corr = (int)o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {RX sound card correction} xywh {65 185 85 20} align 8
|
|
code0 {o->step(1);}
|
|
code1 {o->minimum(-50000);}
|
|
code2 {o->maximum(50000);}
|
|
code3 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Spinner2
|
|
}
|
|
Fl_Spinner cntTxRateCorr {
|
|
label {TX ppm}
|
|
callback {progdefaults.TX_corr = (int)o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {TX sound card correction} xywh {226 185 85 20} align 8
|
|
code0 {o->step(1);}
|
|
code1 {o->minimum(-50000);}
|
|
code2 {o->maximum(50000);}
|
|
code3 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Spinner2
|
|
}
|
|
Fl_Spinner cntTxOffset {
|
|
label {TX offset}
|
|
callback {progdefaults.TxOffset = (int)o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Difference between Rx & Tx freq (rig offset)} xywh {388 185 85 20} align 8
|
|
code0 {o->value(progdefaults.TxOffset);}
|
|
code1 {o->step(1);}
|
|
code2 {o->minimum(-50); o->maximum(50);}
|
|
code3 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Spinner2
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabAudioRightChannel {
|
|
label {Right channel} open
|
|
xywh {0 50 600 330} hide
|
|
} {
|
|
Fl_Group {} {
|
|
label {Transmit Usage} open
|
|
xywh {25 61 550 246} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Check_Button chkAudioStereoOut {
|
|
label {Modem signal on left and right channels}
|
|
callback {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);
|
|
}}
|
|
tooltip {Left and right channels both contain modem audio} xywh {165 82 280 20} down_box DOWN_BOX
|
|
code0 {chkAudioStereoOut->value(progdefaults.sig_on_right_channel);}
|
|
}
|
|
Fl_Check_Button chkReverseAudio {
|
|
label {Reverse Left/Right channels}
|
|
callback {progdefaults.ReverseAudio = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Software reversal of left-right audio channels} xywh {165 112 270 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.ReverseAudio);}
|
|
}
|
|
Fl_Group {} {
|
|
label {...
|
|
These controls are on other tabs.
|
|
They are replicated here for convenience.
|
|
You may change the state from either location.
|
|
...} open
|
|
xywh {75 135 454 162} box ENGRAVED_FRAME align 18
|
|
} {
|
|
Fl_Check_Button btnPTTrightchannel2 {
|
|
label {PTT tone on right audio channel }
|
|
callback {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);
|
|
}}
|
|
tooltip {1000 Hz tone when PTT enabled
|
|
Can be used in lieu of or in addition to other PTT types} xywh {165 142 250 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.PTTrightchannel);}
|
|
}
|
|
Fl_Check_Button btnQSK2 {
|
|
label {CW QSK signal on right channel}
|
|
callback {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);
|
|
}}
|
|
tooltip {Generate 1000 Hz square wave signal on right channel} xywh {165 172 211 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.QSK);}
|
|
}
|
|
Fl_Check_Button chkPseudoFSK2 {
|
|
label {Pseudo-FSK on right audio channel}
|
|
callback {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);
|
|
}}
|
|
tooltip {Create 1000 Hz square wave on right channel} xywh {165 203 270 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.PseudoFSK);}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label {Receive Usage} open
|
|
xywh {25 310 550 60} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Check_Button chkReverseRxAudio {
|
|
label {Reverse Left/Right channels}
|
|
callback {progdefaults.ReverseRxAudio = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Software reversal of left-right audio channels} xywh {165 328 270 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.ReverseRxAudio);}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabWavFile {
|
|
label Wav open
|
|
xywh {0 50 600 330} hide
|
|
} {
|
|
Fl_Group listbox_wav_samplerate {
|
|
label {Wav write sample rate}
|
|
callback {progdefaults.wavSampleRate = o->index();
|
|
progdefaults.changed = true;} open
|
|
tooltip {Pick baud rate from list} xywh {225 96 150 24} box DOWN_BOX color 7 align 5
|
|
code0 {o->add("8000|11025|16000|22050|24000|44100|48000");}
|
|
code1 {o->index(progdefaults.wavSampleRate);}
|
|
code2 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabID {
|
|
label ID open
|
|
xywh {0 23 600 357} hide
|
|
} {
|
|
Fl_Tabs tabsID {open
|
|
xywh {0 23 600 357}
|
|
} {
|
|
Fl_Group tabRsID {
|
|
label RsID open
|
|
xywh {0 50 600 330}
|
|
} {
|
|
Fl_Group {} {
|
|
label {Reed-Solomon ID (Rx)} open
|
|
xywh {32 55 535 210} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Check_Button chkRSidNotifyOnly {
|
|
label {Notify only}
|
|
callback {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;}
|
|
tooltip {Check this to be notified when an RSID is received
|
|
without changing modem and frequency} xywh {40 112 168 20} down_box DOWN_BOX
|
|
code0 {chkRSidNotifyOnly->value(progdefaults.rsid_notify_only);}
|
|
}
|
|
Fl_Button bRSIDRxModes {
|
|
label {Receive modes}
|
|
callback {mode_browser->label(o->label());
|
|
mode_browser->callback(0);
|
|
mode_browser->show(&progdefaults.rsid_rx_modes);
|
|
progdefaults.changed = true;}
|
|
xywh {40 81 130 24}
|
|
}
|
|
Fl_Check_Button chkRSidWideSearch {
|
|
label {Searches passband}
|
|
callback {progdefaults.rsidWideSearch=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {ON - search over entire waterfall
|
|
OFF - limit search to +/- 200 Hz} xywh {40 143 203 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.rsidWideSearch);}
|
|
}
|
|
Fl_Check_Button chkRSidMark {
|
|
label {Mark prev freq/mode}
|
|
callback {progdefaults.rsid_mark = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Insert RX text marker before
|
|
changing frequency and modem} xywh {40 175 203 20} down_box DOWN_BOX
|
|
code0 {chkRSidMark->value(progdefaults.rsid_mark);}
|
|
}
|
|
Fl_Check_Button chkRSidAutoDisable {
|
|
label {Disables detector}
|
|
callback {progdefaults.rsid_auto_disable = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Disable further detection when RSID is received} xywh {40 207 203 20} down_box DOWN_BOX
|
|
code0 {if (progdefaults.rsid_notify_only) progdefaults.rsid_auto_disable = false;}
|
|
code1 {chkRSidAutoDisable->value(progdefaults.rsid_auto_disable);}
|
|
code2 {if (progdefaults.rsid_notify_only) chkRSidAutoDisable->deactivate();}
|
|
}
|
|
Fl_Group listbox_rsid_errors {
|
|
label {Allow errors}
|
|
callback {progdefaults.RsID_label_type = o->index();
|
|
progdefaults.changed = true;} open
|
|
tooltip {Low = zero errors
|
|
Medium = 1 error
|
|
High = 2 errors} xywh {40 233 100 22} box DOWN_BOX color 7 align 8
|
|
code0 {listbox_rsid_errors->add(_("Low")); listbox_rsid_errors->add(_("Medium")); listbox_rsid_errors->add(_("High"));}
|
|
code1 {listbox_rsid_errors->index(progdefaults.RsID_label_type);}
|
|
code2 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
Fl_Value_Slider sldrRSIDsquelch {
|
|
label {Squelch open (sec)}
|
|
callback {progdefaults.rsid_squelch = (int)o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Open squelch for nn sec if RSID detected} xywh {276 233 145 22} type Horizontal align 8 maximum 20 step 1 textsize 14
|
|
code0 {o->value(progdefaults.rsid_squelch);}
|
|
code2 {o->labelsize(FL_NORMAL_SIZE); o->textsize(FL_NORMAL_SIZE);}
|
|
class Fl_Value_Slider2
|
|
}
|
|
Fl_Check_Button chkRSidShowAlert {
|
|
label {Disable alert dialog}
|
|
callback {progdefaults.disable_rsid_warning_dialog_box = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Do not show RsID alert dialog box} xywh {276 143 203 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.disable_rsid_warning_dialog_box);}
|
|
}
|
|
Fl_Check_Button chkRetainFreqLock {
|
|
label {Retain tx freq lock}
|
|
callback {progdefaults.retain_freq_lock = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Retain TX lock frequency (Lk) when changing to RX RsID frequency} xywh {276 175 203 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.retain_freq_lock);}
|
|
}
|
|
Fl_Check_Button chkDisableFreqChange {
|
|
label {Disable freq change}
|
|
callback {progdefaults.disable_rsid_freq_change = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Do not automatically change to RX RsID frequency} xywh {276 207 203 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.disable_rsid_freq_change);}
|
|
}
|
|
Fl_Group {} {
|
|
label {The RsID notification message contents and
|
|
display characteristics are configured on the
|
|
"Notifications" configure dialog.} open
|
|
xywh {216 74 330 60} box BORDER_BOX align 21
|
|
} {}
|
|
}
|
|
Fl_Group {} {
|
|
label {Pre-Signal Tone} open
|
|
xywh {32 267 265 97} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Counter val_pretone {
|
|
label Seconds
|
|
callback {progdefaults.pretone = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Use for triggering amplifier carrier detect} xywh {88 305 140 21} minimum 0 maximum 10
|
|
code0 {o->value(progdefaults.pretone);}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label {Reed-Solomon ID (Tx)} open
|
|
xywh {300 267 265 97} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Button bRSIDTxModes {
|
|
label {Transmit modes}
|
|
callback {mode_browser->label(o->label());
|
|
mode_browser->callback(0);
|
|
mode_browser->show(&progdefaults.rsid_tx_modes);
|
|
progdefaults.changed = true;}
|
|
xywh {377 294 130 24}
|
|
}
|
|
Fl_Check_Button btn_post_rsid {
|
|
label {End of xmt ID}
|
|
callback {progdefaults.rsid_post=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Add RsID signal to end of transmission} xywh {377 329 97 17} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.rsid_post);}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabVideoID {
|
|
label Video open
|
|
xywh {0 50 600 330} hide
|
|
} {
|
|
Fl_Group {} {
|
|
label {Video Preamble ID} open
|
|
xywh {32 115 536 189} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Check_Button btnsendid {
|
|
label {Transmit mode ID}
|
|
callback {progdefaults.sendid=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Waterfall video ID} xywh {50 149 150 20} down_box DOWN_BOX
|
|
}
|
|
Fl_Check_Button btnsendvideotext {
|
|
label {Transmit video text}
|
|
callback {progdefaults.sendtextid=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Waterfall video text} xywh {50 181 155 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.sendtextid);}
|
|
}
|
|
Fl_Input valVideotext {
|
|
label {:}
|
|
callback {progdefaults.strTextid = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Limit to a few characters,
|
|
as in CQEM or IOTA etc.} xywh {217 179 323 24}
|
|
code0 {o->value(progdefaults.strTextid.c_str());}
|
|
code1 {valVideotext->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Input2
|
|
}
|
|
Fl_Check_Button chkID_SMALL {
|
|
label {Use small font}
|
|
callback {progdefaults.ID_SMALL=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {ON - small font
|
|
OFF - large font} xywh {50 213 120 20} down_box DOWN_BOX value 1
|
|
code0 {o->value(progdefaults.ID_SMALL);}
|
|
}
|
|
Fl_Value_Slider sldrVideowidth {
|
|
label {Chars/Row:}
|
|
callback {progdefaults.videowidth = (int)o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Set the number of characters per row} xywh {290 211 125 24} type Horizontal align 4 minimum 1 maximum 8 step 1 value 4 textsize 14
|
|
code0 {o->value(progdefaults.videowidth);}
|
|
code2 {o->labelsize(FL_NORMAL_SIZE); o->textsize(FL_NORMAL_SIZE);}
|
|
class Fl_Value_Slider2
|
|
}
|
|
Fl_Check_Button btn_vidlimit {
|
|
label {500 Hz limit}
|
|
callback {progdefaults.vidlimit=o->value();
|
|
progdefaults.changed = true;}
|
|
xywh {50 245 110 15} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.vidlimit);}
|
|
}
|
|
Fl_Check_Button btn_vidmodelimit {
|
|
label {Mode width limit}
|
|
callback {progdefaults.vidmodelimit=o->value();
|
|
progdefaults.changed=true;}
|
|
xywh {50 273 110 15} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.vidmodelimit);}
|
|
}
|
|
Fl_Button bVideoIDModes {
|
|
label {Video ID modes}
|
|
callback {mode_browser->label(o->label());
|
|
mode_browser->callback(0);
|
|
mode_browser->show(&progdefaults.videoid_modes);
|
|
progdefaults.changed = true;}
|
|
xywh {420 146 120 24}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabCwID {
|
|
label CW
|
|
xywh {0 50 600 330} hide
|
|
} {
|
|
Fl_Group sld {
|
|
label {CW Postamble ID} open
|
|
xywh {32 146 536 127} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Check_Button btnCWID {
|
|
label {Transmit callsign}
|
|
callback {progdefaults.CWid = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Send Callsign in CW at end of every transmission} xywh {139 184 140 24} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.CWid);}
|
|
}
|
|
Fl_Value_Slider sldrCWIDwpm {
|
|
label {Speed (WPM):}
|
|
callback {progdefaults.CWIDwpm = (int)o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Send at this WPM} xywh {139 227 180 20} type Horizontal align 1 minimum 15 maximum 40 step 1 value 18 textsize 14
|
|
code0 {o->value(progdefaults.CWIDwpm);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE); o->textsize(FL_NORMAL_SIZE);}
|
|
class Fl_Value_Slider2
|
|
}
|
|
Fl_Button bCWIDModes {
|
|
label {CW ID modes}
|
|
callback {mode_browser->label(o->label());
|
|
mode_browser->callback(0);
|
|
mode_browser->show(&progdefaults.cwid_modes);
|
|
progdefaults.changed = true;}
|
|
xywh {412 184 120 24}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabMisc {
|
|
label Misc open
|
|
xywh {0 25 600 355} hide
|
|
} {
|
|
Fl_Tabs tabsMisc {open
|
|
xywh {0 25 600 355} selection_color 50
|
|
} {
|
|
Fl_Group tabCPUspeed {
|
|
label CPU open
|
|
xywh {0 50 600 330}
|
|
} {
|
|
Fl_Group {} {open
|
|
xywh {55 75 490 51} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Check_Button chkSlowCpu {
|
|
label {Slow CPU (less than 700MHz)}
|
|
callback {progdefaults.slowcpu = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Enable if you're computer does not decode properly} xywh {201 90 225 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.slowcpu);}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabNBEMS {
|
|
label NBEMS open
|
|
xywh {0 50 600 330} hide
|
|
} {
|
|
Fl_Group {} {
|
|
label {NBEMS data file interface} open
|
|
xywh {50 65 500 75} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Check_Button chkAutoExtract {
|
|
label Enable
|
|
callback {progdefaults.autoextract = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Extract files for use with external "wrap / flmsg" program} xywh {104 96 75 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.autoextract);}
|
|
}
|
|
Fl_Check_Button chk_open_wrap_folder {
|
|
label {Open message folder}
|
|
callback {progdefaults.open_nbems_folder = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Opens NBEMS file folder upon successful capture} xywh {310 96 146 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.open_nbems_folder);}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label {Reception of flmsg files} open
|
|
xywh {50 141 500 130} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Check_Button chk_open_flmsg {
|
|
label {Open with flmsg}
|
|
callback {progdefaults.open_flmsg = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Open message with flmsg} xywh {104 168 136 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.open_flmsg);}
|
|
}
|
|
Fl_Check_Button chk_open_flmsg_print {
|
|
label {Open in browser}
|
|
callback {progdefaults.open_flmsg_print = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Open file with default browser} xywh {310 168 136 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.open_flmsg_print);}
|
|
}
|
|
Fl_Input txt_flmsg_pathname {
|
|
label {flmsg:}
|
|
callback {progdefaults.flmsg_pathname = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Enter full path-filename for flmsg} xywh {104 199 330 24} when 1
|
|
code0 {o->value(progdefaults.flmsg_pathname.c_str());}
|
|
class Fl_Input2
|
|
}
|
|
Fl_Button btn_select_flmsg {
|
|
label {Locate flmsg}
|
|
callback {select_flmsg_pathname();}
|
|
tooltip {Locate flmsg executable} xywh {441 199 100 24}
|
|
}
|
|
Fl_Value_Slider sldr_extract_timeout {
|
|
label {Timeout (secs)}
|
|
callback {progdefaults.extract_timeout=o->value();
|
|
progdefaults.changed=true;}
|
|
tooltip {Extract times out after NN seconds of inactivity.} xywh {70 237 364 21} type {Horz Knob} color 54 selection_color 0 align 8 minimum 1 maximum 10 step 0.5 value 4 textsize 14
|
|
code0 {o->value(progdefaults.extract_timeout);}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabPskmail {
|
|
label Pskmail open
|
|
xywh {0 50 600 330} align 5 hide
|
|
} {
|
|
Fl_Group {} {
|
|
label {Mail Server Attributes} open
|
|
xywh {55 58 490 174} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Counter cntServerCarrier {
|
|
label {Carrier frequency (Hz)}
|
|
callback {progdefaults.ServerCarrier = (int)o->value();
|
|
wf->redraw_marker();
|
|
progdefaults.changed = true;}
|
|
tooltip {Default listen / transmit frequency} xywh {106 86 80 20} type Simple align 8 minimum 500 maximum 2500 step 25 value 1500
|
|
code0 {o->value(progdefaults.ServerCarrier);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Counter2
|
|
}
|
|
Fl_Counter cntServerOffset {
|
|
label {Search range (Hz)}
|
|
callback {progdefaults.ServerOffset = (int)o->value();
|
|
wf->redraw_marker();
|
|
progdefaults.changed = true;}
|
|
tooltip {Listen for signals within this range} xywh {106 123 80 20} type Simple align 8 minimum 10 maximum 500 step 10 value 100
|
|
code0 {o->value(progdefaults.SearchRange);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Counter2
|
|
}
|
|
Fl_Counter cntServerACQsn {
|
|
label {Acquisition S/N (dB)}
|
|
callback {progdefaults.ServerACQsn = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Capture signals over this threshold} xywh {106 160 80 20} type Simple align 8 minimum 3 maximum 20 step 1 value 6
|
|
code0 {o->value(progdefaults.ServerACQsn);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Counter2
|
|
}
|
|
Fl_Counter cntServerAFCrange {
|
|
label {AFC range (Hz)}
|
|
callback {progdefaults.ServerAFCrange = (int)o->value();
|
|
wf->redraw_marker();
|
|
progdefaults.changed = true;}
|
|
tooltip {Limit AFC movement to this range} xywh {106 197 80 20} type Simple align 8 minimum 10 maximum 500 step 10 value 25
|
|
code0 {o->value(progdefaults.SearchRange);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Counter2
|
|
}
|
|
Fl_Check_Button btnPSKmailSweetSpot {
|
|
label {Reset to Carrier}
|
|
callback {progdefaults.PSKmailSweetSpot = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {When no signal present} xywh {361 86 142 20} down_box DOWN_BOX value 1
|
|
code0 {o->value(progdefaults.PSKmailSweetSpot);}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label General open
|
|
xywh {55 234 490 131} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Check_Button btn_arq_s2n_report {
|
|
label {Report ARQ frames average S/N}
|
|
callback {progdefaults.Pskmails2nreport=o->value();}
|
|
xywh {80 259 250 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.Pskmails2nreport);}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabSweetSpot {
|
|
label {Sweet Spot} open
|
|
xywh {0 50 600 330} hide
|
|
} {
|
|
Fl_Group {} {open
|
|
xywh {55 71 490 75} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Value_Input valCWsweetspot {
|
|
label CW
|
|
callback {progdefaults.CWsweetspot=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Default CW tracking point} xywh {92 82 65 20} minimum 200 maximum 4000 step 1 value 1000
|
|
code0 {o->value(progdefaults.CWsweetspot);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Value_Input2
|
|
}
|
|
Fl_Value_Input valRTTYsweetspot {
|
|
label RTTY
|
|
callback {progdefaults.RTTYsweetspot=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Default RTTY tracking point} xywh {270 82 65 20} minimum 200 maximum 4000 step 1 value 1000
|
|
code0 {o->value(progdefaults.RTTYsweetspot);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Value_Input2
|
|
}
|
|
Fl_Value_Input valPSKsweetspot {
|
|
label {PSK et al.}
|
|
callback {progdefaults.PSKsweetspot=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Default for all other modems} xywh {470 82 65 20} minimum 200 maximum 4000 step 1 value 1000
|
|
code0 {o->value(progdefaults.PSKsweetspot);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Value_Input2
|
|
}
|
|
Fl_Check_Button btnStartAtSweetSpot {
|
|
label {Always start new modems at these frequencies}
|
|
callback {progdefaults.StartAtSweetSpot = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {ON - start at default
|
|
OFF - keep current wf cursor position} xywh {65 112 348 20} down_box DOWN_BOX value 1
|
|
code0 {o->value(progdefaults.StartAtSweetSpot);}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label {K3 A1A configuation} open
|
|
xywh {55 151 490 60} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Check_Button btnCWIsLSB {
|
|
label {CW is LSB}
|
|
callback {progdefaults.CWIsLSB=o->value();
|
|
progdefaults.changed=true;}
|
|
tooltip {Select this for Elecraft K3
|
|
Other radios should not need it.} xywh {270 172 70 15} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.CWIsLSB);}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabText_IO {
|
|
label {Text i/o} open
|
|
xywh {0 50 600 330} hide
|
|
} {
|
|
Fl_Group grpTalker {
|
|
label {Talker Socket (MS only)} open
|
|
xywh {55 132 490 73} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Light_Button btnConnectTalker {
|
|
label Talker
|
|
callback {if (o->value()) open_talker();
|
|
else close_talker();}
|
|
xywh {81 152 74 20} selection_color 60
|
|
code0 {extern void open_talker();}
|
|
code1 {extern void close_talker();}
|
|
}
|
|
Fl_Box {} {
|
|
label {Connect/disconnect to Talker socket server}
|
|
xywh {160 152 345 20} align 20
|
|
}
|
|
Fl_Check_Button btn_auto_talk {
|
|
label {Auto connect when fldigi opens (server must be up)}
|
|
callback {progdefaults.auto_talk = o->value();}
|
|
xywh {81 180 391 15} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.auto_talk);}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label {Capture rx text to external file} open
|
|
xywh {55 72 490 56} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Check_Button chkRxStream {
|
|
label {Enable rx text stream}
|
|
callback {progdefaults.speak = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Send rx text to file: textout.txt} xywh {81 99 175 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.speak);}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabDTMF {
|
|
label DTMF open
|
|
xywh {0 50 600 330} hide
|
|
} {
|
|
Fl_Check_Button chkDTMFdecode {
|
|
label {Decode DTMF tones}
|
|
callback {progdefaults.DTMFdecode = o->value();}
|
|
tooltip {Decode received DTMF tones} xywh {212 103 175 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.DTMFdecode);}
|
|
}
|
|
}
|
|
Fl_Group tabWX {
|
|
label WX open
|
|
xywh {0 50 600 330} hide
|
|
} {
|
|
Fl_Group {} {
|
|
label {Weather query specification} open
|
|
xywh {55 60 490 300} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Input inpWXsta {
|
|
label {METAR station ID code}
|
|
callback {progdefaults.wx_sta = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {for example KMDQ for
|
|
Huntsville-Madison Executive Airport, AL} xywh {94 92 43 24} align 8
|
|
code0 {o->value(progdefaults.wx_sta.c_str());}
|
|
}
|
|
Fl_Check_Button btn_wx_full {
|
|
label {Full report}
|
|
callback {progdefaults.wx_full=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Insert full METAR report} xywh {258 130 70 15} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.wx_full);}
|
|
}
|
|
Fl_Input {} {
|
|
label {End of header string:}
|
|
callback {progdefaults.wx_eoh = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Text defining end of METAR header
|
|
Typically 'Connection: close'
|
|
Used to search for station name} xywh {258 156 266 25} when 1
|
|
code0 {o->value(progdefaults.wx_eoh.c_str());}
|
|
}
|
|
Fl_Check_Button btn_wx_station_name {
|
|
label {METAR station location}
|
|
callback {progdefaults.wx_station_name = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Add geopolitical name of METAR station} xywh {258 192 70 15} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.wx_station_name);}
|
|
}
|
|
Fl_Check_Button btn_wx_condx {
|
|
label Conditions
|
|
callback {progdefaults.wx_condx=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {current wx conditions} xywh {258 218 70 15} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.wx_condx);}
|
|
}
|
|
Fl_Check_Button btn_wx_fahrenheit {
|
|
label Fahrenheit
|
|
callback {progdefaults.wx_fahrenheit=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {report Fahrenheit} xywh {258 245 70 15} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.wx_fahrenheit);}
|
|
}
|
|
Fl_Check_Button btn_wx_celsius {
|
|
label Celsius
|
|
callback {progdefaults.wx_celsius=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {report Celsius} xywh {386 245 70 15} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.wx_celsius);}
|
|
}
|
|
Fl_Check_Button btn_wx_mph {
|
|
label {Miles / Hour}
|
|
callback {progdefaults.wx_mph=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {report miles per hour} xywh {258 271 70 15} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.wx_mph);}
|
|
}
|
|
Fl_Check_Button btn_wx_kph {
|
|
label {kilometers / hour}
|
|
callback {progdefaults.wx_kph=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {report kilometers per hour} xywh {386 271 70 15} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.wx_kph);}
|
|
}
|
|
Fl_Check_Button btn_wx_inches {
|
|
label {Inches Mg.}
|
|
callback {progdefaults.wx_inches=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {report inches mercury} xywh {258 298 70 15} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.wx_inches);}
|
|
}
|
|
Fl_Check_Button btn_wx_mbars {
|
|
label mbars
|
|
callback {progdefaults.wx_mbars=o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {report millibars} xywh {386 298 70 15} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.wx_mbars);}
|
|
}
|
|
Fl_Box {} {
|
|
label Temperature
|
|
xywh {93 245 156 19} align 20
|
|
}
|
|
Fl_Box {} {
|
|
label {Wind speed/dir}
|
|
xywh {93 271 156 19} align 20
|
|
}
|
|
Fl_Box {} {
|
|
label {Barometric pressure}
|
|
xywh {93 298 156 19} align 20
|
|
}
|
|
Fl_Button btn_metar_search {
|
|
label {Search on web}
|
|
callback {get_METAR_station();}
|
|
xywh {336 92 130 24}
|
|
code0 {\#include "weather.h"}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabKML {
|
|
label KML open
|
|
xywh {0 50 600 330} hide
|
|
} {
|
|
Fl_Input btnKmlSaveDir {
|
|
label {KML files directory}
|
|
callback {progdefaults.kml_save_dir=o->value();
|
|
progdefaults.changed = true;
|
|
kml_init();}
|
|
tooltip {Where generated KML documents are stored.} xywh {26 75 390 24} align 69
|
|
code0 {o->value(progdefaults.kml_save_dir.c_str());}
|
|
}
|
|
Fl_Input inputKmlRootFile {
|
|
label {KML root file}
|
|
xywh {25 119 300 24} align 5
|
|
code0 {o->value("fldigi.kml");}
|
|
}
|
|
Fl_Counter cntKmlMergeDistance {
|
|
label {Minimum distance for splitting aliases (Meters)}
|
|
callback {progdefaults.kml_merge_distance = o->value();
|
|
progdefaults.changed = true;
|
|
kml_init();}
|
|
tooltip {Minimum distance for splitting alias nodes (Meters)} xywh {26 155 100 24} align 8 minimum 0 maximum 100000 step 10 value 1000
|
|
code0 {o->value(progdefaults.kml_merge_distance);}
|
|
code1 {o->lstep(1000);}
|
|
}
|
|
Fl_Counter cntKmlRetentionTime {
|
|
label {Data retention time, in hours (0 for no limit)}
|
|
callback {progdefaults.kml_retention_time = o->value();
|
|
progdefaults.changed = true;
|
|
kml_init();}
|
|
tooltip {Number of hours data is kept for each node. Zero means keeping everything.} xywh {25 191 100 24} align 8 minimum 0 maximum 500 step 1
|
|
code0 {o->value(progdefaults.kml_retention_time);}
|
|
code1 {o->lstep(24);}
|
|
}
|
|
Fl_Spinner cntKmlRefreshInterval {
|
|
label {KML refresh interval (seconds)}
|
|
callback {progdefaults.kml_refresh_interval = (int)(o->value());
|
|
progdefaults.changed = true;
|
|
kml_init();}
|
|
tooltip {Refresh time interval written in KML file (Seconds)} xywh {24 227 50 24} align 8 value 10
|
|
code0 {o->minimum(1); o->maximum(3600); o->step(1);}
|
|
code1 {o->value(progdefaults.kml_refresh_interval);}
|
|
code2 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Spinner2
|
|
}
|
|
Fl_Group listbox_kml_balloon_style {
|
|
label {KML balloon display style}
|
|
callback {progdefaults.kml_balloon_style = o->index();
|
|
progdefaults.changed = true;
|
|
kml_init();}
|
|
tooltip {KML balloon in plain text, or HTML, in plain tables or matrices.} xywh {24 263 201 24} box DOWN_BOX color 7 align 8 when 1
|
|
code0 {o->add("Plain text|HTML tables|Single HTML matrix");o->index(progdefaults.kml_balloon_style);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_ListBox
|
|
} {}
|
|
Fl_Input btnKmlCommand {
|
|
label {Command run on KML creation}
|
|
callback {progdefaults.kml_command=o->value();
|
|
progdefaults.changed = true;
|
|
kml_init();}
|
|
tooltip {Command started when KML files are generated. Subprocesses are started once, and restarted if needed.} xywh {24 299 246 24} align 72
|
|
code0 {o->value(progdefaults.kml_command.c_str());}
|
|
}
|
|
Fl_Button btlTestKmlCommand {
|
|
label {Test command}
|
|
callback {KmlServer::SpawnProcess();}
|
|
tooltip {Execute command on KML files.} xywh {24 335 191 24}
|
|
}
|
|
Fl_Button btnSelectKmlDestDir {
|
|
label {Change dir...}
|
|
callback {Fl_File_Chooser *fc = new Fl_File_Chooser(".",NULL,Fl_File_Chooser::DIRECTORY,"Input File");
|
|
fc->callback(KmlDestDirSet);
|
|
fc->show();}
|
|
tooltip {Choose directory to store KML documents} xywh {425 75 101 24}
|
|
}
|
|
Fl_Button btlPurge {
|
|
label {Cleanup KML data now !}
|
|
callback {KmlServer::GetInstance()->Reset();}
|
|
tooltip {Cleanups KML documents, empties Google Earth display.} xywh {336 119 190 24}
|
|
}
|
|
Fl_Check_Button btnKmlPurgeOnStartup {
|
|
label {Cleanup on startup}
|
|
callback {progdefaults.kml_purge_on_startup = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Empties KML documents when starting program.} xywh {322 231 172 15} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.kml_purge_on_startup);}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabDL {
|
|
label {DL Client} open
|
|
xywh {0 25 540 350} selection_color 48 hide
|
|
} {
|
|
Fl_Tabs tabsDL {open
|
|
xywh {0 25 540 348}
|
|
} {
|
|
Fl_Group tabDLEnable {
|
|
label Enable open
|
|
xywh {0 50 540 320}
|
|
} {
|
|
Fl_Group {} {
|
|
label habitat open
|
|
xywh {5 59 530 76} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Check_Button confdialog_dl_online {
|
|
label Online
|
|
callback {if (o->value())
|
|
{
|
|
dl_fldigi::commit();
|
|
btnApplyConfig->deactivate();
|
|
}
|
|
|
|
dl_fldigi::online(o->value());}
|
|
xywh {15 90 70 25} down_box DOWN_BOX
|
|
}
|
|
Fl_Input {} {
|
|
label {Couch URI}
|
|
callback {progdefaults.habitat_uri = o->value();
|
|
progdefaults.changed = true;
|
|
dl_fldigi::changed(dl_fldigi::CH_UTHR_SETTINGS);
|
|
btnApplyConfig->activate();}
|
|
tooltip {Address of the CouchDB server} xywh {165 80 360 20}
|
|
code0 {o->value(progdefaults.habitat_uri.c_str());}
|
|
}
|
|
Fl_Input {} {
|
|
label {Couch DB}
|
|
callback {progdefaults.habitat_db = o->value();
|
|
progdefaults.changed = true;
|
|
dl_fldigi::changed(dl_fldigi::CH_UTHR_SETTINGS);
|
|
btnApplyConfig->activate();}
|
|
tooltip {CouchDB database name} xywh {165 106 360 19}
|
|
code0 {o->value(progdefaults.habitat_db.c_str());}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label {SSDV Image Configuration} open
|
|
xywh {5 140 530 80} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Input imagepacketurl {
|
|
label {Packet Upload URL:}
|
|
callback {progdefaults.ssdv_packet_url = o->value();
|
|
progdefaults.changed = true;}
|
|
xywh {165 165 360 20}
|
|
code0 {o->value(progdefaults.ssdv_packet_url.c_str());}
|
|
}
|
|
Fl_Check_Button imagesave {
|
|
label {Save Images}
|
|
callback {progdefaults.ssdv_save_image = o->value();
|
|
progdefaults.changed = true;}
|
|
xywh {15 189 130 21} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.ssdv_save_image);}
|
|
}
|
|
Fl_Input imagesavedir {
|
|
label {Location:}
|
|
callback {progdefaults.ssdv_save_dir = o->value();
|
|
progdefaults.changed = true;}
|
|
xywh {235 190 290 20}
|
|
code0 {o->value(progdefaults.ssdv_save_dir.c_str());}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label {Waterfall PNG Export} open
|
|
xywh {5 225 530 55} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Check_Button {} {
|
|
label Enable
|
|
callback {progdefaults.png_wfall = o->value();
|
|
progdefaults.changed = true;}
|
|
xywh {15 250 80 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.png_wfall);}
|
|
}
|
|
Fl_Input {} {
|
|
label {Location:}
|
|
callback {progdefaults.waterfall_png_location = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Please use full path including filename} xywh {235 250 290 20}
|
|
code0 {o->value(progdefaults.waterfall_png_location.c_str());}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label {Frequency Tracking} open
|
|
xywh {5 284 530 76} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Check_Button btnTrackFreq {
|
|
label Enable
|
|
callback {progdefaults.track_freq = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Adjust the radio frequency to keep the signal inside the specified limits} xywh {15 317 125 25} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.track_freq);}
|
|
}
|
|
Fl_Counter cntTrackFreqMin {
|
|
label {Minimum Waterfall Frequency}
|
|
callback {int i = o->value();
|
|
progdefaults.track_freq_min = i;
|
|
if(progdefaults.track_freq_max < i)
|
|
{
|
|
progdefaults.track_freq_max = i;
|
|
cntTrackFreqMax->value(i);
|
|
}
|
|
progdefaults.changed = true;}
|
|
tooltip {Low frequency limit in Hz} xywh {145 308 105 20} align 8 minimum 0 maximum 4000 step 1 value 1000
|
|
code0 {o->value(progdefaults.track_freq_min);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
code2 {o->lstep(10.0);}
|
|
class Fl_Counter2
|
|
}
|
|
Fl_Counter cntTrackFreqMax {
|
|
label {Maximum Waterfall Frequency}
|
|
callback {int i = o->value();
|
|
progdefaults.track_freq_max = i;
|
|
if(progdefaults.track_freq_min > i)
|
|
{
|
|
progdefaults.track_freq_min = i;
|
|
cntTrackFreqMin->value(i);
|
|
}
|
|
progdefaults.changed = true;}
|
|
tooltip {High frequency limit in Hz} xywh {145 333 105 20} align 8 minimum 0 maximum 4000 step 1 value 2000
|
|
code0 {o->value(progdefaults.track_freq_max);}
|
|
code1 {o->labelsize(FL_NORMAL_SIZE);}
|
|
code2 {o->lstep(10.0);}
|
|
class Fl_Counter2
|
|
}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label Location open
|
|
xywh {0 50 540 317} hide
|
|
} {
|
|
Fl_Group {} {
|
|
label {Listener Location} open
|
|
xywh {5 60 530 300} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Input {} {
|
|
label Baud
|
|
callback {progdefaults.gps_speed = o->value();
|
|
progdefaults.changed = true;
|
|
dl_fldigi::changed(dl_fldigi::CH_GPS_SETTINGS);
|
|
btnApplyConfig->activate();}
|
|
xywh {115 225 150 25} type Int
|
|
code0 {o->value(progdefaults.gps_speed);}
|
|
class Fl_Value_Input
|
|
}
|
|
Fl_Button {} {
|
|
label {Refresh Device List}
|
|
callback {progdefaults.testCommPorts();}
|
|
xywh {305 195 170 25}
|
|
}
|
|
Fl_Round_Button {} {
|
|
label {Stationary Listener}
|
|
callback {if (o->value())
|
|
{
|
|
dl_fldigi::location::new_location_mode = dl_fldigi::location::LOC_STATIONARY;
|
|
dl_fldigi::changed(dl_fldigi::CH_LOCATION_MODE);
|
|
btnApplyConfig->activate();
|
|
}}
|
|
xywh {45 80 190 25} type Radio down_box ROUND_DOWN_BOX
|
|
code0 {o->value(!progdefaults.gps_start_enabled);}
|
|
}
|
|
Fl_Input stationary_lat {
|
|
label Latitude
|
|
callback {progdefaults.myLat = o->value();
|
|
progdefaults.changed = true;
|
|
dl_fldigi::changed(dl_fldigi::CH_STATIONARY_LOCATION);
|
|
btnApplyConfig->activate();}
|
|
xywh {135 105 125 25} type Float
|
|
code0 {o->value(progdefaults.myLat.c_str());}
|
|
}
|
|
Fl_Input stationary_lon {
|
|
label Longitude
|
|
callback {progdefaults.myLon = o->value();
|
|
progdefaults.changed = true;
|
|
dl_fldigi::changed(dl_fldigi::CH_STATIONARY_LOCATION);
|
|
btnApplyConfig->activate();}
|
|
xywh {350 105 125 25} type Float
|
|
code0 {o->value(progdefaults.myLon.c_str());}
|
|
}
|
|
Fl_Round_Button {} {
|
|
label {Upload GPS Position}
|
|
callback {if (o->value())
|
|
{
|
|
dl_fldigi::location::new_location_mode = dl_fldigi::location::LOC_GPS;
|
|
dl_fldigi::changed(dl_fldigi::CH_LOCATION_MODE);
|
|
btnApplyConfig->activate();
|
|
}}
|
|
xywh {45 165 190 25} type Radio down_box ROUND_DOWN_BOX
|
|
code0 {o->value(progdefaults.gps_start_enabled);}
|
|
}
|
|
Fl_Input_Choice inpGPSdev {
|
|
label Device
|
|
callback {progdefaults.gps_device = o->value();
|
|
progdefaults.changed = true;
|
|
dl_fldigi::changed(dl_fldigi::CH_GPS_SETTINGS);
|
|
btnApplyConfig->activate();} open
|
|
xywh {115 195 185 25}
|
|
} {}
|
|
Fl_Check_Button {} {
|
|
label {Always enable GPS on startup}
|
|
callback {progdefaults.gps_start_enabled = o->value();
|
|
progdefaults.changed = true;}
|
|
xywh {235 165 240 25} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.gps_start_enabled);}
|
|
}
|
|
Fl_Spinner {} {
|
|
label Period
|
|
callback {progdefaults.gps_period = o->value();
|
|
progdefaults.changed = true;
|
|
dl_fldigi::changed(dl_fldigi::CH_GPS_SETTINGS);
|
|
btnApplyConfig->activate();}
|
|
xywh {345 225 45 25} box DOWN_BOX minimum 10 maximum 300
|
|
code0 {o->value(progdefaults.gps_period);}
|
|
}
|
|
Fl_Group {} {
|
|
label {Last GPS Position} open
|
|
xywh {10 260 520 90} box ENGRAVED_BOX align 21
|
|
} {
|
|
Fl_Output gps_pos_lat {
|
|
label Lat
|
|
xywh {235 285 105 25}
|
|
}
|
|
Fl_Output gps_pos_altitude {
|
|
label Alt
|
|
xywh {95 315 105 25}
|
|
}
|
|
Fl_Output gps_pos_time {
|
|
label Time
|
|
xywh {95 285 105 25}
|
|
}
|
|
Fl_Output gps_pos_lon {
|
|
label Lon
|
|
xywh {380 285 105 25}
|
|
}
|
|
Fl_Button gps_pos_save {
|
|
label {Save as stationary location}
|
|
callback {stationary_lat->value(gps_pos_lat->value());
|
|
stationary_lon->value(gps_pos_lon->value());
|
|
stationary_alt->value(gps_pos_altitude->value());
|
|
stationary_lat->do_callback();
|
|
stationary_lon->do_callback();
|
|
stationary_alt->do_callback();}
|
|
xywh {235 315 250 25} deactivate
|
|
}
|
|
}
|
|
Fl_Box {} {
|
|
label {please enter lat/long as one number, in decimal degrees; altitude in metres}
|
|
xywh {290 130 190 35} labelsize 10 align 128
|
|
}
|
|
Fl_Box {} {
|
|
label {seconds between position updates}
|
|
xywh {395 220 105 35} labelsize 10 align 128
|
|
}
|
|
Fl_Input stationary_alt {
|
|
label Altitude
|
|
callback {progdefaults.myAlt = o->value();
|
|
progdefaults.changed = true;
|
|
dl_fldigi::changed(dl_fldigi::CH_STATIONARY_LOCATION);
|
|
btnApplyConfig->activate();}
|
|
xywh {135 135 125 25} type Float
|
|
code0 {o->value(progdefaults.myAlt.c_str());}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabDLFlights {
|
|
label {Active flights list} open
|
|
xywh {0 50 540 323} hide
|
|
} {
|
|
Fl_Browser flight_browser {
|
|
callback {if (habFlight)
|
|
habFlight->value(o->value() - 1);
|
|
payload_browser->deselect();
|
|
|
|
dl_fldigi::flights::select_flight(o->value() - 1);
|
|
|
|
/* Handle a double click and autoconfigure.
|
|
* This payload is ready for configuring iff dl_fldigi.cxx
|
|
* has activated the autoconfigure button. */
|
|
if (Fl::event_clicks() > 0 && payload_autoconfigure_a->active())
|
|
dl_fldigi::flights::auto_configure();}
|
|
xywh {5 60 530 225} type Hold
|
|
code0 {o->column_widths(flight_browser_columns);}
|
|
}
|
|
Fl_Group {} {open
|
|
xywh {5 290 530 75} box ENGRAVED_BOX align 21
|
|
} {
|
|
Fl_Button flight_docs_refresh_a {
|
|
label {Refresh flights/payloads}
|
|
callback {dl_fldigi::hbtint::uthr->flights();
|
|
dl_fldigi::hbtint::uthr->payloads();}
|
|
xywh {122 330 295 25}
|
|
}
|
|
Fl_Choice flight_payload_list {
|
|
label {Payload:} open
|
|
xywh {75 300 145 25} down_box BORDER_BOX
|
|
} {}
|
|
Fl_Button payload_autoconfigure_a {
|
|
label Autoconfigure
|
|
callback {dl_fldigi::flights::auto_configure();}
|
|
xywh {370 300 155 25}
|
|
}
|
|
Fl_Choice flight_payload_transmission_list {open
|
|
xywh {225 300 140 25} down_box BORDER_BOX
|
|
} {}
|
|
}
|
|
}
|
|
Fl_Group tabDLPayloads {
|
|
label {All payloads (testing)} open
|
|
xywh {0 50 540 323} hide
|
|
} {
|
|
Fl_Browser payload_browser {
|
|
callback {flight_browser->deselect();
|
|
if (habFlight)
|
|
habFlight->value(-1);
|
|
|
|
dl_fldigi::flights::select_payload(o->value() - 1);
|
|
|
|
/* Handle a double click and autoconfigure.
|
|
* This payload is ready for configuring iff dl_fldigi.cxx
|
|
* has activated the autoconfigure button. */
|
|
if (Fl::event_clicks() > 0 && payload_autoconfigure_b->active())
|
|
dl_fldigi::flights::auto_configure();}
|
|
xywh {5 60 530 225} type Hold
|
|
code0 {o->column_widths(payload_browser_columns);}
|
|
}
|
|
Fl_Group {} {open
|
|
xywh {5 290 530 75} box ENGRAVED_BOX align 21
|
|
} {
|
|
Fl_Button flight_docs_refresh_b {
|
|
label {Refresh flights/payloads}
|
|
callback {dl_fldigi::hbtint::uthr->flights();
|
|
dl_fldigi::hbtint::uthr->payloads();}
|
|
xywh {325 300 200 25}
|
|
}
|
|
Fl_Button payload_autoconfigure_b {
|
|
label Autoconfigure
|
|
callback {dl_fldigi::flights::auto_configure();}
|
|
xywh {325 330 200 25}
|
|
}
|
|
Fl_Input payload_search_text {
|
|
label {Search:}
|
|
callback {dl_fldigi::flights::payload_search(false);}
|
|
xywh {75 300 165 25} when 1
|
|
}
|
|
Fl_Choice payload_transmission_list {
|
|
label {Mode:} open
|
|
xywh {75 330 230 25} down_box BORDER_BOX
|
|
} {}
|
|
Fl_Button {} {
|
|
label Next
|
|
callback {dl_fldigi::flights::payload_search(true);}
|
|
xywh {245 300 60 25}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabQRZ {
|
|
label Web open
|
|
tooltip {Callsign database} xywh {0 25 600 355} hide
|
|
} {
|
|
Fl_Tabs tabsQRZ {open
|
|
xywh {0 25 600 355}
|
|
} {
|
|
Fl_Group {} {
|
|
label {Call Lookup} open
|
|
xywh {0 50 600 330} hide
|
|
} {
|
|
Fl_Group {} {
|
|
label {Web Browser lookup} open
|
|
xywh {55 56 490 122} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Round_Button btnQRZWEBnotavailable {
|
|
label None
|
|
callback {set_qrzweb_buttons(o);
|
|
progdefaults.QRZWEB = QRZWEBNONE;
|
|
progdefaults.changed = true;}
|
|
tooltip {Do not use callsign lookup via web browser} xywh {77 82 337 20} down_box DOWN_BOX value 1
|
|
code0 {o->value(progdefaults.QRZWEB == QRZWEBNONE);}
|
|
}
|
|
Fl_Round_Button btnQRZonline {
|
|
label {QRZ online via default Internet Browser}
|
|
callback {set_qrzweb_buttons(o);
|
|
progdefaults.QRZWEB = QRZHTML;
|
|
progdefaults.changed = true;}
|
|
tooltip {Visit QRZ web site} xywh {77 106 337 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.QRZWEB == QRZHTML);}
|
|
}
|
|
Fl_Round_Button btnHAMCALLonline {
|
|
label {HamCall online via default Internet Browser}
|
|
callback {set_qrzweb_buttons(o);
|
|
progdefaults.QRZWEB = HAMCALLHTML;
|
|
progdefaults.changed = true;}
|
|
tooltip {Visit Hamcall web site} xywh {77 130 337 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.QRZWEB == HAMCALLHTML);}
|
|
}
|
|
Fl_Round_Button btnHamQTHonline {
|
|
label {HamQTH via default Internet Browser}
|
|
callback {set_qrzweb_buttons(o);
|
|
progdefaults.QRZWEB = HAMQTHHTML;
|
|
progdefaults.changed = true;}
|
|
tooltip {Visit hamQTH web site} xywh {77 154 337 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.QRZWEB == HAMQTHHTML);}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label {Data base lookup} open
|
|
xywh {55 180 490 190} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Round_Button btnQRZXMLnotavailable {
|
|
label None
|
|
callback {set_qrzxml_buttons(o);
|
|
progdefaults.QRZXML = QRZXMLNONE;
|
|
progdefaults.changed = true;}
|
|
tooltip {Do not use callsign database} xywh {77 203 64 20} down_box DOWN_BOX value 1
|
|
code0 {o->value(progdefaults.QRZXML == QRZXMLNONE);}
|
|
}
|
|
Fl_Round_Button btnQRZcdrom {
|
|
label {QRZ cdrom}
|
|
callback {set_qrzxml_buttons(o);
|
|
progdefaults.QRZXML = QRZCD;
|
|
progdefaults.changed = true;}
|
|
tooltip {Use CD or hard drive CD image} xywh {77 231 70 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.QRZXML == QRZCD);}
|
|
}
|
|
Fl_Round_Button btnQRZsub {
|
|
label {QRZ.com}
|
|
callback {set_qrzxml_buttons(o);
|
|
progdefaults.QRZXML = QRZNET;
|
|
progdefaults.changed = true;}
|
|
tooltip {You need a paid QRZ online
|
|
subscription to access} xywh {77 259 125 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.QRZXML == QRZNET);}
|
|
}
|
|
Fl_Round_Button btnHamcall {
|
|
label {Hamcall.net}
|
|
callback {set_qrzxml_buttons(o);
|
|
progdefaults.QRZXML = HAMCALLNET;
|
|
progdefaults.changed = true;}
|
|
tooltip {You need a paid Hamcall online
|
|
subscription to access} xywh {77 285 125 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.QRZXML == HAMCALLNET);}
|
|
}
|
|
Fl_Round_Button btnHamQTH {
|
|
label {HamQTH.com (free service http://www.hamqth.com)}
|
|
callback {set_qrzxml_buttons(o);
|
|
progdefaults.QRZXML = HAMQTH;
|
|
progdefaults.changed = true;}
|
|
tooltip {Free service courtesy of OK} xywh {77 311 125 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.QRZXML == HAMQTH);}
|
|
}
|
|
Fl_Round_Button btnCALLOOK {
|
|
label {Callook.info lookup (free service US callsigns only)}
|
|
callback {set_qrzxml_buttons(o);
|
|
progdefaults.QRZXML = CALLOOK;
|
|
progdefaults.changed = true;}
|
|
tooltip {Visit Hamcall web site} xywh {77 338 125 20} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.QRZXML == CALLOOK);}
|
|
}
|
|
Fl_Input txtQRZpathname {
|
|
label {at:}
|
|
callback {progdefaults.QRZpathname = o->value();
|
|
progdefaults.QRZchanged = true;
|
|
progdefaults.changed = true;}
|
|
tooltip {ie: /home/dave/CALLBK/ or C:/CALLBK/
|
|
Leave blank to search for database} xywh {202 230 300 22}
|
|
code0 {o->value(progdefaults.QRZpathname.c_str());}
|
|
code1 {txtQRZpathname->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Input2
|
|
}
|
|
Fl_Input inpQRZusername {
|
|
label {User name}
|
|
callback {progdefaults.QRZusername = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Your login name} xywh {285 258 150 22}
|
|
code0 {o->value(progdefaults.QRZusername.c_str());}
|
|
code1 {inpQRZusername->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Input2
|
|
}
|
|
Fl_Input inpQRZuserpassword {
|
|
label Password
|
|
callback {progdefaults.QRZuserpassword = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Your login password} xywh {285 284 150 22}
|
|
code0 {o->value(progdefaults.QRZuserpassword.c_str());}
|
|
code1 {o->type(FL_SECRET_INPUT);}
|
|
code2 {inpQRZuserpassword->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Input2
|
|
}
|
|
Fl_Button btnQRZpasswordShow {
|
|
label Show
|
|
callback {inpQRZuserpassword->type(inpQRZuserpassword->type() ^ FL_SECRET_INPUT);
|
|
inpQRZuserpassword->redraw();
|
|
o->label((inpQRZuserpassword->type() & FL_SECRET_INPUT) ? "Show" : "Hide");}
|
|
tooltip {Show password in plain text} xywh {445 285 70 20}
|
|
}
|
|
Fl_Check_Button btn_notes_address {
|
|
label {Add address to notes field}
|
|
callback {progdefaults.notes_address = o->value();
|
|
progdefaults.changed = true;}
|
|
xywh {202 205 207 15} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.notes_address);}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label eQSL open
|
|
xywh {0 50 600 330}
|
|
} {
|
|
Fl_Input inpEQSL_id {
|
|
label {User ID}
|
|
callback {progdefaults.eqsl_id = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Your login name} xywh {225 58 150 20}
|
|
code0 {o->value(progdefaults.eqsl_id.c_str());}
|
|
code1 {inpEQSL_id->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Input2
|
|
}
|
|
Fl_Input inpEQSL_pwd {
|
|
label Password
|
|
callback {progdefaults.eqsl_pwd = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Your login password} xywh {225 85 150 20}
|
|
code0 {o->value(progdefaults.eqsl_pwd.c_str());}
|
|
code1 {o->type(FL_SECRET_INPUT);}
|
|
code2 {inpEQSL_pwd->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Input2
|
|
}
|
|
Fl_Button btnEQSL_pwd_show {
|
|
label Show
|
|
callback {inpEQSL_pwd->type(inpEQSL_pwd->type() ^ FL_SECRET_INPUT);
|
|
inpEQSL_pwd->redraw();
|
|
o->label((inpEQSL_pwd->type() & FL_SECRET_INPUT) ? _("Show") : _("Hide"));}
|
|
tooltip {Show password in plain text} xywh {395 85 70 20}
|
|
}
|
|
Fl_Input inpEQSL_nick {
|
|
label {QTH Nickname}
|
|
callback {progdefaults.eqsl_nick = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Your login name} xywh {225 114 150 20}
|
|
code0 {o->value(progdefaults.eqsl_nick.c_str());}
|
|
code1 {inpEQSL_nick->labelsize(FL_NORMAL_SIZE);}
|
|
class Fl_Input2
|
|
}
|
|
Fl_Group {} {
|
|
label Options open
|
|
xywh {30 141 516 223} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Check_Button btn_send_when_logged {
|
|
label {send when logged (log button, <LOG>, <LNW>)}
|
|
callback {progdefaults.eqsl_when_logged = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {automatic data upload} xywh {79 166 70 15} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.eqsl_when_logged);}
|
|
}
|
|
Fl_Input txt_eqsl_default_message {
|
|
label {Default message}
|
|
callback {progdefaults.eqsl_default_message = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {default text to send with <LOG> etc} xywh {83 226 451 40} type Multiline align 5 when 1
|
|
code0 {o->value(progdefaults.eqsl_default_message.c_str());}
|
|
class Fl_Input2
|
|
}
|
|
Fl_Group {} {
|
|
label {Text Tags (tags use {} delimiters)} open
|
|
xywh {30 270 513 90} box FLAT_BOX align 21
|
|
} {
|
|
Fl_Box eqsl_txt1 {
|
|
label { {CALL} other ops call sign}
|
|
xywh {32 317 220 17} align 20
|
|
}
|
|
Fl_Box eqsl_txt2 {
|
|
label { {MODE} full mode / submode}
|
|
xywh {30 336 220 17} align 20
|
|
}
|
|
Fl_Box eqsl_txt3 {
|
|
label {{NAME} other ops name}
|
|
xywh {278 317 220 17} align 20
|
|
}
|
|
Fl_Box {} {
|
|
label {These tags can also be used in <EQSL:[message]>}
|
|
xywh {68 293 440 17}
|
|
}
|
|
}
|
|
Fl_Check_Button btn_send_datetime_off {
|
|
label {Use date/time off for log entry}
|
|
callback {progdefaults.eqsl_datetime_off = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {default uses date/time on} xywh {80 188 70 15} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.eqsl_datetime_off);}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabAutoStart {
|
|
label StartUp
|
|
callback {progdefaults.changed = true;} open
|
|
tooltip {Operator information} xywh {0 25 600 355} when 1 hide
|
|
} {
|
|
Fl_Group {} {
|
|
label {Auto start programs with fldigi} open
|
|
xywh {2 32 596 330} box ENGRAVED_BOX align 17
|
|
} {
|
|
Fl_Input txt_auto_flrig_pathname {
|
|
label {flrig:}
|
|
callback {progdefaults.auto_flrig_pathname = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Enter full path-filename for flrig} xywh {63 71 310 24} when 1
|
|
code0 {o->value(progdefaults.auto_flrig_pathname.c_str());}
|
|
class Fl_Input2
|
|
}
|
|
Fl_Button btn_select_flrig {
|
|
label Locate
|
|
callback {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;}
|
|
tooltip {Locate flrig executable} xywh {395 71 70 24}
|
|
}
|
|
Fl_Input txt_auto_flamp_pathname {
|
|
label {flamp:}
|
|
callback {progdefaults.auto_flamp_pathname = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Enter full path-filename for flamp} xywh {63 109 310 24} when 1
|
|
code0 {o->value(progdefaults.auto_flamp_pathname.c_str());}
|
|
class Fl_Input2
|
|
}
|
|
Fl_Button btn_select_auto_flamp {
|
|
label Locate
|
|
callback {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;}
|
|
tooltip {Locate flamp executable} xywh {395 109 70 24}
|
|
}
|
|
Fl_Input txt_auto_flnet_pathname {
|
|
label {flnet:}
|
|
callback {progdefaults.flnet_pathname = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Enter full path-filename for flnet} xywh {63 147 310 24} when 1
|
|
code0 {o->value(progdefaults.auto_flnet_pathname.c_str());}
|
|
class Fl_Input2
|
|
}
|
|
Fl_Button btn_select_auto_flnet {
|
|
label Locate
|
|
callback {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;}
|
|
tooltip {Locate flnet executable} xywh {395 147 70 24}
|
|
}
|
|
Fl_Input txt_auto_fllog_pathname {
|
|
label {fllog:}
|
|
callback {progdefaults.auto_fllog_pathname = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Enter full path-filename for fllog} xywh {63 186 310 24} when 1
|
|
code0 {o->value(progdefaults.auto_fllog_pathname.c_str());}
|
|
class Fl_Input2
|
|
}
|
|
Fl_Button btn_select_fllog {
|
|
label Locate
|
|
callback {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;}
|
|
tooltip {Locate fllog executable} xywh {395 186 70 24}
|
|
}
|
|
Fl_Input txt_auto_prog1_pathname {
|
|
label {Prog 1:}
|
|
callback {progdefaults.auto_prog1_pathname = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Enter full path-filename for external program} xywh {63 224 310 24} when 1
|
|
code0 {o->value(progdefaults.auto_prog1_pathname.c_str());}
|
|
class Fl_Input2
|
|
}
|
|
Fl_Button btn_select_prog1 {
|
|
label Locate
|
|
callback {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;}
|
|
tooltip {Locate program \#1 executable} xywh {395 224 70 24}
|
|
}
|
|
Fl_Input txt_auto_prog2_pathname {
|
|
label {Prog 2:}
|
|
callback {progdefaults.auto_prog2_pathname = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Enter full path-filename for external program} xywh {63 262 310 24} when 1
|
|
code0 {o->value(progdefaults.auto_prog2_pathname.c_str());}
|
|
class Fl_Input2
|
|
}
|
|
Fl_Button btn_select_prog2 {
|
|
label Locate
|
|
callback {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;}
|
|
tooltip {Locate program \#2 executable} xywh {395 262 70 24}
|
|
}
|
|
Fl_Input txt_auto_prog3_pathname {
|
|
label {Prog 3:}
|
|
callback {progdefaults.auto_prog3_pathname = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Enter full path-filename for external program} xywh {63 301 310 24} when 1
|
|
code0 {o->value(progdefaults.auto_prog3_pathname.c_str());}
|
|
class Fl_Input2
|
|
}
|
|
Fl_Button btn_select_prog3 {
|
|
label Locate
|
|
callback {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;}
|
|
tooltip {Locate program \#3 executable} xywh {395 301 70 24}
|
|
}
|
|
Fl_Check_Button btn_flrig_auto_enable {
|
|
label {Enable
|
|
-}
|
|
callback {progdefaults.flrig_auto_enable = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Enable this entry when fldigi first starts} xywh {475 75 19 15} down_box DOWN_BOX align 1
|
|
code0 {o->value(progdefaults.flrig_auto_enable);}
|
|
}
|
|
Fl_Check_Button btn_flamp_auto_enable {
|
|
callback {progdefaults.flamp_auto_enable = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Enable this entry when fldigi first starts} xywh {475 113 23 15} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.flamp_auto_enable);}
|
|
}
|
|
Fl_Check_Button btn_flnet_auto_enable {
|
|
callback {progdefaults.flnet_auto_enable = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Enable this entry when fldigi first starts} xywh {475 151 23 15} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.flnet_auto_enable);}
|
|
}
|
|
Fl_Check_Button btn_fllog_auto_enable {
|
|
callback {progdefaults.fllog_auto_enable = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Enable this entry when fldigi first starts} xywh {475 190 23 15} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.fllog_auto_enable);}
|
|
}
|
|
Fl_Check_Button btn_prog1_auto_enable {
|
|
callback {progdefaults.prog1_auto_enable = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Enable this entry when fldigi first starts} xywh {475 228 23 15} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.prog1_auto_enable);}
|
|
}
|
|
Fl_Check_Button btn_prog2_auto_enable {
|
|
callback {progdefaults.prog2_auto_enable = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Enable this entry when fldigi first starts} xywh {475 266 23 15} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.prog2_auto_enable);}
|
|
}
|
|
Fl_Check_Button btn_prog3_auto_enable {
|
|
callback {progdefaults.prog3_auto_enable = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Enable this entry when fldigi first starts} xywh {475 305 23 15} down_box DOWN_BOX
|
|
code0 {o->value(progdefaults.prog3_auto_enable);}
|
|
}
|
|
Fl_Button btn_test_flrig {
|
|
label Test
|
|
callback {start_process(progdefaults.auto_flrig_pathname);}
|
|
tooltip {Start flrig} xywh {505 71 70 24}
|
|
}
|
|
Fl_Button btn_test_flamp {
|
|
label Test
|
|
callback {start_process(progdefaults.auto_flamp_pathname);}
|
|
tooltip {Start flamp} xywh {505 109 70 24}
|
|
}
|
|
Fl_Button btn_test_flnet {
|
|
label Test
|
|
callback {start_process(progdefaults.auto_flnet_pathname);}
|
|
tooltip {Start flnet} xywh {505 147 70 24}
|
|
}
|
|
Fl_Button btn_test_fllog {
|
|
label Test
|
|
callback {start_process(progdefaults.auto_fllog_pathname);}
|
|
tooltip {Start fllog} xywh {505 186 70 24}
|
|
}
|
|
Fl_Button btn_test_prog1 {
|
|
label Test
|
|
callback {start_process(progdefaults.auto_prog1_pathname);}
|
|
tooltip {Start prog1} xywh {505 224 70 24}
|
|
}
|
|
Fl_Button btn_test_prog2 {
|
|
label Test
|
|
callback {start_process(progdefaults.auto_prog2_pathname);}
|
|
tooltip {Start prog2} xywh {505 262 70 24}
|
|
}
|
|
Fl_Button btn_test_prog3 {
|
|
label Test
|
|
callback {start_process(progdefaults.auto_prog3_pathname);}
|
|
tooltip {Start prog3} xywh {505 301 70 24}
|
|
}
|
|
}
|
|
}
|
|
Fl_Group tabIO {
|
|
label IO
|
|
callback {btnDisable_p2p_io_widgets->value(1);} open
|
|
tooltip {Program to Program Communications} xywh {0 25 600 355} hide
|
|
code0 {btnDisable_p2p_io_widgets->value(1);}
|
|
} {
|
|
Fl_Group {} {open
|
|
xywh {6 34 588 102} box ENGRAVED_BOX align 21
|
|
} {
|
|
Fl_Check_Button btnDisable_p2p_io_widgets {
|
|
label Lock user_data_type long
|
|
callback {progStatus.ip_lock = o->value();
|
|
if(o->value())
|
|
disable_config_p2p_io_widgets();
|
|
else
|
|
enable_config_p2p_io_widgets();}
|
|
tooltip {Allow/Disallow Changes} xywh {12 112 85 20} down_box DOWN_BOX
|
|
code0 {o->value(progStatus.ip_lock);}
|
|
}
|
|
Fl_Check_Button btnEnable_arq {
|
|
label {Enable ARQ}
|
|
callback {if(o->value()) {
|
|
progdefaults.changed = true;
|
|
progdefaults.data_io_enabled = ARQ_IO;
|
|
data_io_enabled = ARQ_IO;
|
|
enable_disable_kpsql();
|
|
}
|
|
|
|
progdefaults.changed = true;}
|
|
tooltip {Used For PSKMail and FLDIGI Suite of Programs} xywh {96 112 115 20} type Radio down_box DOWN_BOX
|
|
code0 {if(progdefaults.data_io_enabled == ARQ_IO) o->value(true);}
|
|
code1 {progStatus.ip_lock ? o->deactivate() : o->activate();}
|
|
}
|
|
Fl_Check_Button btnEnable_kiss {
|
|
label {Enable KISS}
|
|
callback {if(o->value()) {
|
|
progdefaults.data_io_enabled = KISS_IO;
|
|
data_io_enabled = KISS_IO;
|
|
enable_disable_kpsql();
|
|
}
|
|
progdefaults.changed = true;}
|
|
tooltip {Used for BPQ32} xywh {221 112 115 20} type Radio down_box DOWN_BOX
|
|
code0 {if(progdefaults.data_io_enabled == KISS_IO) o->value(true);}
|
|
code1 {progStatus.ip_lock ? o->deactivate() : o->activate();}
|
|
}
|
|
Fl_Check_Button btnEnable_ax25_decode {
|
|
label {AX25 Decode}
|
|
callback {if(o->value())
|
|
progdefaults.ax25_decode_enabled = true;
|
|
else
|
|
progdefaults.ax25_decode_enabled = false;
|
|
|
|
progdefaults.changed = true;}
|
|
tooltip {Decode AX25 Packets into human readable form} xywh {346 112 115 20} down_box DOWN_BOX
|
|
code0 {if(progdefaults.ax25_decode_enabled) o->value(true); else o->value(false);}
|
|
code1 {progStatus.ip_lock ? o->deactivate() : o->activate();}
|
|
}
|
|
Fl_Check_Button btnEnable_csma {
|
|
label {Enable CSMA}
|
|
callback {if(o->value()) {
|
|
progdefaults.csma_enabled = true;
|
|
} else {
|
|
progdefaults.csma_enabled = false;
|
|
}
|
|
progdefaults.changed = true;}
|
|
tooltip {Used for BPQ32} xywh {471 112 115 20} down_box DOWN_BOX
|
|
code0 {if(progdefaults.csma_enabled) o->value(true);}
|
|
code1 {progStatus.ip_lock ? o->deactivate() : o->activate();}
|
|
}
|
|
Fl_Box {} {
|
|
label {Enable ARQ for programs that support TCP and FLDIGI ARQ protocol.
|
|
Enable KISS for programs that supports UDP and TNC-2 KISS protocol.
|
|
Only one interface (ARQ/KISS) can be active at any given time.
|
|
KISS/ARQ/XML Addr/Port changes require program restart.}
|
|
xywh {8 37 582 72}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label KISS open
|
|
xywh {6 138 588 85} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Button btnDefault_kiss_ip {
|
|
label Default
|
|
callback {set_ip_to_default(KISS_IO);
|
|
progdefaults.changed = true;}
|
|
tooltip {Returns IP Address and port
|
|
number to the default value.} xywh {425 193 73 25}
|
|
code0 {progStatus.ip_lock ? o->deactivate() : o->activate();}
|
|
}
|
|
Fl_Input txtKiss_ip_address {
|
|
label Addr
|
|
callback {progdefaults.kiss_address = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {IP Address for KISS interface
|
|
IP Address format: nnn.nnn.nnn.nnn
|
|
or name: i.e. localhost} xywh {56 193 230 25} align 8 when 1
|
|
code0 {txtKiss_ip_address->labelsize(FL_NORMAL_SIZE);}
|
|
code1 {o->value(progdefaults.kiss_address.c_str());}
|
|
code2 {progStatus.ip_lock ? o->deactivate() : o->activate();}
|
|
class Fl_Input2
|
|
}
|
|
Fl_Counter cntKPSQLAttenuation {
|
|
label {KPSQL Attenuate}
|
|
callback {progdefaults.kpsql_attenuation = (int) o->value();
|
|
update_kpsql_fractional_gain(progdefaults.kpsql_attenuation);
|
|
progdefaults.changed = true;}
|
|
tooltip Attenuation xywh {56 169 110 20} align 8 minimum 1 maximum 999 step 1 value 1
|
|
code0 {o->value(progdefaults.kpsql_attenuation);}
|
|
code1 {o->step(1,10);}
|
|
code2 {update_kpsql_fractional_gain(progdefaults.kpsql_attenuation);}
|
|
code3 {progStatus.ip_lock ? o->deactivate() : o->activate();}
|
|
}
|
|
Fl_Input txtKiss_ip_io_port_no {
|
|
label {I/O}
|
|
callback {progdefaults.kiss_io_port = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {IP Address Port Number} xywh {333 164 55 25} align 8 when 1
|
|
code0 {txtKiss_ip_io_port_no->labelsize(FL_NORMAL_SIZE);}
|
|
code1 {o->value(progdefaults.kiss_io_port.c_str());}
|
|
code2 {progStatus.ip_lock ? o->deactivate() : o->activate();}
|
|
class Fl_Input2
|
|
}
|
|
Fl_Counter cntBusyChannelSeconds {
|
|
label Continue
|
|
callback {progdefaults.busyChannelSeconds = (int) o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Continue after in seconds} xywh {56 145 110 20} align 8 minimum 1 maximum 999 step 1 value 1
|
|
code0 {o->value(progdefaults.busyChannelSeconds);}
|
|
code1 {o->step(1,10);}
|
|
code2 {progStatus.ip_lock ? o->deactivate() : o->activate();}
|
|
}
|
|
Fl_Check_Button btnEnableBusyChannel {
|
|
label Busy
|
|
callback {if(o->value())
|
|
progdefaults.enableBusyChannel = true;
|
|
else
|
|
progdefaults.enableBusyChannel = false;
|
|
progdefaults.changed = true;}
|
|
tooltip {Enable Busy Channel} xywh {425 147 65 15} down_box DOWN_BOX
|
|
code0 {if(progdefaults.enableBusyChannel) o->value(true);}
|
|
code1 {else o->value(false);}
|
|
code2 {progStatus.ip_lock ? o->deactivate() : o->activate();}
|
|
}
|
|
Fl_Input txtKiss_ip_out_port_no {
|
|
label O
|
|
callback {progdefaults.kiss_out_port = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {Output port number when same IP address used} xywh {333 193 55 25} align 8 when 1
|
|
code0 {txtKiss_ip_out_port_no->labelsize(FL_NORMAL_SIZE);}
|
|
code1 {o->value(progdefaults.kiss_out_port.c_str());}
|
|
code2 {progStatus.ip_lock ? o->deactivate() : o->activate();}
|
|
class Fl_Input2
|
|
}
|
|
Fl_Check_Button btnEnable_dual_port {
|
|
label {Dual Port}
|
|
callback {if(o->value())
|
|
progdefaults.kiss_dual_port_enabled = true;
|
|
else
|
|
progdefaults.kiss_dual_port_enabled = false;
|
|
|
|
progdefaults.changed = true;}
|
|
tooltip {Enable when both programs are using the same IP address} xywh {425 168 90 16} down_box DOWN_BOX
|
|
code0 {if(progdefaults.kiss_dual_port_enabled) o->value(true); else o->value(false);}
|
|
code1 {progStatus.ip_lock ? o->deactivate() : o->activate();}
|
|
}
|
|
Fl_Button btn_restart_kiss {
|
|
label Restart
|
|
callback {//restart_kiss_server();}
|
|
xywh {505 193 82 25} hide
|
|
code0 {progStatus.ip_lock ? o->deactivate() : o->activate();}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label ARQ open
|
|
xywh {6 225 588 35} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Input txtArq_ip_address {
|
|
label Addr
|
|
callback {progdefaults.arq_address = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {IP Address for ARQ interface
|
|
IP Address format: nnn.nnn.nnn.nnn
|
|
or name: i.e. localhost} xywh {56 229 230 25} align 8 when 1
|
|
code0 {o->labelsize(FL_NORMAL_SIZE);}
|
|
code1 {o->value(progdefaults.arq_address.c_str());}
|
|
code2 {progStatus.ip_lock ? o->deactivate() : o->activate();}
|
|
class Fl_Input2
|
|
}
|
|
Fl_Input txtArq_ip_port_no {
|
|
label Port
|
|
callback {progdefaults.arq_port = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {IP Address Port Number} xywh {333 229 55 25} align 8 when 1
|
|
code0 {o->labelsize(FL_NORMAL_SIZE);}
|
|
code1 {o->value(progdefaults.arq_port.c_str());}
|
|
code2 {progStatus.ip_lock ? o->deactivate() : o->activate();}
|
|
class Fl_Input2
|
|
}
|
|
Fl_Button btnDefault_arq_ip {
|
|
label Default
|
|
callback {set_ip_to_default(ARQ_IO);
|
|
progdefaults.changed = true;}
|
|
tooltip {Returns IP Address and port
|
|
number to the default value.} xywh {425 229 73 25}
|
|
code0 {progStatus.ip_lock ? o->deactivate() : o->activate();}
|
|
}
|
|
Fl_Button btn_restart_arq {
|
|
label Restart
|
|
callback {//arq_restart();}
|
|
xywh {505 229 82 25} hide
|
|
code0 {progStatus.ip_lock ? o->deactivate() : o->activate();}
|
|
}
|
|
}
|
|
Fl_Box {} {
|
|
xywh {6 262 588 1} box BORDER_BOX
|
|
}
|
|
Fl_Group {} {
|
|
label XML open
|
|
xywh {6 266 588 35} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Button btnDefault_xmlrpc_ip {
|
|
label Default
|
|
callback {set_ip_to_default(XMLRPC_IO);
|
|
progdefaults.changed = true;}
|
|
tooltip {Returns IP Address and port
|
|
number to the default value.} xywh {425 270 73 25}
|
|
code0 {progStatus.ip_lock ? o->deactivate() : o->activate();}
|
|
}
|
|
Fl_Input txtXmlrpc_ip_address {
|
|
label Addr
|
|
callback {progdefaults.xmlrpc_address = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {IP Address for XMLRPC interface
|
|
IP Address format: nnn.nnn.nnn.nnn
|
|
or name: i.e. localhost} xywh {56 270 230 25} align 8 when 1
|
|
code0 {o->labelsize(FL_NORMAL_SIZE);}
|
|
code1 {o->value(progdefaults.xmlrpc_address.c_str());}
|
|
code2 {progStatus.ip_lock ? o->deactivate() : o->activate();}
|
|
class Fl_Input2
|
|
}
|
|
Fl_Input txtXmlrpc_ip_port_no {
|
|
label Port
|
|
callback {progdefaults.xmlrpc_port = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {IP Address Port Number} xywh {333 270 55 25} align 8 when 1
|
|
code0 {o->labelsize(FL_NORMAL_SIZE);}
|
|
code1 {o->value(progdefaults.xmlrpc_port.c_str());}
|
|
code2 {progStatus.ip_lock ? o->deactivate() : o->activate();}
|
|
class Fl_Input2
|
|
}
|
|
Fl_Button btn_restart_xml {
|
|
label Restart
|
|
callback {//restart_xml_server();}
|
|
xywh {505 270 82 25} hide
|
|
code0 {progStatus.ip_lock ? o->deactivate() : o->activate();}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label flrig open
|
|
xywh {6 304 588 35} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Button btnDefault_flrig_ip {
|
|
label Default
|
|
callback {set_ip_to_default(FLRIG_IO);
|
|
progdefaults.changed = true;}
|
|
tooltip {Returns IP Address and port
|
|
number to the default value.} xywh {425 309 73 25}
|
|
code0 {progStatus.ip_lock ? o->deactivate() : o->activate();}
|
|
}
|
|
Fl_Input txt_flrig_ip_address {
|
|
label Addr
|
|
callback {progdefaults.flrig_ip_address = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {IP Address for flrig interface
|
|
IP Address format: nnn.nnn.nnn.nnn
|
|
or name: i.e. localhost} xywh {56 309 230 25} align 8 when 1
|
|
code0 {o->labelsize(FL_NORMAL_SIZE);}
|
|
code1 {o->value(progdefaults.flrig_ip_address.c_str());}
|
|
code2 {progStatus.ip_lock ? o->deactivate() : o->activate();}
|
|
class Fl_Input2
|
|
}
|
|
Fl_Input txt_flrig_ip_port {
|
|
label Port
|
|
callback {progdefaults.flrig_ip_port = o->value();
|
|
progdefaults.changed = true;}
|
|
tooltip {IP Address Port Number} xywh {333 309 55 25} align 8 when 1
|
|
code0 {o->labelsize(FL_NORMAL_SIZE);}
|
|
code1 {o->value(progdefaults.flrig_ip_port.c_str());}
|
|
code2 {progStatus.ip_lock ? o->deactivate() : o->activate();}
|
|
class Fl_Input2
|
|
}
|
|
Fl_Button btn_reconnect_flrig_server {
|
|
label Reconnect
|
|
callback {reconnect_to_flrig();}
|
|
xywh {505 309 82 25}
|
|
code0 {\#include "rigsupport.h"}
|
|
code1 {progStatus.ip_lock ? o->deactivate() : o->activate();}
|
|
}
|
|
}
|
|
Fl_Group {} {
|
|
label fllog open
|
|
xywh {6 340 588 36} box ENGRAVED_FRAME align 21
|
|
} {
|
|
Fl_Input txt_fllog_ip_address {
|
|
label Addr
|
|
callback {progdefaults.xmllog_address = o->value();}
|
|
tooltip {IP Address for fllog interface
|
|
IP Address format: nnn.nnn.nnn.nnn
|
|
or name: i.e. localhost} xywh {56 345 230 25} align 8
|
|
code0 {o->value(progdefaults.xmllog_address.c_str());}
|
|
code1 {progStatus.ip_lock ? o->deactivate() : o->activate();}
|
|
}
|
|
Fl_Input txt_fllog_ip_port {
|
|
label Port
|
|
callback {progdefaults.xmllog_port = o->value();}
|
|
tooltip {IP Address Port Number} xywh {333 345 55 25} align 8
|
|
code0 {o->value(progdefaults.xmllog_port.c_str());}
|
|
code1 {progStatus.ip_lock ? o->deactivate() : o->activate();}
|
|
}
|
|
Fl_Button btn_reconnect_log_server {
|
|
label Reconnect
|
|
callback {progdefaults.xml_logbook = true;
|
|
progdefaults.changed = true;
|
|
connect_to_log_server();}
|
|
xywh {505 345 82 25}
|
|
code0 {progStatus.ip_lock ? o->deactivate() : o->activate();}
|
|
}
|
|
Fl_Button btnDefault_fllog_ip {
|
|
label Default
|
|
callback {set_ip_to_default(FLLOG_IO);
|
|
progdefaults.changed = true;}
|
|
tooltip {Returns IP Address and port
|
|
number to the default value.} xywh {425 345 73 25}
|
|
code0 {progStatus.ip_lock ? o->deactivate() : o->activate();}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
Fl_Button btnSaveConfig {
|
|
label Save
|
|
callback {progdefaults.saveDefaults();
|
|
dl_fldigi::commit();}
|
|
xywh {330 388 130 22}
|
|
}
|
|
Fl_Return_Button btnCloseConfig {
|
|
label Close
|
|
callback {closeDialog();
|
|
dl_fldigi::commit();}
|
|
xywh {462 388 130 22}
|
|
}
|
|
Fl_Button btnResetConfig {
|
|
label {Restore defaults}
|
|
callback {progdefaults.resetDefaults();
|
|
progdefaults.changed = false;}
|
|
xywh {20 388 130 22}
|
|
}
|
|
Fl_Button btnApplyConfig {
|
|
label {Apply (dl)}
|
|
callback {dl_fldigi::commit();
|
|
btnApplyConfig->deactivate();}
|
|
xywh {175 388 115 22} deactivate
|
|
}
|
|
}
|
|
}
|
|
|
|
Function {openConfig()} {return_type void
|
|
} {
|
|
code {if (!dlgConfig) createConfig();
|
|
progdefaults.loadDefaults();} {}
|
|
}
|
|
|
|
Function {closeDialog()} {return_type void
|
|
} {
|
|
code {if (dlgConfig) dlgConfig->hide();} {}
|
|
}
|
|
|
|
Function {createConfig()} {return_type void
|
|
} {
|
|
code {if (!dlgConfig) {
|
|
dlgConfig = ConfigureDialog();
|
|
dlgConfig->xclass(PACKAGE_NAME);
|
|
}} {}
|
|
}
|
|
|
|
decl {class Fl_File_Chooser ;} {public global
|
|
}
|
|
|
|
Function {WefaxDestDirSet(Fl_File_Chooser *w, void *userdata)} {return_type void
|
|
} {
|
|
code {/* 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 );
|
|
}} {}
|
|
}
|
|
|
|
Function {KmlDestDirSet(Fl_File_Chooser *w, void *userdata)} {open return_type void
|
|
} {
|
|
code {/* 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 );
|
|
}} {}
|
|
}
|
|
|
|
Function {make_window()} {} {}
|
|
|
|
Function {make_window()} {open
|
|
} {}
|