kopia lustrzana https://github.com/jamescoxon/dl-fldigi
				
				
				
			Add font browser filter
* Add font browser filter method to show only variable or fixed width
    fonts
  * Display simple progress dialog when caching font types
  * Create a global font browser and remove static variables from
    various callbacks
			
			
				pull/2/head
			
			
		
							rodzic
							
								
									bdcca8c39f
								
							
						
					
					
						commit
						5a1cf7dd84
					
				| 
						 | 
				
			
			@ -25,11 +25,10 @@ static void adjust_label(Fl_Widget* w) {
 | 
			
		|||
  w->labelcolor(fl_contrast(w->labelcolor(), w->color()));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void cbRxFontBrowser(Fl_Widget* w, void* arg) {
 | 
			
		||||
  Font_Browser *fb= (Font_Browser*)w;
 | 
			
		||||
    Fl_Font font = fb->fontNumber();
 | 
			
		||||
    int size = fb->fontSize();
 | 
			
		||||
    Fl_Color color = fb->fontColor();
 | 
			
		||||
static void cbRxFontBrowser(Fl_Widget*, void*) {
 | 
			
		||||
  Fl_Font font = font_browser->fontNumber();
 | 
			
		||||
    int size = font_browser->fontSize();
 | 
			
		||||
    Fl_Color color = font_browser->fontColor();
 | 
			
		||||
 | 
			
		||||
    RxText->textfont(font);
 | 
			
		||||
    RxText->textsize(size);
 | 
			
		||||
| 
						 | 
				
			
			@ -44,16 +43,15 @@ static void cbRxFontBrowser(Fl_Widget* w, void* arg) {
 | 
			
		|||
    ReceiveText->setFontSize(size);
 | 
			
		||||
    ReceiveText->setFontColor(progdefaults.RxFontcolor, FTextBase::RECV);
 | 
			
		||||
 | 
			
		||||
    fb->hide();
 | 
			
		||||
    font_browser->hide();
 | 
			
		||||
 | 
			
		||||
    progdefaults.changed = true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void cbTxFontBrowser(Fl_Widget* w, void* arg) {
 | 
			
		||||
  Font_Browser *fb= (Font_Browser*)w;
 | 
			
		||||
    Fl_Font font = fb->fontNumber();
 | 
			
		||||
    int size = fb->fontSize();
 | 
			
		||||
    Fl_Color color = fb->fontColor();
 | 
			
		||||
static void cbTxFontBrowser(Fl_Widget*, void*) {
 | 
			
		||||
  Fl_Font font = font_browser->fontNumber();
 | 
			
		||||
    int size = font_browser->fontSize();
 | 
			
		||||
    Fl_Color color = font_browser->fontColor();
 | 
			
		||||
 | 
			
		||||
    TxText->textfont(font);
 | 
			
		||||
    TxText->textsize(size);
 | 
			
		||||
| 
						 | 
				
			
			@ -68,21 +66,20 @@ static void cbTxFontBrowser(Fl_Widget* w, void* arg) {
 | 
			
		|||
    TransmitText->setFontSize(size);
 | 
			
		||||
    TransmitText->setFontColor(progdefaults.TxFontcolor, FTextBase::RECV);
 | 
			
		||||
 | 
			
		||||
    fb->hide();
 | 
			
		||||
    font_browser->hide();
 | 
			
		||||
 | 
			
		||||
    progdefaults.changed = true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void cbWaterfallFontBrowser(Font_Browser*, void* v) {
 | 
			
		||||
  Font_Browser *ft= (Font_Browser*)v;
 | 
			
		||||
    Fl_Font fnt = ft->fontNumber();
 | 
			
		||||
    int size = ft->fontSize();
 | 
			
		||||
void cbWaterfallFontBrowser(Fl_Widget*, void*) {
 | 
			
		||||
  Fl_Font fnt = font_browser->fontNumber();
 | 
			
		||||
    int size = font_browser->fontSize();
 | 
			
		||||
 | 
			
		||||
    progdefaults.WaterfallFontnbr = fnt;
 | 
			
		||||
    progdefaults.WaterfallFontsize = size;
 | 
			
		||||
    progdefaults.changed = true;
 | 
			
		||||
 | 
			
		||||
    ft->hide();
 | 
			
		||||
    font_browser->hide();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Fl_Double_Window *dlgColorFont=(Fl_Double_Window *)0;
 | 
			
		||||
| 
						 | 
				
			
			@ -390,29 +387,23 @@ Fl_Input *TxText=(Fl_Input *)0;
 | 
			
		|||
Fl_Button *btnRxFont=(Fl_Button *)0;
 | 
			
		||||
 | 
			
		||||
static void cb_btnRxFont(Fl_Button*, void*) {
 | 
			
		||||
  static Font_Browser* b = 0;
 | 
			
		||||
if (!b) {
 | 
			
		||||
    b = new Font_Browser;
 | 
			
		||||
    b->fontNumber(progdefaults.RxFontnbr);
 | 
			
		||||
    b->fontSize(progdefaults.RxFontsize);
 | 
			
		||||
    b->fontColor(progdefaults.RxFontcolor);
 | 
			
		||||
    b->callback(cbRxFontBrowser);
 | 
			
		||||
}
 | 
			
		||||
b->show();
 | 
			
		||||
  font_browser->fontNumber(progdefaults.RxFontnbr);
 | 
			
		||||
    font_browser->fontSize(progdefaults.RxFontsize);
 | 
			
		||||
    font_browser->fontColor(progdefaults.RxFontcolor);
 | 
			
		||||
    font_browser->fontFilter(Font_Browser::ALL_TYPES);
 | 
			
		||||
    font_browser->callback(cbRxFontBrowser);
 | 
			
		||||
font_browser->show();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Fl_Button *btnTxFont=(Fl_Button *)0;
 | 
			
		||||
 | 
			
		||||
static void cb_btnTxFont(Fl_Button*, void*) {
 | 
			
		||||
  static Font_Browser* b = 0;
 | 
			
		||||
    if (!b) {
 | 
			
		||||
        b = new Font_Browser;
 | 
			
		||||
        b->fontNumber(progdefaults.TxFontnbr);
 | 
			
		||||
        b->fontSize(progdefaults.TxFontsize);
 | 
			
		||||
        b->fontColor(progdefaults.TxFontcolor);
 | 
			
		||||
        b->callback(cbTxFontBrowser);
 | 
			
		||||
    }
 | 
			
		||||
    b->show();
 | 
			
		||||
  font_browser->fontNumber(progdefaults.TxFontnbr);
 | 
			
		||||
    font_browser->fontSize(progdefaults.TxFontsize);
 | 
			
		||||
    font_browser->fontColor(progdefaults.TxFontcolor);
 | 
			
		||||
    font_browser->fontFilter(Font_Browser::ALL_TYPES);
 | 
			
		||||
    font_browser->callback(cbTxFontBrowser);
 | 
			
		||||
    font_browser->show();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Fl_Button *btnXMIT=(Fl_Button *)0;
 | 
			
		||||
| 
						 | 
				
			
			@ -715,6 +706,7 @@ Fl_Box *sql1color=(Fl_Box *)0;
 | 
			
		|||
Fl_Box *sql2color=(Fl_Box *)0;
 | 
			
		||||
 | 
			
		||||
Fl_Double_Window* make_colorsfonts() {
 | 
			
		||||
  font_browser = new Font_Browser;
 | 
			
		||||
  { dlgColorFont = new Fl_Double_Window(375, 220, _("Colors and Fonts"));
 | 
			
		||||
    { btnClrFntClose = new Fl_Button(296, 190, 75, 25, _("Close"));
 | 
			
		||||
      btnClrFntClose->callback((Fl_Callback*)cb_btnClrFntClose);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -41,12 +41,11 @@ Function {adjust_label(Fl_Widget* w)} {open private return_type void
 | 
			
		|||
  code {w->labelcolor(fl_contrast(w->labelcolor(), w->color()));} {}
 | 
			
		||||
} 
 | 
			
		||||
 | 
			
		||||
Function {cbRxFontBrowser(Fl_Widget* w, void* arg)} {open private return_type void
 | 
			
		||||
Function {cbRxFontBrowser(Fl_Widget*, void*)} {open private return_type void
 | 
			
		||||
} {
 | 
			
		||||
  code {Font_Browser *fb= (Font_Browser*)w;
 | 
			
		||||
    Fl_Font font = fb->fontNumber();
 | 
			
		||||
    int size = fb->fontSize();
 | 
			
		||||
    Fl_Color color = fb->fontColor();
 | 
			
		||||
  code {Fl_Font font = font_browser->fontNumber();
 | 
			
		||||
    int size = font_browser->fontSize();
 | 
			
		||||
    Fl_Color color = font_browser->fontColor();
 | 
			
		||||
 | 
			
		||||
    RxText->textfont(font);
 | 
			
		||||
    RxText->textsize(size);
 | 
			
		||||
| 
						 | 
				
			
			@ -61,17 +60,16 @@ Function {cbRxFontBrowser(Fl_Widget* w, void* arg)} {open private return_type vo
 | 
			
		|||
    ReceiveText->setFontSize(size);
 | 
			
		||||
    ReceiveText->setFontColor(progdefaults.RxFontcolor, FTextBase::RECV);
 | 
			
		||||
 | 
			
		||||
    fb->hide();
 | 
			
		||||
    font_browser->hide();
 | 
			
		||||
 | 
			
		||||
    progdefaults.changed = true;} {}
 | 
			
		||||
} 
 | 
			
		||||
 | 
			
		||||
Function {cbTxFontBrowser(Fl_Widget* w, void* arg)} {open private return_type void
 | 
			
		||||
Function {cbTxFontBrowser(Fl_Widget*, void*)} {open private return_type void
 | 
			
		||||
} {
 | 
			
		||||
  code {Font_Browser *fb= (Font_Browser*)w;
 | 
			
		||||
    Fl_Font font = fb->fontNumber();
 | 
			
		||||
    int size = fb->fontSize();
 | 
			
		||||
    Fl_Color color = fb->fontColor();
 | 
			
		||||
  code {Fl_Font font = font_browser->fontNumber();
 | 
			
		||||
    int size = font_browser->fontSize();
 | 
			
		||||
    Fl_Color color = font_browser->fontColor();
 | 
			
		||||
 | 
			
		||||
    TxText->textfont(font);
 | 
			
		||||
    TxText->textsize(size);
 | 
			
		||||
| 
						 | 
				
			
			@ -86,29 +84,29 @@ Function {cbTxFontBrowser(Fl_Widget* w, void* arg)} {open private return_type vo
 | 
			
		|||
    TransmitText->setFontSize(size);
 | 
			
		||||
    TransmitText->setFontColor(progdefaults.TxFontcolor, FTextBase::RECV);
 | 
			
		||||
 | 
			
		||||
    fb->hide();
 | 
			
		||||
    font_browser->hide();
 | 
			
		||||
 | 
			
		||||
    progdefaults.changed = true;} {}
 | 
			
		||||
} 
 | 
			
		||||
 | 
			
		||||
Function {cbWaterfallFontBrowser(Font_Browser*, void* v)} {open return_type void
 | 
			
		||||
Function {cbWaterfallFontBrowser(Fl_Widget*, void*)} {open return_type void
 | 
			
		||||
} {
 | 
			
		||||
  code {Font_Browser *ft= (Font_Browser*)v;
 | 
			
		||||
    Fl_Font fnt = ft->fontNumber();
 | 
			
		||||
    int size = ft->fontSize();
 | 
			
		||||
  code {Fl_Font fnt = font_browser->fontNumber();
 | 
			
		||||
    int size = font_browser->fontSize();
 | 
			
		||||
 | 
			
		||||
    progdefaults.WaterfallFontnbr = fnt;
 | 
			
		||||
    progdefaults.WaterfallFontsize = size;
 | 
			
		||||
    progdefaults.changed = true;
 | 
			
		||||
 | 
			
		||||
    ft->hide();} {}
 | 
			
		||||
    font_browser->hide();} {}
 | 
			
		||||
} 
 | 
			
		||||
 | 
			
		||||
Function {make_colorsfonts()} {open
 | 
			
		||||
} {
 | 
			
		||||
  code {font_browser = new Font_Browser;} {}
 | 
			
		||||
  Fl_Window dlgColorFont {
 | 
			
		||||
    label {Colors and Fonts} open
 | 
			
		||||
    xywh {496 117 375 220} type Double
 | 
			
		||||
    label {Colors and Fonts} open selected
 | 
			
		||||
    xywh {496 125 375 220} type Double
 | 
			
		||||
    code0 {dlgColorFont->xclass(PACKAGE_TARNAME);} visible
 | 
			
		||||
  } {
 | 
			
		||||
    Fl_Button btnClrFntClose {
 | 
			
		||||
| 
						 | 
				
			
			@ -120,7 +118,7 @@ Function {make_colorsfonts()} {open
 | 
			
		|||
      xywh {0 5 375 185}
 | 
			
		||||
    } {
 | 
			
		||||
      Fl_Group {} {
 | 
			
		||||
        label {Freq Disp} open selected
 | 
			
		||||
        label {Freq Disp} open
 | 
			
		||||
        xywh {5 30 365 150}
 | 
			
		||||
      } {
 | 
			
		||||
        Fl_Box FDdisplay {
 | 
			
		||||
| 
						 | 
				
			
			@ -439,28 +437,22 @@ progdefaults.changed = true;}
 | 
			
		|||
        }
 | 
			
		||||
        Fl_Button btnRxFont {
 | 
			
		||||
          label {Rx font}
 | 
			
		||||
          callback {static Font_Browser* b = 0;
 | 
			
		||||
if (!b) {
 | 
			
		||||
    b = new Font_Browser;
 | 
			
		||||
    b->fontNumber(progdefaults.RxFontnbr);
 | 
			
		||||
    b->fontSize(progdefaults.RxFontsize);
 | 
			
		||||
    b->fontColor(progdefaults.RxFontcolor);
 | 
			
		||||
    b->callback(cbRxFontBrowser);
 | 
			
		||||
}
 | 
			
		||||
b->show();}
 | 
			
		||||
          callback {font_browser->fontNumber(progdefaults.RxFontnbr);
 | 
			
		||||
    font_browser->fontSize(progdefaults.RxFontsize);
 | 
			
		||||
    font_browser->fontColor(progdefaults.RxFontcolor);
 | 
			
		||||
    font_browser->fontFilter(Font_Browser::ALL_TYPES);
 | 
			
		||||
    font_browser->callback(cbRxFontBrowser);
 | 
			
		||||
font_browser->show();}
 | 
			
		||||
          xywh {275 50 75 20}
 | 
			
		||||
        }
 | 
			
		||||
        Fl_Button btnTxFont {
 | 
			
		||||
          label {Tx font}
 | 
			
		||||
          callback {static Font_Browser* b = 0;
 | 
			
		||||
    if (!b) {
 | 
			
		||||
        b = new Font_Browser;
 | 
			
		||||
        b->fontNumber(progdefaults.TxFontnbr);
 | 
			
		||||
        b->fontSize(progdefaults.TxFontsize);
 | 
			
		||||
        b->fontColor(progdefaults.TxFontcolor);
 | 
			
		||||
        b->callback(cbTxFontBrowser);
 | 
			
		||||
    }
 | 
			
		||||
    b->show();}
 | 
			
		||||
          callback {font_browser->fontNumber(progdefaults.TxFontnbr);
 | 
			
		||||
    font_browser->fontSize(progdefaults.TxFontsize);
 | 
			
		||||
    font_browser->fontColor(progdefaults.TxFontcolor);
 | 
			
		||||
    font_browser->fontFilter(Font_Browser::ALL_TYPES);
 | 
			
		||||
    font_browser->callback(cbTxFontBrowser);
 | 
			
		||||
    font_browser->show();}
 | 
			
		||||
          xywh {275 90 75 20}
 | 
			
		||||
        }
 | 
			
		||||
        Fl_Button btnXMIT {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -598,14 +598,12 @@ progdefaults.changed = true;
 | 
			
		|||
Fl_Button *btnWaterfallFont=(Fl_Button *)0;
 | 
			
		||||
 | 
			
		||||
static void cb_btnWaterfallFont(Fl_Button*, void*) {
 | 
			
		||||
  static Font_Browser *b = (Font_Browser *)0;
 | 
			
		||||
if (!b) {
 | 
			
		||||
b = new Font_Browser;
 | 
			
		||||
b->fontNumber(progdefaults.WaterfallFontnbr);
 | 
			
		||||
b->fontSize(progdefaults.WaterfallFontsize);
 | 
			
		||||
}
 | 
			
		||||
b->callback((Fl_Callback*)cbWaterfallFontBrowser, (void*)(b));
 | 
			
		||||
b->show();
 | 
			
		||||
  font_browser->fontNumber(progdefaults.WaterfallFontnbr);
 | 
			
		||||
font_browser->fontSize(progdefaults.WaterfallFontsize);
 | 
			
		||||
font_browser->fontColor(FL_FOREGROUND_COLOR);
 | 
			
		||||
font_browser->fontFilter(Font_Browser::ALL_TYPES);
 | 
			
		||||
font_browser->callback((Fl_Callback*)cbWaterfallFontBrowser);
 | 
			
		||||
font_browser->show();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Fl_Check_Button *btnViewXmtSignal=(Fl_Check_Button *)0;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -754,14 +754,12 @@ progdefaults.changed = true;}
 | 
			
		|||
              }
 | 
			
		||||
              Fl_Button btnWaterfallFont {
 | 
			
		||||
                label {Font...}
 | 
			
		||||
                callback {static Font_Browser *b = (Font_Browser *)0;
 | 
			
		||||
if (!b) {
 | 
			
		||||
b = new Font_Browser;
 | 
			
		||||
b->fontNumber(progdefaults.WaterfallFontnbr);
 | 
			
		||||
b->fontSize(progdefaults.WaterfallFontsize);
 | 
			
		||||
}
 | 
			
		||||
b->callback((Fl_Callback*)cbWaterfallFontBrowser, (void*)(b));
 | 
			
		||||
b->show();}
 | 
			
		||||
                callback {font_browser->fontNumber(progdefaults.WaterfallFontnbr);
 | 
			
		||||
font_browser->fontSize(progdefaults.WaterfallFontsize);
 | 
			
		||||
font_browser->fontColor(FL_FOREGROUND_COLOR);
 | 
			
		||||
font_browser->fontFilter(Font_Browser::ALL_TYPES);
 | 
			
		||||
font_browser->callback((Fl_Callback*)cbWaterfallFontBrowser);
 | 
			
		||||
font_browser->show();}
 | 
			
		||||
                tooltip {Select waterfall scale font} xywh {314 252 70 24}
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -40,6 +40,8 @@
 | 
			
		|||
 | 
			
		||||
using namespace std;
 | 
			
		||||
 | 
			
		||||
Font_Browser* font_browser;
 | 
			
		||||
 | 
			
		||||
// Font Color selected
 | 
			
		||||
 | 
			
		||||
void Font_Browser::ColorSelect()
 | 
			
		||||
| 
						 | 
				
			
			@ -172,11 +174,12 @@ Font_Browser::Font_Browser(int x, int y, int w, int h, const char *lbl )
 | 
			
		|||
    fontnbr = FL_HELVETICA;;
 | 
			
		||||
    fontsize = FL_NORMAL_SIZE; // Font Size to be used
 | 
			
		||||
    fontcolor = FL_FOREGROUND_COLOR;
 | 
			
		||||
    filter = ALL_TYPES;
 | 
			
		||||
 | 
			
		||||
    lst_Font->value(1);
 | 
			
		||||
    FontNameSelect();
 | 
			
		||||
 | 
			
		||||
    Fl::focus(lst_Font);
 | 
			
		||||
//!    Fl::focus(lst_Font);
 | 
			
		||||
 | 
			
		||||
    xclass(PACKAGE_NAME);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -232,6 +235,86 @@ bool Font_Browser::fixed_width(Fl_Font f)
 | 
			
		|||
	return fl_width('X') == fl_width('i');
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#include <vector>
 | 
			
		||||
#include <FL/Fl_Double_Window.H>
 | 
			
		||||
#include <FL/Fl_Progress.H>
 | 
			
		||||
 | 
			
		||||
class Progress_Window : public Fl_Double_Window
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
	Progress_Window(float min = 0.0f, float max = 100.0f, const char* l = 0)
 | 
			
		||||
		: Fl_Double_Window(200, 34), ps(5, 5, 190, 24, l)
 | 
			
		||||
	{
 | 
			
		||||
		end();
 | 
			
		||||
 | 
			
		||||
		range(min, max);
 | 
			
		||||
		ps.align(FL_ALIGN_CENTER | FL_ALIGN_INSIDE);
 | 
			
		||||
		ps.selection_color(FL_SELECTION_COLOR);
 | 
			
		||||
		set_modal();
 | 
			
		||||
		callback(nop);
 | 
			
		||||
 | 
			
		||||
		if (l && *l) {
 | 
			
		||||
			fl_font(FL_HELVETICA, FL_NORMAL_SIZE);
 | 
			
		||||
			int s = (int)(fl_width(l) + fl_width('W'));
 | 
			
		||||
			if (s > ps.w()) {
 | 
			
		||||
				ps.size(s, ps.h());
 | 
			
		||||
				size(ps.w() + 10, h());
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		position(Fl::event_x_root() - w() / 2, Fl::event_y_root() - h());
 | 
			
		||||
 | 
			
		||||
		xclass(PACKAGE_TARNAME);
 | 
			
		||||
		show();
 | 
			
		||||
	}
 | 
			
		||||
	void range(float min, float max) { ps.minimum(min); ps.maximum(max); }
 | 
			
		||||
	void value(float val) { ps.value(val); }
 | 
			
		||||
	static void nop(Fl_Widget*, void*) { }
 | 
			
		||||
private:
 | 
			
		||||
	Fl_Progress ps;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
void Font_Browser::fontFilter(filter_t filter)
 | 
			
		||||
{
 | 
			
		||||
	if (this->filter == filter)
 | 
			
		||||
		return;
 | 
			
		||||
 | 
			
		||||
	int s = lst_Font->size();
 | 
			
		||||
 | 
			
		||||
	static vector<bool> fixed;
 | 
			
		||||
	if (fixed.empty()) {
 | 
			
		||||
		Progress_Window pw(1, s, _("Reading fonts..."));
 | 
			
		||||
		fixed.resize(s);
 | 
			
		||||
		for (int i = 1; i < s; i++) {
 | 
			
		||||
			fixed[i] = fixed_width((Fl_Font)(intptr_t)(lst_Font->data(i)));
 | 
			
		||||
			pw.value(i);
 | 
			
		||||
			Fl::check();
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	switch (this->filter = filter) {
 | 
			
		||||
	case FIXED_WIDTH:
 | 
			
		||||
		for (int i = 1; i < s; i++) {
 | 
			
		||||
			if (fixed[i])
 | 
			
		||||
				lst_Font->show(i);
 | 
			
		||||
			else
 | 
			
		||||
				lst_Font->hide(i);
 | 
			
		||||
		}
 | 
			
		||||
		break;
 | 
			
		||||
	case VARIABLE_WIDTH:
 | 
			
		||||
		for (int i = 1; i < s; i++) {
 | 
			
		||||
			if (!fixed[i])
 | 
			
		||||
				lst_Font->show(i);
 | 
			
		||||
			else
 | 
			
		||||
				lst_Font->hide(i);
 | 
			
		||||
		}
 | 
			
		||||
		break;
 | 
			
		||||
	case ALL_TYPES:
 | 
			
		||||
		for (int i = 1; i < s; i++)
 | 
			
		||||
			lst_Font->show(i);
 | 
			
		||||
		break;
 | 
			
		||||
	}
 | 
			
		||||
	lst_Font->topline(lst_Font->value());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//////////////////////////////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,7 +5,7 @@
 | 
			
		|||
#include <FL/Fl.H>
 | 
			
		||||
#include "font_browser.h"
 | 
			
		||||
void selectColorsFonts();
 | 
			
		||||
void cbWaterfallFontBrowser(Font_Browser*, void* v);
 | 
			
		||||
void cbWaterfallFontBrowser(Fl_Widget*, void*);
 | 
			
		||||
#include <FL/Fl_Double_Window.H>
 | 
			
		||||
extern Fl_Double_Window *dlgColorFont;
 | 
			
		||||
#include <FL/Fl_Button.H>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -51,11 +51,15 @@ public:
 | 
			
		|||
// Font browser widget
 | 
			
		||||
class Font_Browser : public Fl_Window
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
    enum filter_t { FIXED_WIDTH, VARIABLE_WIDTH, ALL_TYPES };
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    int		numfonts;
 | 
			
		||||
    Fl_Font	fontnbr;
 | 
			
		||||
    int		fontsize;
 | 
			
		||||
    Fl_Color fontcolor;
 | 
			
		||||
    Fl_Color	fontcolor;
 | 
			
		||||
    filter_t	filter;
 | 
			
		||||
    void	*data_;
 | 
			
		||||
 | 
			
		||||
    Fl_Browser	*lst_Font;
 | 
			
		||||
| 
						 | 
				
			
			@ -88,6 +92,9 @@ public:
 | 
			
		|||
    void fontName(const char* n);
 | 
			
		||||
 | 
			
		||||
    static bool fixed_width(Fl_Font f);
 | 
			
		||||
    void fontFilter(filter_t filter);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
extern Font_Browser* font_browser;
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Ładowanie…
	
		Reference in New Issue