You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
355 lines
4.8 KiB
355 lines
4.8 KiB
<HTML |
|
><HEAD |
|
><TITLE |
|
>SDL_keysym</TITLE |
|
><META |
|
NAME="GENERATOR" |
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+ |
|
"><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 |
|
SUMMARY="Header navigation 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" |
|
ACCESSKEY="P" |
|
>Prev</A |
|
></TD |
|
><TD |
|
WIDTH="80%" |
|
ALIGN="center" |
|
VALIGN="bottom" |
|
></TD |
|
><TD |
|
WIDTH="10%" |
|
ALIGN="right" |
|
VALIGN="bottom" |
|
><A |
|
HREF="sdlkey.html" |
|
ACCESSKEY="N" |
|
>Next</A |
|
></TD |
|
></TR |
|
></TABLE |
|
><HR |
|
ALIGN="LEFT" |
|
WIDTH="100%"></DIV |
|
><H1 |
|
><A |
|
NAME="SDLKEYSYM" |
|
></A |
|
>SDL_keysym</H1 |
|
><DIV |
|
CLASS="REFNAMEDIV" |
|
><A |
|
NAME="AEN4659" |
|
></A |
|
><H2 |
|
>Name</H2 |
|
>SDL_keysym -- Keysym structure</DIV |
|
><DIV |
|
CLASS="REFSECT1" |
|
><A |
|
NAME="AEN4662" |
|
></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="AEN4665" |
|
></A |
|
><H2 |
|
>Structure Data</H2 |
|
><DIV |
|
CLASS="INFORMALTABLE" |
|
><A |
|
NAME="AEN4667" |
|
></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="AEN4686" |
|
></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="AEN4705" |
|
></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 |
|
SUMMARY="Footer navigation table" |
|
WIDTH="100%" |
|
BORDER="0" |
|
CELLPADDING="0" |
|
CELLSPACING="0" |
|
><TR |
|
><TD |
|
WIDTH="33%" |
|
ALIGN="left" |
|
VALIGN="top" |
|
><A |
|
HREF="sdlquitevent.html" |
|
ACCESSKEY="P" |
|
>Prev</A |
|
></TD |
|
><TD |
|
WIDTH="34%" |
|
ALIGN="center" |
|
VALIGN="top" |
|
><A |
|
HREF="index.html" |
|
ACCESSKEY="H" |
|
>Home</A |
|
></TD |
|
><TD |
|
WIDTH="33%" |
|
ALIGN="right" |
|
VALIGN="top" |
|
><A |
|
HREF="sdlkey.html" |
|
ACCESSKEY="N" |
|
>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" |
|
ACCESSKEY="U" |
|
>Up</A |
|
></TD |
|
><TD |
|
WIDTH="33%" |
|
ALIGN="right" |
|
VALIGN="top" |
|
>SDLKey</TD |
|
></TR |
|
></TABLE |
|
></DIV |
|
></BODY |
|
></HTML |
|
> |