0,0 → 1,347 |
<HTML |
><HEAD |
><TITLE |
>SDL_keysym</TITLE |
><META |
NAME="GENERATOR" |
CONTENT="Modular DocBook HTML Stylesheet Version 1.64 |
"><LINK |
REL="HOME" |
TITLE="SDL Library Documentation" |
HREF="index.html"><LINK |
REL="UP" |
TITLE="SDL Event Structures." |
HREF="eventstructures.html"><LINK |
REL="PREVIOUS" |
TITLE="SDL_QuitEvent" |
HREF="sdlquitevent.html"><LINK |
REL="NEXT" |
TITLE="SDLKey" |
HREF="sdlkey.html"></HEAD |
><BODY |
CLASS="REFENTRY" |
BGCOLOR="#FFF8DC" |
TEXT="#000000" |
LINK="#0000ee" |
VLINK="#551a8b" |
ALINK="#ff0000" |
><DIV |
CLASS="NAVHEADER" |
><TABLE |
WIDTH="100%" |
BORDER="0" |
CELLPADDING="0" |
CELLSPACING="0" |
><TR |
><TH |
COLSPAN="3" |
ALIGN="center" |
>SDL Library Documentation</TH |
></TR |
><TR |
><TD |
WIDTH="10%" |
ALIGN="left" |
VALIGN="bottom" |
><A |
HREF="sdlquitevent.html" |
>Prev</A |
></TD |
><TD |
WIDTH="80%" |
ALIGN="center" |
VALIGN="bottom" |
></TD |
><TD |
WIDTH="10%" |
ALIGN="right" |
VALIGN="bottom" |
><A |
HREF="sdlkey.html" |
>Next</A |
></TD |
></TR |
></TABLE |
><HR |
ALIGN="LEFT" |
WIDTH="100%"></DIV |
><H1 |
><A |
NAME="SDLKEYSYM" |
>SDL_keysym</A |
></H1 |
><DIV |
CLASS="REFNAMEDIV" |
><A |
NAME="AEN4191" |
></A |
><H2 |
>Name</H2 |
>SDL_keysym -- Keysym structure</DIV |
><DIV |
CLASS="REFSECT1" |
><A |
NAME="AEN4194" |
></A |
><H2 |
>Structure Definition</H2 |
><PRE |
CLASS="PROGRAMLISTING" |
>typedef struct{ |
Uint8 scancode; |
SDLKey sym; |
SDLMod mod; |
Uint16 unicode; |
} SDL_keysym;</PRE |
></DIV |
><DIV |
CLASS="REFSECT1" |
><A |
NAME="AEN4197" |
></A |
><H2 |
>Structure Data</H2 |
><DIV |
CLASS="INFORMALTABLE" |
><A |
NAME="AEN4199" |
></A |
><P |
></P |
><TABLE |
BORDER="0" |
CLASS="CALSTABLE" |
><TBODY |
><TR |
><TD |
ALIGN="LEFT" |
VALIGN="TOP" |
><TT |
CLASS="STRUCTFIELD" |
><I |
>scancode</I |
></TT |
></TD |
><TD |
ALIGN="LEFT" |
VALIGN="TOP" |
>Hardware specific scancode</TD |
></TR |
><TR |
><TD |
ALIGN="LEFT" |
VALIGN="TOP" |
><TT |
CLASS="STRUCTFIELD" |
><I |
>sym</I |
></TT |
></TD |
><TD |
ALIGN="LEFT" |
VALIGN="TOP" |
>SDL virtual keysym</TD |
></TR |
><TR |
><TD |
ALIGN="LEFT" |
VALIGN="TOP" |
><TT |
CLASS="STRUCTFIELD" |
><I |
>mod</I |
></TT |
></TD |
><TD |
ALIGN="LEFT" |
VALIGN="TOP" |
>Current key modifiers</TD |
></TR |
><TR |
><TD |
ALIGN="LEFT" |
VALIGN="TOP" |
><TT |
CLASS="STRUCTFIELD" |
><I |
>unicode</I |
></TT |
></TD |
><TD |
ALIGN="LEFT" |
VALIGN="TOP" |
>Translated character</TD |
></TR |
></TBODY |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><DIV |
CLASS="REFSECT1" |
><A |
NAME="AEN4218" |
></A |
><H2 |
>Description</H2 |
><P |
>The <SPAN |
CLASS="STRUCTNAME" |
>SDL_keysym</SPAN |
> structure is used by reporting key presses and releases since it is a part of the <A |
HREF="sdlkeyboardevent.html" |
><SPAN |
CLASS="STRUCTNAME" |
>SDL_KeyboardEvent</SPAN |
></A |
>.</P |
><P |
>The <TT |
CLASS="STRUCTFIELD" |
><I |
>scancode</I |
></TT |
> field should generally be left alone, it is the hardware dependent scancode returned by the keyboard. The <TT |
CLASS="STRUCTFIELD" |
><I |
>sym</I |
></TT |
> field is extremely useful. It is the SDL-defined value of the key (see <A |
HREF="sdlkey.html" |
>SDL Key Syms</A |
>. This field is very useful when you are checking for certain key presses, like so: |
<PRE |
CLASS="PROGRAMLISTING" |
>. |
. |
while(SDL_PollEvent(&event)){ |
switch(event.type){ |
case SDL_KEYDOWN: |
if(event.key.keysym.sym==SDLK_LEFT) |
move_left(); |
break; |
. |
. |
. |
} |
} |
. |
.</PRE |
> |
<TT |
CLASS="STRUCTFIELD" |
><I |
>mod</I |
></TT |
> stores the current state of the keyboard modifiers as explained in <A |
HREF="sdlgetmodstate.html" |
><TT |
CLASS="FUNCTION" |
>SDL_GetModState</TT |
></A |
>. The <TT |
CLASS="STRUCTFIELD" |
><I |
>unicode</I |
></TT |
> is only used when UNICODE translation is enabled with <A |
HREF="sdlenableunicode.html" |
><TT |
CLASS="FUNCTION" |
>SDL_EnableUNICODE</TT |
></A |
>. If <TT |
CLASS="STRUCTFIELD" |
><I |
>unicode</I |
></TT |
> 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: |
<PRE |
CLASS="PROGRAMLISTING" |
>char ch; |
if ( (keysym.unicode & 0xFF80) == 0 ) { |
ch = keysym.unicode & 0x7F; |
} |
else { |
printf("An International Character.\n"); |
}</PRE |
> |
UNICODE translation does have a slight overhead so don't enable it unless its needed.</P |
></DIV |
><DIV |
CLASS="REFSECT1" |
><A |
NAME="AEN4237" |
></A |
><H2 |
>See Also</H2 |
><P |
><A |
HREF="sdlkey.html" |
><SPAN |
CLASS="STRUCTNAME" |
>SDLKey</SPAN |
></A |
></P |
></DIV |
><DIV |
CLASS="NAVFOOTER" |
><HR |
ALIGN="LEFT" |
WIDTH="100%"><TABLE |
WIDTH="100%" |
BORDER="0" |
CELLPADDING="0" |
CELLSPACING="0" |
><TR |
><TD |
WIDTH="33%" |
ALIGN="left" |
VALIGN="top" |
><A |
HREF="sdlquitevent.html" |
>Prev</A |
></TD |
><TD |
WIDTH="34%" |
ALIGN="center" |
VALIGN="top" |
><A |
HREF="index.html" |
>Home</A |
></TD |
><TD |
WIDTH="33%" |
ALIGN="right" |
VALIGN="top" |
><A |
HREF="sdlkey.html" |
>Next</A |
></TD |
></TR |
><TR |
><TD |
WIDTH="33%" |
ALIGN="left" |
VALIGN="top" |
>SDL_QuitEvent</TD |
><TD |
WIDTH="34%" |
ALIGN="center" |
VALIGN="top" |
><A |
HREF="eventstructures.html" |
>Up</A |
></TD |
><TD |
WIDTH="33%" |
ALIGN="right" |
VALIGN="top" |
>SDLKey</TD |
></TR |
></TABLE |
></DIV |
></BODY |
></HTML |
> |