Freq Control Font

Modified Frequency Control widget to allow selection of font
  Added configuration item and support to allow user to select
  font used for the Frequency Control.
pull/2/head
David Freese 2010-04-24 11:11:36 -05:00
rodzic 5b7e839057
commit 54a056907f
8 zmienionych plików z 107 dodań i 19 usunięć

Wyświetl plik

@ -92,6 +92,23 @@ void cbViewerFontBrowser(Fl_Widget*, void*) {
font_browser->hide();
}
void cbFreqControlFontBrowser(Fl_Widget*, void*) {
Fl_Font fnt = font_browser->fontNumber();
progdefaults.FreqControlFontnbr = fnt;
progdefaults.changed = true;
FDdisplay->labelfont(progdefaults.FreqControlFontnbr);
FDdisplay->redraw();
qsoFreqDisp1->font(progdefaults.FreqControlFontnbr);
qsoFreqDisp2->font(progdefaults.FreqControlFontnbr);
qsoFreqDisp3->font(progdefaults.FreqControlFontnbr);
qsoFreqDisp1->redraw();
qsoFreqDisp2->redraw();
qsoFreqDisp3->redraw();
font_browser->hide();
}
Fl_Double_Window *dlgColorFont=(Fl_Double_Window *)0;
Fl_Button *btnClrFntClose=(Fl_Button *)0;
@ -104,6 +121,18 @@ Fl_Tabs *tabsColors=(Fl_Tabs *)0;
Fl_Box *FDdisplay=(Fl_Box *)0;
Fl_Button *btn_freq_control_font=(Fl_Button *)0;
static void cb_btn_freq_control_font(Fl_Button*, void*) {
font_browser->fontNumber(progdefaults.FreqControlFontnbr);
font_browser->fontSize(14);
font_browser->fontColor(FL_FOREGROUND_COLOR);
font_browser->fontFilter(Font_Browser::FIXED_WIDTH);
font_browser->fontFilter(Font_Browser::ALL_TYPES);
font_browser->callback(cbFreqControlFontBrowser);
font_browser->show();
}
Fl_Button *btnBackgroundColor=(Fl_Button *)0;
static void cb_btnBackgroundColor(Fl_Button*, void*) {
@ -723,21 +752,25 @@ Fl_Double_Window* make_colorsfonts() {
} // Fl_Button* btnClrFntClose
{ tabsColors = new Fl_Tabs(0, 5, 375, 185);
{ Fl_Group* o = new Fl_Group(5, 30, 365, 150, _("Freq Disp"));
{ Fl_Box* o = FDdisplay = new Fl_Box(100, 45, 45, 67, _("8"));
{ Fl_Box* o = FDdisplay = new Fl_Box(65, 43, 235, 45, _("14070.150"));
FDdisplay->box(FL_DOWN_BOX);
FDdisplay->color((Fl_Color)55);
FDdisplay->labelfont(4);
FDdisplay->labelsize(48);
FDdisplay->labelsize(40);
o->color(fl_rgb_color(progdefaults.FDbackground.R,progdefaults.FDbackground.G,progdefaults.FDbackground.B));
o->labelcolor(fl_rgb_color(progdefaults.FDforeground.R,progdefaults.FDforeground.G,progdefaults.FDforeground.B));
o->labelfont(progdefaults.FreqControlFontnbr);
} // Fl_Box* FDdisplay
{ btnBackgroundColor = new Fl_Button(165, 45, 100, 30, _("Background"));
{ btn_freq_control_font = new Fl_Button(144, 96, 87, 24, _("Font"));
btn_freq_control_font->callback((Fl_Callback*)cb_btn_freq_control_font);
} // Fl_Button* btn_freq_control_font
{ btnBackgroundColor = new Fl_Button(35, 131, 87, 24, _("Bg Color"));
btnBackgroundColor->callback((Fl_Callback*)cb_btnBackgroundColor);
} // Fl_Button* btnBackgroundColor
{ btnForegroundColor = new Fl_Button(165, 85, 100, 30, _("Foreground"));
{ btnForegroundColor = new Fl_Button(144, 131, 87, 24, _("Digit Color"));
btnForegroundColor->callback((Fl_Callback*)cb_btnForegroundColor);
} // Fl_Button* btnForegroundColor
{ btnFD_SystemColor = new Fl_Button(165, 125, 100, 30, _("System"));
{ btnFD_SystemColor = new Fl_Button(259, 131, 87, 24, _("Sys Colors"));
btnFD_SystemColor->callback((Fl_Callback*)cb_btnFD_SystemColor);
} // Fl_Button* btnFD_SystemColor
o->end();

Wyświetl plik

@ -114,11 +114,29 @@ Function {cbViewerFontBrowser(Fl_Widget*, void*)} {open return_type void
font_browser->hide();} {}
}
Function {cbFreqControlFontBrowser(Fl_Widget*, void*)} {open return_type void
} {
code {Fl_Font fnt = font_browser->fontNumber();
progdefaults.FreqControlFontnbr = fnt;
progdefaults.changed = true;
FDdisplay->labelfont(progdefaults.FreqControlFontnbr);
FDdisplay->redraw();
qsoFreqDisp1->font(progdefaults.FreqControlFontnbr);
qsoFreqDisp2->font(progdefaults.FreqControlFontnbr);
qsoFreqDisp3->font(progdefaults.FreqControlFontnbr);
qsoFreqDisp1->redraw();
qsoFreqDisp2->redraw();
qsoFreqDisp3->redraw();
font_browser->hide();} {}
}
Function {make_colorsfonts()} {open
} {
code {font_browser = new Font_Browser;} {}
Fl_Window dlgColorFont {
label {Colors and Fonts} open selected
label {Colors and Fonts} open
xywh {496 125 375 220} type Double
code0 {dlgColorFont->xclass(PACKAGE_TARNAME);} visible
} {
@ -135,13 +153,25 @@ Function {make_colorsfonts()} {open
xywh {5 30 365 150}
} {
Fl_Box FDdisplay {
label 8
xywh {100 45 45 67} box DOWN_BOX color 55 labelfont 4 labelsize 48
label {14070.150} selected
xywh {65 43 235 45} box DOWN_BOX color 55 labelfont 4 labelsize 40
code0 {o->color(fl_rgb_color(progdefaults.FDbackground.R,progdefaults.FDbackground.G,progdefaults.FDbackground.B));}
code1 {o->labelcolor(fl_rgb_color(progdefaults.FDforeground.R,progdefaults.FDforeground.G,progdefaults.FDforeground.B));}
code2 {o->labelfont(progdefaults.FreqControlFontnbr);}
}
Fl_Button btn_freq_control_font {
label Font
callback {font_browser->fontNumber(progdefaults.FreqControlFontnbr);
font_browser->fontSize(14);
font_browser->fontColor(FL_FOREGROUND_COLOR);
font_browser->fontFilter(Font_Browser::FIXED_WIDTH);
font_browser->fontFilter(Font_Browser::ALL_TYPES);
font_browser->callback(cbFreqControlFontBrowser);
font_browser->show();}
xywh {144 96 87 24}
}
Fl_Button btnBackgroundColor {
label Background
label {Bg Color}
callback {uchar r, g, b;
r = progdefaults.FDbackground.R;
g = progdefaults.FDbackground.G;
@ -169,10 +199,10 @@ Function {make_colorsfonts()} {open
}
progdefaults.changed = true;}
xywh {165 45 100 30}
xywh {35 131 87 24}
}
Fl_Button btnForegroundColor {
label Foreground
label {Digit Color}
callback {uchar r, g, b;
r = progdefaults.FDforeground.R;
g = progdefaults.FDforeground.G;
@ -200,10 +230,10 @@ Function {make_colorsfonts()} {open
}
progdefaults.changed = true;}
xywh {165 85 100 30}
xywh {144 131 87 24}
}
Fl_Button btnFD_SystemColor {
label System
label {Sys Colors}
callback {uchar r, g, b;
Fl_Color clr = FL_BACKGROUND2_COLOR;
@ -237,7 +267,7 @@ Function {make_colorsfonts()} {open
}
progdefaults.changed = true;}
xywh {165 125 100 30}
xywh {259 131 87 24}
}
}
Fl_Group {} {

Wyświetl plik

@ -3067,7 +3067,7 @@ void create_fl_digi_main_primary() {
qsoFreqDisp1->color(FL_BACKGROUND_COLOR);
qsoFreqDisp1->selection_color(FL_BACKGROUND_COLOR);
qsoFreqDisp1->labeltype(FL_NORMAL_LABEL);
qsoFreqDisp1->labelfont(0);
qsoFreqDisp1->font(progdefaults.FreqControlFontnbr);
qsoFreqDisp1->labelsize(12);
qsoFreqDisp1->labelcolor(FL_FOREGROUND_COLOR);
qsoFreqDisp1->align(FL_ALIGN_CENTER);
@ -3373,6 +3373,7 @@ void create_fl_digi_main_primary() {
qsoFreqDisp2->align(FL_ALIGN_CENTER);
qsoFreqDisp2->when(FL_WHEN_RELEASE);
qsoFreqDisp2->callback(qso_movFreq);
qsoFreqDisp2->font(progdefaults.FreqControlFontnbr);
qsoFreqDisp2->SetONOFFCOLOR(
fl_rgb_color( progdefaults.FDforeground.R,
progdefaults.FDforeground.G,
@ -3484,6 +3485,7 @@ void create_fl_digi_main_primary() {
qsoFreqDisp3->align(FL_ALIGN_CENTER);
qsoFreqDisp3->when(FL_WHEN_RELEASE);
qsoFreqDisp3->callback(qso_movFreq);
qsoFreqDisp3->font(progdefaults.FreqControlFontnbr);
qsoFreqDisp3->SetONOFFCOLOR(
fl_rgb_color( progdefaults.FDforeground.R,
progdefaults.FDforeground.G,

Wyświetl plik

@ -55,6 +55,7 @@ public:
void updatevalue();
void value(long lv);
long value(){return val;};
void font(Fl_Font n);
void SetONCOLOR (uchar r, uchar g, uchar b);
void SetOFFCOLOR (uchar r, uchar g, uchar b);
void GetONCOLOR (uchar &r, uchar &g, uchar &b) {
@ -73,6 +74,7 @@ private:
static const char *Label[];
int mult[MAX_DIGITS];
Fl_Box *decbx;
Fl_Font font_number;
Fl_Color OFFCOLOR;
Fl_Color ONCOLOR;
Fl_Color SELCOLOR;

Wyświetl plik

@ -7,6 +7,7 @@
void selectColorsFonts();
void cbWaterfallFontBrowser(Fl_Widget*, void*);
void cbViewerFontBrowser(Fl_Widget*, void*);
void cbFreqControlFontBrowser(Fl_Widget*, void*);
#include <FL/Fl_Double_Window.H>
extern Fl_Double_Window *dlgColorFont;
#include <FL/Fl_Button.H>
@ -16,6 +17,7 @@ extern Fl_Tabs *tabsColors;
#include <FL/Fl_Group.H>
#include <FL/Fl_Box.H>
extern Fl_Box *FDdisplay;
extern Fl_Button *btn_freq_control_font;
extern Fl_Button *btnBackgroundColor;
extern Fl_Button *btnForegroundColor;
extern Fl_Button *btnFD_SystemColor;

Wyświetl plik

@ -992,6 +992,12 @@
ELEM_(int, WaterfallFontsize, "WATERFALLFONTSIZE", \
"Waterfall font size", \
12) \
ELEM_(std::string, FreqControlFontName, "FREQCONTROLFONTNAME", \
"Frequency Control font name", \
"") \
ELEM_(Fl_Font, FreqControlFontnbr, "FREQCONTROLFONTNBR", \
"Frequency Control font number", \
FL_COURIER) \
ELEM_(std::string, ui_scheme, "UISCHEME", \
"FLTK UI scheme (none or base, gtk+, plastic)", \
"gtk+") \

Wyświetl plik

@ -449,6 +449,7 @@ void configuration::saveDefaults()
TxFontName = Fl::get_font_name(TxFontnbr);
WaterfallFontName = Fl::get_font_name(WaterfallFontnbr);
ViewerFontName = Fl::get_font_name(ViewerFontnbr);
FreqControlFontName = Fl::get_font_name(FreqControlFontnbr);
writeDefaultsXML();
changed = false;
@ -983,5 +984,7 @@ void configuration::initFonts(void)
WaterfallFontnbr = font_number(WaterfallFontName.c_str());
if (!ViewerFontName.empty())
ViewerFontnbr = font_number(ViewerFontName.c_str());
if (!FreqControlFontName.empty())
FreqControlFontnbr = font_number(FreqControlFontName.c_str());
}

Wyświetl plik

@ -79,6 +79,7 @@ void cbSelectDigit (Fl_Widget *btn, void * nbr)
cFreqControl::cFreqControl(int x, int y, int w, int h, const char *lbl):
Fl_Group(x,y,w,h,"") {
font_number = FL_COURIER;
ONCOLOR = FL_YELLOW;
OFFCOLOR = FL_BLACK;
SELCOLOR = fl_rgb_color(100, 100, 100);
@ -106,20 +107,20 @@ cFreqControl::cFreqControl(int x, int y, int w, int h, const char *lbl):
fcHeight-4,
" ");
Digit[n]->box(FL_FLAT_BOX);
Digit[n]->labelfont(FL_COURIER);
Digit[n]->labelfont(font_number);
Digit[n]->labelcolor(ONCOLOR);
Digit[n]->color(OFFCOLOR, SELCOLOR);
Digit[n]->labelsize(fcHeight);
Digit[n]->labelsize(fcHeight-4);
Digit[n]->callback(cbSelectDigit, (void *) n);
mult[n] = max;
max *= 10;
}
decbx = new Fl_Box(fcFirst + (nD - 3) * fcWidth + 2, fcTop + 2, pw, fcHeight-4,".");
decbx->box(FL_FLAT_BOX);
decbx->labelfont(FL_COURIER);
decbx->labelfont(font_number);
decbx->labelcolor(ONCOLOR);
decbx->color(OFFCOLOR);
decbx->labelsize(fcHeight);
decbx->labelsize(fcHeight-4);
cbFunc = NULL;
maxVal = max * 10 - 1;
@ -202,6 +203,15 @@ void cFreqControl::SetOFFCOLOR (uchar r, uchar g, uchar b)
damage();
}
void cFreqControl::font(Fl_Font fnt)
{
font_number = fnt;
for (int n = 0; n < nD; n++)
Digit[n]->labelfont(fnt);
decbx->labelfont(fnt);
damage();
}
static void blink_point(Fl_Widget* w)
{
w->label(*w->label() ? "" : ".");