____ _ __
/ __ )____ _____ | | / /___ ___________
/ __ / __ \/ ___/ | | /| / / __ `/ ___/ ___/
/ /_/ / /_/ (__ ) | |/ |/ / /_/ / / (__ )
/_____/\____/____/ |__/|__/\__,_/_/ /____/
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 <textfield.h>

Public Member Functions | |
| TextField () | |
| TextField (const std::string &text) | |
| virtual void | setText (const std::string &text) |
| virtual const std::string & | getText () const |
| virtual void | drawCaret (Graphics *graphics, int x) |
| virtual void | adjustSize () |
| virtual void | adjustHeight () |
| virtual void | setCaretPosition (unsigned int position) |
| virtual unsigned int | getCaretPosition () const |
| Gets the currently selected text. | |
| virtual void | getTextSelectionPositions (unsigned int *first, unsigned int *len) |
| virtual void | fontChanged () |
| virtual void | draw (Graphics *graphics) |
| virtual void | drawBorder (Graphics *graphics) |
| virtual void | mousePress (int x, int y, int button) |
| virtual void | mouseMotion (int x, int y) |
| virtual bool | keyPress (const Key &key) |
Protected Member Functions | |
| void | fixScroll () |
Protected Attributes | |
| std::string | mText |
| int | mCaretPosition |
| int | mXScroll |
| int | mSelectStart |
| int | mSelectEndOffset |
Definition at line 68 of file textfield.h.
| gcn::TextField::TextField | ( | ) |
Default constructor.
Definition at line 67 of file textfield.cpp.
References gcn::Widget::addKeyListener(), gcn::Widget::addMouseListener(), adjustHeight(), mCaretPosition, mSelectEndOffset, mSelectStart, mXScroll, gcn::Widget::setBorderSize(), and gcn::Widget::setFocusable().
| gcn::TextField::TextField | ( | const std::string & | text | ) |
Constructor. Initializes the textfield with a given string.
| text | the initial text. |
Definition at line 82 of file textfield.cpp.
References gcn::Widget::addKeyListener(), gcn::Widget::addMouseListener(), adjustSize(), mCaretPosition, mSelectEndOffset, mSelectStart, mText, mXScroll, gcn::Widget::setBorderSize(), and gcn::Widget::setFocusable().
| void gcn::TextField::setText | ( | const std::string & | text | ) | [virtual] |
Sets the text.
| text | the new text in the TextField. |
Definition at line 99 of file textfield.cpp.
References mCaretPosition, and mText.
Referenced by keyPress().
| const std::string & gcn::TextField::getText | ( | ) | const [virtual] |
Gets the text.
Definition at line 448 of file textfield.cpp.
References mText.
| void gcn::TextField::drawCaret | ( | Graphics * | graphics, | |
| int | x | |||
| ) | [virtual] |
Draws the caret (the little marker in the text that shows where the letters you type will appear). Easily overloaded if you want to change the style of the caret.
| graphics | the Graphics object to draw with. | |
| x | the caret's x-position. |
Definition at line 176 of file textfield.cpp.
References gcn::Graphics::drawLine(), gcn::Widget::getForegroundColor(), gcn::Widget::getHeight(), and gcn::Graphics::setColor().
Referenced by draw().
| void gcn::TextField::adjustSize | ( | ) | [virtual] |
Adjusts the size of the TextField to fit the font size. The constructor taking a string uses this function to initialize the size of the TextField.
Definition at line 380 of file textfield.cpp.
References adjustHeight(), fixScroll(), gcn::Widget::getFont(), gcn::Widget::getWidth(), mText, and gcn::Widget::setWidth().
Referenced by TextField().
| void gcn::TextField::adjustHeight | ( | ) | [virtual] |
Adjusts the height of the text field to fit the font size. The height of the TextField is initialized with this function by the constructors.
Definition at line 388 of file textfield.cpp.
References gcn::Widget::getFont(), gcn::Widget::getHeight(), and gcn::Widget::setHeight().
Referenced by adjustSize(), and TextField().
| void gcn::TextField::setCaretPosition | ( | unsigned int | position | ) | [virtual] |
Sets the caret position.
| position | the caret position. |
Definition at line 415 of file textfield.cpp.
References fixScroll(), mCaretPosition, and mText.
| unsigned int gcn::TextField::getCaretPosition | ( | ) | const [virtual] |
Gets the currently selected text.
Gets the caret position.
Definition at line 429 of file textfield.cpp.
References mCaretPosition.
| void gcn::TextField::getTextSelectionPositions | ( | unsigned int * | first, | |
| unsigned int * | len | |||
| ) | [virtual] |
Definition at line 434 of file textfield.cpp.
References mSelectEndOffset, and mSelectStart.
Referenced by draw(), and keyPress().
| void gcn::TextField::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 453 of file textfield.cpp.
References fixScroll().
| void gcn::TextField::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 109 of file textfield.cpp.
References drawCaret(), gcn::Graphics::drawText(), gcn::Graphics::fillRectangle(), gcn::Widget::getBackgroundColor(), gcn::Widget::getFont(), gcn::Widget::getForegroundColor(), gcn::Font::getHeight(), gcn::Widget::getHeight(), getTextSelectionPositions(), gcn::Font::getWidth(), gcn::Widget::getWidth(), gcn::Widget::hasFocus(), mCaretPosition, mSelectEndOffset, mText, mXScroll, gcn::Graphics::setColor(), gcn::Graphics::setFont(), and y.
| void gcn::TextField::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 152 of file textfield.cpp.
References gcn::Color::a, gcn::Graphics::drawLine(), gcn::Widget::getBaseColor(), gcn::Widget::getBorderSize(), gcn::Widget::getHeight(), gcn::Widget::getWidth(), and gcn::Graphics::setColor().
| void gcn::TextField::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 textfield.cpp.
References fixScroll(), GetClipboard(), gcn::Widget::getFont(), gcn::Font::getStringIndexAt(), gcn::Widget::hasMouse(), keyPress(), gcn::MouseInput::LEFT, mCaretPosition, gcn::MouseInput::MIDDLE, mSelectEndOffset, mSelectStart, mText, and mXScroll.
| void gcn::TextField::mouseMotion | ( | int | x, | |
| int | y | |||
| ) | [virtual] |
Called when the mouse moves and the mouse is in the Widget area or if the Widget has focus.
| x | the x coordinate of the mouse relative to the Widget itself. | |
| y | the y coordinate of the mouse relative to the Widget itself. |
Reimplemented from gcn::MouseListener.
Definition at line 202 of file textfield.cpp.
References gcn::Widget::getFont(), gcn::Font::getStringIndexAt(), gcn::Widget::isDragged(), gcn::MouseInput::LEFT, mCaretPosition, gcn::Widget::mClickButton, mSelectEndOffset, mSelectStart, mText, mXScroll, and gcn::Widget::setDirty().
| bool gcn::TextField::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 212 of file textfield.cpp.
References gcn::Key::BACKSPACE, gcn::Key::DELETE, gcn::Key::END, gcn::Key::ENTER, fixScroll(), GCN_EXCEPTION, gcn::Widget::generateAction(), GetClipboard(), getTextSelectionPositions(), gcn::Key::getValue(), gcn::Key::HOME, gcn::Key::isCharacter(), gcn::Key::isShiftPressed(), gcn::Key::LEFT, mCaretPosition, mSelectEndOffset, mSelectStart, mText, gcn::Key::RIGHT, gcn::Widget::setDirty(), setText(), gcn::Key::toString(), UTF8GetNext(), and UTF8GetPrev().
Referenced by mousePress().
| void gcn::TextField::fixScroll | ( | ) | [protected] |
Scrolls the text horizontally so that the caret shows if needed.
Definition at line 393 of file textfield.cpp.
References gcn::Widget::getFont(), gcn::Widget::getWidth(), gcn::Font::getWidth(), gcn::Widget::hasFocus(), mCaretPosition, mText, and mXScroll.
Referenced by adjustSize(), fontChanged(), keyPress(), mousePress(), and setCaretPosition().
std::string gcn::TextField::mText [protected] |
Definition at line 166 of file textfield.h.
Referenced by adjustSize(), draw(), fixScroll(), getText(), keyPress(), mouseMotion(), mousePress(), setCaretPosition(), setText(), and TextField().
int gcn::TextField::mCaretPosition [protected] |
Definition at line 167 of file textfield.h.
Referenced by draw(), fixScroll(), getCaretPosition(), keyPress(), mouseMotion(), mousePress(), setCaretPosition(), setText(), and TextField().
int gcn::TextField::mXScroll [protected] |
Definition at line 168 of file textfield.h.
Referenced by draw(), fixScroll(), mouseMotion(), mousePress(), and TextField().
int gcn::TextField::mSelectStart [protected] |
Definition at line 169 of file textfield.h.
Referenced by getTextSelectionPositions(), keyPress(), mouseMotion(), mousePress(), and TextField().
int gcn::TextField::mSelectEndOffset [protected] |
Definition at line 170 of file textfield.h.
Referenced by draw(), getTextSelectionPositions(), keyPress(), mouseMotion(), mousePress(), and TextField().
1.5.6