#include <textbox.hpp>
Inheritance diagram for gcn::TextBox:
NOTE: A plain TextBox is really uggly and looks much better inside a ScrollArea.
Definition at line 77 of file textbox.hpp.
Public Member Functions | |
TextBox () | |
Constructor. | |
TextBox (const std::string &text) | |
Constructor. | |
virtual void | setText (const std::string &text) |
Sets the text. | |
virtual std::string | getText () const |
Gets the text. | |
virtual const std::string & | getTextRow (int row) const |
Gets the row of a text. | |
virtual void | setTextRow (int row, const std::string &text) |
Sets the text of a certain row in a TextBox. | |
virtual unsigned int | getNumberOfRows () const |
Gets the number of rows in the text. | |
virtual unsigned int | getCaretPosition () const |
Gets the caret position in the text. | |
virtual void | setCaretPosition (unsigned int position) |
Sets the position of the caret in the text. | |
virtual unsigned int | getCaretRow () const |
Gets the row the caret is in in the text. | |
virtual void | setCaretRow (int row) |
Sets the row the caret should be in in the text. | |
virtual unsigned int | getCaretColumn () const |
Gets the column the caret is in in the text. | |
virtual void | setCaretColumn (int column) |
Sets the column the caret should be in in the text. | |
virtual void | setCaretRowColumn (int row, int column) |
Sets the row and the column the caret should be in in the text. | |
virtual void | scrollToCaret () |
Scrolls the text to the caret if the TextBox is in a ScrollArea. | |
virtual bool | isEditable () const |
Checks if the TextBox is editable. | |
virtual void | setEditable (bool editable) |
Sets if the TextBox should be editable or not. | |
virtual void | addRow (const std::string row) |
Adds a text row to the text. | |
virtual bool | isOpaque () |
Checks if the TextBox is opaque. | |
virtual void | setOpaque (bool opaque) |
Sets the TextBox to be opaque. | |
virtual void | draw (Graphics *graphics) |
Draws the Widget. | |
virtual void | drawBorder (Graphics *graphics) |
Draws the Widget border. | |
virtual void | fontChanged () |
Called when the font has changed. | |
virtual void | keyPress (const Key &key) |
Called if a key is pressed when the widget has keyboard focus. | |
virtual void | mousePress (int x, int y, int button) |
Called when a mouse button is pressed when the mouse is in the Widget area or if the Widget has focus. | |
Protected Member Functions | |
virtual void | drawCaret (Graphics *graphics, int x, int y) |
Draws the caret. | |
virtual void | adjustSize () |
Adjusts the TextBox size to fit the font size. | |
Protected Attributes | |
std::vector< std::string > | mTextRows |
int | mCaretColumn |
int | mCaretRow |
bool | mEditable |
bool | mOpaque |
gcn::TextBox::TextBox | ( | const std::string & | text | ) |
Constructor.
text | the text of the TextBox. |
Definition at line 87 of file textbox.cpp.
References gcn::Widget::addKeyListener(), gcn::Widget::addMouseListener(), adjustSize(), mCaretColumn, mCaretRow, mEditable, mOpaque, gcn::Widget::setBorderSize(), gcn::Widget::setFocusable(), and setText().
void gcn::TextBox::addRow | ( | const std::string | row | ) | [virtual] |
Adds a text row to the text.
row | a row. |
Definition at line 529 of file textbox.cpp.
References adjustSize(), and mTextRows.
void gcn::TextBox::draw | ( | Graphics * | graphics | ) | [virtual] |
Draws the Widget.
It is called by the parent widget when it is time for the Widget to draw itself. The graphics object is set up so that all drawing is relative to the Widget, i.e coordinate (0,0) is the top-left corner of the Widget. It is not possible to draw outside of a Widgets dimension.
graphics | a Graphics object to draw with. |
Implements gcn::Widget.
Definition at line 134 of file textbox.cpp.
References drawCaret(), gcn::Graphics::drawText(), gcn::Graphics::fillRectangle(), gcn::Widget::getBackgroundColor(), gcn::Widget::getFont(), gcn::Widget::getForegroundColor(), gcn::Widget::getHeight(), gcn::Widget::getWidth(), isEditable(), gcn::Widget::isFocused(), mCaretColumn, mCaretRow, mOpaque, mTextRows, gcn::Graphics::setColor(), and gcn::Graphics::setFont().
void gcn::TextBox::drawBorder | ( | Graphics * | graphics | ) | [virtual] |
Draws the Widget border.
A border is drawn around a Widget. The width and height of the border is therefore the Widgets height+2*bordersize. Think of a painting that has a certain size, the border surrounds the painting.
graphics | a Graphics object to draw with. |
Reimplemented from gcn::Widget.
Definition at line 159 of file textbox.cpp.
References gcn::Graphics::drawLine(), gcn::Widget::getBackgroundColor(), gcn::Widget::getBorderSize(), gcn::Widget::getHeight(), gcn::Widget::getWidth(), and gcn::Graphics::setColor().
void gcn::TextBox::drawCaret | ( | Graphics * | graphics, | |
int | x, | |||
int | y | |||
) | [protected, virtual] |
Draws the caret.
graphics | a Graphics object to draw with. | |
x | the x position. | |
y | the y position. |
Definition at line 176 of file textbox.cpp.
References gcn::Graphics::drawLine(), gcn::Widget::getFont(), gcn::Widget::getForegroundColor(), gcn::Widget::getHeight(), and gcn::Graphics::setColor().
Referenced by draw().
void gcn::TextBox::fontChanged | ( | ) | [virtual] |
Called when the font has changed.
If the change is global, this function will only be called if the Widget don't have a font already set.
Reimplemented from gcn::Widget.
Definition at line 498 of file textbox.cpp.
References adjustSize().
unsigned int gcn::TextBox::getCaretColumn | ( | ) | const [virtual] |
Gets the column the caret is in in the text.
Definition at line 451 of file textbox.cpp.
References mCaretColumn.
unsigned int gcn::TextBox::getCaretPosition | ( | ) | const [virtual] |
Gets the caret position in the text.
Definition at line 396 of file textbox.cpp.
References mCaretColumn, mCaretRow, and mTextRows.
unsigned int gcn::TextBox::getCaretRow | ( | ) | const [virtual] |
Gets the row the caret is in in the text.
Definition at line 431 of file textbox.cpp.
References mCaretRow.
unsigned int gcn::TextBox::getNumberOfRows | ( | ) | const [virtual] |
Gets the number of rows in the text.
Definition at line 473 of file textbox.cpp.
References mTextRows.
std::string gcn::TextBox::getText | ( | ) | const [virtual] |
Gets the text.
Definition at line 478 of file textbox.cpp.
References mTextRows.
const std::string & gcn::TextBox::getTextRow | ( | int | row | ) | const [virtual] |
Gets the row of a text.
Definition at line 456 of file textbox.cpp.
References mTextRows.
bool gcn::TextBox::isEditable | ( | ) | const [virtual] |
bool gcn::TextBox::isOpaque | ( | ) | [virtual] |
Checks if the TextBox is opaque.
Definition at line 535 of file textbox.cpp.
References mOpaque.
void gcn::TextBox::keyPress | ( | const Key & | key | ) | [virtual] |
Called if a key is pressed when the widget has keyboard focus.
If a key is held down the widget will generate multiple key presses.
key | the key pressed. |
Reimplemented from gcn::KeyListener.
Definition at line 197 of file textbox.cpp.
References adjustSize(), gcn::BasicContainer::getChildrenArea(), gcn::Widget::getFont(), gcn::Font::getHeight(), gcn::Widget::getParent(), gcn::Key::getValue(), gcn::Rectangle::height, gcn::Key::isCharacter(), mCaretColumn, mCaretRow, mEditable, mTextRows, scrollToCaret(), and setCaretRow().
void gcn::TextBox::mousePress | ( | int | x, | |
int | y, | |||
int | button | |||
) | [virtual] |
Called when a mouse button is pressed when the mouse is in the Widget area or if the Widget has focus.
NOTE: A mouse press is NOT equal to a mouse click. Use mouseClickMessage to check for mouse clicks.
x | the x coordinate of the mouse relative to the Widget itself. | |
y | the y coordinate of the mouse relative to the Widget itself. | |
button | the button pressed. |
Reimplemented from gcn::MouseListener.
Definition at line 182 of file textbox.cpp.
References gcn::Widget::getFont(), gcn::Font::getHeight(), gcn::Font::getStringIndexAt(), gcn::Widget::hasMouse(), mCaretColumn, mCaretRow, and mTextRows.
void gcn::TextBox::setCaretColumn | ( | int | column | ) | [virtual] |
Sets the column the caret should be in in the text.
column | the column number. |
Definition at line 436 of file textbox.cpp.
References mCaretColumn, mCaretRow, and mTextRows.
Referenced by setCaretRow(), setCaretRowColumn(), and setTextRow().
void gcn::TextBox::setCaretPosition | ( | unsigned int | position | ) | [virtual] |
Sets the position of the caret in the text.
position | the positon of the caret. |
Definition at line 373 of file textbox.cpp.
References mCaretColumn, mCaretRow, and mTextRows.
void gcn::TextBox::setCaretRow | ( | int | row | ) | [virtual] |
Sets the row the caret should be in in the text.
row | the row number. |
Definition at line 414 of file textbox.cpp.
References mCaretColumn, mCaretRow, mTextRows, and setCaretColumn().
Referenced by keyPress(), and setCaretRowColumn().
void gcn::TextBox::setCaretRowColumn | ( | int | row, | |
int | column | |||
) | [virtual] |
Sets the row and the column the caret should be in in the text.
row | the row number. | |
column | the column number. |
Definition at line 408 of file textbox.cpp.
References setCaretColumn(), and setCaretRow().
void gcn::TextBox::setEditable | ( | bool | editable | ) | [virtual] |
Sets if the TextBox should be editable or not.
editable | true if the TextBox should be editable. |
Definition at line 519 of file textbox.cpp.
References mEditable.
void gcn::TextBox::setOpaque | ( | bool | opaque | ) | [virtual] |
Sets the TextBox to be opaque.
opaque | true if the TextBox should be opaque. |
Definition at line 540 of file textbox.cpp.
References mOpaque.
void gcn::TextBox::setText | ( | const std::string & | text | ) | [virtual] |
Sets the text.
text | the text of the TextBox. |
Definition at line 104 of file textbox.cpp.
References adjustSize(), mCaretColumn, mCaretRow, and mTextRows.
Referenced by TextBox().
void gcn::TextBox::setTextRow | ( | int | row, | |
const std::string & | text | |||
) | [virtual] |
Sets the text of a certain row in a TextBox.
row | the row number. | |
text | the text of a certain row in the TextBox. |
Definition at line 461 of file textbox.cpp.
References adjustSize(), mCaretColumn, mCaretRow, mTextRows, and setCaretColumn().