FifeGUI 0.2.0
A C++ GUI library designed for games.
genericinput.hpp
1// SPDX-License-Identifier: LGPL-2.1-or-later OR BSD-3-Clause
2// SPDX-FileCopyrightText: 2004 - 2008 Olof Naessén and Per Larsson
3// SPDX-FileCopyrightText: 2013 - 2026 Fifengine contributors
4
5#ifndef INCLUDE_FIFECHAN_GENERICINPUT_HPP_
6#define INCLUDE_FIFECHAN_GENERICINPUT_HPP_
7
8#include <queue>
9
10#include "fifechan/input.hpp"
11#include "fifechan/keyinput.hpp"
12#include "fifechan/mouseinput.hpp"
13#include "fifechan/platform.hpp"
14
15namespace fcn
16{
17 class Key;
18
24 class FIFEGUI_API GenericInput : public Input
25 {
26 public:
27 GenericInput();
28
39 void pushKeyPressed(int unicode);
40
51 void pushKeyReleased(int unicode);
52
60 void pushMouseButtonPressed(int x, int y, int button);
61
69 void pushMouseButtonReleased(int x, int y, int button);
70
77 void pushMouseWheelMovedUp(int x, int y);
78
85 void pushMouseWheelMovedDown(int x, int y);
86
93 void pushMouseWheelMovedRight(int x, int y);
94
101 void pushMouseWheelMovedLeft(int x, int y);
102
109 void pushMouseMoved(int x, int y);
110
111 // Inherited from Input
112
113 bool isKeyQueueEmpty() override;
114
115 KeyInput dequeueKeyInput() override;
116
117 bool isMouseQueueEmpty() override;
118
119 MouseInput dequeueMouseInput() override;
120
121 void _pollInput() override;
122
123 protected:
127 std::queue<KeyInput> mKeyInputQueue;
128
132 std::queue<MouseInput> mMouseInputQueue;
133 };
134} // namespace fcn
135
136#endif // INCLUDE_FIFECHAN_GENERICINPUT_HPP_
void pushMouseWheelMovedLeft(int x, int y)
Pushes a mouse wheel moved left event.
void pushMouseWheelMovedRight(int x, int y)
Pushes a mouse wheel moved right event.
void pushMouseWheelMovedUp(int x, int y)
Pushes a mouse wheel moved up event.
void pushKeyPressed(int unicode)
Pushes a key pressed event.
void pushMouseButtonPressed(int x, int y, int button)
Pushes a mouse button pressed event.
void _pollInput() override
Polls all exsisting input.
void pushMouseWheelMovedDown(int x, int y)
Pushes a mouse wheel moved down event.
std::queue< KeyInput > mKeyInputQueue
Holds the key input queue.
bool isKeyQueueEmpty() override
Checks if the key queue is empty, or not.
MouseInput dequeueMouseInput() override
Dequeues the mouse input queue.
void pushMouseMoved(int x, int y)
Pushes a mouse moved event.
std::queue< MouseInput > mMouseInputQueue
Holds the mouse input queue.
void pushMouseButtonReleased(int x, int y, int button)
Pushes a mouse button released event.
bool isMouseQueueEmpty() override
Checks if the mouse queue is empyt, or not.
void pushKeyReleased(int unicode)
Pushes a key released event.
KeyInput dequeueKeyInput() override
Dequeues the key input queue.
Internal class representing raw keyboard input data.
Definition keyinput.hpp:28
Represents a keyboard key or character code.
Definition key.hpp:20
Internal class representing raw mouse input data.