/*
	GWEN
	Copyright (c) 2010 Facepunch Studios
	See license in Gwen.h
*/

#pragma once
#ifndef GWEN_CONTROLS_PROPERTYTREE_H
#define GWEN_CONTROLS_PROPERTYTREE_H

#include "Gwen/Controls/Base.h"
#include "Gwen/Controls/Label.h"
#include "Gwen/Gwen.h"
#include "Gwen/Skin.h"
#include "Gwen/Controls/TreeControl.h"
#include "Gwen/Controls/Properties.h"


namespace Gwen 
{
	namespace Controls
	{
		class PropertyTreeNode : public TreeNode
		{
			public:

				GWEN_CONTROL_INLINE( PropertyTreeNode, TreeNode )
				{
				}

				virtual void Render( Skin::Base* skin )
				{
					skin->DrawPropertyTreeNode( this, m_InnerPanel->X(), m_InnerPanel->Y() );
				}

		};

		class PropertyTree : public TreeControl
		{
			public:

				GWEN_CONTROL_INLINE( PropertyTree, TreeControl )
				{

				}

				Properties* Add( const UnicodeString& text )
				{
					TreeNode* node = new PropertyTreeNode( this );
						node->SetText( text );
						node->Dock( Pos::Top );

					Properties* props = new Properties( node );
						props->Dock( Pos::Top );

					return props;
				}
		};

	}
}
#endif
