1 /*!
2 	@file
3 	@author		Georgiy Evmenov
4 	@date		09/2008
5 */
6 
7 #ifndef _bdc81da4_7bc6_4966_9409_cdb3d2011d75_
8 #define _bdc81da4_7bc6_4966_9409_cdb3d2011d75_
9 
10 #include "BaseLayout/BaseLayout.h"
11 #include "PanelView/BasePanelViewItem.h"
12 #include "IPropertyField.h"
13 #include "WidgetTypes.h"
14 #include "EditorWidgets.h"
15 
16 namespace tools
17 {
18 
19 	class PanelMainProperties :
20 		public wraps::BasePanelViewItem
21 	{
22 	public:
23 		PanelMainProperties();
24 
25 		virtual void initialise();
26 		virtual void shutdown();
27 
28 		void update(MyGUI::Widget* _currentWidget);
29 
30 	private:
31 		void notifyAction(const std::string& _name, const std::string& _value, bool _final);
32 		void notifyActionSkin(const std::string& _type, const std::string& _value, bool _final);
33 		void notifyActionLayer(const std::string& _type, const std::string& _value, bool _final);
34 		void notifyActionName(const std::string& _type, const std::string& _value, bool _final);
35 		void notifyActionType(const std::string& _type, const std::string& _value, bool _final);
36 		void notifyActionAlign(const std::string& _type, const std::string& _value, bool _final);
37 		void notifyActionTemplate(const std::string& _type, const std::string& _value, bool _final);
38 
39 		void destroyPropertyFields();
40 		void hidePropertyFields();
41 		void updateSize();
42 
43 		bool isSkinExist(const std::string& _skinName);
44 		bool checkTemplate(const std::string& _skinName);
45 
46 		IPropertyField* getPropertyField(MyGUI::Widget* _client, const std::string& _name, const std::string& _type);
47 
48 	private:
49 		MyGUI::Widget* mCurrentWidget;
50 		typedef std::map<std::string, IPropertyField*> MapPropertyField;
51 		MapPropertyField mFields;
52 		std::string mUserDataTargetType;
53 	};
54 
55 }
56 
57 #endif
58