diff options
| author | Albrecht Schlosser <albrechts.fltk@online.de> | 2022-11-26 19:54:48 +0100 |
|---|---|---|
| committer | Albrecht Schlosser <albrechts.fltk@online.de> | 2022-11-26 19:56:32 +0100 |
| commit | 191aeefc4a4161cb132065625a5e5eacb567688a (patch) | |
| tree | afd766491b2748f6c15d8d4751f156a96038f92e /FL | |
| parent | e1a781717e5f8ef4f2772c5a1b36db8f0244e806 (diff) | |
Make the value box size of Fl_Value_Slider user settable (STR 3222)
For a very simple test program see STR 3222, File 2:
https://www.fltk.org/strfiles/3222/value_slider.cxx
Known issues:
- range checking of the value box size is very limited
- resizing the widget does not change the value box size
- drawing issues are possible if the value box size and the widget
size are not compatible (e.g. value box too large)
Diffstat (limited to 'FL')
| -rw-r--r-- | FL/Fl_Value_Slider.H | 109 |
1 files changed, 88 insertions, 21 deletions
diff --git a/FL/Fl_Value_Slider.H b/FL/Fl_Value_Slider.H index 53d264de7..e49b046a1 100644 --- a/FL/Fl_Value_Slider.H +++ b/FL/Fl_Value_Slider.H @@ -1,5 +1,5 @@ // -// Value slider header file for the Fast Light Tool Kit (FLTK). +// Value Slider header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2022 by Bill Spitzak and others. // @@ -25,30 +25,97 @@ /** The Fl_Value_Slider widget is a Fl_Slider widget with a box displaying the current value. - \image html value_slider.png - \image latex value_slider.png "Fl_Value_Slider" width=4cm + \image html value_slider.png + \image latex value_slider.png "Fl_Value_Slider" width=4cm */ class FL_EXPORT Fl_Value_Slider : public Fl_Slider { - Fl_Font textfont_; - Fl_Fontsize textsize_; - Fl_Color textcolor_; + Fl_Font textfont_; + Fl_Fontsize textsize_; + Fl_Color textcolor_; + short value_width_; + short value_height_; + protected: - void draw(); + void draw(); + public: - int handle(int); - Fl_Value_Slider(int x,int y,int w,int h, const char *l = 0); - /** Gets the typeface of the text in the value box. */ - Fl_Font textfont() const {return textfont_;} - /** Sets the typeface of the text in the value box. */ - void textfont(Fl_Font s) {textfont_ = s;} - /** Gets the size of the text in the value box. */ - Fl_Fontsize textsize() const {return textsize_;} - /** Sets the size of the text in the value box. */ - void textsize(Fl_Fontsize s) {textsize_ = s;} - /** Gets the color of the text in the value box. */ - Fl_Color textcolor() const {return textcolor_;} - /** Sets the color of the text in the value box. */ - void textcolor(Fl_Color s) {textcolor_ = s;} + int handle(int); + Fl_Value_Slider(int x, int y, int w, int h, const char *l = 0); + + /** Gets the typeface of the text in the value box. */ + Fl_Font textfont() const { return textfont_; } + + /** Sets the typeface of the text in the value box. */ + void textfont(Fl_Font s) { textfont_ = s; } + + /** Gets the size of the text in the value box. */ + Fl_Fontsize textsize() const { return textsize_; } + + /** Sets the size of the text in the value box. */ + void textsize(Fl_Fontsize s) { textsize_ = s; } + + /** Gets the color of the text in the value box. */ + Fl_Color textcolor() const { return textcolor_; } + + /** Sets the color of the text in the value box. */ + void textcolor(Fl_Color s) { textcolor_ = s; } + + /** Sets the width of the value box in pixels (horizontal mode only). + + Limited range checking is applied but drawing errors may occur if + the size \p s is set too high or too low, particularly if the widget + is resized (later). + + The programmer is responsible for setting sensible values and + widget sizes. + + The default value set by the constructor is 35. + + \param[in] s new width of the value box + + \since 1.4.0 + */ + void value_width(int s) { + if (s > w() - 10) + s = w() - 10; + if (s < 10) + s = 10; + value_width_ = (short)s; + } + + /** Gets the width of the value box in pixels (horizontal mode only). + + \since 1.4.0 + */ + int value_width() const { return (value_width_); } + + /** Sets the height of the value box in pixels (vertical mode only). + + Limited range checking is applied but drawing errors may occur if + the size \p s is set too high or too low, particularly if the widget + is resized (later). + + The programmer is responsible for setting sensible values and + widget sizes. + + The default value set by the constructor is 25. + + \param[in] s new height of the value box + + \since 1.4.0 + */ + void value_height(int s) { + if (s > h() - 10) + s = h() - 10; + if (s < 10) + s = 10; + value_height_ = (short)s; + } + /** Gets the height of the value box in pixels (vertical mode only). + + \since 1.4.0 + */ + int value_height() const { return (value_height_); } }; #endif |
