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

#include <Spin.h>

Inheritance diagram for GG::Spin< T >:
GG::Control GG::Wnd

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
 
Value () const
 
StepSize () const
 
MinValue () const
 
MaxValue () const
 
bool Editable () const
 
X ButtonWidth () const
 
Clr TextColor () const
 
Clr InteriorColor () const
 
Clr HiliteColor () const
 
Clr SelectedTextColor () const
 
ButtonUpButton () const
 
ButtonDownButton () const
 
EditGetEdit () 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
 
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)
 
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 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

Definition at line 73 of file Spin.h.

Constructor & Destructor Documentation

template<class T >
GG::Spin< T >::Spin ( X  x,
Y  y,
X  w,
value,
step,
min,
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 ( 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: