1. limited with Game_Views; 
  2.  
  3. package Widgets.Buttons.Pushes.Retry_Buttons is 
  4.  
  5.     type Retry_Button is new Push_Button and Animated with private; 
  6.     type A_Retry_Button is access all Retry_Button'Class; 
  7.  
  8.     function Create_Retry_Button( view : not null access Game_Views.Game_View'Class; 
  9.                                   id   : String; 
  10.                                   text : String := ""; 
  11.                                   icon : String := "" ) return A_Button; 
  12.     pragma Precondition( id'Length > 0 ); 
  13.     pragma Postcondition( Create_Retry_Button'Result /= null ); 
  14.  
  15. private 
  16.  
  17.     type Retry_Button is new Push_Button and Animated with null record; 
  18.  
  19.     procedure Construct( this : access Retry_Button; 
  20.                          view : not null access Game_Views.Game_View'Class; 
  21.                          id   : String; 
  22.                          text : String; 
  23.                          icon : String ); 
  24.     pragma Precondition( id'Length > 0 ); 
  25.  
  26.     procedure Draw_Content( this : access Retry_Button; dc : Drawing_Context ); 
  27.  
  28.     function Handle_Key_Press( this : access Retry_Button; 
  29.                                evt  : not null A_Key_Event ) return Boolean; 
  30.  
  31.     procedure Tick( this : access Retry_Button; time : Tick_Time ); 
  32.  
  33. end Widgets.Buttons.Pushes.Retry_Buttons;