1. with Events.Listeners;                  use Events.Listeners; 
  2. with Tiles.Libraries;                   use Tiles.Libraries; 
  3.  
  4. private with Events; 
  5.  
  6. package Widgets.Palettes.Tiles is 
  7.  
  8.     type Tile_Palette is abstract new Palette and Event_Listener with private; 
  9.  
  10.     function Create_Tile_Palette( view : not null access Game_Views.Game_View'Class; 
  11.                                   id   : String ) return A_Palette; 
  12.  
  13.     procedure Set_Library_Name( this : access Tile_Palette; name : String ); 
  14.  
  15. private 
  16.  
  17.     use Events; 
  18.  
  19.     ---------------------------------------------------------------------------- 
  20.  
  21.     type Tile_Palette is new Palette and Event_Listener with 
  22.         record 
  23.             lib : A_Tile_Library := null; 
  24.         end record; 
  25.  
  26.     procedure Construct( this : access Tile_Palette; 
  27.                          view : not null access Game_Views.Game_View'Class; 
  28.                          id   : String ); 
  29.  
  30.     procedure Delete( this : in out Tile_Palette ); 
  31.  
  32.     procedure Get_Item_Details( this   : access Tile_Palette; 
  33.                                 row, 
  34.                                 col    : Natural; 
  35.                                 bmp    : out A_Bitmap; 
  36.                                 border : out Color_Type ); 
  37.  
  38.     function Get_Scroll_Inc_Y( this : access Tile_Palette ) return Integer; 
  39.  
  40.     function Get_Item_Count( this : access Tile_Palette ) return Natural; 
  41.  
  42.     procedure Handle_Event( this : access Tile_Palette; 
  43.                             evt  : in out A_Event; 
  44.                             resp : out Response_Type ); 
  45.  
  46.     procedure Handle_Mouse_Press( this : access Tile_Palette; 
  47.                                   evt  : not null A_Mouse_Button_Event ); 
  48.  
  49. end Widgets.Palettes.Tiles;