#ifndef _TK_SCROLLBAR_H_
#define _TK_SCROLLBAR_H_

#include "tk_base.h"

/**
 * \brief Represent "scrollbar" Tk widget
 * \date 01-12-2006
 *
 * \author Ondrej Svejdar
 *
 * \todo 
 *
 * \bug 
 *
 */
class TkScrollBar:public TkBase
{
protected:
	void doSerialize(TiXmlElement& element) const;
	void doDeserialize(const TiXmlElement& element);
public:
	static TXmlObject* newObject()
	{
		return new TkScrollBar(TclInterp::defaultInterp);
	}

	const static Ptr<TkOptionDef> OPT_ACTIVEBACKGROUND;
	const static Ptr<TkOptionDef> OPT_ACTIVERELIEF;
	const static Ptr<TkOptionDef> OPT_BACKGROUND;
	const static Ptr<TkOptionDef> OPT_BORDERWIDTH;
	const static Ptr<TkOptionDef> OPT_COMMAND;
	const static Ptr<TkOptionDef> OPT_CURSOR;
	const static Ptr<TkOptionDef> OPT_ELEMENTBORDERWIDTH;
	const static Ptr<TkOptionDef> OPT_HIGHLIGHTBACKGROUND;
	const static Ptr<TkOptionDef> OPT_HIGHLIGHTCOLOR;
	const static Ptr<TkOptionDef> OPT_HIGHLIGHTTHICKNESS;
	const static Ptr<TkOptionDef> OPT_JUMP;
	const static Ptr<TkOptionDef> OPT_ORIENT;
	const static Ptr<TkOptionDef> OPT_RELIEF;
	const static Ptr<TkOptionDef> OPT_REPEATDELAY;
	const static Ptr<TkOptionDef> OPT_REPEATINTERVAL;
	const static Ptr<TkOptionDef> OPT_TAKEFOCUS;
	const static Ptr<TkOptionDef> OPT_TROUGHTCOLOR;
	const static Ptr<TkOptionDef> OPT_WIDTH;

	const static Ptr<TkOptionDef> optAll[];
	const static char* type;
	const static char* tkClass;

	const Ptr<TkOptionDef>* getOptionAll() const;
	const char* getType() const;
	const char* getTkClass() const;

	TObject* clone();

	TkScrollBar(Ptr<TclInterp>& interp);
	TkScrollBar(Ptr<TclInterp>& interp,TkOrientOption::opts orient);

	void setBackgroundColor(TkColorOption* color);
	Ptr<TkColorOption>& getBackgroundColor() const;
};

#endif/*_TK_SCROLLBAR_H_*/
