* 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 } // Fl_Group* tabContest
{ tabWF_UI = new Fl_Group(0, 50, 500, 320, _("Operator Controls")); { tabWF_UI = new Fl_Group(0, 50, 500, 320, _("Operator Controls"));
tabWF_UI->hide(); tabWF_UI->hide();
{ Fl_Box* o = new Fl_Box(31, 65, 446, 25, _("Enable check box to show each respective operator control")); { Fl_Group* o = new Fl_Group(2, 58, 496, 253);
o->box(FL_FLAT_BOX); o->box(FL_ENGRAVED_BOX);
o->align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE); { Fl_Box* o = new Fl_Box(31, 65, 446, 25, _("Enable check box to show each respective operator control"));
} // Fl_Box* o o->box(FL_FLAT_BOX);
{ Fl_Check_Button* o = btnWF_UIrev = new Fl_Check_Button(58, 98, 150, 20, _("Reverse")); o->align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
btnWF_UIrev->down_box(FL_DOWN_BOX); } // Fl_Box* o
btnWF_UIrev->value(1); { Fl_Check_Button* o = btnWF_UIrev = new Fl_Check_Button(58, 98, 150, 20, _("Reverse"));
btnWF_UIrev->callback((Fl_Callback*)cb_btnWF_UIrev); btnWF_UIrev->down_box(FL_DOWN_BOX);
o->value(progdefaults.WF_UIrev); btnWF_UIrev->value(1);
} // Fl_Check_Button* btnWF_UIrev btnWF_UIrev->callback((Fl_Callback*)cb_btnWF_UIrev);
{ Fl_Check_Button* o = btnWF_UIx1 = new Fl_Check_Button(277, 98, 162, 20, _("WF Magnification")); o->value(progdefaults.WF_UIrev);
btnWF_UIx1->down_box(FL_DOWN_BOX); } // Fl_Check_Button* btnWF_UIrev
btnWF_UIx1->value(1); { Fl_Check_Button* o = btnWF_UIx1 = new Fl_Check_Button(277, 98, 162, 20, _("WF Magnification"));
btnWF_UIx1->callback((Fl_Callback*)cb_btnWF_UIx1); btnWF_UIx1->down_box(FL_DOWN_BOX);
o->value(progdefaults.WF_UIx1); btnWF_UIx1->value(1);
} // Fl_Check_Button* btnWF_UIx1 btnWF_UIx1->callback((Fl_Callback*)cb_btnWF_UIx1);
{ Fl_Check_Button* o = btnWF_UIwfcarrier = new Fl_Check_Button(58, 136, 150, 20, _("WF carrier")); o->value(progdefaults.WF_UIx1);
btnWF_UIwfcarrier->down_box(FL_DOWN_BOX); } // Fl_Check_Button* btnWF_UIx1
btnWF_UIwfcarrier->value(1); { Fl_Check_Button* o = btnWF_UIwfcarrier = new Fl_Check_Button(58, 129, 150, 20, _("WF carrier"));
btnWF_UIwfcarrier->callback((Fl_Callback*)cb_btnWF_UIwfcarrier); btnWF_UIwfcarrier->down_box(FL_DOWN_BOX);
o->value(progdefaults.WF_UIwfcarrier); btnWF_UIwfcarrier->value(1);
} // Fl_Check_Button* btnWF_UIwfcarrier btnWF_UIwfcarrier->callback((Fl_Callback*)cb_btnWF_UIwfcarrier);
{ Fl_Check_Button* o = btnWF_UIwfshift = new Fl_Check_Button(277, 136, 150, 20, _("WF Shift Controls")); o->value(progdefaults.WF_UIwfcarrier);
btnWF_UIwfshift->down_box(FL_DOWN_BOX); } // Fl_Check_Button* btnWF_UIwfcarrier
btnWF_UIwfshift->value(1); { Fl_Check_Button* o = btnWF_UIwfshift = new Fl_Check_Button(277, 129, 150, 20, _("WF Shift Controls"));
btnWF_UIwfshift->callback((Fl_Callback*)cb_btnWF_UIwfshift); btnWF_UIwfshift->down_box(FL_DOWN_BOX);
o->value(progdefaults.WF_UIwfshift); btnWF_UIwfshift->value(1);
} // Fl_Check_Button* btnWF_UIwfshift btnWF_UIwfshift->callback((Fl_Callback*)cb_btnWF_UIwfshift);
{ Fl_Check_Button* o = btnWF_UIwfreflevel = new Fl_Check_Button(58, 175, 150, 20, _("WF ref level")); o->value(progdefaults.WF_UIwfshift);
btnWF_UIwfreflevel->down_box(FL_DOWN_BOX); } // Fl_Check_Button* btnWF_UIwfshift
btnWF_UIwfreflevel->value(1); { Fl_Check_Button* o = btnWF_UIwfreflevel = new Fl_Check_Button(58, 161, 150, 20, _("WF ref level"));
btnWF_UIwfreflevel->callback((Fl_Callback*)cb_btnWF_UIwfreflevel); btnWF_UIwfreflevel->down_box(FL_DOWN_BOX);
o->value(progdefaults.WF_UIwfreflevel); btnWF_UIwfreflevel->value(1);
} // Fl_Check_Button* btnWF_UIwfreflevel btnWF_UIwfreflevel->callback((Fl_Callback*)cb_btnWF_UIwfreflevel);
{ Fl_Check_Button* o = btnWF_UIwfdrop = new Fl_Check_Button(277, 175, 150, 20, _("WF drop rate")); o->value(progdefaults.WF_UIwfreflevel);
btnWF_UIwfdrop->down_box(FL_DOWN_BOX); } // Fl_Check_Button* btnWF_UIwfreflevel
btnWF_UIwfdrop->value(1); { Fl_Check_Button* o = btnWF_UIwfdrop = new Fl_Check_Button(277, 161, 150, 20, _("WF drop rate"));
btnWF_UIwfdrop->callback((Fl_Callback*)cb_btnWF_UIwfdrop); btnWF_UIwfdrop->down_box(FL_DOWN_BOX);
o->value(progdefaults.WF_UIwfdrop); btnWF_UIwfdrop->value(1);
} // Fl_Check_Button* btnWF_UIwfdrop btnWF_UIwfdrop->callback((Fl_Callback*)cb_btnWF_UIwfdrop);
{ Fl_Check_Button* o = btnWF_UIwfampspan = new Fl_Check_Button(58, 213, 150, 20, _("WF amp span")); o->value(progdefaults.WF_UIwfdrop);
btnWF_UIwfampspan->down_box(FL_DOWN_BOX); } // Fl_Check_Button* btnWF_UIwfdrop
btnWF_UIwfampspan->value(1); { Fl_Check_Button* o = btnWF_UIwfampspan = new Fl_Check_Button(58, 193, 150, 20, _("WF amp span"));
btnWF_UIwfampspan->callback((Fl_Callback*)cb_btnWF_UIwfampspan); btnWF_UIwfampspan->down_box(FL_DOWN_BOX);
o->value(progdefaults.WF_UIwfampspan); btnWF_UIwfampspan->value(1);
} // Fl_Check_Button* btnWF_UIwfampspan btnWF_UIwfampspan->callback((Fl_Callback*)cb_btnWF_UIwfampspan);
{ Fl_Check_Button* o = btnWF_UIwfstore = new Fl_Check_Button(277, 213, 150, 20, _("WF Store")); o->value(progdefaults.WF_UIwfampspan);
btnWF_UIwfstore->down_box(FL_DOWN_BOX); } // Fl_Check_Button* btnWF_UIwfampspan
btnWF_UIwfstore->value(1); { Fl_Check_Button* o = btnWF_UIwfstore = new Fl_Check_Button(277, 193, 150, 20, _("WF Store"));
btnWF_UIwfstore->callback((Fl_Callback*)cb_btnWF_UIwfstore); btnWF_UIwfstore->down_box(FL_DOWN_BOX);
o->value(progdefaults.WF_UIwfstore); btnWF_UIwfstore->value(1);
} // Fl_Check_Button* btnWF_UIwfstore btnWF_UIwfstore->callback((Fl_Callback*)cb_btnWF_UIwfstore);
{ Fl_Check_Button* o = btnWF_UIwfmode = new Fl_Check_Button(58, 249, 150, 20, _("WF mode")); o->value(progdefaults.WF_UIwfstore);
btnWF_UIwfmode->down_box(FL_DOWN_BOX); } // Fl_Check_Button* btnWF_UIwfstore
btnWF_UIwfmode->value(1); { Fl_Check_Button* o = btnWF_UIwfmode = new Fl_Check_Button(58, 225, 150, 20, _("WF mode"));
btnWF_UIwfmode->callback((Fl_Callback*)cb_btnWF_UIwfmode); btnWF_UIwfmode->down_box(FL_DOWN_BOX);
o->value(progdefaults.WF_UIwfmode); btnWF_UIwfmode->value(1);
} // Fl_Check_Button* btnWF_UIwfmode btnWF_UIwfmode->callback((Fl_Callback*)cb_btnWF_UIwfmode);
{ Fl_Check_Button* o = btnWF_UIqsy = new Fl_Check_Button(277, 249, 150, 20, _("QSY")); o->value(progdefaults.WF_UIwfmode);
btnWF_UIqsy->down_box(FL_DOWN_BOX); } // Fl_Check_Button* btnWF_UIwfmode
btnWF_UIqsy->value(1); { Fl_Check_Button* o = btnWF_UIqsy = new Fl_Check_Button(277, 225, 150, 20, _("QSY"));
btnWF_UIqsy->callback((Fl_Callback*)cb_btnWF_UIqsy); btnWF_UIqsy->down_box(FL_DOWN_BOX);
o->value(progdefaults.WF_UIqsy); btnWF_UIqsy->value(1);
} // Fl_Check_Button* btnWF_UIqsy btnWF_UIqsy->callback((Fl_Callback*)cb_btnWF_UIqsy);
{ Fl_Check_Button* o = btnWF_UIxmtlock = new Fl_Check_Button(277, 285, 150, 20, _("XMT lock")); o->value(progdefaults.WF_UIqsy);
btnWF_UIxmtlock->down_box(FL_DOWN_BOX); } // Fl_Check_Button* btnWF_UIqsy
btnWF_UIxmtlock->value(1); { Fl_Check_Button* o = btnWF_UIxmtlock = new Fl_Check_Button(277, 257, 150, 20, _("XMT lock"));
btnWF_UIxmtlock->callback((Fl_Callback*)cb_btnWF_UIxmtlock); btnWF_UIxmtlock->down_box(FL_DOWN_BOX);
o->value(progdefaults.WF_UIxmtlock); btnWF_UIxmtlock->value(1);
} // Fl_Check_Button* btnWF_UIxmtlock btnWF_UIxmtlock->callback((Fl_Callback*)cb_btnWF_UIxmtlock);
{ btn_wf_enable_all = new Fl_Button(102, 321, 88, 20, _("Enable all")); o->value(progdefaults.WF_UIxmtlock);
btn_wf_enable_all->callback((Fl_Callback*)cb_btn_wf_enable_all); } // Fl_Check_Button* btnWF_UIxmtlock
} // Fl_Button* btn_wf_enable_all { btn_wf_enable_all = new Fl_Button(102, 280, 88, 20, _("Enable all"));
{ btn_wf_disable_all = new Fl_Button(301, 321, 88, 20, _("Disable all")); btn_wf_enable_all->callback((Fl_Callback*)cb_btn_wf_enable_all);
btn_wf_disable_all->callback((Fl_Callback*)cb_btn_wf_disable_all); } // Fl_Button* btn_wf_enable_all
} // Fl_Button* btn_wf_disable_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(); tabWF_UI->end();
} // Fl_Group* tabWF_UI } // Fl_Group* tabWF_UI
{ Fl_Group* o = new Fl_Group(0, 50, 500, 320, _("Rx Text")); { 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 { Fl_Group tabUI {
label UI label UI open
xywh {-3 25 508 345} hide xywh {-3 25 508 345} hide
} { } {
Fl_Tabs tabsUI {open Fl_Tabs tabsUI {open
xywh {-3 25 508 345} selection_color 50 xywh {-3 25 508 345} selection_color 50
} { } {
Fl_Group tabUserInterface { Fl_Group tabUserInterface {
label General open label General
xywh {0 50 500 320} xywh {0 50 500 320}
} { } {
Fl_Group {} {open Fl_Group {} {
xywh {5 60 490 301} box ENGRAVED_FRAME xywh {5 60 490 301} box ENGRAVED_FRAME
} { } {
Fl_Check_Button btnShowTooltips { Fl_Check_Button btnShowTooltips {
@ -263,7 +263,7 @@ defined here. Tab and newline are automatically included.} xywh {125 285 75 24}
} }
} }
Fl_Group {} { Fl_Group {} {
label {QSO logging} open label {QSO logging}
xywh {8 130 484 146} box ENGRAVED_FRAME align 21 xywh {8 130 484 146} box ENGRAVED_FRAME align 21
} { } {
Fl_Check_Button btnNagMe { Fl_Check_Button btnNagMe {
@ -461,104 +461,107 @@ progdefaults.changed = true;}
} }
} }
Fl_Group tabWF_UI { Fl_Group tabWF_UI {
label {Operator Controls} label {Operator Controls} open
xywh {0 50 500 320} hide xywh {0 50 500 320} hide
} { } {
Fl_Box {} { Fl_Group {} {open
label {Enable check box to show each respective operator control} xywh {2 58 496 253} box ENGRAVED_BOX
xywh {31 65 446 25} box FLAT_BOX align 16 } {
} Fl_Box {} {
Fl_Check_Button btnWF_UIrev { label {Enable check box to show each respective operator control}
label Reverse xywh {31 65 446 25} box FLAT_BOX align 16
callback {progdefaults.WF_UIrev = o->value(); }
Fl_Check_Button btnWF_UIrev {
label Reverse
callback {progdefaults.WF_UIrev = o->value();
progdefaults.changed = true; progdefaults.changed = true;
WF_UI();} WF_UI();}
xywh {58 98 150 20} down_box DOWN_BOX value 1 xywh {58 98 150 20} down_box DOWN_BOX value 1
code0 {o->value(progdefaults.WF_UIrev);} code0 {o->value(progdefaults.WF_UIrev);}
} }
Fl_Check_Button btnWF_UIx1 { Fl_Check_Button btnWF_UIx1 {
label {WF Magnification} label {WF Magnification}
callback {progdefaults.WF_UIx1 = o->value(); callback {progdefaults.WF_UIx1 = o->value();
progdefaults.changed = true; progdefaults.changed = true;
WF_UI();} WF_UI();}
xywh {277 98 162 20} down_box DOWN_BOX value 1 xywh {277 98 162 20} down_box DOWN_BOX value 1
code0 {o->value(progdefaults.WF_UIx1);} code0 {o->value(progdefaults.WF_UIx1);}
} }
Fl_Check_Button btnWF_UIwfcarrier { Fl_Check_Button btnWF_UIwfcarrier {
label {WF carrier} label {WF carrier}
callback {progdefaults.WF_UIwfcarrier = o->value(); callback {progdefaults.WF_UIwfcarrier = o->value();
progdefaults.changed = true; progdefaults.changed = true;
WF_UI();} WF_UI();}
xywh {58 136 150 20} down_box DOWN_BOX value 1 xywh {58 129 150 20} down_box DOWN_BOX value 1
code0 {o->value(progdefaults.WF_UIwfcarrier);} code0 {o->value(progdefaults.WF_UIwfcarrier);}
} }
Fl_Check_Button btnWF_UIwfshift { Fl_Check_Button btnWF_UIwfshift {
label {WF Shift Controls} label {WF Shift Controls}
callback {progdefaults.WF_UIwfshift = o->value(); callback {progdefaults.WF_UIwfshift = o->value();
progdefaults.changed = true; progdefaults.changed = true;
WF_UI();} WF_UI();}
xywh {277 136 150 20} down_box DOWN_BOX value 1 xywh {277 129 150 20} down_box DOWN_BOX value 1
code0 {o->value(progdefaults.WF_UIwfshift);} code0 {o->value(progdefaults.WF_UIwfshift);}
} }
Fl_Check_Button btnWF_UIwfreflevel { Fl_Check_Button btnWF_UIwfreflevel {
label {WF ref level} label {WF ref level}
callback {progdefaults.WF_UIwfreflevel = o->value(); callback {progdefaults.WF_UIwfreflevel = o->value();
progdefaults.changed = true; progdefaults.changed = true;
WF_UI();} WF_UI();}
xywh {58 175 150 20} down_box DOWN_BOX value 1 xywh {58 161 150 20} down_box DOWN_BOX value 1
code0 {o->value(progdefaults.WF_UIwfreflevel);} code0 {o->value(progdefaults.WF_UIwfreflevel);}
} }
Fl_Check_Button btnWF_UIwfdrop { Fl_Check_Button btnWF_UIwfdrop {
label {WF drop rate} label {WF drop rate}
callback {progdefaults.WF_UIwfdrop = o->value(); callback {progdefaults.WF_UIwfdrop = o->value();
progdefaults.changed = true; progdefaults.changed = true;
WF_UI();} WF_UI();}
xywh {277 175 150 20} down_box DOWN_BOX value 1 xywh {277 161 150 20} down_box DOWN_BOX value 1
code0 {o->value(progdefaults.WF_UIwfdrop);} code0 {o->value(progdefaults.WF_UIwfdrop);}
} }
Fl_Check_Button btnWF_UIwfampspan { Fl_Check_Button btnWF_UIwfampspan {
label {WF amp span} label {WF amp span}
callback {progdefaults.WF_UIwfampspan = o->value(); callback {progdefaults.WF_UIwfampspan = o->value();
progdefaults.changed = true; progdefaults.changed = true;
WF_UI();} WF_UI();}
xywh {58 213 150 20} down_box DOWN_BOX value 1 xywh {58 193 150 20} down_box DOWN_BOX value 1
code0 {o->value(progdefaults.WF_UIwfampspan);} code0 {o->value(progdefaults.WF_UIwfampspan);}
} }
Fl_Check_Button btnWF_UIwfstore { Fl_Check_Button btnWF_UIwfstore {
label {WF Store} label {WF Store}
callback {progdefaults.WF_UIwfstore = o->value(); callback {progdefaults.WF_UIwfstore = o->value();
progdefaults.changed = true; progdefaults.changed = true;
WF_UI();} WF_UI();}
xywh {277 213 150 20} down_box DOWN_BOX value 1 xywh {277 193 150 20} down_box DOWN_BOX value 1
code0 {o->value(progdefaults.WF_UIwfstore);} code0 {o->value(progdefaults.WF_UIwfstore);}
} }
Fl_Check_Button btnWF_UIwfmode { Fl_Check_Button btnWF_UIwfmode {
label {WF mode} label {WF mode}
callback {progdefaults.WF_UIwfmode = o->value(); callback {progdefaults.WF_UIwfmode = o->value();
progdefaults.changed = true; progdefaults.changed = true;
WF_UI();} WF_UI();}
xywh {58 249 150 20} down_box DOWN_BOX value 1 xywh {58 225 150 20} down_box DOWN_BOX value 1
code0 {o->value(progdefaults.WF_UIwfmode);} code0 {o->value(progdefaults.WF_UIwfmode);}
} }
Fl_Check_Button btnWF_UIqsy { Fl_Check_Button btnWF_UIqsy {
label QSY label QSY
callback {progdefaults.WF_UIqsy = o->value(); callback {progdefaults.WF_UIqsy = o->value();
progdefaults.changed = true; progdefaults.changed = true;
WF_UI();} WF_UI();}
xywh {277 249 150 20} down_box DOWN_BOX value 1 xywh {277 225 150 20} down_box DOWN_BOX value 1
code0 {o->value(progdefaults.WF_UIqsy);} code0 {o->value(progdefaults.WF_UIqsy);}
} }
Fl_Check_Button btnWF_UIxmtlock { Fl_Check_Button btnWF_UIxmtlock {
label {XMT lock} label {XMT lock}
callback {progdefaults.WF_UIxmtlock = o->value(); callback {progdefaults.WF_UIxmtlock = o->value();
progdefaults.changed = true; progdefaults.changed = true;
WF_UI();} WF_UI();}
xywh {277 285 150 20} down_box DOWN_BOX value 1 xywh {277 257 150 20} down_box DOWN_BOX value 1
code0 {o->value(progdefaults.WF_UIxmtlock);} code0 {o->value(progdefaults.WF_UIxmtlock);}
} }
Fl_Button btn_wf_enable_all { Fl_Button btn_wf_enable_all {
label {Enable all} label {Enable all}
callback {btnWF_UIrev->value(progdefaults.WF_UIrev = 1); callback {btnWF_UIrev->value(progdefaults.WF_UIrev = 1);
btnWF_UIwfcarrier->value(progdefaults.WF_UIwfcarrier = 1); btnWF_UIwfcarrier->value(progdefaults.WF_UIwfcarrier = 1);
btnWF_UIwfreflevel->value(progdefaults.WF_UIwfreflevel = 1); btnWF_UIwfreflevel->value(progdefaults.WF_UIwfreflevel = 1);
btnWF_UIwfampspan->value(progdefaults.WF_UIwfampspan = 1); btnWF_UIwfampspan->value(progdefaults.WF_UIwfampspan = 1);
@ -573,11 +576,11 @@ btnWF_UIxmtlock->value(progdefaults.WF_UIxmtlock = 1);
progdefaults.changed = true; progdefaults.changed = true;
WF_UI();} WF_UI();}
xywh {102 321 88 20} xywh {102 280 88 20}
} }
Fl_Button btn_wf_disable_all { Fl_Button btn_wf_disable_all {
label {Disable all} label {Disable all}
callback {btnWF_UIrev->value(progdefaults.WF_UIrev = 0); callback {btnWF_UIrev->value(progdefaults.WF_UIrev = 0);
btnWF_UIwfcarrier->value(progdefaults.WF_UIwfcarrier = 0); btnWF_UIwfcarrier->value(progdefaults.WF_UIwfcarrier = 0);
btnWF_UIwfreflevel->value(progdefaults.WF_UIwfreflevel = 0); btnWF_UIwfreflevel->value(progdefaults.WF_UIwfreflevel = 0);
btnWF_UIwfampspan->value(progdefaults.WF_UIwfampspan = 0); btnWF_UIwfampspan->value(progdefaults.WF_UIwfampspan = 0);
@ -592,11 +595,12 @@ btnWF_UIxmtlock->value(progdefaults.WF_UIxmtlock = 0);
progdefaults.changed = true; progdefaults.changed = true;
WF_UI();} WF_UI();}
xywh {301 321 88 20} xywh {301 280 88 20}
}
} }
} }
Fl_Group {} { Fl_Group {} {
label {Rx Text} open label {Rx Text}
xywh {0 50 500 320} hide xywh {0 50 500 320} hide
} { } {
Fl_Check_Button btn_rx_lowercase { 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 { Fl_Group tabModems {
label Modems open label Modems
xywh {-4 25 521 347} hide xywh {-4 25 521 347} hide
} { } {
Fl_Tabs tabsModems {open Fl_Tabs tabsModems {open
@ -3029,7 +3033,7 @@ progdefaults.changed = true;}
} }
} }
Fl_Group tabMisc { Fl_Group tabMisc {
label Misc open label Misc
xywh {0 25 500 345} hide xywh {0 25 500 345} hide
} { } {
Fl_Tabs tabsMisc {open 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 *VTgroup = 0;
Fl_Tile_Check *HTgroup = 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; FTextRX *ReceiveText = 0;
FTextTX *TransmitText = 0; FTextTX *TransmitText = 0;
Raster *FHdisp; Raster *FHdisp;
Fl_Box *minVTbox;
pskBrowser *mainViewer = (pskBrowser *)0; pskBrowser *mainViewer = (pskBrowser *)0;
@ -204,8 +208,7 @@ Fl_Counter2 *cntCW_WPM=(Fl_Counter2 *)0;
Fl_Button *btnCW_Default=(Fl_Button *)0; Fl_Button *btnCW_Default=(Fl_Button *)0;
Fl_Box *WARNstatus = (Fl_Box *)0; Fl_Box *WARNstatus = (Fl_Box *)0;
Fl_Button *MODEstatus = (Fl_Button *)0; Fl_Button *MODEstatus = (Fl_Button *)0;
Fl_Button *btnMacro[NUMMACKEYS]; Fl_Button *btnMacro[NUMMACKEYS * NUMKEYROWS];
Fl_Button *btnAltMacros;
Fl_Button *btnAFC; Fl_Button *btnAFC;
Fl_Button *btnSQL; Fl_Button *btnSQL;
Fl_Input2 *inpQth; Fl_Input2 *inpQth;
@ -305,6 +308,9 @@ Fl_Group *MixerFrame;
Fl_Value_Slider2 *valRcvMixer = (Fl_Value_Slider2 *)0; Fl_Value_Slider2 *valRcvMixer = (Fl_Value_Slider2 *)0;
Fl_Value_Slider2 *valXmtMixer = (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_Value_Slider2 *mvsquelch = (Fl_Value_Slider2 *)0;
Fl_Button *btnClearMViewer = 0; Fl_Button *btnClearMViewer = 0;
@ -1107,7 +1113,12 @@ void restoreFocus(Fl_Widget* w)
void macro_cb(Fl_Widget *w, void *v) void macro_cb(Fl_Widget *w, void *v)
{ {
int b = (int)(reinterpret_cast<long> (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(); int mouse = Fl::event_button();
if (mouse == FL_LEFT_MOUSE && !macros.text[b].empty()) { if (mouse == FL_LEFT_MOUSE && !macros.text[b].empty()) {
stopMacroTimer(); stopMacroTimer();
@ -1120,13 +1131,14 @@ void macro_cb(Fl_Widget *w, void *v)
void colorize_macro(int i) void colorize_macro(int i)
{ {
int j = i % NUMMACKEYS;
if (progdefaults.useGroupColors == true) { if (progdefaults.useGroupColors == true) {
if (i < NUMKEYROWS){ if (j < 4) {
btnMacro[i]->color(fl_rgb_color( btnMacro[i]->color(fl_rgb_color(
progdefaults.btnGroup1.R, progdefaults.btnGroup1.R,
progdefaults.btnGroup1.G, progdefaults.btnGroup1.G,
progdefaults.btnGroup1.B)); progdefaults.btnGroup1.B));
} else if (i < 8) { } else if (j < 8) {
btnMacro[i]->color(fl_rgb_color( btnMacro[i]->color(fl_rgb_color(
progdefaults.btnGroup2.R, progdefaults.btnGroup2.R,
progdefaults.btnGroup2.G, progdefaults.btnGroup2.G,
@ -1151,34 +1163,13 @@ void colorize_macro(int i)
void colorize_macros() void colorize_macros()
{ {
FL_LOCK_D(); FL_LOCK_D();
for (int i = 0; i < NUMMACKEYS; i++) { for (int i = 0; i < NUMMACKEYS * NUMKEYROWS; i++) {
colorize_macro(i); colorize_macro(i);
btnMacro[i]->redraw_label(); btnMacro[i]->redraw_label();
} }
FL_UNLOCK_D(); 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*) { void cb_mnuConfigOperator(Fl_Menu_*, void*) {
progdefaults.loadDefaults(); progdefaults.loadDefaults();
tabsConfigure->value(tabOperator); tabsConfigure->value(tabOperator);
@ -1750,6 +1741,30 @@ void cb_mnuContest(Fl_Menu_ *m, void *) {
progStatus.contest = m->mvalue()->value(); 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 *) { void cb_mnuPicViewer(Fl_Menu_ *, void *) {
if (picRxWin) { if (picRxWin) {
picRx->redraw(); picRx->redraw();
@ -2202,7 +2217,8 @@ int default_handler(int event)
if (w == fl_digi_main || w->window() == fl_digi_main) { if (w == fl_digi_main || w->window() == fl_digi_main) {
int key = Fl::event_key(); 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->take_focus();
TransmitText->handle(FL_KEYBOARD); TransmitText->handle(FL_KEYBOARD);
w->take_focus(); // remove this to leave tx text focused 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 RIGCONTEST_MLABEL _("Rig control and contest")
#define DOCKEDSCOPE_MLABEL _("Docked scope") #define DOCKEDSCOPE_MLABEL _("Docked scope")
#define WF_MLABEL _("Minimal controls") #define WF_MLABEL _("Minimal controls")
#define MACRO_ROWS_LABEL _("Two macro button bars")
bool restore_minimize = false; bool restore_minimize = false;
@ -2329,6 +2346,13 @@ void UI_select()
return; return;
Fl_Menu_Item* cf = getMenuItem(CONTEST_FIELDS_MLABEL); 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) { if (progStatus.NO_RIGLOG || progStatus.Rig_Contest_UI || progStatus.Rig_Log_UI) {
cf->clear(); cf->clear();
cf->deactivate(); cf->deactivate();
@ -2342,6 +2366,16 @@ void UI_select()
if (progStatus.NO_RIGLOG && !restore_minimize) { if (progStatus.NO_RIGLOG && !restore_minimize) {
int y1 = TopFrame1->y(); 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 y2 = macroFrame->y();
int w = TopFrame1->w(); int w = TopFrame1->w();
if (MixerFrame->visible()) { if (MixerFrame->visible()) {
@ -2366,6 +2400,16 @@ void UI_select()
if ((!progStatus.Rig_Log_UI && ! progStatus.Rig_Contest_UI) || if ((!progStatus.Rig_Log_UI && ! progStatus.Rig_Contest_UI) ||
restore_minimize) { restore_minimize) {
int y1 = TopFrame1->y() + Hqsoframe; 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 y2 = macroFrame->y();
int w = TopFrame1->w(); int w = TopFrame1->w();
if (MixerFrame->visible()) { if (MixerFrame->visible()) {
@ -2396,8 +2440,19 @@ void UI_select()
inpXchgIn = inpXchgIn1; inpXchgIn = inpXchgIn1;
qsoFreqDisp = qsoFreqDisp1; qsoFreqDisp = qsoFreqDisp1;
fl_digi_main->init_sizes(); fl_digi_main->init_sizes();
} else if (progStatus.Rig_Log_UI || progStatus.Rig_Contest_UI) { } else if (progStatus.Rig_Log_UI || progStatus.Rig_Contest_UI) {
int y1 = TopFrame2->y() + Hentry + 3 * pad; 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 y2 = macroFrame->y();
int w = TopFrame1->w(); int w = TopFrame1->w();
if (MixerFrame->visible()) { 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_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(_("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}, { 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; break;
case FL_RIGHT_MOUSE: // reset case FL_RIGHT_MOUSE: // reset
// if (Fl::event_state(FL_SHIFT)) { pskviewer->clearch(sel-1);
// pskviewer->clear(); mainViewer->deselect();
// } else {
pskviewer->clearch(sel-1);
mainViewer->deselect();
// }
break; break;
default: default:
break; break;
@ -3211,6 +3263,13 @@ static void cb_mainViewer(Fl_Hold_Browser*, void*) {
} }
void create_fl_digi_main_primary() { 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 fnt = fl_font();
int fsize = fl_size(); int fsize = fl_size();
@ -3844,7 +3903,31 @@ void create_fl_digi_main_primary() {
Y = Hmenu + Hqsoframe + pad; 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 Hrcvtxt = (Htext) / 2;
int Hxmttxt = (Htext - (Hrcvtxt)); int Hxmttxt = (Htext - (Hrcvtxt));
@ -3958,7 +4041,7 @@ void create_fl_digi_main_primary() {
int ysmall = VTgroup->y() + 66; int ysmall = VTgroup->y() + 66;
int yheight = Htext - 66 - 40; 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); VTgroup->x(), ysmall, fl_digi_main->w() - VTgroup->x(), yheight);
minVTbox->hide(); minVTbox->hide();
@ -3975,33 +4058,30 @@ void create_fl_digi_main_primary() {
Fl::add_handler(default_handler); Fl::add_handler(default_handler);
Fl_Box *bx; macroFrame = new Fl_Group(0, Y, progStatus.mainW, Hmacros);
macroFrame = new Fl_Box(0, Y, progStatus.mainW, Hmacros); macroFrame->box(FL_ENGRAVED_BOX);
macroFrame->box(FL_ENGRAVED_FRAME); Wmacrobtn = (macroFrame->w() - 4) / NUMMACKEYS;
int Wbtn = (progStatus.mainW - 30 - 8 - 4)/NUMMACKEYS; Hmacrobtn = (macroFrame->h() - 4);
int xpos = 2; wblank = (macroFrame->w() - 4 - NUMMACKEYS * Wmacrobtn) / 2;
xpos = 2;
ypos = macroFrame->y() + 2;// + row*Hbtn;
for (int i = 0; i < NUMMACKEYS; i++) { for (int i = 0; i < NUMMACKEYS; i++) {
if (i == 4 || i == 8) { 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->box(FL_FLAT_BOX);
bx->color(FL_BLACK); xpos += wblank;
xpos += 4;
} }
btnMacro[i] = new Fl_Button(xpos, Y+2, Wbtn, Hmacros - 4, macros.name[i].c_str()); btnMacro[i] = new Fl_Button(xpos, ypos, Wmacrobtn, Hmacrobtn,
btnMacro[i]->callback(macro_cb, (void *)i); macros.name[i].c_str());
btnMacro[i]->tooltip(_("Left Click - execute\nRight Click - edit")); btnMacro[i]->callback(macro_cb, (void *)(i));
btnMacro[i]->tooltip(_("Left Click - execute\nFkey - execute\nRight Click - edit"));
colorize_macro(i); colorize_macro(i);
xpos += Wbtn; xpos += Wmacrobtn;
} }
bx = new Fl_Box(xpos, Y+2, progStatus.mainW - 32 - xpos, Hmacros - 4); macroFrame->end();
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"));
Y += Hmacros; 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); wfpack->type(1);
wf = new waterfall(0, Y, Wwfall, Hwfall); wf = new waterfall(0, Y, Wwfall, Hwfall);
@ -4030,7 +4110,7 @@ void create_fl_digi_main_primary() {
Y += (Hwfall + 2); 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); hpack->type(1);
MODEstatus = new Fl_Button(0,Hmenu+Hrcvtxt+Hxmttxt+Hwfall, Wmode+30, Hstatus, ""); MODEstatus = new Fl_Button(0,Hmenu+Hrcvtxt+Hxmttxt+Hwfall, Wmode+30, Hstatus, "");
MODEstatus->box(FL_DOWN_BOX); MODEstatus->box(FL_DOWN_BOX);
@ -4115,6 +4195,7 @@ void create_fl_digi_main_primary() {
Fl_Group::current()->resizable(StatusBar); Fl_Group::current()->resizable(StatusBar);
hpack->end(); hpack->end();
Y += hpack->h();
showMacroSet(); 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(); TransmitText = new FTextTX(0,0,100,100); TransmitText->hide();
FHdisp = new Raster(0,0,10,100); FHdisp->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(); btnMacro[i] = new Fl_Button(defwidget); btnMacro[i]->hide();
} }
btnAltMacros = new Fl_Button(defwidget); btnAltMacros->hide();
inpQth = new Fl_Input2(defwidget); inpQth->hide(); inpQth = new Fl_Input2(defwidget); inpQth->hide();
inpLoc = new Fl_Input2(defwidget); inpLoc->hide(); inpLoc = new Fl_Input2(defwidget); inpLoc->hide();
@ -4573,7 +4653,7 @@ void create_fl_digi_main_WF_only() {
Y += (Hwfall + pad); 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); hpack->type(1);
MODEstatus = new Fl_Button(0, Y, Wmode+30, Hstatus, ""); MODEstatus = new Fl_Button(0, Y, Wmode+30, Hstatus, "");
MODEstatus->box(FL_DOWN_BOX); MODEstatus->box(FL_DOWN_BOX);

Wyświetl plik

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

Wyświetl plik

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

Wyświetl plik

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

Wyświetl plik

@ -1203,12 +1203,12 @@ int MACROTEXT::loadMacros(const string& filename)
if (!mFile) { if (!mFile) {
create_new_macros(); create_new_macros();
for (int i = 0; i < 12; i++) { // for (int i = 0; i < 12; i++) {
btnMacro[i]->label( name[i].c_str()); // btnMacro[i]->label( name[i].c_str());
btnMacro[i]->redraw_label(); // btnMacro[i]->redraw_label();
} // }
return 0; // return 0;
} } else {
mFile.getline(szLine, 4095); mFile.getline(szLine, 4095);
mLine = szLine; mLine = szLine;
@ -1252,9 +1252,14 @@ int MACROTEXT::loadMacros(const string& filename)
text[mNumber] = text[mNumber] + mLine; text[mNumber] = text[mNumber] + mLine;
} }
mFile.close(); 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; return 0;
} }

Wyświetl plik

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

Wyświetl plik

@ -1630,19 +1630,6 @@ int waterfall::handle(int event)
return 1; 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); return Fl_Group::handle(event);
} }

Wyświetl plik

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

Wyświetl plik

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