GG: GG::Spin< T > Class Template Reference

GG

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

List of all members
GG::Spin< T > Class Template Reference

`#include <Spin.h>`

Inheritance diagram for GG::Spin< T >:

## Signal Types
typedef boost::signal< void(T)> | ValueChangedSignalType

## Structors
| Spin (X x, Y y, X w, T value, T step, T min, T max, bool edits, const boost::shared_ptr< Font > &font, Clr color, Clr text_color=CLR_BLACK, Clr interior=CLR_ZERO, Flags< WndFlag > flags=INTERACTIVE)
| ~Spin ()
| Spin ()

## Accessors
ValueChangedSignalType | ValueChangedSignal
virtual Pt | MinUsableSize () const
T | Value () const
T | StepSize () const
T | MinValue () const
T | MaxValue () const
bool | Editable () const
X | ButtonWidth () const
Clr | TextColor () const
Clr | InteriorColor () const
Clr | HiliteColor () const
Clr | SelectedTextColor () const
Button * | UpButton () const
Button * | DownButton () const
Edit * | GetEdit () const

## Mutators
virtual void | Render ()
virtual void | SizeMove (const Pt &ul, const Pt &lr)
virtual void | Disable (bool b=true)
virtual void | SetColor (Clr c)
void | Incr ()
void | Decr ()
void | SetValue (T value)
void | SetStepSize (T step)
void | SetMinValue (T value)
void | SetMaxValue (T value)
void | AllowEdits (bool b=true)
void | SetButtonWidth (X width)
void | SetTextColor (Clr c)
void | SetInteriorColor (Clr c)
void | SetHiliteColor (Clr c)
void | SetSelectedTextColor (Clr c)
virtual void | KeyPress (Key key, boost::uint32_t key_code_point, Flags< ModKey > mod_keys)
virtual void | MouseWheel (const Pt &pt, int move, Flags< ModKey > mod_keys)
virtual bool | EventFilter (Wnd *w, const WndEvent &event)

## Additional Inherited Members
Public Types inherited from GG::Wnd
enum | ChildClippingMode { DontClip, ClipToClient, ClipToWindow, ClipToClientAndWindowSeparately }
typedef std::map< const Wnd *, bool >::iterator | DropsAcceptableIter
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)
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 | 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
Wnd * | Parent () const
Wnd * | RootParent () const
Layout * | GetLayout () const
Layout * | ContainingLayout () 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)
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 ()
Layout * | DetachLayout ()
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 | 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

### template<class T>
class GG::Spin< T >

A spin box control.

This control class is templated so that arbitrary data types can be used with Spin. All the built-in numeric types are supported by the code here. If you want to use some other type, such as an enum type, you need to define operator+(), operator-(), and template specializations of spin_details::mod() and spin_details::div(). Spin controls are optionally directly editable by the user. When the user inputs a value that is not valid for the Spin's parameters (not on a step boundary, or outside the allowed range), the input gets locked to the nearest valid value. The user is responsible for selecting a min, max, and step size that make sense. For instance, min = 0, max = 4, step = 3 may produce odd results if the user increments all the way to the top, then back down, to produce the sequence 0, 3, 4, 1, 0. To avoid this, choose the values so that (max

- min) mod step == 0. It is possible to provide custom buttons for a Spin to use; if you choose to add custom buttons, make sure they look alright at arbitrary sizes, and note that Spin buttons are always H wide by H/2 tall, where H is the height of the Spin, less the thickness of the Spin's border.

Definition at line 73 of file Spin.h.

## Constructor & Destructor Documentation

template<class T >

GG::Spin< T >::Spin | ( | X | x,
|  | Y | y,
|  | X | w,
|  | T | value,
|  | T | step,
|  | T | min,
|  | T | max,
|  | bool | edits,
|  | const boost::shared_ptr< Font > & | font,
|  | Clr | color,
|  | Clr | text_color = `CLR_BLACK`,
|  | Clr | interior = `CLR_ZERO`,
|  | Flags< WndFlag > | flags = `INTERACTIVE`
| ) |  |

Ctor that does not required height. Height is determined from the font and point size used.

Definition at line 200 of file Spin.h.

References GG::Connect(), and GG::Spin< T >::ValueChangedSignal.

## Member Function Documentation

template<class T >

Pt GG::Spin< T >::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.

Definition at line 224 of file Spin.h.

References GG::Pt::x, and GG::Pt::y.

template<class T >

void GG::Spin< T >::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.

Definition at line 274 of file Spin.h.

References GG::BeveledRectangle(), and GG::DisabledColor().

template<class T >

void GG::Spin< T >::SizeMove | ( | const Pt & | ul,
|  | const Pt & | lr
| ) |  |
| virtual

Resizes and/or moves window to new upper-left and lower right boundaries.

Reimplemented from GG::Wnd.

Definition at line 283 of file Spin.h.

References GG::Wnd::SizeMove().

template<class T >

void GG::Spin< T >::SetValue | ( | T | value | ) |

sets the value of the control's text to value, locked to the range [MinValue(), MaxValue()]

Definition at line 321 of file Spin.h.

template<class T>

void GG::Spin< T >::AllowEdits | ( | bool | b = `true` | ) |

turns on or off the mode that allows the user to edit the value in the spinbox directly.

template<class T >

void GG::Spin< T >::KeyPress | ( | Key | key,
|  | boost::uint32_t | key_code_point,
|  | Flags< ModKey > | mod_keys
| ) |  |
| protectedvirtual

Respond to down-keystrokes (focus window only). A window may receive KeyPress() messages passed up to it from its children. For instance, Control-derived classes pass KeyPress() messages to their Parent() windows by default.

Note
  Though mouse clicks consist of a press and a release, all Control classes by default respond immediately to KeyPress(), not KeyRelease(); in fact, by default no Wnd class does anything at all on a KeyRelease event.
  key_code_point will be zero if Unicode support is unavailable.

Reimplemented from GG::Control.

Definition at line 387 of file Spin.h.

template<class T >

void GG::Spin< T >::MouseWheel | ( | const Pt & | pt,
|  | int | move,
|  | Flags< ModKey > | mod_keys
| ) |  |
| protectedvirtual

Respond to movement of the mouse wheel (move > 0 indicates the wheel is rolled up, < 0 indicates down)

Reimplemented from GG::Control.

Definition at line 414 of file Spin.h.

template<class T >

bool GG::Spin< T >::EventFilter | ( | Wnd * | w,
|  | const WndEvent & | event
| ) |  |
| protectedvirtual

Handles an WndEvent destined for Wnd w, but which this Wnd is allowed to handle first. Returns true if this filter processed the message.

Reimplemented from GG::Wnd.

Definition at line 425 of file Spin.h.

References GG::GUI::GetGUI(), GG::GUI::SetFocusWnd(), and GG::WndEvent::Type().

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

- Spin.h