|
FifeGUI 0.2.0
A C++ GUI library designed for games.
|
#include <text.hpp>
Public Member Functions | |
| virtual void | addRow (std::string const &row) |
| virtual void | eraseRow (unsigned int row) |
| virtual int | getCaretColumn () const |
| virtual Rectangle | getCaretDimension (Font *font) const |
| virtual int | getCaretPosition () const |
| virtual int | getCaretRow () const |
| virtual int | getCaretX (Font *font) const |
| virtual int | getCaretY (Font *font) const |
| virtual std::string | getContent () const |
| virtual Rectangle | getDimension (Font *font) const |
| virtual unsigned int | getMaximumCaretRow () const |
| virtual unsigned int | getMaximumCaretRow (unsigned int row) const |
| virtual unsigned int | getNumberOfCharacters () const |
| virtual unsigned int | getNumberOfCharacters (unsigned int row) const |
| virtual unsigned int | getNumberOfRows () const |
| virtual std::string & | getRow (unsigned int row) |
| virtual int | getWidth (int row, Font *font) const |
| virtual void | insert (int character) |
| virtual void | insertRow (std::string const &row, unsigned int position) |
| Text & | operator= (Text &&)=default |
| Text & | operator= (Text const &)=default |
| virtual void | remove (int numberOfCharacters) |
| virtual void | setCaretColumn (int column) |
| virtual void | setCaretPosition (int position) |
| virtual void | setCaretPosition (int x, int y, Font *font) |
| virtual void | setCaretRow (int row) |
| virtual void | setContent (std::string const &content) |
| virtual void | setRow (unsigned int row, std::string const &content) |
| Text (std::string const &content) | |
| Text (Text &&)=default | |
| Text (Text const &)=default | |
Protected Member Functions | |
| void | calculateCaretPositionFromRowAndColumn () |
Protected Attributes | |
| unsigned int | mCaretColumn {0} |
| unsigned int | mCaretPosition {0} |
| unsigned int | mCaretRow {0} |
| std::vector< std::string > | mRows |
Helper class for text manipulation within widgets.
A utility class to ease working with text in widgets such as TextBox and TextField. The class wraps common text operations such as inserting and deleting text.
|
explicit |
|
virtual |
Adds a row to the content.
Calling this method will not change the current caret position.
| row | The row to add. |
Definition at line 90 of file text.cpp.
References mRows.
Referenced by insertRow().
|
protected |
Calculates the caret position from the caret row and caret column.
Definition at line 384 of file text.cpp.
References mCaretColumn, mCaretPosition, mCaretRow, and mRows.
Referenced by setCaretColumn().
|
virtual |
|
virtual |
Gets the column the caret is currently in.
Definition at line 268 of file text.cpp.
References mCaretColumn.
Gets the caret dimension relative to this text.
The returned dimension is perfect for use with Widget::showPart so the caret is always shown.
| font | The font to use when calculating the dimension. |
Definition at line 337 of file text.cpp.
References fcn::Font::getHeight(), fcn::Font::getWidth(), fcn::Rectangle::height, mCaretColumn, mCaretRow, mRows, fcn::Rectangle::width, fcn::Rectangle::x, and fcn::Rectangle::y.
|
virtual |
Gets the caret position.
Definition at line 220 of file text.cpp.
References mCaretPosition.
Referenced by insert().
|
virtual |
|
virtual |
Gets the x coordinate of the caret in pixels given a font.
| font | The font to use when calculating the x coordinate. |
Definition at line 304 of file text.cpp.
References fcn::Font::getWidth(), mCaretColumn, mCaretRow, and mRows.
|
virtual |
Gets the y coordinate of the caret in pixels given a font.
| font | The font to use when calculating the y coordinate. |
Definition at line 313 of file text.cpp.
References fcn::Font::getHeight(), and mCaretRow.
|
virtual |
Gets the dimension in pixels of the text given a font.
If there is no text present a dimension of a white space will be returned.
| font | The font to use when calculating the dimension. |
Definition at line 319 of file text.cpp.
References fcn::Font::getHeight(), fcn::Font::getWidth(), and mRows.
|
virtual |
|
virtual |
|
virtual |
|
virtual |
Gets the number of characters in a certain row in the text.
If the row does not exist, zero will be returned.
| row | The row to get the number of characters in. |
Definition at line 375 of file text.cpp.
References mRows.
|
virtual |
|
virtual |
|
virtual |
|
virtual |
Inserts a character at the current caret position.
| character | The character to insert. |
Definition at line 142 of file text.cpp.
References getCaretPosition(), mCaretColumn, mCaretRow, mRows, and setCaretPosition().
|
virtual |
|
virtual |
Removes a given number of characters at starting at the current caret position.
If the number of characters to remove is negative characters will be removed left of the caret position. If the number is positive characters will be removed right of the caret position. If a line feed is removed the row with the line feed will be merged with the row above the line feed.
| numberOfCharacters | The number of characters to remove. |
Definition at line 166 of file text.cpp.
References getNumberOfCharacters(), mCaretColumn, mCaretPosition, mCaretRow, mRows, setCaretColumn(), setCaretPosition(), and setCaretRow().
|
virtual |
Sets the column the caret should be in.
The column will be clamp to the current row.
| column | The column the caret should be in. |
Definition at line 278 of file text.cpp.
References calculateCaretPositionFromRowAndColumn(), mCaretColumn, mCaretRow, and mRows.
Referenced by remove(), setCaretPosition(), and setCaretRow().
|
virtual |
Sets the caret position.
The position will be clamp to the dimension of the content.
| position | The position of the caret. |
Definition at line 225 of file text.cpp.
References mCaretColumn, mCaretPosition, mCaretRow, and mRows.
|
virtual |
Sets the caret position given an x and y coordinate in pixels relative to the text.
The coordinates will be clamp to the content.
| x | The x coordinate of the caret. |
| y | The y coordinate of the caret. |
| font | The font to use when calculating the position. |
Definition at line 258 of file text.cpp.
References fcn::Font::getHeight(), fcn::Font::getStringIndexAt(), mCaretRow, mRows, setCaretColumn(), and setCaretRow().
|
virtual |
Sets the row the caret should be in.
If the row lies o outside of the text, the row will be set to zero or the maximum row depending on where the row lies outside of the text.
Calling this function trigger a recalculation of the caret column.
| row | The row the caret should be in. |
Definition at line 291 of file text.cpp.
References mCaretColumn, mCaretRow, mRows, and setCaretColumn().
Referenced by remove(), and setCaretPosition().
|
virtual |
Sets the content of the text.
Will completely remove any previous text and reset the caret position.
| content | The content of the text. |
Definition at line 41 of file text.cpp.
References mCaretColumn, mCaretPosition, mCaretRow, and mRows.
|
virtual |
|
protected |
Holds the column the caret is in.
This variable should always be valid.
Definition at line 297 of file text.hpp.
Referenced by calculateCaretPositionFromRowAndColumn(), getCaretColumn(), getCaretDimension(), getCaretX(), insert(), remove(), setCaretColumn(), setCaretPosition(), setCaretRow(), and setContent().
|
protected |
Holds the position of the caret.
This variable should always be valid.
Definition at line 285 of file text.hpp.
Referenced by calculateCaretPositionFromRowAndColumn(), getCaretPosition(), remove(), setCaretPosition(), and setContent().
|
protected |
Holds the row the caret is in.
This variable should always be valid.
Definition at line 291 of file text.hpp.
Referenced by calculateCaretPositionFromRowAndColumn(), getCaretDimension(), getCaretRow(), getCaretX(), getCaretY(), insert(), remove(), setCaretColumn(), setCaretPosition(), setCaretPosition(), setCaretRow(), and setContent().
|
protected |
Holds the text row by row.
Definition at line 279 of file text.hpp.
Referenced by addRow(), calculateCaretPositionFromRowAndColumn(), eraseRow(), getCaretDimension(), getCaretX(), getContent(), getDimension(), getNumberOfCharacters(), getNumberOfCharacters(), getNumberOfRows(), getRow(), insert(), insertRow(), remove(), setCaretColumn(), setCaretPosition(), setCaretPosition(), setCaretRow(), setContent(), setRow(), and Text().