summaryrefslogtreecommitdiff
path: root/src
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 /src
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 'src')
-rw-r--r--src/Fl_Text_Display.cxx10
-rw-r--r--src/Fl_Text_Editor.cxx7
-rw-r--r--src/Fl_Value_Input.cxx3
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);
}
//