diff options
| author | Michael R Sweet <michael.r.sweet@gmail.com> | 2004-07-27 16:02:21 +0000 |
|---|---|---|
| committer | Michael R Sweet <michael.r.sweet@gmail.com> | 2004-07-27 16:02:21 +0000 |
| commit | 62c19c63d6d915b153a09be98f7da8e049f9b4e3 (patch) | |
| tree | db80481c3b09b7129033d15a7673ecf59cb902cb /src/Fl_Button.cxx | |
| parent | a529510e5b8f84b15aacd103936df89bb767bb29 (diff) | |
More doco updates.
All of the core widgets now consistently set changed() before
calling the callback function for a change in value; this allows
programs to check the changed() state in a callback to see why
they are being called (STR #475)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@3713 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/Fl_Button.cxx')
| -rw-r--r-- | src/Fl_Button.cxx | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/src/Fl_Button.cxx b/src/Fl_Button.cxx index 9309173db..b4b05c147 100644 --- a/src/Fl_Button.cxx +++ b/src/Fl_Button.cxx @@ -1,5 +1,5 @@ // -// "$Id: Fl_Button.cxx,v 1.4.2.6.2.22 2004/04/11 04:38:57 easysw Exp $" +// "$Id: Fl_Button.cxx,v 1.4.2.6.2.23 2004/07/27 16:02:20 easysw Exp $" // // Button widget for the Fast Light Tool Kit (FLTK). // @@ -81,6 +81,7 @@ int Fl_Button::handle(int event) { newval = oldval; if (newval != value_) { value_ = newval; + set_changed(); redraw(); if (when() & FL_WHEN_CHANGED) do_callback(); } @@ -90,15 +91,14 @@ int Fl_Button::handle(int event) { if (when() & FL_WHEN_NOT_CHANGED) do_callback(); return 1; } - if (type() == FL_RADIO_BUTTON) - setonly(); - else if (type() == FL_TOGGLE_BUTTON) - oldval = value_; + set_changed(); + if (type() == FL_RADIO_BUTTON) setonly(); + else if (type() == FL_TOGGLE_BUTTON) oldval = value_; else { value(oldval); if (when() & FL_WHEN_CHANGED) do_callback(); } - if (when() & FL_WHEN_RELEASE) do_callback(); else set_changed(); + if (when() & FL_WHEN_RELEASE) do_callback(); return 1; case FL_SHORTCUT: if (!(shortcut() ? @@ -108,12 +108,13 @@ int Fl_Button::handle(int event) { if (type() == FL_RADIO_BUTTON && !value_) { setonly(); + set_changed(); if (when() & FL_WHEN_CHANGED) do_callback(); } else if (type() == FL_TOGGLE_BUTTON) { value(!value()); + set_changed(); if (when() & FL_WHEN_CHANGED) do_callback(); - } - if (when() & FL_WHEN_RELEASE) do_callback(); else set_changed(); + } else if (when() & FL_WHEN_RELEASE) do_callback(); return 1; case FL_FOCUS : case FL_UNFOCUS : @@ -131,6 +132,7 @@ int Fl_Button::handle(int event) { case FL_KEYBOARD : if (Fl::focus() == this && Fl::event_key() == ' ' && !(Fl::event_state() & (FL_SHIFT | FL_CTRL | FL_ALT | FL_META))) { + set_changed(); if (type() == FL_RADIO_BUTTON && !value_) { setonly(); if (when() & FL_WHEN_CHANGED) do_callback(); @@ -138,7 +140,7 @@ int Fl_Button::handle(int event) { value(!value()); if (when() & FL_WHEN_CHANGED) do_callback(); } - if (when() & FL_WHEN_RELEASE) do_callback(); else set_changed(); + if (when() & FL_WHEN_RELEASE) do_callback(); return 1; } default: @@ -156,5 +158,5 @@ Fl_Button::Fl_Button(int X, int Y, int W, int H, const char *l) } // -// End of "$Id: Fl_Button.cxx,v 1.4.2.6.2.22 2004/04/11 04:38:57 easysw Exp $". +// End of "$Id: Fl_Button.cxx,v 1.4.2.6.2.23 2004/07/27 16:02:20 easysw Exp $". // |
