
#ifndef PLATFORM_WIN32_MOUSE_H
#define PLATFORM_WIN32_MOUSE_H

#include <Windows.h>
#include <Spectre/Input/Mouse.h>

class Win32Mouse : public Mouse
{
public :
	~Win32Mouse() {}

	virtual void init();

	// Get mouse position
	virtual Vector2f getPosition() const;

	virtual bool isButtonDown(MouseButton::Type button) const;

	static bool handleMessage(MSG message);

protected :

	virtual void update(InputModule *input);

protected :
	Vector2f m_position;

	bool m_state[MouseButton::NUM_MBUTTONS];

	bool m_tracked;
};

#endif /* PLATFORM_WIN32_MOUSE_H */
