with Allegro.Bitmaps; use Allegro.Bitmaps;
package Allegro.Mouse is
type Cursor_Type is private;
type A_Mouse_Callback is
access procedure( flags : Integer );
MOUSE_CURSOR_NONE : constant Cursor_Type;
MOUSE_CURSOR_ALLEGRO : constant Cursor_Type;
MOUSE_CURSOR_ARROW : constant Cursor_Type;
MOUSE_CURSOR_BUSY : constant Cursor_Type;
MOUSE_CURSOR_QUESTION : constant Cursor_Type;
MOUSE_CURSOR_EDIT : constant Cursor_Type;
MOUSE_FLAG_MOVE : constant Unsigned_32;
MOUSE_FLAG_LEFT_DOWN : constant Unsigned_32;
MOUSE_FLAG_LEFT_UP : constant Unsigned_32;
MOUSE_FLAG_RIGHT_DOWN : constant Unsigned_32;
MOUSE_FLAG_RIGHT_UP : constant Unsigned_32;
MOUSE_FLAG_MIDDLE_DOWN : constant Unsigned_32;
MOUSE_FLAG_MIDDLE_UP : constant Unsigned_32;
MOUSE_FLAG_MOVE_Z : constant Unsigned_32;
MOUSE_BUTTON_LEFT : constant Unsigned_32;
MOUSE_BUTTON_RIGHT : constant Unsigned_32;
MOUSE_BUTTON_MIDDLE : constant Unsigned_32;
procedure Disable_Hardware_Cursor;
procedure Enable_Hardware_Cursor;
procedure Get_Mouse_Mickeys( mickeyx, mickeyy : A_Integer );
function Get_Mouse_Sprite return A_Bitmap;
function Install_Mouse return Integer;
function Mouse_X_Focus return Integer;
function Mouse_Y_Focus return Integer;
function Mouse_X return Integer;
function Mouse_Y return Integer;
function Mouse_Z return Integer;
function Mouse_B return Integer;
function Mouse_Pos return Integer;
function Mouse_Freeze_Flag return Integer;
function Mouse_On_Screen return Integer;
function Mouse_Needs_Poll return Integer;
function Poll_Mouse return Integer;
procedure Position_Mouse( x, y : Integer );
procedure Position_Mouse_Z( z : Integer );
procedure Remove_Mouse;
procedure Scare_Mouse;
procedure Scare_Mouse_Area( x, y, w, h : Integer );
procedure Select_Mouse_Cursor( cursor : Cursor_Type );
procedure Set_Mouse_Callback( cb : A_Mouse_Callback );
procedure Set_Mouse_Cursor_Bitmap( cursor : Cursor_Type; bmp : A_Bitmap );
procedure Set_Mouse_Range( x1, y1, x2, y2 : Integer );
procedure Set_Mouse_Speed( xspeed, yspeed : Integer );
procedure Set_Mouse_Sprite( sprite : A_Bitmap );
procedure Set_Mouse_Sprite_Focus( x, y : Integer );
procedure Show_Mouse( bmp : A_Bitmap );
function Show_OS_Cursor( cursor : Cursor_Type ) return Integer;
procedure Unscare_Mouse;
private
type Cursor_Type is new Integer;
MOUSE_CURSOR_NONE : constant Cursor_Type := 0;
MOUSE_CURSOR_ALLEGRO : constant Cursor_Type := 1;
MOUSE_CURSOR_ARROW : constant Cursor_Type := 2;
MOUSE_CURSOR_BUSY : constant Cursor_Type := 3;
MOUSE_CURSOR_QUESTION : constant Cursor_Type := 4;
MOUSE_CURSOR_EDIT : constant Cursor_Type := 5;
MOUSE_FLAG_MOVE : constant Unsigned_32 := 1;
MOUSE_FLAG_LEFT_DOWN : constant Unsigned_32 := 2;
MOUSE_FLAG_LEFT_UP : constant Unsigned_32 := 4;
MOUSE_FLAG_RIGHT_DOWN : constant Unsigned_32 := 8;
MOUSE_FLAG_RIGHT_UP : constant Unsigned_32 := 16;
MOUSE_FLAG_MIDDLE_DOWN : constant Unsigned_32 := 32;
MOUSE_FLAG_MIDDLE_UP : constant Unsigned_32 := 64;
MOUSE_FLAG_MOVE_Z : constant Unsigned_32 := 128;
MOUSE_BUTTON_LEFT : constant Unsigned_32 := 1;
MOUSE_BUTTON_RIGHT : constant Unsigned_32 := 2;
MOUSE_BUTTON_MIDDLE : constant Unsigned_32 := 4;
pragma Convention( C, A_Mouse_Callback );
pragma Import( C, Disable_Hardware_Cursor, "disable_hardware_cursor" );
pragma Import( C, Enable_Hardware_Cursor, "enable_hardware_cursor" );
pragma Import( C, Get_Mouse_Mickeys, "get_mouse_mickeys" );
pragma Import( C, Get_Mouse_Sprite, "get_mouse_sprite" );
pragma Import( C, Install_Mouse, "install_mouse" );
pragma Import( C, Mouse_Needs_Poll, "mouse_needs_poll" );
pragma Import( C, Mouse_On_Screen, "mouse_on_screen" );
pragma Import( C, Poll_Mouse, "poll_mouse" );
pragma Import( C, Position_Mouse, "position_mouse" );
pragma Import( C, Position_Mouse_Z, "position_mouse_z" );
pragma Import( C, Remove_Mouse, "remove_mouse" );
pragma Import( C, Scare_Mouse, "scare_mouse" );
pragma Import( C, Scare_Mouse_Area, "scare_mouse_area" );
pragma Import( C, Select_Mouse_Cursor, "select_mouse_cursor" );
pragma Import( C, Set_Mouse_Callback, "set_mouse_callback" );
pragma Import( C, Set_Mouse_Cursor_Bitmap, "set_mouse_cursor_bitmap" );
pragma Import( C, Set_Mouse_Range, "set_mouse_range" );
pragma Import( C, Set_Mouse_Speed, "set_mouse_speed" );
pragma Import( C, Set_Mouse_Sprite, "set_mouse_sprite" );
pragma Import( C, Set_Mouse_Sprite_Focus, "set_mouse_sprite_focus" );
pragma Import( C, Show_Mouse, "show_mouse" );
pragma Import( C, Show_OS_Cursor, "show_os_cursor" );
pragma Import( C, Unscare_Mouse, "unscare_mouse" );
end Allegro.Mouse;