cleanup
[sdlgit/SDL-Site.git] / pages / SDL-Mouse.html-inc
CommitLineData
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>
50and 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()&gt;. </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
113on 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.
130The 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(&quot;Cursor is %s\n&quot;, SDL::Mouse::show_cursor(SDL_QUERY) ? 'visible' : 'not visible');
139
140 sleep(3);
141
142 SDL::Mouse::show_cursor(SDL_DISABLE);
143 printf(&quot;Cursor is %s\n&quot;, SDL::Mouse::show_cursor(SDL_QUERY) ? 'visible' : 'not visible');
144
145 sleep(3);
146
147 SDL::Mouse::show_cursor(SDL_ENABLE);
148 printf(&quot;Cursor is %s\n&quot;, SDL::Mouse::show_cursor(SDL_QUERY) ? 'visible' : 'not visible');
149
150 sleep(3);
151
152</pre>
b82df135 153
154</div>
155</div>