1. private with Widgets.Buttons; 
  2.  
  3. package Widgets.Containers.Panels.Dialogs.Save_Changes is 
  4.  
  5.     function Create_Save_Changes_Dialog( view : not null access Game_Views.Game_View'Class; 
  6.                                          id   : String ) return A_Dialog; 
  7.     pragma Precondition( id'Length > 0 ); 
  8.     pragma Postcondition( Create_Save_Changes_Dialog'Result /= null ); 
  9.  
  10. private 
  11.  
  12.     use Widgets.Buttons; 
  13.  
  14.     type Save_Changes_Dialog is new Dialog and Button_Listener with null record; 
  15.  
  16.     procedure Construct( this : access Save_Changes_Dialog; 
  17.                          view : not null access Game_Views.Game_View'Class; 
  18.                          id   : String ); 
  19.     pragma Precondition( id'Length > 0 ); 
  20.  
  21.     procedure Do_No( this : access Save_Changes_Dialog ); 
  22.  
  23.     procedure Do_Yes( this : access Save_Changes_Dialog ); 
  24.  
  25.     procedure Handle_Action( this   : access Save_Changes_Dialog; 
  26.                              action : A_Button_Action ); 
  27.  
  28.     procedure Handle_Action( this    : access Save_Changes_Dialog; 
  29.                              action  : A_Key_Action; 
  30.                              handled : out Boolean ); 
  31.  
  32.     procedure Show( this : access Save_Changes_Dialog ); 
  33.  
  34. end Widgets.Containers.Panels.Dialogs.Save_Changes;