private with Tiles.Libraries;
package Widgets.Containers.Keen_Panels is
type Keen_Panel is new Container with private;
type A_Keen_Panel is access all Keen_Panel'Class;
function Create_Panel( view : not null access Game_Views.Game_View'Class;
id : String;
libName : String ) return A_Keen_Panel;
pragma Precondition( id'Length > 0 );
pragma Precondition( libName'Length > 0 );
pragma Postcondition( Create_Panel'Result /= null );
private
use Tiles.Libraries;
type Keen_Panel is new Container with
record
borderWidth : Natural := 7;
lib : A_Tile_Library := null;
topId : Natural := 0;
bottomId : Natural := 0;
leftId : Natural := 0;
rightId : Natural := 0;
topLeftId : Natural := 0;
topRightId : Natural := 0;
bottomLeftId : Natural := 0;
bottomRightId : Natural := 0;
end record;
procedure Construct( this : access Keen_Panel;
view : not null access Game_Views.Game_View'Class;
id : String;
libName : String );
pragma Precondition( id'Length > 0 );
pragma Precondition( libName'Length > 0 );
procedure Delete( this : in out Keen_Panel );
procedure Draw_Content( this : access Keen_Panel; dc : Drawing_Context );
function Get_Min_Height( this : access Keen_Panel ) return Natural;
function Get_Min_Width( this : access Keen_Panel ) return Natural;
end Widgets.Containers.Keen_Panels;