summaryrefslogtreecommitdiff
path: root/FL
diff options
context:
space:
mode:
authorAlbrecht Schlosser <albrechts.fltk@online.de>2022-11-26 19:54:48 +0100
committerAlbrecht Schlosser <albrechts.fltk@online.de>2022-11-26 19:56:32 +0100
commit191aeefc4a4161cb132065625a5e5eacb567688a (patch)
treeafd766491b2748f6c15d8d4751f156a96038f92e /FL
parente1a781717e5f8ef4f2772c5a1b36db8f0244e806 (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.H109
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