summaryrefslogtreecommitdiff
path: root/src/editor_windows.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/editor_windows.adb')
-rw-r--r--src/editor_windows.adb118
1 files changed, 118 insertions, 0 deletions
diff --git a/src/editor_windows.adb b/src/editor_windows.adb
new file mode 100644
index 0000000..7fdf744
--- /dev/null
+++ b/src/editor_windows.adb
@@ -0,0 +1,118 @@
+
+
+with FLTK.Enums;
+use FLTK.Enums;
+
+
+package body Editor_Windows is
+
+
+ function Create
+ (X, Y, W, H : in Integer;
+ Label_Text : in String)
+ return Editor_Window is
+
+ Width, Height : Integer;
+
+ begin
+ if W < 300 then Width := 300; else Width := W; end if;
+ if H < 60 then Height := 60; else Height := H; end if;
+
+ return This : Editor_Window :=
+ (Double_Window'(Create (X, Y, Width, Height, Label_Text)) with
+ Editor => Text_Editor'(Create (0, 30, Width, Height - 30, "")),
+ Bar => Menu_Bar'(Create (0, 0, Width, 30, ""))) do
+ This.Add (This.Editor);
+ This.Add (This.Bar);
+ This.Editor.Set_Text_Font (Courier);
+ end return;
+ end Create;
+
+
+
+
+ function Create
+ (W, H : in Integer)
+ return Editor_Window is
+ begin
+ return Create (0, 0, W, H, "(Untitled)");
+ end Create;
+
+
+
+
+ function Get_Buffer
+ (This : in Editor_Window)
+ return Text_Buffer_Cursor is
+ begin
+ return This.Editor.Get_Buffer;
+ end Get_Buffer;
+
+
+
+
+ procedure Set_Buffer
+ (This : in out Editor_Window;
+ Buff : in out Text_Buffer) is
+ begin
+ This.Editor.Set_Buffer (Buff);
+ end Set_Buffer;
+
+
+
+
+ function Get_Menu
+ (This : in out Editor_Window)
+ return Menu_Cursor is
+ begin
+ return Ref : Menu_Cursor (This.Bar'Access);
+ end Get_Menu;
+
+
+
+
+ procedure Undo
+ (This : in out Editor_Window) is
+ begin
+ This.Editor.Undo;
+ end Undo;
+
+
+
+
+ procedure Cut
+ (This : in out Editor_Window) is
+ begin
+ This.Editor.Cut;
+ end Cut;
+
+
+
+
+ procedure Copy
+ (This : in out Editor_Window) is
+ begin
+ This.Editor.Copy;
+ end Copy;
+
+
+
+
+ procedure Paste
+ (This : in out Editor_Window) is
+ begin
+ This.Editor.Paste;
+ end Paste;
+
+
+
+
+ procedure Delete
+ (This : in out Editor_Window) is
+ begin
+ This.Editor.Delete;
+ end Delete;
+
+
+end Editor_Windows;
+