Handler<WidgetElement> AngelWidgetTarget::findElement() { Handler<World> const world = this->world(); if( unlikely(!world) ) { return Handler<WidgetElement>(); } return world->findWidgetById(id_); }
Handler<WidgetObject> WorldObject::findWidgetById(const std::string& widgetid) { Handler<World> const world = this->world(); Handler<WidgetElement> elm(world->findWidgetById(widgetid)); if( !elm ) { return Handler<WidgetObject>(); } return elm->widget()->donutObject(); }
void AngelWidgetTarget::onAttatchedImpl() { Handler<World> world = this->world(); if( unlikely(!world) ) { return; } Handler<WidgetElement> const element = world->findWidgetById(id_); if( unlikely(!element) ) { return; } geom::Area area(element->widget()->findTargetInElement(guide_)); geom::Point center( area.center() ); if( !area.empty() && !element->lastInnerDrawnAreaInRoot().contain(center+element->lastPositionInRoot()) ) { element->showPoint(center); } }