Mercurial > sdl-ios-xcode
annotate docs/html/guideeventexamples.html @ 1125:a6011e1394d9
Apparently MacOS X will sometimes pass command line arguments to a Cocoa
app as an openFile() message, so we have to make sure we were launched from
the Finder before accepting these as drag'n'drop documents, or they will just
duplicate what's already in argc/argv.
author | Ryan C. Gordon <icculus@icculus.org> |
---|---|
date | Mon, 22 Aug 2005 14:18:15 +0000 |
parents | 355632dca928 |
children |
rev | line source |
---|---|
0 | 1 <HTML |
2 ><HEAD | |
3 ><TITLE | |
4 >Event Examples</TITLE | |
5 ><META | |
6 NAME="GENERATOR" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
7 CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+ |
0 | 8 "><LINK |
9 REL="HOME" | |
10 TITLE="SDL Library Documentation" | |
11 HREF="index.html"><LINK | |
12 REL="UP" | |
13 TITLE="Examples" | |
14 HREF="guideexamples.html"><LINK | |
15 REL="PREVIOUS" | |
55
55f1f1b3e27d
Added new docs for SDL 1.2.1
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
16 TITLE="Examples" |
55f1f1b3e27d
Added new docs for SDL 1.2.1
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
17 HREF="guideexamples.html"><LINK |
0 | 18 REL="NEXT" |
19 TITLE="Audio Examples" | |
20 HREF="guideaudioexamples.html"></HEAD | |
21 ><BODY | |
22 CLASS="SECT1" | |
23 BGCOLOR="#FFF8DC" | |
24 TEXT="#000000" | |
25 LINK="#0000ee" | |
26 VLINK="#551a8b" | |
27 ALINK="#ff0000" | |
28 ><DIV | |
29 CLASS="NAVHEADER" | |
30 ><TABLE | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
31 SUMMARY="Header navigation table" |
0 | 32 WIDTH="100%" |
33 BORDER="0" | |
34 CELLPADDING="0" | |
35 CELLSPACING="0" | |
36 ><TR | |
37 ><TH | |
38 COLSPAN="3" | |
39 ALIGN="center" | |
40 >SDL Library Documentation</TH | |
41 ></TR | |
42 ><TR | |
43 ><TD | |
44 WIDTH="10%" | |
45 ALIGN="left" | |
46 VALIGN="bottom" | |
47 ><A | |
55
55f1f1b3e27d
Added new docs for SDL 1.2.1
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
48 HREF="guideexamples.html" |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
49 ACCESSKEY="P" |
0 | 50 >Prev</A |
51 ></TD | |
52 ><TD | |
53 WIDTH="80%" | |
54 ALIGN="center" | |
55 VALIGN="bottom" | |
56 >Chapter 4. Examples</TD | |
57 ><TD | |
58 WIDTH="10%" | |
59 ALIGN="right" | |
60 VALIGN="bottom" | |
61 ><A | |
62 HREF="guideaudioexamples.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
63 ACCESSKEY="N" |
0 | 64 >Next</A |
65 ></TD | |
66 ></TR | |
67 ></TABLE | |
68 ><HR | |
69 ALIGN="LEFT" | |
70 WIDTH="100%"></DIV | |
71 ><DIV | |
72 CLASS="SECT1" | |
73 ><H1 | |
74 CLASS="SECT1" | |
75 ><A | |
76 NAME="GUIDEEVENTEXAMPLES" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
77 ></A |
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
78 >Event Examples</H1 |
0 | 79 ><P |
80 ></P | |
81 ><DIV | |
82 CLASS="SECT2" | |
83 ><H2 | |
84 CLASS="SECT2" | |
85 ><A | |
55
55f1f1b3e27d
Added new docs for SDL 1.2.1
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
86 NAME="AEN375" |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
87 ></A |
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
88 >Filtering and Handling Events</H2 |
0 | 89 ><P |
90 ><PRE | |
91 CLASS="PROGRAMLISTING" | |
92 >#include <stdio.h> | |
93 #include <stdlib.h> | |
94 | |
95 #include "SDL.h" | |
96 | |
97 /* This function may run in a separate event thread */ | |
98 int FilterEvents(const SDL_Event *event) { | |
99 static int boycott = 1; | |
100 | |
101 /* This quit event signals the closing of the window */ | |
102 if ( (event->type == SDL_QUIT) && boycott ) { | |
103 printf("Quit event filtered out -- try again.\n"); | |
104 boycott = 0; | |
105 return(0); | |
106 } | |
107 if ( event->type == SDL_MOUSEMOTION ) { | |
108 printf("Mouse moved to (%d,%d)\n", | |
109 event->motion.x, event->motion.y); | |
110 return(0); /* Drop it, we've handled it */ | |
111 } | |
112 return(1); | |
113 } | |
114 | |
115 int main(int argc, char *argv[]) | |
116 { | |
117 SDL_Event event; | |
118 | |
119 /* Initialize the SDL library (starts the event loop) */ | |
120 if ( SDL_Init(SDL_INIT_VIDEO) < 0 ) { | |
121 fprintf(stderr, | |
122 "Couldn't initialize SDL: %s\n", SDL_GetError()); | |
123 exit(1); | |
124 } | |
125 | |
126 /* Clean up on exit, exit on window close and interrupt */ | |
127 atexit(SDL_Quit); | |
128 | |
129 /* Ignore key events */ | |
130 SDL_EventState(SDL_KEYDOWN, SDL_IGNORE); | |
131 SDL_EventState(SDL_KEYUP, SDL_IGNORE); | |
132 | |
133 /* Filter quit and mouse motion events */ | |
134 SDL_SetEventFilter(FilterEvents); | |
135 | |
136 /* The mouse isn't much use unless we have a display for reference */ | |
137 if ( SDL_SetVideoMode(640, 480, 8, 0) == NULL ) { | |
138 fprintf(stderr, "Couldn't set 640x480x8 video mode: %s\n", | |
139 SDL_GetError()); | |
140 exit(1); | |
141 } | |
142 | |
143 /* Loop waiting for ESC+Mouse_Button */ | |
144 while ( SDL_WaitEvent(&event) >= 0 ) { | |
145 switch (event.type) { | |
146 case SDL_ACTIVEEVENT: { | |
147 if ( event.active.state & SDL_APPACTIVE ) { | |
148 if ( event.active.gain ) { | |
149 printf("App activated\n"); | |
150 } else { | |
151 printf("App iconified\n"); | |
152 } | |
153 } | |
154 } | |
155 break; | |
156 | |
157 case SDL_MOUSEBUTTONDOWN: { | |
158 Uint8 *keys; | |
159 | |
160 keys = SDL_GetKeyState(NULL); | |
161 if ( keys[SDLK_ESCAPE] == SDL_PRESSED ) { | |
162 printf("Bye bye...\n"); | |
163 exit(0); | |
164 } | |
165 printf("Mouse button pressed\n"); | |
166 } | |
167 break; | |
168 | |
169 case SDL_QUIT: { | |
170 printf("Quit requested, quitting.\n"); | |
171 exit(0); | |
172 } | |
173 break; | |
174 } | |
175 } | |
176 /* This should never happen */ | |
177 printf("SDL_WaitEvent error: %s\n", SDL_GetError()); | |
178 exit(1); | |
179 }</PRE | |
180 ></P | |
181 ></DIV | |
182 ></DIV | |
183 ><DIV | |
184 CLASS="NAVFOOTER" | |
185 ><HR | |
186 ALIGN="LEFT" | |
187 WIDTH="100%"><TABLE | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
188 SUMMARY="Footer navigation table" |
0 | 189 WIDTH="100%" |
190 BORDER="0" | |
191 CELLPADDING="0" | |
192 CELLSPACING="0" | |
193 ><TR | |
194 ><TD | |
195 WIDTH="33%" | |
196 ALIGN="left" | |
197 VALIGN="top" | |
198 ><A | |
55
55f1f1b3e27d
Added new docs for SDL 1.2.1
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
199 HREF="guideexamples.html" |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
200 ACCESSKEY="P" |
0 | 201 >Prev</A |
202 ></TD | |
203 ><TD | |
204 WIDTH="34%" | |
205 ALIGN="center" | |
206 VALIGN="top" | |
207 ><A | |
208 HREF="index.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
209 ACCESSKEY="H" |
0 | 210 >Home</A |
211 ></TD | |
212 ><TD | |
213 WIDTH="33%" | |
214 ALIGN="right" | |
215 VALIGN="top" | |
216 ><A | |
217 HREF="guideaudioexamples.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
218 ACCESSKEY="N" |
0 | 219 >Next</A |
220 ></TD | |
221 ></TR | |
222 ><TR | |
223 ><TD | |
224 WIDTH="33%" | |
225 ALIGN="left" | |
226 VALIGN="top" | |
55
55f1f1b3e27d
Added new docs for SDL 1.2.1
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
227 >Examples</TD |
0 | 228 ><TD |
229 WIDTH="34%" | |
230 ALIGN="center" | |
231 VALIGN="top" | |
232 ><A | |
233 HREF="guideexamples.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
234 ACCESSKEY="U" |
0 | 235 >Up</A |
236 ></TD | |
237 ><TD | |
238 WIDTH="33%" | |
239 ALIGN="right" | |
240 VALIGN="top" | |
241 >Audio Examples</TD | |
242 ></TR | |
243 ></TABLE | |
244 ></DIV | |
245 ></BODY | |
246 ></HTML | |
247 > |