____ _ __
/ __ )____ _____ | | / /___ ___________
/ __ / __ \/ ___/ | | /| / / __ `/ ___/ ___/
/ /_/ / /_/ (__ ) | |/ |/ / /_/ / / (__ )
/_____/\____/____/ |__/|__/\__,_/_/ /____/
A futuristic real-time strategy game.
This file is part of Bos Wars.
(C) Copyright 2001-2007 by the Bos Wars and Stratagus Project.
Distributed under the "GNU General Public License"#include <textbox.h>

Public Member Functions | |
| TextBox () | |
| TextBox (const std::string &text) | |
| virtual void | setText (const std::string &text) |
| virtual std::string | getText () const |
| virtual const std::string & | getTextRow (int row) const |
| virtual void | setTextRow (int row, const std::string &text) |
| virtual unsigned int | getNumberOfRows () const |
| virtual unsigned int | getCaretPosition () const |
| virtual void | setCaretPosition (unsigned int position) |
| virtual unsigned int | getCaretRow () const |
| virtual void | setCaretRow (int row) |
| virtual unsigned int | getCaretColumn () const |
| virtual void | setCaretColumn (int column) |
| virtual void | setCaretRowColumn (int row, int column) |
| virtual void | scrollToCaret () |
| virtual bool | isEditable () const |
| virtual void | setEditable (bool editable) |
| virtual void | addRow (const std::string row) |
| virtual bool | isOpaque () |
| virtual void | setOpaque (bool opaque) |
| virtual void | draw (Graphics *graphics) |
| virtual void | drawBorder (Graphics *graphics) |
| virtual void | fontChanged () |
| virtual bool | keyPress (const Key &key) |
| virtual void | mousePress (int x, int y, int button) |
Protected Member Functions | |
| virtual void | drawCaret (Graphics *graphics, int x, int y) |
| virtual void | adjustSize () |
Protected Attributes | |
| std::vector< std::string > | mTextRows |
| int | mCaretColumn |
| int | mCaretRow |
| bool | mEditable |
| bool | mOpaque |
NOTE: A plain TextBox is really uggly and looks much better inside a ScrollArea.
Definition at line 73 of file textbox.h.
| gcn::TextBox::TextBox | ( | ) |
Constructor.
Definition at line 71 of file textbox.cpp.
References gcn::Widget::addKeyListener(), gcn::Widget::addMouseListener(), adjustSize(), mCaretColumn, mCaretRow, mEditable, mOpaque, gcn::Widget::setBorderSize(), and gcn::Widget::setFocusable().
| gcn::TextBox::TextBox | ( | const std::string & | text | ) |
Constructor.
| text | the text of the TextBox. |
Definition at line 86 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::setText | ( | const std::string & | text | ) | [virtual] |
Sets the text.
| text | the text of the TextBox. |
Definition at line 103 of file textbox.cpp.
References adjustSize(), mCaretColumn, mCaretRow, and mTextRows.
Referenced by TextBox().
| std::string gcn::TextBox::getText | ( | ) | const [virtual] |
| const std::string & gcn::TextBox::getTextRow | ( | int | row | ) | const [virtual] |
Gets the row of a text.
Definition at line 503 of file textbox.cpp.
References mTextRows.
| 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 508 of file textbox.cpp.
References adjustSize(), mCaretColumn, mCaretRow, mTextRows, and setCaretColumn().
| unsigned int gcn::TextBox::getNumberOfRows | ( | ) | const [virtual] |
Gets the number of rows in the text.
Definition at line 520 of file textbox.cpp.
References mTextRows.
| unsigned int gcn::TextBox::getCaretPosition | ( | ) | const [virtual] |
Gets the caret position in the text.
Definition at line 441 of file textbox.cpp.
References mCaretColumn, mCaretRow, and mTextRows.
| 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 418 of file textbox.cpp.
References int(), mCaretColumn, mCaretRow, and mTextRows.
| unsigned int gcn::TextBox::getCaretRow | ( | ) | const [virtual] |
Gets the row the caret is in in the text.
Definition at line 476 of file textbox.cpp.
References mCaretRow.
| 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 459 of file textbox.cpp.
References mCaretColumn, mCaretRow, mTextRows, and setCaretColumn().
Referenced by keyPress(), and setCaretRowColumn().
| unsigned int gcn::TextBox::getCaretColumn | ( | ) | const [virtual] |
Gets the column the caret is in in the text.
Definition at line 498 of file textbox.cpp.
References mCaretColumn.
| 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 481 of file textbox.cpp.
References gcn::FindNext(), mCaretColumn, mCaretRow, and mTextRows.
Referenced by setCaretRow(), setCaretRowColumn(), and setTextRow().
| 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 453 of file textbox.cpp.
References setCaretColumn(), and setCaretRow().
| void gcn::TextBox::scrollToCaret | ( | ) | [virtual] |
Scrolls the text to the caret if the TextBox is in a ScrollArea.
Definition at line 550 of file textbox.cpp.
References gcn::Widget::getFont(), gcn::Font::getHeight(), gcn::Widget::getParent(), gcn::Font::getWidth(), gcn::Rectangle::height, mCaretColumn, mCaretRow, mTextRows, gcn::ScrollArea::scrollToRectangle(), gcn::Rectangle::width, gcn::Rectangle::x, and gcn::Rectangle::y.
Referenced by keyPress().
| bool gcn::TextBox::isEditable | ( | ) | const [virtual] |
| 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 570 of file textbox.cpp.
References mEditable.
| void gcn::TextBox::addRow | ( | const std::string | row | ) | [virtual] |
Adds a text row to the text.
| row | a row. |
Definition at line 580 of file textbox.cpp.
References adjustSize(), and mTextRows.
| bool gcn::TextBox::isOpaque | ( | ) | [virtual] |
Checks if the TextBox is opaque
Definition at line 586 of file textbox.cpp.
References mOpaque.
| void gcn::TextBox::setOpaque | ( | bool | opaque | ) | [virtual] |
Sets the TextBox to be opaque.
| opaque | true if the TextBox should be opaque. |
Definition at line 591 of file textbox.cpp.
References mOpaque.
| 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 133 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(), gcn::Widget::hasFocus(), isEditable(), mCaretColumn, mCaretRow, mOpaque, mTextRows, gcn::Graphics::setColor(), and gcn::Graphics::setFont().
| void gcn::TextBox::drawBorder | ( | Graphics * | graphics | ) | [virtual] |
Draws a 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 158 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::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 545 of file textbox.cpp.
References adjustSize().
| bool 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 217 of file textbox.cpp.
References adjustSize(), gcn::Key::BACKSPACE, gcn::Key::DELETE, gcn::Key::DOWN, gcn::Key::END, gcn::Key::ENTER, GetClipboard(), gcn::BasicContainer::getDrawSize(), gcn::Widget::getFont(), gcn::Font::getHeight(), gcn::Widget::getParent(), gcn::Key::getValue(), gcn::Key::HOME, int(), gcn::Key::isCharacter(), gcn::Key::LEFT, mCaretColumn, mCaretRow, mEditable, mTextRows, gcn::Key::PAGE_DOWN, gcn::Key::PAGE_UP, gcn::Key::RIGHT, scrollToCaret(), setCaretRow(), gcn::Key::TAB, gcn::Key::toString(), gcn::Key::UP, UTF8GetNext(), and UTF8GetPrev().
Referenced by mousePress().
| 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 181 of file textbox.cpp.
References GetClipboard(), gcn::Widget::getFont(), gcn::Font::getHeight(), gcn::Font::getStringIndexAt(), gcn::Widget::hasMouse(), keyPress(), gcn::MouseInput::LEFT, mCaretColumn, mCaretRow, gcn::MouseInput::MIDDLE, and mTextRows.
| 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 175 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::adjustSize | ( | ) | [protected, virtual] |
Adjusts the TextBox size to fit the font size.
Definition at line 401 of file textbox.cpp.
References gcn::Widget::getFont(), gcn::Widget::getHeight(), gcn::Font::getWidth(), mTextRows, gcn::Widget::setHeight(), and gcn::Widget::setWidth().
Referenced by addRow(), fontChanged(), keyPress(), setText(), setTextRow(), and TextBox().
std::vector<std::string> gcn::TextBox::mTextRows [protected] |
Definition at line 251 of file textbox.h.
Referenced by addRow(), adjustSize(), draw(), getCaretPosition(), getNumberOfRows(), getText(), getTextRow(), keyPress(), mousePress(), scrollToCaret(), setCaretColumn(), setCaretPosition(), setCaretRow(), setText(), and setTextRow().
int gcn::TextBox::mCaretColumn [protected] |
Definition at line 252 of file textbox.h.
Referenced by draw(), getCaretColumn(), getCaretPosition(), keyPress(), mousePress(), scrollToCaret(), setCaretColumn(), setCaretPosition(), setCaretRow(), setText(), setTextRow(), and TextBox().
int gcn::TextBox::mCaretRow [protected] |
Definition at line 253 of file textbox.h.
Referenced by draw(), getCaretPosition(), getCaretRow(), keyPress(), mousePress(), scrollToCaret(), setCaretColumn(), setCaretPosition(), setCaretRow(), setText(), setTextRow(), and TextBox().
bool gcn::TextBox::mEditable [protected] |
Definition at line 254 of file textbox.h.
Referenced by isEditable(), keyPress(), setEditable(), and TextBox().
bool gcn::TextBox::mOpaque [protected] |
Definition at line 255 of file textbox.h.
Referenced by draw(), isOpaque(), setOpaque(), and TextBox().
1.5.6