with Events.Listeners; use Events.Listeners;
private with Ada.Containers.Indefinite_Vectors;
private with Events;
package Widgets.Palettes.Enemies is
function Create_Enemy_Palette( view : not null access Game_Views.Game_View'Class;
id : String ) return A_Palette;
pragma Precondition( id'Length > 0 );
pragma Postcondition( Create_Enemy_Palette'Result /= null );
private
use Events;
package Enemy_Types is new Ada.Containers.Indefinite_Vectors( Positive, String, "=" );
type Enemy_Palette is new Palette and Event_Listener with
record
enemyTypes : Enemy_Types.Vector;
end record;
procedure Construct( this : access Enemy_Palette;
view : not null access Game_Views.Game_View'Class;
id : String );
pragma Precondition( id'Length > 0 );
procedure Delete( this : in out Enemy_Palette );
procedure Get_Item_Details( this : access Enemy_Palette;
row,
col : Natural;
bmp : out A_Bitmap;
border : out Color_Type );
function Get_Scroll_Inc_Y( this : access Enemy_Palette ) return Integer;
function Get_Item_Count( this : access Enemy_Palette ) return Natural;
procedure Handle_Event( this : access Enemy_Palette;
evt : in out A_Event;
resp : out Response_Type );
pragma Precondition( evt /= null );
procedure Handle_Mouse_Press( this : access Enemy_Palette;
evt : not null A_Mouse_Button_Event );
end Widgets.Palettes.Enemies;