You.i Engine
YiAbstractButtonView.h
Go to the documentation of this file.
1 // © You i Labs Inc. 2000-2017. All rights reserved.
2 #ifndef _YI_ABSTRACT_BUTTONVIEW_H_
3 #define _YI_ABSTRACT_BUTTONVIEW_H_
4 
5 #include "signal/YiSignal.h"
6 #include "view/YiSceneView.h"
7 
8 class CYITextSceneNode;
9 
26 {
27 public:
31  typedef enum
32  {
34  DISABLED = 0,
37  } ENABLE_STATE;
38 
42  typedef enum
43  {
45  RELEASED = 0,
48  } PRESS_STATE;
49 
53  typedef enum
54  {
56  AWAY = 0,
59  } OVER_STATE;
60 
62  virtual ~CYIAbstractButtonView();
63 
64  virtual bool Init() override;
65 
72  void Enable();
73 
80  void Disable();
81 
88  void SetEnabled(bool bEnabled);
89 
93  bool IsEnabled() const;
94 
98  bool IsPressed() const;
99 
103  bool IsOver() const;
104 
112  void SetText(const CYIString &text);
113 
121  void SetButtonID(int32_t nButtonID);
122 
128  int32_t GetButtonID() const;
129 
130 protected:
134  virtual bool HandleEvent(const std::shared_ptr<CYIEventDispatcher> &pDispatcher, CYIEvent *pEvent) override;
135 
139  virtual void OnEnable() {}
140 
144  virtual void OnDisable() {}
145 
149  virtual void OnPress() {}
150 
154  virtual void OnRelease() {}
155 
159  virtual void OnEnter() {}
160 
164  virtual void OnLeave() {}
165 
169  virtual void OnCancel() {}
170 
176  void StartTimelineForward(CYIAbstractTimeline *pTimeline, const char *pFunctionName = nullptr, const char *pTimelineName = nullptr);
177 
183  void StartTimelineReverse(CYIAbstractTimeline *pTimeline, const char *pFunctionName = nullptr, const char *pTimelineName = nullptr);
184 
188  virtual void FinishAllPlayingTimelines() {}
189 
193  ENABLE_STATE m_eEnableState;
197  PRESS_STATE m_ePressState;
201  OVER_STATE m_eOverState;
206  int32_t m_nButtonID;
207 
216 
218 };
219 
224 #endif // _YI_ABSTRACT_BUTTONVIEW_H_
The base class for the timeline framework.
Definition: YiAbstractTimeline.h:29
CYITextSceneNode * m_pButtonTextNode
Definition: YiAbstractButtonView.h:211
OVER_STATE
Definition: YiAbstractButtonView.h:53
void StartTimelineReverse(CYIAbstractTimeline *pTimeline, const char *pFunctionName=nullptr, const char *pTimelineName=nullptr)
Provides an abstraction for a button which accepts user interaction in the form of a press...
Definition: YiAbstractButtonView.h:25
virtual void OnEnable()
Definition: YiAbstractButtonView.h:139
ENABLE_STATE
Definition: YiAbstractButtonView.h:31
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
Container class for Unicode strings. Conceptually, a CYIString object is a sequence of Unicode charac...
Definition: YiString.h:35
void SetButtonID(int32_t nButtonID)
virtual void OnRelease()
Definition: YiAbstractButtonView.h:154
OVER_STATE m_eOverState
Definition: YiAbstractButtonView.h:201
bool IsEnabled() const
#define YI_TYPE_BASES(...)
Definition: YiRtti.h:350
bool IsPressed() const
virtual bool Init() override
Definition: YiAbstractButtonView.h:58
Definition: YiAbstractButtonView.h:34
virtual void OnEnter()
Definition: YiAbstractButtonView.h:159
virtual void OnDisable()
Definition: YiAbstractButtonView.h:144
void SetEnabled(bool bEnabled)
virtual void FinishAllPlayingTimelines()
Definition: YiAbstractButtonView.h:188
virtual ~CYIAbstractButtonView()
Definition: YiAbstractButtonView.h:45
virtual void OnLeave()
Definition: YiAbstractButtonView.h:164
PRESS_STATE
Definition: YiAbstractButtonView.h:42
Definition: YiAbstractButtonView.h:47
A scene node type that renders text.
Definition: YiTextSceneNode.h:77
virtual void OnCancel()
Definition: YiAbstractButtonView.h:169
CYITextSceneNode * m_pButtonTextNodePress
Definition: YiAbstractButtonView.h:215
virtual bool HandleEvent(const std::shared_ptr< CYIEventDispatcher > &pDispatcher, CYIEvent *pEvent) override
void StartTimelineForward(CYIAbstractTimeline *pTimeline, const char *pFunctionName=nullptr, const char *pTimelineName=nullptr)
int32_t GetButtonID() const
virtual void OnPress()
Definition: YiAbstractButtonView.h:149
bool IsOver() const
int32_t m_nButtonID
Definition: YiAbstractButtonView.h:206
Definition: YiAbstractButtonView.h:36
PRESS_STATE m_ePressState
Definition: YiAbstractButtonView.h:197
ENABLE_STATE m_eEnableState
Definition: YiAbstractButtonView.h:193
Definition: YiAbstractButtonView.h:56
void SetText(const CYIString &text)