TGUI
0.8.9
|
#include <TGUI/Widgets/TextBox.hpp>
Public Types | |
typedef std::shared_ptr< TextBox > | Ptr |
Shared widget pointer. | |
typedef std::shared_ptr< const TextBox > | ConstPtr |
Shared constant widget pointer. | |
Public Types inherited from tgui::Widget | |
typedef std::shared_ptr< Widget > | Ptr |
Shared widget pointer. | |
typedef std::shared_ptr< const Widget > | ConstPtr |
Shared constant widget pointer. | |
Public Member Functions | |
TextBoxRenderer * | getSharedRenderer () |
Returns the renderer, which gives access to functions that determine how the widget is displayed. More... | |
TextBoxRenderer * | getRenderer () |
Returns the renderer, which gives access to functions that determine how the widget is displayed. More... | |
void | setSize (const Layout2d &size) override |
Changes the size of the text box. More... | |
void | setText (const sf::String &text, bool triggerTextChangedSignal=false) |
Changes the text of the text box. More... | |
void | addText (const sf::String &text) |
Appends some text to the text that was already in the text box. More... | |
const sf::String & | getText () const |
Returns the text of the text box. More... | |
void | setDefaultText (const sf::String &text) |
Changes the default text of the textbox. This is the text drawn when the text box is empty. More... | |
const sf::String & | getDefaultText () const |
Returns the default text of the text box. This is the text drawn when the text box is empty. More... | |
void | setSelectedText (std::size_t selectionStartIndex, std::size_t selectionEndIndex) |
Changes which part of the text is selected. More... | |
sf::String | getSelectedText () const |
Returns the text that you currently have selected. More... | |
std::size_t | getSelectionStart () const |
Returns the index where the selection starts. More... | |
std::size_t | getSelectionEnd () const |
Returns the index where the selection ends. More... | |
void | setTextSize (unsigned int size) override |
Changes the character size of the text. More... | |
void | setMaximumCharacters (std::size_t maxChars=0) |
Changes the maximum character limit. More... | |
std::size_t | getMaximumCharacters () const |
Returns the maximum character limit. More... | |
void | setCaretPosition (std::size_t charactersBeforeCaret) |
Sets the blinking caret to after a specific character. More... | |
std::size_t | getCaretPosition () const |
Returns after which character the blinking cursor is currently located. More... | |
void | setReadOnly (bool readOnly=true) |
Makes the text box read-only or make it writable again. More... | |
bool | isReadOnly () const |
Checks if the text box read-only or writable. More... | |
void | setHorizontalScrollbarPresent (bool present) |
Sets whether the horizontal scrollbar is present. More... | |
bool | isHorizontalScrollbarPresent () const |
Returns whether the horizontal scrollbar is present. More... | |
void | setVerticalScrollbarPresent (bool present) |
Sets whether the vertical scrollbar is present. More... | |
bool | isVerticalScrollbarPresent () const |
Returns whether the vertical scrollbar is present. More... | |
void | setVerticalScrollbarPolicy (Scrollbar::Policy policy) |
Changes when the vertical scrollbar should be displayed. More... | |
Scrollbar::Policy | getVerticalScrollbarPolicy () const |
Returns when the vertical scrollbar should be displayed. More... | |
void | setHorizontalScrollbarPolicy (Scrollbar::Policy policy) |
Changes when the horizontal scrollbar should be displayed. More... | |
Scrollbar::Policy | getHorizontalScrollbarPolicy () const |
Returns when the horizontal scrollbar should be displayed. More... | |
std::size_t | getLinesCount () const |
Returns the amount of lines that the text occupies in the TextBox. More... | |
void | setFocused (bool focused) override |
Focus or unfocus the widget. More... | |
void | enableMonospacedFontOptimization (bool enable=true) |
Changes whether an optimization is made that only works when using a monospaced font. More... | |
void | setVerticalScrollbarValue (unsigned int value) |
Changes the thumb position of the vertical scrollbar. More... | |
unsigned int | getVerticalScrollbarValue () const |
Returns the thumb position of the vertical scrollbar. More... | |
void | setHorizontalScrollbarValue (unsigned int value) |
Changes the thumb position of the horizontal scrollbar. More... | |
unsigned int | getHorizontalScrollbarValue () const |
Returns the thumb position of the horizontal scrollbar. More... | |
bool | mouseOnWidget (Vector2f pos) const override |
Returns whether the mouse position (which is relative to the parent widget) lies on top of the widget. More... | |
virtual void | setSize (const Layout2d &size) |
Changes the size of the widget. More... | |
void | setSize (Layout width, Layout height) |
Changes the size of the widget. More... | |
Public Member Functions inherited from tgui::Widget | |
Widget () | |
Default constructor. | |
Widget (const Widget &) | |
Copy constructor. | |
Widget (Widget &&) | |
Move constructor. | |
~Widget () | |
Destructor. | |
Widget & | operator= (const Widget &) |
Overload of copy assignment operator. | |
Widget & | operator= (Widget &&) |
Move assignment. | |
void | setRenderer (std::shared_ptr< RendererData > rendererData) |
Sets a new renderer for the widget. The renderer determines how the widget looks. More... | |
WidgetRenderer * | getSharedRenderer () |
Returns the renderer, which gives access to functions that determine how the widget is displayed. More... | |
WidgetRenderer * | getRenderer () |
Returns the renderer, which gives access to functions that determine how the widget is displayed. More... | |
virtual void | setPosition (const Layout2d &position) |
sets the position of the widget More... | |
void | setPosition (Layout x, Layout y) |
Sets the position of the widget. More... | |
Vector2f | getPosition () const |
Gets the position of the widget. More... | |
void | setSize (Layout width, Layout height) |
Changes the size of the widget. More... | |
Vector2f | getSize () const |
Returns the size of the widget. More... | |
virtual Vector2f | getFullSize () const |
Returns the entire size that the widget is using. More... | |
virtual Vector2f | getAbsolutePosition () const |
Get the absolute position of the widget instead of the relative position to its parent. More... | |
virtual Vector2f | getWidgetOffset () const |
Returns the distance between the position where the widget is drawn and where the widget is placed. More... | |
virtual void | showWithEffect (ShowAnimationType type, sf::Time duration) |
Shows the widget by introducing it with an animation. More... | |
virtual void | hideWithEffect (ShowAnimationType type, sf::Time duration) |
Hides the widget by making it leave with an animation. More... | |
virtual void | setVisible (bool visible) |
Shows or hides a widget. More... | |
bool | isVisible () const |
Returns true when the widget is visible. More... | |
virtual void | setEnabled (bool enabled) |
Enables or disables the widget. More... | |
bool | isEnabled () const |
Returns true when the widget is enabled. More... | |
bool | isFocused () const |
Returns true when the widget is focused and false otherwise. More... | |
const std::string & | getWidgetType () const |
Returns the type of the widget. More... | |
Container * | getParent () const |
Returns a pointer to the parent widget. More... | |
bool | isAnimationPlaying () const |
Returns whether there is an active animation (started with showWithEffect or hideWithEffect) More... | |
virtual void | moveToFront () |
Places the widget before all other widgets. More... | |
virtual void | moveToBack () |
Places the widget behind all other widgets. More... | |
void | setUserData (std::any userData) |
Stores some data into the widget. More... | |
template<typename T > | |
T | getUserData () const |
Returns data stored in the widget. More... | |
void | setInheritedFont (const Font &font) |
Sets the font of the widget that is used when no font is set in the renderer. More... | |
const Font & | getInheritedFont () const |
Returns the font of the widget that is used when no font is set in the renderer. More... | |
void | setInheritedOpacity (float opacity) |
Sets the opacity of the widget that will be multiplied with the opacity set in the renderer. More... | |
float | getInheritedOpacity () const |
Returns the opacity of the widget that is multiplied with the opacity set in the renderer. More... | |
virtual unsigned int | getTextSize () const |
Returns the character size of text in this widget. More... | |
void | setToolTip (Widget::Ptr toolTip) |
Sets the tool tip that should be displayed when hovering over the widget. More... | |
Widget::Ptr | getToolTip () const |
Returns the tool tip that is displayed when hovering over the widget. More... | |
void | setWidgetName (const sf::String &name) |
Changes the name of a widget. More... | |
sf::String | getWidgetName () const |
Returns the name of a widget. More... | |
void | setFocusable (bool focusable) |
Changes whether a widget could be focused. More... | |
bool | isFocusable () const |
Returns whether a widget could be focused. More... | |
virtual bool | canGainFocus () const |
Returns whether the widget can currently gain focus. More... | |
bool | isContainer () const |
Returns whether the widget is a container widget or not. More... | |
template<typename WidgetType > | |
std::shared_ptr< const WidgetType > | cast () const |
Downcast const widget. | |
template<typename WidgetType > | |
std::shared_ptr< WidgetType > | cast () |
Downcast widget. | |
Public Member Functions inherited from tgui::SignalWidgetBase | |
template<typename Func , typename... Args, typename std::enable_if< std::is_convertible< Func, std::function< void(const Args &...)> >::value >::type * = nullptr> | |
unsigned int | connect (std::string signalName, Func &&handler, const Args &... args) |
Connects a signal handler that will be called when this signal is emitted. More... | |
template<typename Func , typename... BoundArgs, typename std::enable_if<!std::is_convertible< Func, std::function< void(const BoundArgs &...)> >::value &&std::is_convertible< Func, std::function< void(const BoundArgs &..., std::shared_ptr< Widget >, const std::string &)> >::value , ::type * = nullptr> | |
unsigned int | connect (std::string signalName, Func &&handler, BoundArgs &&... args) |
Connects a signal handler that will be called when this signal is emitted. More... | |
template<typename Func , typename... BoundArgs, typename std::enable_if<!std::is_convertible< Func, std::function< void(const BoundArgs &...)> >::value &&!std::is_convertible< Func, std::function< void(const BoundArgs &..., std::shared_ptr< Widget >, const std::string &)> >::value , ::type * = nullptr> | |
unsigned int | connect (std::string signalName, Func &&handler, BoundArgs &&... args) |
Connects a signal handler that will be called when this signal is emitted. More... | |
template<typename Func , typename... BoundArgs> | |
unsigned int | connect (std::initializer_list< std::string > signalNames, Func &&handler, BoundArgs &&... args) |
Connect a signal handler to multiple signals. More... | |
bool | disconnect (unsigned int id) |
Disconnects a signal handler. More... | |
void | disconnectAll (std::string signalName) |
Disconnects all signal handler from a certain signal. More... | |
void | disconnectAll () |
Disconnects all signal handlers from signals. | |
Static Public Member Functions | |
static TextBox::Ptr | create () |
Creates a new text box widget. More... | |
static TextBox::Ptr | copy (TextBox::ConstPtr textBox) |
Makes a copy of another text box. More... | |
Public Attributes | |
SignalString | onTextChange = {"TextChanged"} |
The text was changed. Optional parameter: new text. | |
Signal | onSelectionChange = {"SelectionChanged"} |
Selected text changed. | |
Public Attributes inherited from tgui::Widget | |
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. | |
SignalAnimation | onAnimationFinished = {"AnimationFinished"} |
A show or hide animation finished. Optional parameters: animation type, new widget visibility or both. | |
Protected Member Functions | |
void | draw (sf::RenderTarget &target, sf::RenderStates states) const override |
Draw the widget to a render target. More... | |
Signal & | getSignal (std::string signalName) override |
Retrieves a signal based on its name. More... | |
void | rendererChanged (const std::string &property) override |
Function called when one of the properties of the renderer is changed. More... | |
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. | |
Widget::Ptr | clone () const override |
Makes a copy of the widget if you don't know its exact type. More... | |
Protected Member Functions inherited from tgui::Widget | |
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. | |
Text box widget.
A text box is a multi-line input box which supports word-wrap and a vertical scrollbar. If you are looking for a single line input field (with options like setting a password character or displaying a default text when it is empty) then check out the EditBox class.
void tgui::TextBox::addText | ( | const sf::String & | text | ) |
Appends some text to the text that was already in the text box.
text | Text that will be added to the text that is already in the text box |
|
inlineoverrideprotectedvirtual |
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 text box.
textBox | The other text box |
|
static |
Creates a new text box widget.
|
overrideprotectedvirtual |
Draw the widget to a render target.
target | Render target to draw to |
states | Current render states |
Implements tgui::Widget.
void tgui::TextBox::enableMonospacedFontOptimization | ( | bool | enable = true | ) |
Changes whether an optimization is made that only works when using a monospaced font.
enable | Whether the optimization should be enabled |
Rearranging text when a horizontal scrollbar is enabled can be almost as expensive as the word-wrap which is performed when there is no horizontal scrollbar. When using a monospaced font there is no need for such expensive calculation. Call this function when using a monospaced font to make changing the text faster.
This function has no effect when the horizontal scrollbar is disabled (default).
std::size_t tgui::TextBox::getCaretPosition | ( | ) | const |
Returns after which character the blinking cursor is currently located.
This function is an alias for getSelectionEnd.
const sf::String & tgui::TextBox::getDefaultText | ( | ) | const |
Returns the default text of the text box. This is the text drawn when the text box is empty.
Scrollbar::Policy tgui::TextBox::getHorizontalScrollbarPolicy | ( | ) | const |
Returns when the horizontal scrollbar should be displayed.
The default policy is Never, which means word-wrap will be used to keep the text within the TextBox.
unsigned int tgui::TextBox::getHorizontalScrollbarValue | ( | ) | const |
Returns the thumb position of the horizontal scrollbar.
std::size_t tgui::TextBox::getLinesCount | ( | ) | const |
Returns the amount of lines that the text occupies in the TextBox.
Note that this is the amount of lines after word-wrap is applied.
std::size_t tgui::TextBox::getMaximumCharacters | ( | ) | const |
Returns the maximum character limit.
There is no character limit by default.
TextBoxRenderer * tgui::TextBox::getRenderer | ( | ) |
Returns the renderer, which gives access to functions that determine how the widget is displayed.
sf::String tgui::TextBox::getSelectedText | ( | ) | const |
Returns the text that you currently have selected.
std::size_t tgui::TextBox::getSelectionEnd | ( | ) | const |
Returns the index where the selection ends.
The selection end always equals the caret position.
Note that the start of the selection may be behind the end of the selection when the user selected the text from right to left or from bottom to top.
std::size_t tgui::TextBox::getSelectionStart | ( | ) | const |
Returns the index where the selection starts.
When no text is selected, this function returns the same getSelectionEnd.
Note that the start of the selection may be behind the end of the selection when the user selected the text from right to left or from bottom to top.
TextBoxRenderer * tgui::TextBox::getSharedRenderer | ( | ) |
Returns the renderer, which gives access to functions that determine how the widget is displayed.
|
overrideprotectedvirtual |
Retrieves a signal based on its name.
signalName | Name of the signal |
Exception | when the name does not match any signal |
Reimplemented from tgui::Widget.
const sf::String & tgui::TextBox::getText | ( | ) | const |
Returns the text of the text box.
Scrollbar::Policy tgui::TextBox::getVerticalScrollbarPolicy | ( | ) | const |
Returns when the vertical scrollbar should be displayed.
The default policy is Automatic, which means it only shows when the text doesn't fit inside the TextBox.
unsigned int tgui::TextBox::getVerticalScrollbarValue | ( | ) | const |
Returns the thumb position of the vertical scrollbar.
bool tgui::TextBox::isHorizontalScrollbarPresent | ( | ) | const |
Returns whether the horizontal scrollbar is present.
bool tgui::TextBox::isReadOnly | ( | ) | const |
Checks if the text box read-only or writable.
When the text box is read-only, you can no longer delete characters and type text. Selecting text, copying text and even calling the setText function will still work.
bool tgui::TextBox::isVerticalScrollbarPresent | ( | ) | const |
Returns whether the vertical scrollbar is present.
|
overridevirtual |
Returns whether the mouse position (which is relative to the parent widget) lies on top of the widget.
Implements tgui::Widget.
|
overrideprotectedvirtual |
Function called when one of the properties of the renderer is changed.
property | Lowercase name of the property that was changed |
Reimplemented from tgui::Widget.
void tgui::TextBox::setCaretPosition | ( | std::size_t | charactersBeforeCaret | ) |
Sets the blinking caret to after a specific character.
charactersBeforeCaret | The new position |
This function will set both the selection start and selection end to the requested value.
void tgui::TextBox::setDefaultText | ( | const sf::String & | text | ) |
Changes the default text of the textbox. This is the text drawn when the text box is empty.
text | The new default text |
|
overridevirtual |
Focus or unfocus the widget.
focused | Is the widget focused? |
When a widget is focused, the previously focused widget will be unfocused.
Reimplemented from tgui::Widget.
void tgui::TextBox::setHorizontalScrollbarPolicy | ( | Scrollbar::Policy | policy | ) |
Changes when the horizontal scrollbar should be displayed.
policy | The policy for displaying the horizontal scrollbar |
The default policy is Never, which means word-wrap will be used to keep the text within the TextBox.
void tgui::TextBox::setHorizontalScrollbarPresent | ( | bool | present | ) |
Sets whether the horizontal scrollbar is present.
When present, the scrollbar will appear once the text takes more space than the text box. When not present, the text will attempt to word wrap once the text line is full. The horizontal scroll is not present by default.
present | Should the horizontal scrollbar be present? |
void tgui::TextBox::setHorizontalScrollbarValue | ( | unsigned int | value | ) |
Changes the thumb position of the horizontal scrollbar.
value | New value of the horizontal scrollbar |
void tgui::TextBox::setMaximumCharacters | ( | std::size_t | maxChars = 0 | ) |
Changes the maximum character limit.
maxChars | The new character limit. Set it to 0 to disable the limit |
This character limit is disabled by default.
void tgui::TextBox::setReadOnly | ( | bool | readOnly = true | ) |
Makes the text box read-only or make it writable again.
readOnly | Should the text box be read-only? |
When the text box is read-only, you can no longer delete characters and type text. Selecting text, copying text and even calling the setText function will still work.
void tgui::TextBox::setSelectedText | ( | std::size_t | selectionStartIndex, |
std::size_t | selectionEndIndex | ||
) |
Changes which part of the text is selected.
selectionStartIndex | Amount of characters before the start of the selection |
selectionEndIndex | Amount of characters before the end of the selection |
|
virtual |
Changes the size of the widget.
size | Size of the widget |
Usage examples:
Reimplemented from tgui::Widget.
|
overridevirtual |
Changes the size of the text box.
This size does not include the borders.
size | The new size of the text box |
Reimplemented from tgui::Widget.
Changes the size of the widget.
width | Width of the widget |
height | Height of the widget |
void tgui::TextBox::setText | ( | const sf::String & | text, |
bool | triggerTextChangedSignal = false |
||
) |
Changes the text of the text box.
text | New text |
triggerTextChangedSignal | Should the "TextChanged" callback be send? False by default for compatibility. |
|
overridevirtual |
Changes the character size of the text.
size | The new text size. The minimum text size is 8 |
Reimplemented from tgui::Widget.
void tgui::TextBox::setVerticalScrollbarPolicy | ( | Scrollbar::Policy | policy | ) |
Changes when the vertical scrollbar should be displayed.
policy | The policy for displaying the vertical scrollbar |
The default policy is Automatic, which means it only shows when the text doesn't fit inside the TextBox.
void tgui::TextBox::setVerticalScrollbarPresent | ( | bool | present | ) |
Sets whether the vertical scrollbar is present.
When present, the scrollbar will appear once the text takes more space than the text box. When not present, you will not be able to add text once the text box is full. The vertical scroll is present by default.
present | Should the vertical scrollbar be present? |
void tgui::TextBox::setVerticalScrollbarValue | ( | unsigned int | value | ) |
Changes the thumb position of the vertical scrollbar.
value | New value of the vertical scrollbar |