Commit | Line | Data |
b82df135 |
1 | <div class="pod"> |
2 | <!-- INDEX START --> |
3 | <h3 id="TOP">Index</h3> |
4 | |
5 | <ul><li><a href="#NAME">NAME</a></li> |
bb5f3b83 |
6 | <li><a href="#CATEGORY">CATEGORY</a></li> |
7 | <li><a href="#METHODS">METHODS</a> |
6830c16e |
8 | <ul><li><a href="#create_cursor">create_cursor</a></li> |
9 | <li><a href="#warp_mouse">warp_mouse</a></li> |
bb5f3b83 |
10 | <li><a href="#free_cursor">free_cursor</a></li> |
11 | <li><a href="#set_cursor">set_cursor</a></li> |
12 | <li><a href="#get_cursor">get_cursor</a></li> |
13 | <li><a href="#show_cursor">show_cursor</a> |
14 | </li> |
15 | </ul> |
b82df135 |
16 | </li> |
17 | </ul><hr /> |
18 | <!-- INDEX END --> |
19 | |
20 | <h1 id="NAME">NAME</h1><p><a href="#TOP" class="toplink">Top</a></p> |
21 | <div id="NAME_CONTENT"> |
22 | <p>SDL::Mouse -- SDL Bindings for the Mouse device</p> |
23 | |
24 | </div> |
25 | <h1 id="CATEGORY">CATEGORY</h1><p><a href="#TOP" class="toplink">Top</a></p> |
26 | <div id="CATEGORY_CONTENT"> |
bb5f3b83 |
27 | <p>Core, Mouse</p> |
28 | |
29 | </div> |
30 | <h1 id="METHODS">METHODS</h1><p><a href="#TOP" class="toplink">Top</a></p> |
31 | <div id="METHODS_CONTENT"> |
32 | |
33 | </div> |
6830c16e |
34 | <h2 id="create_cursor">create_cursor</h2> |
35 | <div id="create_cursor_CONTENT"> |
36 | <pre> my $cursor = SDL::Mouse::create_cursor( \@data, \@mask, $width, $height, $hotspot_left, $hotspot_top ); |
37 | |
38 | </pre> |
39 | <p>Create a cursor using the specified data and mask (in MSB format). The cursor width must be a multiple of 8 bits.</p> |
40 | <p>The cursor is created in black and white according to the following:</p> |
41 | <pre> Data / Mask Resulting pixel on screen |
42 | 0 / 1 White |
43 | 1 / 1 Black |
44 | 0 / 0 Transparent |
45 | 1 / 0 Inverted color if possible, black if not. |
46 | |
47 | </pre> |
48 | <p>Cursors created with this function must be freed with SDL_FreeCursor.</p> |
49 | <p>If you want to have color cursor, then this function is not for you; instead, you must hide normal system cursor with <code>SDL::Mouse::show_cursor</code> |
50 | and in your main loop, when you draw graphics, also draw a <code>SDL::Surface</code> at the location of the mouse cursor. </p> |
51 | <p>Example:</p> |
52 | <pre> use SDL; |
6830c16e |
53 | use SDL::Mouse; |
6830c16e |
54 | use SDL::Video; |
55 | |
56 | SDL::init(SDL_INIT_VIDEO); |
57 | SDL::Video::set_video_mode( 640, 480, 16, SDL_SWSURFACE); |
58 | |
59 | my @data = ( |
48f19ee8 |
60 | 0b00000000, |
61 | 0b00111100, |
62 | 0b01111110, |
63 | 0b01111110, |
64 | 0b01111110, |
65 | 0b01111110, |
66 | 0b00111100, |
67 | 0b00000000 |
6830c16e |
68 | ); |
69 | |
70 | my @mask = ( |
48f19ee8 |
71 | 0b00111100, |
72 | 0b01111110, |
73 | 0b11100111, |
74 | 0b11000011, |
75 | 0b11000011, |
76 | 0b11100111, |
77 | 0b01111110, |
78 | 0b00111100 |
6830c16e |
79 | ); |
80 | |
81 | my $cursor = SDL::Mouse::create_cursor( \@data, \@mask, 8, 8, 0, 0 ); |
82 | |
83 | sleep(1); |
84 | SDL::Mouse::set_cursor($cursor); |
85 | |
86 | sleep(5); |
87 | |
6830c16e |
88 | </pre> |
89 | |
90 | </div> |
bb5f3b83 |
91 | <h2 id="warp_mouse">warp_mouse</h2> |
92 | <div id="warp_mouse_CONTENT"> |
93 | <pre> void warp_mouse( int $x, int $y ); |
94 | |
95 | </pre> |
96 | <p>Set the position of the mouse cursor (generates a mouse motion event).</p> |
97 | |
98 | </div> |
99 | <h2 id="free_cursor">free_cursor</h2> |
100 | <div id="free_cursor_CONTENT"> |
101 | <pre> void free_cursor( object ); |
102 | |
103 | </pre> |
104 | <p>Frees a cursor that was created using <code>SDL::Cursor-</code>new()>. </p> |
105 | |
106 | </div> |
107 | <h2 id="set_cursor">set_cursor</h2> |
108 | <div id="set_cursor_CONTENT"> |
109 | <pre> void set_cursor( object ); |
110 | |
111 | </pre> |
112 | <p>Sets the currently active cursor to the specified one. If the cursor is currently visible, the change will be immediately represented |
113 | on the display. <code>set_cursor()</code> can be used to force cursor redraw, if this is desired for any reason. </p> |
114 | |
115 | </div> |
116 | <h2 id="get_cursor">get_cursor</h2> |
117 | <div id="get_cursor_CONTENT"> |
118 | <pre> object get_cursor(); |
119 | |
120 | </pre> |
121 | <p>Gets the currently active mouse cursor.</p> |
122 | |
123 | </div> |
124 | <h2 id="show_cursor">show_cursor</h2> |
125 | <div id="show_cursor_CONTENT"> |
126 | <pre> int show_cursor( int toggle ); |
127 | |
128 | </pre> |
129 | <p>Toggle whether or not the cursor is shown on the screen. Passing <code>SDL_ENABLE</code> displays the cursor and passing <code>SDL_DISABLE</code> hides it. |
130 | The current state of the mouse cursor can be queried by passing <code>SDL_QUERY</code>, either <code>SDL_DISABLE</code> or <code>SDL_ENABLE</code> will be returned.</p> |
131 | <pre> use SDL; |
132 | use SDL::Mouse; |
133 | use SDL::Video; |
134 | |
135 | SDL::init(SDL_INIT_VIDEO); |
136 | SDL::Video::set_video_mode( 640, 480, 16, SDL_SWSURFACE); |
137 | |
138 | printf("Cursor is %s\n", SDL::Mouse::show_cursor(SDL_QUERY) ? 'visible' : 'not visible'); |
139 | |
140 | sleep(3); |
141 | |
142 | SDL::Mouse::show_cursor(SDL_DISABLE); |
143 | printf("Cursor is %s\n", SDL::Mouse::show_cursor(SDL_QUERY) ? 'visible' : 'not visible'); |
144 | |
145 | sleep(3); |
146 | |
147 | SDL::Mouse::show_cursor(SDL_ENABLE); |
148 | printf("Cursor is %s\n", SDL::Mouse::show_cursor(SDL_QUERY) ? 'visible' : 'not visible'); |
149 | |
150 | sleep(3); |
151 | |
152 | </pre> |
b82df135 |
153 | |
154 | </div> |
155 | </div> |