#pragma once
#ifndef GWEN_CONTROLS_PANELLISTPANEL_H
#define GWEN_CONTROLS_PANELLISTPANEL_H

#include "Gwen/Gwen.h"
#include "Gwen/Controls/Base.h"

namespace Gwen 
{
	namespace Controls
	{
		class GWEN_EXPORT PanelListPanel : public Controls::Base
		{
			public:

				GWEN_CONTROL( PanelListPanel, Controls::Base );

				void Render( Gwen::Skin::Base* skin );
				void Layout( Skin::Base* skin );

				void DoHorizontalLayout();
				void DoVerticalLayout();

				bool IsVerticalLayout() { return m_bVertical; }
				bool IsHorizontalLayout() { return !m_bVertical; }
				void SetVertical() {	m_bVertical = true;	Invalidate(); }
				void SetHorizontal() {	m_bVertical = false; Invalidate(); }

				void SetSizeToChildren( bool bShould )		{ m_bSizeToChildren = bShould; }
				void SetControlSpacing( int spacing )		{ m_iControlSpacing = spacing; }
				void SetLineSpacing( int spacing )			{ m_iLineSpacing = spacing; }
				void SetWrapping( bool wrap )				{ m_bWrapping = wrap; }

				Gwen::Point GetBiggestChildSize();

			protected:

				bool m_bVertical;
				bool m_bSizeToChildren;
				int m_iControlSpacing;
				int m_iLineSpacing;
				bool m_bWrapping;
		};
	}
}
#endif
