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.adb538
1 files changed, 0 insertions, 538 deletions
diff --git a/src/editor_windows.adb b/src/editor_windows.adb
deleted file mode 100644
index d70ee71..0000000
--- a/src/editor_windows.adb
+++ /dev/null
@@ -1,538 +0,0 @@
-
-
-with FLTK.Enums; use FLTK.Enums;
-with FLTK.Widgets;
-with FLTK.Widgets.Groups;
-with FLTK.Widgets.Groups.Windows;
-with FLTK.Widgets.Groups.Windows.Double;
-with FLTK.Widgets.Groups.Text_Displays.Text_Editors;
-with FLTK.Widgets.Menus;
-with FLTK.Widgets.Menus.Menu_Bars;
-with FLTK.Widgets.Boxes;
-with FLTK.Widgets.Inputs;
-with FLTK.Widgets.Buttons;
-with FLTK.Widgets.Buttons.Enter;
-with FLTK.Widgets.Buttons.Light.Check;
-with FLTK.Images.RGB.PNG;
-with FLTK.Text_Buffers;
-use type FLTK.Widgets.Buttons.State;
-
-
-package body Editor_Windows is
-
-
- package W renames FLTK.Widgets;
- package G renames FLTK.Widgets.Groups;
- package WN renames FLTK.Widgets.Groups.Windows;
- package WD renames FLTK.Widgets.Groups.Windows.Double;
- package TE renames FLTK.Widgets.Groups.Text_Displays.Text_Editors;
- package MB renames FLTK.Widgets.Menus.Menu_Bars;
- package BX renames FLTK.Widgets.Boxes;
- package IP renames FLTK.Widgets.Inputs;
- package BU renames FLTK.Widgets.Buttons;
- package EN renames FLTK.Widgets.Buttons.Enter;
- package LC renames FLTK.Widgets.Buttons.Light.Check;
- package PN renames FLTK.Images.RGB.PNG;
-
-
-
-
- Logo : PN.PNG_Image := PN.Create ("logo.png");
-
-
-
-
- -- Editor_Window functions and procedures
-
- function Create
- (X, Y, W, H : in Integer;
- Label_Text : in String)
- return Editor_Window
- is
- Width : Integer := Min_Editor_Width;
- Height : Integer := Min_Editor_Height;
- Menu_Height : Integer := 22;
- begin
- if Width < W then
- Width := W;
- end if;
-
- if Height < H then
- Height := H;
- end if;
-
- return This : Editor_Window :=
- (WD.Double_Window'(WD.Create (X, Y, Width, Height, Label_Text)) with
-
- Editor => TE.Text_Editor'(TE.Create
- (0, Menu_Height, Width, Height - Menu_Height, "")),
- Bar => MB.Menu_Bar'(MB.Create
- (0, 0, Width, Menu_Height, ""))) do
-
- This.Add (This.Editor);
- This.Add (This.Bar);
- This.Bar.Set_Box (No_Box);
- This.Editor.Set_Text_Font (Courier);
- This.Set_Resizable (This.Editor);
- This.Set_Size_Range (Min_Editor_Width, Min_Editor_Height);
- This.Set_Icon (Logo);
- 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 FLTK.Text_Buffers.Text_Buffer_Cursor is
- begin
- return This.Editor.Get_Buffer;
- end Get_Buffer;
-
-
-
-
- procedure Set_Buffer
- (This : in out Editor_Window;
- Buff : in out FLTK.Text_Buffers.Text_Buffer) is
- begin
- This.Editor.Set_Buffer (Buff);
- end Set_Buffer;
-
-
-
-
- function Get_Menu
- (This : in out Editor_Window)
- return FLTK.Widgets.Menus.Menu_Cursor is
- begin
- return Ref : FLTK.Widgets.Menus.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;
-
-
-
-
- function Get_Insert_Position
- (This : in Editor_Window)
- return Natural is
- begin
- return This.Editor.Get_Insert_Position;
- end Get_Insert_Position;
-
-
-
-
- procedure Set_Insert_Position
- (This : in out Editor_Window;
- Pos : in Natural) is
- begin
- This.Editor.Set_Insert_Position (Pos);
- end Set_Insert_Position;
-
-
-
-
- procedure Show_Insert_Position
- (This : in out Editor_Window) is
- begin
- This.Editor.Show_Insert_Position;
- end Show_Insert_Position;
-
-
-
-
- -- used to hide about/find/replace/etc windows instead
- -- of constantly creating and destroying them
-
- Hide_CB : aliased Hide_Callback;
-
- overriding procedure Call
- (This : in Hide_Callback;
- Item : in out W.Widget'Class)
- is
- P : access G.Group'Class;
- begin
- if Item in WN.Window'Class then
- WN.Window (Item).Hide;
- else
- P := Item.Parent;
- loop
- if P = null then
- return;
- end if;
- exit when P.all in WN.Window'Class;
- P := P.Parent;
- end loop;
- WN.Window (P.all).Hide;
- end if;
- end Call;
-
-
-
-
- -- About_Window functions and procedures
-
- function Create
- return About_Window
- is
- My_Width : Integer := 350;
- My_Height : Integer := 250;
-
- Logo_Line : Integer := 30;
- Logo_Width : Integer := 50;
- Logo_Height : Integer := 50;
-
- Button_Width : Integer := 140;
- Button_Height : Integer := 40;
-
- Heading_Line : Integer := 90;
- Blurb_Line : Integer := 132;
- Author_Line : Integer := 157;
- Button_Line : Integer := 190;
-
- Heading_Size : Integer := 22;
- Text_Size : Integer := 12;
-
- Heading_Text : String := "Adapad 0.5";
- Blurb_Text : String := "FLTK based simple text editor written in Ada";
- Author_Text : String := "Programmed by Jed Barber";
- begin
- return This : About_Window :=
- (WD.Double_Window'(WD.Create (0, 0, My_Width, My_Height, "About Adapad")) with
-
- Picture => BX.Box'(BX.Create
- ((My_Width - Logo_Width) / 2,
- Logo_Line, Logo_Width, Logo_Height, "")),
- Heading => BX.Box'(BX.Create
- (0, Heading_Line, My_Width, Heading_Size, Heading_Text)),
- Blurb => BX.Box'(BX.Create
- (0, Blurb_Line, My_Width, Text_Size, Blurb_Text)),
- Author => BX.Box'(BX.Create
- (0, Author_Line, My_Width, Text_Size, Author_Text)),
- Dismiss => EN.Enter_Button'(EN.Create
- ((My_Width - Button_Width) / 2,
- Button_Line, Button_Width, Button_Height, "Close"))) do
-
- This.Add (This.Picture);
- This.Picture.Set_Image (Logo);
- This.Add (This.Heading);
- This.Heading.Set_Label_Size (W.Font_Size (Heading_Size));
- This.Add (This.Blurb);
- This.Add (This.Author);
- This.Add (This.Dismiss);
- This.Dismiss.Set_Callback (Hide_CB'Access);
-
- This.Set_Callback (Hide_CB'Access);
- This.Set_Icon (Logo);
- This.Set_Modal;
- end return;
- end Create;
-
-
-
-
- function Create
- (X, Y, W, H : in Integer;
- Label_Text : in String)
- return About_Window is
- begin
- return Create;
- end Create;
-
-
-
-
- function Create
- (W, H : in Integer)
- return About_Window is
- begin
- return Create;
- end Create;
-
-
-
-
- -- Find_Window functions and procedures
-
- Find_M : aliased Find_Marshaller;
-
- overriding procedure Call
- (This : in Find_Marshaller;
- Item : in out W.Widget'Class)
- is
- type Find_Window_Access is access all Find_Window;
- Dialog : access Find_Window := Find_Window_Access (Item.Parent);
- begin
- if Dialog.Callback /= null then
- Dialog.Callback.Call
- (Dialog.Find_What.Get_Value,
- Dialog.Match_Case.Get_State = BU.On);
- end if;
- end Call;
-
-
-
-
- function Create
- return Find_Window
- is
- My_Width : Integer := 350;
- My_Height : Integer := 130;
-
- Button_Width : Integer := 140;
- Button_Height : Integer := 40;
-
- Input_Line : Integer := 10;
- Case_Line : Integer := 50;
- Button_Line : Integer := 80;
-
- Input_Width : Integer := 240;
- Input_Height : Integer := 25;
- Input_Margin_Right : Integer := 10;
-
- Check_Width : Integer := 100;
- Check_Height : Integer := 20;
- Case_Margin_Left : Integer := 50;
-
- Text_Size : Integer := 12;
- begin
- return This : Find_Window :=
- (WD.Double_Window'(WD.Create (0, 0, My_Width, My_Height, "Find")) with
-
- Find_What => IP.Input'(IP.Create
- (My_Width - Input_Width - Input_Margin_Right,
- Input_Line, Input_Width, Input_Height, "Find what:")),
- Match_Case => LC.Check_Button'(LC.Create
- (Case_Margin_Left, Case_Line, Check_Width, Check_Height, "Match case")),
- Cancel => BU.Button'(BU.Create
- ((My_Width - 2 * Button_Width) / 3,
- Button_Line, Button_Width, Button_Height, "Cancel")),
- Start => EN.Enter_Button'(EN.Create
- ((My_Width - 2 * Button_Width) * 2 / 3 + Button_Width,
- Button_Line, Button_Width, Button_Height, "Find")),
-
- Callback => null) do
-
- This.Add (This.Find_What);
- This.Add (This.Match_Case);
- This.Add (This.Cancel);
- This.Cancel.Set_Callback (Hide_CB'Access);
- This.Add (This.Start);
- This.Start.Set_Callback (Find_M'Access);
-
- This.Set_Callback (Hide_CB'Access);
- This.Set_Icon (Logo);
- This.Set_Modal;
- end return;
- end Create;
-
-
-
-
- function Create
- (X, Y, W, H : in Integer;
- Label_Text : in String)
- return Find_Window is
- begin
- return Create;
- end Create;
-
-
-
-
- function Create
- (W, H : in Integer)
- return Find_Window is
- begin
- return Create;
- end Create;
-
-
-
-
- procedure Set_Find_Callback
- (This : in out Find_Window;
- Func : not null access Find_Callback'Class) is
- begin
- This.Callback := Func;
- end Set_Find_Callback;
-
-
-
-
- -- Replace_Window functions and procedures
-
- Replace_M : aliased Replace_Marshaller;
-
- overriding procedure Call
- (This : in Replace_Marshaller;
- Item : in out W.Widget'Class)
- is
- type Replace_Window_Access is access all Replace_Window;
- Dialog : access Replace_Window := Replace_Window_Access (Item.Parent);
- begin
- if Dialog.Callback /= null then
- Dialog.Callback.Call
- (Dialog.Find_What.Get_Value,
- Dialog.Replace_With.Get_Value,
- Dialog.Match_Case.Get_State = BU.On,
- Dialog.Replace_All.Get_State = BU.On);
- end if;
- end Call;
-
-
-
-
- function Create
- return Replace_Window
- is
- My_Width : Integer := 350;
- My_Height : Integer := 180;
-
- Button_Width : Integer := 140;
- Button_Height : Integer := 40;
-
- Find_Line : Integer := 10;
- Replace_Line : Integer := 40;
- Match_Line : Integer := 80;
- Rep_All_Line : Integer := 100;
- Button_Line : Integer := 130;
-
- Input_Width : Integer := 220;
- Input_Height : Integer := 25;
- Input_Margin_Right : Integer := 10;
-
- Check_Width : Integer := 100;
- Check_Height : Integer := 20;
- Check_Margin_Left : Integer := 50;
-
- Text_Size : Integer := 12;
- begin
- return This : Replace_Window :=
- (WD.Double_Window'(WD.Create (0, 0, My_Width, My_Height, "Replace")) with
-
- Find_What => IP.Input'(IP.Create
- (My_Width - Input_Width - Input_Margin_Right,
- Find_Line, Input_Width, Input_Height, "Find what:")),
- Replace_With => IP.Input'(IP.Create
- (My_Width - Input_Width - Input_Margin_Right,
- Replace_Line, Input_Width, Input_Height, "Replace with:")),
- Match_Case => LC.Check_Button'(LC.Create
- (Check_Margin_Left, Match_Line,
- Check_Width, Check_Height, "Match case")),
- Replace_All => LC.Check_Button'(LC.Create
- (Check_Margin_Left, Rep_All_Line,
- Check_Width, Check_Height, "Replace all")),
- Cancel => BU.Button'(BU.Create
- ((My_Width - 2 * Button_Width) / 3,
- Button_Line, Button_Width, Button_Height, "Cancel")),
- Start => EN.Enter_Button'(EN.Create
- ((My_Width - 2 * Button_Width) * 2 / 3 + Button_Width,
- Button_Line, Button_Width, Button_Height, "Replace")),
-
- Callback => null) do
-
- This.Add (This.Find_What);
- This.Add (This.Replace_With);
- This.Add (This.Match_Case);
- This.Add (This.Replace_All);
- This.Add (This.Cancel);
- This.Cancel.Set_Callback (Hide_CB'Access);
- This.Add (This.Start);
- This.Start.Set_Callback (Replace_M'Access);
-
- This.Set_Callback (Hide_CB'Access);
- This.Set_Icon (Logo);
- This.Set_Modal;
- end return;
- end Create;
-
-
-
-
- function Create
- (X, Y, W, H : in Integer;
- Label_Text : in String)
- return Replace_Window is
- begin
- return Create;
- end Create;
-
-
-
-
- function Create
- (W, H : in Integer)
- return Replace_Window is
- begin
- return Create;
- end Create;
-
-
-
-
- procedure Set_Replace_Callback
- (This : in out Replace_Window;
- Func : not null access Replace_Callback'Class) is
- begin
- This.Callback := Func;
- end Set_Replace_Callback;
-
-
-end Editor_Windows;
-