00001
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef __MYGUI_CONTROLLER_POSITION_H__
00024 #define __MYGUI_CONTROLLER_POSITION_H__
00025
00026 #include "MyGUI_Prerequest.h"
00027 #include "MyGUI_Delegate.h"
00028 #include "MyGUI_Types.h"
00029 #include "MyGUI_WidgetDefines.h"
00030 #include "MyGUI_ControllerItem.h"
00031
00032 namespace MyGUI
00033 {
00034
00036 class MYGUI_EXPORT ControllerPosition :
00037 public ControllerItem
00038 {
00039 MYGUI_RTTI_DERIVED( ControllerPosition )
00040
00041 public:
00042 typedef delegates::CDelegate4<const IntCoord&, const IntCoord&, IntCoord&, float> FrameAction;
00043
00044 ControllerPosition();
00045 virtual ~ControllerPosition() { }
00046
00047 void setCoord(const IntCoord& _value);
00048
00049 void setSize(const IntSize& _value);
00050
00051 void setPosition(const IntPoint& _value);
00052
00053 void setFunction(const std::string& _value);
00054
00058 void setTime(float _value) { mTime = _value; }
00059
00063 void setAction(FrameAction::IDelegate* _value) { eventFrameAction = _value; }
00064
00065 virtual void setProperty(const std::string& _key, const std::string& _value);
00066
00067 private:
00068 bool addTime(Widget* _widget, float _time);
00069 void prepareItem(Widget* _widget);
00070
00071 float getElapsedTime() { return mElapsedTime; }
00072
00073 IntCoord mStartCoord;
00074 IntCoord mDestCoord;
00075 float mTime;
00076 float mElapsedTime;
00077
00078
00079 bool mCalcPosition;
00080
00081 bool mCalcSize;
00082
00090 FrameAction eventFrameAction;
00091 };
00092
00093 }
00094
00095 #endif // __MYGUI_CONTROLLER_POSITION_H__