private with FLTK.Widgets.Inputs, FLTK.Widgets.Buttons.Enter, FLTK.Widgets.Buttons.Light.Check; package Windows.Replace is type Replace_Window is new Window with private; type Replace_Callback is access procedure (Item, Replace_With : in String; Match_Case, Rep_All : in Boolean); 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 : in Replace_Callback); private type Replace_Window is new 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 : Replace_Callback; end record; end Windows.Replace;