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
|
} // 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"));
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
|
|
||||||
|
|
|
||||||
Ładowanie…
Reference in New Issue