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

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