GG
Classes
GG::RadioButtonGroup Class Reference

#include <Button.h>

Inheritance diagram for GG::RadioButtonGroup:
GG::Control GG::Wnd

List of all members.

Classes

struct  ButtonSlot
 Encapsulates all data pertaining ot a single button in a RadioButtonGroup. More...

Signal Types

typedef boost::signal< void(std::size_t)> ButtonChangedSignalType

Structors

 RadioButtonGroup (X x, Y y, X w, Y h, Orientation orientation)
 RadioButtonGroup ()

Accessors

ButtonChangedSignalType ButtonChangedSignal
virtual Pt MinUsableSize () const
Orientation GetOrientation () const
bool Empty () const
std::size_t NumButtons () const
std::size_t CheckedButton () const
bool ExpandButtons () const
bool ExpandButtonsProportionally () const
bool RenderOutline () const
const std::vector< ButtonSlot > & ButtonSlots () const

Mutators

static const std::size_t NO_BUTTON
virtual void Render ()
void SetCheck (std::size_t index)
void DisableButton (std::size_t index, bool b=true)
void AddButton (StateButton *bn)
void AddButton (const std::string &text, const boost::shared_ptr< Font > &font, Flags< TextFormat > format, Clr color, Clr text_color=CLR_BLACK, Clr interior=CLR_ZERO, StateButtonStyle style=SBSTYLE_3D_RADIO)
void InsertButton (std::size_t index, StateButton *bn)
void InsertButton (std::size_t index, const std::string &text, const boost::shared_ptr< Font > &font, Flags< TextFormat > format, Clr color, Clr text_color=CLR_BLACK, Clr interior=CLR_ZERO, StateButtonStyle style=SBSTYLE_3D_RADIO)
void RemoveButton (StateButton *button)
void ExpandButtons (bool expand)
void ExpandButtonsProportionally (bool proportional)
void RenderOutline (bool render_outline)
void RaiseCheckedButton ()

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

This is a class that encapsulates multiple GG::StateButtons into a single radio-button control.

RadioButtonGroup emits a signal whenever its currently-checked button changes. The signal indicates which button has been pressed, by passing the index of the button; the currently-checked button index is NO_BUTTON when no button is checked. Any StateButton-derived controls can be used in a RadioButtonGroup.

Definition at line 216 of file Button.h.


Member Function Documentation

virtual Pt GG::RadioButtonGroup::MinUsableSize ( ) const
virtual

Returns the size of the minimum bounding box that can enclose the Wnd and still show all of its elements, plus enough room for interaction with those elements (if applicable). For example, a TextControl's MinUsableSize() is just the area of its text, and a Scroll's MinUsableSize() is the combined sizes of its up-button, down-button, and tab (plus a bit of room in which to drag the tab).

Reimplemented from GG::Wnd.

Orientation GG::RadioButtonGroup::GetOrientation ( ) const

Returns the orientation of the buttons in the group

bool GG::RadioButtonGroup::Empty ( ) const

Returns true iff NumButtons() == 0

std::size_t GG::RadioButtonGroup::NumButtons ( ) const

Returns the number of buttons in this control

std::size_t GG::RadioButtonGroup::CheckedButton ( ) const

Returns the index of the currently checked button, or NO_BUTTON if none are checked

bool GG::RadioButtonGroup::ExpandButtons ( ) const

Returns true iff the buttons in the group are to be expanded to fill the group's available space. If false, this indicates that the buttons are to be spaced out evenly, and that they should all be their MinUsableSize()s.

bool GG::RadioButtonGroup::ExpandButtonsProportionally ( ) const

Returns true iff the buttons in the group are to be expanded in proportion to their initial sizes. If false, this indicates that the buttons are to be expanded evenly. Note that this has no effect if ExpandButtons() is false.

bool GG::RadioButtonGroup::RenderOutline ( ) const

Returns true iff this button group will render an outline of itself; this is sometimes useful for debugging purposes

virtual void GG::RadioButtonGroup::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.

void GG::RadioButtonGroup::SetCheck ( std::size_t  index)

Checks the index-th button, and unchecks all others. If there is no index-th button, they are all unchecked, and the currently-checked button index is set to NO_BUTTON.

void GG::RadioButtonGroup::DisableButton ( std::size_t  index,
bool  b = true 
)

Disables (with b == true) or enables (with b == false) the index-th button, if it exists. If the button exists, is being disabled, and is the one currently checked, the currently-checked button index is set to NO_BUTTON.

void GG::RadioButtonGroup::AddButton ( StateButton bn)

Adds a button to the end of the group.

void GG::RadioButtonGroup::AddButton ( const std::string &  text,
const boost::shared_ptr< Font > &  font,
Flags< TextFormat >  format,
Clr  color,
Clr  text_color = CLR_BLACK,
Clr  interior = CLR_ZERO,
StateButtonStyle  style = SBSTYLE_3D_RADIO 
)

creates a StateButton from the given parameters and adds it to the end of the group.

void GG::RadioButtonGroup::InsertButton ( std::size_t  index,
StateButton bn 
)

Adds a button to the group at position index. index must be in the range [0, NumButtons()].

void GG::RadioButtonGroup::InsertButton ( std::size_t  index,
const std::string &  text,
const boost::shared_ptr< Font > &  font,
Flags< TextFormat >  format,
Clr  color,
Clr  text_color = CLR_BLACK,
Clr  interior = CLR_ZERO,
StateButtonStyle  style = SBSTYLE_3D_RADIO 
)

Creates a StateButton from the given parameters and adds it to the group at position index. index must be in the range [0, NumButtons()].

void GG::RadioButtonGroup::RemoveButton ( StateButton button)

Removes button from the group. If button is at index i, and is the currently-checked button, the currently-checked button index is set to NO_BUTTON. If the currently-checked button is after i, the currently-checked button index will be decremented. In either case, a ButtonChangedSignal will be emitted. Note that this causes the layout to relinquish responsibility for wnd's memory management.

void GG::RadioButtonGroup::ExpandButtons ( bool  expand)

Set this to true if the buttons in the group are to be expanded to fill the group's available space. If set to false, the buttons are to be spaced out evenly, and they will all be at least their MinUsableSize()s.

void GG::RadioButtonGroup::ExpandButtonsProportionally ( bool  proportional)

Set this to true if the buttons in the group are to be expanded in proportion to their initial sizes. If set to false, this indicates that the buttons are to be expanded evenly. Note that this has no effect if ExpandButtons() is false.

void GG::RadioButtonGroup::RenderOutline ( bool  render_outline)

Set this to true if this button group should render an outline of itself; this is sometimes useful for debugging purposes

void GG::RadioButtonGroup::RaiseCheckedButton ( )

Raises the currently-selected button to the top of the child z-order. If there is no currently-selected button, no action is taken.


Member Data Documentation

const std::size_t GG::RadioButtonGroup::NO_BUTTON
static

The invalid button position index that there is no currently-checked button.

Definition at line 326 of file Button.h.


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