Example #1
0
int keypress_event(viewport_t *viewport)
{
	printf("Key pressed: %c\n", viewport->key_pressed);
	stop_status();
	viewport_set_done(viewport);
	return 1;
};
Example #2
0
void		interpret_status(int status)
{
	if (WIFEXITED(status))
		exit_status(WEXITSTATUS(status));
	if (WIFSTOPPED(status))
		stop_status(WSTOPSIG(status));
	if (WIFSIGNALED(status))
		signal_status(WTERMSIG(status));
}
Example #3
0
void* viewport_loop(void *ptr)
{
	viewport_t *viewport = (viewport_t *)ptr;
	SDL_Event event;

//printf("viewport_loop 1\n");
	while(!viewport->done)
	{
		int result = !SDL_WaitEvent(&event);
//printf("viewport_loop 2\n");

		if(result) viewport->done = 1;

		switch(event.type)
		{
			case SDL_KEYDOWN:
			{
				stop_status();
				viewport_set_done(viewport);
				break;
			}

       		case SDL_MOUSEMOTION:
			{
				SDL_MouseMotionEvent *mouse_event = (SDL_MouseMotionEvent*)&event;
				viewport->cursor_x = mouse_event->x;
				viewport->cursor_y = mouse_event->y;
				cursor_motion(viewport);
				break;
			}

       		case SDL_MOUSEBUTTONDOWN:
			{
				SDL_MouseButtonEvent *mouse_event = (SDL_MouseButtonEvent*)&event;
				viewport->which_button = mouse_event->button - 1;
				viewport->button_down = 1;
				button_press(viewport);
				break;
			}

       		case SDL_MOUSEBUTTONUP:
				viewport->button_down = 0;
				break;

			case SDL_QUIT:
				viewport->done = 1;
				break;
		}
	}
}
Example #4
0
int keypress_event(viewport_t *viewport)
{
	int mod = viewport->key_pressed.mod;
//	printf("Key pressed: sym=%x mod=%x\n", viewport->key_pressed.sym, viewport->key_pressed.mod);


	switch(viewport->key_pressed.sym)
	{
		case 'y':
			if(mod & KMOD_SHIFT)
				viewport->y -= 8;
			else
				viewport->y += 8;
			break;

		case 'u':
			if(mod & KMOD_SHIFT)
				viewport->u -= 8;
			else
				viewport->u += 8;
			break;

		case 'v':
			if(mod & KMOD_SHIFT)
				viewport->v -= 8;
			else
				viewport->v += 8;
			break;

		case SDLK_LEFT:
			if(mod & KMOD_SHIFT)
				viewport->x2 -= 8;
			else
			if(mod & KMOD_CTRL)
				viewport->tex_x1 -= 0.1;
			else
			if(mod & KMOD_ALT)
				viewport->tex_x2 -= 0.1;
			else
				viewport->x1 -= 8;
			break;

		case SDLK_RIGHT:
			if(mod & KMOD_SHIFT)
				viewport->x2 += 8;
			else
			if(mod & KMOD_CTRL)
				viewport->tex_x1 += 0.1;
			else
			if(mod & KMOD_ALT)
				viewport->tex_x2 += 0.1;
			else
				viewport->x1 += 8;
			break;

		case SDLK_UP:
			if(mod & KMOD_SHIFT)
				viewport->y2 -= 8;
			else
			if(mod & KMOD_CTRL)
				viewport->tex_y1 -= 0.1;
			else
			if(mod & KMOD_ALT)
				viewport->tex_y2 -= 0.1;
			else
				viewport->y1 -= 8;
			break;

		case SDLK_DOWN:
			if(mod & KMOD_SHIFT)
				viewport->y2 += 8;
			else
			if(mod & KMOD_CTRL)
				viewport->tex_y1 += 0.1;
			else
			if(mod & KMOD_ALT)
				viewport->tex_y2 += 0.1;
			else
				viewport->y1 += 8;
			break;

		case 0x1b:
			stop_status();
			viewport_set_done(viewport);
			break;
	}
	
	printf("x1=%x y1=%x x2=%x y2=%x y=%x u=%x v=%x                  \n", 
		viewport->x1, viewport->y1, viewport->x2, viewport->y2, viewport->y, viewport->u, viewport->v);
	viewport_draw(viewport);
	return 1;
};