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

       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::TextBox Class Reference

#include <textbox.h>

Inheritance diagram for gcn::TextBox:

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

List of all members.

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


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 73 of file textbox.h.


Constructor & Destructor Documentation

gcn::TextBox::TextBox (  ) 

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


Member Function Documentation

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

Sets the text.

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

Gets the text.

Returns:
the text of the TextBox.

Definition at line 525 of file textbox.cpp.

References int(), and 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 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.

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

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

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

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

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

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

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

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

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

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

Checks if the TextBox is editable.

Returns:
true it the TextBox is editable.

Definition at line 575 of file textbox.cpp.

References mEditable.

Referenced by draw().

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 570 of file textbox.cpp.

References mEditable.

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

Adds a text row to the text.

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

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

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

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

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

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

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


Member Data Documentation

std::vector<std::string> gcn::TextBox::mTextRows [protected]

int gcn::TextBox::mCaretColumn [protected]

int gcn::TextBox::mCaretRow [protected]

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


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