You.i Engine
YiScrollBarView.h
Go to the documentation of this file.
1 // © You i Labs Inc. 2000-2017. All rights reserved.
2 #ifndef _YI_SCROLL_BAR_VIEW_H_
3 #define _YI_SCROLL_BAR_VIEW_H_
4 
5 #include "view/YiSceneView.h"
6 
7 class CYIScrollBarViewPriv;
8 
31 {
32  friend class CYIScrollBarViewPriv;
33 
34 public:
35 
39  class Listener
40  {
41  public:
42  Listener() {};
43  virtual ~Listener() {};
44 
48  virtual void OnScroll(const CYIScrollBarView *pScrollBar, float fPercentage) = 0;
49 
53  virtual void OnScrollBegin(const CYIScrollBarView *pScrollBar) = 0;
54 
58  virtual void OnScrollEnd (const CYIScrollBarView *pScrollBar) = 0;
59  };
60 
62  virtual ~CYIScrollBarView();
63 
67  virtual bool Init() override;
68 
69  virtual void FocusLost() override;
70 
76  void SetThumbPosition(float fNormalizedPosition);
77 
81  float GetThumbPosition() const;
82 
91  void SetThumbSize(float fPercentage);
92 
96  float GetThumbSize() const;
97 
101  void AddListener(CYIScrollBarView::Listener *pListener);
102 
107 
111  void SetAutoHideTimeout(uint64_t uDelayMs);
112 
116  uint64_t GetAutoHideTimeout() const;
117 
121  virtual const CYISceneView::AssetRequirement *GetAssetRequirements(uint32_t *pRequirementCount) override;
122 
126 
127 protected:
128  virtual bool HandleEvent(const std::shared_ptr<CYIEventDispatcher> &pDispatcher, CYIEvent *pEvent) override;
129 
130  virtual void UpdateEnd() override;
131 
132 private:
133  CYIScrollBarViewPriv *m_pPriv;
134 
137 };
138 
141 #endif // _YI_SCROLL_BAR_VIEW_H_
void AddListener(CYIScrollBarView::Listener *pListener)
friend class CYIScrollBarViewPriv
Definition: YiScrollBarView.h:32
virtual bool Init() override
void RemoveListener(CYIScrollBarView::Listener *pListener)
#define YI_DISALLOW_COPY_AND_ASSIGN(TypeName)
Delete the copy constructor and assignment operator (and consequently the move constructor as well) ...
Definition: YiPredef.h:114
uint64_t GetAutoHideTimeout() const
void SetAutoHideTimeout(uint64_t uDelayMs)
float GetThumbSize() const
virtual void OnScroll(const CYIScrollBarView *pScrollBar, float fPercentage)=0
Base class for events.
Definition: YiEvent.h:489
The base class for all view types. Views are containers of renderable elements that often define inte...
Definition: YiSceneView.h:47
virtual ~CYIScrollBarView()
CYISignal< float > Scrolled
Emitted as the scroll bar view is moved. The float parameter indicates the current scroll percentage...
Definition: YiScrollBarView.h:123
virtual void OnScrollBegin(const CYIScrollBarView *pScrollBar)=0
CYISignal ScrolledBegin
Emitted when the scroll bar starts to move.
Definition: YiScrollBarView.h:124
#define YI_TYPE_BASES(...)
Definition: YiRtti.h:350
Definition: YiSceneView.h:86
virtual bool HandleEvent(const std::shared_ptr< CYIEventDispatcher > &pDispatcher, CYIEvent *pEvent) override
virtual void OnScrollEnd(const CYIScrollBarView *pScrollBar)=0
virtual ~Listener()
Definition: YiScrollBarView.h:43
void SetThumbPosition(float fNormalizedPosition)
virtual void FocusLost() override
Listener()
Definition: YiScrollBarView.h:42
virtual const CYISceneView::AssetRequirement * GetAssetRequirements(uint32_t *pRequirementCount) override
CYISignal ScrolledEnd
Emitted when the scroll bar has finished moving.
Definition: YiScrollBarView.h:125
void SetThumbSize(float fPercentage)
virtual void UpdateEnd() override
A scrollbar that offers thumb size adjustment, and an auto-hide feature.
Definition: YiScrollBarView.h:30
Interface through which an object can be notified that the thumb of a specific scroll bar was moved...
Definition: YiScrollBarView.h:39
float GetThumbPosition() const