MyGUI
3.0.1
|
00001 00007 /* 00008 This file is part of MyGUI. 00009 00010 MyGUI is free software: you can redistribute it and/or modify 00011 it under the terms of the GNU Lesser General Public License as published by 00012 the Free Software Foundation, either version 3 of the License, or 00013 (at your option) any later version. 00014 00015 MyGUI is distributed in the hope that it will be useful, 00016 but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00018 GNU Lesser General Public License for more details. 00019 00020 You should have received a copy of the GNU Lesser General Public License 00021 along with MyGUI. If not, see <http://www.gnu.org/licenses/>. 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 // controller changing position 00079 bool mCalcPosition; 00080 // controller changing size 00081 bool mCalcSize; 00082 00090 FrameAction eventFrameAction; 00091 }; 00092 00093 } 00094 00095 #endif // __MYGUI_CONTROLLER_POSITION_H__