Annotation of sbbs/include/sdl/sdl_mouse.h, revision 1.1.1.1

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 */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.