//--------------------------------------------------------------- // Purpose: //--------------------------------------------------------------- bool SpeechBubble::eventFilter(QObject *object, QEvent *evt) { if(object == parent()) { switch(evt->type()) { case QEvent::Move: case QEvent::Resize: recalcPos(); break; case QEvent::Close: close(); break; case QEvent::Hide: hide(); break; case QEvent::Show: recalcPos(); show(); break; default: break; } } return BaseClass::eventFilter(object, evt); }
void Glass::fixPos(Brick& b) { math::Vec2i pos = recalcPos(b); math::vec2f c = m_rect.get_bottom_left(); float size = m_brickSize; b.rect.position = math::vec2f(c[0] + pos[0]*size, c[1]-pos[1]*size); }
//--------------------------------------------------------------- // Purpose: //--------------------------------------------------------------- void SpeechBubble::attachTo( QWidget *widget ) { m_attach = widget; m_attach->installEventFilter(this); recalcPos(); }