#ifndef _TK_JUSTIFY_OPTION_H_
#define _TK_JUSTIFY_OPTION_H_

#include <string>

#include "tk_enumoption.h"
using namespace std;

/**
 * \brief Specifies text position
 * 
 *  Values : /n
 *  left - Means that the text on each line should start at the left edge of the line; as a result, the right edges of lines may be ragged. /n
 *  right - Means that the text on each line should end at the right edge of the line; as a result, the left edges of lines may be ragged. /n
 *  center - Means that the text on each line should be centered; as a result, both the left and right edges of lines may be ragged. /n
 * 
 * \date 01-13-2006
 *
 * \author Ondrej Svejdar
 *
 * \todo 
 *
 * \bug 
 *
 */
class TkJustifyOption:public TkEnumOption
{
public:
	static TXmlObject* newObject()
	{
		return new TkJustifyOption(0);
	}

	static const char* E_RIGHT;
	static const char* E_LEFT;
	static const char* E_CENTER;

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

	/// C++ representation of this enumeration
	typedef enum opts
	{
		/// text start at the left edge
		right	=0,
		/// text start at the right edget
		left	=1,
		/// text centered
		center	=2
	};

	const char* getType() const;
	
	/**
	 * ctor
	 * \param value One of following : "right","left","center"
	 * or you can use static const members of TkJustifyOption :
	 * E_RIGHT, E_LEFT, E_CENTER
	 */
	inline TkJustifyOption(const char* value):TkEnumOption(value,enums)
	{
	}

	/**
	 * ctor, use this constructor if you can, because it is faster
	 * \param value One of following : right, left, center 
	 */
	inline TkJustifyOption(opts value):TkEnumOption((int)value,enums)
	{
	}
};

#endif/*_TK_JUSTIFY_OPTION_H_*/
