FifeGUI 0.3.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// Standard library includes
9#include <queue>
10
11// Project headers (subdirs before local)
12#include "fifechan/input.hpp"
13#include "fifechan/keyinput.hpp"
14#include "fifechan/mouseinput.hpp"
15
16namespace fcn
17{
18 class Key;
19
25 class FIFEGUI_API GenericInput : public Input
26 {
27 public:
28 GenericInput();
29
40 void pushKeyPressed(int unicode);
41
52 void pushKeyReleased(int unicode);
53
61 void pushMouseButtonPressed(int x, int y, int button);
62
70 void pushMouseButtonReleased(int x, int y, int button);
71
78 void pushMouseWheelMovedUp(int x, int y);
79
86 void pushMouseWheelMovedDown(int x, int y);
87
94 void pushMouseWheelMovedRight(int x, int y);
95
102 void pushMouseWheelMovedLeft(int x, int y);
103
110 void pushMouseMoved(int x, int y);
111
112 // Inherited from Input
113
114 bool isKeyQueueEmpty() override;
115
116 KeyInput dequeueKeyInput() override;
117
118 bool isMouseQueueEmpty() override;
119
120 MouseInput dequeueMouseInput() override;
121
122 void _pollInput() override;
123
124 protected:
128 std::queue<KeyInput> mKeyInputQueue;
129
133 std::queue<MouseInput> mMouseInputQueue;
134 };
135} // namespace fcn
136
137#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 existing 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:32
Internal class representing raw mouse input data.
Used replacement tokens by configure_file():