1 /*!
2 	@file
3 	@author		Albert Semenov
4 	@date		07/2012
5 */
6 
7 #ifndef _581b514e_0bf3_4414_af1a_9c91ab524119_
8 #define _581b514e_0bf3_4414_af1a_9c91ab524119_
9 
10 #include "IControlController.h"
11 #include "ScopeTextureControl.h"
12 
13 namespace tools
14 {
15 
16 	class SeparatorTextureController :
17 		public IControlController,
18 		public sigslot::has_slots<>
19 	{
20 	public:
21 		SeparatorTextureController();
22 
23 		virtual void setTarget(Control* _control);
24 
25 		virtual void activate();
26 		virtual void deactivate();
27 
28 	private:
29 		void notifyChangeDataSelector(DataPtr _data, bool _changeOnlySelection);
30 		void notifyChangeProperty(PropertyPtr _sender);
31 		void notifyChangeScope(const std::string& _scope);
32 		void notifyChangeValue(const std::string& _value);
33 
34 		void updateCoords(const std::string& _value);
35 		void updateFrames();
36 
37 		ScopeTextureControl::SelectorType getTypeByName(const std::string& _name);
38 		MyGUI::IntCoord getCoordByName(const std::string& _name, int _offset);
39 		int getOffsetByName(const MyGUI::IntCoord& _coord, const std::string& _name);
40 
41 	private:
42 		ScopeTextureControl* mControl;
43 		std::string mParentTypeName;
44 		std::string mScopeName;
45 		std::string mThisType;
46 		DataPtr mParentData;
47 		bool mActivated;
48 		MyGUI::IntCoord mTextureCoord;
49 		ScopeTextureControl::VectorCoord mFrames;
50 	};
51 
52 }
53 
54 #endif
55