Ejemplo n.º 1
0
void Window::handleMouseDown(SDL_Event event) {
	static const Uint32 DOUBLECLICKTIME = 500;
	static const int DOUBLECLICKDELTA = 5;

	MouseButton button = Input::getMouseButton(event.button.button);

	// windows implementation uses 120 for the resolution of a standard mouse
	// wheel notch.  However, newer mice have finer resolutions.  I dunno if SDL
	// handles those, but for now we're going to say that each mouse wheel
	// movement is 120.
	if(button == MouseButton::WHEEL_UP) {
		eventMouseWheel(event.button.x, event.button.y, 120);
		return;
	} else if(button == MouseButton::WHEEL_DOWN) {
		eventMouseWheel(event.button.x, event.button.y, -120);
		return;
	}

	input.setMouseState(button, true);

	if(input.getLastMouseEvent() - lastMouseDown[button] < DOUBLECLICKTIME
			&& abs(lastMouse[button].x - event.button.x) < DOUBLECLICKDELTA
			&& abs(lastMouse[button].y - event.button.y) < DOUBLECLICKDELTA) {
		eventMouseDoubleClick(event.button.x, event.button.y, button);
	} else {
		eventMouseDown(event.button.x, event.button.y, button);
	}
	lastMouseDown[button] = input.getLastMouseEvent();
	lastMouse[button] = input.getMousePos();
}
Ejemplo n.º 2
0
	void Window::notifyMouseWheel(MyGUI::Widget* _sender, int _rel)
	{
		onMouseWheel(_rel);
		eventMouseWheel(_sender, _rel);
	}
Ejemplo n.º 3
0
	void WidgetInput::_riseMouseWheel(int _rel)
	{
		onMouseWheel(_rel);
		eventMouseWheel(static_cast<Widget*>(this), _rel);
	}