kopia lustrzana https://github.com/jamescoxon/dl-fldigi
Dual Macro Bar
* 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
rodzic
685ffc38c4
commit
99f977cd28
|
|
@ -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"));
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
||||
|
|
|
|||
Ładowanie…
Reference in New Issue