#ifndef VDR_BURN_SKIN_H
#define VDR_BURN_SKIN_H

#include <string>
#include <vector>

namespace vdr_burn
{

	// --- skin ---------------------------------------------------------------

	class skin
	{
	private:
		static std::string default_background;
		static std::string default_button;

		bool        m_default;
		std::string m_name;
		std::string m_background;
		std::string m_button;

	public:
		skin(const std::string& name, const std::string& background, 
			 const std::string& button, bool default_ = false);

		static void set_defaults(const std::string& background, 
								 const std::string& button);

		const std::string& get_name(void) const { return m_name; }
		const std::string& get_background(void) const { return m_background; }
		const std::string& get_button(void) const { return m_button; }

		friend bool operator<(const skin& lhs, const skin& rhs);
		//virtual int Compare(const cListObject &Object) const;
	};

	// --- skin_list ----------------------------------------------------------

	class skin_list: public std::vector<skin>
	{
	private:
		skin_list(void);
		virtual ~skin_list();

		const char **m_strings;

		static skin_list instance; 

	protected:
		static std::string check_skin_path(const std::string& path, 
										   const std::string& fileName,
										   bool fatal = false);

	public:
		bool load(const std::string& path);

		const char * const *get_strings(void);

		static skin_list& get(void) { return instance; }
	};

}

#endif // VDR_BURN_SKIN_H
