include/SDL_mouse.h

/* [<][>]
[^][v][top][bottom][index][help] */

FUNCTIONS

This source file includes following functions.
  1. SDL_BUTTON

   1 /*
   2     SDL - Simple DirectMedia Layer
   3     Copyright (C) 1997, 1998, 1999, 2000, 2001  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     slouken@devolution.com
  21 */
  22 
  23 #ifdef SAVE_RCSID
  24 static char rcsid =
  25  "@(#) $Id: SDL_mouse.h,v 1.4.2.6 2001/02/17 01:45:30 hercules 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 {
  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 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 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 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 *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 SDL_SetCursor(SDL_Cursor *cursor);
  96 
  97 /*
  98  * Returns the currently active cursor.
  99  */
 100 extern DECLSPEC SDL_Cursor * SDL_GetCursor(void);
 101 
 102 /*
 103  * Deallocates a cursor created with SDL_CreateCursor().
 104  */
 105 extern DECLSPEC void 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 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  */
 121 #define SDL_BUTTON(X)           (SDL_PRESSED<<(X-1))
     /* [<][>][^][v][top][bottom][index][help] */
 122 #define SDL_BUTTON_LEFT         1
 123 #define SDL_BUTTON_MIDDLE       2
 124 #define SDL_BUTTON_RIGHT        3
 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 */

/* [<][>][^][v][top][bottom][index][help] */