____                _       __
    / __ )____  _____   | |     / /___ ___________
   / __  / __ \/ ___/   | | /| / / __ `/ ___/ ___/
  / /_/ / /_/ (__  )    | |/ |/ / /_/ / /  (__  )
 /_____/\____/____/     |__/|__/\__,_/_/  /____/

       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"

gcn::TextField Class Reference

#include <textfield.h>

Inheritance diagram for gcn::TextField:

gcn::Widget gcn::MouseListener gcn::KeyListener

List of all members.

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


Detailed Description

A text field in which you can write or display a line of text.

Definition at line 68 of file textfield.h.


Constructor & Destructor Documentation

gcn::TextField::TextField (  ) 

gcn::TextField::TextField ( const std::string &  text  ) 

Constructor. Initializes the textfield with a given string.

Parameters:
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().


Member Function Documentation

void gcn::TextField::setText ( const std::string &  text  )  [virtual]

Sets the text.

Parameters:
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.

Returns:
the text of the TextField.

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.

Parameters:
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.

Parameters:
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.

Returns:
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.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
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().


Member Data Documentation

std::string gcn::TextField::mText [protected]

int gcn::TextField::mXScroll [protected]

Definition at line 168 of file textfield.h.

Referenced by draw(), fixScroll(), mouseMotion(), mousePress(), and TextField().

Definition at line 169 of file textfield.h.

Referenced by getTextSelectionPositions(), keyPress(), mouseMotion(), mousePress(), and TextField().


The documentation for this class was generated from the following files:

Generated on Sat Feb 21 00:28:27 2009 for Bos Wars by  doxygen 1.5.6