Home | History | Annotate | Download | only in 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 >