Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  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.2 2001/04/26 16:50:18 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()                                                \
  50.         do {                                                            \
  51.                 if ( SDL_cursorlock ) {                                 \
  52.                         SDL_mutexP(SDL_cursorlock);                     \
  53.                 }                                                       \
  54.         } while ( 0 )
  55. #define SDL_UnlockCursor()                                              \
  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)                                            \
  74.                         (((X)&(CURSOR_VISIBLE|CURSOR_USINGSW)) ==       \
  75.                                         (CURSOR_VISIBLE|CURSOR_USINGSW))
  76.  
  77. extern volatile int SDL_cursorstate;
  78.