GG
|
A single item in a listbox. More...
#include <ListBox.h>
Public Types | |
typedef std::string | SortKeyType |
Structors | |
Row () | |
Row (X w, Y h, const std::string &drag_drop_data_type, Alignment align=ALIGN_VCENTER, unsigned int margin=2) | |
virtual | ~Row () |
Accessors | |
SortKeyType | SortKey (std::size_t column) const |
std::size_t | size () const |
bool | empty () const |
Control * | operator[] (std::size_t n) const |
Control * | at (std::size_t n) const |
Alignment | RowAlignment () const |
Alignment | ColAlignment (std::size_t n) const |
X | ColWidth (std::size_t n) const |
unsigned int | Margin () const |
Control * | CreateControl (const std::string &str, const boost::shared_ptr< Font > &font, Clr color) const |
Control * | CreateControl (const SubTexture &st) const |
Mutators | |
virtual void | Render () |
void | push_back (Control *c) |
void | push_back (const std::string &str, const boost::shared_ptr< Font > &font, Clr color=CLR_BLACK) |
void | push_back (const std::string &str, const std::string &font_filename, unsigned int pts, Clr color=CLR_BLACK) |
void | push_back (const SubTexture &st) |
void | clear () |
void | resize (std::size_t n) |
void | SetCell (std::size_t n, Control *c) |
Control * | RemoveCell (std::size_t n) |
void | SetRowAlignment (Alignment align) |
void | SetColAlignment (std::size_t n, Alignment align) |
void | SetColWidth (std::size_t n, X width) |
void | SetColAlignments (const std::vector< Alignment > &aligns) |
void | SetColWidths (const std::vector< X > &widths) |
void | SetMargin (unsigned int margin) |
A single item in a listbox.
A Row is primarily a container for Controls. Each cell in a Row contains pointer to a Control-derived object. As always, each such Control can be connected to arbitrary functionality using signals and slots. During dragging and dropping, the data type associated with a Row (DragDropDataType()) indicates to potential drop targets what type of data the Row represents; the target may accept or decline the drop based on the data type. Rows are stored in ListBoxes by reference, not value; this means that you can subclass from Row to create your own custom Row types. This is the recommended method for associating a row with the non-GUI object that it represents. Note that all subclasses of Row must declare a SortKeyType, if it differs from std::string, and must provide a SortKey() method if it should differ from the default SortKey() that Row provides. Note that SortKey is not virtual; this part of its interface is used for compile-time polymorphism -- whatever sorter is used with a Row subclass must know the most-derived type of the Row subclass.
typedef std::string GG::ListBox::Row::SortKeyType |
Control* GG::ListBox::Row::at | ( | std::size_t | n | ) | const |
virtual void GG::ListBox::Row::Render | ( | ) | [virtual] |
Draws this Wnd. Note that Wnds being dragged for a drag-and-drop operation are rendered twice -- once in-place as normal, once in the location of the drag operation, attached to the cursor. Such Wnds may wish to render themselves differently in those two cases. To determine which render is being performed, they can call GUI::GetGUI()->RenderingDragDropWnds().
Implements GG::Control.