#ifndef DOC_STYLE_H
#define DOC_STYLE_H


#include <string>
#include "DocOutput.h"


enum TextRole
{
	NormalRole,
	Heading1Role,
	Heading2Role,
	Heading3Role,
	Heading4Role,
	BoldRole,
	ItalicsRole,
	QuoteRole,
	CodeRole,
	ListRole,
	LinkRole,
	EmailAddressRole,
	OtherRole
};


class DocStyle
{
public:
	DocStyle();
	virtual ~DocStyle();

	void readStyleFile(const char* a_fileName);
	void writeStyleFile(const char* a_fileName);

	void font(TextRole a_role, std::string& a_fontName, float& a_fontSize);
	void foregroundColor(TextRole a_role, float& a_red, float& a_green, float& a_blue, float& a_alpha);
	void backgroundColor(TextRole a_role, float& a_red, float& a_green, float& a_blue, float& a_alpha);

	void adornNewPage(DocOutputPage& page);

private:
	struct Pimpl;
	std::unique_ptr<Pimpl> m_pimpl;
};


#endif // DOC_STYLE_H
