package Events.Input is
type Key_Event is new Event with private;
type Key_Typed_Event is new Key_Event with private;
type Mouse_Event is new Event with private;
type Mouse_Scroll_Event is new Mouse_Event with private;
type Mouse_Button_Event is new Mouse_Event with private;
type A_Key_Event is access all Key_Event'Class;
type A_Key_Typed_Event is access all Key_Typed_Event'Class;
type A_Mouse_Event is access all Mouse_Event'Class;
type A_Mouse_Scroll_Event is access all Mouse_Scroll_Event'Class;
type A_Mouse_Button_Event is access all Mouse_Button_Event'Class;
KEY_PRESS_ID : constant Event_Id := To_Event_Id( "Key_Press" );
KEY_RELEASE_ID : constant Event_Id := To_Event_Id( "Key_Release" );
KEY_TYPED_ID : constant Event_Id := To_Event_Id( "Key_Typed" );
MOUSE_MOVE_ID : constant Event_Id := To_Event_Id( "Mouse_Move" );
MOUSE_SCROLL_ID : constant Event_Id := To_Event_Id( "Mouse_Scroll" );
MOUSE_CLICK_ID : constant Event_Id := To_Event_Id( "Mouse_Click" );
MOUSE_DOUBLECLICK_ID : constant Event_Id := To_Event_Id( "Mouse_Doubleclick" );
MOUSE_HELD_ID : constant Event_Id := To_Event_Id( "Mouse_Held" );
MOUSE_PRESS_ID : constant Event_Id := To_Event_Id( "Mouse_Press" );
MOUSE_RELEASE_ID : constant Event_Id := To_Event_Id( "Mouse_Release" );
function Get_Key
( | this | : not null access Key_Event'Class ) return Positive; |
procedure Get_Modifiers
( | this | : not null access Key_Event'Class; |
modifiers | : out Modifiers_Array ); |
function No_Modifiers
( | this | : not null access Key_Event'Class ) return Boolean; |
function Only_Alt
( | this | : not null access Key_Event'Class ) return Boolean; |
function Only_Ctrl
( | this | : not null access Key_Event'Class ) return Boolean; |
function Only_Shift
( | this | : not null access Key_Event'Class ) return Boolean; |
function Get_Char
( | this | : not null access Key_Typed_Event'Class ) return Character; |
function Get_X
( | this | : not null access Mouse_Event'Class ) return Integer; |
function Get_Y
( | this | : not null access Mouse_Event'Class ) return Integer; |
procedure Set_XY
( | this | : not null access Mouse_Event'Class; |
x, y | : Integer ); |
function Get_Amount
( | this | : not null access Mouse_Scroll_Event'Class ) return Integer; |
function Get_Button
( | this | : not null access Mouse_Button_Event'Class ) return Mouse_Button; |
function Get_Modifiers
( | this | : not null access Mouse_Button_Event'Class ) return Modifiers_Array; |
procedure Queue_Key_Typed
( | key | : Positive; |
char | : Character; | |
modifiers | : Modifiers_Array ); |
procedure Queue_Key_Press
( | key | : Positive; |
modifiers | : Modifiers_Array ); |
procedure Queue_Key_Release
( | key | : Positive; |
modifiers | : Modifiers_Array ); |
function Generate_Key_Release
( | key | : Positive; |
modifiers | : Modifiers_Array ) return A_Key_Event; |
procedure Queue_Mouse_Click
( | x, y | : Integer; |
btn | : Mouse_Button ); |
procedure Queue_Mouse_Doubleclick
( | x, y | : Integer; |
btn | : Mouse_Button ); |
procedure Queue_Mouse_Held
( | x, y | : Integer; |
btn | : Mouse_Button ); |
procedure Queue_Mouse_Press
( | x, y | : Integer; |
btn | : Mouse_Button; | |
modifiers | : Modifiers_Array ); |
procedure Queue_Mouse_Release
( | x, y | : Integer; |
btn | : Mouse_Button ); |
function Create_Mouse_Release
( | x, y | : Integer; |
btn | : Mouse_Button ) return A_Mouse_Button_Event; |