with FLTK.Widgets.Groups.Windows.Double; with FLTK.Widgets.Menus; with FLTK.Text_Buffers; with FLTK.Widgets.Groups.Text_Displays; private with FLTK.Widgets.Groups.Text_Displays.Text_Editors; private with FLTK.Widgets.Menus.Menu_Bars; package Windows.Editor is type Editor_Window is new FLTK.Widgets.Groups.Windows.Double.Double_Window with private; type Wrap_Mode is new FLTK.Widgets.Groups.Text_Displays.Wrap_Mode; 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); procedure Next_Word (This : in out Editor_Window); procedure Previous_Word (This : in out Editor_Window); procedure Set_Wrap_Mode (This : in out Editor_Window; Mode : in Wrap_Mode; Margin : in Natural := 0); procedure Set_Linenumber_Width (This : in out Editor_Window; Width : in Natural); 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; end Windows.Editor;