Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
5131 clevermous 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.2 2001/04/26 16:50:17 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))
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 */