| 1 | .TH "SDL_SetEventFilter" "3" "Tue 11 Sep 2001, 22:59" "SDL" "SDL API Reference" |
| 2 | .SH "NAME" |
| 3 | SDL_SetEventFilter \- Sets up a filter to process all events before they are posted to the event queue\&. |
| 4 | .SH "SYNOPSIS" |
| 5 | .PP |
| 6 | \fB#include "SDL\&.h" |
| 7 | .sp |
| 8 | \fBvoid \fBSDL_SetEventFilter\fP\fR(\fBSDL_EventFilter filter\fR); |
| 9 | .SH "DESCRIPTION" |
| 10 | .PP |
| 11 | 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: |
| 12 | .PP |
| 13 | .nf |
| 14 | \f(CWtypedef int (*SDL_EventFilter)(const SDL_Event *event);\fR |
| 15 | .fi |
| 16 | .PP |
| 17 | If the filter returns \fB1\fR, then the event will be added to the internal queue\&. If it returns \fB0\fR, then the event will be dropped from the queue\&. This allows selective filtering of dynamically\&. |
| 18 | .PP |
| 19 | There is one caveat when dealing with the \fBSDL_QUITEVENT\fP 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\&. |
| 20 | .PP |
| 21 | .RS |
| 22 | \fBNote: |
| 23 | .PP |
| 24 | Events pushed onto the queue with \fI\fBSDL_PushEvent\fP\fR or \fI\fBSDL_PeepEvents\fP\fR do not get passed through the event filter\&. |
| 25 | .RE |
| 26 | .PP |
| 27 | .RS |
| 28 | \fBNote: |
| 29 | .PP |
| 30 | \fIBe Careful!\fP The event filter function may run in a different thread so be careful what you do within it\&. |
| 31 | .RE |
| 32 | .SH "SEE ALSO" |
| 33 | .PP |
| 34 | \fI\fBSDL_Event\fR\fR, \fI\fBSDL_GetEventFilter\fP\fR, \fI\fBSDL_PushEvent\fP\fR |
| 35 | .\" created by instant / docbook-to-man, Tue 11 Sep 2001, 22:59 |