26#ifndef TGUI_BACKEND_HPP
27#define TGUI_BACKEND_HPP
29#include <TGUI/Font.hpp>
30#include <TGUI/Event.hpp>
31#include <TGUI/Cursor.hpp>
32#include <TGUI/Backend/Font/BackendFont.hpp>
33#include <TGUI/Backend/Font/BackendFontFactory.hpp>
34#include <TGUI/Backend/Renderer/BackendText.hpp>
35#include <TGUI/Backend/Renderer/BackendTexture.hpp>
36#include <TGUI/Backend/Renderer/BackendRenderer.hpp>
38#if !TGUI_EXPERIMENTAL_USE_STD_MODULE
46TGUI_MODULE_EXPORT
namespace tgui
51 class BackendRenderer;
52 class BackendFontFactory;
72 TGUI_API
void setBackend(std::shared_ptr<Backend> backend);
220#ifndef TGUI_REMOVE_DEPRECATED_CODE
227 TGUI_DEPRECATED(
"Use BackendGui::startTextInput instead") virtual
void openVirtualKeyboard(const
FloatRect& inputRect);
235 TGUI_DEPRECATED("Use
BackendGui::stopTextInput instead") virtual
void closeVirtualKeyboard();
290 TGUI_NODISCARD std::shared_ptr<BackendRenderer>
getRenderer()
const;
298 virtual void setRenderer(std::shared_ptr<BackendRenderer> renderer);
354 void registerSvgSprite(
Sprite* sprite);
364 void unregisterSvgSprite(
Sprite* sprite);
370 bool m_destroyOnLastGuiDetatch =
false;
371 String m_clipboardContents;
372 float m_fontScale = 1;
374 std::shared_ptr<BackendRenderer> m_renderer;
375 std::shared_ptr<BackendFontFactory> m_fontBackend;
377 std::set<BackendGui*> m_guis;
378 std::set<BackendFont*> m_registeredFonts;
379 std::set<Sprite*> m_registeredSvgSprites;
Base class for font implementations that depend on the backend.
Definition BackendFont.hpp:46
Base class for the Gui.
Definition BackendGui.hpp:48
Base class for the backend.
Definition Backend.hpp:91
virtual void setClipboard(const String &contents)
Changes the contents of the clipboard.
TGUI_NODISCARD std::shared_ptr< BackendText > createText()
Creates a new text object.
float getFontScale() const
Returns the scale factor to render text at a higher quality, e.g. to scale for DPI awareness.
TGUI_NODISCARD std::shared_ptr< BackendFontFactory > getFontBackend() const
Returns the font factory.
virtual void setRenderer(std::shared_ptr< BackendRenderer > renderer)
Sets the renderer that the backend should use.
virtual void setMouseCursorStyle(Cursor::Type type, const std::uint8_t *pixels, Vector2u size, Vector2u hotspot)=0
Changes the look of a certain mouse cursor by using a bitmap.
virtual TGUI_NODISCARD Font createDefaultFont()
Creates and returns the default font for all widgets.
virtual TGUI_NODISCARD std::unique_ptr< std::uint8_t[]> readFileFromAndroidAssets(const String &filename, std::size_t &fileSize) const
Uses the AssetManager on Android to read a file and return its contents.
TGUI_NODISCARD std::shared_ptr< BackendFont > createFont()
Creates a new font object.
virtual void setMouseCursor(BackendGui *gui, Cursor::Type type)=0
Changes the mouse cursor when the mouse is on top of the window to which the gui is attached.
virtual void resetMouseCursorStyle(Cursor::Type type)=0
Changes the look of a certain mouse cursor back to the system theme.
TGUI_NODISCARD std::shared_ptr< BackendTexture > createTexture()
Creates a new texture object.
virtual void attachGui(BackendGui *gui)
Informs the backend that a new gui object has been created.
TGUI_NODISCARD std::shared_ptr< BackendRenderer > getRenderer() const
Returns the renderer.
virtual ~Backend()=default
Virtual destructor.
virtual void detatchGui(BackendGui *gui)
Informs the backend that a gui object is being destroyed.
TGUI_NODISCARD bool hasRenderer() const
Checks whether a renderer has been attached to the backend.
virtual void setFontBackend(std::shared_ptr< BackendFontFactory > fontBackend)
Sets the font factory that the backend should use.
virtual TGUI_NODISCARD bool isKeyboardModifierPressed(Event::KeyModifier modifierKey)=0
Checks the state for one of the modifier keys.
void setDestroyOnLastGuiDetatch(bool destroyOnDetatch)
Informs the backend whether it should destroy itself when the last Gui is detached from it.
virtual TGUI_NODISCARD String getClipboard() const
Returns the contents of the clipboard.
void setFontScale(float scale)
Sets the scale factor to render text at a higher quality, e.g. to scale for DPI awareness.
Backend()=default
Default constructor.
TGUI_NODISCARD bool hasFontBackend() const
Checks whether a font factory has been attached to the backend.
Type
List of available cursors.
Definition Cursor.hpp:51
Wrapper around the backend-specific font. All copies of the font will share the same internal font re...
Definition Font.hpp:61
Wrapper class to store strings.
Definition String.hpp:101
Namespace that contains all TGUI functions and classes.
Definition AbsoluteOrRelativeValue.hpp:39
TGUI_API void setBackend(std::shared_ptr< Backend > backend)
Changes the global backend.
TGUI_API std::shared_ptr< Backend > getBackend()
Returns the global backend.
TGUI_API bool isBackendSet()
Checks whether the backend differs from a nullptr.
KeyModifier
Modifiers keys.
Definition Event.hpp:158