You.i Engine
YiAnimationToggleController.h
Go to the documentation of this file.
1 // © You i Labs Inc. 2000-2017. All rights reserved.
2 #ifndef _YI_ANIMATION_TOGGLE_CONTROLLER_H_
3 #define _YI_ANIMATION_TOGGLE_CONTROLLER_H_
4 
6 #include "framework/YiPredef.h"
7 #include "signal/YiSignal.h"
9 
15 
22 {
23 public:
24 
28  enum STATE
29  {
30  OFF = 0,
32  };
33 
36 
52  void SetTimelines(CYIAbstractTimeline *pTimelineOn, CYIAbstractTimeline *pTimelineOff = nullptr);
53 
67  void SetTimelines(std::unique_ptr<CYIAbstractTimeline> pTimelineOn, std::unique_ptr<CYIAbstractTimeline> pTimelineOff);
68 
72  STATE GetState() const;
73 
77  bool IsAnimating() const;
78 
84  void ToggleOn();
85 
91  void ToggleOff();
92 
97  void ToggleToState(STATE eState);
98 
104  bool IsToggledOn() const;
105 
111  bool IsToggledOff() const;
112 
120  void Toggle();
121 
126  void ResetToState(STATE eState);
127 
129 
131 
132 private:
136  void OnOnAnimationEnded();
137 
141  void OnOffAnimationEnded();
142 
146  void RemoveTimelines();
147 
148  STATE m_eState;
149  CYIAbstractTimeline *m_pTimelineOn;
150  CYIAbstractTimeline *m_pTimelineOff;
151  std::unique_ptr<CYIAbstractTimeline> m_pOwnedTimelineOn;
152  std::unique_ptr<CYIAbstractTimeline> m_pOwnedTimelineOff;
153 };
154 
155 #endif // _YI_ANIMATION_TOGGLE_CONTROLLER_H_
The base class for the timeline framework.
Definition: YiAbstractTimeline.h:29
void ToggleToState(STATE eState)
void ResetToState(STATE eState)
This controller can be used to animate between two visual states using one or two timelines...
Definition: YiAnimationToggleController.h:21
The base class for an object accessible from script source code.
Definition: YiScriptableObject.h:28
void SetTimelines(CYIAbstractTimeline *pTimelineOn, CYIAbstractTimeline *pTimelineOff=nullptr)
Definition: YiSignalHandler.h:174
CYISignal< STATE > StateChanged
Definition: YiAnimationToggleController.h:128
Definition: YiAnimationToggleController.h:31
Definition: YiAnimationToggleController.h:30
STATE
Definition: YiAnimationToggleController.h:28
CYISignal< STATE > AnimationEnded
Definition: YiAnimationToggleController.h:130