sdlkeysym.html revision 9682c8870b8ff5e4ac2e4c70b759f791c6f38c1f
1<HTML 2><HEAD 3><TITLE 4>SDL_keysym</TITLE 5><META 6NAME="GENERATOR" 7CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+ 8"><LINK 9REL="HOME" 10TITLE="SDL Library Documentation" 11HREF="index.html"><LINK 12REL="UP" 13TITLE="SDL Event Structures." 14HREF="eventstructures.html"><LINK 15REL="PREVIOUS" 16TITLE="SDL_QuitEvent" 17HREF="sdlquitevent.html"><LINK 18REL="NEXT" 19TITLE="SDLKey" 20HREF="sdlkey.html"></HEAD 21><BODY 22CLASS="REFENTRY" 23BGCOLOR="#FFF8DC" 24TEXT="#000000" 25LINK="#0000ee" 26VLINK="#551a8b" 27ALINK="#ff0000" 28><DIV 29CLASS="NAVHEADER" 30><TABLE 31SUMMARY="Header navigation table" 32WIDTH="100%" 33BORDER="0" 34CELLPADDING="0" 35CELLSPACING="0" 36><TR 37><TH 38COLSPAN="3" 39ALIGN="center" 40>SDL Library Documentation</TH 41></TR 42><TR 43><TD 44WIDTH="10%" 45ALIGN="left" 46VALIGN="bottom" 47><A 48HREF="sdlquitevent.html" 49ACCESSKEY="P" 50>Prev</A 51></TD 52><TD 53WIDTH="80%" 54ALIGN="center" 55VALIGN="bottom" 56></TD 57><TD 58WIDTH="10%" 59ALIGN="right" 60VALIGN="bottom" 61><A 62HREF="sdlkey.html" 63ACCESSKEY="N" 64>Next</A 65></TD 66></TR 67></TABLE 68><HR 69ALIGN="LEFT" 70WIDTH="100%"></DIV 71><H1 72><A 73NAME="SDLKEYSYM" 74></A 75>SDL_keysym</H1 76><DIV 77CLASS="REFNAMEDIV" 78><A 79NAME="AEN4659" 80></A 81><H2 82>Name</H2 83>SDL_keysym -- Keysym structure</DIV 84><DIV 85CLASS="REFSECT1" 86><A 87NAME="AEN4662" 88></A 89><H2 90>Structure Definition</H2 91><PRE 92CLASS="PROGRAMLISTING" 93>typedef struct{ 94 Uint8 scancode; 95 SDLKey sym; 96 SDLMod mod; 97 Uint16 unicode; 98} SDL_keysym;</PRE 99></DIV 100><DIV 101CLASS="REFSECT1" 102><A 103NAME="AEN4665" 104></A 105><H2 106>Structure Data</H2 107><DIV 108CLASS="INFORMALTABLE" 109><A 110NAME="AEN4667" 111></A 112><P 113></P 114><TABLE 115BORDER="0" 116CLASS="CALSTABLE" 117><TBODY 118><TR 119><TD 120ALIGN="LEFT" 121VALIGN="TOP" 122><TT 123CLASS="STRUCTFIELD" 124><I 125>scancode</I 126></TT 127></TD 128><TD 129ALIGN="LEFT" 130VALIGN="TOP" 131>Hardware specific scancode</TD 132></TR 133><TR 134><TD 135ALIGN="LEFT" 136VALIGN="TOP" 137><TT 138CLASS="STRUCTFIELD" 139><I 140>sym</I 141></TT 142></TD 143><TD 144ALIGN="LEFT" 145VALIGN="TOP" 146>SDL virtual keysym</TD 147></TR 148><TR 149><TD 150ALIGN="LEFT" 151VALIGN="TOP" 152><TT 153CLASS="STRUCTFIELD" 154><I 155>mod</I 156></TT 157></TD 158><TD 159ALIGN="LEFT" 160VALIGN="TOP" 161>Current key modifiers</TD 162></TR 163><TR 164><TD 165ALIGN="LEFT" 166VALIGN="TOP" 167><TT 168CLASS="STRUCTFIELD" 169><I 170>unicode</I 171></TT 172></TD 173><TD 174ALIGN="LEFT" 175VALIGN="TOP" 176>Translated character</TD 177></TR 178></TBODY 179></TABLE 180><P 181></P 182></DIV 183></DIV 184><DIV 185CLASS="REFSECT1" 186><A 187NAME="AEN4686" 188></A 189><H2 190>Description</H2 191><P 192>The <SPAN 193CLASS="STRUCTNAME" 194>SDL_keysym</SPAN 195> structure is used by reporting key presses and releases since it is a part of the <A 196HREF="sdlkeyboardevent.html" 197><SPAN 198CLASS="STRUCTNAME" 199>SDL_KeyboardEvent</SPAN 200></A 201>.</P 202><P 203>The <TT 204CLASS="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 209CLASS="STRUCTFIELD" 210><I 211>sym</I 212></TT 213> field is extremely useful. It is the SDL-defined value of the key (see <A 214HREF="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 218CLASS="PROGRAMLISTING" 219>. 220. 221while(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 236CLASS="STRUCTFIELD" 237><I 238>mod</I 239></TT 240> stores the current state of the keyboard modifiers as explained in <A 241HREF="sdlgetmodstate.html" 242><TT 243CLASS="FUNCTION" 244>SDL_GetModState</TT 245></A 246>. The <TT 247CLASS="STRUCTFIELD" 248><I 249>unicode</I 250></TT 251> is only used when UNICODE translation is enabled with <A 252HREF="sdlenableunicode.html" 253><TT 254CLASS="FUNCTION" 255>SDL_EnableUNICODE</TT 256></A 257>. If <TT 258CLASS="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 264CLASS="PROGRAMLISTING" 265>char ch; 266if ( (keysym.unicode & 0xFF80) == 0 ) { 267 ch = keysym.unicode & 0x7F; 268} 269else { 270 printf("An International Character.\n"); 271}</PRE 272> 273UNICODE translation does have a slight overhead so don't enable it unless its needed.</P 274></DIV 275><DIV 276CLASS="REFSECT1" 277><A 278NAME="AEN4705" 279></A 280><H2 281>See Also</H2 282><P 283><A 284HREF="sdlkey.html" 285><SPAN 286CLASS="STRUCTNAME" 287>SDLKey</SPAN 288></A 289></P 290></DIV 291><DIV 292CLASS="NAVFOOTER" 293><HR 294ALIGN="LEFT" 295WIDTH="100%"><TABLE 296SUMMARY="Footer navigation table" 297WIDTH="100%" 298BORDER="0" 299CELLPADDING="0" 300CELLSPACING="0" 301><TR 302><TD 303WIDTH="33%" 304ALIGN="left" 305VALIGN="top" 306><A 307HREF="sdlquitevent.html" 308ACCESSKEY="P" 309>Prev</A 310></TD 311><TD 312WIDTH="34%" 313ALIGN="center" 314VALIGN="top" 315><A 316HREF="index.html" 317ACCESSKEY="H" 318>Home</A 319></TD 320><TD 321WIDTH="33%" 322ALIGN="right" 323VALIGN="top" 324><A 325HREF="sdlkey.html" 326ACCESSKEY="N" 327>Next</A 328></TD 329></TR 330><TR 331><TD 332WIDTH="33%" 333ALIGN="left" 334VALIGN="top" 335>SDL_QuitEvent</TD 336><TD 337WIDTH="34%" 338ALIGN="center" 339VALIGN="top" 340><A 341HREF="eventstructures.html" 342ACCESSKEY="U" 343>Up</A 344></TD 345><TD 346WIDTH="33%" 347ALIGN="right" 348VALIGN="top" 349>SDLKey</TD 350></TR 351></TABLE 352></DIV 353></BODY 354></HTML 355>