TGUI
1.0-rc2
|
Classes | |
struct | Line |
Public Types | |
using | Ptr = std::shared_ptr< ChatBox > |
Shared widget pointer. | |
using | ConstPtr = std::shared_ptr< const ChatBox > |
Shared constant widget pointer. | |
![]() | |
using | Ptr = std::shared_ptr< Widget > |
Shared widget pointer. | |
using | ConstPtr = std::shared_ptr< const Widget > |
Shared constant widget pointer. | |
Public Member Functions | |
ChatBox (const char *typeName=StaticWidgetType, bool initRenderer=true) | |
TGUI_NODISCARD ChatBoxRenderer * | getSharedRenderer () override |
Returns the renderer, which gives access to functions that determine how the widget is displayed. | |
TGUI_NODISCARD const ChatBoxRenderer * | getSharedRenderer () const override |
TGUI_NODISCARD ChatBoxRenderer * | getRenderer () override |
Returns the renderer, which gives access to functions that determine how the widget is displayed. | |
void | setSize (const Layout2d &size) override |
Changes the size of the chat box. | |
void | addLine (const String &text) |
Adds a new line of text to the chat box. | |
void | addLine (const String &text, Color color) |
Adds a new line of text to the chat box. | |
void | addLine (const String &text, Color color, TextStyles style) |
Adds a new line of text to the chat box. | |
TGUI_NODISCARD String | getLine (std::size_t lineIndex) const |
Returns the contents of the requested line. | |
TGUI_NODISCARD Color | getLineColor (std::size_t lineIndex) const |
Returns the color of the requested line. | |
TGUI_NODISCARD TextStyles | getLineTextStyle (std::size_t lineIndex) const |
Returns the text style of the requested line. | |
bool | removeLine (std::size_t lineIndex) |
Removes the requested line. | |
void | removeAllLines () |
Removes all lines from the chat box. | |
TGUI_NODISCARD std::size_t | getLineAmount () |
Returns the amount of lines in the chat box. | |
void | setLineLimit (std::size_t maxLines) |
Sets a maximum amount of lines in the chat box. | |
TGUI_NODISCARD std::size_t | getLineLimit () |
Returns the maximum amount of lines in the chat box. | |
void | setTextColor (Color color) |
Changes the default color of the text. | |
TGUI_NODISCARD const Color & | getTextColor () const |
Returns the default color of the text. | |
void | setTextStyle (TextStyles style) |
Changes the default text style. | |
TGUI_NODISCARD TextStyles | getTextStyle () const |
Returns the default text style. | |
void | setLinesStartFromTop (bool startFromTop=true) |
Lets the first lines start from the top or from the bottom of the chat box. | |
TGUI_NODISCARD bool | getLinesStartFromTop () const |
Returns whether the first lines start from the top or from the bottom of the chat box. | |
void | setNewLinesBelowOthers (bool newLinesBelowOthers=true) |
Sets whether new lines are added below the other lines or above them. | |
TGUI_NODISCARD bool | getNewLinesBelowOthers () const |
Returns whether new lines are added below the other lines or above them. | |
void | setScrollbarValue (unsigned int value) |
Changes the thumb position of the scrollbar. | |
TGUI_NODISCARD unsigned int | getScrollbarValue () const |
Returns the thumb position of the scrollbar. | |
TGUI_NODISCARD bool | isMouseOnWidget (Vector2f pos) const override |
Returns whether the mouse position (which is relative to the parent widget) lies on top of the widget. | |
bool | leftMousePressed (Vector2f pos) override |
void | leftMouseReleased (Vector2f pos) override |
void | mouseMoved (Vector2f pos) override |
bool | scrolled (float delta, Vector2f pos, bool touch) override |
void | mouseNoLongerOnWidget () override |
void | leftMouseButtonNoLongerDown () override |
virtual void | setSize (const Layout2d &size) |
Changes the size of the widget. | |
void | setSize (Layout width, Layout height) |
Changes the size of the widget. | |
![]() | |
Widget (const char *typeName, bool initRenderer) | |
Widget (const Widget &) | |
Copy constructor. | |
Widget (Widget &&) noexcept | |
Move constructor. | |
virtual | ~Widget () |
Destructor. | |
Widget & | operator= (const Widget &) |
Overload of copy assignment operator. | |
Widget & | operator= (Widget &&) noexcept |
Move assignment. | |
void | setRenderer (std::shared_ptr< RendererData > rendererData) |
Sets a new renderer for the widget. The renderer determines how the widget looks. | |
virtual void | setPosition (const Layout2d &position) |
sets the position of the widget | |
void | setPosition (Layout x, Layout y) |
Sets the position of the widget. | |
TGUI_NODISCARD Vector2f | getPosition () const |
Gets the position of the widget. | |
void | setSize (Layout width, Layout height) |
Changes the size of the widget. | |
void | setWidth (Layout width) |
Changes the width of the widget. | |
void | setHeight (Layout height) |
Changes the height of the widget. | |
TGUI_NODISCARD Vector2f | getSize () const |
Returns the size of the widget. | |
virtual TGUI_NODISCARD Vector2f | getFullSize () const |
Returns the entire size that the widget is using. | |
virtual TGUI_NODISCARD Vector2f | getAbsolutePosition (Vector2f offset={}) const |
Get the absolute position of the widget instead of the relative position to its parent. | |
virtual TGUI_NODISCARD Vector2f | getWidgetOffset () const |
Returns the distance between the position where the widget is drawn and where the widget is placed. | |
void | setOrigin (float x, float y) |
Sets the origin point on which the position, scale and rotation is based. | |
void | setOrigin (Vector2f origin) |
Sets the origin point on which the position, scale and rotation is based. | |
TGUI_NODISCARD Vector2f | getOrigin () const |
Returns the relative origin point on which the position, scale and rotation is based. | |
void | setScale (Vector2f scaleFactors) |
Sets the scaling to be applied to the widget. | |
void | setScale (Vector2f scaleFactors, Vector2f origin) |
Sets the scaling to be applied to the widget. | |
void | setScale (float scaleFactor) |
Sets the scaling to be applied to the widget. | |
void | setScale (float scaleFactor, Vector2f origin) |
Sets the scaling to be applied to the widget. | |
TGUI_NODISCARD Vector2f | getScale () const |
Returns the scaling to be applied to the widget. | |
TGUI_NODISCARD Vector2f | getScaleOrigin () const |
Returns the origin used for scaling. | |
void | setRotation (float angle) |
Sets the rotation to be applied to the widget. | |
void | setRotation (float angle, Vector2f origin) |
Sets the rotation to be applied to the widget. | |
TGUI_NODISCARD float | getRotation () const |
Returns the rotation to be applied to the widget. | |
TGUI_NODISCARD Vector2f | getRotationOrigin () const |
Returns the origin used for rotations. | |
void | showWithEffect (ShowEffectType type, Duration duration) |
Shows the widget by introducing it with an animation. | |
void | hideWithEffect (ShowEffectType type, Duration duration) |
Hides the widget by making it leave with an animation. | |
void | moveWithAnimation (Layout2d position, Duration duration) |
Moves the widget from its current position to the given position, over a given duration. | |
void | resizeWithAnimation (Layout2d size, Duration duration) |
Resizes the widget from its current size to the given size, over a given duration. | |
virtual void | setVisible (bool visible) |
Shows or hides a widget. | |
TGUI_NODISCARD bool | isVisible () const |
Returns true when the widget is visible. | |
virtual void | setEnabled (bool enabled) |
Enables or disables the widget. | |
TGUI_NODISCARD bool | isEnabled () const |
Returns true when the widget is enabled. | |
virtual void | setFocused (bool focused) |
Focus or unfocus the widget. | |
TGUI_NODISCARD bool | isFocused () const |
Returns true when the widget is focused and false otherwise. | |
TGUI_NODISCARD const String & | getWidgetType () const |
Returns the type of the widget. | |
TGUI_NODISCARD Container * | getParent () const |
Returns a pointer to the parent widget. | |
TGUI_NODISCARD BackendGui * | getParentGui () const |
Returns a pointer to the gui to which this widget belongs. | |
TGUI_NODISCARD bool | isAnimationPlaying () const |
Returns whether there is an active animation (started with showWithEffect or hideWithEffect) | |
void | moveToFront () |
Places the widget before all other widgets. | |
void | moveToBack () |
Places the widget behind all other widgets. | |
void | setUserData (Any userData) |
Stores some data into the widget. | |
template<typename DataType > | |
TGUI_NODISCARD DataType | getUserData () const |
Returns data stored in the widget. | |
TGUI_NODISCARD bool | hasUserData () const |
Returns whether data stored in the widget. | |
void | setInheritedFont (const Font &font) |
Sets the font of the widget that is used when no font is set in the renderer. | |
TGUI_NODISCARD const Font & | getInheritedFont () const |
Returns the font of the widget that is used when no font is set in the renderer. | |
void | setInheritedOpacity (float opacity) |
Sets the opacity of the widget that will be multiplied with the opacity set in the renderer. | |
TGUI_NODISCARD float | getInheritedOpacity () const |
Returns the opacity of the widget that is multiplied with the opacity set in the renderer. | |
void | setTextSize (unsigned int size) |
Changes the character size of text in this widget if it uses text. | |
TGUI_NODISCARD unsigned int | getTextSize () const |
Returns the character size of text in this widget. | |
void | setToolTip (Widget::Ptr toolTip) |
Sets the tool tip that should be displayed when hovering over the widget. | |
TGUI_NODISCARD Widget::Ptr | getToolTip () const |
Returns the tool tip that is displayed when hovering over the widget. | |
void | setWidgetName (const String &name) |
Changes the name of a widget. | |
TGUI_NODISCARD String | getWidgetName () const |
Returns the name of a widget. | |
void | setMouseCursor (Cursor::Type cursor) |
Changes which mouse cursor is shown when hovering over the widget. | |
TGUI_NODISCARD Cursor::Type | getMouseCursor () const |
Returns which mouse cursor is shown when hovering over the widget. | |
void | setFocusable (bool focusable) |
Changes whether a widget could be focused. | |
TGUI_NODISCARD bool | isFocusable () const |
Returns whether a widget could be focused. | |
void | finishAllAnimations () |
Makes all animations of the widget finish immediately. | |
virtual TGUI_NODISCARD bool | canGainFocus () const |
Returns whether the widget can currently gain focus. | |
TGUI_NODISCARD bool | isContainer () const |
Returns whether the widget is a container widget or not. | |
TGUI_NODISCARD bool | isDraggableWidget () const |
Returns whether the widget has something to drag (e.g. slider or scrollbar thumbs) | |
TGUI_NODISCARD bool | isMouseDown () const |
Returns whether the left mouse button has been pressed on top of the widget. | |
virtual TGUI_NODISCARD Signal & | getSignal (String signalName) |
Retrieves a signal based on its name. | |
virtual void | setParent (Container *parent) |
virtual bool | updateTime (Duration elapsedTime) |
virtual void | rightMousePressed (Vector2f pos) |
virtual void | rightMouseReleased (Vector2f pos) |
virtual void | mouseReleased (Event::MouseButton button, Vector2f pos) |
virtual void | keyPressed (const Event::KeyEvent &event) |
virtual void | textEntered (char32_t key) |
virtual void | rightMouseButtonNoLongerDown () |
virtual TGUI_NODISCARD Widget::Ptr | askToolTip (Vector2f mousePos) |
TGUI_NODISCARD const Layout2d & | getPositionLayout () const |
TGUI_NODISCARD const Layout2d & | getSizeLayout () const |
void | bindPositionLayout (Layout *layout) |
void | unbindPositionLayout (Layout *layout) |
void | bindSizeLayout (Layout *layout) |
void | unbindSizeLayout (Layout *layout) |
template<typename WidgetType > | |
TGUI_NODISCARD std::shared_ptr< const WidgetType > | cast () const |
Downcast const widget. | |
template<typename WidgetType > | |
TGUI_NODISCARD std::shared_ptr< WidgetType > | cast () |
Downcast widget. | |
void | rendererChangedCallback (const String &property) |
Static Public Member Functions | |
static TGUI_NODISCARD ChatBox::Ptr | create () |
Creates a new chat box widget. | |
static TGUI_NODISCARD ChatBox::Ptr | copy (const ChatBox::ConstPtr &chatBox) |
Makes a copy of another chat box. | |
Static Public Attributes | |
static constexpr const char | StaticWidgetType [] = "ChatBox" |
Type name of the widget. | |
Protected Member Functions | |
void | draw (BackendRenderTarget &target, RenderStates states) const override |
Draw the widget to a render target. | |
void | rendererChanged (const String &property) override |
Function called when one of the properties of the renderer is changed. | |
TGUI_NODISCARD std::unique_ptr< DataIO::Node > | save (SavingRenderersMap &renderers) const override |
Saves the widget as a tree node in order to save it to a file. | |
void | load (const std::unique_ptr< DataIO::Node > &node, const LoadingRenderersMap &renderers) override |
Loads the widget from a tree of nodes. | |
void | updateTextSize () override |
Called when the text size is changed (either by setTextSize or via the renderer) | |
TGUI_NODISCARD Vector2f | getInnerSize () const |
TGUI_NODISCARD Widget::Ptr | clone () const override |
Makes a copy of the widget if you don't know its exact type. | |
![]() | |
virtual void | mouseEnteredWidget () |
This function is called when the mouse enters the widget. | |
virtual void | mouseLeftWidget () |
This function is called when the mouse leaves the widget. | |
Protected Attributes | |
Color | m_textColor = Color::Black |
TextStyles | m_textStyle |
std::size_t | m_maxLines = 0 |
float | m_fullTextHeight = 0 |
bool | m_linesStartFromTop = false |
bool | m_newLinesBelowOthers = true |
CopiedSharedPtr< ScrollbarChildWidget > | m_scroll |
std::deque< Line > | m_lines |
Sprite | m_spriteBackground |
Borders | m_bordersCached |
Padding | m_paddingCached |
Color | m_backgroundColorCached |
Color | m_borderColorCached |
![]() | |
String | m_type |
String | m_name |
Layout2d | m_position |
Stores the position of this widget. | |
Layout2d | m_size |
Stores the size of this widget. | |
unsigned int | m_textSize = 0 |
Vector2f | m_origin |
Optional< Vector2f > | m_rotationOrigin |
Optional< Vector2f > | m_scaleOrigin |
Vector2f | m_scaleFactors = {1, 1} |
float | m_rotationDeg = 0 |
Vector2f | m_prevPosition |
Vector2f | m_prevSize |
std::unordered_set< Layout * > | m_boundPositionLayouts |
std::unordered_set< Layout * > | m_boundSizeLayouts |
bool | m_enabled = true |
Stores the flag indicating whether this widget is enabled. | |
bool | m_visible = true |
Stores the flag indicating whether this widget is visible. | |
Container * | m_parent = nullptr |
BackendGui * | m_parentGui = nullptr |
bool | m_mouseHover = false |
bool | m_mouseDown = false |
bool | m_focused = false |
bool | m_focusable = true |
Duration | m_animationTimeElapsed |
bool | m_containerWidget = false |
Widget::Ptr | m_toolTip = nullptr |
aurora::CopiedPtr< WidgetRenderer > | m_renderer = nullptr |
std::vector< std::unique_ptr< priv::Animation > > | m_showAnimations |
Font | m_inheritedFont |
float | m_inheritedOpacity = 1 |
Font | m_fontCached = Font::getGlobalFont() |
float | m_opacityCached = 1 |
bool | m_transparentTextureCached = false |
unsigned int | m_textSizeCached = 0 |
Any | m_userData |
Cursor::Type | m_mouseCursor = Cursor::Type::Arrow |
Additional Inherited Members | |
![]() | |
SignalVector2f | onPositionChange = {"PositionChanged"} |
The position of the widget changed. Optional parameter: new position. | |
SignalVector2f | onSizeChange = {"SizeChanged"} |
The size of the widget changed. Optional parameter: new size. | |
Signal | onFocus = {"Focused"} |
The widget was focused. | |
Signal | onUnfocus = {"Unfocused"} |
The widget was unfocused. | |
Signal | onMouseEnter = {"MouseEntered"} |
The mouse entered the widget. | |
Signal | onMouseLeave = {"MouseLeft"} |
The mouse left the widget. | |
SignalShowEffect | onShowEffectFinish = {"ShowEffectFinished"} |
A show or hide effect finished. Optional parameters: effect type, new widget visibility or both. | |
SignalAnimationType | onAnimationFinish = {"AnimationFinished"} |
An animation has finished. | |
![]() | |
using | SavingRenderersMap = std::map< const Widget *, std::pair< std::unique_ptr< DataIO::Node >, String > > |
using | LoadingRenderersMap = std::map< String, std::shared_ptr< RendererData > > |
void tgui::ChatBox::addLine | ( | const String & | text | ) |
Adds a new line of text to the chat box.
The whole text passed to this function will be considered as one line for the getLine and removeLine functions, even if it is too long and gets split over multiple lines.
The default text color and style will be used.
text | Text that will be added to the chat box |
Adds a new line of text to the chat box.
The whole text passed to this function will be considered as one line for the getLine and removeLine functions, even if it is too long and gets split over multiple lines.
The default text style will be used.
void tgui::ChatBox::addLine | ( | const String & | text, |
Color | color, | ||
TextStyles | style | ||
) |
Adds a new line of text to the chat box.
The whole text passed to this function will be considered as one line for the getLine and removeLine functions, even if it is too long and gets split over multiple lines.
|
overrideprotectedvirtual |
Makes a copy of the widget if you don't know its exact type.
This function should only be used when you don't know the type of the widget. If you know what kind of widget you are copying, you should use the copy function.
Implements tgui::Widget.
|
static |
Makes a copy of another chat box.
chatBox | The other chat box |
|
static |
Creates a new chat box widget.
|
overrideprotectedvirtual |
Draw the widget to a render target.
target | Render target to draw to |
states | Current render states |
Implements tgui::Widget.
TGUI_NODISCARD String tgui::ChatBox::getLine | ( | std::size_t | lineIndex | ) | const |
Returns the contents of the requested line.
lineIndex | The index of the line of which you request the contents The first line has index 0 |
TGUI_NODISCARD std::size_t tgui::ChatBox::getLineAmount | ( | ) |
Returns the amount of lines in the chat box.
TGUI_NODISCARD Color tgui::ChatBox::getLineColor | ( | std::size_t | lineIndex | ) | const |
Returns the color of the requested line.
lineIndex | The index of the line of which you request the color. The first line has index 0 |
TGUI_NODISCARD std::size_t tgui::ChatBox::getLineLimit | ( | ) |
Returns the maximum amount of lines in the chat box.
Only the last maxLines lines will be kept. Lines above those will be removed. Disabled when set to 0 (default).
TGUI_NODISCARD bool tgui::ChatBox::getLinesStartFromTop | ( | ) | const |
Returns whether the first lines start from the top or from the bottom of the chat box.
Note that this only makes a difference when the lines don't fill the entire chat box. This does not change the order of the lines.
TGUI_NODISCARD TextStyles tgui::ChatBox::getLineTextStyle | ( | std::size_t | lineIndex | ) | const |
Returns the text style of the requested line.
lineIndex | The index of the line of which you request the text style. The first line has index 0. |
TGUI_NODISCARD bool tgui::ChatBox::getNewLinesBelowOthers | ( | ) | const |
Returns whether new lines are added below the other lines or above them.
|
overridevirtual |
Returns the renderer, which gives access to functions that determine how the widget is displayed.
Reimplemented from tgui::Widget.
TGUI_NODISCARD unsigned int tgui::ChatBox::getScrollbarValue | ( | ) | const |
Returns the thumb position of the scrollbar.
|
overridevirtual |
Reimplemented from tgui::Widget.
|
overridevirtual |
Returns the renderer, which gives access to functions that determine how the widget is displayed.
Reimplemented from tgui::Widget.
TGUI_NODISCARD const Color & tgui::ChatBox::getTextColor | ( | ) | const |
Returns the default color of the text.
TGUI_NODISCARD TextStyles tgui::ChatBox::getTextStyle | ( | ) | const |
Returns the default text style.
|
overridevirtual |
Returns whether the mouse position (which is relative to the parent widget) lies on top of the widget.
Implements tgui::Widget.
|
overridevirtual |
Reimplemented from tgui::Widget.
|
overridevirtual |
Reimplemented from tgui::Widget.
|
overridevirtual |
Reimplemented from tgui::Widget.
|
overrideprotectedvirtual |
Loads the widget from a tree of nodes.
Reimplemented from tgui::Widget.
|
overridevirtual |
Reimplemented from tgui::Widget.
|
overridevirtual |
Reimplemented from tgui::Widget.
bool tgui::ChatBox::removeLine | ( | std::size_t | lineIndex | ) |
Removes the requested line.
lineIndex | The index of the line that should be removed The first line has index 0 |
|
overrideprotectedvirtual |
Function called when one of the properties of the renderer is changed.
property | Name of the property that was changed |
Reimplemented from tgui::Widget.
|
overrideprotectedvirtual |
Saves the widget as a tree node in order to save it to a file.
Reimplemented from tgui::Widget.
|
overridevirtual |
Reimplemented from tgui::Widget.
void tgui::ChatBox::setLineLimit | ( | std::size_t | maxLines | ) |
Sets a maximum amount of lines in the chat box.
Only the last maxLines lines will be kept. Lines above those will be removed. Set to 0 to disable the line limit (default).
maxLines | The maximum amount of lines that the chat box can contain |
void tgui::ChatBox::setLinesStartFromTop | ( | bool | startFromTop = true | ) |
Lets the first lines start from the top or from the bottom of the chat box.
Note that this only makes a difference when the lines don't fill the entire chat box. This does not change the order of the lines.
startFromTop | Let the first lines be placed at the top of the chat box, or remain at the bottom? |
By default the first lines will be placed at the bottom of the chat box.
void tgui::ChatBox::setNewLinesBelowOthers | ( | bool | newLinesBelowOthers = true | ) |
Sets whether new lines are added below the other lines or above them.
newLinesBelowOthers | Should the addLine function insert the line below the existing lines? |
By default the new lines are always added below the others.
void tgui::ChatBox::setScrollbarValue | ( | unsigned int | value | ) |
Changes the thumb position of the scrollbar.
value | New value of the scrollbar |
|
virtual |
Changes the size of the widget.
size | Size of the widget |
Usage examples:
Reimplemented from tgui::Widget.
|
overridevirtual |
Changes the size of the chat box.
This size does not include the borders.
size | The new size of the chat box |
Reimplemented from tgui::Widget.
Changes the size of the widget.
width | Width of the widget |
height | Height of the widget |
void tgui::ChatBox::setTextColor | ( | Color | color | ) |
Changes the default color of the text.
color | The new default text color |
void tgui::ChatBox::setTextStyle | ( | TextStyles | style | ) |
Changes the default text style.
style | The new default text style |
|
overrideprotectedvirtual |
Called when the text size is changed (either by setTextSize or via the renderer)
Reimplemented from tgui::Widget.