#ifndef _CLAYOUT_HPP_
#define _CLAYOUT_HPP_

/*** SDL Header Files ***/
#include <SDL.h>    

/*** Custom Header Files ***/
#include "cWindow.hpp"

#include "GUIHelpers/GUIUtility.hpp"
#include "GUIHelpers/Enums.hpp"

/*** DLL Header File ***/
#include "dllExport.h"

/*** Custom Header Files ***/
#include "../UtilityEngine/cString.hpp"

using UtilityEngine::cString;

namespace GUIEngine {
	class EXPORT_FROM_MYDLL cLayout : public cWindow
	{
	public:
		static const cString sNAME; /*= "layout";*/
		static const GUIHelpers::eOrientation sORIENTATION; /*= GUIHelpers::eOrientation::VERTICAL;*/

		cLayout( cWindow* parent = nullptr, const signed int id = -1, const GUIHelpers::eOrientation& orientation = sORIENTATION, const GUIHelpers::eAlign& align = sALIGN, 
			const GUIHelpers::eLayout& layout = sLAYOUT, const GUIHelpers::Position& pos = sPOSITION, const GUIHelpers::Size& size = sSIZE, 
			const GUIHelpers::Padding& padding = sPADDING, const cString& name = sNAME );
		virtual ~cLayout();

		///Functions
		virtual void Create( cWindow* parent, const signed int id, const GUIHelpers::eOrientation& orientation = sORIENTATION, const GUIHelpers::eAlign& align = sALIGN, 
			const GUIHelpers::eLayout& layout = sLAYOUT, const GUIHelpers::Position& pos = sPOSITION, const GUIHelpers::Size& size = sSIZE, 
			const GUIHelpers::Padding& padding = sPADDING, const cString& name = sNAME );

		virtual void Display();

		///Set

		///Get

		virtual const GUIHelpers::eType getType() const;

		virtual const GUIHelpers::RGBA getDebugColour() const;

	private:
		GUIHelpers::eOrientation m_orientation;
	};/// END CLASS DEFINITION cLayout
}/// END NAMESPACE DEFINITION GUIEngine
#endif/// END IFNDEF _CLAYOUT_HPP_
