|
1 <HTML |
|
2 ><HEAD |
|
3 ><TITLE |
|
4 >SDL_keysym</TITLE |
|
5 ><META |
|
6 NAME="GENERATOR" |
|
7 CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+ |
|
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_QuitEvent" |
|
17 HREF="sdlquitevent.html"><LINK |
|
18 REL="NEXT" |
|
19 TITLE="SDLKey" |
|
20 HREF="sdlkey.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 SUMMARY="Header navigation table" |
|
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 |
|
48 HREF="sdlquitevent.html" |
|
49 ACCESSKEY="P" |
|
50 >Prev</A |
|
51 ></TD |
|
52 ><TD |
|
53 WIDTH="80%" |
|
54 ALIGN="center" |
|
55 VALIGN="bottom" |
|
56 ></TD |
|
57 ><TD |
|
58 WIDTH="10%" |
|
59 ALIGN="right" |
|
60 VALIGN="bottom" |
|
61 ><A |
|
62 HREF="sdlkey.html" |
|
63 ACCESSKEY="N" |
|
64 >Next</A |
|
65 ></TD |
|
66 ></TR |
|
67 ></TABLE |
|
68 ><HR |
|
69 ALIGN="LEFT" |
|
70 WIDTH="100%"></DIV |
|
71 ><H1 |
|
72 ><A |
|
73 NAME="SDLKEYSYM" |
|
74 ></A |
|
75 >SDL_keysym</H1 |
|
76 ><DIV |
|
77 CLASS="REFNAMEDIV" |
|
78 ><A |
|
79 NAME="AEN4659" |
|
80 ></A |
|
81 ><H2 |
|
82 >Name</H2 |
|
83 >SDL_keysym -- Keysym structure</DIV |
|
84 ><DIV |
|
85 CLASS="REFSECT1" |
|
86 ><A |
|
87 NAME="AEN4662" |
|
88 ></A |
|
89 ><H2 |
|
90 >Structure Definition</H2 |
|
91 ><PRE |
|
92 CLASS="PROGRAMLISTING" |
|
93 >typedef struct{ |
|
94 Uint8 scancode; |
|
95 SDLKey sym; |
|
96 SDLMod mod; |
|
97 Uint16 unicode; |
|
98 } SDL_keysym;</PRE |
|
99 ></DIV |
|
100 ><DIV |
|
101 CLASS="REFSECT1" |
|
102 ><A |
|
103 NAME="AEN4665" |
|
104 ></A |
|
105 ><H2 |
|
106 >Structure Data</H2 |
|
107 ><DIV |
|
108 CLASS="INFORMALTABLE" |
|
109 ><A |
|
110 NAME="AEN4667" |
|
111 ></A |
|
112 ><P |
|
113 ></P |
|
114 ><TABLE |
|
115 BORDER="0" |
|
116 CLASS="CALSTABLE" |
|
117 ><TBODY |
|
118 ><TR |
|
119 ><TD |
|
120 ALIGN="LEFT" |
|
121 VALIGN="TOP" |
|
122 ><TT |
|
123 CLASS="STRUCTFIELD" |
|
124 ><I |
|
125 >scancode</I |
|
126 ></TT |
|
127 ></TD |
|
128 ><TD |
|
129 ALIGN="LEFT" |
|
130 VALIGN="TOP" |
|
131 >Hardware specific scancode</TD |
|
132 ></TR |
|
133 ><TR |
|
134 ><TD |
|
135 ALIGN="LEFT" |
|
136 VALIGN="TOP" |
|
137 ><TT |
|
138 CLASS="STRUCTFIELD" |
|
139 ><I |
|
140 >sym</I |
|
141 ></TT |
|
142 ></TD |
|
143 ><TD |
|
144 ALIGN="LEFT" |
|
145 VALIGN="TOP" |
|
146 >SDL virtual keysym</TD |
|
147 ></TR |
|
148 ><TR |
|
149 ><TD |
|
150 ALIGN="LEFT" |
|
151 VALIGN="TOP" |
|
152 ><TT |
|
153 CLASS="STRUCTFIELD" |
|
154 ><I |
|
155 >mod</I |
|
156 ></TT |
|
157 ></TD |
|
158 ><TD |
|
159 ALIGN="LEFT" |
|
160 VALIGN="TOP" |
|
161 >Current key modifiers</TD |
|
162 ></TR |
|
163 ><TR |
|
164 ><TD |
|
165 ALIGN="LEFT" |
|
166 VALIGN="TOP" |
|
167 ><TT |
|
168 CLASS="STRUCTFIELD" |
|
169 ><I |
|
170 >unicode</I |
|
171 ></TT |
|
172 ></TD |
|
173 ><TD |
|
174 ALIGN="LEFT" |
|
175 VALIGN="TOP" |
|
176 >Translated character</TD |
|
177 ></TR |
|
178 ></TBODY |
|
179 ></TABLE |
|
180 ><P |
|
181 ></P |
|
182 ></DIV |
|
183 ></DIV |
|
184 ><DIV |
|
185 CLASS="REFSECT1" |
|
186 ><A |
|
187 NAME="AEN4686" |
|
188 ></A |
|
189 ><H2 |
|
190 >Description</H2 |
|
191 ><P |
|
192 >The <SPAN |
|
193 CLASS="STRUCTNAME" |
|
194 >SDL_keysym</SPAN |
|
195 > structure is used by reporting key presses and releases since it is a part of the <A |
|
196 HREF="sdlkeyboardevent.html" |
|
197 ><SPAN |
|
198 CLASS="STRUCTNAME" |
|
199 >SDL_KeyboardEvent</SPAN |
|
200 ></A |
|
201 >.</P |
|
202 ><P |
|
203 >The <TT |
|
204 CLASS="STRUCTFIELD" |
|
205 ><I |
|
206 >scancode</I |
|
207 ></TT |
|
208 > field should generally be left alone, it is the hardware dependent scancode returned by the keyboard. The <TT |
|
209 CLASS="STRUCTFIELD" |
|
210 ><I |
|
211 >sym</I |
|
212 ></TT |
|
213 > field is extremely useful. It is the SDL-defined value of the key (see <A |
|
214 HREF="sdlkey.html" |
|
215 >SDL Key Syms</A |
|
216 >. This field is very useful when you are checking for certain key presses, like so: |
|
217 <PRE |
|
218 CLASS="PROGRAMLISTING" |
|
219 >. |
|
220 . |
|
221 while(SDL_PollEvent(&event)){ |
|
222 switch(event.type){ |
|
223 case SDL_KEYDOWN: |
|
224 if(event.key.keysym.sym==SDLK_LEFT) |
|
225 move_left(); |
|
226 break; |
|
227 . |
|
228 . |
|
229 . |
|
230 } |
|
231 } |
|
232 . |
|
233 .</PRE |
|
234 > |
|
235 <TT |
|
236 CLASS="STRUCTFIELD" |
|
237 ><I |
|
238 >mod</I |
|
239 ></TT |
|
240 > stores the current state of the keyboard modifiers as explained in <A |
|
241 HREF="sdlgetmodstate.html" |
|
242 ><TT |
|
243 CLASS="FUNCTION" |
|
244 >SDL_GetModState</TT |
|
245 ></A |
|
246 >. The <TT |
|
247 CLASS="STRUCTFIELD" |
|
248 ><I |
|
249 >unicode</I |
|
250 ></TT |
|
251 > is only used when UNICODE translation is enabled with <A |
|
252 HREF="sdlenableunicode.html" |
|
253 ><TT |
|
254 CLASS="FUNCTION" |
|
255 >SDL_EnableUNICODE</TT |
|
256 ></A |
|
257 >. If <TT |
|
258 CLASS="STRUCTFIELD" |
|
259 ><I |
|
260 >unicode</I |
|
261 ></TT |
|
262 > is non-zero then this a the UNICODE character corresponding to the keypress. If the high 9 bits of the character are 0, then this maps to the equivalent ASCII character: |
|
263 <PRE |
|
264 CLASS="PROGRAMLISTING" |
|
265 >char ch; |
|
266 if ( (keysym.unicode & 0xFF80) == 0 ) { |
|
267 ch = keysym.unicode & 0x7F; |
|
268 } |
|
269 else { |
|
270 printf("An International Character.\n"); |
|
271 }</PRE |
|
272 > |
|
273 UNICODE translation does have a slight overhead so don't enable it unless its needed.</P |
|
274 ></DIV |
|
275 ><DIV |
|
276 CLASS="REFSECT1" |
|
277 ><A |
|
278 NAME="AEN4705" |
|
279 ></A |
|
280 ><H2 |
|
281 >See Also</H2 |
|
282 ><P |
|
283 ><A |
|
284 HREF="sdlkey.html" |
|
285 ><SPAN |
|
286 CLASS="STRUCTNAME" |
|
287 >SDLKey</SPAN |
|
288 ></A |
|
289 ></P |
|
290 ></DIV |
|
291 ><DIV |
|
292 CLASS="NAVFOOTER" |
|
293 ><HR |
|
294 ALIGN="LEFT" |
|
295 WIDTH="100%"><TABLE |
|
296 SUMMARY="Footer navigation table" |
|
297 WIDTH="100%" |
|
298 BORDER="0" |
|
299 CELLPADDING="0" |
|
300 CELLSPACING="0" |
|
301 ><TR |
|
302 ><TD |
|
303 WIDTH="33%" |
|
304 ALIGN="left" |
|
305 VALIGN="top" |
|
306 ><A |
|
307 HREF="sdlquitevent.html" |
|
308 ACCESSKEY="P" |
|
309 >Prev</A |
|
310 ></TD |
|
311 ><TD |
|
312 WIDTH="34%" |
|
313 ALIGN="center" |
|
314 VALIGN="top" |
|
315 ><A |
|
316 HREF="index.html" |
|
317 ACCESSKEY="H" |
|
318 >Home</A |
|
319 ></TD |
|
320 ><TD |
|
321 WIDTH="33%" |
|
322 ALIGN="right" |
|
323 VALIGN="top" |
|
324 ><A |
|
325 HREF="sdlkey.html" |
|
326 ACCESSKEY="N" |
|
327 >Next</A |
|
328 ></TD |
|
329 ></TR |
|
330 ><TR |
|
331 ><TD |
|
332 WIDTH="33%" |
|
333 ALIGN="left" |
|
334 VALIGN="top" |
|
335 >SDL_QuitEvent</TD |
|
336 ><TD |
|
337 WIDTH="34%" |
|
338 ALIGN="center" |
|
339 VALIGN="top" |
|
340 ><A |
|
341 HREF="eventstructures.html" |
|
342 ACCESSKEY="U" |
|
343 >Up</A |
|
344 ></TD |
|
345 ><TD |
|
346 WIDTH="33%" |
|
347 ALIGN="right" |
|
348 VALIGN="top" |
|
349 >SDLKey</TD |
|
350 ></TR |
|
351 ></TABLE |
|
352 ></DIV |
|
353 ></BODY |
|
354 ></HTML |
|
355 > |