diff options
| author | Matthias Melcher <fltk@matthiasm.com> | 2008-04-23 14:19:58 +0000 |
|---|---|---|
| committer | Matthias Melcher <fltk@matthiasm.com> | 2008-04-23 14:19:58 +0000 |
| commit | 8683ea2c810a3d689e436a8d13abbbba50efc4f5 (patch) | |
| tree | 07f4dd10cee8d33ca9b94b900ff15c056662526e /src | |
| parent | 8d6b757bfe1579c1c09d627329bbf15875d52cc5 (diff) | |
Adding keyboard shortcut to Fl_Value_Input and Fl_Text_Editor
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6111 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src')
| -rw-r--r-- | src/Fl_Text_Display.cxx | 10 | ||||
| -rw-r--r-- | src/Fl_Text_Editor.cxx | 7 | ||||
| -rw-r--r-- | src/Fl_Value_Input.cxx | 3 |
3 files changed, 20 insertions, 0 deletions
diff --git a/src/Fl_Text_Display.cxx b/src/Fl_Text_Display.cxx index 5ae5f6ff2..e0f26e01c 100644 --- a/src/Fl_Text_Display.cxx +++ b/src/Fl_Text_Display.cxx @@ -85,12 +85,14 @@ Fl_Text_Display::Fl_Text_Display(int X, int Y, int W, int H, const char* l) damage_range2_start = damage_range2_end = -1; dragPos = dragType = dragging = 0; display_insert_position_hint = 0; + shortcut_ = 0; color(FL_BACKGROUND2_COLOR, FL_SELECTION_COLOR); box(FL_DOWN_FRAME); textsize((uchar)FL_NORMAL_SIZE); textcolor(FL_FOREGROUND_COLOR); textfont(FL_HELVETICA); + set_flag(SHORTCUT_LABEL); text_area.x = 0; text_area.y = 0; @@ -3261,6 +3263,14 @@ int Fl_Text_Display::handle(int event) { if (mHScrollBar->handle(event)) return 1; break; + + case FL_SHORTCUT: + if (!(shortcut() ? Fl::test_shortcut(shortcut()) : test_shortcut())) + return 0; + if (Fl::visible_focus() && handle(FL_FOCUS)) + Fl::focus(this); + return 1; + } return 0; diff --git a/src/Fl_Text_Editor.cxx b/src/Fl_Text_Editor.cxx index c26532906..6cfc0240d 100644 --- a/src/Fl_Text_Editor.cxx +++ b/src/Fl_Text_Editor.cxx @@ -482,6 +482,13 @@ int Fl_Text_Editor::handle(int event) { return 1; } break; + + case FL_SHORTCUT: + if (!(shortcut() ? Fl::test_shortcut(shortcut()) : test_shortcut())) + return 0; + if (Fl::visible_focus() && handle(FL_FOCUS)) + Fl::focus(this); + return 1; } return Fl_Text_Display::handle(event); diff --git a/src/Fl_Value_Input.cxx b/src/Fl_Value_Input.cxx index d3f5c6e61..d6dc6ab22 100644 --- a/src/Fl_Value_Input.cxx +++ b/src/Fl_Value_Input.cxx @@ -106,6 +106,8 @@ int Fl_Value_Input::handle(int event) { return 1; case FL_FOCUS: return input.take_focus(); + case FL_SHORTCUT: + return input.handle(event); default: DEFAULT: input.type(((step() - floor(step()))>0.0 || step() == 0.0) ? FL_FLOAT_INPUT : FL_INT_INPUT); @@ -126,6 +128,7 @@ Fl_Value_Input::Fl_Value_Input(int X, int Y, int W, int H, const char* l) selection_color(input.selection_color()); align(FL_ALIGN_LEFT); value_damage(); + set_flag(SHORTCUT_LABEL); } // |
