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