#pragma once

#include <Widgets/Definitions.h>
#include <Widgets/Basic/Placeholder.h>
#include "../Base.h"
#include "../File.h"
#include "../Game/Animation.h"

namespace gorgon { namespace widgets {

	class Placeholder;

	Placeholder *LoadPlaceholder(Base *parent, File &file, std::istream &in, int Size);

	class Placeholder : public gge::widgets::Placeholder, public Base {
		friend Placeholder *LoadPlaceholder(gorgon::Base *parent, File &file, std::istream &in, int Size);
	public:

		Placeholder() {
		}

		virtual void Save(std::ostream &out) {
			auto start=WriteObjectStart(out, *this);


			auto propstart=WriteSectionStart(out, gge::widgets::GID::Placeholder_Props);

			WriteTo(out, (int)Align);
			WriteTo(out, Margins);
			WriteTo(out, (int)SizingMode);
			WriteTo(out, Minimum);

			WriteEnd(out, propstart);


			WriteEnd(out, start);
		}

		virtual GID::Type GetGID() const {
			return gge::widgets::GID::Placeholder;
		}
	};	


}}
