|
|
1.1 ! root 1: /* ! 2: SDL - Simple DirectMedia Layer ! 3: Copyright (C) 1997-2004 Sam Lantinga ! 4: ! 5: This library is free software; you can redistribute it and/or ! 6: modify it under the terms of the GNU Library General Public ! 7: License as published by the Free Software Foundation; either ! 8: version 2 of the License, or (at your option) any later version. ! 9: ! 10: This library is distributed in the hope that it will be useful, ! 11: but WITHOUT ANY WARRANTY; without even the implied warranty of ! 12: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ! 13: Library General Public License for more details. ! 14: ! 15: You should have received a copy of the GNU Library General Public ! 16: License along with this library; if not, write to the Free ! 17: Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ! 18: ! 19: Sam Lantinga ! 20: [email protected] ! 21: */ ! 22: ! 23: #ifdef SAVE_RCSID ! 24: static char rcsid = ! 25: "@(#) $Id: SDL_mouse.h,v 1.1.1.1 2005/11/18 23:23:29 rswindell Exp $"; ! 26: #endif ! 27: ! 28: /* Include file for SDL mouse event handling */ ! 29: ! 30: #ifndef _SDL_mouse_h ! 31: #define _SDL_mouse_h ! 32: ! 33: #include "SDL_types.h" ! 34: #include "SDL_video.h" ! 35: ! 36: #include "begin_code.h" ! 37: /* Set up for C function definitions, even when using C++ */ ! 38: #ifdef __cplusplus ! 39: extern "C" { ! 40: #endif ! 41: ! 42: typedef struct WMcursor WMcursor; /* Implementation dependent */ ! 43: typedef struct SDL_Cursor { ! 44: SDL_Rect area; /* The area of the mouse cursor */ ! 45: Sint16 hot_x, hot_y; /* The "tip" of the cursor */ ! 46: Uint8 *data; /* B/W cursor data */ ! 47: Uint8 *mask; /* B/W cursor mask */ ! 48: Uint8 *save[2]; /* Place to save cursor area */ ! 49: WMcursor *wm_cursor; /* Window-manager cursor */ ! 50: } SDL_Cursor; ! 51: ! 52: /* Function prototypes */ ! 53: /* ! 54: * Retrieve the current state of the mouse. ! 55: * The current button state is returned as a button bitmask, which can ! 56: * be tested using the SDL_BUTTON(X) macros, and x and y are set to the ! 57: * current mouse cursor position. You can pass NULL for either x or y. ! 58: */ ! 59: extern DECLSPEC Uint8 SDLCALL SDL_GetMouseState(int *x, int *y); ! 60: ! 61: /* ! 62: * Retrieve the current state of the mouse. ! 63: * The current button state is returned as a button bitmask, which can ! 64: * be tested using the SDL_BUTTON(X) macros, and x and y are set to the ! 65: * mouse deltas since the last call to SDL_GetRelativeMouseState(). ! 66: */ ! 67: extern DECLSPEC Uint8 SDLCALL SDL_GetRelativeMouseState(int *x, int *y); ! 68: ! 69: /* ! 70: * Set the position of the mouse cursor (generates a mouse motion event) ! 71: */ ! 72: extern DECLSPEC void SDLCALL SDL_WarpMouse(Uint16 x, Uint16 y); ! 73: ! 74: /* ! 75: * Create a cursor using the specified data and mask (in MSB format). ! 76: * The cursor width must be a multiple of 8 bits. ! 77: * ! 78: * The cursor is created in black and white according to the following: ! 79: * data mask resulting pixel on screen ! 80: * 0 1 White ! 81: * 1 1 Black ! 82: * 0 0 Transparent ! 83: * 1 0 Inverted color if possible, black if not. ! 84: * ! 85: * Cursors created with this function must be freed with SDL_FreeCursor(). ! 86: */ ! 87: extern DECLSPEC SDL_Cursor * SDLCALL SDL_CreateCursor ! 88: (Uint8 *data, Uint8 *mask, int w, int h, int hot_x, int hot_y); ! 89: ! 90: /* ! 91: * Set the currently active cursor to the specified one. ! 92: * If the cursor is currently visible, the change will be immediately ! 93: * represented on the display. ! 94: */ ! 95: extern DECLSPEC void SDLCALL SDL_SetCursor(SDL_Cursor *cursor); ! 96: ! 97: /* ! 98: * Returns the currently active cursor. ! 99: */ ! 100: extern DECLSPEC SDL_Cursor * SDLCALL SDL_GetCursor(void); ! 101: ! 102: /* ! 103: * Deallocates a cursor created with SDL_CreateCursor(). ! 104: */ ! 105: extern DECLSPEC void SDLCALL SDL_FreeCursor(SDL_Cursor *cursor); ! 106: ! 107: /* ! 108: * Toggle whether or not the cursor is shown on the screen. ! 109: * The cursor start off displayed, but can be turned off. ! 110: * SDL_ShowCursor() returns 1 if the cursor was being displayed ! 111: * before the call, or 0 if it was not. You can query the current ! 112: * state by passing a 'toggle' value of -1. ! 113: */ ! 114: extern DECLSPEC int SDLCALL SDL_ShowCursor(int toggle); ! 115: ! 116: /* Used as a mask when testing buttons in buttonstate ! 117: Button 1: Left mouse button ! 118: Button 2: Middle mouse button ! 119: Button 3: Right mouse button ! 120: Button 4: Mouse wheel up (may also be a real button) ! 121: Button 5: Mouse wheel down (may also be a real button) ! 122: */ ! 123: #define SDL_BUTTON(X) (SDL_PRESSED << ((X)-1)) ! 124: #define SDL_BUTTON_LEFT 1 ! 125: #define SDL_BUTTON_MIDDLE 2 ! 126: #define SDL_BUTTON_RIGHT 3 ! 127: #define SDL_BUTTON_WHEELUP 4 ! 128: #define SDL_BUTTON_WHEELDOWN 5 ! 129: #define SDL_BUTTON_LMASK SDL_BUTTON(SDL_BUTTON_LEFT) ! 130: #define SDL_BUTTON_MMASK SDL_BUTTON(SDL_BUTTON_MIDDLE) ! 131: #define SDL_BUTTON_RMASK SDL_BUTTON(SDL_BUTTON_RIGHT) ! 132: ! 133: ! 134: /* Ends C function definitions when using C++ */ ! 135: #ifdef __cplusplus ! 136: } ! 137: #endif ! 138: #include "close_code.h" ! 139: ! 140: #endif /* _SDL_mouse_h */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.