26#ifndef TGUI_BACKEND_GUI_HPP
27#define TGUI_BACKEND_GUI_HPP
30#include <TGUI/Container.hpp>
31#include <TGUI/RelFloatRect.hpp>
32#include <TGUI/Event.hpp>
33#include <TGUI/Cursor.hpp>
268 return m_container->get<T>(widgetName);
569 bool updateTime(
Duration elapsedTime);
579 Vector2f mapPixelToView(
int x,
int y)
const;
601 virtual void updateContainerSize();
613 std::chrono::steady_clock::time_point m_lastUpdateTime;
614 bool m_windowFocused =
true;
620 bool m_tooltipPossible =
false;
626 RelFloatRect m_view{RelativeValue{0}, RelativeValue{0}, RelativeValue{1}, RelativeValue{1}};
627 FloatRect m_lastView;
629 bool m_drawUpdatesTime =
true;
630 bool m_tabKeyUsageEnabled =
true;
633 std::stack<Cursor::Type> m_overrideMouseCursors;
635 std::shared_ptr<BackendRenderTarget> m_backendRenderTarget =
nullptr;
Base class for the Gui.
Definition: BackendGui.hpp:45
void add(const Widget::Ptr &widgetPtr, const String &widgetName="")
Adds a widget to the container.
std::size_t moveWidgetForward(const Widget::Ptr &widget)
Places a widget one step forward in the z-order.
int getWidgetIndex(const Widget::Ptr &widget) const
Returns the current index of a widget in this container.
void moveWidgetToBack(const Widget::Ptr &widget)
Places a widget behind all other widgets, to the back of the z-order.
void setFont(const Font &font)
Changes the global font.
void loadWidgetsFromFile(const String &filename, bool replaceExisting=true)
Loads the child widgets from a text file.
Widget::Ptr getWidgetBelowMouseCursor(Vector2i mousePos) const
Returns the leaf child widget below the mouse.
bool updateTime()
Updates the internal clock (for timers, animations and blinking edit cursors)
void setRelativeViewport(const FloatRect &viewport)
Sets the part of the screen to which the gui will render as a ratio relative to the window size.
RelFloatRect getViewport() const
Returns to which part of the screen the gui will render.
void setAbsoluteView(const FloatRect &view)
Sets the part of the gui that will be used to fill the viewport in pixels.
Font getFont() const
Returns the global font for this gui.
virtual void mainLoop(Color clearColor={240, 240, 240})=0
Give the gui control over the main loop.
RootContainer::Ptr getContainer() const
Returns the internal container of the Gui.
void setAbsoluteViewport(const FloatRect &viewport)
Sets the part of the screen to which the gui will render in pixels.
void loadWidgetsFromStream(std::stringstream &stream, bool replaceExisting=true)
Loads the child widgets from a string stream.
void saveWidgetsToStream(std::stringstream &stream) const
Saves this the child widgets to a text file.
std::size_t moveWidgetBackward(const Widget::Ptr &widget)
Places a widget one step backward in the z-order.
bool focusPreviousWidget(bool recursive=true)
Focuses the previous widget in the gui.
virtual void draw()
Draws all the widgets that were added to the gui.
void setOpacity(float opacity)
Changes the opacity of all widgets.
void restoreOverrideMouseCursor()
Undoes the effect of the last call to setOverrideCursor.
Widget::Ptr get(const String &widgetName) const
Returns a pointer to an earlier created widget.
Widget::Ptr getFocusedChild() const
Returns the child widget that is focused inside this container.
void removeAllWidgets()
Removes all widgets that were added to the container.
void setRelativeView(const FloatRect &view)
Sets the part of the gui that will be used to fill the viewport.
void moveWidgetToFront(const Widget::Ptr &widget)
Places a widget before all other widgets, to the front of the z-order.
void saveWidgetsToFile(const String &filename)
Saves the child widgets to a text file.
bool handleEvent(Event event)
Passes the event to the widgets.
bool focusNextWidget(bool recursive=true)
Focuses the next widget in the gui.
void unfocusAllWidgets()
Unfocus all the widgets.
void setDrawingUpdatesTime(bool drawUpdatesTime)
Sets whether drawing the gui will automatically update the internal clock or whether the user does it...
void setTabKeyUsageEnabled(bool enabled)
When the tab key usage is enabled, pressing tab will focus another widget.
unsigned int getTextSize() const
Returns the character size for future child widgets (and for existing widgets where the size wasn't c...
bool setWidgetIndex(const Widget::Ptr &widget, std::size_t index)
Changes the index of a widget in this container.
bool isTabKeyUsageEnabled() const
Returns whether the tab key usage is enabled (if so, pressing tab will focus another widget)
const std::vector< Widget::Ptr > & getWidgets() const
Returns a list of all the widgets.
void setTextSize(unsigned int size)
Changes the character size of all existing and future child widgets.
std::shared_ptr< BackendRenderTarget > getBackendRenderTarget() const
Returns the backend render target that is assigned to the gui.
bool remove(const Widget::Ptr &widget)
Removes a single widget that was added to the container.
void loadWidgetsFromStream(std::stringstream &&stream, bool replaceExisting=true)
Loads the child widgets from a string stream.
BackendGui()
Default constructor.
Widget::Ptr getWidgetAtPosition(Vector2f pos) const
Returns the leaf child widget that is located at the given position.
float getOpacity() const
Returns the opacity of all the widgets.
void setOverrideMouseCursor(Cursor::Type type)
Overrides which cursor gets shown.
RelFloatRect getView() const
Returns the part of the gui that will be used to fill the viewport.
T::Ptr get(const String &widgetName) const
Returns a pointer to an earlier created widget.
Definition: BackendGui.hpp:266
void requestMouseCursor(Cursor::Type type)
Function that is used by widgets to change the mouse cursor.
Widget::Ptr getFocusedLeaf() const
Returns the leaf child widget that is focused inside this container.
Wrapper for colors.
Definition: Color.hpp:63
Type
List of available cursors.
Definition: Cursor.hpp:48
@ Arrow
Arrow cursor (default)
Wrapper for durations.
Definition: Duration.hpp:52
std::shared_ptr< RootContainer > Ptr
Shared widget pointer.
Definition: Container.hpp:685
Wrapper class to store strings.
Definition: String.hpp:79
Namespace that contains all TGUI functions and classes.
Definition: AbsoluteOrRelativeValue.hpp:36
FloatRect that can contain absolute values or values relative to the parent size.
Definition: RelFloatRect.hpp:41
Helper class to create an AbsoluteOrRelativeValue object containing a relative value without using a ...
Definition: AbsoluteOrRelativeValue.hpp:177