void Container::displayChildren(const Geometry::Rect & region,bool useScissor/*=false*/) { const Geometry::Rect myRegion=region.isValid() ? getAbsRect().clipBy(region) : getAbsRect(); if(myRegion.isInvalid()) return; if(useScissor){ Geometry::Rect_i scissorRect = Geometry::Rect_i(getAbsRect()); scissorRect.changeSize(-2,-2); scissorRect.moveRel(1,1); getGUI().pushScissor(scissorRect); } for(Component * c=getFirstChild();c!=nullptr;c=c->getNext()){ if (c->isEnabled() && myRegion.intersects(c->getAbsRect())) c->display(region); } if(useScissor) getGUI().popScissor(); }
bool xuiCaption::onLMouseRelease(xMouseMsg& mEvent) { static int lastTickt = IPlatform::singleton()->getElapsTime(); int thisTickt = IPlatform::singleton()->getElapsTime(); xuiRect _closeBox = getAbsRect(this->m_CloseBox.Rect() ); if(PtInRect(_closeBox , (float)mEvent.x , (float)mEvent.y)) { __fireCommand(eXUIWCMD_Close,this,0,0); } if(thisTickt - lastTickt < 500) { thisTickt -= 500; __fireCommand(eXUIWCMD_Icon,this,0,0); } lastTickt = thisTickt; return true; }