TGUI 1.13
Loading...
Searching...
No Matches
BackendGuiRaylib.hpp
1
2//
3// TGUI - Texus' Graphical User Interface
4// Copyright (C) 2012-2026 Bruno Van de Velde (vdv_b@tgui.eu)
5//
6// This software is provided 'as-is', without any express or implied warranty.
7// In no event will the authors be held liable for any damages arising from the use of this software.
8//
9// Permission is granted to anyone to use this software for any purpose,
10// including commercial applications, and to alter it and redistribute it freely,
11// subject to the following restrictions:
12//
13// 1. The origin of this software must not be misrepresented;
14// you must not claim that you wrote the original software.
15// If you use this software in a product, an acknowledgment
16// in the product documentation would be appreciated but is not required.
17//
18// 2. Altered source versions must be plainly marked as such,
19// and must not be misrepresented as being the original software.
20//
21// 3. This notice may not be removed or altered from any source distribution.
22//
24
25#ifndef TGUI_BACKEND_GUI_RAYLIB_HPP
26#define TGUI_BACKEND_GUI_RAYLIB_HPP
27
28#include <TGUI/Backend/Window/BackendGui.hpp>
29
30#include <raylib.h>
31
33
34namespace tgui
35{
39 class TGUI_API BackendGuiRaylib : public BackendGui
40 {
41 public:
46
51
63
80 bool handleCharPressed(int pressedChar);
81
98 bool handleKeyPressed(int pressedKey);
99
139 void mainLoop(Color clearColor = {240, 240, 240}) override;
140
150 void updateTextCursorPosition(FloatRect inputRect, Vector2f caretPos) override;
151
159 [[nodiscard]] bool isKeyboardModifierPressed(Event::KeyModifier modifierKey) const override;
160
168
176 std::vector<Event> generateEventQueue(bool processKeyEvents);
177
184 void startTextInput(FloatRect inputRect) override;
185
190 void stopTextInput() override;
191
205 void setSoftKeyboardFunctions(std::function<void()> showKeyboardFunc,
206 std::function<void()> hideKeyboardFunc,
207 std::function<int()> getKeyUnicodeFunc,
208 std::function<void()> clearLastKeyFunc);
209
211
212 protected:
214 // Updates the view and changes the size of the root container when needed
216 void updateContainerSize() override;
217
219
220 protected:
221 bool m_mouseOnWindow = true;
222 bool m_endMainLoop = false;
223
224 std::function<void()> m_showSoftKeyboardFunction;
225 std::function<void()> m_hideSoftKeyboardFunction;
226 std::function<int()> m_getLastSoftKeyUnicodeFunction;
227 std::function<void()> m_clearLastSoftKeyFunction;
228 };
229} // namespace tgui
230
232
233#endif // TGUI_BACKEND_GUI_RAYLIB_HPP
void stopTextInput() override
This function is called by TGUI when unfocusing a text field (EditBox or TextArea)....
BackendGuiRaylib()
Default constructor.
void startTextInput(FloatRect inputRect) override
This function is called by TGUI when focusing a text field (EditBox or TextArea). It may result in th...
~BackendGuiRaylib()
Destructor.
bool handleKeyPressed(int pressedKey)
Passes the key press event to the focused widget.
bool isKeyboardModifierPressed(Event::KeyModifier modifierKey) const override
Checks the state for one of the modifier keys.
void setSoftKeyboardFunctions(std::function< void()> showKeyboardFunc, std::function< void()> hideKeyboardFunc, std::function< int()> getKeyUnicodeFunc, std::function< void()> clearLastKeyFunc)
Sets functions that are called to control the soft/virtual keyboard.
bool handleEvents()
Processes events that occured during the last frame and passes the event to the widgets.
void endMainLoop()
Breaks out of the main loop that is implemented inside the mainLoop function.
void mainLoop(Color clearColor={240, 240, 240}) override
Give the gui control over the main loop.
bool handleCharPressed(int pressedChar)
Passes the typed character to the focused widget.
void updateTextCursorPosition(FloatRect inputRect, Vector2f caretPos) override
This function is called by TGUI when the position of the caret changes in a text field (EditBox or Te...
std::vector< Event > generateEventQueue(bool processKeyEvents)
Processes events that occured during the last frame and turns them into TGUI events for handleEvent.
BackendGui()
Default constructor.
Wrapper for colors.
Definition Color.hpp:63
Namespace that contains all TGUI functions and classes.
Definition AbsoluteOrRelativeValue.hpp:37
KeyModifier
Modifiers keys.
Definition Event.hpp:155