class GeUserArea : _GeUserArea

{

		var dlg,uid;



	public:

		GeUserArea(id,dialog);



		Message(msg);



		Init();

		GetUserWidth();

		GetUserHeight();

		Sized(w,h);

		Draw(x1,y1,x2,y2);

		InputEvent(msg);

		CoreMessage(id,msg);

		Timer(msg);



		LayoutChanged();



		FillBitmapBackground(bmp,offsetx,offsety);

}



GeUserArea::Init()  {}

GeUserArea::GetUserWidth() { return 0; }

GeUserArea::GetUserHeight() {return 0; }

GeUserArea::Sized(w,h)  {}

GeUserArea::Draw(x1,y1,x2,y2)  {}

GeUserArea::InputEvent(msg)  {}

GeUserArea::CoreMessage(id,msg) {}

GeUserArea::Timer(msg) {}

GeUserArea::FillBitmapBackground(bmp,offsetx,offsety)

{

	DrawBitmap(bmp,offsetx,offsety,-0x12345,-0x12345,-0x12345,-0x12345,-0x12345,-0x12345,-0x12345);

}



GeUserArea::GeUserArea(t_id,t_dialog)

{

	super(t_id,t_dialog);

	dlg = t_dialog;

	uid = t_id;

}



GeUserArea::Message(msg)

{

	switch (msg->GetId())

	{

		case BFM_CALCSIZE:

			_SetMinSize(GetUserWidth(),GetUserHeight());

		break;



		case BFM_SIZED:

			Sized(GetWidth(),GetHeight());

		break;



		case BFM_INITVALUES:

			Init();

		break;



		case BFM_DRAW:

			Draw(0,0,GetWidth()-1,GetHeight()-1);

			return TRUE;

		

		case BFM_INPUT:

			InputEvent(msg);

		break;



		case BFM_CORE_MESSAGE:

		{

			var id = msg->GetInt(BFM_CORE_ID);

			return CoreMessage(id,msg);

		}



		case BFM_TIMER_MESSAGE:

			Timer(msg);

		break;

	}

}



GeUserArea::LayoutChanged()

{

	if (dlg) dlg->LayoutChanged(uid);

}





