1. -- 
  2. -- Copyright (c) 2012 Kevin Wellwood 
  3. -- All rights reserved. 
  4. -- 
  5. -- This source code is distributed under the Modified BSD License. For terms and 
  6. -- conditions, see license.txt. 
  7. -- 
  8.  
  9. with Events.Listeners;                  use Events.Listeners; 
  10. with Tiles.Libraries;                   use Tiles.Libraries; 
  11.  
  12. private with Events; 
  13.  
  14. package Widgets.Palettes.Tiles is 
  15.  
  16.     type Tile_Palette is abstract new Palette and Event_Listener with private; 
  17.  
  18.     function Create_Tile_Palette( view : not null access Game_Views.Game_View'Class; 
  19.                                   id   : String ) return A_Palette; 
  20.  
  21.     -- Raises an error if tile library 'name' can't be loaded. 
  22.     procedure Set_Library_Name( this : not null access Tile_Palette'Class; 
  23.                                 name : String ); 
  24.  
  25. private 
  26.  
  27.     use Events; 
  28.  
  29.     ---------------------------------------------------------------------------- 
  30.  
  31.     type Tile_Palette is new Palette and Event_Listener with 
  32.         record 
  33.             lib : A_Tile_Library := null; 
  34.         end record; 
  35.  
  36.     procedure Construct( this : access Tile_Palette; 
  37.                          view : not null access Game_Views.Game_View'Class; 
  38.                          id   : String ); 
  39.  
  40.     procedure Delete( this : in out Tile_Palette ); 
  41.  
  42.     procedure Get_Item_Details( this   : access Tile_Palette; 
  43.                                 row, 
  44.                                 col    : Natural; 
  45.                                 bmp    : out A_Bitmap; 
  46.                                 border : out Color_Type ); 
  47.  
  48.     function Get_Scroll_Inc_Y( this : access Tile_Palette ) return Integer; 
  49.  
  50.     function Get_Item_Count( this : access Tile_Palette ) return Natural; 
  51.  
  52.     procedure Handle_Event( this : access Tile_Palette; 
  53.                             evt  : in out A_Event; 
  54.                             resp : out Response_Type ); 
  55.  
  56.     procedure Handle_Mouse_Press( this : access Tile_Palette; 
  57.                                   evt  : not null A_Mouse_Button_Event ); 
  58.  
  59. end Widgets.Palettes.Tiles;