home *** CD-ROM | disk | FTP | other *** search
- <HTML
- ><HEAD
- ><TITLE
- >SDL_SetEventFilter</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="Event Functions."
- HREF="eventfunctions.html"><LINK
- REL="PREVIOUS"
- TITLE="SDL_PushEvent"
- HREF="sdlpushevent.html"><LINK
- REL="NEXT"
- TITLE="SDL_GetEventFilter"
- HREF="sdlgeteventfilter.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="sdlpushevent.html"
- >Prev</A
- ></TD
- ><TD
- WIDTH="80%"
- ALIGN="center"
- VALIGN="bottom"
- ></TD
- ><TD
- WIDTH="10%"
- ALIGN="right"
- VALIGN="bottom"
- ><A
- HREF="sdlgeteventfilter.html"
- >Next</A
- ></TD
- ></TR
- ></TABLE
- ><HR
- ALIGN="LEFT"
- WIDTH="100%"></DIV
- ><H1
- ><A
- NAME="SDLSETEVENTFILTER"
- >SDL_SetEventFilter</A
- ></H1
- ><DIV
- CLASS="REFNAMEDIV"
- ><A
- NAME="AEN5038"
- ></A
- ><H2
- >Name</H2
- >SDL_SetEventFilter -- Sets up a filter to process all events before they are posted
- to the event queue.</DIV
- ><DIV
- CLASS="REFSYNOPSISDIV"
- ><A
- NAME="AEN5041"
- ></A
- ><H2
- >Synopsis</H2
- ><DIV
- CLASS="FUNCSYNOPSIS"
- ><A
- NAME="AEN5042"
- ></A
- ><P
- ></P
- ><PRE
- CLASS="FUNCSYNOPSISINFO"
- >#include "SDL.h"</PRE
- ><P
- ><CODE
- ><CODE
- CLASS="FUNCDEF"
- >void <B
- CLASS="FSFUNC"
- >SDL_SetEventFilter</B
- ></CODE
- >(SDL_EventFilter filter);</CODE
- ></P
- ><P
- ></P
- ></DIV
- ></DIV
- ><DIV
- CLASS="REFSECT1"
- ><A
- NAME="AEN5048"
- ></A
- ><H2
- >Description</H2
- ><P
- >This function sets up a filter to process all events before they are posted
- to the event queue. This is a very powerful and flexible feature. The filter
- is prototyped as:
- <PRE
- CLASS="PROGRAMLISTING"
- >typedef int (*SDL_EventFilter)(const SDL_Event *event);</PRE
- >
- If the filter returns <SPAN
- CLASS="RETURNVALUE"
- >1</SPAN
- >, then the event will be
- added to the internal queue. If it returns <SPAN
- CLASS="RETURNVALUE"
- >0</SPAN
- >,
- then the event will be dropped from the queue. This allows selective
- filtering of dynamically.</P
- ><P
- >There is one caveat when dealing with the <TT
- CLASS="LITERAL"
- >SDL_QUITEVENT</TT
- > event type. The
- event filter is only called when the window manager desires to close the
- application window. If the event filter returns 1, then the window will
- be closed, otherwise the window will remain open if possible.
- If the quit event is generated by an interrupt signal, it will bypass the
- internal queue and be delivered to the application at the next event poll.</P
- ><DIV
- CLASS="NOTE"
- ><BLOCKQUOTE
- CLASS="NOTE"
- ><P
- ><B
- >Note: </B
- >Events pushed onto the queue with <A
- HREF="sdlpushevent.html"
- ><TT
- CLASS="FUNCTION"
- >SDL_PushEvent</TT
- ></A
- > or <A
- HREF="sdlpeepevents.html"
- ><TT
- CLASS="FUNCTION"
- >SDL_PeepEvents</TT
- ></A
- > do not get passed through the event filter.</P
- ></BLOCKQUOTE
- ></DIV
- ><DIV
- CLASS="NOTE"
- ><BLOCKQUOTE
- CLASS="NOTE"
- ><P
- ><B
- >Note: </B
- ><I
- CLASS="EMPHASIS"
- >Be Careful!</I
- > The event filter function may run in a different thread so be careful what you do within it.</P
- ></BLOCKQUOTE
- ></DIV
- ></DIV
- ><DIV
- CLASS="REFSECT1"
- ><A
- NAME="AEN5065"
- ></A
- ><H2
- >See Also</H2
- ><P
- ><A
- HREF="sdlevent.html"
- ><SPAN
- CLASS="STRUCTNAME"
- >SDL_Event</SPAN
- ></A
- >,
- <A
- HREF="sdlgeteventfilter.html"
- ><TT
- CLASS="FUNCTION"
- >SDL_GetEventFilter</TT
- ></A
- >,
- <A
- HREF="sdlpushevent.html"
- ><TT
- CLASS="FUNCTION"
- >SDL_PushEvent</TT
- ></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="sdlpushevent.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="sdlgeteventfilter.html"
- >Next</A
- ></TD
- ></TR
- ><TR
- ><TD
- WIDTH="33%"
- ALIGN="left"
- VALIGN="top"
- >SDL_PushEvent</TD
- ><TD
- WIDTH="34%"
- ALIGN="center"
- VALIGN="top"
- ><A
- HREF="eventfunctions.html"
- >Up</A
- ></TD
- ><TD
- WIDTH="33%"
- ALIGN="right"
- VALIGN="top"
- >SDL_GetEventFilter</TD
- ></TR
- ></TABLE
- ></DIV
- ></BODY
- ></HTML
- >