TGUI  1.3-dev
Loading...
Searching...
No Matches
Inheritance diagram for tgui::BackendGuiGLFW:
tgui::BackendGui tgui::GLFW_GLES2::Gui tgui::GLFW_OPENGL3::Gui

Public Member Functions

 BackendGuiGLFW ()
 Default constructor.
 
 ~BackendGuiGLFW ()
 Destructor.
 
bool windowFocusCallback (int focused)
 Inform the gui about a focus event when a callback from glfwSetWindowFocusCallback occurs.
 
bool sizeCallback (int width, int height)
 Inform the gui about a framebuffer size event when a callback from glfwSetFramebufferSizeCallback occurs.
 
bool charCallback (unsigned int codepoint)
 Inform the gui about a char event when a callback from glfwSetCharCallback occurs.
 
bool keyCallback (int key, int scancode, int action, int mods)
 Inform the gui about a key event when a callback from glfwSetKeyCallback occurs.
 
bool scrollCallback (double xoffset, double yoffset)
 Inform the gui about a scroll event when a callback from glfwSetScrollCallback occurs.
 
bool cursorPosCallback (double xpos, double ypos)
 Inform the gui about a cursor position event when a callback from glfwSetCursorPosCallback occurs.
 
bool mouseButtonCallback (int button, int action, int mods)
 Inform the gui about a mouse button event when a callback from glfwSetMouseButtonCallback occurs.
 
bool cursorEnterCallback (int entered)
 Inform the gui that the mouse has left or entered the window when a callback from glfwSetCursorEnterCallback occurs.
 
void mainLoop (Color clearColor={240, 240, 240}) override
 Give the gui control over the main loop.
 
TGUI_NODISCARD Optional< EventconvertWindowFocusEvent (int focused)
 
TGUI_NODISCARD Optional< EventconvertSizeEvent (int width, int height)
 
TGUI_NODISCARD Optional< EventconvertCharEvent (unsigned int codepoint)
 
TGUI_NODISCARD Optional< EventconvertKeyEvent (int key, int scancode, int action, int mods)
 
TGUI_NODISCARD Optional< EventconvertScrollEvent (double xoffset, double yoffset)
 
TGUI_NODISCARD Optional< EventconvertCursorPosEvent (double xpos, double ypos)
 
TGUI_NODISCARD Optional< EventconvertMouseButtonEvent (int button, int action, int mods)
 
TGUI_NODISCARD Optional< EventconvertCursorEnterEvent (int entered)
 
GLFWwindow * getWindow () const
 Returns the window that was provided to the gui.
 
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.
 
- 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.
 
TGUI_NODISCARD 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.
 
TGUI_NODISCARD 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.
 
TGUI_NODISCARD 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.
 
TGUI_NODISCARD RootContainer::Ptr getContainer () const
 Returns the internal container of the Gui.
 
TGUI_NODISCARD 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.
 
TGUI_NODISCARD Font getFont () const
 Returns the global font for this gui.
 
TGUI_NODISCARD 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.
 
TGUI_NODISCARD Widget::Ptr get (const String &widgetName) const
 Returns a pointer to an earlier created widget.
 
template<class WidgetType >
TGUI_NODISCARD 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.
 
TGUI_NODISCARD Widget::Ptr getFocusedChild () const
 Returns the child widget that is focused inside this container.
 
TGUI_NODISCARD Widget::Ptr getFocusedLeaf () const
 Returns the leaf child widget that is focused inside this container.
 
TGUI_NODISCARD Widget::Ptr getWidgetAtPosition (Vector2f pos) const
 Returns the leaf child widget that is located at the given position.
 
TGUI_NODISCARD Widget::Ptr getWidgetAtPos (Vector2f pos, bool recursive) const
 Returns the widget that is located at the given position.
 
TGUI_NODISCARD Widget::Ptr getWidgetBelowMouseCursor (Vector2i mousePos) const
 Returns the leaf child widget below the mouse.
 
TGUI_NODISCARD 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.
 
TGUI_NODISCARD 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.
 
TGUI_NODISCARD 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.
 
TGUI_NODISCARD 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)
 
TGUI_NODISCARD Vector2f mapPixelToCoords (Vector2i pixel) const
 Converts the pixel coordinate to a position within the view.
 
TGUI_NODISCARD Vector2f mapCoordsToPixel (Vector2f coord) const
 Converts a position within the view to the corresponding pixel coordinate.
 
virtual void startTextInput (FloatRect inputRect)
 This function is called by TGUI when focusing a text field (EditBox or TextArea). It may result in the software keyboard being opened.
 
virtual void stopTextInput ()
 This function is called by TGUI when unfocusing a text field (EditBox or TextArea). It may result in the software keyboard being closed.
 
void setKeyboardNavigationEnabled (bool enabled)
 Changes whether using the arrow keys can be used to navigate between widgets.
 
TGUI_NODISCARD bool isKeyboardNavigationEnabled () const
 Returns whether using the arrow keys can be used to navigate between widgets.
 

Protected Member Functions

void setGuiWindow (GLFWwindow *window)
 Sets the window on which the gui should be drawn.
 
void updateContainerSize () override
 
- Protected Member Functions inherited from tgui::BackendGui
bool handleTwoFingerScroll (bool wasAlreadyScrolling)
 

Protected Attributes

GLFWwindow * m_window = nullptr
 
- 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
 

Additional Inherited Members

- Public Attributes inherited from tgui::BackendGui
SignalFloatRect onViewChange = {"ViewChanged"}
 The view was changed. Optional parameter: new view rectangle.
 

Constructor & Destructor Documentation

◆ BackendGuiGLFW()

tgui::BackendGuiGLFW::BackendGuiGLFW ( )

Default constructor.

Warning
setGuiWindow has to be called by the subclass that inherits from this base class before the gui is used

Member Function Documentation

◆ charCallback()

bool tgui::BackendGuiGLFW::charCallback ( unsigned int codepoint)

Inform the gui about a char event when a callback from glfwSetCharCallback occurs.

Parameters
codepointThe Unicode code point of the character
Returns
Has the event been consumed? When this function returns false, then the event was ignored by all widgets.

◆ cursorEnterCallback()

bool tgui::BackendGuiGLFW::cursorEnterCallback ( int entered)

Inform the gui that the mouse has left or entered the window when a callback from glfwSetCursorEnterCallback occurs.

Parameters
enteredIndicates whether the mouse has entered or left the content area of the window
Returns
Has the event been consumed? When this function returns false, then the event was ignored by all widgets.

◆ cursorPosCallback()

bool tgui::BackendGuiGLFW::cursorPosCallback ( double xpos,
double ypos )

Inform the gui about a cursor position event when a callback from glfwSetCursorPosCallback occurs.

Parameters
xposThe new cursor x-coordinate, relative to the left edge of the content area
yposThe new cursor y-coordinate, relative to the top edge of the content area
Returns
Has the event been consumed? When this function returns false, then the event was ignored by all widgets.

◆ getWindow()

GLFWwindow * tgui::BackendGuiGLFW::getWindow ( ) const

Returns the window that was provided to the gui.

Returns
Window that was set via the constructor or setWindow

◆ keyCallback()

bool tgui::BackendGuiGLFW::keyCallback ( int key,
int scancode,
int action,
int mods )

Inform the gui about a key event when a callback from glfwSetKeyCallback occurs.

Parameters
keyThe keyboard key that was pressed or released
scancodeThe system-specific scancode of the key
actionGLFW_PRESS, GLFW_RELEASE or GLFW_REPEAT
modsBit field describing which modifier keys were held down
Returns
Has the event been consumed? When this function returns false, then the event was ignored by all widgets.

◆ mainLoop()

void tgui::BackendGuiGLFW::mainLoop ( Color clearColor = {240, 240, 240})
overridevirtual

Give the gui control over the main loop.

Parameters
clearColorbackground color of the window

This function is only intended in cases where your program only needs to respond to gui events. For multimedia applications, games, or other programs where you want a high framerate or do a lot of processing in the main loop, you should use your own main loop.

You can consider this function to execute something similar (but not identical) to the following code:

while (!glfwWindowShouldClose(window))
{
glClear(GL_COLOR_BUFFER_BIT);
gui.draw();
glfwSwapBuffers(window);
glfwWaitEvents();
}

Note that this function calls glfwSetWindowUserPointer and overwrites callback handlers.

Implements tgui::BackendGui.

◆ mouseButtonCallback()

bool tgui::BackendGuiGLFW::mouseButtonCallback ( int button,
int action,
int mods )

Inform the gui about a mouse button event when a callback from glfwSetMouseButtonCallback occurs.

Parameters
buttonThe mouse button that was pressed or released
actionOne of GLFW_PRESS or GLFW_RELEASE
modsBit field describing which modifier keys were held down
Returns
Has the event been consumed? When this function returns false, then the event was ignored by all widgets.

◆ scrollCallback()

bool tgui::BackendGuiGLFW::scrollCallback ( double xoffset,
double yoffset )

Inform the gui about a scroll event when a callback from glfwSetScrollCallback occurs.

Parameters
xoffsetThe scroll offset along the x-axis
yoffsetThe scroll offset along the y-axis
Returns
Has the event been consumed? When this function returns false, then the event was ignored by all widgets.

◆ setGuiWindow()

void tgui::BackendGuiGLFW::setGuiWindow ( GLFWwindow * window)
protected

Sets the window on which the gui should be drawn.

Parameters
windowThe GLFW window that will be used by the gui

◆ sizeCallback()

bool tgui::BackendGuiGLFW::sizeCallback ( int width,
int height )

Inform the gui about a framebuffer size event when a callback from glfwSetFramebufferSizeCallback occurs.

Parameters
widthThe new width, in pixels, of the framebuffer
heightThe new height, in pixels, of the framebuffer
Returns
Has the event been consumed? When this function returns false, then the event was ignored by all widgets.

◆ updateContainerSize()

void tgui::BackendGuiGLFW::updateContainerSize ( )
overrideprotectedvirtual

Reimplemented from tgui::BackendGui.

◆ updateTextCursorPosition()

void tgui::BackendGuiGLFW::updateTextCursorPosition ( FloatRect inputRect,
Vector2f caretPos )
overridevirtual

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.

Parameters
inputRectThe rectangle where text is being inputted
caretPosLocation of the text cursor, relative to the gui view

This function currently only has effect on Windows.

Reimplemented from tgui::BackendGui.

◆ windowFocusCallback()

bool tgui::BackendGuiGLFW::windowFocusCallback ( int focused)

Inform the gui about a focus event when a callback from glfwSetWindowFocusCallback occurs.

Parameters
focusedGLFW_TRUE if the window was given input focus, or GLFW_FALSE if it lost it
Returns
Has the event been consumed? When this function returns false, then the event was ignored by all widgets.

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