summaryrefslogtreecommitdiff
path: root/fluid/Fl_Menu_Type.cxx
diff options
context:
space:
mode:
authorMatthias Melcher <fltk@matthiasm.com>2008-04-23 14:19:58 +0000
committerMatthias Melcher <fltk@matthiasm.com>2008-04-23 14:19:58 +0000
commit8683ea2c810a3d689e436a8d13abbbba50efc4f5 (patch)
tree07f4dd10cee8d33ca9b94b900ff15c056662526e /fluid/Fl_Menu_Type.cxx
parent8d6b757bfe1579c1c09d627329bbf15875d52cc5 (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.cxx26
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);
}