Exemple #1
0
void wndmgr_hangle_event(Event e)
{
    if(e.type == ET_MouseDown)
    {
        if(point_in_rect(e.loc, plusbtn->frame))
        {
            plusbtn->mouse_down(plusbtn, e);
        }
        else
        {
            window_sref clicked_wnd = _wndmgr_find_clicked(e);
            if(!clicked_wnd) return;
            
            _wndmgr_keywnd = clicked_wnd->wnd;
            
            wndmgr_order_front(_wndmgr_keywnd);
            window_handle_event(_wndmgr_keywnd, e);
        }
    }
    else
    {
        if(_wndmgr_keywnd)
        {
            window_handle_event(_wndmgr_keywnd, e);
        }
        
        if(e.type == ET_MouseUp)
        {
            _wndmgr_keywnd = NULL;
        }
    }
}
Exemple #2
0
static void process_input()
{
	SDL_Event e;
	while (SDL_PollEvent(&e)) {
		/* user requests quit */
		if (e.type == SDL_QUIT) {
			run = 0;
		} else if (e.type == SDL_KEYDOWN) {
			switch (e.key.keysym.sym) {
				case SDLK_UP:
					g_player->up = 1;
					break;
				case SDLK_DOWN:
					g_player->down = 1;
					break;
				default:
					break;
			}
		} else if (e.type == SDL_KEYUP) {
			switch (e.key.keysym.sym) {
				case SDLK_UP:
					g_player->up = 0;
					break;
				case SDLK_DOWN:
					g_player->down = 0;
					break;
				default:
					break;
			}
		}
		/* handle window events */
		window_handle_event(g_window, &e);
	}
}