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 /fluid/Fl_Menu_Type.cxx | |
| 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 'fluid/Fl_Menu_Type.cxx')
| -rw-r--r-- | fluid/Fl_Menu_Type.cxx | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/fluid/Fl_Menu_Type.cxx b/fluid/Fl_Menu_Type.cxx index 8055bf312..9cf128c50 100644 --- a/fluid/Fl_Menu_Type.cxx +++ b/fluid/Fl_Menu_Type.cxx @@ -37,6 +37,8 @@ #include <FL/fl_message.H> #include <FL/Fl_Menu_.H> #include <FL/Fl_Button.H> +#include <FL/Fl_Value_Input.H> +#include <FL/Fl_Text_Display.H> #include "../src/flstring.h" #include <stdio.h> #include <stdlib.h> @@ -589,14 +591,19 @@ int Shortcut_Button::handle(int e) { void shortcut_in_cb(Shortcut_Button* i, void* v) { if (v == LOAD) { - if ( !current_widget->is_button() && !current_widget->is_input() ) { - i->hide(); return; - } - i->show(); if (current_widget->is_button()) i->svalue = ((Fl_Button*)(current_widget->o))->shortcut(); else if (current_widget->is_input()) i->svalue = ((Fl_Input_*)(current_widget->o))->shortcut(); + else if (current_widget->is_value_input()) + i->svalue = ((Fl_Value_Input*)(current_widget->o))->shortcut(); + else if (current_widget->is_text_display()) + i->svalue = ((Fl_Text_Display*)(current_widget->o))->shortcut(); + else { + i->hide(); + return; + } + i->show(); i->redraw(); } else { int mod = 0; @@ -606,11 +613,18 @@ void shortcut_in_cb(Shortcut_Button* i, void* v) { if (b->shortcut()!=i->svalue) mod = 1; b->shortcut(i->svalue); if (o->is_menu_item()) ((Fl_Widget_Type*)o)->redraw(); - } - else if (o->selected && o->is_input()) { + } else if (o->selected && o->is_input()) { Fl_Input_* b = (Fl_Input_*)(((Fl_Widget_Type*)o)->o); if (b->shortcut()!=i->svalue) mod = 1; b->shortcut(i->svalue); + } else if (o->selected && o->is_value_input()) { + Fl_Value_Input* b = (Fl_Value_Input*)(((Fl_Widget_Type*)o)->o); + if (b->shortcut()!=i->svalue) mod = 1; + b->shortcut(i->svalue); + } else if (o->selected && o->is_text_display()) { + Fl_Text_Display* b = (Fl_Text_Display*)(((Fl_Widget_Type*)o)->o); + if (b->shortcut()!=i->svalue) mod = 1; + b->shortcut(i->svalue); } if (mod) set_modflag(1); } |
