#include <listbox.hpp>
Inheritance diagram for gcn::ListBox:
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 ListModel * | getListModel () |
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 | |
ListModel * | mListModel |
int | mSelected |
bool | mWrappingKeyboardSelection |
gcn::ListBox::ListBox | ( | ListModel * | listModel | ) |
Constructor.
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().
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.