aboutsummaryrefslogtreecommitdiff
path: root/src/fltk-widgets-groups-text_displays-text_editors.ads
diff options
context:
space:
mode:
Diffstat (limited to 'src/fltk-widgets-groups-text_displays-text_editors.ads')
-rw-r--r--src/fltk-widgets-groups-text_displays-text_editors.ads439
1 files changed, 0 insertions, 439 deletions
diff --git a/src/fltk-widgets-groups-text_displays-text_editors.ads b/src/fltk-widgets-groups-text_displays-text_editors.ads
deleted file mode 100644
index 3d1bdbe..0000000
--- a/src/fltk-widgets-groups-text_displays-text_editors.ads
+++ /dev/null
@@ -1,439 +0,0 @@
-
-
-private with
-
- Interfaces.C,
- Ada.Containers.Vectors;
-
-
-package FLTK.Widgets.Groups.Text_Displays.Text_Editors is
-
-
- type Text_Editor is new Text_Display with private;
-
- type Text_Editor_Reference (Data : not null access Text_Editor'Class) is
- limited null record with Implicit_Dereference => Data;
-
- 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 Key_Combo);
-
- type Key_Binding is record
- Key : Key_Combo;
- Func : Key_Func;
- end record;
-
- type Key_Binding_List is array (Positive range <>) of Key_Binding;
-
-
-
-
- package Forge is
-
- function Create
- (X, Y, W, H : in Integer;
- Text : in String := "")
- return Text_Editor;
-
- end Forge;
-
-
-
-
- procedure Default
- (This : in out Text_Editor'Class;
- Key : in Key_Combo);
-
-
-
-
- procedure Undo
- (This : in out Text_Editor'Class);
-
- procedure Cut
- (This : in out Text_Editor'Class);
-
- procedure Copy
- (This : in out Text_Editor'Class);
-
- procedure Paste
- (This : in out Text_Editor'Class);
-
- procedure Delete
- (This : in out Text_Editor'Class);
-
- procedure Select_All
- (This : in out Text_Editor'Class);
-
-
-
-
- procedure KF_Backspace
- (This : in out Text_Editor'Class);
-
- procedure KF_Insert
- (This : in out Text_Editor'Class);
-
- procedure KF_Enter
- (This : in out Text_Editor'Class);
-
- procedure KF_Ignore
- (This : in out Text_Editor'Class);
-
-
-
-
- procedure KF_Home
- (This : in out Text_Editor'Class);
-
- procedure KF_End
- (This : in out Text_Editor'Class);
-
- procedure KF_Page_Down
- (This : in out Text_Editor'Class);
-
- procedure KF_Page_Up
- (This : in out Text_Editor'Class);
-
- procedure KF_Down
- (This : in out Text_Editor'Class);
-
- procedure KF_Left
- (This : in out Text_Editor'Class);
-
- procedure KF_Right
- (This : in out Text_Editor'Class);
-
- procedure KF_Up
- (This : in out Text_Editor'Class);
-
-
-
-
- procedure KF_Shift_Home
- (This : in out Text_Editor'Class);
-
- procedure KF_Shift_End
- (This : in out Text_Editor'Class);
-
- procedure KF_Shift_Page_Down
- (This : in out Text_Editor'Class);
-
- procedure KF_Shift_Page_Up
- (This : in out Text_Editor'Class);
-
- procedure KF_Shift_Down
- (This : in out Text_Editor'Class);
-
- procedure KF_Shift_Left
- (This : in out Text_Editor'Class);
-
- procedure KF_Shift_Right
- (This : in out Text_Editor'Class);
-
- procedure KF_Shift_Up
- (This : in out Text_Editor'Class);
-
-
-
-
- procedure KF_Ctrl_Home
- (This : in out Text_Editor'Class);
-
- procedure KF_Ctrl_End
- (This : in out Text_Editor'Class);
-
- procedure KF_Ctrl_Page_Down
- (This : in out Text_Editor'Class);
-
- procedure KF_Ctrl_Page_Up
- (This : in out Text_Editor'Class);
-
- procedure KF_Ctrl_Down
- (This : in out Text_Editor'Class);
-
- procedure KF_Ctrl_Left
- (This : in out Text_Editor'Class);
-
- procedure KF_Ctrl_Right
- (This : in out Text_Editor'Class);
-
- procedure KF_Ctrl_Up
- (This : in out Text_Editor'Class);
-
-
-
-
- procedure KF_Ctrl_Shift_Home
- (This : in out Text_Editor'Class);
-
- procedure KF_Ctrl_Shift_End
- (This : in out Text_Editor'Class);
-
- procedure KF_Ctrl_Shift_Page_Down
- (This : in out Text_Editor'Class);
-
- procedure KF_Ctrl_Shift_Page_Up
- (This : in out Text_Editor'Class);
-
- procedure KF_Ctrl_Shift_Down
- (This : in out Text_Editor'Class);
-
- procedure KF_Ctrl_Shift_Left
- (This : in out Text_Editor'Class);
-
- procedure KF_Ctrl_Shift_Right
- (This : in out Text_Editor'Class);
-
- procedure KF_Ctrl_Shift_Up
- (This : in out Text_Editor'Class);
-
-
-
-
- Default_Key_Bindings : constant Key_Binding_List :=
- ((Mod_None + Enter_Key, KF_Enter'Access),
- (Mod_None + Keypad_Enter_Key, KF_Enter'Access),
- (Mod_None + Backspace_Key, KF_Backspace'Access),
- (Mod_None + Insert_Key, KF_Insert'Access),
-
- (Mod_None + Delete_Key, Delete'Access),
- (Mod_Ctrl + 'c', Copy'Access),
- (Mod_Ctrl + 'v', Paste'Access),
- (Mod_Ctrl + 'x', Cut'Access),
- (Mod_Ctrl + 'z', Undo'Access),
- (Mod_Ctrl + 'a', Select_All'Access),
-
- (Mod_None + Home_Key, KF_Home'Access),
- (Mod_None + End_Key, KF_End'Access),
- (Mod_None + Page_Down_Key, KF_Page_Down'Access),
- (Mod_None + Page_Up_Key, KF_Page_Up'Access),
- (Mod_None + Down_Key, KF_Down'Access),
- (Mod_None + Left_Key, KF_Left'Access),
- (Mod_None + Right_Key, KF_Right'Access),
- (Mod_None + Up_Key, KF_Up'Access),
-
- (Mod_Shift + Home_Key, KF_Shift_Home'Access),
- (Mod_Shift + End_Key, KF_Shift_End'Access),
- (Mod_Shift + Page_Down_Key, KF_Shift_Page_Down'Access),
- (Mod_Shift + Page_Up_Key, KF_Shift_Page_Up'Access),
- (Mod_Shift + Down_Key, KF_Shift_Down'Access),
- (Mod_Shift + Left_Key, KF_Shift_Left'Access),
- (Mod_Shift + Right_Key, KF_Shift_Right'Access),
- (Mod_Shift + Up_Key, KF_Shift_Up'Access),
-
- (Mod_Ctrl + Home_Key, KF_Ctrl_Home'Access),
- (Mod_Ctrl + End_Key, KF_Ctrl_End'Access),
- (Mod_Ctrl + Page_Down_Key, KF_Ctrl_Page_Down'Access),
- (Mod_Ctrl + Page_Up_Key, KF_Ctrl_Page_Up'Access),
- (Mod_Ctrl + Down_Key, KF_Ctrl_Down'Access),
- (Mod_Ctrl + Left_Key, KF_Ctrl_Left'Access),
- (Mod_Ctrl + Right_Key, KF_Ctrl_Right'Access),
- (Mod_Ctrl + Up_Key, KF_Ctrl_Up'Access),
-
- (Mod_Ctrl + Mod_Shift + Home_Key, KF_Ctrl_Shift_Home'Access),
- (Mod_Ctrl + Mod_Shift + End_Key, KF_Ctrl_Shift_End'Access),
- (Mod_Ctrl + Mod_Shift + Page_Down_Key, KF_Ctrl_Shift_Page_Down'Access),
- (Mod_Ctrl + Mod_Shift + Page_Up_Key, KF_Ctrl_Shift_Page_Up'Access),
- (Mod_Ctrl + Mod_Shift + Down_Key, KF_Ctrl_Shift_Down'Access),
- (Mod_Ctrl + Mod_Shift + Left_Key, KF_Ctrl_Shift_Left'Access),
- (Mod_Ctrl + Mod_Shift + Right_Key, KF_Ctrl_Shift_Right'Access),
- (Mod_Ctrl + Mod_Shift + Up_Key, KF_Ctrl_Shift_Up'Access));
-
-
-
-
- procedure Add_Key_Binding
- (This : in out Text_Editor;
- Key : in Key_Combo;
- Func : in Key_Func);
-
- procedure Add_Key_Binding
- (This : in out Text_Editor;
- Bind : in Key_Binding);
-
- procedure Add_Key_Bindings
- (This : in out Text_Editor;
- List : in Key_Binding_List);
-
- function Get_Bound_Key_Function
- (This : in Text_Editor;
- Key : in Key_Combo)
- return Key_Func;
-
- procedure Remove_Key_Binding
- (This : in out Text_Editor;
- Key : in Key_Combo);
-
- procedure Remove_Key_Binding
- (This : in out Text_Editor;
- Bind : in Key_Binding);
-
- procedure Remove_Key_Bindings
- (This : in out Text_Editor;
- List : in Key_Binding_List);
-
- procedure Remove_All_Key_Bindings
- (This : in out Text_Editor);
-
- function Get_Default_Key_Function
- (This : in Text_Editor)
- return Default_Key_Func;
-
- procedure Set_Default_Key_Function
- (This : in out Text_Editor;
- Func : in Default_Key_Func);
-
-
-
-
- function Get_Insert_Mode
- (This : in Text_Editor)
- return Insert_Mode;
-
- procedure Set_Insert_Mode
- (This : in out Text_Editor;
- To : in Insert_Mode);
-
-
-
-
- -- function Get_Tab_Nav_Mode
- -- (This : in Text_Editor)
- -- return Tab_Navigation;
-
- -- procedure Set_Tab_Nav_Mode
- -- (This : in out Text_Editor;
- -- To : in Tab_Navigation);
-
-
-
-
- procedure Draw
- (This : in out Text_Editor);
-
- function Handle
- (This : in out Text_Editor;
- Event : in Event_Kind)
- return Event_Outcome;
-
-
-private
-
-
- package Binding_Vectors is new Ada.Containers.Vectors
- (Index_Type => Positive, Element_Type => Key_Binding);
-
-
-
-
- type Text_Editor is new Text_Display with
- record
- Bindings : Binding_Vectors.Vector;
- Default_Func : Default_Key_Func;
- end record;
-
- overriding procedure Finalize
- (This : in out Text_Editor);
-
-
-
-
- function Key_Func_Hook
- (K : in Interfaces.C.int;
- E : in System.Address)
- return Interfaces.C.int;
- pragma Convention (C, Key_Func_Hook);
-
-
-
-
- package Editor_Convert is new System.Address_To_Access_Conversions (Text_Editor'Class);
-
-
-
-
- pragma Inline (Default);
-
-
- pragma Inline (Undo);
- pragma Inline (Cut);
- pragma Inline (Copy);
- pragma Inline (Paste);
- pragma Inline (Delete);
- pragma Inline (Select_All);
-
-
- pragma Inline (KF_Backspace);
- pragma Inline (KF_Insert);
- pragma Inline (KF_Enter);
- pragma Inline (KF_Ignore);
-
-
- pragma Inline (KF_Home);
- pragma Inline (KF_End);
- pragma Inline (KF_Page_Down);
- pragma Inline (KF_Page_Up);
- pragma Inline (KF_Down);
- pragma Inline (KF_Left);
- pragma Inline (KF_Right);
- pragma Inline (KF_Up);
-
-
- pragma Inline (KF_Shift_Home);
- pragma Inline (KF_Shift_End);
- pragma Inline (KF_Shift_Page_Down);
- pragma Inline (KF_Shift_Page_Up);
- pragma Inline (KF_Shift_Down);
- pragma Inline (KF_Shift_Left);
- pragma Inline (KF_Shift_Right);
- pragma Inline (KF_Shift_Up);
-
-
- pragma Inline (KF_Ctrl_Home);
- pragma Inline (KF_Ctrl_End);
- pragma Inline (KF_Ctrl_Page_Down);
- pragma Inline (KF_Ctrl_Page_Up);
- pragma Inline (KF_Ctrl_Down);
- pragma Inline (KF_Ctrl_Left);
- pragma Inline (KF_Ctrl_Right);
- pragma Inline (KF_Ctrl_Up);
-
-
- pragma Inline (KF_Ctrl_Shift_Home);
- pragma Inline (KF_Ctrl_Shift_End);
- pragma Inline (KF_Ctrl_Shift_Page_Down);
- pragma Inline (KF_Ctrl_Shift_Page_Up);
- pragma Inline (KF_Ctrl_Shift_Down);
- pragma Inline (KF_Ctrl_Shift_Left);
- pragma Inline (KF_Ctrl_Shift_Right);
- pragma Inline (KF_Ctrl_Shift_Up);
-
-
- pragma Inline (Add_Key_Binding);
- pragma Inline (Remove_All_Key_Bindings);
- pragma Inline (Get_Default_Key_Function);
- pragma Inline (Set_Default_Key_Function);
-
-
- pragma Inline (Get_Insert_Mode);
- pragma Inline (Set_Insert_Mode);
-
-
- -- pragma Inline (Get_Tab_Nav_Mode);
- -- pragma Inline (Set_Tab_Nav_Mode);
-
-
- pragma Inline (Draw);
- pragma Inline (Handle);
-
-
-end FLTK.Widgets.Groups.Text_Displays.Text_Editors;
-