void Q3TitleBar::enterEvent(QEvent *) { if(autoRaise() && !d_func()->pressed) repaint(); QEvent e(QEvent::Leave); QApplication::sendEvent(parentWidget(), &e); }
void KviWindow::restore() { if(mdiParent()) mdiParent()->restore(); else showNormal(); autoRaise(); }
void KviWindow::maximize() { if(mdiParent()) mdiParent()->maximize(); else showMaximized(); autoRaise(); }
void Q3TitleBar::paintEvent(QPaintEvent *) { Q_D(Q3TitleBar); QStyleOptionTitleBar opt = d->getStyleOption(); opt.subControls = QStyle::SC_TitleBarLabel; opt.activeSubControls = d->buttonDown; if (d->flags & Qt::WindowSystemMenuHint) { opt.subControls |= QStyle::SC_TitleBarSysMenu | QStyle::SC_TitleBarCloseButton; if (d->window && (d->flags & Qt::WindowShadeButtonHint)) { if (d->window->isMinimized()) opt.subControls |= QStyle::SC_TitleBarUnshadeButton; else opt.subControls |= QStyle::SC_TitleBarShadeButton; } if (d->window && (d->flags & Qt::WindowMinMaxButtonsHint)) { if(d->window && d->window->isMinimized()) opt.subControls |= QStyle::SC_TitleBarNormalButton; else opt.subControls |= QStyle::SC_TitleBarMinButton; } if (d->window && (d->flags & Qt::WindowMaximizeButtonHint) && !d->window->isMaximized()) opt.subControls |= QStyle::SC_TitleBarMaxButton; } QStyle::SubControl under_mouse = QStyle::SC_None; if (underMouse()) { under_mouse = style()->hitTestComplexControl(QStyle::CC_TitleBar, &opt, mapFromGlobal(QCursor::pos()), this); opt.activeSubControls |= under_mouse; if (d->pressed) opt.state |= QStyle::State_Sunken; else if(autoRaise()) opt.state |= QStyle::State_MouseOver; } opt.palette.setCurrentColorGroup(usesActiveColor() ? QPalette::Active : QPalette::Inactive); QPainter p(this); if (!windowTitle().isEmpty()) opt.titleBarFlags |= Qt::WindowTitleHint; style()->drawComplexControl(QStyle::CC_TitleBar, &opt, &p, this); }
void KviWindow::delayedAutoRaise() { QTimer::singleShot(0, this, SLOT(autoRaise())); }
void Q3TitleBar::leaveEvent(QEvent *) { if(autoRaise() && !d_func()->pressed) repaint(); }
void Q3TitleBar::mouseMoveEvent(QMouseEvent *e) { Q_D(Q3TitleBar); e->accept(); switch (d->buttonDown) { case QStyle::SC_None: if(autoRaise()) repaint(); break; case QStyle::SC_TitleBarSysMenu: break; case QStyle::SC_TitleBarShadeButton: case QStyle::SC_TitleBarUnshadeButton: case QStyle::SC_TitleBarNormalButton: case QStyle::SC_TitleBarMinButton: case QStyle::SC_TitleBarMaxButton: case QStyle::SC_TitleBarCloseButton: { QStyle::SubControl last_ctrl = d->buttonDown; QStyleOptionTitleBar opt = d->getStyleOption(); d->buttonDown = style()->hitTestComplexControl(QStyle::CC_TitleBar, &opt, e->pos(), this); if (d->buttonDown != last_ctrl) d->buttonDown = QStyle::SC_None; repaint(); d->buttonDown = last_ctrl; } break; case QStyle::SC_TitleBarLabel: if (d->buttonDown == QStyle::SC_TitleBarLabel && d->movable && d->pressed) { if ((d->moveOffset - mapToParent(e->pos())).manhattanLength() >= 4) { QPoint p = mapFromGlobal(e->globalPos()); QWidget *parent = d->window ? d->window->parentWidget() : 0; if(parent && parent->inherits("Q3WorkspaceChild")) { QWidget *workspace = parent->parentWidget(); p = workspace->mapFromGlobal(e->globalPos()); if (!workspace->rect().contains(p)) { if (p.x() < 0) p.rx() = 0; if (p.y() < 0) p.ry() = 0; if (p.x() > workspace->width()) p.rx() = workspace->width(); if (p.y() > workspace->height()) p.ry() = workspace->height(); } } QPoint pp = p - d->moveOffset; if (!parentWidget()->isMaximized()) parentWidget()->move(pp); } } else { QStyle::SubControl last_ctrl = d->buttonDown; d->buttonDown = QStyle::SC_None; if(d->buttonDown != last_ctrl) repaint(); } break; default: break; } }