Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

  1. <HTML
  2. ><HEAD
  3. ><TITLE
  4. >SDL_Event</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="SDL Event Structures."
  14. HREF="eventstructures.html"><LINK
  15. REL="PREVIOUS"
  16. TITLE="SDL Event Structures."
  17. HREF="eventstructures.html"><LINK
  18. REL="NEXT"
  19. TITLE="SDL_ActiveEvent"
  20. HREF="sdlactiveevent.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="eventstructures.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="sdlactiveevent.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="SDLEVENT"
  71. >SDL_Event</A
  72. ></H1
  73. ><DIV
  74. CLASS="REFNAMEDIV"
  75. ><A
  76. NAME="AEN3289"
  77. ></A
  78. ><H2
  79. >Name</H2
  80. >SDL_Event&nbsp;--&nbsp;General event structure</DIV
  81. ><DIV
  82. CLASS="REFSECT1"
  83. ><A
  84. NAME="AEN3292"
  85. ></A
  86. ><H2
  87. >Structure Definition</H2
  88. ><PRE
  89. CLASS="PROGRAMLISTING"
  90. >typedef union{
  91.   Uint8 type;
  92.   SDL_ActiveEvent active;
  93.   SDL_KeyboardEvent key;
  94.   SDL_MouseMotionEvent motion;
  95.   SDL_MouseButtonEvent button;
  96.   SDL_JoyAxisEvent jaxis;
  97.   SDL_JoyBallEvent jball;
  98.   SDL_JoyHatEvent jhat;
  99.   SDL_JoyButtonEvent jbutton;
  100.   SDL_ResizeEvent resize;
  101.   SDL_QuitEvent quit;
  102.   SDL_UserEvent user;
  103.   SDL_SywWMEvent syswm;
  104. } SDL_Event;</PRE
  105. ></DIV
  106. ><DIV
  107. CLASS="REFSECT1"
  108. ><A
  109. NAME="AEN3295"
  110. ></A
  111. ><H2
  112. >Structure Data</H2
  113. ><DIV
  114. CLASS="INFORMALTABLE"
  115. ><A
  116. NAME="AEN3297"
  117. ></A
  118. ><P
  119. ></P
  120. ><TABLE
  121. BORDER="0"
  122. CLASS="CALSTABLE"
  123. ><TBODY
  124. ><TR
  125. ><TD
  126. ALIGN="LEFT"
  127. VALIGN="TOP"
  128. ><TT
  129. CLASS="STRUCTFIELD"
  130. ><I
  131. >type</I
  132. ></TT
  133. ></TD
  134. ><TD
  135. ALIGN="LEFT"
  136. VALIGN="TOP"
  137. >The type of event</TD
  138. ></TR
  139. ><TR
  140. ><TD
  141. ALIGN="LEFT"
  142. VALIGN="TOP"
  143. ><TT
  144. CLASS="STRUCTFIELD"
  145. ><I
  146. >active</I
  147. ></TT
  148. ></TD
  149. ><TD
  150. ALIGN="LEFT"
  151. VALIGN="TOP"
  152. ><A
  153. HREF="sdlactiveevent.html"
  154. >Activation event</A
  155. ></TD
  156. ></TR
  157. ><TR
  158. ><TD
  159. ALIGN="LEFT"
  160. VALIGN="TOP"
  161. ><TT
  162. CLASS="STRUCTFIELD"
  163. ><I
  164. >key</I
  165. ></TT
  166. ></TD
  167. ><TD
  168. ALIGN="LEFT"
  169. VALIGN="TOP"
  170. ><A
  171. HREF="sdlkeyboardevent.html"
  172. >Keyboard event</A
  173. ></TD
  174. ></TR
  175. ><TR
  176. ><TD
  177. ALIGN="LEFT"
  178. VALIGN="TOP"
  179. ><TT
  180. CLASS="STRUCTFIELD"
  181. ><I
  182. >motion</I
  183. ></TT
  184. ></TD
  185. ><TD
  186. ALIGN="LEFT"
  187. VALIGN="TOP"
  188. ><A
  189. HREF="sdlmousemotionevent.html"
  190. >Mouse motion event</A
  191. ></TD
  192. ></TR
  193. ><TR
  194. ><TD
  195. ALIGN="LEFT"
  196. VALIGN="TOP"
  197. ><TT
  198. CLASS="STRUCTFIELD"
  199. ><I
  200. >button</I
  201. ></TT
  202. ></TD
  203. ><TD
  204. ALIGN="LEFT"
  205. VALIGN="TOP"
  206. ><A
  207. HREF="sdlmousebuttonevent.html"
  208. >Mouse button event</A
  209. ></TD
  210. ></TR
  211. ><TR
  212. ><TD
  213. ALIGN="LEFT"
  214. VALIGN="TOP"
  215. ><TT
  216. CLASS="STRUCTFIELD"
  217. ><I
  218. >jaxis</I
  219. ></TT
  220. ></TD
  221. ><TD
  222. ALIGN="LEFT"
  223. VALIGN="TOP"
  224. ><A
  225. HREF="sdljoyaxisevent.html"
  226. >Joystick axis motion event</A
  227. ></TD
  228. ></TR
  229. ><TR
  230. ><TD
  231. ALIGN="LEFT"
  232. VALIGN="TOP"
  233. ><TT
  234. CLASS="STRUCTFIELD"
  235. ><I
  236. >jball</I
  237. ></TT
  238. ></TD
  239. ><TD
  240. ALIGN="LEFT"
  241. VALIGN="TOP"
  242. ><A
  243. HREF="sdljoyballevent.html"
  244. >Joystick trackball motion event</A
  245. ></TD
  246. ></TR
  247. ><TR
  248. ><TD
  249. ALIGN="LEFT"
  250. VALIGN="TOP"
  251. ><TT
  252. CLASS="STRUCTFIELD"
  253. ><I
  254. >jhat</I
  255. ></TT
  256. ></TD
  257. ><TD
  258. ALIGN="LEFT"
  259. VALIGN="TOP"
  260. ><A
  261. HREF="sdljoyhatevent.html"
  262. >Joystick hat motion event</A
  263. ></TD
  264. ></TR
  265. ><TR
  266. ><TD
  267. ALIGN="LEFT"
  268. VALIGN="TOP"
  269. ><TT
  270. CLASS="STRUCTFIELD"
  271. ><I
  272. >jbutton</I
  273. ></TT
  274. ></TD
  275. ><TD
  276. ALIGN="LEFT"
  277. VALIGN="TOP"
  278. ><A
  279. HREF="sdljoybuttonevent.html"
  280. >Joystick button event</A
  281. ></TD
  282. ></TR
  283. ><TR
  284. ><TD
  285. ALIGN="LEFT"
  286. VALIGN="TOP"
  287. ><TT
  288. CLASS="STRUCTFIELD"
  289. ><I
  290. >resize</I
  291. ></TT
  292. ></TD
  293. ><TD
  294. ALIGN="LEFT"
  295. VALIGN="TOP"
  296. ><A
  297. HREF="sdlresizeevent.html"
  298. >Application window resize event</A
  299. ></TD
  300. ></TR
  301. ><TR
  302. ><TD
  303. ALIGN="LEFT"
  304. VALIGN="TOP"
  305. ><TT
  306. CLASS="STRUCTFIELD"
  307. ><I
  308. >quit</I
  309. ></TT
  310. ></TD
  311. ><TD
  312. ALIGN="LEFT"
  313. VALIGN="TOP"
  314. ><A
  315. HREF="sdlquitevent.html"
  316. >Application quit request event</A
  317. ></TD
  318. ></TR
  319. ><TR
  320. ><TD
  321. ALIGN="LEFT"
  322. VALIGN="TOP"
  323. ><TT
  324. CLASS="STRUCTFIELD"
  325. ><I
  326. >user</I
  327. ></TT
  328. ></TD
  329. ><TD
  330. ALIGN="LEFT"
  331. VALIGN="TOP"
  332. ><A
  333. HREF="sdluserevent.html"
  334. >User defined event</A
  335. ></TD
  336. ></TR
  337. ><TR
  338. ><TD
  339. ALIGN="LEFT"
  340. VALIGN="TOP"
  341. ><TT
  342. CLASS="STRUCTFIELD"
  343. ><I
  344. >syswm</I
  345. ></TT
  346. ></TD
  347. ><TD
  348. ALIGN="LEFT"
  349. VALIGN="TOP"
  350. ><A
  351. HREF="sdlsyswmevent.html"
  352. >Undefined window manager event</A
  353. ></TD
  354. ></TR
  355. ></TBODY
  356. ></TABLE
  357. ><P
  358. ></P
  359. ></DIV
  360. ></DIV
  361. ><DIV
  362. CLASS="REFSECT1"
  363. ><A
  364. NAME="AEN3364"
  365. ></A
  366. ><H2
  367. >Description</H2
  368. ><P
  369. >The <SPAN
  370. CLASS="STRUCTNAME"
  371. >SDL_Event</SPAN
  372. > union is the core to all event handling is SDL, its probably the most important structure after <SPAN
  373. CLASS="STRUCTNAME"
  374. >SDL_Surface</SPAN
  375. >. <SPAN
  376. CLASS="STRUCTNAME"
  377. >SDL_Event</SPAN
  378. > is a union of all event structures used in SDL, using it is a simple matter of knowing which union member relates to which event <TT
  379. CLASS="STRUCTFIELD"
  380. ><I
  381. >type</I
  382. ></TT
  383. >.</P
  384. ><P
  385. ><DIV
  386. CLASS="INFORMALTABLE"
  387. ><A
  388. NAME="AEN3372"
  389. ></A
  390. ><P
  391. ></P
  392. ><TABLE
  393. BORDER="1"
  394. CLASS="CALSTABLE"
  395. ><THEAD
  396. ><TR
  397. ><TH
  398. ALIGN="LEFT"
  399. VALIGN="TOP"
  400. >Event <TT
  401. CLASS="STRUCTFIELD"
  402. ><I
  403. >type</I
  404. ></TT
  405. ></TH
  406. ><TH
  407. ALIGN="LEFT"
  408. VALIGN="TOP"
  409. >Event Structure</TH
  410. ></TR
  411. ></THEAD
  412. ><TBODY
  413. ><TR
  414. ><TD
  415. ALIGN="LEFT"
  416. VALIGN="MIDDLE"
  417. ><TT
  418. CLASS="LITERAL"
  419. >SDL_ACTIVEEVENT</TT
  420. ></TD
  421. ><TD
  422. ALIGN="LEFT"
  423. VALIGN="MIDDLE"
  424. ><A
  425. HREF="sdlactiveevent.html"
  426. ><SPAN
  427. CLASS="STRUCTNAME"
  428. >SDL_ActiveEvent</SPAN
  429. ></A
  430. ></TD
  431. ></TR
  432. ><TR
  433. ><TD
  434. ALIGN="LEFT"
  435. VALIGN="TOP"
  436. ><TT
  437. CLASS="LITERAL"
  438. >SDL_KEYDOWN/UP</TT
  439. ></TD
  440. ><TD
  441. ALIGN="LEFT"
  442. VALIGN="TOP"
  443. ><A
  444. HREF="sdlkeyboardevent.html"
  445. ><SPAN
  446. CLASS="STRUCTNAME"
  447. >SDL_KeyboardEvent</SPAN
  448. ></A
  449. ></TD
  450. ></TR
  451. ><TR
  452. ><TD
  453. ALIGN="LEFT"
  454. VALIGN="TOP"
  455. ><TT
  456. CLASS="LITERAL"
  457. >SDL_MOUSEMOTION</TT
  458. ></TD
  459. ><TD
  460. ALIGN="LEFT"
  461. VALIGN="TOP"
  462. ><A
  463. HREF="sdlmousemotionevent.html"
  464. ><SPAN
  465. CLASS="STRUCTNAME"
  466. >SDL_MouseMotionEvent</SPAN
  467. ></A
  468. ></TD
  469. ></TR
  470. ><TR
  471. ><TD
  472. ALIGN="LEFT"
  473. VALIGN="TOP"
  474. ><TT
  475. CLASS="LITERAL"
  476. >SDL_MOUSEBUTTONDOWN/UP</TT
  477. ></TD
  478. ><TD
  479. ALIGN="LEFT"
  480. VALIGN="TOP"
  481. ><A
  482. HREF="sdlmousebuttonevent.html"
  483. ><SPAN
  484. CLASS="STRUCTNAME"
  485. >SDL_MouseButtonEvent</SPAN
  486. ></A
  487. ></TD
  488. ></TR
  489. ><TR
  490. ><TD
  491. ALIGN="LEFT"
  492. VALIGN="TOP"
  493. ><TT
  494. CLASS="LITERAL"
  495. >SDL_JOYAXISMOTION</TT
  496. ></TD
  497. ><TD
  498. ALIGN="LEFT"
  499. VALIGN="TOP"
  500. ><A
  501. HREF="sdljoyaxisevent.html"
  502. ><SPAN
  503. CLASS="STRUCTNAME"
  504. >SDL_JoyAxisEvent</SPAN
  505. ></A
  506. ></TD
  507. ></TR
  508. ><TR
  509. ><TD
  510. ALIGN="LEFT"
  511. VALIGN="TOP"
  512. ><TT
  513. CLASS="LITERAL"
  514. >SDL_JOYBALLMOTION</TT
  515. ></TD
  516. ><TD
  517. ALIGN="LEFT"
  518. VALIGN="TOP"
  519. ><A
  520. HREF="sdljoyballevent.html"
  521. ><SPAN
  522. CLASS="STRUCTNAME"
  523. >SDL_JoyBallEvent</SPAN
  524. ></A
  525. ></TD
  526. ></TR
  527. ><TR
  528. ><TD
  529. ALIGN="LEFT"
  530. VALIGN="TOP"
  531. ><TT
  532. CLASS="LITERAL"
  533. >SDL_JOYHATMOTION</TT
  534. ></TD
  535. ><TD
  536. ALIGN="LEFT"
  537. VALIGN="TOP"
  538. ><A
  539. HREF="sdljoyhatevent.html"
  540. ><SPAN
  541. CLASS="STRUCTNAME"
  542. >SDL_JoyHatEvent</SPAN
  543. ></A
  544. ></TD
  545. ></TR
  546. ><TR
  547. ><TD
  548. ALIGN="LEFT"
  549. VALIGN="TOP"
  550. ><TT
  551. CLASS="LITERAL"
  552. >SDL_JOYBUTTONDOWN/UP</TT
  553. ></TD
  554. ><TD
  555. ALIGN="LEFT"
  556. VALIGN="TOP"
  557. ><A
  558. HREF="sdljoybuttonevent.html"
  559. ><SPAN
  560. CLASS="STRUCTNAME"
  561. >SDL_JoyButtonEvent</SPAN
  562. ></A
  563. ></TD
  564. ></TR
  565. ><TR
  566. ><TD
  567. ALIGN="LEFT"
  568. VALIGN="TOP"
  569. ><TT
  570. CLASS="LITERAL"
  571. >SDL_QUIT</TT
  572. ></TD
  573. ><TD
  574. ALIGN="LEFT"
  575. VALIGN="TOP"
  576. ><A
  577. HREF="sdlquitevent.html"
  578. ><SPAN
  579. CLASS="STRUCTNAME"
  580. >SDL_QuitEvent</SPAN
  581. ></A
  582. ></TD
  583. ></TR
  584. ><TR
  585. ><TD
  586. ALIGN="LEFT"
  587. VALIGN="TOP"
  588. ><TT
  589. CLASS="LITERAL"
  590. >SDL_SYSWMEVENT</TT
  591. ></TD
  592. ><TD
  593. ALIGN="LEFT"
  594. VALIGN="TOP"
  595. ><A
  596. HREF="sdlsyswmevent.html"
  597. ><SPAN
  598. CLASS="STRUCTNAME"
  599. >SDL_SysWMEvent</SPAN
  600. ></A
  601. ></TD
  602. ></TR
  603. ><TR
  604. ><TD
  605. ALIGN="LEFT"
  606. VALIGN="TOP"
  607. ><TT
  608. CLASS="LITERAL"
  609. >SDL_VIDEORESIZE</TT
  610. ></TD
  611. ><TD
  612. ALIGN="LEFT"
  613. VALIGN="TOP"
  614. ><A
  615. HREF="sdlresizeevent.html"
  616. ><SPAN
  617. CLASS="STRUCTNAME"
  618. >SDL_ResizeEvent</SPAN
  619. ></A
  620. ></TD
  621. ></TR
  622. ><TR
  623. ><TD
  624. ALIGN="LEFT"
  625. VALIGN="TOP"
  626. ><TT
  627. CLASS="LITERAL"
  628. >SDL_USEREVENT</TT
  629. ></TD
  630. ><TD
  631. ALIGN="LEFT"
  632. VALIGN="TOP"
  633. ><A
  634. HREF="sdluserevent.html"
  635. ><SPAN
  636. CLASS="STRUCTNAME"
  637. >SDL_UserEvent</SPAN
  638. ></A
  639. ></TD
  640. ></TR
  641. ></TBODY
  642. ></TABLE
  643. ><P
  644. ></P
  645. ></DIV
  646. ></P
  647. ></DIV
  648. ><DIV
  649. CLASS="REFSECT1"
  650. ><A
  651. NAME="AEN3452"
  652. ></A
  653. ><H2
  654. >Use</H2
  655. ><P
  656. >The <SPAN
  657. CLASS="STRUCTNAME"
  658. >SDL_Event</SPAN
  659. > structure has two uses</P
  660. ><P
  661. ></P
  662. ><UL
  663. COMPACT="COMPACT"
  664. ><LI
  665. ><P
  666. >Reading events on the event queue</P
  667. ></LI
  668. ><LI
  669. ><P
  670. >Placing events on the event queue</P
  671. ></LI
  672. ></UL
  673. ><P
  674. >Reading events from the event queue is done with either <A
  675. HREF="sdlpollevent.html"
  676. ><TT
  677. CLASS="FUNCTION"
  678. >SDL_PollEvent</TT
  679. ></A
  680. > or <A
  681. HREF="sdlpeepevents.html"
  682. ><TT
  683. CLASS="FUNCTION"
  684. >SDL_PeepEvents</TT
  685. ></A
  686. >. We'll use <TT
  687. CLASS="FUNCTION"
  688. >SDL_PollEvent</TT
  689. > and step through an example.</P
  690. ><P
  691. >First off, we create an empty <SPAN
  692. CLASS="STRUCTNAME"
  693. >SDL_Event</SPAN
  694. > structure.
  695. <PRE
  696. CLASS="PROGRAMLISTING"
  697. >SDL_Event test_event;</PRE
  698. >
  699. <TT
  700. CLASS="FUNCTION"
  701. >SDL_PollEvent</TT
  702. > removes the next event from the event queue, if there are no events on the queue it returns <SPAN
  703. CLASS="RETURNVALUE"
  704. >0</SPAN
  705. > otherwise it returns <SPAN
  706. CLASS="RETURNVALUE"
  707. >1</SPAN
  708. >. We use a <TT
  709. CLASS="FUNCTION"
  710. >while</TT
  711. > loop to process each event in turn.
  712. <PRE
  713. CLASS="PROGRAMLISTING"
  714. >while(SDL_PollEvent(&#38;test_event)) {</PRE
  715. >
  716. The <TT
  717. CLASS="FUNCTION"
  718. >SDL_PollEvent</TT
  719. > function take a pointer to an <SPAN
  720. CLASS="STRUCTNAME"
  721. >SDL_Event</SPAN
  722. > structure that is to be filled with event information. We know that if <TT
  723. CLASS="FUNCTION"
  724. >SDL_PollEvent</TT
  725. > removes an event from the queue then the event information will be placed in our <SPAN
  726. CLASS="STRUCTNAME"
  727. >test_event</SPAN
  728. > structure, but we also know that the <I
  729. CLASS="EMPHASIS"
  730. >type</I
  731. > of event will be placed in the <TT
  732. CLASS="STRUCTFIELD"
  733. ><I
  734. >type</I
  735. ></TT
  736. > member of <SPAN
  737. CLASS="STRUCTNAME"
  738. >test_event</SPAN
  739. >. So to handle each event <TT
  740. CLASS="STRUCTFIELD"
  741. ><I
  742. >type</I
  743. ></TT
  744. > seperately we use a <TT
  745. CLASS="FUNCTION"
  746. >switch</TT
  747. > statement.
  748. <PRE
  749. CLASS="PROGRAMLISTING"
  750. >  switch(test_event.type) {</PRE
  751. >
  752. We need to know what kind of events we're looking for <I
  753. CLASS="EMPHASIS"
  754. >and</I
  755. > the event <TT
  756. CLASS="STRUCTFIELD"
  757. ><I
  758. >type</I
  759. ></TT
  760. >'s of those events. So lets assume we want to detect where the user is moving the mouse pointer within our application. We look through our event types and notice that <TT
  761. CLASS="LITERAL"
  762. >SDL_MOUSEMOTION</TT
  763. > is, more than likely, the event we're looking for. A little <A
  764. HREF="sdlmousemotionevent.html"
  765. >more</A
  766. > research tells use that <TT
  767. CLASS="LITERAL"
  768. >SDL_MOUSEMOTION</TT
  769. > events are handled within the <A
  770. HREF="sdlmousemotionevent.html"
  771. ><SPAN
  772. CLASS="STRUCTNAME"
  773. >SDL_MouseMotionEvent</SPAN
  774. ></A
  775. > structure which is the <TT
  776. CLASS="STRUCTFIELD"
  777. ><I
  778. >motion</I
  779. ></TT
  780. > member of <SPAN
  781. CLASS="STRUCTNAME"
  782. >SDL_Event</SPAN
  783. >. We can check for the <TT
  784. CLASS="LITERAL"
  785. >SDL_MOUSEMOTION</TT
  786. > event <TT
  787. CLASS="STRUCTFIELD"
  788. ><I
  789. >type</I
  790. ></TT
  791. > within our <TT
  792. CLASS="FUNCTION"
  793. >switch</TT
  794. > statement like so:
  795. <PRE
  796. CLASS="PROGRAMLISTING"
  797. >    case SDL_MOUSEMOTION:</PRE
  798. >
  799. All we need do now is read the information out of the <TT
  800. CLASS="STRUCTFIELD"
  801. ><I
  802. >motion</I
  803. ></TT
  804. > member of <SPAN
  805. CLASS="STRUCTNAME"
  806. >test_event</SPAN
  807. >.
  808. <PRE
  809. CLASS="PROGRAMLISTING"
  810. >      printf("We got a motion event.\n");
  811.       printf("Current mouse position is: (%d, %d)\n", test_event.motion.x, test_event.motion.y);
  812.       break;
  813.     default:
  814.       printf("Unhandled Event!\n");
  815.       break;
  816.   }
  817. }
  818. printf("Event queue empty.\n");</PRE
  819. ></P
  820. ><P
  821. >It is also possible to push events onto the event queue and so use it as a two-way communication path. Both <A
  822. HREF="sdlpushevent.html"
  823. ><TT
  824. CLASS="FUNCTION"
  825. >SDL_PushEvent</TT
  826. ></A
  827. > and <A
  828. HREF="sdlpeepevents.html"
  829. ><TT
  830. CLASS="FUNCTION"
  831. >SDL_PeepEvents</TT
  832. ></A
  833. > allow you to place events onto the event queue. This is usually used to place a <TT
  834. CLASS="LITERAL"
  835. >SDL_USEREVENT</TT
  836. > on the event queue, however you could use it to post fake input events if you wished. Creating your own events is a simple matter of choosing the event type you want, setting the <TT
  837. CLASS="STRUCTFIELD"
  838. ><I
  839. >type</I
  840. ></TT
  841. > member and filling the appropriate member structure with information.
  842. <PRE
  843. CLASS="PROGRAMLISTING"
  844. >SDL_Event user_event;
  845.  
  846. user_event.type=SDL_USEREVENT;
  847. user_event.user.code=2;
  848. user_event.user.data1=NULL;
  849. user_event.user.data2=NULL;
  850. SDL_PushEvent(&#38;user_event);</PRE
  851. ></P
  852. ></DIV
  853. ><DIV
  854. CLASS="REFSECT1"
  855. ><A
  856. NAME="AEN3509"
  857. ></A
  858. ><H2
  859. >See Also</H2
  860. ><P
  861. ><A
  862. HREF="sdlpollevent.html"
  863. ><TT
  864. CLASS="FUNCTION"
  865. >SDL_PollEvent</TT
  866. ></A
  867. >,
  868. <A
  869. HREF="sdlpushevent.html"
  870. ><TT
  871. CLASS="FUNCTION"
  872. >SDL_PushEvent</TT
  873. ></A
  874. >,
  875. <A
  876. HREF="sdlpeepevents.html"
  877. ><TT
  878. CLASS="FUNCTION"
  879. >SDL_PeepEvents</TT
  880. ></A
  881. ></P
  882. ></DIV
  883. ><DIV
  884. CLASS="NAVFOOTER"
  885. ><HR
  886. ALIGN="LEFT"
  887. WIDTH="100%"><TABLE
  888. WIDTH="100%"
  889. BORDER="0"
  890. CELLPADDING="0"
  891. CELLSPACING="0"
  892. ><TR
  893. ><TD
  894. WIDTH="33%"
  895. ALIGN="left"
  896. VALIGN="top"
  897. ><A
  898. HREF="eventstructures.html"
  899. >Prev</A
  900. ></TD
  901. ><TD
  902. WIDTH="34%"
  903. ALIGN="center"
  904. VALIGN="top"
  905. ><A
  906. HREF="index.html"
  907. >Home</A
  908. ></TD
  909. ><TD
  910. WIDTH="33%"
  911. ALIGN="right"
  912. VALIGN="top"
  913. ><A
  914. HREF="sdlactiveevent.html"
  915. >Next</A
  916. ></TD
  917. ></TR
  918. ><TR
  919. ><TD
  920. WIDTH="33%"
  921. ALIGN="left"
  922. VALIGN="top"
  923. >SDL Event Structures.</TD
  924. ><TD
  925. WIDTH="34%"
  926. ALIGN="center"
  927. VALIGN="top"
  928. ><A
  929. HREF="eventstructures.html"
  930. >Up</A
  931. ></TD
  932. ><TD
  933. WIDTH="33%"
  934. ALIGN="right"
  935. VALIGN="top"
  936. >SDL_ActiveEvent</TD
  937. ></TR
  938. ></TABLE
  939. ></DIV
  940. ></BODY
  941. ></HTML
  942. >