Hasty Badger
Small UI library (a branch of Turbo Badger)
 All Classes Namespaces Functions Variables Enumerations Enumerator Friends Groups Pages
tb_widget_animation.h
1 // ================================================================================
2 // == This file is a part of Turbo Badger. (C) 2011-2014, Emil SegerÃ¥s ==
3 // == See tb_core.h for more information. ==
4 // ================================================================================
5 
6 #ifndef TB_WIDGET_ANIMATION_H
7 #define TB_WIDGET_ANIMATION_H
8 
9 #include "tb_widgets_listener.h"
10 #include "animation/tb_animation.h"
11 
12 namespace tb {
13 
18 #define TB_ALMOST_ZERO_OPACITY 0.001f
19 
22 class TBWidgetAnimationObject : public TBAnimationObject, public TBLinkOf<TBWidgetAnimationObject>
23 {
24 public:
25  // For safe typecasting
26  TBOBJECT_SUBCLASS(TBWidgetAnimationObject, TBAnimationObject);
27 
29  virtual ~TBWidgetAnimationObject();
30 public:
31  TBWidget *m_widget;
32 };
33 
36 {
37 public:
38  // For safe typecasting
40 
41  TBWidgetAnimationOpacity(TBWidget *widget, float src_opacity, float dst_opacity, bool die);
42  virtual void OnAnimationStart();
43  virtual void OnAnimationUpdate(float progress);
44  virtual void OnAnimationStop(bool aborted);
45 private:
46  float m_src_opacity;
47  float m_dst_opacity;
48  bool m_die;
49 };
50 
53 {
54 public:
55  // For safe typecasting
57 
58  enum MODE {
65  };
67  TBWidgetAnimationRect(TBWidget *widget, const TBRect &src_rect, const TBRect &dst_rect);
71  TBWidgetAnimationRect(TBWidget *widget, const TBRect &delta_rect, MODE mode);
72  virtual void OnAnimationStart();
73  virtual void OnAnimationUpdate(float progress);
74  virtual void OnAnimationStop(bool aborted);
75 private:
76  TBRect m_src_rect;
77  TBRect m_dst_rect;
78  TBRect m_delta_rect;
79  MODE m_mode;
80 };
81 
83 {
84 public:
86  static void Init();
87 
89  static void Shutdown();
90 
92  static void AbortAnimations(TBWidget *widget);
93 
97  static void AbortAnimations(TBWidget *widget, TB_TYPE_ID type_id);
98 
99 private:
100  // == TBWidgetListener ==================
101  virtual void OnWidgetDelete(TBWidget *widget);
102  virtual bool OnWidgetDying(TBWidget *widget);
103  virtual void OnWidgetAdded(TBWidget *parent, TBWidget *child);
104  virtual void OnWidgetRemove(TBWidget *parent, TBWidget *child);
105 };
106 
107 } // namespace tb
108 
109 #endif // TB_WIDGET_ANIMATION_H
Animate the opacity of the target widget.
Definition: tb_widget_animation.h:35
static void Shutdown()
Shutdown the widgets animation manager.
Definition: tb_widget_animation.cpp:151
Animate from current to current + delta.
Definition: tb_widget_animation.h:64
The base TBWidget class.
Definition: tb_widgets.h:418
MODE
Definition: tb_widget_animation.h:58
TBWidgetListener listens to some callbacks from TBWidget.
Definition: tb_widgets_listener.h:28
virtual void OnAnimationStart()
Called on animation start.
Definition: tb_widget_animation.cpp:42
virtual void OnAnimationUpdate(float progress)
Called on animation update.
Definition: tb_widget_animation.cpp:98
Base class for widget animations.
Definition: tb_widget_animation.h:22
static void AbortAnimations(TBWidget *widget)
Abort all animations that are running for the given widget.
Definition: tb_widget_animation.cpp:156
virtual void OnAnimationStop(bool aborted)
Called on animation stop.
Definition: tb_widget_animation.cpp:136
Animate from current + delta to current.
Definition: tb_widget_animation.h:62
virtual void OnAnimationUpdate(float progress)
Called on animation update.
Definition: tb_widget_animation.cpp:51
TBWidgetAnimationRect(TBWidget *widget, const TBRect &src_rect, const TBRect &dst_rect)
Animate the widget between the given source and dest rectangle.
Definition: tb_widget_animation.cpp:72
Animate from source to dest.
Definition: tb_widget_animation.h:60
Simple rectangle class.
Definition: tb_geometry.h:25
virtual void OnAnimationStart()
Called on animation start.
Definition: tb_widget_animation.cpp:88
Definition: tb_widget_animation.h:82
TBAnimationObject - Base class for all animated object.
Definition: tb_animation.h:72
static void Init()
Init the widgets animation manager.
Definition: tb_widget_animation.cpp:146
virtual void OnAnimationStop(bool aborted)
Called on animation stop.
Definition: tb_widget_animation.cpp:56
Animate the rectangle of the target widget.
Definition: tb_widget_animation.h:52