#ifndef __ULIB_LABEL_H__
#define __ULIB_LABEL_H__

#include <header/Object.h>
#include <header/Control.h>
#include <header/ULString.h>
#include <header/Window.h>
extern "C"
{
	#include <guigui00.h>
}
using namespace Ulib;

namespace Ulib
{
	class Label : public Ulib::Control
	{
	protected:
		LIB_TEXTBOX *label;
		int bgColor; // BackGround Color
		int charSet, initChar;
		//char *inputString;
		ULString inputString;
		bool visible; // 可視:true
		bool enabled; // ユーザーとの対話に応答できるかどうか
	public:
		Label();
		virtual ~Label();
		virtual const char *getTypeName();
		virtual const char *ToString();
		virtual void operator=(LIB_TEXTBOX *label0);
		virtual LIB_TEXTBOX *Get_LIB_TEXTBOX();
		virtual void PutString(const char *str, int xpos0, int ypos0, int color);
		virtual Label &xSize(int value);
		virtual int xSize(); /*オーバーライドされている関数は、
							 例え継承元（Control）で実装されていても、
							 こっちのクラスで再実装する必要有り。*/
		virtual Label &ySize(int value);
		virtual int ySize();
		virtual Label &BgColor(int value);
		virtual int BgColor();
		virtual Label &CharSet(int value);
		virtual int CharSet();
		virtual Label &InitChar(int value);
		virtual int InitChar();
		virtual void Clear();
		virtual bool Visible();
		virtual Label &Visible(bool value);
		virtual bool Enabled();
		virtual Label &Enabled(bool value);
		friend void Ulib::Window::AddObject(Object &object0);
		friend void Ulib::Window::RemoveObject(Object &object0);
	};
}

#endif
