GG
Public Types
GG::ListBox::Row Struct Reference

#include <ListBox.h>

Inheritance diagram for GG::ListBox::Row:
GG::Control GG::Wnd

List of all members.

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
Controloperator[] (std::size_t n) const
Controlat (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
ControlCreateControl (const std::string &str, const boost::shared_ptr< Font > &font, Clr color) const
ControlCreateControl (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)
ControlRemoveCell (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)

Additional Inherited Members

- Public Member Functions inherited from GG::Control
virtual void DropsAcceptable (DropsAcceptableIter first, DropsAcceptableIter last, const Pt &pt) const
Clr Color () const
bool Disabled () const
virtual void AcceptDrops (const std::vector< Wnd * > &wnds, const Pt &pt)
virtual void SetColor (Clr c)
virtual void Disable (bool b=true)
- Protected Member Functions inherited from GG::Control
virtual void MouseWheel (const Pt &pt, int move, Flags< ModKey > mod_keys)
virtual void KeyPress (Key key, boost::uint32_t key_code_point, Flags< ModKey > mod_keys)
virtual void KeyRelease (Key key, boost::uint32_t key_code_point, Flags< ModKey > mod_keys)
 Control ()
 Control (X x, Y y, X w, Y h, Flags< WndFlag > flags=INTERACTIVE)
- Protected Member Functions inherited from GG::Wnd
 Wnd ()
 Wnd (X x, Y y, X w, Y h, Flags< WndFlag > flags=INTERACTIVE|DRAGABLE)
DragDropRenderingState GetDragDropRenderingState () const
virtual void LButtonDown (const Pt &pt, Flags< ModKey > mod_keys)
virtual void LDrag (const Pt &pt, const Pt &move, Flags< ModKey > mod_keys)
virtual void LButtonUp (const Pt &pt, Flags< ModKey > mod_keys)
virtual void LClick (const Pt &pt, Flags< ModKey > mod_keys)
virtual void LDoubleClick (const Pt &pt, Flags< ModKey > mod_keys)
virtual void MButtonDown (const Pt &pt, Flags< ModKey > mod_keys)
virtual void MDrag (const Pt &pt, const Pt &move, Flags< ModKey > mod_keys)
virtual void MButtonUp (const Pt &pt, Flags< ModKey > mod_keys)
virtual void MClick (const Pt &pt, Flags< ModKey > mod_keys)
virtual void MDoubleClick (const Pt &pt, Flags< ModKey > mod_keys)
virtual void RButtonDown (const Pt &pt, Flags< ModKey > mod_keys)
virtual void RDrag (const Pt &pt, const Pt &move, Flags< ModKey > mod_keys)
virtual void RButtonUp (const Pt &pt, Flags< ModKey > mod_keys)
virtual void RClick (const Pt &pt, Flags< ModKey > mod_keys)
virtual void RDoubleClick (const Pt &pt, Flags< ModKey > mod_keys)
virtual void MouseEnter (const Pt &pt, Flags< ModKey > mod_keys)
virtual void MouseHere (const Pt &pt, Flags< ModKey > mod_keys)
virtual void MouseLeave ()
virtual void DragDropEnter (const Pt &pt, const std::map< Wnd *, Pt > &drag_drop_wnds, Flags< ModKey > mod_keys)
virtual void DragDropHere (const Pt &pt, const std::map< Wnd *, Pt > &drag_drop_wnds, Flags< ModKey > mod_keys)
virtual void DragDropLeave ()
virtual void GainingFocus ()
virtual void LosingFocus ()
virtual void TimerFiring (unsigned int ticks, Timer *timer)
virtual bool EventFilter (Wnd *w, const WndEvent &event)
void HandleEvent (const WndEvent &event)
void ForwardEventToParent ()
void BeginClipping ()
void EndClipping ()
void BeginNonclientClipping ()
void EndNonclientClipping ()
- Protected Attributes inherited from GG::Control
Clr m_color
bool m_disabled
- Protected Attributes inherited from GG::Wnd
bool m_done

Detailed Description

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.

Note:
The margin, column alignment, and width cell data are included so that each Row has all the necessary information with which to render itself (this is primarily needed to facilitate drag-and-drop); these data are duplicates of the margin, alignment, and column widths data found in the owning ListBox, and may be overwritten by the ListBox at any time.

Definition at line 147 of file ListBox.h.


Member Typedef Documentation

typedef std::string GG::ListBox::Row::SortKeyType

the type of key used to sort rows

Definition at line 162 of file ListBox.h.


Member Function Documentation

Control* GG::ListBox::Row::at ( std::size_t  n) const

returns the Control in the nth cell of this Row

Exceptions:
std::range_errorthrows when size() <= n
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.


The documentation for this struct was generated from the following file: