Gorgon Game Engine
Scrollbar.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "Slider.h"
4 
5 
6 namespace Gorgon { namespace Widgets {
7 
18  template<
19  class T_,
20  float(*DIV_)(T_, T_, T_) = FloatDivider<T_>,
21  T_(*VAL_)(float, T_, T_) = FloatToValue<T_>,
22  template<class C_, class PT_, PT_(C_::*Getter_)() const, void(C_::*Setter_)(const PT_ &)> class P_ = Gorgon::NumericProperty,
24  >
27  public:
28 
29  Scrollbar(const Scrollbar &) = delete;
30 
31  explicit Scrollbar(T_ cur, T_ max, Registry::TemplateType type = defaultregistry) :
32  Scrollbar(Registry::Active()[type], cur, max)
33  {
34  }
35 
36  explicit Scrollbar(T_ cur = T_{}, Registry::TemplateType type = defaultregistry) :
37  Scrollbar(Registry::Active()[type], cur)
38  {
39  }
40 
41  explicit Scrollbar(const UI::Template &temp, T_ cur = T_{}) : Scrollbar(temp, cur, T_(temp.GetSpacing()*64)) { }
42 
43  Scrollbar(const UI::Template &temp, T_ cur, T_ max) :
44  Base(temp, cur, max)
45  {
46  SmallChange = temp.GetSpacing() * 8;
47  LargeChange = temp.GetSpacing() * 32;
48  }
49 
50  using Base::SetValue;
51  using Base::GetValue;
52 
53  using Base::SetMaximum;
54  using Base::GetMaximum;
55 
56  using Base::SetRange;
57  using Base::GetRange;
58 
59  using Base::SetSmallChange;
60  using Base::GetSmallChange;
61 
62  using Base::SetLargeChange;
63  using Base::GetLargeChange;
64 
65  using Base::operator =;
66  using Base::operator T_;
67 
68  using Base::DisableSmoothChange;
69  using Base::SetSmoothChangeSpeed;
70  using Base::SetSmoothChangeSpeedRatio;
71  using Base::GetSmoothChangeSpeed;
72  using Base::GetSmoothChangeSpeedRatio;
73  using Base::IsSmoothChangeEnabled;
74 
75  using Base::Maximum;
76  using Base::Range;
77  using Base::SmallChange;
78  using Base::LargeChange;
79 
82 
83  protected:
84  virtual void valuechanged(T_ value) override {
85  ValueChanged(value);
86  }
87 
88  virtual bool allowfocus() const override {
89  return false;
90  }
91  };
92 
95 
96  template<class T_>
98 
99  template<class T_>
101 
102 } }
Gorgon::Widgets::Scrollbar::valuechanged
virtual void valuechanged(T_ value) override
Definition: Scrollbar.h:84
Gorgon::NumericProperty
Supports arithmetic operators including +, * ..., +=, ...
Definition: Property.h:108
Gorgon::Widgets::SliderBase
This is an internal basis for slider.
Definition: Slider.h:59
Gorgon::Event
This class provides event mechanism.
Definition: Event.h:134
Gorgon::UI::Template
This class stores visual information about a widget template.
Definition: Template.h:392
Gorgon::Widgets::Scrollbar::Scrollbar
Scrollbar(const Scrollbar &)=delete
Gorgon::Widgets::Scrollbar::Scrollbar
Scrollbar(T_ cur=T_{}, Registry::TemplateType type=defaultregistry)
Definition: Scrollbar.h:36
Gorgon::Widgets::Scrollbar
This widget is a scrollbar.
Definition: Scrollbar.h:25
Gorgon::Widgets::Scrollbar::Scrollbar
Scrollbar(const UI::Template &temp, T_ cur, T_ max)
Definition: Scrollbar.h:43
Gorgon::Widgets::Registry::Active
static Registry & Active()
Definition: Registry.h:73
Gorgon::Widgets::Registry::TemplateType
TemplateType
This enum lists all possible template types.
Definition: Registry.h:18
Gorgon
Root namespace for Gorgon Game Engine.
Definition: Any.h:19
Gorgon::UI::Template::GetSpacing
int GetSpacing() const
Returns the spacing required for this template.
Definition: Template.h:578
Gorgon::Widgets::Scrollbar::Scrollbar
Scrollbar(const UI::Template &temp, T_ cur=T_{})
Definition: Scrollbar.h:41
Gorgon::Widgets::Scrollbar::allowfocus
virtual bool allowfocus() const override
Should return true if the widget can be focused.
Definition: Scrollbar.h:88
Gorgon::Widgets::Registry::Scrollbar_Horizontal
@ Scrollbar_Horizontal
Definition: Registry.h:44
Gorgon::Widgets::Scrollbar::Scrollbar
Scrollbar(T_ cur, T_ max, Registry::TemplateType type=defaultregistry)
Definition: Scrollbar.h:31
Gorgon::UI::Active
@ Active
This is for widgets that can be activated, like a count down timer.
Definition: Template.h:245
Slider.h
Gorgon::Widgets::Registry::Scrollbar_Vertical
@ Scrollbar_Vertical
Definition: Registry.h:45
Gorgon::Widgets::Registry
This class stores templates for elements.
Definition: Registry.h:12