gcn::TextBox Class Reference

#include <textbox.hpp>

Inheritance diagram for gcn::TextBox:

gcn::Widget gcn::MouseListener gcn::KeyListener List of all members.

Detailed Description

A TextBox in which you can write and/or display a lines of text.

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


Constructor & Destructor Documentation

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

Constructor.

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


Member Function Documentation

void gcn::TextBox::addRow ( const std::string  row  )  [virtual]

Adds a text row to the text.

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

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

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

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

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

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

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

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

Returns:
the text of the TextBox.

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.

Returns:
the text of a certain row in the TextBox.

Definition at line 456 of file textbox.cpp.

References mTextRows.

bool gcn::TextBox::isEditable (  )  const [virtual]

Checks if the TextBox is editable.

Returns:
true it the TextBox is editable.

Definition at line 524 of file textbox.cpp.

References mEditable.

Referenced by draw().

bool gcn::TextBox::isOpaque (  )  [virtual]

Checks if the TextBox is opaque.

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

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

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

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

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

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

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

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

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

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

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


The documentation for this class was generated from the following files:
Generated on Sat Jul 29 19:38:49 2006 for Guichan by  doxygen 1.4.7