Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008 #ifndef __SP_STORYBOARD_TRIGGER_H__
00009 #define __SP_STORYBOARD_TRIGGER_H__
00010
00011
00012 #include "Base/spStandard.hpp"
00013
00014 #ifdef SP_COMPILE_WITH_STORYBOARD
00015
00016
00017 #include <vector>
00018
00019
00020 namespace sp
00021 {
00022 namespace tool
00023 {
00024
00025
00026 class SP_EXPORT Trigger
00027 {
00028
00029 public:
00030
00031 virtual ~Trigger();
00032
00033
00034
00036
00037
00039 virtual bool active() const;
00040
00045 virtual bool needLoopUpdate() const;
00046
00048 virtual bool canTrigger() const;
00049
00050 void trigger();
00051 void untrigger();
00052
00053 virtual void connect(Trigger* ChildTrigger);
00054 virtual void disconnect(Trigger* ChildTrigger);
00055
00056 virtual void clearTriggers();
00057
00059 virtual void onTriggered();
00061 virtual void onUntriggered();
00063 virtual void onRunning();
00064
00065
00066
00067 inline const std::vector<Trigger*>& getChildList() const
00068 {
00069 return Children_;
00070 }
00071 inline const std::vector<Trigger*>& getParentList() const
00072 {
00073 return Parents_;
00074 }
00075
00077 inline bool triggered() const
00078 {
00079 return IsTriggered_;
00080 }
00081
00082 protected:
00083
00084 Trigger();
00085
00086
00087
00088
00089
00090
00091 void addToLoopUpdate();
00092 void removeFromLoopUpdate();
00093
00094 void updateStates();
00095
00096
00097
00102 bool IsTriggered_;
00103
00104 bool WasActive_;
00105
00106 private:
00107
00108
00109
00110 std::vector<Trigger*> Children_;
00111 std::vector<Trigger*> Parents_;
00112
00113 };
00114
00115
00116 }
00117
00118 }
00119
00120
00121 #endif
00122
00123 #endif
00124
00125
00126
00127