Grindstone Game Engine v0.2.0
An open source game engine and toolkit.
Loading...
Searching...
No Matches
InputInterface.hpp
1#pragma once
2
3#include <Common/Event/KeyPressCode.hpp>
4#include <Common/Event/MouseButtonCode.hpp>
5#include <Common/Input/CursorMode.hpp>
6
7namespace Grindstone {
8 class Window;
9
10 namespace Input {
11 class Interface {
12 public:
13 virtual CursorMode GetCursorMode() = 0;
14 virtual void SetCursorMode(CursorMode) = 0;
15 virtual void SetCursorIsRawMotion(bool isRawMode) = 0;
16 virtual bool GetCursorIsRawMotion() = 0;
17 virtual void SetMainWindow(Grindstone::Window* window) = 0;
18 virtual void ResizeEvent(int, int) = 0;
19 virtual void SetMouseButton(Events::MouseButtonCode, bool) = 0;
20 virtual bool IsMouseButtonPressed(Events::MouseButtonCode) = 0;
21 virtual void SetMousePosition(int, int) = 0;
22 virtual void GetMousePosition(int&, int&) = 0;
23 virtual void OnMouseMoved(int, int) = 0;
24 virtual void SetIsFocused(bool) = 0;
25 virtual bool IsFocused() = 0;
26 virtual void MouseScroll(float offsetX, float offsetY) = 0;
27 virtual void SetKeyPressed(Events::KeyPressCode, bool) = 0;
28 virtual bool IsKeyPressed(Events::KeyPressCode) = 0;
29 virtual void AddCharacterTyped(unsigned short character) = 0;
30 virtual void TryQuit(Grindstone::Window* window) = 0;
31 virtual void ForceQuit(Grindstone::Window* window) = 0;
32 }; // class Interface
33 } // namespace Input
34} // namespace Grindstone
Definition InputInterface.hpp:11
Definition Window.cs:7