📄 mouse.inc
字号:
{* ______ ___ ___
* /\ _ \ /\_ \ /\_ \
* \ \ \L\ \\//\ \ \//\ \ __ __ _ __ ___
* \ \ __ \ \ \ \ \ \ \ /'__`\ /'_ `\/\`'__\/ __`\
* \ \ \/\ \ \_\ \_ \_\ \_/\ __//\ \L\ \ \ \//\ \L\ \
* \ \_\ \_\/\____\/\____\ \____\ \____ \ \_\\ \____/
* \/_/\/_/\/____/\/____/\/____/\/___L\ \/_/ \/___/
* /\____/
* \_/__/
*
* Mouse routines.
*
* By Shawn Hargreaves.
*
* See readme.txt for copyright information.
*}
{$IFDEF ALLEGRO_INTERFACE}
const
MOUSEDRV_AUTODETECT = -1;
MOUSEDRV_NONE = 0;
type
P_MOUSE_DRIVER = ^MOUSE_DRIVER;
MOUSE_DRIVER = record
id : sint32;
name : PChar;
desc : PChar;
ascii_name : PChar;
init : function: sint32; cdecl;
exit : procedure; cdecl;
poll : procedure; cdecl;
timer_poll : procedure; cdecl;
position : procedure(x, y: sint32); cdecl;
set_range : procedure(x1, y1, x2, y2: sint32); cdecl;
set_speed : procedure(xspeed, yspeed: sint32); cdecl;
get_mickeys : procedure(var mickeyx, mickeyy: sint32); cdecl;
analyse_data : function(const buffer: PChar; size: sint32): sint32; cdecl;
enable_hardware_cursor : procedure(mode: sint32); cdecl;
select_system_cursor : function(cursor: sint32): sint32; cdecl;
end;
var
the_mousedrv_none : P_MOUSE_DRIVER;
the_mouse_driver : P_MOUSE_DRIVER;
_mouse_driver_list : P_DRIVER_INFO;
install_mouse : function: sint32; cdecl;
remove_mouse : procedure; cdecl;
poll_mouse : function: sint32; cdecl;
mouse_needs_poll : function: sint32; cdecl;
enable_hardware_cursor : procedure; cdecl;
disable_hardware_cursor : procedure; cdecl;
const
// Mouse cursors
MOUSE_CURSOR_NONE = 0;
MOUSE_CURSOR_ALLEGRO = 1;
MOUSE_CURSOR_ARROW = 2;
MOUSE_CURSOR_BUSY = 3;
MOUSE_CURSOR_QUESTION = 4;
MOUSE_CURSOR_EDIT = 5;
NUM_MOUSE_CURSORS = 6;
var
mouse_sprite : ^p_BITMAP;
mouse_x_focus : ^sint32;
mouse_y_focus : ^sint32;
mouse_x : ^sint32;
mouse_y : ^sint32;
mouse_z : ^sint32;
mouse_b : ^sint32;
mouse_pos : ^sint32;
freeze_mouse_flag : ^sint32;
const
MOUSE_FLAG_MOVE = 1;
MOUSE_FLAG_LEFT_DOWN = 2;
MOUSE_FLAG_LEFT_UP = 4;
MOUSE_FLAG_RIGHT_DOWN = 8;
MOUSE_FLAG_RIGHT_UP = 16;
MOUSE_FLAG_MIDDLE_DOWN = 32;
MOUSE_FLAG_MIDDLE_UP = 64;
MOUSE_FLAG_MOVE_Z = 128;
type
mouse_callback_ptr = procedure(flags: sint32); cdecl;
var
mouse_callback : ^mouse_callback_ptr;
show_mouse : procedure(bmp: p_BITMAP); cdecl;
scare_mouse : procedure; cdecl;
scare_mouse_area : procedure(x, y, w, h: sint32); cdecl;
unscare_mouse : procedure; cdecl;
position_mouse : procedure(x, y: sint32); cdecl;
position_mouse_z : procedure(z: sint32); cdecl;
set_mouse_range : procedure(x1, y1, x2, y2: sint32); cdecl;
set_mouse_speed : procedure(xspeed, yspeed: sint32); cdecl;
select_mouse_cursor : procedure(cursor: sint32); cdecl;
set_mouse_cursor_bitmap : procedure(cursor: sint32; bmp: p_BITMAP); cdecl;
set_mouse_sprite_focus : procedure(x, y: sint32); cdecl;
get_mouse_mickeys : procedure(var mickeyx, mickeyy: sint32); cdecl;
set_mouse_sprite : procedure(sprite: p_BITMAP); cdecl;
show_os_cursor : function(cursor: sint32): sint32; cdecl;
{$ENDIF ALLEGRO_INTERFACE}
{$IFDEF ALLEGRO_IMPLEMENTATION}
{$ENDIF ALLEGRO_IMPLEMENTATION}
{$IFDEF ALLEGRO_LOADVARIABLE}
the_mousedrv_none := LoadDLL('mousedrv_none');
the_mouse_driver := LoadDLL('mouse_driver');
_mouse_driver_list := LoadDLL('_mouse_driver_list');
install_mouse := LoadDLL('install_mouse');
remove_mouse := LoadDLL('remove_mouse');
poll_mouse := LoadDLL('poll_mouse');
mouse_needs_poll := LoadDLL('mouse_needs_poll');
enable_hardware_cursor := LoadDLL('enable_hardware_cursor');
disable_hardware_cursor := LoadDLL('disable_hardware_cursor');
mouse_sprite := LoadDLL('mouse_sprite');
mouse_x_focus := LoadDLL('mouse_x_focus');
mouse_y_focus := LoadDLL('mouse_y_focus');
mouse_x := LoadDLL('mouse_x');
mouse_y := LoadDLL('mouse_y');
mouse_z := LoadDLL('mouse_z');
mouse_b := LoadDLL('mouse_b');
mouse_pos := LoadDLL('mouse_pos');
freeze_mouse_flag := LoadDLL('freeze_mouse_flag');
mouse_callback := LoadDLL('mouse_callback');
show_mouse := LoadDLL('show_mouse');
scare_mouse := LoadDLL('scare_mouse');
scare_mouse_area := LoadDLL('scare_mouse_area');
unscare_mouse := LoadDLL('unscare_mouse');
position_mouse := LoadDLL('position_mouse');
position_mouse_z := LoadDLL('position_mouse_z');
set_mouse_range := LoadDLL('set_mouse_range');
set_mouse_speed := LoadDLL('set_mouse_speed');
select_mouse_cursor := LoadDLL('select_mouse_cursor');
set_mouse_cursor_bitmap := LoadDLL('set_mouse_cursor_bitmap');
set_mouse_sprite_focus := LoadDLL('set_mouse_sprite_focus');
get_mouse_mickeys := LoadDLL('get_mouse_mickeys');
set_mouse_sprite := LoadDLL('set_mouse_sprite');
show_os_cursor := LoadDLL('show_os_cursor');
{$ENDIF ALLEGRO_LOADVARIABLE}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -