GG
Public Types | List of all members
GG::ListBox::Row Struct Reference

#include <ListBox.h>

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

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)
 
- Public Member Functions inherited from GG::Wnd
virtual ~Wnd ()
 
bool Interactive () const
 
bool RepeatButtonDown () const
 
bool Dragable () const
 
bool Resizable () const
 
bool OnTop () const
 
bool Modal () const
 
ChildClippingMode GetChildClippingMode () const
 
bool NonClientChild () const
 
bool Visible () const
 
const std::string & Name () const
 
const std::string & DragDropDataType () const
 
Pt UpperLeft () const
 
Pt LowerRight () const
 
Pt RelativeUpperLeft () const
 
Pt RelativeLowerRight () const
 
X Width () const
 
Y Height () const
 
int ZOrder () const
 
Pt Size () const
 
Pt MinSize () const
 
Pt MaxSize () const
 
virtual Pt MinUsableSize () const
 
virtual Pt ClientUpperLeft () const
 
virtual Pt ClientLowerRight () const
 
Pt ClientSize () const
 
X ClientWidth () const
 
Y ClientHeight () const
 
Pt ScreenToWindow (const Pt &pt) const
 
Pt ScreenToClient (const Pt &pt) const
 
virtual bool InWindow (const Pt &pt) const
 
virtual bool InClient (const Pt &pt) const
 
const std::list< Wnd * > & Children () const
 
WndParent () const
 
WndRootParent () const
 
LayoutGetLayout () const
 
LayoutContainingLayout () const
 
const std::vector
< BrowseInfoMode > & 
BrowseModes () const
 
const std::string & BrowseInfoText (std::size_t mode) const
 
const boost::shared_ptr
< StyleFactory > & 
GetStyleFactory () const
 
virtual WndRegion WindowRegion (const Pt &pt) const
 
void SetDragDropDataType (const std::string &data_type)
 
virtual void StartingChildDragDrop (const Wnd *wnd, const Pt &offset)
 
virtual void CancellingChildDragDrop (const std::vector< const Wnd * > &wnds)
 
virtual void ChildrenDraggedAway (const std::vector< Wnd * > &wnds, const Wnd *destination)
 
void SetName (const std::string &name)
 
void Hide (bool children=true)
 
void Show (bool children=true)
 
virtual void ModalInit ()
 
void SetChildClippingMode (ChildClippingMode mode)
 
void NonClientChild (bool b)
 
void MoveTo (const Pt &pt)
 
void OffsetMove (const Pt &pt)
 
virtual void SizeMove (const Pt &ul, const Pt &lr)
 
void Resize (const Pt &sz)
 
void SetMinSize (const Pt &sz)
 
void SetMaxSize (const Pt &sz)
 
void AttachChild (Wnd *wnd)
 
void MoveChildUp (Wnd *wnd)
 
void MoveChildDown (Wnd *wnd)
 
void DetachChild (Wnd *wnd)
 
void DetachChildren ()
 
void DeleteChild (Wnd *wnd)
 
void DeleteChildren ()
 
void InstallEventFilter (Wnd *wnd)
 
void RemoveEventFilter (Wnd *wnd)
 
void HorizontalLayout ()
 
void VerticalLayout ()
 
void GridLayout ()
 
void SetLayout (Layout *layout)
 
void RemoveLayout ()
 
LayoutDetachLayout ()
 
void SetLayoutBorderMargin (unsigned int margin)
 
void SetLayoutCellMargin (unsigned int margin)
 
virtual bool Run ()
 
void EndRun ()
 
void SetBrowseModeTime (unsigned int time, std::size_t mode=0)
 
void SetBrowseInfoWnd (const boost::shared_ptr< BrowseInfoWnd > &wnd, std::size_t mode=0)
 
void ClearBrowseInfoWnd (std::size_t mode=0)
 
void SetBrowseText (const std::string &text, std::size_t mode=0)
 
void SetBrowseModes (const std::vector< BrowseInfoMode > &modes)
 
void SetStyleFactory (const boost::shared_ptr< StyleFactory > &factory)
 
 GG_ABSTRACT_EXCEPTION (Exception)
 
 GG_CONCRETE_EXCEPTION (BadLayout, GG::Wnd, Exception)
 
- Static Public Member Functions inherited from GG::Wnd
static unsigned int DefaultBrowseTime ()
 
static void SetDefaultBrowseTime (unsigned int time)
 
static const boost::shared_ptr
< BrowseInfoWnd > & 
DefaultBrowseInfoWnd ()
 
static void SetDefaultBrowseInfoWnd (const boost::shared_ptr< BrowseInfoWnd > &browse_info_wnd)
 
- Protected Types inherited from GG::Wnd
enum  DragDropRenderingState {
  NOT_DRAGGED,
  IN_PLACE_COPY,
  DRAGGED_OVER_UNACCEPTING_DROP_TARGET,
  DRAGGED_OVER_ACCEPTING_DROP_TARGET
}
 
- 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 Attributes inherited from GG::Control
Clr m_color
 
bool m_disabled
 

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: