gcn::ListBox Class Reference

#include <listbox.hpp>

Inheritance diagram for gcn::ListBox:

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

Detailed Description

A ListBox displaying a list in which elemets can be selected.

Only one element can be selected at time. ListBox uses a ListModel to handle the list. To be able to use ListBox you must give ListBox an implemented ListModel which represents your list.

Definition at line 74 of file listbox.hpp.

Public Member Functions

 ListBox ()
 Constructor.
 ListBox (ListModel *listModel)
 Constructor.
virtual ~ListBox ()
 Destructor.
virtual int getSelected ()
 Gets the ListModel index of the selected element.
virtual void setSelected (int selected)
 Sets the ListModel index of the selected element.
virtual void setListModel (ListModel *listModel)
 Sets the ListModel to use.
virtual ListModelgetListModel ()
 Gets the ListModel used.
virtual void adjustSize ()
 Adjusts the size of the ListBox to fit the font used.
virtual bool isWrappingKeyboardSelection ()
 Checks whether the ListBox wraps when selecting items with keyboard.
virtual void setWrappingKeyboardSelection (bool wrapping)
 Sets the ListBox to wrap or not when selecting items with keyboard.
virtual void draw (Graphics *graphics)
 Draws the Widget.
virtual void drawBorder (Graphics *graphics)
 Draws the Widget border.
virtual void logic ()
 Called for all Widgets in the gui each time Gui::logic is called.
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 Attributes

ListModelmListModel
int mSelected
bool mWrappingKeyboardSelection


Constructor & Destructor Documentation

gcn::ListBox::ListBox ( ListModel listModel  ) 

Constructor.

Parameters:
listModel the ListModel to use.

Definition at line 84 of file listbox.cpp.

References gcn::Widget::addKeyListener(), gcn::Widget::addMouseListener(), mSelected, mWrappingKeyboardSelection, gcn::Widget::setFocusable(), setListModel(), and gcn::Widget::setWidth().


Member Function Documentation

void gcn::ListBox::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 96 of file listbox.cpp.

References gcn::Graphics::drawRectangle(), gcn::Graphics::drawText(), gcn::Graphics::fillRectangle(), gcn::Widget::getBackgroundColor(), gcn::ListModel::getElementAt(), gcn::Widget::getFont(), gcn::Widget::getForegroundColor(), gcn::Font::getHeight(), gcn::Widget::getHeight(), gcn::ListModel::getNumberOfElements(), gcn::Widget::getWidth(), mListModel, mSelected, gcn::Graphics::setColor(), and gcn::Graphics::setFont().

void gcn::ListBox::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 130 of file listbox.cpp.

References gcn::Color::a, gcn::Graphics::drawLine(), gcn::Widget::getBaseColor(), gcn::Widget::getBorderSize(), gcn::Widget::getHeight(), gcn::Widget::getWidth(), and gcn::Graphics::setColor().

ListModel * gcn::ListBox::getListModel (  )  [virtual]

Gets the ListModel used.

Returns:
the ListModel used.

Definition at line 259 of file listbox.cpp.

References mListModel.

Referenced by gcn::DropDown::draw(), gcn::DropDown::getListModel(), and keyPress().

int gcn::ListBox::getSelected (  )  [virtual]

Gets the ListModel index of the selected element.

Returns:
the ListModel index of the selected element.

Definition at line 159 of file listbox.cpp.

References mSelected.

Referenced by gcn::DropDown::draw(), gcn::DropDown::DropDown(), gcn::DropDown::getSelected(), keyPress(), and gcn::DropDown::setListModel().

bool gcn::ListBox::isWrappingKeyboardSelection (  )  [virtual]

Checks whether the ListBox wraps when selecting items with keyboard.

Wrapping means that if up is pressed and the first item is selected, the last item will get selected. If down is pressed and the last item is selected, the first item will get selected.

Returns:
true if wrapping, fasle otherwise.

Definition at line 272 of file listbox.cpp.

References mWrappingKeyboardSelection.

Referenced by keyPress().

void gcn::ListBox::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 207 of file listbox.cpp.

References gcn::Widget::generateAction(), getListModel(), getSelected(), gcn::Key::getValue(), isWrappingKeyboardSelection(), mSelected, and setSelected().

void gcn::ListBox::logic (  )  [virtual]

Called for all Widgets in the gui each time Gui::logic is called.

You can do logic stuff here like playing an animation.

See also:
Gui

Reimplemented from gcn::Widget.

Definition at line 154 of file listbox.cpp.

References adjustSize().

void gcn::ListBox::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 243 of file listbox.cpp.

References gcn::Widget::generateAction(), gcn::Widget::getFont(), gcn::Widget::getHeight(), gcn::Widget::hasMouse(), and setSelected().

void gcn::ListBox::setListModel ( ListModel listModel  )  [virtual]

Sets the ListModel to use.

Parameters:
listModel the ListModel to use.

Definition at line 252 of file listbox.cpp.

References adjustSize(), mListModel, and mSelected.

Referenced by ListBox(), and gcn::DropDown::setListModel().

void gcn::ListBox::setSelected ( int  selected  )  [virtual]

Sets the ListModel index of the selected element.

Parameters:
selected the ListModel index of the selected element.

Definition at line 164 of file listbox.cpp.

References gcn::Widget::getFont(), gcn::Font::getHeight(), gcn::ListModel::getNumberOfElements(), gcn::Widget::getParent(), gcn::Rectangle::height, mListModel, mSelected, gcn::BasicContainer::showWidgetPart(), and gcn::Rectangle::y.

Referenced by gcn::DropDown::DropDown(), keyPress(), mousePress(), gcn::DropDown::setListModel(), and gcn::DropDown::setSelected().

void gcn::ListBox::setWrappingKeyboardSelection ( bool  wrapping  )  [virtual]

Sets the ListBox to wrap or not when selecting items with keyboard.

Wrapping means that if up is pressed and the first item is selected, the last item will get selected. If down is pressed and the last item is selected, the first item will get selected.

Definition at line 277 of file listbox.cpp.

References mWrappingKeyboardSelection.


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