TGUI  1.6.1
Loading...
Searching...
No Matches
tgui::SFML_GRAPHICS::Gui Class Reference

Gui class for SFML (using sfml-graphics module for rendering and font) More...

#include <TGUI/Backend/SFML-Graphics.hpp>

Inheritance diagram for tgui::SFML_GRAPHICS::Gui:
tgui::BackendGuiSFML tgui::BackendGui

Public Member Functions

 Gui ()=default
 Default constructor.
 
 Gui (sf::RenderWindow &window)
 Constructor that immediately sets the window on which the gui should be drawn.
 
 Gui (sf::RenderTarget &target)
 Constructor that immediately sets the render target on which the gui should be drawn.
 
void setWindow (sf::RenderWindow &window)
 Sets the window on which the gui should be drawn.
 
void setWindow (sf::Window &window)
 Sets the window which the gui should use.
 
void setTarget (sf::RenderWindow &window)
 Sets the window on which the gui should be drawn.
 
void setTarget (sf::RenderTarget &target)
 Sets the target on which the gui should be drawn.
 
sf::RenderTarget * getTarget () const
 Returns the render target on which the gui is being drawn.
 
- Public Member Functions inherited from tgui::BackendGuiSFML
 BackendGuiSFML ()
 Default constructor.
 
 ~BackendGuiSFML ()
 Destructor.
 
bool handleEvent (sf::Event event)
 Passes the event to the widgets.
 
void mainLoop (Color clearColor={240, 240, 240}) override
 Give the gui control over the main loop.
 
bool convertEvent (const sf::Event &eventSFML, Event &eventTGUI)
 Helper function that converts an SFML event to a TGUI event.
 
sf::Window * getWindow () const
 Returns the window that was provided to the gui.
 
void startTextInput (FloatRect inputRect) override
 This function is called by TGUI when focusing a text field (EditBox or TextArea). It will result in the software keyboard being opened on Android and iOS.
 
void stopTextInput () override
 This function is called by TGUI when unfocusing a text field (EditBox or TextArea). It will result in the software keyboard being closed on Android and iOS.
 
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 TextArea). If an IME is used then this function may move the IME candidate list to the text cursor position.
 
bool isKeyboardModifierPressed (Event::KeyModifier modifierKey) const override
 Checks the state for one of the modifier keys.
 
bool handleEvent (Event event)
 Passes the event to the widgets.
 
- Public Member Functions inherited from tgui::BackendGui
 BackendGui ()
 Default constructor.
 
 BackendGui (const BackendGui &copy)=delete
 
BackendGuioperator= (const BackendGui &right)=delete
 
void setAbsoluteViewport (const FloatRect &viewport)
 Sets the part of the screen to which the gui will render in pixels.
 
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.
 
void setRelativeView (const FloatRect &view)
 Sets the part of the gui that will be used to fill the viewport.
 
RelFloatRect getView () const
 Returns the part of the gui that will be used to fill the viewport.
 
bool handleEvent (Event event)
 Passes the event to the widgets.
 
void setTabKeyUsageEnabled (bool enabled)
 When the tab key usage is enabled, pressing tab will focus another widget.
 
bool isTabKeyUsageEnabled () const
 Returns whether the tab key usage is enabled (if so, pressing tab will focus another widget)
 
virtual void draw ()
 Draws all the widgets that were added to the gui.
 
RootContainer::Ptr getContainer () const
 Returns the internal container of the Gui.
 
std::shared_ptr< BackendRenderTargetgetBackendRenderTarget () const
 Returns the backend render target that is assigned to the gui.
 
void setFont (const Font &font)
 Changes the global font.
 
Font getFont () const
 Returns the global font for this gui.
 
const std::vector< Widget::Ptr > & getWidgets () const
 Returns a list of all the widgets.
 
void add (const Widget::Ptr &widgetPtr, const String &widgetName="")
 Adds a widget to the container.
 
Widget::Ptr get (const String &widgetName) const
 Returns a pointer to an earlier created widget.
 
template<class WidgetType >
WidgetType::Ptr get (const String &widgetName) const
 Returns a pointer to an earlier created widget.
 
bool remove (const Widget::Ptr &widget)
 Removes a single widget that was added to the container.
 
void removeAllWidgets ()
 Removes all widgets that were added to the container.
 
Widget::Ptr getFocusedChild () const
 Returns the child widget that is focused inside this container.
 
Widget::Ptr getFocusedLeaf () const
 Returns the leaf child widget that is focused inside this container.
 
Widget::Ptr getWidgetAtPosition (Vector2f pos) const
 Returns the leaf child widget that is located at the given position.
 
Widget::Ptr getWidgetAtPos (Vector2f pos, bool recursive) const
 Returns the widget that is located at the given position.
 
Widget::Ptr getWidgetBelowMouseCursor (Vector2i mousePos) const
 Returns the leaf child widget below the mouse.
 
Widget::Ptr getWidgetBelowMouseCursor (Vector2i mousePos, bool recursive) const
 Returns the widget below the mouse.
 
bool focusNextWidget (bool recursive=true)
 Focuses the next widget in the gui.
 
bool focusPreviousWidget (bool recursive=true)
 Focuses the previous widget in the gui.
 
void unfocusAllWidgets ()
 Unfocus all the widgets.
 
void moveWidgetToFront (const Widget::Ptr &widget)
 Places a widget before all other widgets, to the front of the z-order.
 
void moveWidgetToBack (const Widget::Ptr &widget)
 Places a widget behind all other widgets, to the back of the z-order.
 
std::size_t moveWidgetForward (const Widget::Ptr &widget)
 Places a widget one step forward in the z-order.
 
std::size_t moveWidgetBackward (const Widget::Ptr &widget)
 Places a widget one step backward in the z-order.
 
bool setWidgetIndex (const Widget::Ptr &widget, std::size_t index)
 Changes the index of a widget in this container.
 
int getWidgetIndex (const Widget::Ptr &widget) const
 Returns the current index of a widget in this container.
 
void setOpacity (float opacity)
 Changes the opacity of all widgets.
 
float getOpacity () const
 Returns the opacity of all the widgets.
 
void setTextSize (unsigned int size)
 Changes the character size of all existing and future child widgets.
 
unsigned int getTextSize () const
 Returns the character size for future child widgets (and for existing widgets where the size wasn't changed)
 
void loadWidgetsFromFile (const String &filename, bool replaceExisting=true)
 Loads the child widgets from a text file.
 
void saveWidgetsToFile (const String &filename)
 Saves the child widgets to a text file.
 
void loadWidgetsFromStream (std::stringstream &stream, bool replaceExisting=true)
 Loads the child widgets from a string stream.
 
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.
 
void setOverrideMouseCursor (Cursor::Type type)
 Overrides which cursor gets shown.
 
void restoreOverrideMouseCursor ()
 Undoes the effect of the last call to setOverrideCursor.
 
void requestMouseCursor (Cursor::Type type)
 Function that is used by widgets to change the mouse cursor.
 
void setDrawingUpdatesTime (bool drawUpdatesTime)
 Sets whether drawing the gui will automatically update the internal clock or whether the user does it manually.
 
bool updateTime ()
 Updates the internal clock (for timers, animations and blinking edit cursors)
 
bool updateTime (Duration elapsedTime)
 
Vector2f mapPixelToCoords (Vector2i pixel) const
 Converts the pixel coordinate to a position within the view.
 
Vector2f mapCoordsToPixel (Vector2f coord) const
 Converts a position within the view to the corresponding pixel coordinate.
 
void setKeyboardNavigationEnabled (bool enabled)
 Changes whether using the arrow keys can be used to navigate between widgets.
 
bool isKeyboardNavigationEnabled () const
 Returns whether using the arrow keys can be used to navigate between widgets.
 

Protected Member Functions

void updateContainerSize () override
 
- Protected Member Functions inherited from tgui::BackendGuiSFML
void setGuiWindow (sf::Window &window)
 Sets the window which the gui should use.
 
- Protected Member Functions inherited from tgui::BackendGui
bool handleTwoFingerScroll (bool wasAlreadyScrolling)
 
Event::KeyboardKey translateKeypadKey (Event::KeyboardKey key)
 

Additional Inherited Members

- Public Attributes inherited from tgui::BackendGui
SignalFloatRect onViewChange = {"ViewChanged"}
 The view was changed. Optional parameter: new view rectangle.
 
Signal onWindowFocus = {"WindowFocused"}
 The window sent a GainedFocus event.
 
Signal onWindowUnfocus = {"WindowUnfocused"}
 The window sent a LostFocus event.
 
- Protected Attributes inherited from tgui::BackendGuiSFML
sf::Window * m_window = nullptr
 
bool m_modifierKeySystemPressed = false
 
bool m_modifierKeyControlPressed = false
 
bool m_modifierKeyShiftPressed = false
 
bool m_modifierKeyAltPressed = false
 
- Protected Attributes inherited from tgui::BackendGui
std::chrono::steady_clock::time_point m_lastUpdateTime
 
bool m_windowFocused = true
 
RootContainer::Ptr m_container = std::make_shared<RootContainer>()
 
Widget::Ptr m_visibleToolTip = nullptr
 
Duration m_tooltipTime
 
bool m_tooltipPossible = false
 
Vector2f m_toolTipRelativePos
 
Vector2i m_lastMousePos
 
TwoFingerScrollDetect m_twoFingerScroll
 
Vector2i m_framebufferSize
 
RelFloatRect m_viewport {RelativeValue{0}, RelativeValue{0}, RelativeValue{1}, RelativeValue{1}}
 
RelFloatRect m_view {RelativeValue{0}, RelativeValue{0}, RelativeValue{1}, RelativeValue{1}}
 
FloatRect m_lastView
 
bool m_drawUpdatesTime = true
 
bool m_tabKeyUsageEnabled = true
 
bool m_keyboardNavigationEnabled = false
 
Cursor::Type m_requestedMouseCursor = Cursor::Type::Arrow
 
std::stack< Cursor::Typem_overrideMouseCursors
 
std::shared_ptr< BackendRenderTargetm_backendRenderTarget = nullptr
 

Detailed Description

Gui class for SFML (using sfml-graphics module for rendering and font)

Constructor & Destructor Documentation

◆ Gui() [1/3]

tgui::SFML_GRAPHICS::Gui::Gui ( )
default

Default constructor.

Warning
You must still call setWindow (or setTarget) on the Gui before using any TGUI functions

◆ Gui() [2/3]

tgui::SFML_GRAPHICS::Gui::Gui ( sf::RenderWindow & window)
inline

Constructor that immediately sets the window on which the gui should be drawn.

Parameters
windowThe SFML window that will be used by the gui

◆ Gui() [3/3]

tgui::SFML_GRAPHICS::Gui::Gui ( sf::RenderTarget & target)
inline

Constructor that immediately sets the render target on which the gui should be drawn.

Parameters
targetThe SFML render target that will be used by the gui
Warning
If the target isn't an sf::RenderWindow (which it isn't if this constructor is called) then window-related functionality such as changing the mouse pointer won't work. You can still call setWindow later with a regular sf::Window (not an sf::RenderWindow) to enable this functionality while still rendering to the target that is passed here.

Member Function Documentation

◆ getTarget()

sf::RenderTarget * tgui::SFML_GRAPHICS::Gui::getTarget ( ) const
nodiscard

Returns the render target on which the gui is being drawn.

Returns
The sfml render target that is used by the gui

◆ setTarget() [1/2]

void tgui::SFML_GRAPHICS::Gui::setTarget ( sf::RenderTarget & target)

Sets the target on which the gui should be drawn.

Parameters
targetThe SFML render target that will be used by the gui
Warning
If the target isn't an sf::RenderWindow (which it isn't if this function overload is called) then window-related functionality such as changing the mouse pointer won't work. You can still call setWindow later with a regular sf::Window (not an sf::RenderWindow) to enable this functionality while still rendering to the target that is passed here.
See also
setTarget(sf::RenderWindow)

◆ setTarget() [2/2]

void tgui::SFML_GRAPHICS::Gui::setTarget ( sf::RenderWindow & window)

Sets the window on which the gui should be drawn.

Parameters
windowThe SFML window that will be used by the gui

Calling setWindow or setTarget with an sf::RenderWindow does the exact same thing.

◆ setWindow() [1/2]

void tgui::SFML_GRAPHICS::Gui::setWindow ( sf::RenderWindow & window)

Sets the window on which the gui should be drawn.

Parameters
windowThe SFML window that will be used by the gui

Calling setWindow or setTarget with an sf::RenderWindow does the exact same thing.

◆ setWindow() [2/2]

void tgui::SFML_GRAPHICS::Gui::setWindow ( sf::Window & window)

Sets the window which the gui should use.

Parameters
windowThe SFML window that will be used by the gui
Warning
If the window isn't an sf::RenderWindow (which it isn't if this function overload is called) then the window can't be used to render on and is only used for enabling window-specific functionality such as changing the mouse cursor. You still have to call setTarget to tell the gui what to render on.
This function overload shouldn't be used when passing a sf::RenderWindow to setTarget.
See also
setWindow(sf::RenderWindow)

◆ updateContainerSize()

void tgui::SFML_GRAPHICS::Gui::updateContainerSize ( )
overrideprotectedvirtual

Reimplemented from tgui::BackendGuiSFML.


The documentation for this class was generated from the following file: