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); }