Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. <HTML
  2. ><HEAD
  3. ><TITLE
  4. >SDL_CreateCursor</TITLE
  5. ><META
  6. NAME="GENERATOR"
  7. CONTENT="Modular DocBook HTML Stylesheet Version 1.64
  8. "><LINK
  9. REL="HOME"
  10. TITLE="SDL Library Documentation"
  11. HREF="index.html"><LINK
  12. REL="UP"
  13. TITLE="Video"
  14. HREF="video.html"><LINK
  15. REL="PREVIOUS"
  16. TITLE="SDL_WarpMouse"
  17. HREF="sdlwarpmouse.html"><LINK
  18. REL="NEXT"
  19. TITLE="SDL_FreeCursor"
  20. HREF="sdlfreecursor.html"></HEAD
  21. ><BODY
  22. CLASS="REFENTRY"
  23. BGCOLOR="#FFF8DC"
  24. TEXT="#000000"
  25. LINK="#0000ee"
  26. VLINK="#551a8b"
  27. ALINK="#ff0000"
  28. ><DIV
  29. CLASS="NAVHEADER"
  30. ><TABLE
  31. WIDTH="100%"
  32. BORDER="0"
  33. CELLPADDING="0"
  34. CELLSPACING="0"
  35. ><TR
  36. ><TH
  37. COLSPAN="3"
  38. ALIGN="center"
  39. >SDL Library Documentation</TH
  40. ></TR
  41. ><TR
  42. ><TD
  43. WIDTH="10%"
  44. ALIGN="left"
  45. VALIGN="bottom"
  46. ><A
  47. HREF="sdlwarpmouse.html"
  48. >Prev</A
  49. ></TD
  50. ><TD
  51. WIDTH="80%"
  52. ALIGN="center"
  53. VALIGN="bottom"
  54. ></TD
  55. ><TD
  56. WIDTH="10%"
  57. ALIGN="right"
  58. VALIGN="bottom"
  59. ><A
  60. HREF="sdlfreecursor.html"
  61. >Next</A
  62. ></TD
  63. ></TR
  64. ></TABLE
  65. ><HR
  66. ALIGN="LEFT"
  67. WIDTH="100%"></DIV
  68. ><H1
  69. ><A
  70. NAME="SDLCREATECURSOR"
  71. >SDL_CreateCursor</A
  72. ></H1
  73. ><DIV
  74. CLASS="REFNAMEDIV"
  75. ><A
  76. NAME="AEN2068"
  77. ></A
  78. ><H2
  79. >Name</H2
  80. >SDL_CreateCursor&nbsp;--&nbsp;Creates a new mouse cursor.</DIV
  81. ><DIV
  82. CLASS="REFSYNOPSISDIV"
  83. ><A
  84. NAME="AEN2071"
  85. ></A
  86. ><H2
  87. >Synopsis</H2
  88. ><DIV
  89. CLASS="FUNCSYNOPSIS"
  90. ><A
  91. NAME="AEN2072"
  92. ></A
  93. ><P
  94. ></P
  95. ><PRE
  96. CLASS="FUNCSYNOPSISINFO"
  97. >#include "SDL.h"</PRE
  98. ><P
  99. ><CODE
  100. ><CODE
  101. CLASS="FUNCDEF"
  102. >SDL_Cursor *<B
  103. CLASS="FSFUNC"
  104. >SDL_CreateCursor</B
  105. ></CODE
  106. >(Uint8 *data, Uint8 *mask, int w, int h, int hot_x, int hot_y);</CODE
  107. ></P
  108. ><P
  109. ></P
  110. ></DIV
  111. ></DIV
  112. ><DIV
  113. CLASS="REFSECT1"
  114. ><A
  115. NAME="AEN2078"
  116. ></A
  117. ><H2
  118. >Description</H2
  119. ><P
  120. >Create a cursor using the specified <TT
  121. CLASS="PARAMETER"
  122. ><I
  123. >data</I
  124. ></TT
  125. > and <TT
  126. CLASS="PARAMETER"
  127. ><I
  128. >mask</I
  129. ></TT
  130. > (in MSB format).
  131. The cursor width must be a multiple of 8 bits.</P
  132. ><P
  133. >The cursor is created in black and white according to the following:
  134. <DIV
  135. CLASS="INFORMALTABLE"
  136. ><A
  137. NAME="AEN2084"
  138. ></A
  139. ><P
  140. ></P
  141. ><TABLE
  142. BORDER="1"
  143. CLASS="CALSTABLE"
  144. ><THEAD
  145. ><TR
  146. ><TH
  147. ALIGN="LEFT"
  148. VALIGN="TOP"
  149. >Data / Mask</TH
  150. ><TH
  151. ALIGN="LEFT"
  152. VALIGN="TOP"
  153. >Resulting pixel on screen</TH
  154. ></TR
  155. ></THEAD
  156. ><TBODY
  157. ><TR
  158. ><TD
  159. ALIGN="LEFT"
  160. VALIGN="TOP"
  161. >0 / 1</TD
  162. ><TD
  163. ALIGN="LEFT"
  164. VALIGN="TOP"
  165. >White</TD
  166. ></TR
  167. ><TR
  168. ><TD
  169. ALIGN="LEFT"
  170. VALIGN="TOP"
  171. >1 / 1</TD
  172. ><TD
  173. ALIGN="LEFT"
  174. VALIGN="TOP"
  175. >Black</TD
  176. ></TR
  177. ><TR
  178. ><TD
  179. ALIGN="LEFT"
  180. VALIGN="TOP"
  181. >0 / 0</TD
  182. ><TD
  183. ALIGN="LEFT"
  184. VALIGN="TOP"
  185. >Transparent</TD
  186. ></TR
  187. ><TR
  188. ><TD
  189. ALIGN="LEFT"
  190. VALIGN="TOP"
  191. >1 / 0</TD
  192. ><TD
  193. ALIGN="LEFT"
  194. VALIGN="TOP"
  195. >Inverted color if possible, black if not.</TD
  196. ></TR
  197. ></TBODY
  198. ></TABLE
  199. ><P
  200. ></P
  201. ></DIV
  202. ></P
  203. ><P
  204. >Cursors created with this function must be freed with
  205. <A
  206. HREF="sdlfreecursor.html"
  207. >SDL_FreeCursor</A
  208. >.</P
  209. ></DIV
  210. ><DIV
  211. CLASS="REFSECT1"
  212. ><A
  213. NAME="AEN2105"
  214. ></A
  215. ><H2
  216. >Example</H2
  217. ><PRE
  218. CLASS="PROGRAMLISTING"
  219. >/* Stolen from the mailing list */
  220. /* Creates a new mouse cursor from an XPM */
  221.  
  222.  
  223. /* XPM */
  224. static const char *arrow[] = {
  225.   /* width height num_colors chars_per_pixel */
  226.   "    32    32        3            1",
  227.   /* colors */
  228.   "X c #000000",
  229.   ". c #ffffff",
  230.   "  c None",
  231.   /* pixels */
  232.   "X                               ",
  233.   "XX                              ",
  234.   "X.X                             ",
  235.   "X..X                            ",
  236.   "X...X                           ",
  237.   "X....X                          ",
  238.   "X.....X                         ",
  239.   "X......X                        ",
  240.   "X.......X                       ",
  241.   "X........X                      ",
  242.   "X.....XXXXX                     ",
  243.   "X..X..X                         ",
  244.   "X.X X..X                        ",
  245.   "XX  X..X                        ",
  246.   "X    X..X                       ",
  247.   "     X..X                       ",
  248.   "      X..X                      ",
  249.   "      X..X                      ",
  250.   "       XX                       ",
  251.   "                                ",
  252.   "                                ",
  253.   "                                ",
  254.   "                                ",
  255.   "                                ",
  256.   "                                ",
  257.   "                                ",
  258.   "                                ",
  259.   "                                ",
  260.   "                                ",
  261.   "                                ",
  262.   "                                ",
  263.   "                                ",
  264.   "0,0"
  265. };
  266.  
  267. static SDL_Cursor *init_system_cursor(const char *image[])
  268. {
  269.   int i, row, col;
  270.   Uint8 data[4*32];
  271.   Uint8 mask[4*32];
  272.   int hot_x, hot_y;
  273.  
  274.   i = -1;
  275.   for ( row=0; row&#60;32; ++row ) {
  276.     for ( col=0; col&#60;32; ++col ) {
  277.       if ( col % 8 ) {
  278.         data[i] &#60;&#60;= 1;
  279.         mask[i] &#60;&#60;= 1;
  280.       } else {
  281.         ++i;
  282.         data[i] = mask[i] = 0;
  283.       }
  284.       switch (image[4+row][col]) {
  285.         case 'X':
  286.           data[i] |= 0x01;
  287.           k[i] |= 0x01;
  288.           break;
  289.         case '.':
  290.           mask[i] |= 0x01;
  291.           break;
  292.         case ' ':
  293.           break;
  294.       }
  295.     }
  296.   }
  297.   sscanf(image[4+row], "%d,%d", &#38;hot_x, &#38;hot_y);
  298.   return SDL_CreateCursor(data, mask, 32, 32, hot_x, hot_y);
  299. }</PRE
  300. ></DIV
  301. ><DIV
  302. CLASS="REFSECT1"
  303. ><A
  304. NAME="AEN2108"
  305. ></A
  306. ><H2
  307. >See Also</H2
  308. ><P
  309. ><A
  310. HREF="sdlfreecursor.html"
  311. ><TT
  312. CLASS="FUNCTION"
  313. >SDL_FreeCursor</TT
  314. ></A
  315. >,
  316. <A
  317. HREF="sdlsetcursor.html"
  318. ><TT
  319. CLASS="FUNCTION"
  320. >SDL_SetCursor</TT
  321. ></A
  322. >,
  323. <A
  324. HREF="sdlshowcursor.html"
  325. ><TT
  326. CLASS="FUNCTION"
  327. >SDL_ShowCursor</TT
  328. ></A
  329. ></P
  330. ></DIV
  331. ><DIV
  332. CLASS="NAVFOOTER"
  333. ><HR
  334. ALIGN="LEFT"
  335. WIDTH="100%"><TABLE
  336. WIDTH="100%"
  337. BORDER="0"
  338. CELLPADDING="0"
  339. CELLSPACING="0"
  340. ><TR
  341. ><TD
  342. WIDTH="33%"
  343. ALIGN="left"
  344. VALIGN="top"
  345. ><A
  346. HREF="sdlwarpmouse.html"
  347. >Prev</A
  348. ></TD
  349. ><TD
  350. WIDTH="34%"
  351. ALIGN="center"
  352. VALIGN="top"
  353. ><A
  354. HREF="index.html"
  355. >Home</A
  356. ></TD
  357. ><TD
  358. WIDTH="33%"
  359. ALIGN="right"
  360. VALIGN="top"
  361. ><A
  362. HREF="sdlfreecursor.html"
  363. >Next</A
  364. ></TD
  365. ></TR
  366. ><TR
  367. ><TD
  368. WIDTH="33%"
  369. ALIGN="left"
  370. VALIGN="top"
  371. >SDL_WarpMouse</TD
  372. ><TD
  373. WIDTH="34%"
  374. ALIGN="center"
  375. VALIGN="top"
  376. ><A
  377. HREF="video.html"
  378. >Up</A
  379. ></TD
  380. ><TD
  381. WIDTH="33%"
  382. ALIGN="right"
  383. VALIGN="top"
  384. >SDL_FreeCursor</TD
  385. ></TR
  386. ></TABLE
  387. ></DIV
  388. ></BODY
  389. ></HTML
  390. >