with FLTK.Widgets.Groups.Windows.Double; use FLTK.Widgets.Groups.Windows.Double; with FLTK.Widgets.Menus; use FLTK.Widgets.Menus; with FLTK.Text_Buffers; use FLTK.Text_Buffers; 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; package Editor_Windows is type Editor_Window is new Double_Window with private; 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 Text_Buffer_Cursor; procedure Set_Buffer (This : in out Editor_Window; Buff : in out Text_Buffer); function Get_Menu (This : in out Editor_Window) return 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); type About_Window is new Double_Window with private; 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 Double_Window with private; 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 Reset (This : in out Find_Window); type Replace_Window is new Double_Window with private; 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 Reset (This : in out Replace_Window); private use FLTK.Widgets.Groups.Text_Displays.Text_Editors; use FLTK.Widgets.Menus.Menu_Bars; use FLTK.Widgets.Boxes; use FLTK.Widgets; type Editor_Window is new Double_Window with record Bar : aliased Menu_Bar; Editor : Text_Editor; end record; type Hide_Callback is new Widget_Callback with null record; overriding procedure Call (This : in Hide_Callback; Item : in out Widget'Class); type About_Window is new Double_Window with record Heading : Box; Blurb : Box; Author : Box; end record; type Find_Window is new Double_Window with record Placeholder : Integer; end record; type Replace_Window is new Double_Window with record Placeholder : Integer; end record; end Editor_Windows;