with FLTK.Widgets.Groups.Windows.Double, Grids; private with FLTK.Widgets.Boxes; package Displays is type Display is new FLTK.Widgets.Groups.Windows.Double.Double_Window with private; type Keyboard_Callback is access function (Key : in FLTK.Shortcut_Key) return FLTK.Event_Outcome; function Create (X, Y, W, H : in Integer; Text : in String) return Display; function Create (W, H : in Integer) return Display; function Create return Display; procedure Set_Grid (This : in out Display; To : in out Grids.Grid); procedure Adjust_Grid (This : in out Display; Cols, Rows : in Natural); procedure Ensure_Correct_Size (This : in out Display); procedure Centre_On_Screen (This : in out Display); procedure Set_Message (This : in out Display; Msg : in String); procedure Set_Keyboard_Callback (This : in out Display; Func : in Keyboard_Callback); function Handle (This : in out Display; Event : in FLTK.Event_Kind) return FLTK.Event_Outcome; private type Display is new FLTK.Widgets.Groups.Windows.Double.Double_Window with record Message_Box : FLTK.Widgets.Boxes.Box; Current_Grid : access Grids.Grid; Key_Func : Keyboard_Callback; end record; Text_Size : constant FLTK.Font_Size := 12; Message_Box_Width : constant Integer := 500; Message_Box_Height : constant Integer := 100; end Displays;