forked from KolibriOS/kolibrios
3cf7852e03
git-svn-id: svn://kolibrios.org@5131 a494cfbc-eb01-0410-851d-a64ba20cac60
347 lines
4.6 KiB
HTML
347 lines
4.6 KiB
HTML
<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
|
|
> |