bool QWorkspace::qt_invoke( int _id, QUObject* _o ) { switch ( _id - staticMetaObject()->slotOffset() ) { case 0: cascade(); break; case 1: tile(); break; case 2: closeActiveWindow(); break; case 3: closeAllWindows(); break; case 4: activateNextWindow(); break; case 5: activatePrevWindow(); break; case 6: normalizeActiveWindow(); break; case 7: minimizeActiveWindow(); break; case 8: showOperationMenu(); break; case 9: popupOperationMenu((const QPoint&)*((const QPoint*)static_QUType_ptr.get(_o+1))); break; case 10: operationMenuActivated((int)static_QUType_int.get(_o+1)); break; case 11: operationMenuAboutToShow(); break; case 12: toolMenuAboutToShow(); break; case 13: activatePreviousWindow(); break; case 14: dockWindowsShow(); break; case 15: scrollBarChanged(); break; default: return QWidget::qt_invoke( _id, _o ); } return TRUE; }
void Q3TitleBar::mousePressEvent(QMouseEvent *e) { Q_D(Q3TitleBar); if (!d->act) emit doActivate(); if (e->button() == Qt::LeftButton) { d->pressed = true; QStyleOptionTitleBar opt = d->getStyleOption(); QStyle::SubControl ctrl = style()->hitTestComplexControl(QStyle::CC_TitleBar, &opt, e->pos(), this); switch (ctrl) { case QStyle::SC_TitleBarSysMenu: if (d->flags & Qt::WindowSystemMenuHint) { d->buttonDown = QStyle::SC_None; static QTime *t = 0; static Q3TitleBar *tc = 0; if (!t) t = new QTime; if (tc != this || t->elapsed() > QApplication::doubleClickInterval()) { emit showOperationMenu(); t->start(); tc = this; } else { tc = 0; emit doClose(); return; } } break; case QStyle::SC_TitleBarShadeButton: case QStyle::SC_TitleBarUnshadeButton: if (d->flags & Qt::WindowShadeButtonHint) d->buttonDown = ctrl; break; case QStyle::SC_TitleBarNormalButton: if (d->flags & Qt::WindowMinMaxButtonsHint) d->buttonDown = ctrl; break; case QStyle::SC_TitleBarMinButton: if (d->flags & Qt::WindowMinimizeButtonHint) d->buttonDown = ctrl; break; case QStyle::SC_TitleBarMaxButton: if (d->flags & Qt::WindowMaximizeButtonHint) d->buttonDown = ctrl; break; case QStyle::SC_TitleBarCloseButton: if (d->flags & Qt::WindowSystemMenuHint) d->buttonDown = ctrl; break; case QStyle::SC_TitleBarLabel: d->buttonDown = ctrl; d->moveOffset = mapToParent(e->pos()); break; default: break; } repaint(); } else { d->pressed = false; } }