Omnidome
Fulldome Mapping Software Toolkit
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Protected Member Functions | Private Attributes
omni::ui::mixin::RangedValue< DERIVED, VALUE > Struct Template Reference

Template class for a value within a certain min/max range. More...

#include <RangedValue.h>

Inheritance diagram for omni::ui::mixin::RangedValue< DERIVED, VALUE >:
Inheritance graph
[legend]
Collaboration diagram for omni::ui::mixin::RangedValue< DERIVED, VALUE >:
Collaboration graph
[legend]

Public Types

typedef Range< VALUE > range_type
 
typedef Step< VALUE > step_type
 
typedef VALUE value_type
 
- Public Types inherited from omni::ui::mixin::Range< VALUE >
typedef VALUE value_type
 
- Public Types inherited from omni::ui::mixin::Step< VALUE >
typedef VALUE value_type
 

Public Member Functions

 RangedValue ()
 Default constructor. More...
 
 RangedValue (value_type _value, value_type _minimum, value_type _maximum, value_type _singleStep=1.0, value_type _pageStep=10.0)
 Constructor from user defined value and range. More...
 
qreal ratio () const
 Returns ratio of current value. More...
 
value_type value () const
 Return value. More...
 
value_type defaultValue () const
 Return default value. More...
 
value_type pivot () const
 Return pivot value. More...
 
void increase ()
 Increate value by single step value. More...
 
void decrease ()
 Decrease value by single step value. More...
 
void setValue (value_type _value)
 Set new value and emit value changed event. More...
 
void reset ()
 Reset value to default value. More...
 
void setDefaultValue (value_type _value)
 Set new default value. More...
 
void setPivot (value_type _pivot)
 Set pivot value (0.0 by default) More...
 
- Public Member Functions inherited from omni::ui::mixin::Range< VALUE >
 Range (value_type _minimum=0.0, value_type _maximum=100.0)
 
qreal ratio (value_type _v) const
 Return ratio of value v. More...
 
value_type range () const
 Return range (difference between maximum and minimum) More...
 
value_type minimum () const
 Return minimum value. More...
 
value_type maximum () const
 Return maximum value. More...
 
void setMinimum (value_type _minimum)
 Set new minimum value and value and emit rangeChanged event. More...
 
void disableMinimum ()
 Disable minimum by setting the value to infinite. More...
 
void setMaximum (value_type _maximum)
 Set new maximum value and value and emit rangeChanged event. More...
 
void disableMaximum ()
 Disable maximum by setting maximum to infinite value. More...
 
void setRange (value_type _minimum, value_type _maximum)
 Set range and validate. More...
 
void disableRange ()
 Disable range by setting minimum and maximum to infinite value. More...
 
bool minimumUsed () const
 
bool maximumUsed () const
 
- Public Member Functions inherited from omni::ui::mixin::Step< VALUE >
 Step (value_type _singleStep=1.0, value_type _pageStep=10.0, bool _snap=false)
 Construct with a single step, page step value. More...
 
qreal snapped (value_type _v) const
 Return snapped value. More...
 
bool snap () const
 Snap value (align to single step value) More...
 
void setSnap (bool _snap)
 Set boolean if value is to be snapped. More...
 
value_type singleStep () const
 Return value for single step. More...
 
value_type pageStep () const
 Return value for page step. More...
 
void setSingleStep (value_type _singleStep)
 Set new single step value. More...
 
void setPageStep (value_type _pageStep)
 Set new value for page step. More...
 

Protected Member Functions

template<typename WIDGET >
void apply (WIDGET *_widget) const
 Apply ranged value to widget. More...
 
template<typename F >
void for_each_step (F f)
 Functor to apply for each step. More...
 
void validate ()
 Validate minimum, maximum and value. More...
 
virtual void valueChangedEvent ()
 Value changed event which is emitted on changed value. More...
 
- Protected Member Functions inherited from omni::ui::mixin::Range< VALUE >
template<typename WIDGET >
void apply (WIDGET *_widget) const
 Apply range to widget. More...
 
template<typename WIDGET , typename V >
void apply (WIDGET *_widget, V _value) const
 Applay range to widget and set value. More...
 
virtual void rangeChangedEvent ()
 Handler to emit rangeChanged signal in derived widgets. More...
 
- Protected Member Functions inherited from omni::ui::mixin::Step< VALUE >
template<typename MIN , typename MAX , typename F >
void for_each_step (MIN _min, MAX _max, F f)
 Functor to be applied for each step between min and maximum. More...
 

Private Attributes

value_type value_ = 0.0
 
value_type defaultValue_ = 0.0
 
value_type pivot_ = 0.0
 

Detailed Description

template<typename DERIVED, typename VALUE>
struct omni::ui::mixin::RangedValue< DERIVED, VALUE >

Template class for a value within a certain min/max range.

Template Parameters
DERIVEDname of derived class
VALUEvalue type (e.g. int or double)

Member Typedef Documentation

template<typename DERIVED, typename VALUE>
typedef Range<VALUE> omni::ui::mixin::RangedValue< DERIVED, VALUE >::range_type
template<typename DERIVED, typename VALUE>
typedef Step<VALUE> omni::ui::mixin::RangedValue< DERIVED, VALUE >::step_type
template<typename DERIVED, typename VALUE>
typedef VALUE omni::ui::mixin::RangedValue< DERIVED, VALUE >::value_type

Constructor & Destructor Documentation

template<typename DERIVED, typename VALUE>
omni::ui::mixin::RangedValue< DERIVED, VALUE >::RangedValue ( )
inline

Default constructor.

42 {}
template<typename DERIVED, typename VALUE>
omni::ui::mixin::RangedValue< DERIVED, VALUE >::RangedValue ( value_type  _value,
value_type  _minimum,
value_type  _maximum,
value_type  _singleStep = 1.0,
value_type  _pageStep = 10.0 
)
inline

Constructor from user defined value and range.

50  :
51  range_type(_minimum, _maximum),
52  step_type(_singleStep, _pageStep),
53  value_(_value),
54  defaultValue_(_value),
55  pivot_(_minimum)
56  {}
Step< VALUE > step_type
Definition: RangedValue.h:38
Range< VALUE > range_type
Definition: RangedValue.h:37
value_type defaultValue_
Definition: RangedValue.h:178
value_type pivot_
Definition: RangedValue.h:179
value_type value_
Definition: RangedValue.h:177

Member Function Documentation

template<typename DERIVED, typename VALUE>
template<typename WIDGET >
void omni::ui::mixin::RangedValue< DERIVED, VALUE >::apply ( WIDGET *  _widget) const
inlineprotected

Apply ranged value to widget.

137  {
138  range_type::apply(_widget, value_);
139 
140  _widget->setSingleStep(step_type::singleStep());
141  }
void apply(WIDGET *_widget) const
Apply range to widget.
Definition: Range.h:123
value_type singleStep() const
Return value for single step.
Definition: Step.h:67
value_type value_
Definition: RangedValue.h:177
template<typename DERIVED, typename VALUE>
void omni::ui::mixin::RangedValue< DERIVED, VALUE >::decrease ( )
inline

Decrease value by single step value.

95  {
96  value_type _oldValue = value_;
97 
99  validate();
100 
101  if (value_ != _oldValue) valueChangedEvent();
102  }
void validate()
Validate minimum, maximum and value.
Definition: RangedValue.h:155
VALUE value_type
Definition: RangedValue.h:39
value_type singleStep() const
Return value for single step.
Definition: Step.h:67
value_type value_
Definition: RangedValue.h:177
virtual void valueChangedEvent()
Value changed event which is emitted on changed value.
Definition: RangedValue.h:173
template<typename DERIVED, typename VALUE>
value_type omni::ui::mixin::RangedValue< DERIVED, VALUE >::defaultValue ( ) const
inline

Return default value.

72  {
74  }
qreal snapped(value_type _v) const
Return snapped value.
Definition: Step.h:48
value_type defaultValue_
Definition: RangedValue.h:178
template<typename DERIVED, typename VALUE>
template<typename F >
void omni::ui::mixin::RangedValue< DERIVED, VALUE >::for_each_step ( f)
inlineprotected

Functor to apply for each step.

146  {
151  f);
152  }
value_type pivot_
Definition: RangedValue.h:179
value_type maximum() const
Return maximum value.
Definition: Range.h:60
void for_each_step(MIN _min, MAX _max, F f)
Functor to be applied for each step between min and maximum.
Definition: Step.h:93
value_type minimum() const
Return minimum value.
Definition: Range.h:54
template<typename DERIVED, typename VALUE>
void omni::ui::mixin::RangedValue< DERIVED, VALUE >::increase ( )
inline

Increate value by single step value.

84  {
85  value_type _oldValue = value_;
86 
88  validate();
89 
90  if (value_ != _oldValue) valueChangedEvent();
91  }
void validate()
Validate minimum, maximum and value.
Definition: RangedValue.h:155
VALUE value_type
Definition: RangedValue.h:39
value_type singleStep() const
Return value for single step.
Definition: Step.h:67
value_type value_
Definition: RangedValue.h:177
virtual void valueChangedEvent()
Value changed event which is emitted on changed value.
Definition: RangedValue.h:173
template<typename DERIVED, typename VALUE>
value_type omni::ui::mixin::RangedValue< DERIVED, VALUE >::pivot ( ) const
inline

Return pivot value.

78  {
79  return pivot_;
80  }
value_type pivot_
Definition: RangedValue.h:179
template<typename DERIVED, typename VALUE>
qreal omni::ui::mixin::RangedValue< DERIVED, VALUE >::ratio ( ) const
inline

Returns ratio of current value.

60  {
61  return range_type::ratio(value());
62  }
value_type value() const
Return value.
Definition: RangedValue.h:65
qreal ratio(value_type _v) const
Return ratio of value v.
Definition: Range.h:43
template<typename DERIVED, typename VALUE>
void omni::ui::mixin::RangedValue< DERIVED, VALUE >::reset ( )
inline

Reset value to default value.

117  {
119  }
void setValue(value_type _value)
Set new value and emit value changed event.
Definition: RangedValue.h:105
value_type defaultValue_
Definition: RangedValue.h:178
template<typename DERIVED, typename VALUE>
void omni::ui::mixin::RangedValue< DERIVED, VALUE >::setDefaultValue ( value_type  _value)
inline

Set new default value.

123  {
124  defaultValue_ = _value;
125  }
value_type defaultValue_
Definition: RangedValue.h:178
template<typename DERIVED, typename VALUE>
void omni::ui::mixin::RangedValue< DERIVED, VALUE >::setPivot ( value_type  _pivot)
inline

Set pivot value (0.0 by default)

129  {
130  pivot_ = _pivot;
131  }
value_type pivot_
Definition: RangedValue.h:179
template<typename DERIVED, typename VALUE>
void omni::ui::mixin::RangedValue< DERIVED, VALUE >::setValue ( value_type  _value)
inline

Set new value and emit value changed event.

106  {
107  value_type _oldValue = value_;
108 
109  value_ = _value;
110  validate();
111 
112  if (value_ != _oldValue) valueChangedEvent();
113  }
void validate()
Validate minimum, maximum and value.
Definition: RangedValue.h:155
VALUE value_type
Definition: RangedValue.h:39
value_type value_
Definition: RangedValue.h:177
virtual void valueChangedEvent()
Value changed event which is emitted on changed value.
Definition: RangedValue.h:173
template<typename DERIVED, typename VALUE>
void omni::ui::mixin::RangedValue< DERIVED, VALUE >::validate ( )
inlineprotectedvirtual

Validate minimum, maximum and value.

Reimplemented from omni::ui::mixin::Range< VALUE >.

156  {
158 
159  if (value_ <
161 
162  if (value_ >
164 
165  if (pivot_ <
167 
168  if (pivot_ >
170  }
virtual void validate()
Validate minimum and maximum.
Definition: Range.h:138
value_type pivot_
Definition: RangedValue.h:179
value_type value_
Definition: RangedValue.h:177
value_type maximum() const
Return maximum value.
Definition: Range.h:60
value_type minimum() const
Return minimum value.
Definition: Range.h:54
template<typename DERIVED, typename VALUE>
value_type omni::ui::mixin::RangedValue< DERIVED, VALUE >::value ( ) const
inline

Return value.

66  {
68  }
qreal snapped(value_type _v) const
Return snapped value.
Definition: Step.h:48
bool snap() const
Snap value (align to single step value)
Definition: Step.h:55
value_type value_
Definition: RangedValue.h:177
template<typename DERIVED, typename VALUE>
virtual void omni::ui::mixin::RangedValue< DERIVED, VALUE >::valueChangedEvent ( )
inlineprotectedvirtual

Value changed event which is emitted on changed value.

Reimplemented in omni::ui::RangedFloat, omni::ui::Dial, and omni::ui::RangedInt.

174  {}

Field Documentation

template<typename DERIVED, typename VALUE>
value_type omni::ui::mixin::RangedValue< DERIVED, VALUE >::defaultValue_ = 0.0
private
template<typename DERIVED, typename VALUE>
value_type omni::ui::mixin::RangedValue< DERIVED, VALUE >::pivot_ = 0.0
private
template<typename DERIVED, typename VALUE>
value_type omni::ui::mixin::RangedValue< DERIVED, VALUE >::value_ = 0.0
private

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