diff -r ffa851df0825 -r 2fb8b9db1c86 symbian-qemu-0.9.1-12/libsdl-trunk/docs/html/guideeventexamples.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/symbian-qemu-0.9.1-12/libsdl-trunk/docs/html/guideeventexamples.html Fri Jul 31 15:01:17 2009 +0100 @@ -0,0 +1,247 @@ +
#include <stdio.h> +#include <stdlib.h> + +#include "SDL.h" + +/* This function may run in a separate event thread */ +int FilterEvents(const SDL_Event *event) { + static int boycott = 1; + + /* This quit event signals the closing of the window */ + if ( (event->type == SDL_QUIT) && boycott ) { + printf("Quit event filtered out -- try again.\n"); + boycott = 0; + return(0); + } + if ( event->type == SDL_MOUSEMOTION ) { + printf("Mouse moved to (%d,%d)\n", + event->motion.x, event->motion.y); + return(0); /* Drop it, we've handled it */ + } + return(1); +} + +int main(int argc, char *argv[]) +{ + SDL_Event event; + + /* Initialize the SDL library (starts the event loop) */ + if ( SDL_Init(SDL_INIT_VIDEO) < 0 ) { + fprintf(stderr, + "Couldn't initialize SDL: %s\n", SDL_GetError()); + exit(1); + } + + /* Clean up on exit, exit on window close and interrupt */ + atexit(SDL_Quit); + + /* Ignore key events */ + SDL_EventState(SDL_KEYDOWN, SDL_IGNORE); + SDL_EventState(SDL_KEYUP, SDL_IGNORE); + + /* Filter quit and mouse motion events */ + SDL_SetEventFilter(FilterEvents); + + /* The mouse isn't much use unless we have a display for reference */ + if ( SDL_SetVideoMode(640, 480, 8, 0) == NULL ) { + fprintf(stderr, "Couldn't set 640x480x8 video mode: %s\n", + SDL_GetError()); + exit(1); + } + + /* Loop waiting for ESC+Mouse_Button */ + while ( SDL_WaitEvent(&event) >= 0 ) { + switch (event.type) { + case SDL_ACTIVEEVENT: { + if ( event.active.state & SDL_APPACTIVE ) { + if ( event.active.gain ) { + printf("App activated\n"); + } else { + printf("App iconified\n"); + } + } + } + break; + + case SDL_MOUSEBUTTONDOWN: { + Uint8 *keys; + + keys = SDL_GetKeyState(NULL); + if ( keys[SDLK_ESCAPE] == SDL_PRESSED ) { + printf("Bye bye...\n"); + exit(0); + } + printf("Mouse button pressed\n"); + } + break; + + case SDL_QUIT: { + printf("Quit requested, quitting.\n"); + exit(0); + } + break; + } + } + /* This should never happen */ + printf("SDL_WaitEvent error: %s\n", SDL_GetError()); + exit(1); +}