#pragma once

#include "AbstractVisualNode.h"

#include "SvgNode.h"

class IconNode : public AbstractVisualNode
{
public:

	enum class IconType
	{
		Image,
		Svg
	};

	IconNode(const Transform& transform = {});

	unsigned getContentWidth() const;

	unsigned getContentHeight() const;

	void setFillColor(const Color& color);

	void setOutlineColor(const Color& color);

	void setSvgContent(std::unique_ptr<SvgNode> svg_node);

private:
	std::unique_ptr<SvgNode> mSvgContent;

	IconType mType{ IconType::Svg };
	bool mContentDirty{ true };

};