docs
[sdlgit/SDL-Site.git] / pages / SDL-Mouse.html-inc
1 <div class="pod">
2 <!-- INDEX START -->
3 <h3 id="TOP">Index</h3>
4
5 <ul><li><a href="#NAME">NAME</a></li>
6 <li><a href="#CATEGORY">CATEGORY</a></li>
7 <li><a href="#METHODS">METHODS</a>
8 <ul><li><a href="#create_cursor">create_cursor</a></li>
9 <li><a href="#warp_mouse">warp_mouse</a></li>
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>
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">
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>
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;
53  use SDL::Mouse;
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 = (
60      0b00000000,
61      0b00111100,
62      0b01111110,
63      0b01111110,
64      0b01111110,
65      0b01111110,
66      0b00111100,
67      0b00000000
68  );
69
70  my @mask = (
71      0b00111100,
72      0b01111110,
73      0b11100111,
74      0b11000011,
75      0b11000011,
76      0b11100111,
77      0b01111110,
78      0b00111100
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
88 </pre>
89
90 </div>
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 
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(&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>
153
154 </div>
155 </div>