/*
* InputSourceMouse.h, part of VCMI engine
*
* Authors: listed in file AUTHORS in main folder
*
* License: GNU General Public License v2.0 or later
* Full text of license available in license.txt file, in main folder
*
*/

#pragma once

#include "../../lib/Point.h"

struct SDL_MouseWheelEvent;
struct SDL_MouseMotionEvent;
struct SDL_MouseButtonEvent;

enum class MouseButton;

/// Class that handles mouse input from SDL events
class InputSourceMouse
{
	Point middleClickPosition;
	int mouseButtonsMask = 0;
	const int mouseToleranceDistance;
public:
	InputSourceMouse();

	void handleEventMouseMotion(const SDL_MouseMotionEvent & current);
	void handleEventMouseButtonDown(const SDL_MouseButtonEvent & current);
	void handleEventMouseWheel(const SDL_MouseWheelEvent & current);
	void handleEventMouseButtonUp(const SDL_MouseButtonEvent & current);
};
