with FLTK.Widgets.Groups.Windows.Double; with FLTK.Widgets.Menus; with FLTK.Text_Buffers; private with FLTK.Widgets; private with FLTK.Widgets.Groups.Text_Displays.Text_Editors; private with FLTK.Widgets.Menus.Menu_Bars; private with FLTK.Widgets.Boxes; private with FLTK.Widgets.Inputs; private with FLTK.Widgets.Buttons; private with FLTK.Widgets.Buttons.Enter; private with FLTK.Widgets.Buttons.Light.Check; package Editor_Windows is type Editor_Window is new FLTK.Widgets.Groups.Windows.Double.Double_Window with private; Min_Editor_Height : Integer := 60; Min_Editor_Width : Integer := 300; function Create (X, Y, W, H : in Integer; Label_Text : in String) return Editor_Window; function Create (W, H : in Integer) return Editor_Window; function Get_Buffer (This : in Editor_Window) return FLTK.Text_Buffers.Text_Buffer_Cursor; procedure Set_Buffer (This : in out Editor_Window; Buff : in out FLTK.Text_Buffers.Text_Buffer); function Get_Menu (This : in out Editor_Window) return FLTK.Widgets.Menus.Menu_Cursor; procedure Undo (This : in out Editor_Window); procedure Cut (This : in out Editor_Window); procedure Copy (This : in out Editor_Window); procedure Paste (This : in out Editor_Window); procedure Delete (This : in out Editor_Window); function Get_Insert_Position (This : in Editor_Window) return Natural; procedure Set_Insert_Position (This : in out Editor_Window; Pos : in Natural); procedure Show_Insert_Position (This : in out Editor_Window); type About_Window is new FLTK.Widgets.Groups.Windows.Double.Double_Window with private; function Create return About_Window; function Create (X, Y, W, H : in Integer; Label_Text : in String) return About_Window; function Create (W, H : in Integer) return About_Window; type Find_Window is new FLTK.Widgets.Groups.Windows.Double.Double_Window with private; type Find_Callback is interface; procedure Call (This : in Find_Callback; Item : in String; Match_Case : in Boolean) is abstract; function Create return Find_Window; function Create (X, Y, W, H : in Integer; Label_Text : in String) return Find_Window; function Create (W, H : in Integer) return Find_Window; procedure Set_Find_Callback (This : in out Find_Window; Func : not null access Find_Callback'Class); type Replace_Window is new FLTK.Widgets.Groups.Windows.Double.Double_Window with private; type Replace_Callback is interface; procedure Call (This : in Replace_Callback; Item, Replace_With : in String; Match_Case, Rep_All : in Boolean) is abstract; function Create return Replace_Window; function Create (X, Y, W, H : in Integer; Label_Text : in String) return Replace_Window; function Create (W, H : in Integer) return Replace_Window; procedure Set_Replace_Callback (This : in out Replace_Window; Func : not null access Replace_Callback'Class); private type Editor_Window is new FLTK.Widgets.Groups.Windows.Double.Double_Window with record Bar : aliased FLTK.Widgets.Menus.Menu_Bars.Menu_Bar; Editor : FLTK.Widgets.Groups.Text_Displays.Text_Editors.Text_Editor; end record; type Hide_Callback is new FLTK.Widgets.Widget_Callback with null record; overriding procedure Call (This : in Hide_Callback; Item : in out FLTK.Widgets.Widget'Class); type About_Window is new FLTK.Widgets.Groups.Windows.Double.Double_Window with record Picture : FLTK.Widgets.Boxes.Box; Heading : FLTK.Widgets.Boxes.Box; Blurb : FLTK.Widgets.Boxes.Box; Author : FLTK.Widgets.Boxes.Box; Dismiss : FLTK.Widgets.Buttons.Enter.Enter_Button; end record; type Find_Marshaller is new FLTK.Widgets.Widget_Callback with null record; overriding procedure Call (This : in Find_Marshaller; Item : in out FLTK.Widgets.Widget'Class); type Find_Window is new FLTK.Widgets.Groups.Windows.Double.Double_Window with record Find_What : FLTK.Widgets.Inputs.Input; Match_Case : FLTK.Widgets.Buttons.Light.Check.Check_Button; Cancel : FLTK.Widgets.Buttons.Button; Start : FLTK.Widgets.Buttons.Enter.Enter_Button; Callback : access Find_Callback'Class; end record; type Replace_Marshaller is new FLTK.Widgets.Widget_Callback with null record; overriding procedure Call (This : in Replace_Marshaller; Item : in out FLTK.Widgets.Widget'Class); type Replace_Window is new FLTK.Widgets.Groups.Windows.Double.Double_Window with record Find_What, Replace_With : FLTK.Widgets.Inputs.Input; Match_Case, Replace_All : FLTK.Widgets.Buttons.Light.Check.Check_Button; Cancel : FLTK.Widgets.Buttons.Button; Start : FLTK.Widgets.Buttons.Enter.Enter_Button; Callback : access Replace_Callback'Class; end record; end Editor_Windows;