limited with Game_Views;
package Widgets.Buttons.Pushes is
type Push_Button is new Button with private;
type A_Push_Button is access all Push_Button'Class;
function Create_Push_Button( view : not null access Game_Views.Game_View'Class;
id : String;
text : String := "";
icon : String := "" ) return A_Button;
pragma Precondition( id'Length > 0 );
pragma Postcondition( Create_Push_Button'Result /= null );
private
type Push_Button is new Button with null record;
procedure Handle_Blur( this : access Push_Button );
function Handle_Key_Press( this : access Push_Button;
evt : not null A_Key_Event ) return Boolean;
function Handle_Key_Release( this : access Push_Button;
evt : not null A_Key_Event ) return Boolean;
procedure Handle_Mouse_Held( this : access Push_Button;
evt : not null A_Mouse_Button_Event );
procedure Handle_Mouse_Press( this : access Push_Button;
evt : not null A_Mouse_Button_Event );
procedure Handle_Mouse_Release( this : access Push_Button;
evt : not null A_Mouse_Button_Event );
end Widgets.Buttons.Pushes;