package Widgets.Containers.Panels.Dialogs is
type Dialog is abstract new Panel and
Key_Listener and
Visibility_Listener with private;
type A_Dialog is access all Dialog'Class;
procedure Hide( this : access Dialog );
procedure Show( this : access Dialog );
private
type Dialog is abstract new Panel and
Key_Listener and
Visibility_Listener with
record
dragStartX,
dragStartY : Integer := -1;
end record;
procedure Construct( this : access Dialog;
view : not null access Game_Views.Game_View'Class;
id : String;
title : String;
icon : String );
pragma Precondition( id'Length > 0 );
procedure Delete( this : in out Dialog );
procedure Handle_Action( this : access Dialog;
action : A_Key_Action;
handled : out Boolean );
procedure Handle_Action( this : access Dialog;
action : A_Visibility_Action );
procedure Handle_Hide( this : access Dialog );
procedure Handle_Mouse_Move( this : access Dialog;
evt : not null A_Mouse_Event );
procedure Handle_Mouse_Press( this : access Dialog;
evt : not null A_Mouse_Button_Event );
procedure Handle_Show( this : access Dialog );
end Widgets.Containers.Panels.Dialogs;