示例#1
0
文件: sdl_kbd.c 项目: esohns/digger
int Handler(const SDL_Event *event)
{
	if(event->type == SDL_KEYDOWN) {
		if(klen == KBLEN) /* Buffer is full, drop some pieces */
			memcpy(kbuffer, kbuffer + 1, --klen);
		kbuffer[klen++] = event->key.keysym.sym;

		/* ALT + Enter handling (fullscreen/windowed operation) */
		if((event->key.keysym.sym == SDLK_RETURN || event->key.keysym.sym == SDLK_KP_ENTER) &&
		    ((event->key.keysym.mod & KMOD_ALT) != 0))
			switchmode();
	}
	if(event->type == SDL_QUIT)
		exit(0);

	return(1);
}
示例#2
0
static int Handler(void *uptr, SDL_Event *event)
{
	if(event->type == SDL_KEYDOWN) {
		if (klen == KBLEN) {
                        /* Buffer is full, drop some pieces */
                        klen--;
			memcpy(kbuffer, kbuffer + 1, klen * sizeof(struct kbent));
                }
		kbuffer[klen].scancode = event->key.keysym.scancode;
                kbuffer[klen].sym = event->key.keysym.sym;
                klen++;

		/* ALT + Enter handling (fullscreen/windowed operation) */
		if ((event->key.keysym.scancode == SDL_SCANCODE_RETURN ||
                    event->key.keysym.scancode == SDL_SCANCODE_KP_ENTER) &&
		    ((event->key.keysym.mod & KMOD_ALT) != 0))
			switchmode();
	}
	if(event->type == SDL_QUIT)
		exit(0);

	return(1);
}