summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJed Barber <jjbarber@y7mail.com>2017-06-10 22:53:19 +1000
committerJed Barber <jjbarber@y7mail.com>2017-06-10 22:53:19 +1000
commit50ebd224ee7dbed4494d43fd63cdc794380a9a36 (patch)
tree521eb0ca223acc4941cb92ded0f7ad6721f562b9 /src
parent72667dc66496412f74d822967eaa9dee835daf6d (diff)
The rest of the static keybinding procedures added to Text_Editor package
Diffstat (limited to 'src')
-rw-r--r--src/c_fl_text_editor.cpp135
-rw-r--r--src/c_fl_text_editor.h40
-rw-r--r--src/fltk-widgets-groups-text_displays-text_editors.adb388
-rw-r--r--src/fltk-widgets-groups-text_displays-text_editors.ads148
4 files changed, 664 insertions, 47 deletions
diff --git a/src/c_fl_text_editor.cpp b/src/c_fl_text_editor.cpp
index 282da77..b023981 100644
--- a/src/c_fl_text_editor.cpp
+++ b/src/c_fl_text_editor.cpp
@@ -70,6 +70,13 @@ void free_fl_text_editor(TEXTEDITOR te) {
+void fl_text_editor_default(TEXTEDITOR te, int k) {
+ Fl_Text_Editor::kf_default(k, reinterpret_cast<Fl_Text_Editor*>(te));
+}
+
+
+
+
void fl_text_editor_undo(TEXTEDITOR te) {
Fl_Text_Editor::kf_undo(0, reinterpret_cast<Fl_Text_Editor*>(te));
}
@@ -90,6 +97,10 @@ void fl_text_editor_delete(TEXTEDITOR te) {
Fl_Text_Editor::kf_delete(0, reinterpret_cast<Fl_Text_Editor*>(te));
}
+void fl_text_editor_select_all(TEXTEDITOR te) {
+ Fl_Text_Editor::kf_select_all(0, reinterpret_cast<Fl_Text_Editor*>(te));
+}
+
@@ -97,6 +108,21 @@ void fl_text_editor_backspace(TEXTEDITOR te) {
Fl_Text_Editor::kf_backspace(0, reinterpret_cast<Fl_Text_Editor*>(te));
}
+void fl_text_editor_insert(TEXTEDITOR te) {
+ Fl_Text_Editor::kf_insert(0, reinterpret_cast<Fl_Text_Editor*>(te));
+}
+
+void fl_text_editor_enter(TEXTEDITOR te) {
+ Fl_Text_Editor::kf_enter(0, reinterpret_cast<Fl_Text_Editor*>(te));
+}
+
+void fl_text_editor_ignore(TEXTEDITOR te) {
+ Fl_Text_Editor::kf_ignore(0, reinterpret_cast<Fl_Text_Editor*>(te));
+}
+
+
+
+
void fl_text_editor_home(TEXTEDITOR te) {
Fl_Text_Editor::kf_home(0, reinterpret_cast<Fl_Text_Editor*>(te));
}
@@ -105,10 +131,6 @@ void fl_text_editor_end(TEXTEDITOR te) {
Fl_Text_Editor::kf_end(0, reinterpret_cast<Fl_Text_Editor*>(te));
}
-void fl_text_editor_insert(TEXTEDITOR te) {
- Fl_Text_Editor::kf_insert(0, reinterpret_cast<Fl_Text_Editor*>(te));
-}
-
void fl_text_editor_page_down(TEXTEDITOR te) {
Fl_Text_Editor::kf_page_down(0, reinterpret_cast<Fl_Text_Editor*>(te));
}
@@ -136,6 +158,111 @@ void fl_text_editor_up(TEXTEDITOR te) {
+void fl_text_editor_shift_home(TEXTEDITOR te) {
+ Fl_Text_Editor::kf_shift_move(FL_Home, reinterpret_cast<Fl_Text_Editor*>(te));
+}
+
+void fl_text_editor_shift_end(TEXTEDITOR te) {
+ Fl_Text_Editor::kf_shift_move(FL_End, reinterpret_cast<Fl_Text_Editor*>(te));
+}
+
+void fl_text_editor_shift_page_down(TEXTEDITOR te) {
+ Fl_Text_Editor::kf_shift_move(FL_Page_Down, reinterpret_cast<Fl_Text_Editor*>(te));
+}
+
+void fl_text_editor_shift_page_up(TEXTEDITOR te) {
+ Fl_Text_Editor::kf_shift_move(FL_Page_Up, reinterpret_cast<Fl_Text_Editor*>(te));
+}
+
+void fl_text_editor_shift_down(TEXTEDITOR te) {
+ Fl_Text_Editor::kf_shift_move(FL_Down, reinterpret_cast<Fl_Text_Editor*>(te));
+}
+
+void fl_text_editor_shift_left(TEXTEDITOR te) {
+ Fl_Text_Editor::kf_shift_move(FL_Left, reinterpret_cast<Fl_Text_Editor*>(te));
+}
+
+void fl_text_editor_shift_right(TEXTEDITOR te) {
+ Fl_Text_Editor::kf_shift_move(FL_Right, reinterpret_cast<Fl_Text_Editor*>(te));
+}
+
+void fl_text_editor_shift_up(TEXTEDITOR te) {
+ Fl_Text_Editor::kf_shift_move(FL_Up, reinterpret_cast<Fl_Text_Editor*>(te));
+}
+
+
+
+
+void fl_text_editor_ctrl_home(TEXTEDITOR te) {
+ Fl_Text_Editor::kf_ctrl_move(FL_Home, reinterpret_cast<Fl_Text_Editor*>(te));
+}
+
+void fl_text_editor_ctrl_end(TEXTEDITOR te) {
+ Fl_Text_Editor::kf_ctrl_move(FL_End, reinterpret_cast<Fl_Text_Editor*>(te));
+}
+
+void fl_text_editor_ctrl_page_down(TEXTEDITOR te) {
+ Fl_Text_Editor::kf_ctrl_move(FL_Page_Down, reinterpret_cast<Fl_Text_Editor*>(te));
+}
+
+void fl_text_editor_ctrl_page_up(TEXTEDITOR te) {
+ Fl_Text_Editor::kf_ctrl_move(FL_Page_Up, reinterpret_cast<Fl_Text_Editor*>(te));
+}
+
+void fl_text_editor_ctrl_down(TEXTEDITOR te) {
+ Fl_Text_Editor::kf_ctrl_move(FL_Down, reinterpret_cast<Fl_Text_Editor*>(te));
+}
+
+void fl_text_editor_ctrl_left(TEXTEDITOR te) {
+ Fl_Text_Editor::kf_ctrl_move(FL_Left, reinterpret_cast<Fl_Text_Editor*>(te));
+}
+
+void fl_text_editor_ctrl_right(TEXTEDITOR te) {
+ Fl_Text_Editor::kf_ctrl_move(FL_Right, reinterpret_cast<Fl_Text_Editor*>(te));
+}
+
+void fl_text_editor_ctrl_up(TEXTEDITOR te) {
+ Fl_Text_Editor::kf_ctrl_move(FL_Up, reinterpret_cast<Fl_Text_Editor*>(te));
+}
+
+
+
+
+void fl_text_editor_ctrl_shift_home(TEXTEDITOR te) {
+ Fl_Text_Editor::kf_c_s_move(FL_Home, reinterpret_cast<Fl_Text_Editor*>(te));
+}
+
+void fl_text_editor_ctrl_shift_end(TEXTEDITOR te) {
+ Fl_Text_Editor::kf_c_s_move(FL_End, reinterpret_cast<Fl_Text_Editor*>(te));
+}
+
+void fl_text_editor_ctrl_shift_page_down(TEXTEDITOR te) {
+ Fl_Text_Editor::kf_c_s_move(FL_Page_Down, reinterpret_cast<Fl_Text_Editor*>(te));
+}
+
+void fl_text_editor_ctrl_shift_page_up(TEXTEDITOR te) {
+ Fl_Text_Editor::kf_c_s_move(FL_Page_Up, reinterpret_cast<Fl_Text_Editor*>(te));
+}
+
+void fl_text_editor_ctrl_shift_down(TEXTEDITOR te) {
+ Fl_Text_Editor::kf_c_s_move(FL_Down, reinterpret_cast<Fl_Text_Editor*>(te));
+}
+
+void fl_text_editor_ctrl_shift_left(TEXTEDITOR te) {
+ Fl_Text_Editor::kf_c_s_move(FL_Left, reinterpret_cast<Fl_Text_Editor*>(te));
+}
+
+void fl_text_editor_ctrl_shift_right(TEXTEDITOR te) {
+ Fl_Text_Editor::kf_c_s_move(FL_Right, reinterpret_cast<Fl_Text_Editor*>(te));
+}
+
+void fl_text_editor_ctrl_shift_up(TEXTEDITOR te) {
+ Fl_Text_Editor::kf_c_s_move(FL_Up, reinterpret_cast<Fl_Text_Editor*>(te));
+}
+
+
+
+
void fl_text_editor_remove_key_binding(TEXTEDITOR te, unsigned int k, unsigned long m) {
reinterpret_cast<Fl_Text_Editor*>(te)->remove_key_binding(k, m);
}
diff --git a/src/c_fl_text_editor.h b/src/c_fl_text_editor.h
index dce890e..e827428 100644
--- a/src/c_fl_text_editor.h
+++ b/src/c_fl_text_editor.h
@@ -23,17 +23,25 @@ extern "C" void free_fl_text_editor(TEXTEDITOR te);
+extern "C" void fl_text_editor_default(TEXTEDITOR te, int k);
+
+
extern "C" void fl_text_editor_undo(TEXTEDITOR te);
extern "C" void fl_text_editor_cut(TEXTEDITOR te);
extern "C" void fl_text_editor_copy(TEXTEDITOR te);
extern "C" void fl_text_editor_paste(TEXTEDITOR te);
extern "C" void fl_text_editor_delete(TEXTEDITOR te);
+extern "C" void fl_text_editor_select_all(TEXTEDITOR te);
extern "C" void fl_text_editor_backspace(TEXTEDITOR te);
+extern "C" void fl_text_editor_insert(TEXTEDITOR te);
+extern "C" void fl_text_editor_enter(TEXTEDITOR te);
+extern "C" void fl_text_editor_ignore(TEXTEDITOR te);
+
+
extern "C" void fl_text_editor_home(TEXTEDITOR te);
extern "C" void fl_text_editor_end(TEXTEDITOR te);
-extern "C" void fl_text_editor_insert(TEXTEDITOR te);
extern "C" void fl_text_editor_page_down(TEXTEDITOR te);
extern "C" void fl_text_editor_page_up(TEXTEDITOR te);
extern "C" void fl_text_editor_down(TEXTEDITOR te);
@@ -42,6 +50,36 @@ extern "C" void fl_text_editor_right(TEXTEDITOR te);
extern "C" void fl_text_editor_up(TEXTEDITOR te);
+extern "C" void fl_text_editor_shift_home(TEXTEDITOR te);
+extern "C" void fl_text_editor_shift_end(TEXTEDITOR te);
+extern "C" void fl_text_editor_shift_page_down(TEXTEDITOR te);
+extern "C" void fl_text_editor_shift_page_up(TEXTEDITOR te);
+extern "C" void fl_text_editor_shift_down(TEXTEDITOR te);
+extern "C" void fl_text_editor_shift_left(TEXTEDITOR te);
+extern "C" void fl_text_editor_shift_right(TEXTEDITOR te);
+extern "C" void fl_text_editor_shift_up(TEXTEDITOR te);
+
+
+extern "C" void fl_text_editor_ctrl_home(TEXTEDITOR te);
+extern "C" void fl_text_editor_ctrl_end(TEXTEDITOR te);
+extern "C" void fl_text_editor_ctrl_page_down(TEXTEDITOR te);
+extern "C" void fl_text_editor_ctrl_page_up(TEXTEDITOR te);
+extern "C" void fl_text_editor_ctrl_down(TEXTEDITOR te);
+extern "C" void fl_text_editor_ctrl_left(TEXTEDITOR te);
+extern "C" void fl_text_editor_ctrl_right(TEXTEDITOR te);
+extern "C" void fl_text_editor_ctrl_up(TEXTEDITOR te);
+
+
+extern "C" void fl_text_editor_ctrl_shift_home(TEXTEDITOR te);
+extern "C" void fl_text_editor_ctrl_shift_end(TEXTEDITOR te);
+extern "C" void fl_text_editor_ctrl_shift_page_down(TEXTEDITOR te);
+extern "C" void fl_text_editor_ctrl_shift_page_up(TEXTEDITOR te);
+extern "C" void fl_text_editor_ctrl_shift_down(TEXTEDITOR te);
+extern "C" void fl_text_editor_ctrl_shift_left(TEXTEDITOR te);
+extern "C" void fl_text_editor_ctrl_shift_right(TEXTEDITOR te);
+extern "C" void fl_text_editor_ctrl_shift_up(TEXTEDITOR te);
+
+
extern "C" void fl_text_editor_remove_key_binding(TEXTEDITOR te, unsigned int k, unsigned long m);
diff --git a/src/fltk-widgets-groups-text_displays-text_editors.adb b/src/fltk-widgets-groups-text_displays-text_editors.adb
index dc47d72..73744ca 100644
--- a/src/fltk-widgets-groups-text_displays-text_editors.adb
+++ b/src/fltk-widgets-groups-text_displays-text_editors.adb
@@ -32,6 +32,14 @@ package body FLTK.Widgets.Groups.Text_Displays.Text_Editors is
+ procedure fl_text_editor_default
+ (TE : in System.Address;
+ K : in Interfaces.C.int);
+ pragma Import (C, fl_text_editor_default, "fl_text_editor_default");
+
+
+
+
procedure fl_text_editor_undo
(TE : in System.Address);
pragma Import (C, fl_text_editor_undo, "fl_text_editor_undo");
@@ -52,12 +60,32 @@ package body FLTK.Widgets.Groups.Text_Displays.Text_Editors is
(TE : in System.Address);
pragma Import (C, fl_text_editor_delete, "fl_text_editor_delete");
+ procedure fl_text_editor_select_all
+ (TE : in System.Address);
+ pragma Import (C, fl_text_editor_select_all, "fl_text_editor_select_all");
+
+
procedure fl_text_editor_backspace
(TE : in System.Address);
pragma Import (C, fl_text_editor_backspace, "fl_text_editor_backspace");
+ procedure fl_text_editor_insert
+ (TE : in System.Address);
+ pragma Import (C, fl_text_editor_insert, "fl_text_editor_insert");
+
+ procedure fl_text_editor_enter
+ (TE : in System.Address);
+ pragma Import (C, fl_text_editor_enter, "fl_text_editor_enter");
+
+ procedure fl_text_editor_ignore
+ (TE : in System.Address);
+ pragma Import (C, fl_text_editor_ignore, "fl_text_editor_ignore");
+
+
+
+
procedure fl_text_editor_home
(TE : in System.Address);
pragma Import (C, fl_text_editor_home, "fl_text_editor_home");
@@ -66,10 +94,6 @@ package body FLTK.Widgets.Groups.Text_Displays.Text_Editors is
(TE : in System.Address);
pragma Import (C, fl_text_editor_end, "fl_text_editor_end");
- procedure fl_text_editor_insert
- (TE : in System.Address);
- pragma Import (C, fl_text_editor_insert, "fl_text_editor_insert");
-
procedure fl_text_editor_page_down
(TE : in System.Address);
pragma Import (C, fl_text_editor_page_down, "fl_text_editor_page_down");
@@ -97,6 +121,111 @@ package body FLTK.Widgets.Groups.Text_Displays.Text_Editors is
+ procedure fl_text_editor_shift_home
+ (TE : in System.Address);
+ pragma Import (C, fl_text_editor_shift_home, "fl_text_editor_shift_home");
+
+ procedure fl_text_editor_shift_end
+ (TE : in System.Address);
+ pragma Import (C, fl_text_editor_shift_end, "fl_text_editor_shift_end");
+
+ procedure fl_text_editor_shift_page_down
+ (TE : in System.Address);
+ pragma Import (C, fl_text_editor_shift_page_down, "fl_text_editor_shift_page_down");
+
+ procedure fl_text_editor_shift_page_up
+ (TE : in System.Address);
+ pragma Import (C, fl_text_editor_shift_page_up, "fl_text_editor_shift_page_up");
+
+ procedure fl_text_editor_shift_down
+ (TE : in System.Address);
+ pragma Import (C, fl_text_editor_shift_down, "fl_text_editor_shift_down");
+
+ procedure fl_text_editor_shift_left
+ (TE : in System.Address);
+ pragma Import (C, fl_text_editor_shift_left, "fl_text_editor_shift_left");
+
+ procedure fl_text_editor_shift_right
+ (TE : in System.Address);
+ pragma Import (C, fl_text_editor_shift_right, "fl_text_editor_shift_right");
+
+ procedure fl_text_editor_shift_up
+ (TE : in System.Address);
+ pragma Import (C, fl_text_editor_shift_up, "fl_text_editor_shift_up");
+
+
+
+
+ procedure fl_text_editor_ctrl_home
+ (TE : in System.Address);
+ pragma Import (C, fl_text_editor_ctrl_home, "fl_text_editor_ctrl_home");
+
+ procedure fl_text_editor_ctrl_end
+ (TE : in System.Address);
+ pragma Import (C, fl_text_editor_ctrl_end, "fl_text_editor_ctrl_end");
+
+ procedure fl_text_editor_ctrl_page_down
+ (TE : in System.Address);
+ pragma Import (C, fl_text_editor_ctrl_page_down, "fl_text_editor_ctrl_page_down");
+
+ procedure fl_text_editor_ctrl_page_up
+ (TE : in System.Address);
+ pragma Import (C, fl_text_editor_ctrl_page_up, "fl_text_editor_ctrl_page_up");
+
+ procedure fl_text_editor_ctrl_down
+ (TE : in System.Address);
+ pragma Import (C, fl_text_editor_ctrl_down, "fl_text_editor_ctrl_down");
+
+ procedure fl_text_editor_ctrl_left
+ (TE : in System.Address);
+ pragma Import (C, fl_text_editor_ctrl_left, "fl_text_editor_ctrl_left");
+
+ procedure fl_text_editor_ctrl_right
+ (TE : in System.Address);
+ pragma Import (C, fl_text_editor_ctrl_right, "fl_text_editor_ctrl_right");
+
+ procedure fl_text_editor_ctrl_up
+ (TE : in System.Address);
+ pragma Import (C, fl_text_editor_ctrl_up, "fl_text_editor_ctrl_up");
+
+
+
+
+ procedure fl_text_editor_ctrl_shift_home
+ (TE : in System.Address);
+ pragma Import (C, fl_text_editor_ctrl_shift_home, "fl_text_editor_ctrl_shift_home");
+
+ procedure fl_text_editor_ctrl_shift_end
+ (TE : in System.Address);
+ pragma Import (C, fl_text_editor_ctrl_shift_end, "fl_text_editor_ctrl_shift_end");
+
+ procedure fl_text_editor_ctrl_shift_page_down
+ (TE : in System.Address);
+ pragma Import (C, fl_text_editor_ctrl_shift_page_down, "fl_text_editor_ctrl_shift_page_down");
+
+ procedure fl_text_editor_ctrl_shift_page_up
+ (TE : in System.Address);
+ pragma Import (C, fl_text_editor_ctrl_shift_page_up, "fl_text_editor_ctrl_shift_page_up");
+
+ procedure fl_text_editor_ctrl_shift_down
+ (TE : in System.Address);
+ pragma Import (C, fl_text_editor_ctrl_shift_down, "fl_text_editor_ctrl_shift_down");
+
+ procedure fl_text_editor_ctrl_shift_left
+ (TE : in System.Address);
+ pragma Import (C, fl_text_editor_ctrl_shift_left, "fl_text_editor_ctrl_shift_left");
+
+ procedure fl_text_editor_ctrl_shift_right
+ (TE : in System.Address);
+ pragma Import (C, fl_text_editor_ctrl_shift_right, "fl_text_editor_ctrl_shift_right");
+
+ procedure fl_text_editor_ctrl_shift_up
+ (TE : in System.Address);
+ pragma Import (C, fl_text_editor_ctrl_shift_up, "fl_text_editor_ctrl_shift_up");
+
+
+
+
procedure fl_text_editor_remove_key_binding
(TE : in System.Address;
K : in Interfaces.C.unsigned;
@@ -185,108 +314,143 @@ package body FLTK.Widgets.Groups.Text_Displays.Text_Editors is
+ procedure Default
+ (This : in out Text_Editor'Class;
+ Key : in Shortcut_Key) is
+ begin
+ fl_text_editor_default
+ (This.Void_Ptr,
+ Character'Pos (Key.Keypress));
+ end Default;
+
+
+
+
procedure Undo
- (This : in out Text_Editor) is
+ (This : in out Text_Editor'Class) is
begin
fl_text_editor_undo (This.Void_Ptr);
end Undo;
procedure Cut
- (This : in out Text_Editor) is
+ (This : in out Text_Editor'Class) is
begin
fl_text_editor_cut (This.Void_Ptr);
end Cut;
procedure Copy
- (This : in out Text_Editor) is
+ (This : in out Text_Editor'Class) is
begin
fl_text_editor_copy (This.Void_Ptr);
end Copy;
procedure Paste
- (This : in out Text_Editor) is
+ (This : in out Text_Editor'Class) is
begin
fl_text_editor_paste (This.Void_Ptr);
end Paste;
procedure Delete
- (This : in out Text_Editor) is
+ (This : in out Text_Editor'Class) is
begin
fl_text_editor_delete (This.Void_Ptr);
end Delete;
+ procedure Select_All
+ (This : in out Text_Editor'Class) is
+ begin
+ fl_text_editor_select_all (This.Void_Ptr);
+ end Select_All;
+
+
procedure Backspace_Key
- (This : in out Text_Editor) is
+ (This : in out Text_Editor'Class) is
begin
fl_text_editor_backspace (This.Void_Ptr);
end Backspace_Key;
+ procedure Insert_Key
+ (This : in out Text_Editor'Class) is
+ begin
+ fl_text_editor_insert (This.Void_Ptr);
+ end Insert_Key;
+
+
+ procedure Enter_Key
+ (This : in out Text_Editor'Class) is
+ begin
+ fl_text_editor_enter (This.Void_Ptr);
+ end Enter_Key;
+
+
+ procedure Ignore_Key
+ (This : in out Text_Editor'Class) is
+ begin
+ fl_text_editor_ignore (This.Void_Ptr);
+ end Ignore_Key;
+
+
+
+
procedure Home_Key
- (This : in out Text_Editor) is
+ (This : in out Text_Editor'Class) is
begin
fl_text_editor_home (This.Void_Ptr);
end Home_Key;
procedure End_Key
- (This : in out Text_Editor) is
+ (This : in out Text_Editor'Class) is
begin
fl_text_editor_end (This.Void_Ptr);
end End_Key;
- procedure Insert_Key
- (This : in out Text_Editor) is
- begin
- fl_text_editor_insert (This.Void_Ptr);
- end Insert_Key;
-
-
procedure Page_Down_Key
- (This : in out Text_Editor) is
+ (This : in out Text_Editor'Class) is
begin
fl_text_editor_page_down (This.Void_Ptr);
end Page_Down_Key;
procedure Page_Up_Key
- (This : in out Text_Editor) is
+ (This : in out Text_Editor'Class) is
begin
fl_text_editor_page_up (This.Void_Ptr);
end Page_Up_Key;
procedure Down_Key
- (This : in out Text_Editor) is
+ (This : in out Text_Editor'Class) is
begin
fl_text_editor_down (This.Void_Ptr);
end Down_Key;
procedure Left_Key
- (This : in out Text_Editor) is
+ (This : in out Text_Editor'Class) is
begin
fl_text_editor_left (This.Void_Ptr);
end Left_Key;
procedure Right_Key
- (This : in out Text_Editor) is
+ (This : in out Text_Editor'Class) is
begin
fl_text_editor_right (This.Void_Ptr);
end Right_Key;
procedure Up_Key
- (This : in out Text_Editor) is
+ (This : in out Text_Editor'Class) is
begin
fl_text_editor_up (This.Void_Ptr);
end Up_Key;
@@ -294,6 +458,180 @@ package body FLTK.Widgets.Groups.Text_Displays.Text_Editors is
+ procedure Shift_Home_Key
+ (This : in out Text_Editor'Class) is
+ begin
+ fl_text_editor_shift_home (This.Void_Ptr);
+ end Shift_Home_Key;
+
+
+ procedure Shift_End_Key
+ (This : in out Text_Editor'Class) is
+ begin
+ fl_text_editor_shift_end (This.Void_Ptr);
+ end Shift_End_Key;
+
+
+ procedure Shift_Page_Down_Key
+ (This : in out Text_Editor'Class) is
+ begin
+ fl_text_editor_shift_page_down (This.Void_Ptr);
+ end Shift_Page_Down_Key;
+
+
+ procedure Shift_Page_Up_Key
+ (This : in out Text_Editor'Class) is
+ begin
+ fl_text_editor_shift_page_up (This.Void_Ptr);
+ end Shift_Page_Up_Key;
+
+
+ procedure Shift_Down_Key
+ (This : in out Text_Editor'Class) is
+ begin
+ fl_text_editor_shift_down (This.Void_Ptr);
+ end Shift_Down_Key;
+
+
+ procedure Shift_Left_Key
+ (This : in out Text_Editor'Class) is
+ begin
+ fl_text_editor_shift_left (This.Void_Ptr);
+ end Shift_Left_Key;
+
+
+ procedure Shift_Right_Key
+ (This : in out Text_Editor'Class) is
+ begin
+ fl_text_editor_shift_right (This.Void_Ptr);
+ end Shift_Right_Key;
+
+
+ procedure Shift_Up_Key
+ (This : in out Text_Editor'Class) is
+ begin
+ fl_text_editor_shift_up (This.Void_Ptr);
+ end Shift_Up_Key;
+
+
+
+
+ procedure Ctrl_Home_Key
+ (This : in out Text_Editor'Class) is
+ begin
+ fl_text_editor_ctrl_home (This.Void_Ptr);
+ end Ctrl_Home_Key;
+
+
+ procedure Ctrl_End_Key
+ (This : in out Text_Editor'Class) is
+ begin
+ fl_text_editor_ctrl_end (This.Void_Ptr);
+ end Ctrl_End_Key;
+
+
+ procedure Ctrl_Page_Down_Key
+ (This : in out Text_Editor'Class) is
+ begin
+ fl_text_editor_ctrl_page_down (This.Void_Ptr);
+ end Ctrl_Page_Down_Key;
+
+
+ procedure Ctrl_Page_Up_Key
+ (This : in out Text_Editor'Class) is
+ begin
+ fl_text_editor_ctrl_page_up (This.Void_Ptr);
+ end Ctrl_Page_Up_Key;
+
+
+ procedure Ctrl_Down_Key
+ (This : in out Text_Editor'Class) is
+ begin
+ fl_text_editor_ctrl_down (This.Void_Ptr);
+ end Ctrl_Down_Key;
+
+
+ procedure Ctrl_Left_Key
+ (This : in out Text_Editor'Class) is
+ begin
+ fl_text_editor_ctrl_left (This.Void_Ptr);
+ end Ctrl_Left_Key;
+
+
+ procedure Ctrl_Right_Key
+ (This : in out Text_Editor'Class) is
+ begin
+ fl_text_editor_ctrl_right (This.Void_Ptr);
+ end Ctrl_Right_Key;
+
+
+ procedure Ctrl_Up_Key
+ (This : in out Text_Editor'Class) is
+ begin
+ fl_text_editor_ctrl_up (This.Void_Ptr);
+ end Ctrl_Up_Key;
+
+
+
+
+ procedure Ctrl_Shift_Home_Key
+ (This : in out Text_Editor'Class) is
+ begin
+ fl_text_editor_ctrl_shift_home (This.Void_Ptr);
+ end Ctrl_Shift_Home_Key;
+
+
+ procedure Ctrl_Shift_End_Key
+ (This : in out Text_Editor'Class) is
+ begin
+ fl_text_editor_ctrl_shift_end (This.Void_Ptr);
+ end Ctrl_Shift_End_Key;
+
+
+ procedure Ctrl_Shift_Page_Down_Key
+ (This : in out Text_Editor'Class) is
+ begin
+ fl_text_editor_ctrl_shift_page_down (This.Void_Ptr);
+ end Ctrl_Shift_Page_Down_Key;
+
+
+ procedure Ctrl_Shift_Page_Up_Key
+ (This : in out Text_Editor'Class) is
+ begin
+ fl_text_editor_ctrl_shift_page_up (This.Void_Ptr);
+ end Ctrl_Shift_Page_Up_Key;
+
+
+ procedure Ctrl_Shift_Down_Key
+ (This : in out Text_Editor'Class) is
+ begin
+ fl_text_editor_ctrl_shift_down (This.Void_Ptr);
+ end Ctrl_Shift_Down_Key;
+
+
+ procedure Ctrl_Shift_Left_Key
+ (This : in out Text_Editor'Class) is
+ begin
+ fl_text_editor_ctrl_shift_left (This.Void_Ptr);
+ end Ctrl_Shift_Left_Key;
+
+
+ procedure Ctrl_Shift_Right_Key
+ (This : in out Text_Editor'Class) is
+ begin
+ fl_text_editor_ctrl_shift_right (This.Void_Ptr);
+ end Ctrl_Shift_Right_Key;
+
+
+ procedure Ctrl_Shift_Up_Key
+ (This : in out Text_Editor'Class) is
+ begin
+ fl_text_editor_ctrl_shift_up (This.Void_Ptr);
+ end Ctrl_Shift_Up_Key;
+
+
+
+
procedure Remove_Key_Binding
(This : in out Text_Editor;
Key : in Shortcut_Key)
diff --git a/src/fltk-widgets-groups-text_displays-text_editors.ads b/src/fltk-widgets-groups-text_displays-text_editors.ads
index 8eafe25..1e9aeb6 100644
--- a/src/fltk-widgets-groups-text_displays-text_editors.ads
+++ b/src/fltk-widgets-groups-text_displays-text_editors.ads
@@ -8,6 +8,20 @@ package FLTK.Widgets.Groups.Text_Displays.Text_Editors is
type Insert_Mode is (Before, After);
-- type Tab_Navigation is (Insert_Char, Widget_Focus);
+ type Key_Func is access procedure
+ (This : in out Text_Editor'Class);
+
+ type Default_Key_Func is access procedure
+ (This : in out Text_Editor'Class;
+ Key : in Shortcut_Key);
+
+ type Key_Binding is record
+ Key : Shortcut_Key;
+ Func : Key_Func;
+ end record;
+
+ type Key_Binding_List is array (Positive) of Key_Binding;
+
@@ -19,53 +33,153 @@ package FLTK.Widgets.Groups.Text_Displays.Text_Editors is
+ procedure Default
+ (This : in out Text_Editor'Class;
+ Key : in Shortcut_Key);
+
+
+
+
procedure Undo
- (This : in out Text_Editor);
+ (This : in out Text_Editor'Class);
procedure Cut
- (This : in out Text_Editor);
+ (This : in out Text_Editor'Class);
procedure Copy
- (This : in out Text_Editor);
+ (This : in out Text_Editor'Class);
procedure Paste
- (This : in out Text_Editor);
+ (This : in out Text_Editor'Class);
procedure Delete
- (This : in out Text_Editor);
+ (This : in out Text_Editor'Class);
+
+ procedure Select_All
+ (This : in out Text_Editor'Class);
procedure Backspace_Key
- (This : in out Text_Editor);
+ (This : in out Text_Editor'Class);
+
+ procedure Insert_Key
+ (This : in out Text_Editor'Class);
+
+ procedure Enter_Key
+ (This : in out Text_Editor'Class);
+
+ procedure Ignore_Key
+ (This : in out Text_Editor'Class);
+
+
+
procedure Home_Key
- (This : in out Text_Editor);
+ (This : in out Text_Editor'Class);
procedure End_Key
- (This : in out Text_Editor);
-
- procedure Insert_Key
- (This : in out Text_Editor);
+ (This : in out Text_Editor'Class);
procedure Page_Down_Key
- (This : in out Text_Editor);
+ (This : in out Text_Editor'Class);
procedure Page_Up_Key
- (This : in out Text_Editor);
+ (This : in out Text_Editor'Class);
procedure Down_Key
- (This : in out Text_Editor);
+ (This : in out Text_Editor'Class);
procedure Left_Key
- (This : in out Text_Editor);
+ (This : in out Text_Editor'Class);
procedure Right_Key
- (This : in out Text_Editor);
+ (This : in out Text_Editor'Class);
procedure Up_Key
- (This : in out Text_Editor);
+ (This : in out Text_Editor'Class);
+
+
+
+
+ procedure Shift_Home_Key
+ (This : in out Text_Editor'Class);
+
+ procedure Shift_End_Key
+ (This : in out Text_Editor'Class);
+
+ procedure Shift_Page_Down_Key
+ (This : in out Text_Editor'Class);
+
+ procedure Shift_Page_Up_Key
+ (This : in out Text_Editor'Class);
+
+ procedure Shift_Down_Key
+ (This : in out Text_Editor'Class);
+
+ procedure Shift_Left_Key
+ (This : in out Text_Editor'Class);
+
+ procedure Shift_Right_Key
+ (This : in out Text_Editor'Class);
+
+ procedure Shift_Up_Key
+ (This : in out Text_Editor'Class);
+
+
+
+
+ procedure Ctrl_Home_Key
+ (This : in out Text_Editor'Class);
+
+ procedure Ctrl_End_Key
+ (This : in out Text_Editor'Class);
+
+ procedure Ctrl_Page_Down_Key
+ (This : in out Text_Editor'Class);
+
+ procedure Ctrl_Page_Up_Key
+ (This : in out Text_Editor'Class);
+
+ procedure Ctrl_Down_Key
+ (This : in out Text_Editor'Class);
+
+ procedure Ctrl_Left_Key
+ (This : in out Text_Editor'Class);
+
+ procedure Ctrl_Right_Key
+ (This : in out Text_Editor'Class);
+
+ procedure Ctrl_Up_Key
+ (This : in out Text_Editor'Class);
+
+
+
+
+ procedure Ctrl_Shift_Home_Key
+ (This : in out Text_Editor'Class);
+
+ procedure Ctrl_Shift_End_Key
+ (This : in out Text_Editor'Class);
+
+ procedure Ctrl_Shift_Page_Down_Key
+ (This : in out Text_Editor'Class);
+
+ procedure Ctrl_Shift_Page_Up_Key
+ (This : in out Text_Editor'Class);
+
+ procedure Ctrl_Shift_Down_Key
+ (This : in out Text_Editor'Class);
+
+ procedure Ctrl_Shift_Left_Key
+ (This : in out Text_Editor'Class);
+
+ procedure Ctrl_Shift_Right_Key
+ (This : in out Text_Editor'Class);
+
+ procedure Ctrl_Shift_Up_Key
+ (This : in out Text_Editor'Class);