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 /src | |
| 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 'src')
| -rw-r--r-- | src/Fl_Value_Slider.cxx | 30 |
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())); } |
