summaryrefslogtreecommitdiff
path: root/src/Fl_Value_Slider.cxx
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 /src/Fl_Value_Slider.cxx
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 'src/Fl_Value_Slider.cxx')
-rw-r--r--src/Fl_Value_Slider.cxx30
1 files changed, 18 insertions, 12 deletions
diff --git a/src/Fl_Value_Slider.cxx b/src/Fl_Value_Slider.cxx
index 8406519dc..918d07742 100644
--- a/src/Fl_Value_Slider.cxx
+++ b/src/Fl_Value_Slider.cxx
@@ -1,7 +1,7 @@
//
-// Value slider widget for the Fast Light Tool Kit (FLTK).
+// Value Slider widget for the Fast Light Tool Kit (FLTK).
//
-// Copyright 1998-2010 by Bill Spitzak and others.
+// Copyright 1998-2022 by Bill Spitzak and others.
//
// This library is free software. Distribution and use rights are outlined in
// the file "COPYING" which should have been included with this file. If this
@@ -30,17 +30,24 @@ Fl_Value_Slider::Fl_Value_Slider(int X, int Y, int W, int H, const char*l)
textfont_ = FL_HELVETICA;
textsize_ = 10;
textcolor_ = FL_FOREGROUND_COLOR;
+ value_width_ = 35;
+ value_height_ = 25;
}
void Fl_Value_Slider::draw() {
int sxx = x(), syy = y(), sww = w(), shh = h();
int bxx = x(), byy = y(), bww = w(), bhh = h();
if (horizontal()) {
- bww = 35; sxx += 35; sww -= 35;
+ bww = value_width();
+ sxx += value_width();
+ sww -= value_width();
} else {
- syy += 25; bhh = 25; shh -= 25;
+ syy += value_height();
+ bhh = value_height();
+ shh -= value_height();
}
- if (damage()&FL_DAMAGE_ALL) draw_box(box(),sxx,syy,sww,shh,color());
+ if (damage() & FL_DAMAGE_ALL)
+ draw_box(box(), sxx, syy, sww, shh, color());
Fl_Slider::draw(sxx+Fl::box_dx(box()),
syy+Fl::box_dy(box()),
sww-Fl::box_dw(box()),
@@ -60,15 +67,14 @@ int Fl_Value_Slider::handle(int event) {
}
int sxx = x(), syy = y(), sww = w(), shh = h();
if (horizontal()) {
- sxx += 35; sww -= 35;
+ sxx += value_width();
+ sww -= value_width();
} else {
- syy += 25; shh -= 25;
+ syy += value_height();
+ shh -= value_height();
}
- return Fl_Slider::handle(event,
- sxx+Fl::box_dx(box()),
- syy+Fl::box_dy(box()),
- sww-Fl::box_dw(box()),
- shh-Fl::box_dh(box()));
+ return Fl_Slider::handle(event, sxx + Fl::box_dx(box()), syy + Fl::box_dy(box()),
+ sww - Fl::box_dw(box()), shh - Fl::box_dh(box()));
}