dl-fldigi/src/dialogs/confdialog.fl

2636 wiersze
107 KiB
Plaintext

# data file for the Fltk User Interface Designer (fluid)
version 1.0109
i18n_type 1
i18n_include "gettext.h"
i18n_function _
header_name {.h}
code_name {.cxx}
decl {\#include <config.h>} {}
decl {\#include <FL/Fl_Tooltip.H>} {}
decl {\#include "main.h"} {}
decl {\#include "soundconf.h"} {}
decl {\#include "globals.h"} {public
}
decl {\#include "modem.h"} {public
}
decl {\#include "configuration.h"} {public
}
decl {\#include "combo.h"} {}
decl {\#include "colorsfonts.h"} {}
decl {\#include "waterfall.h"} {}
decl {\#include "rigxml.h"} {}
decl {\#include "lookupcall.h"} {}
decl {\#include "icons.h"} {}
decl {\#include "Viewer.h"} {}
decl {\#include "pskrep.h"} {global
}
decl {\#include "flinput2.h"} {global
}
decl {\#include "logsupport.h"} {}
decl {Fl_Double_Window *dlgConfig;} {public
}
Function {set_qrz_buttons(Fl_Button* b)} {open return_type void
} {
code {Fl_Button* qrzb[] = { btnQRZnotavailable, btnQRZcdrom, btnQRZonline,
btnQRZsub, btnHamcall, btnHAMCALLonline};
for (size_t i = 0; i < sizeof(qrzb)/sizeof(*qrzb); i++)
qrzb[i]->value(b == qrzb[i]);} {}
}
Function {ConfigureDialog()} {open
} {
code {static const char szShifts[] = "23|85|160|170|182|200|240|350|425|850";
static const char szBauds[] = "45|45.45|50|56|75|100|110|150|200|300";
static const char szSelBits[] = "5 (baudot)|7 (ascii)|8 (ascii)";
static const char szParity[] = "none|even|odd|zero|one";
static const char szStopBits[] = "1|1.5|2";
static const char szOliviaTones[] = "2|4|8|16|32|64|128|256";
static const char szOliviaBandwidth[] = "125|250|500|1000|2000";
static const char szBaudRates[] = "300|600|1200|2400|4800|9600|19200|38400|57600|115200|230400|460800";} {}
code {} {}
Fl_Window {} {
label {Fldigi configuration} open
xywh {733 66 500 400} type Double color 45 selection_color 51 labelsize 18 align 80 visible
} {
Fl_Tabs tabsConfigure {open
xywh {0 0 505 372} color 50 selection_color 50
} {
Fl_Group tabOperator {
label Operator
callback {progdefaults.changed = true;} open selected
xywh {0 25 500 345} when 1
} {
Fl_Group {} {
label Station open
xywh {5 35 490 165} 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();
progdefaults.changed = true;}
tooltip {Operators callsign} xywh {110 64 110 24}
class Fl_Input2
}
Fl_Input inpMyName {
label {Name:}
callback {progdefaults.myName = o->value();
progdefaults.changed = true;}
tooltip {Operators name} xywh {290 64 140 24}
class Fl_Input2
}
Fl_Input inpMyQth {
label {QTH:}
callback {progdefaults.myQth = o->value();
progdefaults.changed = true;}
tooltip {Operators QTH} xywh {110 98 320 24}
class Fl_Input2
}
Fl_Input inpMyLocator {
label {Locator:}
callback {progdefaults.myLocator = o->value();
progdefaults.changed = true;}
tooltip {Maidenhead locator as in EM64qv} xywh {110 166 85 24}
class Fl_Input2
}
}
Fl_Input inpMyAntenna {
label {Antenna:}
callback {progdefaults.myAntenna = o->value();
progdefaults.changed = true;}
tooltip {Short description of antenna} xywh {110 132 320 24}
class Fl_Input2
}
}
Fl_Group tabUI {
label UI open
xywh {0 25 505 345} hide
} {
Fl_Tabs tabsUI {open
xywh {0 25 505 345} selection_color 50
} {
Fl_Group tabUserInterface {
label General open
xywh {0 50 500 320} hide
} {
Fl_Group {} {open
xywh {5 60 490 301} 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 {15 70 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();
toggle_icon_labels();
progdefaults.changed = true;}
tooltip {Enable / disable icons on menus} xywh {15 100 150 20} down_box DOWN_BOX
code0 {o->value(progdefaults.menuicons);}
}
Fl_Choice mnuScheme {
label {UI scheme}
callback {progdefaults.ui_scheme = o->text();
Fl::scheme(progdefaults.ui_scheme.c_str());
progdefaults.changed = true;} open
tooltip {Change application look and feel} xywh {250 75 80 25} down_box BORDER_BOX align 8
code0 {mnuScheme->add("base");}
code1 {mnuScheme->add("gtk+");}
code2 {mnuScheme->add("plastic");}
code3 {mnuScheme->value(mnuScheme->find_item(progdefaults.ui_scheme.c_str()));}
} {}
Fl_Check_Button btnRXClicks {
label {Double-click on RX text enters QSO data}
callback {progdefaults.rxtext_clicks_qso_data = o->value();
progdefaults.changed = true;}
tooltip {I like to double click in Rx panel} xywh {15 295 305 20} down_box DOWN_BOX
code0 {o->value(progdefaults.rxtext_clicks_qso_data);}
}
Fl_Check_Button btnRXTooltips {
label {Show 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 {15 325 282 20} down_box DOWN_BOX
code0 {o->value(progdefaults.rxtext_tooltips);}
}
}
Fl_Group {} {
label {QSO logging} open
xywh {15 130 470 160} box ENGRAVED_FRAME align 21
} {
Fl_Check_Button btnNagMe {
label {Prompt to save log}
callback {progdefaults.NagMe=o->value();
progdefaults.changed = true;}
tooltip {Bug me about saving log entries} xywh {25 155 155 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 {25 180 125 20} down_box DOWN_BOX
code0 {o->value(progdefaults.ClearOnSave);}
}
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 {25 205 225 20} down_box DOWN_BOX
code0 {o->value(progdefaults.autofill_qso_fields);}
}
Fl_Check_Button btnCallUpperCase {
label {Convert callsign field to upper case}
callback {progdefaults.calluppercase = o->value();
progdefaults.changed = true;}
tooltip {Force callsign field to UPPERCASE} xywh {25 230 282 20} down_box DOWN_BOX
code0 {o->value(progdefaults.calluppercase);}
}
Fl_Input inpMyPower {
label {Transmit Power}
callback {progdefaults.mytxpower = o->value();
progdefaults.changed = true;}
tooltip {Tx power used for logbook entries} xywh {25 256 50 24} align 8
code0 {o->value(progdefaults.mytxpower.c_str());}
class Fl_Input2
}
}
}
Fl_Group tabWfallRestart {
label Restart open
xywh {0 50 500 320} hide
} {
Fl_Group {} {
label {These changes take effect on next program startup} open
tooltip {Show me more or less waterfall} xywh {5 60 490 190} box ENGRAVED_FRAME align 17
} {
Fl_Counter cntrWfwidth {
label {Waterfall width in Hz}
callback {progdefaults.wfwidth = (int)(o->value());
progdefaults.changed = true;}
tooltip {CPU usage increases with waterfall width} xywh {15 97 95 21} type Simple align 8 minimum 2400 maximum 4000 step 100 value 3000
code0 {o->value(progdefaults.wfwidth);}
}
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 {15 128 95 21} type Simple align 8 minimum 100 maximum 160 step 5 value 120
code0 {o->value(progdefaults.wfheight);}
}
Fl_Check_Button btnDockedScope {
label {Docked scope}
callback {progdefaults.docked_scope = o->value();
progdefaults.changed = true;}
tooltip {Attach digiscope to right of waterfall} xywh {15 159 125 20} down_box DOWN_BOX
code0 {o->value(progdefaults.docked_scope);}
}
Fl_Check_Button btnDockedRigControl {
label {Docked rig rontrol}
callback {progdefaults.docked_rig_control = o->value();
progdefaults.changed = true;}
tooltip {Attach rig control to left of logbook} xywh {15 189 150 20} down_box DOWN_BOX value 1
code0 {o->value(progdefaults.docked_rig_control);}
}
Fl_Check_Button btnCheckButtons {
label {Use check buttons for AFC and SQL}
callback {progdefaults.useCheckButtons = o->value();
progdefaults.changed = true;}
tooltip {Check buttons or default lighted switch} xywh {15 219 275 20} down_box DOWN_BOX
code0 {o->value(progdefaults.useCheckButtons);}
}
}
}
Fl_Group tabContest {
label Contest open
xywh {0 50 500 320}
} {
Fl_Group {} {
label Exchanges open
xywh {5 60 490 80} box ENGRAVED_FRAME align 21
} {
Fl_Box lblSend {
label {Send:}
xywh {37 95 55 20}
}
Fl_Input inpSend1 {
label {Exchange Out}
callback {progdefaults.myXchg=o->value();
progdefaults.changed = true;}
tooltip {free form exchange} xywh {95 95 140 20} align 1
code0 {o->value(progdefaults.myXchg.c_str());}
class Fl_Input2
}
Fl_Check_Button btn599 {
label {RST always 599}
callback {progdefaults.fixed599 = o->value();
progdefaults.changed = true;}
tooltip {Force RST in/out to 599} xywh {310 80 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 {310 110 180 20} down_box DOWN_BOX
code0 {o->value(progdefaults.cutnbrs);}
}
}
Fl_Group {} {
label {Serial number} open
xywh {5 150 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 {26 176 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 {221 176 45 20} align 1 maximum 10000 step 1
code0 {o->value(progdefaults.ContestStart);}
}
Fl_Value_Input nbrContestDigits {
label Digits
callback {progdefaults.ContestDigits = (int)o->value();
progdefaults.changed = true;}
tooltip {Number of digits in serial number} xywh {303 175 45 20} align 1 minimum 1 maximum 5 step 1 value 3
}
Fl_Button btnResetSerNbr {
label Reset
callback {cb_ResetSerNbr();}
tooltip {Initialize the QSO logging fields} xywh {395 176 70 20}
}
}
Fl_Group {} {
label {Duplicate check, CALL plus} open
xywh {5 225 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 {15 255 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 {156 255 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 {276 255 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 {395 255 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 {156 283 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 {156 313 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 {285 313 53 20} align 8 maximum 1440 step 1 value 120
code0 {o->value(progdefaults.timespan);}
}
}
}
}
}
Fl_Group tabWaterfall {
label Waterfall open
xywh {0 25 500 347} hide
} {
Fl_Tabs tabsWaterfall {open
xywh {0 25 500 347} color 50 selection_color 50
} {
Fl_Group {} {
label Display open
xywh {0 50 500 320}
} {
Fl_Group {} {
label {Colors and cursors} open
xywh {5 60 490 162} box ENGRAVED_FRAME align 21
} {
Fl_Button WF_Palette {
callback {progdefaults.changed = true;}
xywh {15 98 260 24} box DOWN_BOX color 0 labelsize 12 align 5
code0 {\#include "colorbox.h"}
code1 {o->label(progdefaults.PaletteName.c_str());}
class colorbox
}
Fl_Button {btnColor[0]} {
callback {selectColor(0);
progdefaults.changed = true;}
tooltip {Change color} xywh {15 128 20 24}
}
Fl_Button {btnColor[1]} {
callback {selectColor(1);
progdefaults.changed = true;}
tooltip {Change color} xywh {45 128 20 24}
}
Fl_Button {btnColor[2]} {
callback {selectColor(2);
progdefaults.changed = true;}
tooltip {Change color} xywh {75 128 20 24}
}
Fl_Button {btnColor[3]} {
callback {selectColor(3);
progdefaults.changed = true;}
tooltip {Change color} xywh {105 128 20 24}
}
Fl_Button {btnColor[4]} {
callback {selectColor(4);
progdefaults.changed = true;}
tooltip {Change color} xywh {135 128 20 24}
}
Fl_Button {btnColor[5]} {
callback {selectColor(5);
progdefaults.changed = true;}
tooltip {Change color} xywh {165 128 20 24}
}
Fl_Button {btnColor[6]} {
callback {selectColor(6);
progdefaults.changed = true;}
tooltip {Change color} xywh {195 128 20 24}
}
Fl_Button {btnColor[7]} {
callback {selectColor(7);
progdefaults.changed = true;}
tooltip {Change color} xywh {225 128 20 24}
}
Fl_Button {btnColor[8]} {
callback {selectColor(8);
progdefaults.changed = true;}
tooltip {Change color} xywh {256 128 20 24}
}
Fl_Button btnLoadPalette {
label {Load...}
callback {loadPalette();
progdefaults.changed = true;}
tooltip {Load a new palette} xywh {314 96 70 24}
code0 {\#include "colorbox.h"}
}
Fl_Button btnSavePalette {
label {Save...}
callback {savePalette();}
tooltip {Save this palette} xywh {314 128 70 24}
code0 {\#include "colorbox.h"}
}
Fl_Check_Button btnUseCursorLines {
label {Bandwidth cursor}
callback {progdefaults.UseCursorLines = o->value();
if (o->value())
btnCursorBWcolor->activate();
else
btnCursorBWcolor->deactivate();
progdefaults.changed = true;}
tooltip {Show cursor with bandwidth lines} xywh {15 161 150 20} down_box DOWN_BOX
code0 {o->value(progdefaults.UseCursorLines);}
}
Fl_Button btnCursorBWcolor {
label {Cursor 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 {15 191 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 btnUseCursorCenterLine {
label {Cursor center line}
callback {progdefaults.UseCursorCenterLine = o->value();
progdefaults.changed = true;}
tooltip {Show cursor with center line} xywh {185 161 149 20} down_box DOWN_BOX
code0 {o->value(progdefaults.UseCursorCenterLine);}
}
Fl_Button btnCursorCenterLineColor {
label {Center line 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 {185 191 20 20} color 7 align 8
code0 {o->color(fl_rgb_color(progdefaults.cursorCenterRGBI.R,progdefaults.cursorCenterRGBI.G,progdefaults.cursorCenterRGBI.B));}
}
Fl_Check_Button btnUseBWTracks {
label {Bandwidth tracks}
callback {progdefaults.UseBWTracks = o->value();
progdefaults.changed = true;}
tooltip {Show bandwidth tracks on waterfall} xywh {346 161 145 20} down_box DOWN_BOX
code0 {o->value(progdefaults.UseBWTracks);}
}
Fl_Button btnBwTracksColor {
label {Tracks 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();
progdefaults.changed = true;
}}
tooltip {Change color} xywh {346 191 20 20} color 1 align 8
code0 {o->color(fl_rgb_color(progdefaults.bwTrackRGBI.R,progdefaults.bwTrackRGBI.G,progdefaults.bwTrackRGBI.B));}
}
}
Fl_Group {} {
label {Frequency scale} open
xywh {5 222 490 62} 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 {15 252 240 20} down_box DOWN_BOX
code0 {o->value(progdefaults.wf_audioscale);}
}
Fl_Button btnWaterfallFont {
label {Font...}
callback {static Font_Browser *b = (Font_Browser *)0;
if (!b) {
b = new Font_Browser;
b->fontNumber(progdefaults.WaterfallFontnbr);
b->fontSize(progdefaults.WaterfallFontsize);
}
b->callback((Fl_Callback*)cbWaterfallFontBrowser, (void*)(b));
b->show();}
tooltip {Select waterfall scale font} xywh {314 252 70 24}
}
}
Fl_Group {} {
label {Transmit signal} open
xywh {5 285 490 80} 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 {15 315 205 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 {270 315 200 20} type Horizontal align 1 step 0.05 value 0.5 textsize 14
code0 {o->value(progdefaults.TxMonitorLevel);}
}
}
}
Fl_Group {} {
label {FFT Processing} open
xywh {0 50 500 320} hide
} {
Fl_Group {} {open
xywh {5 62 490 135} box ENGRAVED_FRAME
} {
Fl_Counter cntLowFreqCutoff {
label {Low frequency cutoff}
callback {progdefaults.LowFreqCutoff=(int)(o->value());
progdefaults.changed = true;}
tooltip {Suppress waterfall below this audio frequency} xywh {15 72 70 20} type Simple align 8 minimum 0 maximum 500 step 50 value 300
code0 {o->value(progdefaults.LowFreqCutoff);}
}
Fl_Counter valLatency {
label {FFT latency (scan merging)}
callback {progdefaults.latency = (int)o->value();
progdefaults.changed = true;}
tooltip {Latency increases frequency resolution,
decreases time resolution. 1 = no scan merging} xywh {15 102 70 21} type Simple align 8 minimum 1 maximum 8 step 1 value 4
code0 {o->value(progdefaults.latency);}
}
Fl_Check_Button btnWFaveraging {
label {FFT averaging}
callback {progdefaults.WFaveraging = o->value();
progdefaults.changed = true;}
tooltip {Use averaging to decrease waterfall noise} xywh {15 133 120 20} down_box DOWN_BOX
code0 {o->value(progdefaults.WFaveraging);}
}
Fl_Choice mnuFFTPrefilter {
label {FFT prefilter window function}
callback {progdefaults.wfPreFilter = o->value();
progdefaults.changed = true;} open
tooltip {Select the type of FFT prefilter} xywh {15 163 120 25} down_box BORDER_BOX align 8
code0 {mnuFFTPrefilter->add("Rectangular"); mnuFFTPrefilter->add("Blackman");}
code1 {mnuFFTPrefilter->add("Hamming"); mnuFFTPrefilter->add("Hanning");}
code2 {mnuFFTPrefilter->add("Triangular");}
code3 {mnuFFTPrefilter->value(progdefaults.wfPreFilter);}
} {}
}
}
Fl_Group {} {
label Mouse open
xywh {0 50 500 320} hide
} {
Fl_Group {} {open
xywh {5 62 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 {15 76 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 {15 106 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 {15 148 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 {301 136 180 50} align 8
class Fl_Input2
}
}
Fl_Choice mnuWaterfallWheelAction {
label {Wheel action}
callback {progdefaults.WaterfallWheelAction = o->value();
progdefaults.changed = true;} open
tooltip {Select how the mouse wheel
behaves inside the waterfall} xywh {15 196 150 22} down_box BORDER_BOX align 8
} {}
}
}
}
Fl_Group tabModems {
label Modems open
xywh {0 25 500 345} hide
} {
Fl_Tabs tabsModems {open
xywh {0 25 500 345} selection_color 50 align 9
} {
Fl_Group tabCW {
label CW open
xywh {0 50 500 320} hide
} {
Fl_Tabs tabsCW {open
xywh {0 50 500 320} selection_color 50
} {
Fl_Group {} {
label General open
xywh {0 75 500 295} align 5 hide
} {
Fl_Group {} {
label Receive open
xywh {5 85 490 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 {40 115 290 20} type Horizontal align 8 minimum 10 maximum 500 step 10 value 150 textsize 14
code0 {o->value(progdefaults.CWbandwidth);}
}
Fl_Check_Button btnCWrcvTrack {
label Tracking
callback {progdefaults.CWtrack = o->value();
progdefaults.changed = true;}
tooltip {Automatic Rx speed tracking} xywh {40 150 80 20} down_box DOWN_BOX value 1
code0 {o->value(progdefaults.CWtrack);}
}
Fl_Counter cntCWrange {
label {Tracking range (WPM)}
callback {progdefaults.CWrange = (int)o->value();
progdefaults.changed = true;}
tooltip {Range +/- wpm} xywh {225 150 65 20} type Simple align 8 minimum 5 maximum 25 step 1 value 10
code0 {o->value(progdefaults.CWrange);}
}
Fl_Value_Output valCWrcvWPM {
callback {progdefaults.changed = true;}
xywh {40 188 35 20} color 7
}
Fl_Progress prgsCWrcvWPM {
tooltip {Tracked CW speed in WPM} xywh {75 188 255 20} color 49 selection_color 15 align 0
}
Fl_Box {} {
label {RX WPM}
xywh {330 188 70 20} align 20
}
}
Fl_Group {} {
label Transmit open
xywh {5 215 490 110} box ENGRAVED_FRAME align 21
} {
Fl_Value_Slider sldrCWxmtWPM {
label {TX WPM}
callback {progdefaults.CWspeed = (int)o->value();
cntPreTiming->maximum((int)(2400/o->value())/2.0);
cntPostTiming->maximum((int)(2400/o->value())/2.0);
progdefaults.changed = true;}
tooltip {My transmit CW WPM} xywh {40 248 290 20} type Horizontal align 8 minimum 5 maximum 100 step 1 value 20 textsize 14
code0 {o->value(progdefaults.CWspeed);}
}
Fl_Counter cntCWdefWPM {
label Default
callback {progdefaults.defCWspeed = (int)o->value();
progdefaults.changed = true;}
tooltip {The default CW speed} xywh {40 294 64 20} type Simple align 1 minimum 5 maximum 200 step 1 value 18
code0 {o->value(progdefaults.defCWspeed);}
}
Fl_Counter cntCWlowerlimit {
label {Lower limit}
callback {progdefaults.CWlowerlimit = (int)o->value();
progdefaults.changed = true;
sldrCWxmtWPM->minimum(o->value());
sldrCWxmtWPM->value(progdefaults.CWspeed);
sldrCWxmtWPM->redraw();
cntCWupperlimit->minimum(o->value()+20);}
tooltip {No slower than this} xywh {152 294 65 20} type Simple align 1 minimum 5 maximum 20 step 5 value 10
code0 {o->value(progdefaults.CWlowerlimit);}
}
Fl_Counter cntCWupperlimit {
label {Upper limit}
callback {progdefaults.CWupperlimit = (int)o->value();
progdefaults.changed = true;
sldrCWxmtWPM->maximum(o->value());
sldrCWxmtWPM->value(progdefaults.CWspeed);
sldrCWxmtWPM->redraw();
cntCWlowerlimit->maximum(o->value()-20);}
tooltip {No faster than this} xywh {265 294 65 20} type Simple align 1 minimum 25 maximum 200 step 5 value 100
code0 {o->value(progdefaults.CWupperlimit);}
}
}
}
Fl_Group {} {
label {Timing and QSK} open
xywh {0 75 500 295} align 5
} {
Fl_Group {} {
label Timing open
xywh {5 85 490 95} 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 {15 114 65 20} type Simple align 8 minimum 20 maximum 80 step 1 value 50
code0 {o->value(progdefaults.CWweight);}
}
Fl_Counter cntCWdash2dot {
label {Dash to dot ratio}
callback {progdefaults.CWdash2dot=o->value();
progdefaults.changed = true;}
tooltip {Dash to dot ratio} xywh {211 114 64 20} type Simple align 8 minimum 2.5 maximum 4 step 0.1 value 3
code0 {o->value(progdefaults.CWdash2dot);}
}
Fl_Counter cntCWrisetime {
label Edge
callback {progdefaults.CWrisetime=o->value();
progdefaults.changed = true;}
tooltip {Leading and trailing edge risetimes (msec)} xywh {15 144 65 21} type Simple align 8 minimum 0 maximum 15 step 0.1 value 4
code0 {o->value(progdefaults.CWrisetime);}
}
}
Fl_Group {} {
label QSK open
xywh {5 180 490 118} box ENGRAVED_FRAME align 21
} {
Fl_Check_Button btnQSK {
label {QSK on right audio channel}
callback {progdefaults.QSK=o->value();
progdefaults.changed = true;}
tooltip {Generate square wave signal on right channel} xywh {15 208 211 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} xywh {15 238 64 20} type Simple align 8 minimum 0 maximum 50 step 0.5 value 4
code0 {o->value(progdefaults.CWpre);}
code1 {o->maximum((int)(2400/progdefaults.CWspeed)/2.0);}
}
Fl_Counter cntPostTiming {
label {Post-keydown timing (ms)}
callback {progdefaults.CWpost=o->value();
progdefaults.changed = true;}
tooltip {Msec post-keydown} xywh {15 268 64 20} type Simple align 8 minimum -20 maximum 50 step 0.5 value 4
code0 {o->value(progdefaults.CWpre);}
code1 {o->maximum((int)(2400/progdefaults.CWspeed)/2.0);}
}
}
}
}
}
Fl_Group tabDomEX {
label DominoEX open
xywh {0 50 500 320} hide
} {
Fl_Group {} {open
xywh {5 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 {15 87 360 40} type Multiline align 5 when 1
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 {15 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 {156 141 63 20} type Simple align 8 minimum 1 maximum 2 step 0.1 value 1.5
code0 {o->value(progdefaults.DOMINOEX_BW);}
}
Fl_Check_Button chkDominoEX_FEC {
label FEC
callback {progdefaults.DOMINOEX_FEC = o->value();
progdefaults.changed = true;}
tooltip {Enable MultiPSK-compatible FEC} xywh {15 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 {15 207 260 20} type Horizontal align 1 step 0.01 textsize 14
code0 {o->value(progdefaults.DomCWI);}
}
Fl_Counter valDominoEX_PATHS {
label {Paths (hidden)}
callback {progdefaults.DOMINOEX_PATHS = (int)o->value();
progdefaults.changed = true;}
xywh {339 194 63 20} type Simple minimum 4 maximum 8 step 1 value 5
code0 {o->value(progdefaults.DOMINOEX_PATHS);}
code1 {o->hide();}
}
}
}
Fl_Group tabFeld {
label Feldhell open
xywh {0 50 500 320} hide
} {
Fl_Group {} {open
xywh {5 60 490 145} box ENGRAVED_FRAME
} {
Fl_Choice selHellFont {
label {Transmit font}
callback {progdefaults.feldfontnbr=o->value();
progdefaults.changed = true;} open
tooltip {Select TX raster font} xywh {15 70 150 20} down_box BORDER_BOX align 8
code0 {\#include "fontdef.h"}
code1 {o->add(szFeldFonts);}
code2 {o->value(progdefaults.feldfontnbr);}
} {}
Fl_Check_Button btnBlackboard {
label {Reverse video}
callback {progdefaults.HellBlackboard=o->value();
progdefaults.changed = true;}
tooltip {Display RX in reverse video} xywh {300 70 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 {15 100 40 20} align 8 maximum 3 value 1
code0 {o->value(progdefaults.HellXmtWidth);}
}
Fl_Check_Button btnHellRcvWidth {
label {Halve receive width}
callback {progdefaults.HellRcvWidth=o->value();
progdefaults.changed = true;}
tooltip {Compress Rx in time} xywh {300 100 155 20} down_box DOWN_BOX
code0 {o->value(progdefaults.HellRcvWidth);}
}
Fl_Choice mnuHellPulse {
label {Pulse shape}
callback {progdefaults.HellPulseFast = o->value();
progdefaults.changed = true;} open
tooltip {Raised cosine pulse shape factor} xywh {15 147 150 20} down_box BORDER_BOX align 5
code0 {o->add("Slow (4 msec)");}
code1 {o->add("Fast (2 msec)");}
code2 {o->value(progdefaults.HellPulseFast);}
} {}
Fl_Value_Slider sldrHellBW {
label {Receive filter bandwidth}
callback {progdefaults.HELL_BW = sldrHellBW->value();}
tooltip {Adjust the DSP bandwidth} xywh {206 147 246 20} type Horizontal align 5 minimum 10 maximum 2400 step 5 value 400 textsize 14
code0 {o->value(progdefaults.HELL_BW);}
}
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 {15 177 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 {305 175 113 20} down_box DOWN_BOX
code0 {o->value(progdefaults.HellXmtWidth);}
code1 {o->hide();}
}
}
}
Fl_Group tabMT63 {
label {MT-63} open
xywh {0 50 500 320} hide
} {
Fl_Group {} {open
xywh {5 60 490 85} box ENGRAVED_FRAME align 21
} {
Fl_Check_Button btnmt63_interleave {
label {64-bit (long) interleave}
callback {if (o->value() == 1)
progdefaults.mt63_interleave = 64;
else
progdefaults.mt63_interleave = 32;
progdefaults.changed = true;}
tooltip {Use Long interleave (default)} xywh {150 78 185 20} down_box DOWN_BOX value 1
code0 {o->value(0);if (progdefaults.mt63_interleave == 64) o->value(1);}
}
Fl_Check_Button btnMT63_8bit {
label {8-bit extended characters}
callback {progdefaults.mt63_8bit = o->value();
progdefaults.changed = true;}
tooltip {Enable this for Latin-1 accented characters} xywh {150 113 205 20} down_box DOWN_BOX
code0 {o->value(progdefaults.mt63_8bit);}
}
}
}
Fl_Group tabOlivia {
label Olivia open
xywh {0 50 500 320} hide
} {
Fl_Group {} {open
xywh {5 60 490 200} box ENGRAVED_FRAME
} {
Fl_Choice mnuOlivia_Bandwidth {
label Bandwidth
callback {progdefaults.oliviabw = o->value();
resetOLIVIA();
progdefaults.changed = true;} open
tooltip {Select bandwidth} xywh {60 80 85 20} down_box BORDER_BOX align 8
code0 {o->add(szOliviaBandwidth);}
code1 {o->value(2);}
} {}
Fl_Choice mnuOlivia_Tones {
label Tones
callback {progdefaults.oliviatones = o->value();
resetOLIVIA();
progdefaults.changed = true;} open
tooltip {Select number of tones} xywh {321 80 70 20} down_box BORDER_BOX align 8
code0 {o->add(szOliviaTones);}
code1 {o->value(2);}
} {}
Fl_Group {} {
label {Receive synchronizer} open
xywh {60 119 379 100} 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 {80 150 70 20} type Simple align 8 minimum 2 maximum 128 step 1 value 8
}
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 {80 180 70 20} type Simple align 8 minimum 2 maximum 128 step 1 value 4
}
}
Fl_Check_Button btnOlivia_8bit {
label {8-bit extended characters}
callback {progdefaults.olivia8bit = o->value();
progdefaults.changed = true;}
tooltip {Enable this for Latin-1 accented characters} xywh {60 229 200 20} down_box DOWN_BOX
}
}
}
Fl_Group tabPSK {
label PSK open
xywh {0 50 500 320} hide
} {
Fl_Tabs tabsPSK {open
xywh {0 50 500 320} selection_color 50
} {
Fl_Group {} {
label General open
xywh {0 75 500 295} align 5
} {
Fl_Group {} {
label {AFC behavior} open
xywh {5 85 490 98} 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 {15 117 75 20} type Simple align 8 minimum 10 maximum 500 step 10 value 200
code0 {o->value(progdefaults.SearchRange);}
}
Fl_Counter cntACQsn {
label {Acquisition S/N (dB)}
callback {progdefaults.ACQsn = (int)o->value();
progdefaults.changed = true;}
tooltip {Capture signals over this threshold} xywh {15 146 75 20} type Simple align 8 minimum 3 maximum 20 step 1 value 6
code0 {o->value(progdefaults.ACQsn);}
}
}
Fl_Group {} {
label {S/N and IMD behavior} open
xywh {5 183 490 65} box ENGRAVED_FRAME align 21
} {
Fl_Choice mnuPSKStatusTimeout {
label after
callback {progdefaults.StatusDim = o->value();
progdefaults.changed = true;} open
tooltip {Behavior of s/n imd} xywh {15 214 80 20} down_box BORDER_BOX align 8
code0 {o->add("Clear"); o->add("Dim");}
code1 {o->value(progdefaults.StatusDim);}
} {}
Fl_Counter {} {
label seconds
callback {progdefaults.StatusTimeout = (int)(o->value());
progdefaults.changed = true;}
tooltip {Will occur after this time in seconds} xywh {156 214 75 20} type Simple align 8 minimum 0 maximum 30 step 1
code0 {o->value(progdefaults.StatusTimeout);}
}
}
}
Fl_Group {} {
label Mail open
xywh {0 75 500 295} align 5 hide
} {
Fl_Group {} {open
xywh {5 85 490 80} box ENGRAVED_FRAME
} {
Fl_Check_Button btnPSKmailSweetSpot {
label {Use sweetspot frequencies}
callback {progdefaults.PSKmailSweetSpot = o->value();
progdefaults.changed = true;}
tooltip {Return TX frequency to sweetspot} xywh {55 100 215 20} down_box DOWN_BOX value 1
code0 {o->value(progdefaults.PSKmailSweetSpot);}
}
Fl_Counter cntServerOffset {
label {Server search range}
callback {progdefaults.ServerOffset = (int)o->value();
wf->redraw_marker();
progdefaults.changed = true;}
tooltip {Listen for signals within this range} xywh {55 129 80 20} type Simple align 8 minimum 10 maximum 500 step 10 value 200
code0 {o->value(progdefaults.SearchRange);}
}
}
}
Fl_Group {} {
label Viewer open
xywh {0 75 500 295} align 5 hide
} {
Fl_Group {} {open
xywh {5 85 490 110} box ENGRAVED_FRAME
} {
Fl_Check_Button btnMarquee {
label {Continuous scrolling}
callback {progdefaults.VIEWERmarquee = o->value();
progdefaults.changed = true;
initViewer();}
tooltip {ON - Marquee style
OFF - Clear & restart} xywh {212 125 165 20} down_box DOWN_BOX
code0 {o->value(progdefaults.VIEWERmarquee);}
}
Fl_Spinner cntChannels {
label Channels
callback {progdefaults.VIEWERchannels = (int)(o->value());
initViewer();}
tooltip {Change \# of psk viewer channels} xywh {15 95 39 20} align 8 value 1
code0 {o->minimum(5);}
code1 {o->maximum(30);}
code2 {o->step(1);}
code3 {o->value(progdefaults.VIEWERchannels);}
}
Fl_Spinner cntStartFrequency {
label {Start frequency}
callback {progdefaults.VIEWERstart = (int)(o->value());
progdefaults.changed = true;
initViewer();}
tooltip {Start decoding at this frequency} xywh {15 125 50 20} align 8 value 1
code0 {o->minimum(200);}
code1 {o->maximum(1000);}
code2 {o->step(100);}
code3 {o->value(progdefaults.VIEWERstart);}
}
Fl_Spinner cntTimeout {
label {Inactivity timeout}
callback {progdefaults.VIEWERtimeout = (int)(o->value());
progdefaults.changed = true;}
tooltip {Clear channel text after
\# seconds of inactivity} xywh {212 95 50 20} align 8 value 1
code0 {o->minimum(1);}
code1 {o->maximum(180);}
code2 {o->step(1);}
code3 {o->value(progdefaults.VIEWERtimeout);}
}
Fl_Choice mnuViewerLabel {
label {Channel label}
callback {progdefaults.VIEWERlabeltype = o->value();
initViewer();
progdefaults.changed = true;} open
tooltip {Appearance of label on each channel} xywh {15 155 150 25} down_box BORDER_BOX align 8
code0 {mnuViewerLabel->add("Audio frequency");}
code1 {mnuViewerLabel->add("Radio frequency");}
code2 {mnuViewerLabel->add("Channel number");}
code3 {mnuViewerLabel->value(progdefaults.VIEWERlabeltype);}
} {}
}
}
}
}
Fl_Group tabRTTY {
label RTTY open
xywh {0 50 500 320}
} {
Fl_Group {} {open
xywh {5 60 490 270} box ENGRAVED_FRAME
} {
Fl_Choice selShift {
label {Carrier shift}
callback {progdefaults.rtty_shift = o->value();
resetRTTY();
progdefaults.changed = true;} open
tooltip {Select carrier shift} xywh {15 70 100 20} down_box BORDER_BOX align 8 when 1
code0 {o->add(szShifts);}
} {}
Fl_Choice selBaud {
label {Baud rate}
callback {progdefaults.rtty_baud = o->value();
resetRTTY();
progdefaults.changed = true;} open
tooltip {Select carrier baudrate} xywh {15 100 100 20} down_box BORDER_BOX align 8 when 1
code0 {o->add(szBauds);}
} {}
Fl_Choice selBits {
label {Bits per character}
callback {progdefaults.rtty_bits = o->value();
selParity->do_callback();} open
tooltip {Select \# bits / char} xywh {15 130 100 20} down_box BORDER_BOX align 8 when 1
code0 {o->add(szSelBits);}
} {}
Fl_Choice selParity {
label Parity
callback {if (progdefaults.rtty_bits == 0)
o->value(progdefaults.rtty_parity = RTTY_PARITY_NONE);
else
progdefaults.rtty_parity = o->value();
resetRTTY();
progdefaults.changed = true;} open
tooltip {Select parity} xywh {15 160 100 20} down_box BORDER_BOX align 8 when 1
code0 {o->add(szParity);}
} {}
Fl_Choice selStopBits {
label {Stop bits}
callback {progdefaults.rtty_stop = o->value();
resetRTTY();
progdefaults.changed = true;} open
tooltip {Select \# stop bits} xywh {15 190 100 20} down_box BORDER_BOX align 8 when 1
code0 {o->add(szStopBits);}
} {}
Fl_Group {} {open
xywh {255 68 230 80} box ENGRAVED_FRAME
} {
Fl_Check_Button btnAUTOCRLF {
label AutoCRLF
callback {progdefaults.rtty_autocrlf = o->value();
progdefaults.changed = true;}
tooltip {Add CRLF after page width characters} xywh {265 79 90 22} down_box DOWN_BOX
code0 {o->value(progdefaults.rtty_autocrlf);}
}
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 {385 79 90 22} down_box DOWN_BOX when 6
code0 {o->value(progdefaults.rtty_crcrlf);}
}
Fl_Counter cntrAUTOCRLF {
label characters
callback {progdefaults.rtty_autocount = (int)o->value();
progdefaults.changed = true;}
tooltip {Set page width} xywh {335 118 65 20} type Simple align 8 minimum 68 maximum 80 step 1 value 72
}
Fl_Box {} {
label {after:}
xywh {265 118 60 20} align 20
}
}
Fl_Group {} {
label {Unshift On Space} open
xywh {320 158 165 62} box ENGRAVED_FRAME align 21
} {
Fl_Check_Button chkUOSrx {
label RX
callback {progdefaults.UOSrx=o->value();
progdefaults.changed = true;}
tooltip {Revert to Unsifted char's on a space} xywh {355 185 45 20} down_box DOWN_BOX
code0 {o->value(progdefaults.UOSrx);}
}
Fl_Check_Button chkUOStx {
label TX
callback {progdefaults.UOStx=o->value();
progdefaults.changed = true;}
tooltip {Revert to Unsifted char's on a space} xywh {420 185 45 20} down_box DOWN_BOX
code0 {o->value(progdefaults.UOStx);}
}
}
Fl_Check_Button btnPreferXhairScope {
label {Use cross hair scope}
callback {progdefaults.PreferXhairScope=o->value();
progdefaults.changed = true;}
tooltip {Default to cross hair digiscope} xywh {15 224 165 20} down_box DOWN_BOX
code0 {o->value(progdefaults.PreferXhairScope);}
}
Fl_Check_Button chkPseudoFSK {
label {Pseudo-FSK on right audio channel}
callback {progdefaults.PseudoFSK = o->value();
progdefaults.changed = true;}
tooltip {Create square wave on right channel} xywh {15 254 270 20} down_box DOWN_BOX
code0 {o->value(progdefaults.PseudoFSK);}
}
Fl_Choice mnuRTTYAFCSpeed {
label {AFC speed}
callback {progdefaults.rtty_afcspeed = o->value();
progdefaults.changed = true;} open
tooltip {AFC tracking speed} xywh {326 254 80 20} down_box BORDER_BOX align 8
code0 {o->add("Slow"); o->add("Normal"); o->add("Fast");}
code1 {o->value(progdefaults.rtty_afcspeed);}
} {}
Fl_Check_Button chkXagc {
label {X-agc (hidden)}
callback {progdefaults.Xagc=o->value();
progdefaults.changed = true;}
xywh {320 223 62 22} down_box DOWN_BOX
code0 {o->value(progdefaults.Xagc);}
code1 {o->hide();}
}
Fl_Value_Slider sldrRTTYbandwidth {
label {Receive filter bandwidth}
callback {progdefaults.RTTY_BW = o->value();}
tooltip {Adjust the DSP bandwidth} xywh {100 295 300 20} type Horizontal align 5 minimum 50 maximum 1000 step 5 value 400 textsize 14
code0 {o->value(progdefaults.RTTY_BW);}
}
}
}
Fl_Group tabTHOR {
label Thor open
xywh {0 50 500 320} hide
} {
Fl_Group {} {open
xywh {5 60 490 190} 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 {15 87 360 40} type Multiline align 5 when 1
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 {15 141 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 {156 141 63 20} type Simple align 8 minimum 1 maximum 2 step 0.1 value 1.5
code0 {o->value(progdefaults.THOR_BW);}
}
Fl_Check_Button valTHOR_SOFT {
label {Soft decoding}
callback {progdefaults.THOR_SOFT = o->value();
progdefaults.changed = true;}
tooltip {Detector thresholds track S/N} xywh {15 171 120 20} down_box DOWN_BOX
code0 {o->value(progdefaults.THOR_SOFT);}
}
Fl_Value_Slider valThorCWI {
label {CWI threshold}
callback {progdefaults.ThorCWI = o->value();
progdefaults.changed = true;}
tooltip {CWI detection and suppression} xywh {15 218 260 20} type Horizontal align 1 step 0.01 textsize 14
code0 {o->value(progdefaults.ThorCWI);}
}
Fl_Counter valTHOR_PATHS {
label {Paths (hidden)}
callback {progdefaults.THOR_PATHS = (int)o->value();
progdefaults.changed = true;}
xywh {353 217 75 21} type Simple align 1 minimum 4 maximum 8 step 1 value 5
code0 {o->value(progdefaults.THOR_PATHS);}
code1 {o->hide();}
}
}
}
}
}
Fl_Group tabRig {
label Rig open
xywh {0 25 500 345} hide
} {
Fl_Tabs tabsRig {open
xywh {0 25 500 345} selection_color 50
} {
Fl_Group {} {
label {Hardware PTT} open
tooltip {Tottle DTR for ptt} xywh {0 50 500 320}
} {
Fl_Round_Button {btnPTT[0]} {
label {No h/w PTT available}
callback {btnPTT[1]->value(0);
btnPTT[2]->value(0);
btnPTT[3]->value(0);
btnPTT[4]->value(0);
btnPTT[5]->value(0);
o->value(1);
btnInitHWPTT->labelcolor(FL_RED);
btnInitHWPTT->redraw();
progdefaults.changed = true;}
xywh {45 68 138 17} down_box DIAMOND_DOWN_BOX value 1 selection_color 1
}
Fl_Group grpHWPTT {open
xywh {5 140 490 190} box ENGRAVED_FRAME
} {
Fl_Input_Choice inpTTYdev {
label {Device:}
callback {btnInitHWPTT->labelcolor(FL_RED);
btnInitHWPTT->redraw();
progdefaults.changed = true;} open
tooltip {Select serial port} xywh {200 183 150 22}
} {}
Fl_Round_Button btnRTSptt {
label {Use RTS}
callback {btnInitHWPTT->labelcolor(FL_RED);
btnInitHWPTT->redraw();
progdefaults.changed = true;}
tooltip {RTS is ptt signal line} xywh {147 223 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 {262 223 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 {147 253 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 {262 253 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 ptt h/w interface} xywh {188 291 113 24}
}
Fl_Round_Button {btnPTT[4]} {
label {Use separate serial port PTT}
callback {if (o->value() == 1) {
btnPTT[0]->value(0);
btnPTT[1]->value(0);
btnPTT[2]->value(0);
btnPTT[3]->value(0);
btnPTT[5]->value(0);
btnRigCatRTSptt->value(0);
btnRigCatDTRptt->value(0);
}
btnInitHWPTT->labelcolor(FL_RED);
btnInitHWPTT->redraw();
progdefaults.changed = true;}
tooltip {Serial port h/w used for PTT} xywh {145 151 210 20} down_box DIAMOND_DOWN_BOX selection_color 15
}
}
Fl_Check_Button btnPTTrightchannel {
label {Enable right audio channel PTT tone}
callback {progdefaults.PTTrightchannel = o->value();
progdefaults.changed = true;}
tooltip {Can be used in lieu of or in addition to other PTT types} xywh {45 105 70 15} down_box DOWN_BOX
code0 {o->value(progdefaults.PTTrightchannel);}
}
}
Fl_Group {} {
label RigCAT open
tooltip {Rig Control using xml spec file} xywh {0 50 500 320} hide
} {
Fl_Check_Button chkUSERIGCAT {
label {Use RigCAT}
callback {if (o->value() == 1) {
chkUSEHAMLIB->value(0);
chkUSEMEMMAP->value(0);
chkUSEXMLRPC->value(0);
btnPTT[1]->value(0);
btnPTT[1]->deactivate();
btnPTT[2]->value(0);
btnPTT[2]->deactivate();
btnPTT[3]->activate();
btnPTT[5]->activate();
progdefaults.chkUSEMEMMAPis = false;
progdefaults.chkUSEHAMLIBis = false;
progdefaults.chkUSERIGCATis = true;
progdefaults.chkUSEXMLRPCis = false;
} else {
btnPTT[0]->value(1);
btnPTT[3]->value(0);
btnPTT[3]->deactivate();
btnPTT[5]->value(0);
btnPTT[5]->deactivate();
btnRigCatRTSptt->value(0);
btnRigCatDTRptt->value(0);
btnRigCatRTSplus->value(0);
btnRigCatDTRplus->value(0);
chkRigCatRTSCTSflow->value(0);
progdefaults.chkUSERIGCATis = false;
}
btnInitRIGCAT->labelcolor(FL_RED);
btnInitRIGCAT->redraw();
progdefaults.changed = true;}
tooltip {RigCAT used for rig control} xywh {195 60 110 20} down_box DOWN_BOX
}
Fl_Group grpRigCAT {open
xywh {5 85 490 142} box ENGRAVED_FRAME
} {
Fl_Output txtXmlRigFilename {
label {Rig description file:}
tooltip {Use Open to select descriptor file} xywh {15 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 {148 107 60 22}
}
Fl_Input_Choice inpXmlRigDevice {
label {Device:}
callback {progdefaults.XmlRigDevice = o->value();
btnInitRIGCAT->labelcolor(FL_RED);
btnInitRIGCAT->redraw_label();
progdefaults.changed = true;} open
tooltip {Serial device} xywh {341 107 144 22}
code0 {o->value(progdefaults.XmlRigDevice.c_str());}
} {}
Fl_Choice mnuXmlRigBaudrate {
label {Baud rate:}
callback {progdefaults.XmlRigBaudrate = o->value();
btnInitRIGCAT->labelcolor(FL_RED);
btnInitRIGCAT->redraw_label();
progdefaults.changed = true;} open
tooltip {Pick baud rate from list} xywh {386 147 99 22} down_box BORDER_BOX
code0 {o->add(szBaudRates);}
code1 {o->value(progdefaults.XmlRigBaudrate);}
} {}
Fl_Counter cntRigCatRetries {
label Retries
callback {progdefaults.RigCatRetries = (int)o->value();
btnInitRIGCAT->labelcolor(FL_RED);
btnInitRIGCAT->redraw_label();
progdefaults.changed = true;}
tooltip {Number of times to resend
command before giving up} xywh {15 148 75 20} type Simple align 1 minimum 1 maximum 10 step 1 value 5
code0 {o->value(progdefaults.RigCatRetries);}
}
Fl_Counter cntRigCatTimeout {
label {Retry interval (ms)}
callback {progdefaults.RigCatTimeout = (int)o->value();
btnInitRIGCAT->labelcolor(FL_RED);
btnInitRIGCAT->redraw_label();
progdefaults.changed = true;}
tooltip {Time between retires is msec} xywh {153 148 75 20} type Simple align 1 minimum 2 maximum 200 step 1 value 10
code0 {o->value(progdefaults.RigCatTimeout);}
}
Fl_Counter cntRigCatWait {
label {Command interval (ms)}
callback {progdefaults.RigCatWait = (int)o->value();
btnInitRIGCAT->labelcolor(FL_RED);
btnInitRIGCAT->redraw_label();
progdefaults.changed = true;}
tooltip {Millseconds between sequential commands} xywh {15 175 75 20} type Simple align 8 minimum 0 maximum 100 step 1 value 5
code0 {o->value(progdefaults.RigCatWait);}
}
Fl_Button btnInitRIGCAT {
label Initialize
callback {progdefaults.initInterface();
o->labelcolor(FL_FOREGROUND_COLOR);
progdefaults.changed = true;}
tooltip {Initialize RigCAT interface} xywh {372 193 113 24}
}
Fl_Check_Button btnRigCatEcho {
label {Commands are echoed}
callback {progdefaults.RigCatECHO=o->value();
btnInitRIGCAT->labelcolor(FL_RED);
btnInitRIGCAT->redraw_label();
progdefaults.changed = true;}
tooltip {Rig or interface echos serial data} xywh {74 201 192 22} down_box DOWN_BOX
code0 {o->value(progdefaults.RigCatECHO);}
}
}
Fl_Round_Button {btnPTT[3]} {
label {PTT via CAT command}
callback {if (o->value()== 1) {
btnPTT[0]->value(0);
btnPTT[1]->value(0);
btnPTT[2]->value(0);
btnPTT[4]->value(0);
btnPTT[5]->value(0);
btnRigCatRTSptt->value(0);
btnRigCatDTRptt->value(0);
}
btnInitRIGCAT->labelcolor(FL_RED);
btnInitRIGCAT->redraw();
progdefaults.changed = true;}
tooltip {PTT is a CAT command (not hardware)} xywh {20 232 180 20} down_box DIAMOND_DOWN_BOX selection_color 15 deactivate
}
Fl_Group grpRigCATPTT {open
xywh {5 256 490 100} box ENGRAVED_FRAME
} {
Fl_Round_Button btnRigCatRTSptt {
label {Toggle RTS for PTT}
callback {if (o->value() == 1) {
btnRigCatDTRptt->value(0);
btnPTT[0]->value(0);
btnPTT[1]->value(0);
btnPTT[2]->value(0);
btnPTT[3]->value(0);
btnPTT[4]->value(0);
progdefaults.RigCatRTSptt = true;
progdefaults.RigCatDTRptt = false;
} else
progdefaults.RigCatRTSptt = false;
btnInitRIGCAT->labelcolor(FL_RED);
btnInitRIGCAT->redraw_label();
progdefaults.changed = true;}
tooltip {RTS is ptt line} xywh {74 268 160 20} down_box ROUND_DOWN_BOX
code0 {o->value(progdefaults.RigCatRTSptt);}
}
Fl_Round_Button btnRigCatDTRptt {
label {Toggle DTR for PTT}
callback {if (o->value() == 1) {
btnRigCatRTSptt->value(0);
btnPTT[0]->value(0);
btnPTT[1]->value(0);
btnPTT[2]->value(0);
btnPTT[3]->value(0);
btnPTT[4]->value(0);
progdefaults.RigCatDTRptt = true;
progdefaults.RigCatRTSptt = false;
} else
progdefaults.RigCatDTRptt = false;
btnInitRIGCAT->labelcolor(FL_RED);
btnInitRIGCAT->redraw_label();
progdefaults.changed = true;}
tooltip {DTR is ptt line} xywh {249 268 160 20} down_box ROUND_DOWN_BOX
code0 {o->value(progdefaults.RigCatDTRptt);}
}
Fl_Check_Button btnRigCatRTSplus {
label {RTS +12 v}
callback {progdefaults.RigCatRTSplus = o->value();
btnInitRIGCAT->labelcolor(FL_RED);
btnInitRIGCAT->redraw_label();
progdefaults.changed = true;}
tooltip {Initial state of RTS} xywh {74 298 100 20} down_box DOWN_BOX
code0 {o->value(progdefaults.RigCatRTSplus);}
}
Fl_Check_Button btnRigCatDTRplus {
label {DTR +12 v}
callback {progdefaults.RigCatDTRplus = o->value();
btnInitRIGCAT->labelcolor(FL_RED);
btnInitRIGCAT->redraw_label();
progdefaults.changed = true;}
tooltip {Initial state of DTR} xywh {250 298 100 20} down_box DOWN_BOX
code0 {o->value(progdefaults.RigCatDTRplus);}
}
Fl_Check_Button chkRigCatRTSCTSflow {
label {RTS/CTS flow control}
callback {progdefaults.RigCatRTSCTSflow = o->value();
btnInitRIGCAT->labelcolor(FL_RED);
btnInitRIGCAT->redraw_label();
progdefaults.changed = true;}
tooltip {Rig uses RTS/CTS handshake} xywh {74 328 170 20} down_box DOWN_BOX
code0 {o->value(progdefaults.RigCatRTSCTSflow);}
}
}
Fl_Round_Button {btnPTT[5]} {
label {PTT via serial port}
callback {if (o->value()== 1) {
btnPTT[0]->value(0);
btnPTT[1]->value(0);
btnPTT[2]->value(0);
btnPTT[3]->value(0);
btnPTT[4]->value(0);
}
btnInitRIGCAT->labelcolor(FL_RED);
btnInitRIGCAT->redraw();
progdefaults.changed = true;}
tooltip {PTT uses serial port RTS or DTR} xywh {275 232 180 20} down_box DIAMOND_DOWN_BOX selection_color 15 deactivate
}
}
Fl_Group {} {
label Hamlib open
xywh {0 50 500 320} hide
} {
Fl_Check_Button chkUSEHAMLIB {
label {Use Hamlib}
callback {if (o->value() == 1) {
chkUSEMEMMAP->value(0);
chkUSERIGCAT->value(0);
chkUSEXMLRPC->value(0);
btnPTT[3]->value(0);
btnPTT[3]->deactivate();
btnPTT[5]->value(0);
btnPTT[5]->deactivate();
btnPTT[2]->value(0);
btnPTT[2]->deactivate();
btnPTT[1]->activate();
progdefaults.chkUSEMEMMAPis = false;
progdefaults.chkUSEHAMLIBis = true;
progdefaults.chkUSERIGCATis = false;
progdefaults.chkUSEXMLRPCis = false;
} else {
btnPTT[0]->value(1);
btnPTT[1]->value(0);
btnPTT[1]->deactivate();
progdefaults.chkUSEHAMLIBis = false;
}
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw();
progdefaults.changed = true;}
tooltip {Hamlib used for rig control} xywh {195 60 100 20} down_box DOWN_BOX
}
Fl_Group grpHamlib {open
xywh {5 85 490 166} box ENGRAVED_FRAME
} {
Fl_Box cboHamlibRig {
label {Rig:}
callback {btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
progdefaults.changed = true;}
tooltip {Select the rig by name} xywh {46 95 160 22} box DOWN_BOX color 7 align 4
code0 {o->readonly();}
class Fl_ComboBox
}
Fl_Input_Choice inpRIGdev {
label {Device:}
callback {progdefaults.HamRigDevice = o->value();
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
progdefaults.changed = true;} open
tooltip {Serial port} xywh {341 95 144 22}
code0 {o->value(progdefaults.HamRigDevice.c_str());}
} {}
Fl_Choice mnuBaudRate {
label {Baud rate:}
callback {progdefaults.HamRigBaudrate = o->value();
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
progdefaults.changed = true;} open
tooltip {Serial port baud rate} xywh {386 127 99 22} down_box BORDER_BOX
code0 {o->add(szBaudRates);}
code1 {o->value(progdefaults.HamRigBaudrate);}
} {}
Fl_Counter cntHamlibtRetries {
label Retries
callback {progdefaults.HamlibRetries = (int)o->value();
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
progdefaults.changed = true;}
tooltip {Number of times to resend
command before giving up} xywh {15 146 75 20} type Simple align 1 minimum 1 maximum 10 step 1 value 5
code0 {o->value(progdefaults.HamlibRetries);}
}
Fl_Counter cntHamlibTimeout {
label {Retry interval (ms)}
callback {progdefaults.HamlibTimeout = (int)o->value();
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
progdefaults.changed = true;}
tooltip {Msec's between retries} xywh {131 146 75 20} type Simple align 1 minimum 2 maximum 200 step 1 value 10
code0 {o->value(progdefaults.HamlibTimeout);}
}
Fl_Counter cntHamlibWait {
label {Command interval (ms)}
callback {progdefaults.HamlibWait = (int)o->value();
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
progdefaults.changed = true;}
tooltip {Msec's between sequential commands} xywh {15 177 75 20} type Simple align 8 minimum 0 maximum 100 step 1 value 5
code0 {o->value(progdefaults.HamlibWait);}
}
Fl_Input inpHamlibConfig {
label {Advanced configuration:}
callback {progdefaults.HamConfig = o->value();
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
progdefaults.changed = true;}
tooltip {Optional configuration
in format: param=val ...} xywh {15 224 320 22} align 1
code0 {inpHamlibConfig->value(progdefaults.HamConfig.c_str());}
class Fl_Input2
}
Fl_Button btnInitHAMLIB {
label Initialize
callback {progdefaults.initInterface();
o->labelcolor(FL_FOREGROUND_COLOR);
progdefaults.changed = true;}
tooltip {Initialize the serial port} xywh {372 222 113 24}
}
}
Fl_Round_Button {btnPTT[1]} {
label {PTT via Hamlib command}
callback {if (o->value() == 1) {
btnPTT[0]->value(0);
btnPTT[2]->value(0);
btnPTT[3]->value(0);
btnPTT[4]->value(0);
btnPTT[5]->value(0);
btnRigCatRTSptt->value(0);
btnRigCatDTRptt->value(0);
}
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
progdefaults.changed = true;}
tooltip {PTT is a hamlib command} xywh {163 258 200 20} down_box DIAMOND_DOWN_BOX selection_color 15 deactivate
}
Fl_Group grpHamlibPTT {open
xywh {5 285 490 80} box ENGRAVED_FRAME
} {
Fl_Check_Button btnHamlibDTRplus {
label {DTR +12}
callback {progdefaults.HamlibDTRplus = o->value();
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
progdefaults.changed = true;}
tooltip {Initial state of DTR} xywh {54 298 90 20} down_box DOWN_BOX
code0 {o->value(progdefaults.HamlibDTRplus);}
}
Fl_Check_Button chkHamlibRTSplus {
label {RTS +12}
callback {progdefaults.HamlibRTSplus = o->value();
if (o->value() == 1) {
chkHamlibRTSCTSflow->value(0);
progdefaults.HamlibRTSCTSflow = false;
}
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
progdefaults.changed = true;}
tooltip {Initial state of RTS} xywh {273 298 85 20} down_box DOWN_BOX
code0 {o->value(progdefaults.HamlibRTSplus);}
}
Fl_Check_Button chkHamlibRTSCTSflow {
label {RTS/CTS flow control}
callback {progdefaults.HamlibRTSCTSflow = o->value();
if (o->value() == 1) {
chkHamlibRTSplus->value(0);
chkHamlibXONXOFFflow->value(0);
progdefaults.HamlibXONXOFFflow = false;
}
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
progdefaults.changed = true;}
tooltip {Rig requires RTS/CTS flow control} xywh {54 332 170 20} down_box DOWN_BOX
code0 {o->value(progdefaults.HamlibRTSCTSflow);}
}
Fl_Check_Button chkHamlibXONXOFFflow {
label {XON/XOFF flow control}
callback {progdefaults.HamlibXONXOFFflow = o->value();
if (o->value() == 1) {
chkHamlibRTSCTSflow->value(0);
progdefaults.HamlibRTSCTSflow = false;
}
btnInitHAMLIB->labelcolor(FL_RED);
btnInitHAMLIB->redraw_label();
progdefaults.changed = true;}
tooltip {Rig requires Xon/Xoff flow control} xywh {273 332 185 20} down_box DOWN_BOX
code0 {o->value(progdefaults.HamlibXONXOFFflow);}
}
}
}
Fl_Group {} {
label MemMap open
xywh {0 50 500 320} hide
} {
Fl_Group grpMemmap {open
xywh {5 60 490 185} box ENGRAVED_FRAME
} {
Fl_Output {} {
xywh {160 79 190 58} type Multiline box BORDER_BOX color 50
code0 {o->value("Control via Memory Mapped\\nshared variables\\ni.e.: Kachina program");}
}
Fl_Check_Button chkUSEMEMMAP {
label {Use Memmap}
callback {if(o->value() == 1){
chkUSEHAMLIB->value(0);
chkUSERIGCAT->value(0);
chkUSEXMLRPC->value(0);
btnPTT[3]->value(0);
btnPTT[3]->deactivate();
btnPTT[1]->value(0);
btnPTT[1]->deactivate();
btnPTT[2]->activate();
progdefaults.chkUSEMEMMAPis = true;
progdefaults.chkUSEHAMLIBis = false;
progdefaults.chkUSERIGCATis = false;
progdefaults.chkUSEXMLRPCis = false;
} else {
if (btnPTT[2]->value()==1)
btnPTT[0]->value(1);
btnPTT[2]->value(0);
btnPTT[2]->deactivate();
progdefaults.chkUSEMEMMAPis = false;
}
btnInitMEMMAP->labelcolor(FL_RED);
btnInitMEMMAP->redraw_label();
progdefaults.changed = true;}
tooltip {Rig control via memory mapped Kachina} xywh {160 147 120 20} down_box DOWN_BOX
}
Fl_Round_Button {btnPTT[2]} {
label {Use Memmap PTT}
callback {if (o->value() == 1) {
btnPTT[0]->value(0);
btnPTT[1]->value(0);
btnPTT[3]->value(0);
btnPTT[4]->value(0);
btnPTT[5]->value(0);
btnRigCatRTSptt->value(0);
btnRigCatDTRptt->value(0);
}
btnInitMEMMAP->labelcolor(FL_RED);
btnInitMEMMAP->redraw_label();
progdefaults.changed = true;}
xywh {160 177 150 20} down_box DIAMOND_DOWN_BOX selection_color 15 deactivate
}
Fl_Button btnInitMEMMAP {
label Initialize
callback {progdefaults.initInterface();
o->labelcolor(FL_FOREGROUND_COLOR);
progdefaults.changed = true;}
tooltip {Initialize Memmap interface} xywh {197 207 113 24}
}
}
}
Fl_Group {} {
label {XML-RPC} open
xywh {0 50 500 320} hide
} {
Fl_Group grpXMLRPC {open
xywh {5 60 490 160} box ENGRAVED_FRAME
} {
Fl_Output {} {
xywh {160 79 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 {if(o->value() == 1){
chkUSEHAMLIB->value(0);
chkUSERIGCAT->value(0);
chkUSEMEMMAP->value(0);
btnPTT[0]->value(1);
btnPTT[1]->value(0);
btnPTT[2]->value(0);
btnPTT[3]->value(0);
btnPTT[4]->value(0);
btnPTT[5]->value(0);
progdefaults.chkUSEMEMMAPis = false;
progdefaults.chkUSEHAMLIBis = false;
progdefaults.chkUSERIGCATis = false;
progdefaults.chkUSEXMLRPCis = true;
} else {
progdefaults.chkUSEXMLRPCis = false;
}
btnInitXMLRPC->labelcolor(FL_RED);
btnInitXMLRPC->redraw_label();
progdefaults.changed = true;}
tooltip Experimental xywh {160 147 183 20} down_box DOWN_BOX
}
Fl_Button btnInitXMLRPC {
label Initialize
callback {progdefaults.initInterface();
o->labelcolor(FL_FOREGROUND_COLOR);
progdefaults.changed = true;}
tooltip {Initialize xmlrpm rig control} xywh {201 183 113 24}
}
}
}
}
}
Fl_Group tabSoundCard {
label Audio open
xywh {0 25 500 345} hide
} {
Fl_Tabs tabsSoundCard {open
xywh {0 25 500 345} selection_color 50
} {
Fl_Group tabAudio {
label Devices open
xywh {0 50 500 320} hide
} {
Fl_Group AudioOSS {open
xywh {5 60 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 {15 70 53 25} down_box DIAMOND_DOWN_BOX selection_color 15
}
Fl_Input_Choice menuOSSDev {
label {Device:}
callback {scDevice[0] = scDevice[1] = progdefaults.OSSdevice = o->value();
resetSoundCard();
progdefaults.changed = true;} open
tooltip {Select device} xywh {375 70 110 25}
code0 {o->value(progdefaults.OSSdevice.c_str());}
} {}
}
Fl_Group AudioPort {open
xywh {5 105 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 {15 133 95 25} down_box DIAMOND_DOWN_BOX selection_color 15
}
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 {215 115 270 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 {215 150 270 25} down_box BORDER_BOX
} {}
}
Fl_Group AudioPulse {open
xywh {5 185 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 {15 196 100 25} down_box DIAMOND_DOWN_BOX selection_color 15
}
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 {260 196 225 25}
code0 {o->value(progdefaults.PulseServer.c_str());}
class Fl_Input2
}
}
Fl_Group AudioNull {open
xywh {5 230 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 {16 240 100 25} down_box DIAMOND_DOWN_BOX selection_color 15
}
}
}
Fl_Group tabAudioOpt {
label Settings open
xywh {0 50 500 320}
} {
Fl_Group AudioSampleRate {
label {Sample rate} open
xywh {5 60 490 100} box ENGRAVED_FRAME align 21
} {
Fl_Choice menuInSampleRate {
label Capture
callback {progdefaults.in_sample_rate = o->value() > 1 ? strtol(o->mvalue()->text, 0, 10) : o->value();
resetSoundCard();
progdefaults.changed = true;} open
tooltip {Force a specific sample rate. Select "Native" if "Auto" does not work well with your sound hardware.} xywh {15 89 99 25} down_box BORDER_BOX align 8
code0 {//extern Fl_Menu_Item sample_rate_menu[];}
code1 {//o->menu(sample_rate_menu);}
code2 {o->clear_changed();}
} {}
Fl_Choice menuSampleConverter {
label Converter
callback {if (o->value() == FLDIGI_SRC_BEST)
fl_alert("The best quality SINC interpolator has very high CPU overhead");
progdefaults.sample_converter = sample_rate_converters[o->value()];
resetSoundCard();
progdefaults.changed = true;
o->tooltip(src_get_description(sample_rate_converters[o->value()]));} open
tooltip {Set the type of resampler used of offset correction} xywh {269 89 216 25} down_box BORDER_BOX align 1
code0 {\#include <FL/fl_ask.H>}
} {}
Fl_Choice menuOutSampleRate {
label Playback
callback {progdefaults.out_sample_rate = o->value() > 1 ? strtol(o->mvalue()->text, 0, 10) : o->value();
resetSoundCard();
progdefaults.changed = true;} open
tooltip {Force a specific sample rate. Select "Native" if "Auto" does not work well with your sound hardware.} xywh {15 124 100 25} down_box BORDER_BOX align 8
code0 {//extern Fl_Menu_Item sample_rate_menu[];}
code1 {//o->menu(sample_rate_menu);}
code2 {o->clear_changed();}
} {}
}
Fl_Group {} {
label Corrections open
xywh {5 160 490 70} 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 {15 191 85 25} align 8 value 1
code0 {o->step(1);}
code1 {o->minimum(-50000);}
code2 {o->maximum(50000);}
}
Fl_Spinner cntTxRateCorr {
label {TX ppm}
callback {progdefaults.TX_corr = (int)o->value();
progdefaults.changed = true;}
tooltip {TX sound card correction} xywh {176 191 85 25} align 8 value 1
code0 {o->step(1);}
code1 {o->minimum(-50000);}
code2 {o->maximum(50000);}
}
Fl_Spinner cntTxOffset {
label {TX offset}
callback {progdefaults.TxOffset = (int)o->value();
progdefaults.changed = true;}
tooltip {Difference between Rx & Tx freq (rig offset)} xywh {338 191 85 25} align 8 value 1
code0 {o->value(progdefaults.TxOffset);}
code1 {o->step(1);}
code2 {o->minimum(-50);}
code3 {o->maximum(50);}
}
}
}
Fl_Group tabMixer {
label Mixer open
xywh {0 50 500 320} hide
} {
Fl_Group {} {
label {OSS mixer} open
xywh {5 60 490 145} box ENGRAVED_FRAME align 21
} {
Fl_Check_Button btnMixer {
label {Manage mixer}
callback {enableMixer(o->value());
progdefaults.changed = true;}
tooltip {Add mixer controls to main dialog} xywh {15 89 125 25} down_box DOWN_BOX
code0 {extern void resetMixerControls();}
code1 {o->value(progdefaults.EnableMixer);}
}
Fl_Input_Choice menuMix {
label {Device:}
callback {progdefaults.MXdevice = o->value();
enableMixer(false);
enableMixer(true);
progdefaults.changed = true;} open
tooltip {Select Mixer device} xywh {161 132 110 25}
code0 {o->value(progdefaults.MXdevice.c_str());}
} {}
Fl_Light_Button btnMicIn {
label {Mic In}
callback {if (o->value() == 1) {
btnLineIn->value(0);
progdefaults.LineIn = false;
progdefaults.MicIn = true;
setMixerInput(2);
} else {
setMixerInput(0);
progdefaults.MicIn = false;
}
progdefaults.changed = true;}
tooltip {Use microphone input} xywh {281 93 74 25}
}
Fl_Light_Button btnLineIn {
label {Line In}
callback {if (o->value() == 1) {
btnMicIn->value(0);
progdefaults.LineIn = true;
progdefaults.MicIn = false;
setMixerInput(1);
} else {
setMixerInput(0);
progdefaults.LineIn = false;
}
progdefaults.changed = true;}
tooltip {Use Line-In device} xywh {281 132 74 25} selection_color 3
code0 {extern void setMixerInput(int);}
}
Fl_Value_Slider valPCMvolume {
label PCM
callback {setPCMvolume(o->value());
progdefaults.changed = true;}
tooltip {Set the sound card PCM level (not in Windows)} xywh {15 167 340 21} type Horizontal selection_color 15 align 8 step 0.01 value 0.8 textsize 14
code0 {extern void setPCMvolume(double);}
}
}
}
}
}
Fl_Group tabID {
label ID open
xywh {0 25 500 345} hide
} {
Fl_Group {} {
label {Video Preamble ID} open
xywh {5 35 490 123} 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 {15 67 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 {15 97 155 20} down_box DOWN_BOX
code0 {o->value(progdefaults.sendtextid);}
}
Fl_Input valVideotext {
label {Video text:}
callback {progdefaults.strTextid = o->value();
progdefaults.changed = true;}
tooltip {Limit to a few characters,
as in CQEM or IOTA etc.} xywh {365 96 120 20}
code0 {o->value(progdefaults.strTextid.c_str());}
class Fl_Input2
}
Fl_Check_Button chkID_SMALL {
label {Use small font}
callback {progdefaults.ID_SMALL=o->value();
if (o->value() == 1)
sldrVideowidth->deactivate();
else
sldrVideowidth->activate();
progdefaults.changed = true;}
tooltip {ON - small font
OFF - large font} xywh {15 127 120 20} down_box DOWN_BOX value 1
code0 {o->value(progdefaults.ID_SMALL);}
}
Fl_Value_Slider sldrVideowidth {
label {Video row width:}
callback {progdefaults.videowidth = (int)o->value();
progdefaults.changed = true;}
tooltip {Set the number of characters per row} xywh {365 127 120 20} type Horizontal align 4 minimum 1 maximum 4 step 1 value 1 textsize 14
code0 {o->value(progdefaults.videowidth);}
code1 {if (progdefaults.ID_SMALL) o->deactivate();}
}
}
Fl_Group sld {
label {CW Postamble ID} open
xywh {5 158 490 60} 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 {15 185 140 20} 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 {285 185 200 20} type Horizontal align 1 minimum 15 maximum 40 step 1 value 18 textsize 14
code0 {o->value(progdefaults.CWIDwpm);}
}
}
Fl_Group {} {
label {Reed-Solomon ID} open
xywh {5 218 490 60} box ENGRAVED_FRAME align 21
} {
Fl_Check_Button chkTransmitRSid {
label {Transmit mode RSID}
callback {progdefaults.TransmitRSid = o->value();
progdefaults.changed = true;}
tooltip {Transmit RSID at beginning & end of transmission} xywh {15 246 165 20} down_box DOWN_BOX
code0 {o->value(progdefaults.TransmitRSid);}
}
Fl_Check_Button chkRSidWideSearch {
label {Detector searches entire passband}
callback {progdefaults.rsidWideSearch=o->value();
progdefaults.changed = true;}
tooltip {ON - search over entire waterfall
OFF - limit search to +/- 200 Hz} xywh {215 246 270 20} down_box DOWN_BOX
code0 {o->value(progdefaults.rsidWideSearch);}
}
}
}
Fl_Group tabMisc {
label Misc open
xywh {0 25 500 345} hide
} {
Fl_Tabs tabsMisc {open
xywh {0 25 500 345} selection_color 50
} {
Fl_Group tabSweetSpot {
label {Sweet Spot} open
xywh {0 50 500 320} hide
} {
Fl_Group {} {open
xywh {5 60 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 {42 71 65 20} minimum 200 maximum 4000 step 1 value 1000
code0 {o->value(progdefaults.CWsweetspot);}
}
Fl_Value_Input valRTTYsweetspot {
label RTTY
callback {progdefaults.RTTYsweetspot=o->value();
progdefaults.changed = true;}
tooltip {Default RTTY tracking point} xywh {220 71 65 20} minimum 200 maximum 4000 step 1 value 1000
code0 {o->value(progdefaults.RTTYsweetspot);}
}
Fl_Value_Input valPSKsweetspot {
label {PSK et al.}
callback {progdefaults.PSKsweetspot=o->value();
progdefaults.changed = true;}
tooltip {Default for all other modems} xywh {420 71 65 20} minimum 200 maximum 4000 step 1 value 1000
code0 {o->value(progdefaults.PSKsweetspot);}
}
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 {15 101 348 20} down_box DOWN_BOX value 1
code0 {o->value(progdefaults.StartAtSweetSpot);}
}
}
}
Fl_Group tabSpot {
label Spotting open
xywh {0 50 500 320} hide
} {
Fl_Group {} {
label {PSK Reporter} open
xywh {5 60 490 215} box ENGRAVED_FRAME align 21
} {
Fl_Check_Button btnPSKRepAuto {
label {Automatically spot callsigns in decoded text}
callback {progdefaults.pskrep_auto = o->value();
btnPSKRepInit->labelcolor(FL_RED);
btnPSKRepInit->redraw_label();
progdefaults.changed = true;}
tooltip {Parse all incoming text} xywh {15 91 324 20} down_box DOWN_BOX
code0 {btnPSKRepAuto->value(progdefaults.pskrep_auto);}
}
Fl_Check_Button btnPSKRepLog {
label {Send reception report when logging a QSO}
callback {progdefaults.pskrep_log = o->value();
btnPSKRepInit->labelcolor(FL_RED);
btnPSKRepInit->redraw_label();
progdefaults.changed = true;}
tooltip {Send report only when QSO is logged} xywh {15 121 327 20} down_box DOWN_BOX
code0 {btnPSKRepLog->value(progdefaults.pskrep_log);}
}
Fl_Check_Button btnPSKRepQRG {
label {Report rig frequency (enable only if you have rig control!)}
callback {progdefaults.pskrep_qrg = o->value();
progdefaults.changed = true;}
tooltip {Include the transmit frequency} xywh {15 151 416 20} down_box DOWN_BOX
code0 {btnPSKRepQRG->value(progdefaults.pskrep_qrg);}
}
Fl_Input inpPSKRepHost {
label {Host:}
callback {progdefaults.pskrep_host = o->value();
btnPSKRepInit->labelcolor(FL_RED);
btnPSKRepInit->redraw_label();
progdefaults.changed = true;}
tooltip {To whom the connection is made} xywh {56 191 220 24} when 1
code0 {inpPSKRepHost->value(progdefaults.pskrep_host.c_str());}
class Fl_Input2
}
Fl_Input inpPSKRepPort {
label {Port:}
callback {progdefaults.pskrep_port = o->value();
btnPSKRepInit->labelcolor(FL_RED);
btnPSKRepInit->redraw_label();
progdefaults.changed = true;}
tooltip {Using UDP port \#} xywh {425 191 60 24} when 1
code0 {inpPSKRepPort->value(progdefaults.pskrep_port.c_str());}
class Fl_Input2
}
Fl_Button btnPSKRepInit {
label Initialize
callback {pskrep_stop();
if (!pskrep_start()) {
boxPSKRepMsg->copy_label(pskrep_error());
progdefaults.usepskrep = false;
} else {
boxPSKRepMsg->label(0);
o->labelcolor(FL_FOREGROUND_COLOR);
progdefaults.usepskrep = true;
}
progdefaults.changed = true;}
tooltip {Initialize the socket client} xywh {405 236 80 24}
}
Fl_Box boxPSKRepMsg {
label {<PSK Reporter error message>}
xywh {30 236 300 24} labelfont 2
code0 {boxPSKRepMsg->label(0);}
}
}
}
Fl_Group tabMacros {
label Macros open
xywh {0 50 500 320} hide
} {
Fl_Group {} {open
xywh {5 60 490 75} 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 {15 70 274 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 {15 100 274 20} down_box DOWN_BOX
code0 {o->value(progdefaults.DisplayMacroFilename);}
}
}
}
Fl_Group tabCPUspeed {
label CPU open
xywh {0 50 500 320} hide
} {
Fl_Group {} {open
xywh {5 60 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 {151 75 225 20} down_box DOWN_BOX
code0 {o->value(progdefaults.slowcpu);}
}
}
}
Fl_Group tabFileExtraction {
label {Text Capture} open
xywh {0 50 500 320}
} {
Fl_Group {} {
label {Auto Extract files from rx stream} open
xywh {5 60 490 155} box ENGRAVED_FRAME align 21
} {
Fl_Check_Button chkAutoExtract {
label {Enable detection && extraction}
callback {progdefaults.autoextract = o->value();
progdefaults.changed = true;}
tooltip {Extract files for use with external "wrap" program} xywh {136 184 227 20} down_box DOWN_BOX
code0 {o->value(progdefaults.autoextract);}
}
Fl_Box {} {
label {0
1
2
3
4}
xywh {15 85 465 92} align 21
code0 {o->label(txtWrapInfo);}
code1 {\#include "rx_extract.h"}
}
}
Fl_Group {} {
label {Capture rx text to external file} open
xywh {5 218 490 144} 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 {136 330 175 20} down_box DOWN_BOX
code0 {o->value(progdefaults.speak);}
}
Fl_Box {} {
label {0
1
2
3}
xywh {20 241 465 69} align 21
code0 {o->label(txtTalkInfo);}
code1 {\#include "speak.h"}
}
}
}
}
}
Fl_Group tabQRZ {
label {Callsign DB} open
xywh {0 25 500 345} hide
} {
Fl_Group {} {
label CDROM open
xywh {5 180 490 75} box ENGRAVED_FRAME align 21
} {
Fl_Round_Button btnQRZcdrom {
label QRZ
callback {set_qrz_buttons(o);
progdefaults.QRZ = QRZCD;
progdefaults.changed = true;}
tooltip {Use CD or hard drive CD image} xywh {25 215 70 20} down_box ROUND_DOWN_BOX
code0 {o->value(progdefaults.QRZ == QRZCD);}
}
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 {104 215 300 20}
code0 {o->value(progdefaults.QRZpathname.c_str());}
class Fl_Input2
}
}
Fl_Group {} {
label {Paid online subscription} open
xywh {5 260 490 95} box ENGRAVED_FRAME align 21
} {
Fl_Round_Button btnQRZsub {
label {QRZ.com}
callback {set_qrz_buttons(o);
progdefaults.QRZ = QRZNET;
progdefaults.changed = true;}
tooltip {You need a paid QRZ online
subscription to access} xywh {25 291 90 20} down_box ROUND_DOWN_BOX
code0 {o->value(progdefaults.QRZ == QRZNET);}
}
Fl_Round_Button btnHamcall {
label {Hamcall.net}
callback {set_qrz_buttons(o);
progdefaults.QRZ = HAMCALLNET;
progdefaults.changed = true;}
tooltip {You need a paid Hamcall online
subscription to access} xywh {25 321 105 20} down_box ROUND_DOWN_BOX
code0 {o->value(progdefaults.QRZ == HAMCALLNET);}
}
Fl_Input inpQRZusername {
label {User name}
callback {progdefaults.QRZusername = o->value();
progdefaults.changed = true;}
tooltip {Your login name} xywh {235 291 90 20}
code0 {o->value(progdefaults.QRZusername.c_str());}
class Fl_Input2
}
Fl_Input inpQRZuserpassword {
label Password
callback {progdefaults.QRZuserpassword = o->value();
progdefaults.changed = true;}
tooltip {Your login password} xywh {236 321 90 20}
code0 {o->value(progdefaults.QRZuserpassword.c_str());}
code1 {o->type(FL_SECRET_INPUT);}
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 {336 321 70 20}
}
}
Fl_Group {} {open
xywh {5 35 490 140} box ENGRAVED_FRAME align 21
} {
Fl_Round_Button btnQRZonline {
label {QRZ online via default Internet Browser}
callback {set_qrz_buttons(o);
progdefaults.QRZ = QRZHTML;
progdefaults.changed = true;}
tooltip {Visit QRZ web site} xywh {25 75 300 20} down_box ROUND_DOWN_BOX
code0 {o->value(progdefaults.QRZ == QRZHTML);}
}
Fl_Round_Button btnQRZnotavailable {
label {Not available}
callback {set_qrz_buttons(o);
progdefaults.QRZ = QRZNONE;
progdefaults.changed = true;}
tooltip {Do not use callsign database} xywh {25 45 110 20} down_box ROUND_DOWN_BOX value 1
code0 {o->value(progdefaults.QRZ == QRZNONE);}
}
Fl_Round_Button btnHAMCALLonline {
label {HamCall online via default Internet Browser}
callback {set_qrz_buttons(o);
progdefaults.QRZ = HAMCALLHTML;
progdefaults.changed = true;}
tooltip {Vist Hamcall web site} xywh {25 105 300 20} down_box ROUND_DOWN_BOX
code0 {o->value(progdefaults.QRZ == HAMCALLHTML);}
}
}
}
}
Fl_Button btnSaveConfig {
label Save
callback {progdefaults.saveDefaults();}
xywh {235 375 130 22}
}
Fl_Return_Button btnCloseConfig {
label Close
callback {closeDialog();}
xywh {367 375 130 22}
}
}
}
Function {openConfig()} {open return_type void
} {
code {if (!dlgConfig) createConfig();
progdefaults.loadDefaults();} {}
}
Function {closeDialog()} {open return_type void
} {
code {if (dlgConfig) dlgConfig->hide();} {}
}
Function {createConfig()} {open return_type void
} {
code {if (!dlgConfig) {
dlgConfig = ConfigureDialog();
dlgConfig->xclass(PACKAGE_NAME);
}} {}
}