src/video/SDL_cursor_c.h

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

FUNCTIONS

This source file includes following functions.
  1. SDL_LockCursor
  2. SDL_UnlockCursor
  3. SHOULD_DRAWCURSOR

   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_cursor_c.h,v 1.3.2.3 2001/02/10 07:20:05 hercules Exp $";
  26 #endif
  27 
  28 /* Useful variables and functions from SDL_cursor.c */
  29 #include "SDL_mouse.h"
  30 
  31 extern int  SDL_CursorInit(Uint32 flags);
  32 extern void SDL_CursorPaletteChanged(void);
  33 extern void SDL_DrawCursor(SDL_Surface *screen);
  34 extern void SDL_DrawCursorNoLock(SDL_Surface *screen);
  35 extern void SDL_EraseCursor(SDL_Surface *screen);
  36 extern void SDL_EraseCursorNoLock(SDL_Surface *screen);
  37 extern void SDL_UpdateCursor(SDL_Surface *screen);
  38 extern void SDL_ResetCursor(void);
  39 extern void SDL_MoveCursor(int x, int y);
  40 extern void SDL_CursorQuit(void);
  41 
  42 #define INLINE_MOUSELOCK
  43 #ifdef INLINE_MOUSELOCK
  44 /* Inline (macro) versions of the mouse lock functions */
  45 #include "SDL_mutex.h"
  46 
  47 extern SDL_mutex *SDL_cursorlock;
  48 
  49 #define SDL_LockCursor()                                                \
     /* [<][>][^][v][top][bottom][index][help] */
  50         do {                                                            \
  51                 if ( SDL_cursorlock ) {                                 \
  52                         SDL_mutexP(SDL_cursorlock);                     \
  53                 }                                                       \
  54         } while ( 0 )
  55 #define SDL_UnlockCursor()                                              \
     /* [<][>][^][v][top][bottom][index][help] */
  56         do {                                                            \
  57                 if ( SDL_cursorlock ) {                                 \
  58                         SDL_mutexV(SDL_cursorlock);                     \
  59                 }                                                       \
  60         } while ( 0 )
  61 #else
  62 extern void SDL_LockCursor(void);
  63 extern void SDL_UnlockCursor(void);
  64 #endif /* INLINE_MOUSELOCK */
  65 
  66 /* Only for low-level mouse cursor drawing */
  67 extern SDL_Cursor *SDL_cursor;
  68 extern void SDL_MouseRect(SDL_Rect *area);
  69 
  70 /* State definitions for the SDL cursor */
  71 #define CURSOR_VISIBLE  0x01
  72 #define CURSOR_USINGSW  0x10
  73 #define SHOULD_DRAWCURSOR(X)                                            \
     /* [<][>][^][v][top][bottom][index][help] */
  74                         (((X)&(CURSOR_VISIBLE|CURSOR_USINGSW)) ==       \
  75                                         (CURSOR_VISIBLE|CURSOR_USINGSW))
  76 
  77 extern volatile int SDL_cursorstate;

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