#ifndef _TK_RELIEF_OPTION_H_
#define _TK_RELIEF_OPTION_H_

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

using namespace std;

/**
 * \brief Specifies the 3-D effect desired for the widget. 
 * 
 * Acceptable values are raised, sunken, flat, ridge, solid, and groove.
 * The value indicates how the interior of the widget should appear relative
 * to its exterior; for example, raised means the interior of the widget should
 * appear to protrude from the screen, relative to the exterior of the widget. 
 *
 * \date 01-13-2006
 *
 * \author Ondrej Svejdar
 *
 * \todo 
 *
 * \bug 
 *
 */
class TkReliefOption:public TkEnumOption
{
public:
	static TXmlObject* newObject()
	{
		return new TkReliefOption(0);
	}

	static const char* E_FLAT;
	static const char* E_GROOVE;
	static const char* E_RAISED;
	static const char* E_RIDGE;
	static const char* E_SOLID;
	static const char* E_SUNKEN;

	static const char* type;
	static const char* enums[];

	/// C++ representation of this enumeration
	typedef enum opts
	{
		flat	=0,
		groove	=1,
		raised	=2,
		ridge	=3,
		solid	=4,
		sunken	=5
	};

	const char* getType() const;
	
	/**
	 * ctor
	 * \param value One of following : "flat","groove","raised","ridge","solid","sunken"
	 * or you can use static const members of TkReliefOption :
	 * E_FLAT, E_GROOVE, E_RAISED, E_RIDGE, E_SOLID, E_SUNKEN
	 */
	inline TkReliefOption(const char* value):TkEnumOption(value,enums)
	{
	}

	/**
	 * ctor, use this constructor if you can, because it is faster
	 * \param value One of following : flat, groove, raised, ridge, solid, sunken
	 */
	inline TkReliefOption(opts value):TkEnumOption((int)value,enums)
	{
	}
};

#endif/*_TK_RELIEF_OPTION_H_*/
