mirror of
https://git.code.sf.net/p/fldigi/flrig
synced 2026-08-13 17:28:24 -04:00
Memory UI
* Add header line to browser * Increase font sizes * Change to user resizable dialog
This commit is contained in:
parent
4bef465cf2
commit
11a01f2773
11 changed files with 381 additions and 103 deletions
|
|
@ -230,6 +230,7 @@ flrig_SOURCES += \
|
|||
UI/rigpanel.cxx \
|
||||
widgets/combo.cxx \
|
||||
widgets/Fl_SigBar.cxx \
|
||||
widgets/flbrowser2.cxx \
|
||||
widgets/flinput2.cxx \
|
||||
widgets/flslider2.cxx \
|
||||
widgets/font_browser.cxx \
|
||||
|
|
@ -258,14 +259,15 @@ EXTRA_DIST = \
|
|||
include/morse.h \
|
||||
include/debug.h \
|
||||
include/dialogs.h \
|
||||
include/flbrowser2.h \
|
||||
include/flinput2.h \
|
||||
include/flslider2.h \
|
||||
include/fileselect.h \
|
||||
include/font_browser.h \
|
||||
include/flrigrc.h \
|
||||
include/flinput2.h \
|
||||
include/icons.h \
|
||||
include/KENWOOD.h \
|
||||
include/pixmaps.h \
|
||||
include/flslider2.h \
|
||||
include/Fl_SigBar.h \
|
||||
include/FreqControl.h \
|
||||
include/hspinner.h \
|
||||
|
|
|
|||
|
|
@ -47,7 +47,6 @@ Hspinner *spnrOUTER = (Hspinner *)0;
|
|||
Hspinner *spnrNOTCH = (Hspinner *)0;
|
||||
Hspinner *spnrMICGAIN = (Hspinner *)0;
|
||||
|
||||
static const int freq_sel_widths[]={110, 70, 70, 0};
|
||||
static Fl_Double_Window *meter_scale_dialog = (Fl_Double_Window *)0;
|
||||
static Fl_Double_Window *meter_filters = (Fl_Double_Window *)0;
|
||||
|
||||
|
|
|
|||
|
|
@ -18,11 +18,13 @@
|
|||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
#include "font_browser.h"
|
||||
|
||||
Fl_Button *btnAddFreq=(Fl_Button *)0;
|
||||
Fl_Button *btnPickFreq=(Fl_Button *)0;
|
||||
Fl_Button *btnDelFreq=(Fl_Button *)0;
|
||||
Fl_Button *btnClearList=(Fl_Button *)0;
|
||||
Fl_Browser *FreqSelect=(Fl_Browser *)0;
|
||||
Fl_Browser2 *FreqSelect=(Fl_Browser2 *)0;
|
||||
Fl_Input *inAlphaTag=(Fl_Input *)0;
|
||||
|
||||
static void cb_btnAddFreq(Fl_Button*, void*) {
|
||||
|
|
@ -48,87 +50,184 @@ static void cb_Close(Fl_Button*, void*) {
|
|||
|
||||
static void cb_FreqSelect(Fl_Browser* o, void*) {
|
||||
select_and_close();
|
||||
switch (Fl::event_button()) {
|
||||
case FL_LEFT_MOUSE:
|
||||
if (Fl::event_clicks()) { // double click
|
||||
if (o->value())
|
||||
selectFreq();
|
||||
o->parent()->hide();
|
||||
}
|
||||
break;
|
||||
case FL_RIGHT_MOUSE:
|
||||
if (o->value()) selectFreq();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void cb_inAlphaTag(Fl_Input*, void*) {
|
||||
editAlphaTag();
|
||||
}
|
||||
|
||||
static Font_Browser *fntSelectbrowser = 0;
|
||||
static Fl_Browser *header = 0;
|
||||
static int freq_sel_widths[] = {140, 15, 70, 15, 80, 15, 0};
|
||||
|
||||
extern void updateSelect();
|
||||
|
||||
void cbFreqSelectFontBrowser(Fl_Widget*, void*) {
|
||||
progStatus.memfontnbr = fntSelectbrowser->fontNumber();
|
||||
progStatus.memfontsize = fntSelectbrowser->fontSize();
|
||||
if (progStatus.memfontsize > 18) progStatus.memfontsize = 18;
|
||||
if (progStatus.memfontsize < 10) progStatus.memfontsize = 10;
|
||||
fntSelectbrowser->hide();
|
||||
|
||||
char hdrline[256];
|
||||
header->clear();
|
||||
snprintf(hdrline, sizeof(hdrline),
|
||||
"\
|
||||
@F%d@S%d@B%d@cFrequency\t\
|
||||
@F%d@S%d@B%d|\t\
|
||||
@F%d@S%d@B%d@cBW\t\
|
||||
@F%d@S%d@B%d|\t\
|
||||
@F%d@S%d@B%d@cMode\t\
|
||||
@F%d@S%d@B%d|\t\
|
||||
@F%d@S%d@B%d@cComments",
|
||||
progStatus.memfontnbr, progStatus.memfontsize, 247,
|
||||
progStatus.memfontnbr, progStatus.memfontsize, 247,
|
||||
progStatus.memfontnbr, progStatus.memfontsize, 247,
|
||||
progStatus.memfontnbr, progStatus.memfontsize, 247,
|
||||
progStatus.memfontnbr, progStatus.memfontsize, 247,
|
||||
progStatus.memfontnbr, progStatus.memfontsize, 247,
|
||||
progStatus.memfontnbr, progStatus.memfontsize, 247 );
|
||||
header->add(hdrline);
|
||||
header->redraw();
|
||||
|
||||
updateSelect();
|
||||
|
||||
}
|
||||
|
||||
void cbFreqFontBrowser()
|
||||
{
|
||||
fntSelectbrowser = new Font_Browser;
|
||||
fntSelectbrowser->fontNumber(progStatus.memfontnbr);
|
||||
fntSelectbrowser->fontSize(progStatus.memfontsize);
|
||||
fntSelectbrowser->fontFilter(Font_Browser::FIXED_WIDTH);
|
||||
fntSelectbrowser->fontFilter(Font_Browser::ALL_TYPES);
|
||||
fntSelectbrowser->callback(cbFreqSelectFontBrowser);
|
||||
fntSelectbrowser->show();
|
||||
}
|
||||
|
||||
Fl_Double_Window* Memory_Dialog() {
|
||||
Fl_Double_Window* w = new Fl_Double_Window(505, 175, _("Flrig Memory"));
|
||||
Fl_Double_Window* w = new Fl_Double_Window(600, 182, _("Flrig Memory"));
|
||||
|
||||
Fl_Group* mm_grp1 = new Fl_Group(2, 2, 60, 133);
|
||||
mm_grp1->box(FL_ENGRAVED_FRAME);
|
||||
Fl_Group* mm_grp1 = new Fl_Group(0, 0, 600, 155);
|
||||
mm_grp1->box(FL_FLAT_BOX);
|
||||
|
||||
btnAddFreq = new Fl_Button(6, 6, 51, 22, _("Add @-1>"));
|
||||
btnAddFreq->tooltip(_("Add to list"));
|
||||
btnAddFreq->down_box(FL_DOWN_BOX);
|
||||
btnAddFreq->labelsize(12);
|
||||
btnAddFreq->callback((Fl_Callback*)cb_btnAddFreq);
|
||||
btnAddFreq->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
|
||||
Fl_Group* mm_grp1a = new Fl_Group(0, 0, 64, 156);
|
||||
mm_grp1a->box(FL_FLAT_BOX);
|
||||
|
||||
btnPickFreq = new Fl_Button(6, 31, 51, 22, _("Pick @-1<"));
|
||||
btnPickFreq->tooltip(_("Use selected data"));
|
||||
btnPickFreq->down_box(FL_DOWN_BOX);
|
||||
btnPickFreq->labelsize(12);
|
||||
btnPickFreq->callback((Fl_Callback*)cb_btnPickFreq);
|
||||
btnPickFreq->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
|
||||
btnAddFreq = new Fl_Button(2, 1, 60, 22, _("Add @-1>"));
|
||||
btnAddFreq->tooltip(_("Add to list"));
|
||||
btnAddFreq->down_box(FL_DOWN_BOX);
|
||||
btnAddFreq->labelsize(14);
|
||||
btnAddFreq->callback((Fl_Callback*)cb_btnAddFreq);
|
||||
btnAddFreq->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
|
||||
|
||||
btnDelFreq = new Fl_Button(6, 57, 51, 22, _("Del @-11+"));
|
||||
btnDelFreq->tooltip(_("Delete from list"));
|
||||
btnDelFreq->down_box(FL_DOWN_BOX);
|
||||
btnDelFreq->labelsize(12);
|
||||
btnDelFreq->callback((Fl_Callback*)cb_btnDelFreq);
|
||||
btnDelFreq->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
|
||||
btnPickFreq = new Fl_Button(2, 25, 60, 22, _("Pick @-1<"));
|
||||
btnPickFreq->tooltip(_("Use selected data"));
|
||||
btnPickFreq->down_box(FL_DOWN_BOX);
|
||||
btnPickFreq->labelsize(14);
|
||||
btnPickFreq->callback((Fl_Callback*)cb_btnPickFreq);
|
||||
btnPickFreq->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
|
||||
|
||||
btnClearList = new Fl_Button(6, 83, 51, 22, _("Clr @-2square"));
|
||||
btnClearList->tooltip(_("Clear list"));
|
||||
btnClearList->down_box(FL_DOWN_BOX);
|
||||
btnClearList->labelsize(12);
|
||||
btnClearList->callback((Fl_Callback*)cb_btnClearList);
|
||||
btnClearList->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
|
||||
btnDelFreq = new Fl_Button(2, 49, 60, 22, _("Del @-11+"));
|
||||
btnDelFreq->tooltip(_("Delete from list"));
|
||||
btnDelFreq->down_box(FL_DOWN_BOX);
|
||||
btnDelFreq->labelsize(14);
|
||||
btnDelFreq->callback((Fl_Callback*)cb_btnDelFreq);
|
||||
btnDelFreq->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
|
||||
|
||||
Fl_Button* close = new Fl_Button(6, 109, 51, 22, _("Close"));
|
||||
close->tooltip(_("Close Memory dialog"));
|
||||
close->labelsize(12);
|
||||
close->callback((Fl_Callback*)cb_Close);
|
||||
close->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
|
||||
btnClearList = new Fl_Button(2, 73, 60, 22, _("Clr @-2square"));
|
||||
btnClearList->tooltip(_("Clear list"));
|
||||
btnClearList->down_box(FL_DOWN_BOX);
|
||||
btnClearList->labelsize(14);
|
||||
btnClearList->callback((Fl_Callback*)cb_btnClearList);
|
||||
btnClearList->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
|
||||
|
||||
Fl_Button * btnFontSel = new Fl_Button(2, 97, 60, 22, _("Font"));
|
||||
btnFontSel->tooltip(_("Select Font/Size"));
|
||||
btnFontSel->down_box(FL_DOWN_BOX);
|
||||
btnFontSel->labelsize(14);
|
||||
btnFontSel->callback((Fl_Callback*)cbFreqFontBrowser);
|
||||
btnFontSel->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
|
||||
|
||||
Fl_Button* close = new Fl_Button(2, 121, 60, 22, _("Close"));
|
||||
close->tooltip(_("Close Memory dialog"));
|
||||
close->labelsize(14);
|
||||
close->callback((Fl_Callback*)cb_Close);
|
||||
close->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
|
||||
|
||||
Fl_Box *bx1a = new Fl_Box(0, 143, 66, 2, "");
|
||||
bx1a->box(FL_NO_BOX);
|
||||
|
||||
mm_grp1a->end();
|
||||
mm_grp1a->resizable(bx1a);
|
||||
|
||||
Fl_Group *mm_grp1b = new Fl_Group(66, 0, 534, 155);
|
||||
mm_grp1b->box(FL_FLAT_BOX);
|
||||
|
||||
header = new Fl_Browser(66, 0, 532, 24, "");
|
||||
header->column_widths(freq_sel_widths);
|
||||
header->color(247);
|
||||
char hdrline[256];
|
||||
snprintf(hdrline, sizeof(hdrline),
|
||||
"\
|
||||
@F%d@S%d@B%d@cFrequency\t\
|
||||
@F%d@S%d@B%d|\t\
|
||||
@F%d@S%d@B%d@cBW\t\
|
||||
@F%d@S%d@B%d|\t\
|
||||
@F%d@S%d@B%d@cMode\t\
|
||||
@F%d@S%d@B%d|\t\
|
||||
@F%d@S%d@B%d@cComments",
|
||||
progStatus.memfontnbr, progStatus.memfontsize, 247,
|
||||
progStatus.memfontnbr, progStatus.memfontsize, 247,
|
||||
progStatus.memfontnbr, progStatus.memfontsize, 247,
|
||||
progStatus.memfontnbr, progStatus.memfontsize, 247,
|
||||
progStatus.memfontnbr, progStatus.memfontsize, 247,
|
||||
progStatus.memfontnbr, progStatus.memfontsize, 247,
|
||||
progStatus.memfontnbr, progStatus.memfontsize, 247 );
|
||||
header->add(hdrline);
|
||||
|
||||
FreqSelect = new Fl_Browser2(66, 24, 532, 131);
|
||||
FreqSelect->tooltip(
|
||||
_("\
|
||||
Left Click: high light\n\
|
||||
Dbl Left Click: select\n\
|
||||
Right click: select"));
|
||||
FreqSelect->type(2);
|
||||
FreqSelect->labelfont(4);
|
||||
FreqSelect->labelsize(14);
|
||||
FreqSelect->textfont(4);
|
||||
FreqSelect->textsize(14);
|
||||
FreqSelect->column_widths(freq_sel_widths);
|
||||
FreqSelect->callback((Fl_Callback*)cb_FreqSelect);
|
||||
// FreqSelect->has_scrollbar(Fl_Browser_::BOTH_ALWAYS);
|
||||
|
||||
mm_grp1b->end();
|
||||
mm_grp1b->resizable(FreqSelect);
|
||||
|
||||
mm_grp1->end();
|
||||
mm_grp1->resizable(mm_grp1b);
|
||||
|
||||
FreqSelect = new Fl_Browser(66, 2, 434, 133);
|
||||
FreqSelect->tooltip(
|
||||
_("Right click => pick freq\nDouble-click ==> pick and close\nLeft click => edit Alpha Tag"));
|
||||
FreqSelect->type(2);
|
||||
FreqSelect->labelfont(4);
|
||||
FreqSelect->labelsize(12);
|
||||
FreqSelect->textfont(4);
|
||||
FreqSelect->textsize(12);
|
||||
FreqSelect->callback((Fl_Callback*)cb_FreqSelect);
|
||||
FreqSelect->has_scrollbar(Fl_Browser_::VERTICAL_ALWAYS);
|
||||
FreqSelect->column_widths(freq_sel_widths);
|
||||
Fl_Group* mm_grp2 = new Fl_Group(0, 155, 600, 26);
|
||||
|
||||
inAlphaTag = new Fl_Input(290, 140, 190, 25, _("Alpha Tag:"));
|
||||
inAlphaTag->tooltip(
|
||||
_("Select Tag from browser window\nLeft click => in Tag field to edit\n[Enter] => when done to update"));
|
||||
inAlphaTag->callback((Fl_Callback*)cb_inAlphaTag);
|
||||
inAlphaTag->when(FL_WHEN_ENTER_KEY_ALWAYS);
|
||||
inAlphaTag = new Fl_Input(66, 156, 532, 24, _("Tag:"));
|
||||
inAlphaTag->tooltip(
|
||||
_("Left click => in Tag field to edit\n[Enter] => when done to update"));
|
||||
inAlphaTag->callback((Fl_Callback*)cb_inAlphaTag);
|
||||
inAlphaTag->when(FL_WHEN_ENTER_KEY_ALWAYS);
|
||||
inAlphaTag->textfont(4);
|
||||
inAlphaTag->textsize(14);
|
||||
|
||||
mm_grp2->end();
|
||||
mm_grp2->resizable(inAlphaTag);
|
||||
|
||||
w->end();
|
||||
w->resizable(mm_grp1);
|
||||
|
||||
w->size_range(w->w(), w->h(), 0, 0);
|
||||
w->resize(
|
||||
progStatus.memX, progStatus.memY,
|
||||
progStatus.memW, progStatus.memH);
|
||||
w->init_sizes();
|
||||
|
||||
return w;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -452,6 +452,8 @@ Fl_Double_Window* DisplayDialog() {
|
|||
|
||||
w->end();
|
||||
|
||||
w->position( progStatus.ddX, progStatus.ddY );
|
||||
|
||||
return w;
|
||||
}
|
||||
|
||||
|
|
|
|||
33
src/include/flbrowser2.h
Normal file
33
src/include/flbrowser2.h
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
// ----------------------------------------------------------------------------
|
||||
// Copyright (C) 2014
|
||||
// David Freese, W1HKJ
|
||||
//
|
||||
// This file is part of flrig.
|
||||
//
|
||||
// flrig is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation; either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// flrig is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
#ifndef FL_BROWSER2_
|
||||
#define FL_BROWSER2_
|
||||
|
||||
#include <FL/Fl_Browser.H>
|
||||
|
||||
class Fl_Browser2 : public Fl_Browser
|
||||
{
|
||||
public:
|
||||
Fl_Browser2(int x, int y, int w, int h, const char* l = 0);
|
||||
int handle(int event);
|
||||
};
|
||||
|
||||
#endif // FL_BROWSER2_
|
||||
|
|
@ -52,6 +52,7 @@
|
|||
#include <FL/Fl_Input_Choice.H>
|
||||
|
||||
#include "flinput2.h"
|
||||
#include "flbrowser2.h"
|
||||
#include "Fl_SigBar.h"
|
||||
#include "FreqControl.h"
|
||||
#include "combo.h"
|
||||
|
|
@ -399,7 +400,7 @@ extern Fl_Button *btnPickFreq;
|
|||
extern Fl_Button *btnDelFreq;
|
||||
extern Fl_Button *btnClearList;
|
||||
|
||||
extern Fl_Browser *FreqSelect;
|
||||
extern Fl_Browser2 *FreqSelect;
|
||||
|
||||
extern Fl_Input *inAlphaTag;
|
||||
|
||||
|
|
|
|||
|
|
@ -38,6 +38,15 @@ struct status {
|
|||
int mainH;
|
||||
int UIsize;
|
||||
bool UIchanged;
|
||||
|
||||
int memX;
|
||||
int memY;
|
||||
int memW;
|
||||
int memH;
|
||||
|
||||
int ddX;
|
||||
int ddY;
|
||||
|
||||
string xcvr_serial_port;
|
||||
int comm_baudrate;
|
||||
int stopbits;
|
||||
|
|
@ -404,6 +413,10 @@ struct status {
|
|||
int f2, m2, txT_2, rxT_2, offset_2, oF_2;
|
||||
int f70, m70, txT_70, rxT_70, offset_70, oF_70;
|
||||
|
||||
// memory management
|
||||
Fl_Font memfontnbr;
|
||||
int memfontsize;
|
||||
|
||||
// cwio parameters
|
||||
int cwioWPM;
|
||||
int cwioKEYLINE;
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@
|
|||
#include "status.h"
|
||||
|
||||
#define LISTSIZE 200
|
||||
#define ATAGSIZE 21
|
||||
#define ATAGSIZE 128 //21
|
||||
|
||||
extern bool flrig_abort;
|
||||
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@
|
|||
#include <FL/Fl_Progress.H>
|
||||
#include <FL/Enumerations.H>
|
||||
|
||||
#include "dialogs.h"
|
||||
|
||||
#include "status.h"
|
||||
#include "util.h"
|
||||
#include "rig.h"
|
||||
|
|
@ -49,6 +51,15 @@ status progStatus = {
|
|||
150, // int mainH;
|
||||
small_ui, // UISIZE, UIsize;
|
||||
false, // UIchanged;
|
||||
|
||||
20, // int memX;
|
||||
20, // int memY;
|
||||
600, // int memW;
|
||||
164, // int memH;
|
||||
|
||||
20, // int ddX;
|
||||
20, // int ddY;
|
||||
|
||||
"NONE", // string xcvr_serial_port;
|
||||
0, // int comm_baudrate;
|
||||
2, // int stopbits;
|
||||
|
|
@ -416,7 +427,11 @@ status progStatus = {
|
|||
28070000L, 6, 0, 0, 0, 600, // f10 meters
|
||||
50070000L, 6, 0, 0, 0, 600, // f6 meters
|
||||
144070000L, 6, 0, 0, 0, 600, // f2 meters
|
||||
432100000L, 6, 0, 0, 0, 600, // f70 cent'
|
||||
432100000L, 6, 0, 0, 0, 600, // f70 cent'
|
||||
|
||||
// memory management
|
||||
4, // Fl_Font memfontnbr;
|
||||
14, // int memfontsize;
|
||||
|
||||
// cwio parameters
|
||||
20, // int cwioWPM;
|
||||
|
|
@ -441,6 +456,13 @@ void status::saveLastState()
|
|||
int mW = mainwindow->w();
|
||||
int mH = mainwindow->h();
|
||||
|
||||
if (dlgMemoryDialog) {
|
||||
memX = dlgMemoryDialog->x();
|
||||
memY = dlgMemoryDialog->y();
|
||||
memW = dlgMemoryDialog->w();
|
||||
memH = dlgMemoryDialog->h();
|
||||
}
|
||||
|
||||
if (mX >= 0 && mX >= 0) {
|
||||
mainX = mX;
|
||||
mainY = mY;
|
||||
|
|
@ -458,6 +480,14 @@ void status::saveLastState()
|
|||
|
||||
spref.set("uisize", UIsize);
|
||||
|
||||
spref.set("memx", memX);
|
||||
spref.set("memy", memY);
|
||||
spref.set("memw", memW);
|
||||
spref.set("memh", memH);
|
||||
|
||||
spref.set("ddx", ddX);
|
||||
spref.set("ddy", ddY);
|
||||
|
||||
spref.set("xcvr_serial_port", xcvr_serial_port.c_str());
|
||||
spref.set("comm_baudrate", comm_baudrate);
|
||||
spref.set("comm_stopbits", stopbits);
|
||||
|
|
@ -870,6 +900,9 @@ void status::saveLastState()
|
|||
spref.set("hrd_buttons", hrd_buttons);
|
||||
spref.set("sliders_button", sliders_button);
|
||||
|
||||
spref.set("memfontnbr", memfontnbr);
|
||||
spref.set("memfontsize", memfontsize);
|
||||
|
||||
spref.set("cwioWPM", cwioWPM);
|
||||
spref.set("cwio_comp", cwio_comp);
|
||||
spref.set("cwioKEYLINE", cwioKEYLINE);
|
||||
|
|
@ -901,6 +934,15 @@ bool status::loadXcvrState(string xcvr)
|
|||
spref.get("mainw", mainW, mainW);
|
||||
spref.get("mainh", mainH, mainH);
|
||||
spref.get("uisize", UIsize, UIsize);
|
||||
|
||||
spref.get("memx", memX, memX);
|
||||
spref.get("memy", memY, memY);
|
||||
spref.get("memw", memW, memW);
|
||||
spref.get("memh", memH, memH);
|
||||
|
||||
spref.get("ddX", ddX, ddX);
|
||||
spref.get("ddY", ddY, ddY);
|
||||
|
||||
if (current_ui_size != -1) {
|
||||
UIsize = current_ui_size;
|
||||
}
|
||||
|
|
@ -1407,6 +1449,9 @@ bool status::loadXcvrState(string xcvr)
|
|||
if (spref.get("hrd_buttons", i, i)) hrd_buttons = i;
|
||||
spref.get("sliders_button", sliders_button, sliders_button);
|
||||
|
||||
spref.get("memfontnbr", memfontnbr, memfontnbr);
|
||||
spref.get("memfontsize", memfontsize, memfontsize);
|
||||
|
||||
spref.get("cwioWPM", cwioWPM, cwioWPM);
|
||||
spref.get("cwio_comp", cwio_comp, cwio_comp);
|
||||
spref.get("cwioKEYLINE", cwioKEYLINE, cwioKEYLINE);
|
||||
|
|
|
|||
|
|
@ -1740,7 +1740,7 @@ void clearList() {
|
|||
}
|
||||
|
||||
void updateSelect() {
|
||||
char szline[80 + ATAGSIZE];
|
||||
char szline[1000];
|
||||
char szatag[ATAGSIZE];
|
||||
int i;
|
||||
FreqSelect->clear();
|
||||
|
|
@ -1753,18 +1753,29 @@ void updateSelect() {
|
|||
for (int n = 0; n < numinlist; n++) {
|
||||
memset(szline, 0, sizeof(szline));
|
||||
memset(szatag, 0, sizeof(szatag));
|
||||
for (i = 0; i < ATAGSIZE - 1; i++) {
|
||||
for (i = 0; i < ATAGSIZE; i++) {
|
||||
szatag[i] = oplist[n].alpha_tag[i];
|
||||
if (szatag[i] == 0) szatag[i] = ' ';
|
||||
if (szatag[i] == '\n') szatag[i] = ' ';
|
||||
}
|
||||
bg_clr = (n % 2) ? bg1 : bg2;
|
||||
snprintf(szline, sizeof(szline),
|
||||
"@B%d@r%.3f\t@B%d@r%s\t@B%d@r%s\t@B%d@r%s", bg_clr,
|
||||
oplist[n].freq / 1000.0, bg_clr,
|
||||
selrig->get_bwname_(oplist[n].iBW, oplist[n].imode), bg_clr,
|
||||
selrig->get_modename_(oplist[n].imode), bg_clr,
|
||||
szatag );
|
||||
snprintf(szline, sizeof(szline), "\
|
||||
@F%d@S%d@B%d@r%.3f\t\
|
||||
@F%d@S%d@B%d@.|\t\
|
||||
@F%d@S%d@B%d@r%s\t\
|
||||
@F%d@S%d@B%d@.|\t\
|
||||
@F%d@S%d@B%d@r%s\t\
|
||||
@F%d@S%d@B%d@.|\t\
|
||||
@F%d@S%d@B%d@.%s",
|
||||
progStatus.memfontnbr, progStatus.memfontsize, bg_clr, oplist[n].freq / 1000.0,
|
||||
progStatus.memfontnbr, progStatus.memfontsize, bg_clr,
|
||||
progStatus.memfontnbr, progStatus.memfontsize, bg_clr, selrig->get_bwname_(oplist[n].iBW, oplist[n].imode),
|
||||
progStatus.memfontnbr, progStatus.memfontsize, bg_clr,
|
||||
progStatus.memfontnbr, progStatus.memfontsize, bg_clr, selrig->get_modename_(oplist[n].imode),
|
||||
progStatus.memfontnbr, progStatus.memfontsize, bg_clr,
|
||||
progStatus.memfontnbr, progStatus.memfontsize, bg_clr, szatag );
|
||||
FreqSelect->add (szline);
|
||||
//if (n == 0)
|
||||
//std::cout << szline << std::endl;
|
||||
}
|
||||
inAlphaTag->value("");
|
||||
}
|
||||
|
|
@ -2114,35 +2125,45 @@ void selectFreq() {
|
|||
}
|
||||
}
|
||||
|
||||
#include <FL/names.h>
|
||||
void select_and_close()
|
||||
{
|
||||
switch (Fl::event_button()) {
|
||||
case FL_LEFT_MOUSE:
|
||||
if (FreqSelect->value() > 0)
|
||||
inAlphaTag->value(oplist[FreqSelect->value() - 1].alpha_tag);
|
||||
if (Fl::event_clicks()) { // double click
|
||||
selectFreq();
|
||||
cbCloseMemory();
|
||||
}
|
||||
break;
|
||||
case FL_RIGHT_MOUSE:
|
||||
if (FreqSelect->value() > 0)
|
||||
inAlphaTag->value(oplist[FreqSelect->value() - 1].alpha_tag);
|
||||
selectFreq();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
int key = Fl::event_key();
|
||||
int btn = Fl::event_button();
|
||||
|
||||
if (FreqSelect->value() <= 0) return;
|
||||
|
||||
if ((btn == FL_LEFT_MOUSE && Fl::event_clicks()) ||
|
||||
btn == FL_RIGHT_MOUSE ||
|
||||
key == FL_Enter ||
|
||||
key == FL_Left) {
|
||||
inAlphaTag->value(oplist[FreqSelect->value() - 1].alpha_tag);
|
||||
selectFreq();
|
||||
Fl::focus(FreqSelect);
|
||||
return;
|
||||
}
|
||||
|
||||
// update Alpha Tag field when keyboard scrolling
|
||||
switch (Fl::event_key()) {
|
||||
case FL_Up:
|
||||
case FL_Down:
|
||||
if (FreqSelect->value() > 0)
|
||||
inAlphaTag->value(oplist[FreqSelect->value() - 1].alpha_tag);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
if (btn == FL_LEFT_MOUSE || key == FL_Up || key == FL_Down) {
|
||||
inAlphaTag->value(oplist[FreqSelect->value() - 1].alpha_tag);
|
||||
Fl::focus(FreqSelect);
|
||||
return;
|
||||
}
|
||||
|
||||
if (key == FL_Right) {
|
||||
addFreq();
|
||||
FreqSelect->select(1, 1);
|
||||
inAlphaTag->value(oplist[0].alpha_tag);
|
||||
Fl::focus(FreqSelect);
|
||||
return;
|
||||
}
|
||||
|
||||
if (key == FL_Delete) {
|
||||
long n = FreqSelect->value();
|
||||
delFreq();
|
||||
FreqSelect->select(n, 1);
|
||||
inAlphaTag->value(oplist[n-1].alpha_tag);
|
||||
Fl::focus(FreqSelect);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
63
src/widgets/flbrowser2.cxx
Normal file
63
src/widgets/flbrowser2.cxx
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
// =====================================================================
|
||||
//
|
||||
// flinput2.cxx
|
||||
//
|
||||
// Author: Stelios Buononos, M0GLD
|
||||
// Copyright: 2010
|
||||
//
|
||||
// This file is part of flrig.
|
||||
//
|
||||
// This is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation; either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// This software is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. It is
|
||||
// copyright under the GNU General Public License.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
// =====================================================================
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <cctype>
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#include <FL/Fl.H>
|
||||
#include <FL/Fl_Window.H>
|
||||
#include <FL/Fl_Widget.H>
|
||||
#include <FL/Fl_Input.H>
|
||||
#include <FL/Fl_Menu_Item.H>
|
||||
#include <FL/Fl_Tooltip.H>
|
||||
|
||||
#include "icons.h"
|
||||
#include "flbrowser2.h"
|
||||
#include "gettext.h"
|
||||
#include "util.h"
|
||||
|
||||
#include <FL/names.h>
|
||||
|
||||
Fl_Browser2::Fl_Browser2(int x, int y, int w, int h, const char* l)
|
||||
: Fl_Browser(x, y, w, h, l)
|
||||
{
|
||||
}
|
||||
|
||||
int Fl_Browser2::handle(int event)
|
||||
{
|
||||
int key = Fl::event_key();
|
||||
if (event == FL_KEYUP &&
|
||||
( key == FL_Enter ||
|
||||
key == FL_Left ||
|
||||
key == FL_Right ||
|
||||
key == FL_Delete ) ) {
|
||||
do_callback();
|
||||
return 1;
|
||||
}
|
||||
return Fl_Browser::handle(event);
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue