package Widgets.Containers.Scenes.Keen is
function Create_Scene( view : not null access Game_Views.Game_View'Class;
id : String ) return A_Scene;
pragma Precondition( id'Length > 0 );
pragma Postcondition( Create_Scene'Result /= null );
private
type Keen_Scene is new Scene with null record;
procedure Construct( this : access Keen_Scene;
view : not null access Game_Views.Game_View'Class;
id : String );
pragma Precondition( id'Length > 0 );
procedure Delete( this : in out Keen_Scene );
procedure Draw_Layer( this : access Keen_Scene;
dc : Drawing_Context;
layer : Positive;
startX,
startY : Integer;
tileX1,
tileY1,
tileX2,
tileY2 : Integer );
procedure Handle_Event( this : access Keen_Scene;
evt : in out A_Event;
resp : out Response_Type );
pragma Precondition( evt /= null );
procedure Handle_New_World( this : access Keen_Scene;
evt : not null A_New_World_Event );
procedure Handle_World_Property_Changed( this : access Keen_Scene;
evt : not null A_World_Property_Changed_Event );
end Widgets.Containers.Scenes.Keen;