/* Main event handler function.
   This function gets raw SDL events from the GUI.
 */
GUI_status
GUI_Widget:: HandleEvent(const SDL_Event *event)
{
	switch (event->type) {
		case SDL_KEYDOWN: {
			return(KeyDown(event->key.keysym));
		}
		break;
		case SDL_KEYUP: {
			return(KeyUp(event->key.keysym));
		}
		break;
		case SDL_MOUSEBUTTONDOWN: {
			int x, y, button;
			x = event->button.x;
			y = event->button.y;
			if ( HitRect(x, y) ) {
				button = event->button.button;
				return(MouseDown(x, y, button));
			}
		}
		break;
		case SDL_MOUSEBUTTONUP: {
			int x, y, button;
			x = event->button.x;
			y = event->button.y;
			button = event->button.button;
			if ( HitRect(x, y) )
			{
				button = event->button.button;
				return(MouseUp(x, y, button));
			}
			/* if widget was clicked before we must let it deactivate itself*/
			else if (ClickState(1)) return(MouseUp(-1,-1,button));
		}
		break;
		case SDL_MOUSEMOTION: {
			int x, y;
			Uint8 state;
			x = event->motion.x;
			y = event->motion.y;
			state = event->motion.state;
			if ( HitRect(x, y) )
			{
  			  return(MouseMotion(x, y, state));
			}
			/* if widget was clicked before we must let it react*/
			else if (ClickState(1)) return(MouseMotion(-1,-1,state));
		}
		break;
		default: {
			/* Pass it along.. */;
		}
		break;
	}
	return(GUI_PASS);
}
void BaseScene::ProcessEvents() {
	SDL_Event event;
	while(SDL_PollEvent(&event)) {
		switch(event.type) {
			case SDL_QUIT:
				QuitEvent();
			break;

			case SDL_MOUSEMOTION:
				MouseMotion(event.motion);
			break;

			case SDL_MOUSEBUTTONDOWN:
				MouseButtonDown(event.button);
			break;

			case SDL_MOUSEBUTTONUP:
				MouseButtonUp(event.button);
			break;

			case SDL_KEYDOWN:
				KeyDown(event.key);
			break;

			case SDL_KEYUP:
				KeyUp(event.key);
			break;

			//TODO: joystick and controller events
		}
	}
}
void RenderEngine3D::mouseMoveEvent ( QMouseEvent * event ){

    int x = event->x();
    int y = size().height()-event->y()-1;

    MouseMotion( mouse_button, x, x-mouse_x, y, y-mouse_y );

    mouse_x = x;
    mouse_y = y;

}
Exemple #4
0
void BaseScene::HandleEvents() {
	SDL_Event event;

	while(SDL_PollEvent(&event)) {
		switch(event.type) {
			case SDL_QUIT:
				QuitEvent();
			break;

			case SDL_VIDEORESIZE:
				SetScreen(event.resize.w, event.resize.h, 0, screen->flags);
			break;

			case SDL_MOUSEMOTION:
				MouseMotion(event.motion);
			break;

			case SDL_MOUSEBUTTONDOWN:
				MouseButtonDown(event.button);
			break;

			case SDL_MOUSEBUTTONUP:
				MouseButtonUp(event.button);
			break;

			case SDL_KEYDOWN:
				KeyDown(event.key);
			break;

			case SDL_KEYUP:
				KeyUp(event.key);
			break;

#ifdef USE_EVENT_JOYSTICK
			//TODO: joystick/gamepad support
#endif

#ifdef USE_EVENT_UNKNOWN
			default:
				UnknownEvent(event);
			break;
#endif
		}//switch
	}//while
}
void newGameMenu::MouseButtonDown(int Button, Vector2 Location) {
	MouseMotion(Location);
	
	for(int a = 0; a < 3; a++)
	{
		if((abs(difficultyIcons[a].location.x - Location.x) < 32) && (abs(difficultyIcons[a].location.y - Location.y) < 32))
		{
			selectedDifficulty = a;
			selectedMenuItem = -1;
			break;
		}
	}
	
	if(selectedMenuItem > -1)
		menuButtonPressed();
	
	ToggleDifficultyButtons();
};
void SaveGameMenu::MouseButtonDown(int Button, Vector2 Location)
{
    MouseMotion(Location);

    switch(selectedButton)
    {
    case 0:
        SaveGame();
        break;

    case 1:
        engine->SetState("MainMenu");
        break;

    default:
        //selected save change
        break;
    }
};
Exemple #7
0
void EventHandler::HandleEvents()
{
	ResetMouseMotion();
	while(SDL_PollEvent(&event))
	{
		switch(event.type)
		{
		case SDL_QUIT:
			exit(0);
		case SDL_KEYDOWN:
			KeyDown();
			break;
		case SDL_KEYUP:
			KeyUp();
			break;
		case SDL_MOUSEMOTION:
			MouseMotion();
			break;
		}
	}
}
void SinglePlayerPauseState::MouseButtonDown(int Button, Vector2 Location) {
	MouseMotion(Location);
	Trigger();
};
Exemple #9
0
void FireworksFrame::MousePassiveMotion(int x, int y)
{
	MouseMotion(x, y);
}