* Deprecated single macro bar with rotate.
  * Changed to 2 rows of macro buttons
    - sets alternated by alt-1 / alt-2 key combination.
    - Lower row executable with Function-Key
    - Upper row executable with Shift-Function-Key
pull/2/head
David Freese 2010-12-23 21:44:57 -06:00
rodzic 685ffc38c4
commit 99f977cd28
11 zmienionych plików z 379 dodań i 263 usunięć

Wyświetl plik

@ -3112,82 +3112,86 @@ ab and newline are automatically included."));
} // Fl_Group* tabContest
{ tabWF_UI = new Fl_Group(0, 50, 500, 320, _("Operator Controls"));
tabWF_UI->hide();
{ Fl_Box* o = new Fl_Box(31, 65, 446, 25, _("Enable check box to show each respective operator control"));
o->box(FL_FLAT_BOX);
o->align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
} // Fl_Box* o
{ Fl_Check_Button* o = btnWF_UIrev = new Fl_Check_Button(58, 98, 150, 20, _("Reverse"));
btnWF_UIrev->down_box(FL_DOWN_BOX);
btnWF_UIrev->value(1);
btnWF_UIrev->callback((Fl_Callback*)cb_btnWF_UIrev);
o->value(progdefaults.WF_UIrev);
} // Fl_Check_Button* btnWF_UIrev
{ Fl_Check_Button* o = btnWF_UIx1 = new Fl_Check_Button(277, 98, 162, 20, _("WF Magnification"));
btnWF_UIx1->down_box(FL_DOWN_BOX);
btnWF_UIx1->value(1);
btnWF_UIx1->callback((Fl_Callback*)cb_btnWF_UIx1);
o->value(progdefaults.WF_UIx1);
} // Fl_Check_Button* btnWF_UIx1
{ Fl_Check_Button* o = btnWF_UIwfcarrier = new Fl_Check_Button(58, 136, 150, 20, _("WF carrier"));
btnWF_UIwfcarrier->down_box(FL_DOWN_BOX);
btnWF_UIwfcarrier->value(1);
btnWF_UIwfcarrier->callback((Fl_Callback*)cb_btnWF_UIwfcarrier);
o->value(progdefaults.WF_UIwfcarrier);
} // Fl_Check_Button* btnWF_UIwfcarrier
{ Fl_Check_Button* o = btnWF_UIwfshift = new Fl_Check_Button(277, 136, 150, 20, _("WF Shift Controls"));
btnWF_UIwfshift->down_box(FL_DOWN_BOX);
btnWF_UIwfshift->value(1);
btnWF_UIwfshift->callback((Fl_Callback*)cb_btnWF_UIwfshift);
o->value(progdefaults.WF_UIwfshift);
} // Fl_Check_Button* btnWF_UIwfshift
{ Fl_Check_Button* o = btnWF_UIwfreflevel = new Fl_Check_Button(58, 175, 150, 20, _("WF ref level"));
btnWF_UIwfreflevel->down_box(FL_DOWN_BOX);
btnWF_UIwfreflevel->value(1);
btnWF_UIwfreflevel->callback((Fl_Callback*)cb_btnWF_UIwfreflevel);
o->value(progdefaults.WF_UIwfreflevel);
} // Fl_Check_Button* btnWF_UIwfreflevel
{ Fl_Check_Button* o = btnWF_UIwfdrop = new Fl_Check_Button(277, 175, 150, 20, _("WF drop rate"));
btnWF_UIwfdrop->down_box(FL_DOWN_BOX);
btnWF_UIwfdrop->value(1);
btnWF_UIwfdrop->callback((Fl_Callback*)cb_btnWF_UIwfdrop);
o->value(progdefaults.WF_UIwfdrop);
} // Fl_Check_Button* btnWF_UIwfdrop
{ Fl_Check_Button* o = btnWF_UIwfampspan = new Fl_Check_Button(58, 213, 150, 20, _("WF amp span"));
btnWF_UIwfampspan->down_box(FL_DOWN_BOX);
btnWF_UIwfampspan->value(1);
btnWF_UIwfampspan->callback((Fl_Callback*)cb_btnWF_UIwfampspan);
o->value(progdefaults.WF_UIwfampspan);
} // Fl_Check_Button* btnWF_UIwfampspan
{ Fl_Check_Button* o = btnWF_UIwfstore = new Fl_Check_Button(277, 213, 150, 20, _("WF Store"));
btnWF_UIwfstore->down_box(FL_DOWN_BOX);
btnWF_UIwfstore->value(1);
btnWF_UIwfstore->callback((Fl_Callback*)cb_btnWF_UIwfstore);
o->value(progdefaults.WF_UIwfstore);
} // Fl_Check_Button* btnWF_UIwfstore
{ Fl_Check_Button* o = btnWF_UIwfmode = new Fl_Check_Button(58, 249, 150, 20, _("WF mode"));
btnWF_UIwfmode->down_box(FL_DOWN_BOX);
btnWF_UIwfmode->value(1);
btnWF_UIwfmode->callback((Fl_Callback*)cb_btnWF_UIwfmode);
o->value(progdefaults.WF_UIwfmode);
} // Fl_Check_Button* btnWF_UIwfmode
{ Fl_Check_Button* o = btnWF_UIqsy = new Fl_Check_Button(277, 249, 150, 20, _("QSY"));
btnWF_UIqsy->down_box(FL_DOWN_BOX);
btnWF_UIqsy->value(1);
btnWF_UIqsy->callback((Fl_Callback*)cb_btnWF_UIqsy);
o->value(progdefaults.WF_UIqsy);
} // Fl_Check_Button* btnWF_UIqsy
{ Fl_Check_Button* o = btnWF_UIxmtlock = new Fl_Check_Button(277, 285, 150, 20, _("XMT lock"));
btnWF_UIxmtlock->down_box(FL_DOWN_BOX);
btnWF_UIxmtlock->value(1);
btnWF_UIxmtlock->callback((Fl_Callback*)cb_btnWF_UIxmtlock);
o->value(progdefaults.WF_UIxmtlock);
} // Fl_Check_Button* btnWF_UIxmtlock
{ btn_wf_enable_all = new Fl_Button(102, 321, 88, 20, _("Enable all"));
btn_wf_enable_all->callback((Fl_Callback*)cb_btn_wf_enable_all);
} // Fl_Button* btn_wf_enable_all
{ btn_wf_disable_all = new Fl_Button(301, 321, 88, 20, _("Disable all"));
btn_wf_disable_all->callback((Fl_Callback*)cb_btn_wf_disable_all);
} // Fl_Button* btn_wf_disable_all
{ Fl_Group* o = new Fl_Group(2, 58, 496, 253);
o->box(FL_ENGRAVED_BOX);
{ Fl_Box* o = new Fl_Box(31, 65, 446, 25, _("Enable check box to show each respective operator control"));
o->box(FL_FLAT_BOX);
o->align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
} // Fl_Box* o
{ Fl_Check_Button* o = btnWF_UIrev = new Fl_Check_Button(58, 98, 150, 20, _("Reverse"));
btnWF_UIrev->down_box(FL_DOWN_BOX);
btnWF_UIrev->value(1);
btnWF_UIrev->callback((Fl_Callback*)cb_btnWF_UIrev);
o->value(progdefaults.WF_UIrev);
} // Fl_Check_Button* btnWF_UIrev
{ Fl_Check_Button* o = btnWF_UIx1 = new Fl_Check_Button(277, 98, 162, 20, _("WF Magnification"));
btnWF_UIx1->down_box(FL_DOWN_BOX);
btnWF_UIx1->value(1);
btnWF_UIx1->callback((Fl_Callback*)cb_btnWF_UIx1);
o->value(progdefaults.WF_UIx1);
} // Fl_Check_Button* btnWF_UIx1
{ Fl_Check_Button* o = btnWF_UIwfcarrier = new Fl_Check_Button(58, 129, 150, 20, _("WF carrier"));
btnWF_UIwfcarrier->down_box(FL_DOWN_BOX);
btnWF_UIwfcarrier->value(1);
btnWF_UIwfcarrier->callback((Fl_Callback*)cb_btnWF_UIwfcarrier);
o->value(progdefaults.WF_UIwfcarrier);
} // Fl_Check_Button* btnWF_UIwfcarrier
{ Fl_Check_Button* o = btnWF_UIwfshift = new Fl_Check_Button(277, 129, 150, 20, _("WF Shift Controls"));
btnWF_UIwfshift->down_box(FL_DOWN_BOX);
btnWF_UIwfshift->value(1);
btnWF_UIwfshift->callback((Fl_Callback*)cb_btnWF_UIwfshift);
o->value(progdefaults.WF_UIwfshift);
} // Fl_Check_Button* btnWF_UIwfshift
{ Fl_Check_Button* o = btnWF_UIwfreflevel = new Fl_Check_Button(58, 161, 150, 20, _("WF ref level"));
btnWF_UIwfreflevel->down_box(FL_DOWN_BOX);
btnWF_UIwfreflevel->value(1);
btnWF_UIwfreflevel->callback((Fl_Callback*)cb_btnWF_UIwfreflevel);
o->value(progdefaults.WF_UIwfreflevel);
} // Fl_Check_Button* btnWF_UIwfreflevel
{ Fl_Check_Button* o = btnWF_UIwfdrop = new Fl_Check_Button(277, 161, 150, 20, _("WF drop rate"));
btnWF_UIwfdrop->down_box(FL_DOWN_BOX);
btnWF_UIwfdrop->value(1);
btnWF_UIwfdrop->callback((Fl_Callback*)cb_btnWF_UIwfdrop);
o->value(progdefaults.WF_UIwfdrop);
} // Fl_Check_Button* btnWF_UIwfdrop
{ Fl_Check_Button* o = btnWF_UIwfampspan = new Fl_Check_Button(58, 193, 150, 20, _("WF amp span"));
btnWF_UIwfampspan->down_box(FL_DOWN_BOX);
btnWF_UIwfampspan->value(1);
btnWF_UIwfampspan->callback((Fl_Callback*)cb_btnWF_UIwfampspan);
o->value(progdefaults.WF_UIwfampspan);
} // Fl_Check_Button* btnWF_UIwfampspan
{ Fl_Check_Button* o = btnWF_UIwfstore = new Fl_Check_Button(277, 193, 150, 20, _("WF Store"));
btnWF_UIwfstore->down_box(FL_DOWN_BOX);
btnWF_UIwfstore->value(1);
btnWF_UIwfstore->callback((Fl_Callback*)cb_btnWF_UIwfstore);
o->value(progdefaults.WF_UIwfstore);
} // Fl_Check_Button* btnWF_UIwfstore
{ Fl_Check_Button* o = btnWF_UIwfmode = new Fl_Check_Button(58, 225, 150, 20, _("WF mode"));
btnWF_UIwfmode->down_box(FL_DOWN_BOX);
btnWF_UIwfmode->value(1);
btnWF_UIwfmode->callback((Fl_Callback*)cb_btnWF_UIwfmode);
o->value(progdefaults.WF_UIwfmode);
} // Fl_Check_Button* btnWF_UIwfmode
{ Fl_Check_Button* o = btnWF_UIqsy = new Fl_Check_Button(277, 225, 150, 20, _("QSY"));
btnWF_UIqsy->down_box(FL_DOWN_BOX);
btnWF_UIqsy->value(1);
btnWF_UIqsy->callback((Fl_Callback*)cb_btnWF_UIqsy);
o->value(progdefaults.WF_UIqsy);
} // Fl_Check_Button* btnWF_UIqsy
{ Fl_Check_Button* o = btnWF_UIxmtlock = new Fl_Check_Button(277, 257, 150, 20, _("XMT lock"));
btnWF_UIxmtlock->down_box(FL_DOWN_BOX);
btnWF_UIxmtlock->value(1);
btnWF_UIxmtlock->callback((Fl_Callback*)cb_btnWF_UIxmtlock);
o->value(progdefaults.WF_UIxmtlock);
} // Fl_Check_Button* btnWF_UIxmtlock
{ btn_wf_enable_all = new Fl_Button(102, 280, 88, 20, _("Enable all"));
btn_wf_enable_all->callback((Fl_Callback*)cb_btn_wf_enable_all);
} // Fl_Button* btn_wf_enable_all
{ btn_wf_disable_all = new Fl_Button(301, 280, 88, 20, _("Disable all"));
btn_wf_disable_all->callback((Fl_Callback*)cb_btn_wf_disable_all);
} // Fl_Button* btn_wf_disable_all
o->end();
} // Fl_Group* o
tabWF_UI->end();
} // Fl_Group* tabWF_UI
{ Fl_Group* o = new Fl_Group(0, 50, 500, 320, _("Rx Text"));

Wyświetl plik

@ -183,17 +183,17 @@ progdefaults.changed = true;}
}
}
Fl_Group tabUI {
label UI
label UI open
xywh {-3 25 508 345} hide
} {
Fl_Tabs tabsUI {open
xywh {-3 25 508 345} selection_color 50
} {
Fl_Group tabUserInterface {
label General open
label General
xywh {0 50 500 320}
} {
Fl_Group {} {open
Fl_Group {} {
xywh {5 60 490 301} box ENGRAVED_FRAME
} {
Fl_Check_Button btnShowTooltips {
@ -263,7 +263,7 @@ defined here. Tab and newline are automatically included.} xywh {125 285 75 24}
}
}
Fl_Group {} {
label {QSO logging} open
label {QSO logging}
xywh {8 130 484 146} box ENGRAVED_FRAME align 21
} {
Fl_Check_Button btnNagMe {
@ -461,104 +461,107 @@ progdefaults.changed = true;}
}
}
Fl_Group tabWF_UI {
label {Operator Controls}
label {Operator Controls} open
xywh {0 50 500 320} hide
} {
Fl_Box {} {
label {Enable check box to show each respective operator control}
xywh {31 65 446 25} box FLAT_BOX align 16
}
Fl_Check_Button btnWF_UIrev {
label Reverse
callback {progdefaults.WF_UIrev = o->value();
Fl_Group {} {open
xywh {2 58 496 253} box ENGRAVED_BOX
} {
Fl_Box {} {
label {Enable check box to show each respective operator control}
xywh {31 65 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 {58 98 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();
xywh {58 98 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 {277 98 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();
xywh {277 98 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 {58 136 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();
xywh {58 129 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 {277 136 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();
xywh {277 129 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 {58 175 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();
xywh {58 161 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 {277 175 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();
xywh {277 161 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 {58 213 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();
xywh {58 193 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 {277 213 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();
xywh {277 193 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 {58 249 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();
xywh {58 225 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 {277 249 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();
xywh {277 225 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 {277 285 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);
xywh {277 257 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);
@ -573,11 +576,11 @@ btnWF_UIxmtlock->value(progdefaults.WF_UIxmtlock = 1);
progdefaults.changed = true;
WF_UI();}
xywh {102 321 88 20}
}
Fl_Button btn_wf_disable_all {
label {Disable all}
callback {btnWF_UIrev->value(progdefaults.WF_UIrev = 0);
xywh {102 280 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);
@ -592,11 +595,12 @@ btnWF_UIxmtlock->value(progdefaults.WF_UIxmtlock = 0);
progdefaults.changed = true;
WF_UI();}
xywh {301 321 88 20}
xywh {301 280 88 20}
}
}
}
Fl_Group {} {
label {Rx Text} open
label {Rx Text}
xywh {0 50 500 320} hide
} {
Fl_Check_Button btn_rx_lowercase {
@ -923,7 +927,7 @@ behaves inside the waterfall} xywh {15 196 150 22} down_box BORDER_BOX align 8
}
}
Fl_Group tabModems {
label Modems open
label Modems
xywh {-4 25 521 347} hide
} {
Fl_Tabs tabsModems {open
@ -3029,7 +3033,7 @@ progdefaults.changed = true;}
}
}
Fl_Group tabMisc {
label Misc open
label Misc
xywh {0 25 500 345} hide
} {
Fl_Tabs tabsMisc {open

Wyświetl plik

@ -190,10 +190,14 @@ Fl_Button *btnMacroTimer = (Fl_Button *)0;
Fl_Tile_Check *VTgroup = 0;
Fl_Tile_Check *HTgroup = 0;
Fl_Box *macroFrame = 0;
//Fl_Box *macroFrame = 0;
//Fl_Box *macroFrame2 = 0;
Fl_Group *macroFrame = 0;
Fl_Group *macroFrame2 = 0;
FTextRX *ReceiveText = 0;
FTextTX *TransmitText = 0;
Raster *FHdisp;
Fl_Box *minVTbox;
pskBrowser *mainViewer = (pskBrowser *)0;
@ -204,8 +208,7 @@ Fl_Counter2 *cntCW_WPM=(Fl_Counter2 *)0;
Fl_Button *btnCW_Default=(Fl_Button *)0;
Fl_Box *WARNstatus = (Fl_Box *)0;
Fl_Button *MODEstatus = (Fl_Button *)0;
Fl_Button *btnMacro[NUMMACKEYS];
Fl_Button *btnAltMacros;
Fl_Button *btnMacro[NUMMACKEYS * NUMKEYROWS];
Fl_Button *btnAFC;
Fl_Button *btnSQL;
Fl_Input2 *inpQth;
@ -305,6 +308,9 @@ Fl_Group *MixerFrame;
Fl_Value_Slider2 *valRcvMixer = (Fl_Value_Slider2 *)0;
Fl_Value_Slider2 *valXmtMixer = (Fl_Value_Slider2 *)0;
Fl_Pack *wfpack = (Fl_Pack *)0;
Fl_Pack *hpack = (Fl_Pack *)0;
Fl_Value_Slider2 *mvsquelch = (Fl_Value_Slider2 *)0;
Fl_Button *btnClearMViewer = 0;
@ -1107,7 +1113,12 @@ void restoreFocus(Fl_Widget* w)
void macro_cb(Fl_Widget *w, void *v)
{
int b = (int)(reinterpret_cast<long> (v));
b += altMacros * NUMMACKEYS;
if (progStatus.two_macro_rows && b >= NUMMACKEYS)
b += (altMacros - 1) * NUMMACKEYS;
if (!progStatus.two_macro_rows)
b += altMacros * NUMMACKEYS;
int mouse = Fl::event_button();
if (mouse == FL_LEFT_MOUSE && !macros.text[b].empty()) {
stopMacroTimer();
@ -1120,13 +1131,14 @@ void macro_cb(Fl_Widget *w, void *v)
void colorize_macro(int i)
{
int j = i % NUMMACKEYS;
if (progdefaults.useGroupColors == true) {
if (i < NUMKEYROWS){
if (j < 4) {
btnMacro[i]->color(fl_rgb_color(
progdefaults.btnGroup1.R,
progdefaults.btnGroup1.G,
progdefaults.btnGroup1.B));
} else if (i < 8) {
} else if (j < 8) {
btnMacro[i]->color(fl_rgb_color(
progdefaults.btnGroup2.R,
progdefaults.btnGroup2.G,
@ -1151,34 +1163,13 @@ void colorize_macro(int i)
void colorize_macros()
{
FL_LOCK_D();
for (int i = 0; i < NUMMACKEYS; i++) {
for (int i = 0; i < NUMMACKEYS * NUMKEYROWS; i++) {
colorize_macro(i);
btnMacro[i]->redraw_label();
}
FL_UNLOCK_D();
}
void altmacro_cb(Fl_Widget *w, void *v)
{
static char alt_text[NUMKEYROWS];
intptr_t arg = reinterpret_cast<intptr_t>(v);
if (arg)
altMacros += arg;
else
altMacros = altMacros + (Fl::event_button() == FL_RIGHT_MOUSE ? -1 : 1);
altMacros = WCLAMP(altMacros, 0, 3);
snprintf(alt_text, sizeof(alt_text), "%d", altMacros + 1);
FL_LOCK_D();
for (int i = 0; i < NUMMACKEYS; i++)
btnMacro[i]->label(macros.name[i + (altMacros * NUMMACKEYS)].c_str());
btnAltMacros->label(alt_text);
btnAltMacros->redraw_label();
FL_UNLOCK_D();
restoreFocus();
}
void cb_mnuConfigOperator(Fl_Menu_*, void*) {
progdefaults.loadDefaults();
tabsConfigure->value(tabOperator);
@ -1750,6 +1741,30 @@ void cb_mnuContest(Fl_Menu_ *m, void *) {
progStatus.contest = m->mvalue()->value();
}
void set_macroLabels()
{
if (progStatus.two_macro_rows) {
altMacros = 1;
for (int i = 0; i < NUMMACKEYS; i++) {
btnMacro[NUMMACKEYS + i]->label(
macros.name[(altMacros * NUMMACKEYS) + i].c_str());
btnMacro[NUMMACKEYS + i]->redraw_label();
}
} else
altMacros = 0;
for (int i = 0; i < NUMMACKEYS; i++) {
btnMacro[i]->label(macros.name[i].c_str());
btnMacro[i]->redraw_label();
}
}
void cb_mnuMacroRows(Fl_Menu_ *m, void*)
{
progStatus.two_macro_rows = m->mvalue()->value();
set_macroLabels();
UI_select();
}
void cb_mnuPicViewer(Fl_Menu_ *, void *) {
if (picRxWin) {
picRx->redraw();
@ -2202,7 +2217,8 @@ int default_handler(int event)
if (w == fl_digi_main || w->window() == fl_digi_main) {
int key = Fl::event_key();
if (key == FL_Escape || (key >= FL_F && key <= FL_F_Last)) {
if (key == FL_Escape || (key >= FL_F && key <= FL_F_Last) ||
((key == '1' || key == '2' || key == '3' || key == '4') && Fl::event_alt())) {
TransmitText->take_focus();
TransmitText->handle(FL_KEYBOARD);
w->take_focus(); // remove this to leave tx text focused
@ -2320,6 +2336,7 @@ bool clean_exit(void) {
#define RIGCONTEST_MLABEL _("Rig control and contest")
#define DOCKEDSCOPE_MLABEL _("Docked scope")
#define WF_MLABEL _("Minimal controls")
#define MACRO_ROWS_LABEL _("Two macro button bars")
bool restore_minimize = false;
@ -2329,6 +2346,13 @@ void UI_select()
return;
Fl_Menu_Item* cf = getMenuItem(CONTEST_FIELDS_MLABEL);
Fl_Menu_Item* mr = getMenuItem(MACRO_ROWS_LABEL);
if (!progStatus.two_macro_rows)
mr->clear();
else
mr->set();
if (progStatus.NO_RIGLOG || progStatus.Rig_Contest_UI || progStatus.Rig_Log_UI) {
cf->clear();
cf->deactivate();
@ -2342,6 +2366,16 @@ void UI_select()
if (progStatus.NO_RIGLOG && !restore_minimize) {
int y1 = TopFrame1->y();
if (progStatus.two_macro_rows) {
macroFrame2->size(macroFrame2->w(), Hmacros);
macroFrame2->position(macroFrame2->x(), y1);
macroFrame2->show();
y1 += macroFrame2->h();
} else {
macroFrame2->size(macroFrame2->w(), 0);
macroFrame2->position(macroFrame2->x(), y1);
macroFrame2->hide();
}
int y2 = macroFrame->y();
int w = TopFrame1->w();
if (MixerFrame->visible()) {
@ -2366,6 +2400,16 @@ void UI_select()
if ((!progStatus.Rig_Log_UI && ! progStatus.Rig_Contest_UI) ||
restore_minimize) {
int y1 = TopFrame1->y() + Hqsoframe;
if (progStatus.two_macro_rows) {
macroFrame2->size(macroFrame2->w(), Hmacros);
macroFrame2->position(macroFrame2->x(), y1);
macroFrame2->show();
y1 += macroFrame2->h();
} else {
macroFrame2->size(macroFrame2->w(), 0);
macroFrame2->position(macroFrame2->x(), y1);
macroFrame2->hide();
}
int y2 = macroFrame->y();
int w = TopFrame1->w();
if (MixerFrame->visible()) {
@ -2396,8 +2440,19 @@ void UI_select()
inpXchgIn = inpXchgIn1;
qsoFreqDisp = qsoFreqDisp1;
fl_digi_main->init_sizes();
} else if (progStatus.Rig_Log_UI || progStatus.Rig_Contest_UI) {
int y1 = TopFrame2->y() + Hentry + 3 * pad;
if (progStatus.two_macro_rows) {
macroFrame2->size(macroFrame2->w(), Hmacros);
macroFrame2->position(macroFrame2->x(), y1);
macroFrame2->show();
y1 += macroFrame2->h();
} else {
macroFrame2->size(macroFrame2->w(), 0);
macroFrame2->position(macroFrame2->x(), y1);
macroFrame2->hide();
}
int y2 = macroFrame->y();
int w = TopFrame1->w();
if (MixerFrame->visible()) {
@ -2670,7 +2725,8 @@ Fl_Menu_Item menu_[] = {
{ VIEW_MLABEL, 0, 0, 0, FL_SUBMENU, FL_NORMAL_LABEL, 0, 14, 0},
{"View/Hide Channels", 'v', (Fl_Callback*)cb_view_hide_channels, 0, FL_MENU_DIVIDER, FL_NORMAL_LABEL, 0, 14, 0},
{"View/Hide Channels", 'v', (Fl_Callback*)cb_view_hide_channels, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
{ MACRO_ROWS_LABEL, 'r', (Fl_Callback*)cb_mnuMacroRows, 0, FL_MENU_TOGGLE | FL_MENU_DIVIDER, FL_NORMAL_LABEL, 0, 14, 0},
{ make_icon_label(_("Floating scope"), utilities_system_monitor_icon), 'd', (Fl_Callback*)cb_mnuDigiscope, 0, 0, _FL_MULTI_LABEL, 0, 14, 0},
{ make_icon_label(MFSK_IMAGE_MLABEL, image_icon), 'm', (Fl_Callback*)cb_mnuPicViewer, 0, FL_MENU_INACTIVE, _FL_MULTI_LABEL, 0, 14, 0},
@ -3198,12 +3254,8 @@ static void cb_mainViewer(Fl_Hold_Browser*, void*) {
}
break;
case FL_RIGHT_MOUSE: // reset
// if (Fl::event_state(FL_SHIFT)) {
// pskviewer->clear();
// } else {
pskviewer->clearch(sel-1);
mainViewer->deselect();
// }
pskviewer->clearch(sel-1);
mainViewer->deselect();
break;
default:
break;
@ -3211,6 +3263,13 @@ static void cb_mainViewer(Fl_Hold_Browser*, void*) {
}
void create_fl_digi_main_primary() {
// bx used as a temporary spacer
Fl_Box *bx;
int Wmacrobtn;
int Hmacrobtn;
int xpos;
int ypos;
int wblank;
int fnt = fl_font();
int fsize = fl_size();
@ -3844,7 +3903,31 @@ void create_fl_digi_main_primary() {
Y = Hmenu + Hqsoframe + pad;
int Htext = progStatus.mainH - Hwfall - Hmenu - Hstatus - Hmacros - Hqsoframe - 4;
macroFrame2 = new Fl_Group(0, Y, progStatus.mainW, Hmacros);
macroFrame2->box(FL_ENGRAVED_BOX);
Wmacrobtn = (macroFrame2->w() - 4) / NUMMACKEYS;
Hmacrobtn = (macroFrame2->h() - 4);
wblank = (macroFrame2->w() - 4 - NUMMACKEYS * Wmacrobtn) / 2;
xpos = 2;
ypos = macroFrame2->y() + 2;
for (int i = 0; i < NUMMACKEYS; i++) {
if (i == 4 || i == 8) {
bx = new Fl_Box(xpos, ypos, wblank, Hmacrobtn);
bx->box(FL_FLAT_BOX);
xpos += wblank;
}
btnMacro[NUMMACKEYS + i] = new Fl_Button(xpos, ypos, Wmacrobtn, Hmacrobtn,
macros.name[NUMMACKEYS + i].c_str());
btnMacro[NUMMACKEYS + i]->callback(macro_cb, (void *)(NUMMACKEYS + i));
btnMacro[NUMMACKEYS + i]->tooltip(
_("Left Click - execute\nShift-Fkey - execute\nRight Click - edit"));
colorize_macro(NUMMACKEYS + i);
xpos += Wmacrobtn;
}
macroFrame2->end();
Y += Hmacros;
int Htext = progStatus.mainH - Hwfall - Hmenu - Hstatus - Hmacros*NUMKEYROWS - Hqsoframe - 4;
int Hrcvtxt = (Htext) / 2;
int Hxmttxt = (Htext - (Hrcvtxt));
@ -3958,7 +4041,7 @@ void create_fl_digi_main_primary() {
int ysmall = VTgroup->y() + 66;
int yheight = Htext - 66 - 40;
Fl_Box *minVTbox = new Fl_Box(
minVTbox = new Fl_Box(
VTgroup->x(), ysmall, fl_digi_main->w() - VTgroup->x(), yheight);
minVTbox->hide();
@ -3975,33 +4058,30 @@ void create_fl_digi_main_primary() {
Fl::add_handler(default_handler);
Fl_Box *bx;
macroFrame = new Fl_Box(0, Y, progStatus.mainW, Hmacros);
macroFrame->box(FL_ENGRAVED_FRAME);
int Wbtn = (progStatus.mainW - 30 - 8 - 4)/NUMMACKEYS;
int xpos = 2;
macroFrame = new Fl_Group(0, Y, progStatus.mainW, Hmacros);
macroFrame->box(FL_ENGRAVED_BOX);
Wmacrobtn = (macroFrame->w() - 4) / NUMMACKEYS;
Hmacrobtn = (macroFrame->h() - 4);
wblank = (macroFrame->w() - 4 - NUMMACKEYS * Wmacrobtn) / 2;
xpos = 2;
ypos = macroFrame->y() + 2;// + row*Hbtn;
for (int i = 0; i < NUMMACKEYS; i++) {
if (i == 4 || i == 8) {
bx = new Fl_Box(xpos, Y+2, 5, Hmacros - 4);
bx = new Fl_Box(xpos, ypos, wblank, Hmacrobtn);
bx->box(FL_FLAT_BOX);
bx->color(FL_BLACK);
xpos += 4;
xpos += wblank;
}
btnMacro[i] = new Fl_Button(xpos, Y+2, Wbtn, Hmacros - 4, macros.name[i].c_str());
btnMacro[i]->callback(macro_cb, (void *)i);
btnMacro[i]->tooltip(_("Left Click - execute\nRight Click - edit"));
btnMacro[i] = new Fl_Button(xpos, ypos, Wmacrobtn, Hmacrobtn,
macros.name[i].c_str());
btnMacro[i]->callback(macro_cb, (void *)(i));
btnMacro[i]->tooltip(_("Left Click - execute\nFkey - execute\nRight Click - edit"));
colorize_macro(i);
xpos += Wbtn;
xpos += Wmacrobtn;
}
bx = new Fl_Box(xpos, Y+2, progStatus.mainW - 32 - xpos, Hmacros - 4);
bx->box(FL_FLAT_BOX);
bx->color(FL_BLACK);
btnAltMacros = new Fl_Button(progStatus.mainW-32, Y+2, 30, Hmacros - 4, "1");
btnAltMacros->callback(altmacro_cb, 0);
btnAltMacros->tooltip(_("Change macro set"));
macroFrame->end();
Y += Hmacros;
Fl_Pack *wfpack = new Fl_Pack(0, Y, progStatus.mainW, Hwfall);
wfpack = new Fl_Pack(0, Y, progStatus.mainW, Hwfall);
wfpack->type(1);
wf = new waterfall(0, Y, Wwfall, Hwfall);
@ -4030,7 +4110,7 @@ void create_fl_digi_main_primary() {
Y += (Hwfall + 2);
Fl_Pack *hpack = new Fl_Pack(0, Y, progStatus.mainW, Hstatus);
hpack = new Fl_Pack(0, Y, progStatus.mainW, Hstatus);
hpack->type(1);
MODEstatus = new Fl_Button(0,Hmenu+Hrcvtxt+Hxmttxt+Hwfall, Wmode+30, Hstatus, "");
MODEstatus->box(FL_DOWN_BOX);
@ -4115,6 +4195,7 @@ void create_fl_digi_main_primary() {
Fl_Group::current()->resizable(StatusBar);
hpack->end();
Y += hpack->h();
showMacroSet();
@ -4371,10 +4452,9 @@ void noop_controls() // create and then hide all controls not being used
TransmitText = new FTextTX(0,0,100,100); TransmitText->hide();
FHdisp = new Raster(0,0,10,100); FHdisp->hide();
for (int i = 0; i < NUMMACKEYS; i++) {
for (int i = 0; i < NUMMACKEYS * NUMKEYROWS; i++) {
btnMacro[i] = new Fl_Button(defwidget); btnMacro[i]->hide();
}
btnAltMacros = new Fl_Button(defwidget); btnAltMacros->hide();
inpQth = new Fl_Input2(defwidget); inpQth->hide();
inpLoc = new Fl_Input2(defwidget); inpLoc->hide();
@ -4573,7 +4653,7 @@ void create_fl_digi_main_WF_only() {
Y += (Hwfall + pad);
Fl_Pack *hpack = new Fl_Pack(0, Y, progStatus.mainW, Hstatus);
hpack = new Fl_Pack(0, Y, progStatus.mainW, Hstatus);
hpack->type(1);
MODEstatus = new Fl_Button(0, Y, Wmode+30, Hstatus, "");
MODEstatus->box(FL_DOWN_BOX);

Wyświetl plik

@ -53,6 +53,7 @@ extern Raster *FHdisp;
//extern Fl_Tile_Check *TiledGroup;
extern Fl_Tile_Check *VTgroup;
extern Fl_Box *minVTbox;
extern Fl_Tile_Check *HTgroup;
extern Fl_Box *StatusBar;
@ -125,7 +126,6 @@ extern Fl_Light_Button *btnRSID;
extern Fl_Light_Button *btnTxRSID;
extern Fl_Light_Button *btnTune;
extern Fl_Button *btnAltMacros;
extern Fl_Button *btnMacroTimer;
extern bool bWF_only;
@ -148,6 +148,9 @@ extern void activate_mfsk_image_item(bool b);
extern void activate_wefax_image_item(bool b);
extern void WF_UI();
extern void set_macroLabels();
extern void UI_select();
extern void cb_mnuVisitURL(Fl_Widget*, void* arg);
extern void put_freq(double frequency);

Wyświetl plik

@ -4,8 +4,9 @@
#include <string>
#define NUMMACKEYS 12
#define NUMKEYROWS 4
#define MAXMACROS (NUMKEYROWS * NUMMACKEYS)
#define NUMKEYROWS 2
#define MAXKEYROWS 4
#define MAXMACROS (MAXKEYROWS * NUMMACKEYS)
struct CONTESTCNTR {
int count;

Wyświetl plik

@ -16,6 +16,7 @@ struct status {
bool NO_RIGLOG;
bool Rig_Log_UI;
bool Rig_Contest_UI;
bool two_macro_rows;
bool DOCKEDSCOPE;
int RxTextHeight;

Wyświetl plik

@ -1203,12 +1203,12 @@ int MACROTEXT::loadMacros(const string& filename)
if (!mFile) {
create_new_macros();
for (int i = 0; i < 12; i++) {
btnMacro[i]->label( name[i].c_str());
btnMacro[i]->redraw_label();
}
return 0;
}
// for (int i = 0; i < 12; i++) {
// btnMacro[i]->label( name[i].c_str());
// btnMacro[i]->redraw_label();
// }
// return 0;
} else {
mFile.getline(szLine, 4095);
mLine = szLine;
@ -1252,9 +1252,14 @@ int MACROTEXT::loadMacros(const string& filename)
text[mNumber] = text[mNumber] + mLine;
}
mFile.close();
altMacros = 0;
btnAltMacros->label("1");
btnAltMacros->redraw_label();
}
for (int row = 0; row < NUMKEYROWS; row++) {
for (int i = 0; i < NUMMACKEYS; i++) {
btnMacro[row * NUMMACKEYS + i]->label(macros.name[(NUMKEYROWS - row - 1)*NUMMACKEYS + i].c_str());
btnMacro[row * NUMMACKEYS + i]->redraw_label();
}
}
return 0;
}

Wyświetl plik

@ -61,6 +61,8 @@
#include "logsupport.h"
#include "qso_db.h"
#include "misc.h"
#define STATUS_FILENAME "status"
status progStatus = {
@ -74,6 +76,7 @@ status progStatus = {
false, // bool NO_RIGLOG;
false, // bool Rig_Log_UI;
false, // bool Rig_Contest_UI;
true, // bool two_macro_rows
false, // bool DOCKEDSCOPE;
200, // int RxTextHeight;
WNOM / 2, // int tiled_group_x;
@ -295,6 +298,7 @@ if (!bWF_only) {
spref.set("riglog_ui", Rig_Log_UI);
spref.set("rigcontest_ui", Rig_Contest_UI);
spref.set("noriglog", NO_RIGLOG);
spref.set("two_macro_rows", two_macro_rows);
spref.set("docked_scope", DOCKEDSCOPE);
spref.set("rigctl_x", rigX);
@ -438,6 +442,7 @@ void status::loadLastState()
spref.get("wf_ui", i, WF_UI); WF_UI = i;
spref.get("riglog_ui", i, Rig_Log_UI); Rig_Log_UI = i;
spref.get("rigcontest_ui", i, Rig_Contest_UI); Rig_Contest_UI = i;
spref.get("two_macro_rows", i, two_macro_rows); two_macro_rows = i;
spref.get("noriglog", i, NO_RIGLOG); NO_RIGLOG = i;
spref.get("docked_scope", i, DOCKEDSCOPE); DOCKEDSCOPE = i;
@ -598,7 +603,18 @@ if (bWF_only)
fl_digi_main->resize(mainX, mainY, mainW, Hmenu + Hwfall + Hstatus + 4);
else {
fl_digi_main->resize(mainX, mainY, mainW, mainH);
int rty = ReceiveText->y();
int xty = TransmitText->y();
minVTbox->resize(
VTgroup->x(), VTgroup->y() + 66,
fl_digi_main->w() - VTgroup->x(), VTgroup->h() - 66 - 40);
set_macroLabels();
UI_select();
fl_digi_main->init_sizes();
if (!(RxTextHeight > 0 && RxTextHeight < VTgroup->h()))
RxTextHeight = VTgroup->h() / 3 * 2;
@ -609,8 +625,9 @@ else {
HTgroup->newx( HTgroup->x() );
progStatus.show_channels = false;
}
VTgroup->position(0, ReceiveText->y() + 66, VTgroup->x(), ReceiveText->y() + RxTextHeight);
// RxTextHeight = CLAMP(RxTextHeight, 66, ReceiveText->h() - 32);
// VTgroup->position(-1, ReceiveText->y() + 66, VTgroup->x(), ReceiveText->y() + RxTextHeight);
VTgroup->position(-1, xty, VTgroup->x(), rty + RxTextHeight);
}
if (VIEWERvisible && lastmode >= MODE_PSK_FIRST && lastmode <= MODE_PSK_LAST)

Wyświetl plik

@ -1630,19 +1630,6 @@ int waterfall::handle(int event)
return 1;
}
// as above; handle wheel events for the macro bar
extern void altmacro_cb(Fl_Widget *w, void *v);
for (int i = 0; i < NUMMACKEYS; i++) {
if (Fl::event_inside(btnMacro[i])) {
altmacro_cb(btnAltMacros, reinterpret_cast<void *>(d));
return 1;
}
}
if (Fl::event_inside(btnAltMacros)) {
altmacro_cb(btnAltMacros, reinterpret_cast<void *>(d));
return 1;
}
return Fl_Group::handle(event);
}

Wyświetl plik

@ -937,19 +937,27 @@ int FTextTX::handle_key(int key)
}
return 0;
}
// alt - 1 through alt - 4 changes macro sets
// alt - 1 / 2 changes macro sets
case '1':
case '2':
case '3':
case '4':
if (Fl::event_state() & FL_ALT) {
altMacros = key - '1';
for (int i = 0; i < 12; i++)
btnMacro[i]->label(macros.name[i + (altMacros * NUMMACKEYS)].c_str());
static char alt_text[4];
snprintf(alt_text, sizeof(alt_text), "%d", altMacros + 1);
btnAltMacros->label(alt_text);
btnAltMacros->redraw_label();
if (progStatus.two_macro_rows) {
if (!altMacros) altMacros = 1;
for (int i = 0; i < NUMMACKEYS; i++) {
btnMacro[NUMMACKEYS + i]->label(
macros.name[(altMacros * NUMMACKEYS) + i].c_str());
btnMacro[NUMMACKEYS + i]->redraw_label();
}
} else {
for (int i = 0; i < NUMMACKEYS; i++) {
btnMacro[i]->label(
macros.name[(altMacros * NUMMACKEYS) + i].c_str());
btnMacro[i]->redraw_label();
}
}
return 1;
}
break;
@ -988,7 +996,12 @@ int FTextTX::handle_key_macro(int key)
if (key > 11)
return 0;
key += altMacros * NUMMACKEYS;
if (progStatus.two_macro_rows) {
if (Fl::event_state(FL_SHIFT))
key += altMacros * NUMMACKEYS;
} else {
key += altMacros * NUMMACKEYS;
}
if (!(macros.text[key]).empty())
macros.execute(key);

Wyświetl plik

@ -36,6 +36,7 @@
void Tile_::position(int oix, int oiy, int newx, int newy) {
Fl_Widget* const* a = array();
// Fl_Widget *o;
short* p = sizes();
p += 8; // skip group & resizable's saved size
for (int i=children(); i--; p += 4) {
@ -66,16 +67,16 @@ void Tile_::newx( int newx )
{
Fl_Widget* const* a = array();
short* p = sizes();
Fl_Widget *o = *a;
// Fl_Widget *o;// = *a;
int gX = x(), gW = w();
p += 8; // skip group & resizable's saved size
for (int i=children(); i--; p += 4) {
Fl_Widget* o = *a++;
Fl_Widget *o = *a++;
if (o == resizable())
continue;
int X = o->x();
int R = X + o->w();
// int R = X + o->w();
int Y = o->y();
int H = o->h();