Mercurial > sdl-ios-xcode
view docs/html/sdlkeysym.html @ 967:cda407d627a3
Date: Tue, 5 Oct 2004 11:04:02 -0400
From: Bob Ippolito
Subject: [SDL] PATCH: Fix for release count bug in SDL_QuartzWM
SDL_QuartzWM incorrectly does [window close]; [window release];
The semantics for -[NSWindow close] are as follows:
Removes the receiver from the screen. If the receiver is set to be
released when closed, a release message is sent to the object after the
current event is completed. For an NSWindow object, the default is to
be released on closing, while for an NSPanel object, the default is not
to be released. You can use the setReleasedWhenClosed: method to change
the default behavior.
This patch simply removes the incorrect release.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Fri, 12 Nov 2004 21:29:52 +0000 |
parents | 355632dca928 |
children |
line wrap: on
line source
<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 >