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