SDL-1.2.14
[sdl_omap.git] / docs / html / sdlkeysym.html
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&nbsp;--&nbsp;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(&#38;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 &#38; 0xFF80) == 0 ) {
267   ch = keysym.unicode &#38; 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 >