diff options
| author | Albrecht Schlosser <albrechts.fltk@online.de> | 2017-03-10 18:49:44 +0000 |
|---|---|---|
| committer | Albrecht Schlosser <albrechts.fltk@online.de> | 2017-03-10 18:49:44 +0000 |
| commit | b67ba50f147534bcf2beb3305dbcf24e20ff2e72 (patch) | |
| tree | 7ea736568dd76e90aed465bef584dd60da296a7b /src | |
| parent | 7123b78f3fd6758421f46a9fe735cb7de6bc6904 (diff) | |
New method Fl_Spinner::wrap(int) to set wrap mode at bounds (STR #3365).
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12190 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src')
| -rw-r--r-- | src/Fl_Spinner.cxx | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/src/Fl_Spinner.cxx b/src/Fl_Spinner.cxx index b9b08efa8..220ac1698 100644 --- a/src/Fl_Spinner.cxx +++ b/src/Fl_Spinner.cxx @@ -31,7 +31,7 @@ change the value. */ -void Fl_Spinner::sb_cb(Fl_Widget *w, Fl_Spinner *sb) { +void Fl_Spinner::sb_cb(Fl_Widget *w, Fl_Spinner *sb) { double v; // New value if (w == &(sb->input_)) { @@ -48,18 +48,24 @@ void Fl_Spinner::sb_cb(Fl_Widget *w, Fl_Spinner *sb) { } else if (w == &(sb->up_button_)) { // Up button pressed... v = sb->value_ + sb->step_; - - if (v > sb->maximum_) sb->value_ = sb->minimum_; - else sb->value_ = v; - + if (v > sb->maximum_) { + if (sb->wrap_) + v = sb->minimum_; + else + v = sb->maximum_; + } + sb->value_ = v; sb->update(); } else if (w == &(sb->down_button_)) { // Down button pressed... v = sb->value_ - sb->step_; - - if (v < sb->minimum_) sb->value_ = sb->maximum_; - else sb->value_ = v; - + if (v < sb->minimum_) { + if (sb->wrap_) + v = sb->maximum_; + else + v = sb->minimum_; + } + sb->value_ = v; sb->update(); } @@ -110,6 +116,7 @@ Fl_Spinner::Fl_Spinner(int X, int Y, int W, int H, const char *L) minimum_ = 1.0; maximum_ = 100.0; step_ = 1.0; + wrap_ = 1; format_ = "%g"; align(FL_ALIGN_LEFT); |
