123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696 |
- /****************************************************************************
- *
- * SciTech OS Portability Manager Library
- *
- * ========================================================================
- *
- * The contents of this file are subject to the SciTech MGL Public
- * License Version 1.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.scitechsoft.com/mgl-license.txt
- *
- * Software distributed under the License is distributed on an
- * "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
- * implied. See the License for the specific language governing
- * rights and limitations under the License.
- *
- * The Original Code is Copyright (C) 1991-1998 SciTech Software, Inc.
- *
- * The Initial Developer of the Original Code is SciTech Software, Inc.
- * All Rights Reserved.
- *
- * ========================================================================
- *
- * Language: ANSI C
- * Environment: Any
- *
- * Description: Header file for the SciTech cross platform event library
- *
- ****************************************************************************/
- #ifndef __EVENT_H
- #define __EVENT_H
- #include "scitech.h"
- /*---------------------- Macros and type definitions ----------------------*/
- #pragma pack(1)
- /* 'C' calling conventions always */
- #define EVTAPI _ASMAPI
- #define EVTAPIP _ASMAPIP
- /* Event message masks for keyDown events */
- #define EVT_ASCIIMASK 0x00FF /* ASCII code of key pressed */
- #define EVT_SCANMASK 0xFF00 /* Scan code of key pressed */
- #define EVT_COUNTMASK 0x7FFF0000L /* Count for KEYREPEAT's */
- /* Macros to extract values from the message fields */
- #define EVT_asciiCode(m) ( (uchar) (m & EVT_ASCIIMASK) )
- #define EVT_scanCode(m) ( (uchar) ( (m & EVT_SCANMASK) >> 8 ) )
- #define EVT_repeatCount(m) ( (short) ( (m & EVT_COUNTMASK) >> 16 ) )
- /****************************************************************************
- REMARKS:
- Defines the set of ASCII codes reported by the event library functions
- in the message field. Use the EVT_asciiCode macro to extract the code
- from the event structure.
- HEADER:
- event.h
- ****************************************************************************/
- typedef enum {
- ASCII_ctrlA = 0x01,
- ASCII_ctrlB = 0x02,
- ASCII_ctrlC = 0x03,
- ASCII_ctrlD = 0x04,
- ASCII_ctrlE = 0x05,
- ASCII_ctrlF = 0x06,
- ASCII_ctrlG = 0x07,
- ASCII_backspace = 0x08,
- ASCII_ctrlH = 0x08,
- ASCII_tab = 0x09,
- ASCII_ctrlI = 0x09,
- ASCII_ctrlJ = 0x0A,
- ASCII_ctrlK = 0x0B,
- ASCII_ctrlL = 0x0C,
- ASCII_enter = 0x0D,
- ASCII_ctrlM = 0x0D,
- ASCII_ctrlN = 0x0E,
- ASCII_ctrlO = 0x0F,
- ASCII_ctrlP = 0x10,
- ASCII_ctrlQ = 0x11,
- ASCII_ctrlR = 0x12,
- ASCII_ctrlS = 0x13,
- ASCII_ctrlT = 0x14,
- ASCII_ctrlU = 0x15,
- ASCII_ctrlV = 0x16,
- ASCII_ctrlW = 0x17,
- ASCII_ctrlX = 0x18,
- ASCII_ctrlY = 0x19,
- ASCII_ctrlZ = 0x1A,
- ASCII_esc = 0x1B,
- ASCII_space = 0x20,
- ASCII_exclamation = 0x21, /* ! */
- ASCII_quote = 0x22, /* " */
- ASCII_pound = 0x23, /* # */
- ASCII_dollar = 0x24, /* $ */
- ASCII_percent = 0x25, /* % */
- ASCII_ampersand = 0x26, /* & */
- ASCII_apostrophe = 0x27, /* ' */
- ASCII_leftBrace = 0x28, /* ( */
- ASCII_rightBrace = 0x29, /* ) */
- ASCII_times = 0x2A, /* * */
- ASCII_plus = 0x2B, /* + */
- ASCII_comma = 0x2C, /* , */
- ASCII_minus = 0x2D, /* - */
- ASCII_period = 0x2E, /* . */
- ASCII_divide = 0x2F, /* / */
- ASCII_0 = 0x30,
- ASCII_1 = 0x31,
- ASCII_2 = 0x32,
- ASCII_3 = 0x33,
- ASCII_4 = 0x34,
- ASCII_5 = 0x35,
- ASCII_6 = 0x36,
- ASCII_7 = 0x37,
- ASCII_8 = 0x38,
- ASCII_9 = 0x39,
- ASCII_colon = 0x3A, /* : */
- ASCII_semicolon = 0x3B, /* ; */
- ASCII_lessThan = 0x3C, /* < */
- ASCII_equals = 0x3D, /* = */
- ASCII_greaterThan = 0x3E, /* > */
- ASCII_question = 0x3F, /* ? */
- ASCII_at = 0x40, /* @ */
- ASCII_A = 0x41,
- ASCII_B = 0x42,
- ASCII_C = 0x43,
- ASCII_D = 0x44,
- ASCII_E = 0x45,
- ASCII_F = 0x46,
- ASCII_G = 0x47,
- ASCII_H = 0x48,
- ASCII_I = 0x49,
- ASCII_J = 0x4A,
- ASCII_K = 0x4B,
- ASCII_L = 0x4C,
- ASCII_M = 0x4D,
- ASCII_N = 0x4E,
- ASCII_O = 0x4F,
- ASCII_P = 0x50,
- ASCII_Q = 0x51,
- ASCII_R = 0x52,
- ASCII_S = 0x53,
- ASCII_T = 0x54,
- ASCII_U = 0x55,
- ASCII_V = 0x56,
- ASCII_W = 0x57,
- ASCII_X = 0x58,
- ASCII_Y = 0x59,
- ASCII_Z = 0x5A,
- ASCII_leftSquareBrace = 0x5B, /* [ */
- ASCII_backSlash = 0x5C, /* \ */
- ASCII_rightSquareBrace = 0x5D, /* ] */
- ASCII_caret = 0x5E, /* ^ */
- ASCII_underscore = 0x5F, /* _ */
- ASCII_leftApostrophe = 0x60, /* ` */
- ASCII_a = 0x61,
- ASCII_b = 0x62,
- ASCII_c = 0x63,
- ASCII_d = 0x64,
- ASCII_e = 0x65,
- ASCII_f = 0x66,
- ASCII_g = 0x67,
- ASCII_h = 0x68,
- ASCII_i = 0x69,
- ASCII_j = 0x6A,
- ASCII_k = 0x6B,
- ASCII_l = 0x6C,
- ASCII_m = 0x6D,
- ASCII_n = 0x6E,
- ASCII_o = 0x6F,
- ASCII_p = 0x70,
- ASCII_q = 0x71,
- ASCII_r = 0x72,
- ASCII_s = 0x73,
- ASCII_t = 0x74,
- ASCII_u = 0x75,
- ASCII_v = 0x76,
- ASCII_w = 0x77,
- ASCII_x = 0x78,
- ASCII_y = 0x79,
- ASCII_z = 0x7A,
- ASCII_leftCurlyBrace = 0x7B, /* { */
- ASCII_verticalBar = 0x7C, /* | */
- ASCII_rightCurlyBrace = 0x7D, /* } */
- ASCII_tilde = 0x7E /* ~ */
- } EVT_asciiCodesType;
- /****************************************************************************
- REMARKS:
- Defines the set of scan codes reported by the event library functions
- in the message field. Use the EVT_scanCode macro to extract the code
- from the event structure. Note that the scan codes reported will be the
- same across all keyboards (assuming the placement of keys on a 101 key US
- keyboard), but the translated ASCII values may be different depending on
- the country code pages in use.
- NOTE: Scan codes in the event library are not really hardware scan codes,
- but rather virtual scan codes as generated by a low level keyboard
- interface driver. All virtual codes begin with scan code 0x60 and
- range up from there.
- HEADER:
- event.h
- ****************************************************************************/
- typedef enum {
- KB_padEnter = 0x60, /* Keypad keys */
- KB_padMinus = 0x4A,
- KB_padPlus = 0x4E,
- KB_padTimes = 0x37,
- KB_padDivide = 0x61,
- KB_padLeft = 0x62,
- KB_padRight = 0x63,
- KB_padUp = 0x64,
- KB_padDown = 0x65,
- KB_padInsert = 0x66,
- KB_padDelete = 0x67,
- KB_padHome = 0x68,
- KB_padEnd = 0x69,
- KB_padPageUp = 0x6A,
- KB_padPageDown = 0x6B,
- KB_padCenter = 0x4C,
- KB_F1 = 0x3B, /* Function keys */
- KB_F2 = 0x3C,
- KB_F3 = 0x3D,
- KB_F4 = 0x3E,
- KB_F5 = 0x3F,
- KB_F6 = 0x40,
- KB_F7 = 0x41,
- KB_F8 = 0x42,
- KB_F9 = 0x43,
- KB_F10 = 0x44,
- KB_F11 = 0x57,
- KB_F12 = 0x58,
- KB_left = 0x4B, /* Cursor control keys */
- KB_right = 0x4D,
- KB_up = 0x48,
- KB_down = 0x50,
- KB_insert = 0x52,
- KB_delete = 0x53,
- KB_home = 0x47,
- KB_end = 0x4F,
- KB_pageUp = 0x49,
- KB_pageDown = 0x51,
- KB_capsLock = 0x3A,
- KB_numLock = 0x45,
- KB_scrollLock = 0x46,
- KB_leftShift = 0x2A,
- KB_rightShift = 0x36,
- KB_leftCtrl = 0x1D,
- KB_rightCtrl = 0x6C,
- KB_leftAlt = 0x38,
- KB_rightAlt = 0x6D,
- KB_leftWindows = 0x5B,
- KB_rightWindows = 0x5C,
- KB_menu = 0x5D,
- KB_sysReq = 0x54,
- KB_esc = 0x01, /* Normal keyboard keys */
- KB_1 = 0x02,
- KB_2 = 0x03,
- KB_3 = 0x04,
- KB_4 = 0x05,
- KB_5 = 0x06,
- KB_6 = 0x07,
- KB_7 = 0x08,
- KB_8 = 0x09,
- KB_9 = 0x0A,
- KB_0 = 0x0B,
- KB_minus = 0x0C,
- KB_equals = 0x0D,
- KB_backSlash = 0x2B,
- KB_backspace = 0x0E,
- KB_tab = 0x0F,
- KB_Q = 0x10,
- KB_W = 0x11,
- KB_E = 0x12,
- KB_R = 0x13,
- KB_T = 0x14,
- KB_Y = 0x15,
- KB_U = 0x16,
- KB_I = 0x17,
- KB_O = 0x18,
- KB_P = 0x19,
- KB_leftSquareBrace = 0x1A,
- KB_rightSquareBrace = 0x1B,
- KB_enter = 0x1C,
- KB_A = 0x1E,
- KB_S = 0x1F,
- KB_D = 0x20,
- KB_F = 0x21,
- KB_G = 0x22,
- KB_H = 0x23,
- KB_J = 0x24,
- KB_K = 0x25,
- KB_L = 0x26,
- KB_semicolon = 0x27,
- KB_apostrophe = 0x28,
- KB_Z = 0x2C,
- KB_X = 0x2D,
- KB_C = 0x2E,
- KB_V = 0x2F,
- KB_B = 0x30,
- KB_N = 0x31,
- KB_M = 0x32,
- KB_comma = 0x33,
- KB_period = 0x34,
- KB_divide = 0x35,
- KB_space = 0x39,
- KB_tilde = 0x29
- } EVT_scanCodesType;
- /****************************************************************************
- REMARKS:
- Defines the mask for the joystick axes that are present
- HEADER:
- event.h
- MEMBERS:
- EVT_JOY_AXIS_X1 - Joystick 1, X axis is present
- EVT_JOY_AXIS_Y1 - Joystick 1, Y axis is present
- EVT_JOY_AXIS_X2 - Joystick 2, X axis is present
- EVT_JOY_AXIS_Y2 - Joystick 2, Y axis is present
- EVT_JOY_AXIS_ALL - Mask for all axes
- ****************************************************************************/
- typedef enum {
- EVT_JOY_AXIS_X1 = 0x00000001,
- EVT_JOY_AXIS_Y1 = 0x00000002,
- EVT_JOY_AXIS_X2 = 0x00000004,
- EVT_JOY_AXIS_Y2 = 0x00000008,
- EVT_JOY_AXIS_ALL = 0x0000000F
- } EVT_eventJoyAxisType;
- /****************************************************************************
- REMARKS:
- Defines the event message masks for joystick events
- HEADER:
- event.h
- MEMBERS:
- EVT_JOY1_BUTTONA - Joystick 1, button A is down
- EVT_JOY1_BUTTONB - Joystick 1, button B is down
- EVT_JOY2_BUTTONA - Joystick 2, button A is down
- EVT_JOY2_BUTTONB - Joystick 2, button B is down
- ****************************************************************************/
- typedef enum {
- EVT_JOY1_BUTTONA = 0x00000001,
- EVT_JOY1_BUTTONB = 0x00000002,
- EVT_JOY2_BUTTONA = 0x00000004,
- EVT_JOY2_BUTTONB = 0x00000008
- } EVT_eventJoyMaskType;
- /****************************************************************************
- REMARKS:
- Defines the event message masks for mouse events
- HEADER:
- event.h
- MEMBERS:
- EVT_LEFTBMASK - Left button is held down
- EVT_RIGHTBMASK - Right button is held down
- EVT_MIDDLEBMASK - Middle button is held down
- EVT_BOTHBMASK - Both left and right held down together
- EVT_ALLBMASK - All buttons pressed
- EVT_DBLCLICK - Set if mouse down event was a double click
- ****************************************************************************/
- typedef enum {
- EVT_LEFTBMASK = 0x00000001,
- EVT_RIGHTBMASK = 0x00000002,
- EVT_MIDDLEBMASK = 0x00000004,
- EVT_BOTHBMASK = 0x00000007,
- EVT_ALLBMASK = 0x00000007,
- EVT_DBLCLICK = 0x00010000
- } EVT_eventMouseMaskType;
- /****************************************************************************
- REMARKS:
- Defines the event modifier masks. These are the masks used to extract
- the modifier information from the modifiers field of the event_t structure.
- Note that the values in the modifiers field represent the values of these
- modifier keys at the time the event occurred, not the time you decided
- to process the event.
- HEADER:
- event.h
- MEMBERS:
- EVT_LEFTBUT - Set if left mouse button was down
- EVT_RIGHTBUT - Set if right mouse button was down
- EVT_MIDDLEBUT - Set if the middle button was down
- EVT_RIGHTSHIFT - Set if right shift was down
- EVT_LEFTSHIFT - Set if left shift was down
- EVT_RIGHTCTRL - Set if right ctrl key was down
- EVT_RIGHTALT - Set if right alt key was down
- EVT_LEFTCTRL - Set if left ctrl key was down
- EVT_LEFTALT - Set if left alt key was down
- EVT_SHIFTKEY - Mask for any shift key down
- EVT_CTRLSTATE - Set if ctrl key was down
- EVT_ALTSTATE - Set if alt key was down
- EVT_CAPSLOCK - Caps lock is active
- EVT_NUMLOCK - Num lock is active
- EVT_SCROLLLOCK - Scroll lock is active
- ****************************************************************************/
- typedef enum {
- EVT_LEFTBUT = 0x00000001,
- EVT_RIGHTBUT = 0x00000002,
- EVT_MIDDLEBUT = 0x00000004,
- EVT_RIGHTSHIFT = 0x00000008,
- EVT_LEFTSHIFT = 0x00000010,
- EVT_RIGHTCTRL = 0x00000020,
- EVT_RIGHTALT = 0x00000040,
- EVT_LEFTCTRL = 0x00000080,
- EVT_LEFTALT = 0x00000100,
- EVT_SHIFTKEY = 0x00000018,
- EVT_CTRLSTATE = 0x000000A0,
- EVT_ALTSTATE = 0x00000140,
- EVT_SCROLLLOCK = 0x00000200,
- EVT_NUMLOCK = 0x00000400,
- EVT_CAPSLOCK = 0x00000800
- } EVT_eventModMaskType;
- /****************************************************************************
- REMARKS:
- Defines the event codes returned in the event_t structures what field. Note
- that these are defined as a set of mutually exlusive bit fields, so you
- can test for multiple event types using the combined event masks defined
- in the EVT_eventMaskType enumeration.
- HEADER:
- event.h
- MEMBERS:
- EVT_NULLEVT - A null event
- EVT_KEYDOWN - Key down event
- EVT_KEYREPEAT - Key repeat event
- EVT_KEYUP - Key up event
- EVT_MOUSEDOWN - Mouse down event
- EVT_MOUSEAUTO - Mouse down autorepeat event
- EVT_MOUSEUP - Mouse up event
- EVT_MOUSEMOVE - Mouse movement event
- EVT_JOYCLICK - Joystick button state change event
- EVT_JOYMOVE - Joystick movement event
- EVT_USEREVT - First user event
- ****************************************************************************/
- typedef enum {
- EVT_NULLEVT = 0x00000000,
- EVT_KEYDOWN = 0x00000001,
- EVT_KEYREPEAT = 0x00000002,
- EVT_KEYUP = 0x00000004,
- EVT_MOUSEDOWN = 0x00000008,
- EVT_MOUSEAUTO = 0x00000010,
- EVT_MOUSEUP = 0x00000020,
- EVT_MOUSEMOVE = 0x00000040,
- EVT_JOYCLICK = 0x00000080,
- EVT_JOYMOVE = 0x00000100,
- EVT_USEREVT = 0x00000200
- } EVT_eventType;
- /****************************************************************************
- REMARKS:
- Defines the event code masks you can use to test for multiple types of
- events, since the event codes are mutually exlusive bit fields.
- HEADER:
- event.h
- MEMBERS:
- EVT_KEYEVT - Mask for any key event
- EVT_MOUSEEVT - Mask for any mouse event
- EVT_MOUSECLICK - Mask for any mouse click event
- EVT_JOYEVT - Mask for any joystick event
- EVT_EVERYEVT - Mask for any event
- ****************************************************************************/
- typedef enum {
- EVT_KEYEVT = (EVT_KEYDOWN | EVT_KEYREPEAT | EVT_KEYUP),
- EVT_MOUSEEVT = (EVT_MOUSEDOWN | EVT_MOUSEAUTO | EVT_MOUSEUP | EVT_MOUSEMOVE),
- EVT_MOUSECLICK = (EVT_MOUSEDOWN | EVT_MOUSEUP),
- EVT_JOYEVT = (EVT_JOYCLICK | EVT_JOYMOVE),
- EVT_EVERYEVT = 0x7FFFFFFF
- } EVT_eventMaskType;
- /****************************************************************************
- REMARKS:
- Structure describing the information contained in an event extracted from
- the event queue.
- HEADER:
- event.h
- MEMBERS:
- which - Window identifier for message for use by high level window manager
- code (i.e. MegaVision GUI or Windows API).
- what - Type of event that occurred. Will be one of the values defined by
- the EVT_eventType enumeration.
- when - Time that the event occurred in milliseconds since startup
- where_x - X coordinate of the mouse cursor location at the time of the event
- (in screen coordinates). For joystick events this represents
- the position of the first joystick X axis.
- where_y - Y coordinate of the mouse cursor location at the time of the event
- (in screen coordinates). For joystick events this represents
- the position of the first joystick Y axis.
- relative_x - Relative movement of the mouse cursor in the X direction (in
- units of mickeys, or 1/200th of an inch). For joystick events
- this represents the position of the second joystick X axis.
- relative_y - Relative movement of the mouse cursor in the Y direction (in
- units of mickeys, or 1/200th of an inch). For joystick events
- this represents the position of the second joystick Y axis.
- message - Event specific message for the event. For use events this can be
- any user specific information. For keyboard events this contains
- the ASCII code in bits 0-7, the keyboard scan code in bits 8-15 and
- the character repeat count in bits 16-30. You can use the
- EVT_asciiCode, EVT_scanCode and EVT_repeatCount macros to extract
- this information from the message field. For mouse events this
- contains information about which button was pressed, and will be a
- combination of the flags defined by the EVT_eventMouseMaskType
- enumeration. For joystick events, this conatins information
- about which buttons were pressed, and will be a combination of
- the flags defined by the EVT_eventJoyMaskType enumeration.
- modifiers - Contains additional information about the state of the keyboard
- shift modifiers (Ctrl, Alt and Shift keys) when the event
- occurred. For mouse events it will also contain the state of
- the mouse buttons. Will be a combination of the values defined
- by the EVT_eventModMaskType enumeration.
- next - Internal use; do not use.
- prev - Internal use; do not use.
- ****************************************************************************/
- typedef struct {
- ulong which;
- ulong what;
- ulong when;
- int where_x;
- int where_y;
- int relative_x;
- int relative_y;
- ulong message;
- ulong modifiers;
- int next;
- int prev;
- } event_t;
- /****************************************************************************
- REMARKS:
- Structure describing an entry in the code page table. A table of translation
- codes for scan codes to ASCII codes is provided in this table to be used
- by the keyboard event libraries. On some OS'es the keyboard translation is
- handled by the OS, but for DOS and embedded systems you must register a
- different code page translation table if you want to support keyboards
- other than the US English keyboard (the default).
- NOTE: Entries in code page tables *must* be in ascending order for the
- scan codes as we do a binary search on the tables for the ASCII
- code equivalents.
- HEADER:
- event.h
- MEMBERS:
- scanCode - Scan code to translate (really the virtual scan code).
- asciiCode - ASCII code for this scan code.
- ****************************************************************************/
- typedef struct {
- uchar scanCode;
- uchar asciiCode;
- } codepage_entry_t;
- /****************************************************************************
- REMARKS:
- Structure describing a complete code page translation table. The table
- contains translation tables for normal keys, shifted keys and ctrl keys.
- The Ctrl key always has precedence over the shift table, and the shift
- table is used when the shift key is down or the CAPSLOCK key is down.
- HEADER:
- event.h
- MEMBERS:
- name - Name of the code page table (ie: "US English")
- normal - Code page for translating normal keys
- normalLen - Length of normal translation table
- caps - Code page for translating keys when CAPSLOCK is down
- capsLen - Length of CAPSLOCK translation table
- shift - Code page for shifted keys (ie: shift key is held down)
- shiftLen - Length of shifted translation table
- shiftCaps - Code page for shifted keys when CAPSLOCK is down
- shiftCapsLen - Length of shifted CAPSLOCK translation table
- ctrl - Code page for ctrl'ed keys (ie: ctrl key is held down)
- ctrlLen - Length of ctrl'ed translation table
- numPad - Code page for NUMLOCK'ed keypad keys
- numPadLen - Length of NUMLOCK'ed translation table
- ****************************************************************************/
- typedef struct {
- char name[20];
- codepage_entry_t *normal;
- int normalLen;
- codepage_entry_t *caps;
- int capsLen;
- codepage_entry_t *shift;
- int shiftLen;
- codepage_entry_t *shiftCaps;
- int shiftCapsLen;
- codepage_entry_t *ctrl;
- int ctrlLen;
- codepage_entry_t *numPad;
- int numPadLen;
- } codepage_t;
- /* {secret} */
- typedef ibool (EVTAPIP _EVT_userEventFilter)(event_t *evt);
- /* {secret} */
- typedef void (EVTAPIP _EVT_mouseMoveHandler)(int x,int y);
- /* {secret} */
- typedef void (EVTAPIP _EVT_heartBeatCallback)(void *params);
- /* Macro to find the size of a static array */
- #define EVT_ARR_SIZE(a) (sizeof(a)/sizeof((a)[0]))
- #pragma pack()
- /*--------------------------- Global variables ----------------------------*/
- #ifdef __cplusplus
- extern "C" { /* Use "C" linkage when in C++ mode */
- #endif
- /* Standard code page tables */
- extern codepage_t _CP_US_English;
- /*------------------------- Function Prototypes ---------------------------*/
- /* Public API functions for user applications */
- ibool EVTAPI EVT_getNext(event_t *evt,ulong mask);
- ibool EVTAPI EVT_peekNext(event_t *evt,ulong mask);
- ibool EVTAPI EVT_post(ulong which,ulong what,ulong message,ulong modifiers);
- void EVTAPI EVT_flush(ulong mask);
- void EVTAPI EVT_halt(event_t *evt,ulong mask);
- ibool EVTAPI EVT_isKeyDown(uchar scanCode);
- void EVTAPI EVT_setMousePos(int x,int y);
- void EVTAPI EVT_getMousePos(int *x,int *y);
- /* Function to enable/disable updating of keyboard LED status indicators */
- void EVTAPI EVT_allowLEDS(ibool enable);
- /* Function to install a custom keyboard code page. Default is US English */
- codepage_t *EVTAPI EVT_getCodePage(void);
- void EVTAPI EVT_setCodePage(codepage_t *page);
- /* Functions for fine grained joystick calibration */
- void EVTAPI EVT_pollJoystick(void);
- int EVTAPI EVT_joyIsPresent(void);
- void EVTAPI EVT_joySetUpperLeft(void);
- void EVTAPI EVT_joySetLowerRight(void);
- void EVTAPI EVT_joySetCenter(void);
- /* Install user supplied event filter callback */
- void EVTAPI EVT_setUserEventFilter(_EVT_userEventFilter filter);
- /* Install user supplied event heartbeat callback function */
- void EVTAPI EVT_setHeartBeatCallback(_EVT_heartBeatCallback callback,void *params);
- void EVTAPI EVT_getHeartBeatCallback(_EVT_heartBeatCallback *callback,void **params);
- /* Internal functions to initialise and kill the event manager. MGL
- * applications should never call these functions directly as the MGL
- * libraries do it for you.
- */
- /* {secret} */
- void EVTAPI EVT_init(_EVT_mouseMoveHandler mouseMove);
- /* {secret} */
- void EVTAPI EVT_setMouseRange(int xRes,int yRes);
- /* {secret} */
- void EVTAPI EVT_suspend(void);
- /* {secret} */
- void EVTAPI EVT_resume(void);
- /* {secret} */
- void EVTAPI EVT_exit(void);
- #ifdef __cplusplus
- } /* End of "C" linkage for C++ */
- #endif /* __cplusplus */
- #endif /* __EVENT_H */
|