with Widgets.Buttons; use Widgets.Buttons;
with Widgets.Input_Boxes; use Widgets.Input_Boxes;
package Widgets.Containers.Panels.Dialogs.Save_World is
type Save_Dialog is new Dialog and
Button_Listener and
Input_Listener with private;
type A_Save_Dialog is access all Save_Dialog'Class;
function Create_Save_Dialog( view : not null access Game_Views.Game_View'Class;
id : String ) return A_Dialog;
pragma Precondition( id'Length > 0 );
pragma Postcondition( Create_Save_Dialog'Result /= null );
procedure Set_Error( this : not null access Save_Dialog'Class;
error : String );
private
type Save_Dialog is new Dialog and
Button_Listener and
Input_Listener with null record;
procedure Construct( this : access Save_Dialog;
view : not null access Game_Views.Game_View'Class;
id : String );
pragma Precondition( id'Length > 0 );
procedure Handle_Action( this : access Save_Dialog;
action : A_Button_Action );
procedure Handle_Action( this : access Save_Dialog;
action : A_Input_Action );
procedure Handle_Action( this : access Save_Dialog;
action : A_Key_Action;
handled : out Boolean );
procedure On_Dialog_Show( this : access Save_Dialog );
procedure Show( this : access Save_Dialog );
end Widgets.Containers.Panels.Dialogs.Save_World;