#pragma once

#include "Input/Input.h"

#if FLING_LINUX

#include "LinuxKeycodes.h"

namespace Fling
{
	class LinuxInput : public Input
	{
	protected:

		virtual void InitImpl() override;
		virtual void PreUpdateImpl() override;
		virtual void ShutdownImpl() override;

		virtual void InitKeyMap() override;

		virtual void PollImpl() override;

		virtual bool IsKeyDownImpl(const std::string& t_KeyName) override;
		virtual bool IsKeyHelpImpl(const std::string& t_KeyName) override;
		virtual bool IsMouseButtonPressedImpl(const std::string& t_KeyName) override;
		virtual bool IsMouseDownImpl(const std::string& t_KeyName) override;
		
		/**
		 * @brief Get the mouse position in screen space
		 * 
		 * @return MousePos 
		 */
		virtual MousePos GetMousePosImpl() override;
	};
} // namespace Fling

#endif	// FLING_LINUX