diff options
| author | Michael R Sweet <michael.r.sweet@gmail.com> | 2006-10-29 12:34:14 +0000 |
|---|---|---|
| committer | Michael R Sweet <michael.r.sweet@gmail.com> | 2006-10-29 12:34:14 +0000 |
| commit | 8a64710a17df1c164d4bd6b3778b118de010b7f8 (patch) | |
| tree | bf65fa21f017b5c38f5cf9eeff3d5b6ae9c326ec /FL/Fl_Spinner.H | |
| parent | c0664eefcde176a015d21af4ef04f665d5a6b7dc (diff) | |
Fl_Spinner did not handle the arrow keys properly (STR #1476)
FL/Fl_Spinner.H:
- Add Fl_Spinner::handle() method to handle arrow key and
focus events.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@5530 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'FL/Fl_Spinner.H')
| -rw-r--r-- | FL/Fl_Spinner.H | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/FL/Fl_Spinner.H b/FL/Fl_Spinner.H index b84a20b9e..662ae8cb8 100644 --- a/FL/Fl_Spinner.H +++ b/FL/Fl_Spinner.H @@ -32,6 +32,7 @@ // Include necessary headers... // +# include <FL/Enumerations.H> # include <FL/Fl_Group.H> # include <FL/Fl_Input.H> # include <FL/Fl_Repeat_Button.H> @@ -141,6 +142,27 @@ class Fl_Spinner : public Fl_Group const char *format() { return (format_); } void format(const char *f) { format_ = f; update(); } + + int handle(int event) { + switch (event) { + case FL_KEYDOWN : + case FL_SHORTCUT : + if (Fl::event_key() == FL_Up) { + up_button_.do_callback(); + return 1; + } else if (Fl::event_key() == FL_Down) { + down_button_.do_callback(); + return 1; + } else return 0; + + case FL_FOCUS : + if (input_.take_focus()) return 1; + else return 0; + } + + return Fl_Group::handle(event); + } + // Speling mistaks retained for source compatibility... double maxinum() const { return (maximum_); } double maximum() const { return (maximum_); } |
