/*! \fn void QDecoration::regionClicked(QWidget *widget, int region) Handles the event that the specified \a region in the given top level \a widget is activated by a single click (the \a region parameter is described using the DecorationRegion enum). This function is called whenever a region in a top level widget is clicked; the default implementation responds to clicks on items in the system menu, performing the requested actions. \sa regionDoubleClicked(), region() */ void QDecoration::regionClicked(QWidget *widget, int reg) { switch(reg) { case Move: startMove(widget); break; case Resize: startResize(widget); break; case Help: #ifndef QT_NO_WHATSTHIS if (QWhatsThis::inWhatsThisMode()) QWhatsThis::leaveWhatsThisMode(); else QWhatsThis::enterWhatsThisMode(); #endif break; case Close: widget->close(); break; case Normalize: widget->showNormal(); break; case Maximize: if (widget->windowState() & Qt::WindowMaximized) widget->showNormal(); else widget->showMaximized(); break; } }
void QWaylandMaterialDecoration::processMouseRight(QWaylandInputDevice *inputDevice, const QPointF &local, Qt::MouseButtons b, Qt::KeyboardModifiers mods) { Q_UNUSED(local); Q_UNUSED(mods); waylandWindow()->setMouseCursor(inputDevice, Qt::SplitHCursor); startResize(inputDevice, WL_SHELL_SURFACE_RESIZE_RIGHT, b); }
void QWaylandMaterialDecoration::processMouseBottom(QWaylandInputDevice *inputDevice, const QPointF &local, Qt::MouseButtons b, Qt::KeyboardModifiers mods) { Q_UNUSED(mods); if (local.x() <= margins().left()) { // bottom left bit waylandWindow()->setMouseCursor(inputDevice, Qt::SizeBDiagCursor); startResize(inputDevice, WL_SHELL_SURFACE_RESIZE_BOTTOM_LEFT, b); } else if (local.x() > window()->width() - margins().right()) { // bottom right bit waylandWindow()->setMouseCursor(inputDevice, Qt::SizeFDiagCursor); startResize(inputDevice, WL_SHELL_SURFACE_RESIZE_BOTTOM_RIGHT, b); } else { // bottom bit waylandWindow()->setMouseCursor(inputDevice, Qt::SplitVCursor); startResize(inputDevice, WL_SHELL_SURFACE_RESIZE_BOTTOM, b); } }
void QWaylandMaterialDecoration::processMouseTop(QWaylandInputDevice *inputDevice, const QPointF &local, Qt::MouseButtons b, Qt::KeyboardModifiers mods) { Q_UNUSED(mods); if (local.y() <= margins().bottom()) { if (local.x() <= margins().left()) { // top left bit waylandWindow()->setMouseCursor(inputDevice, Qt::SizeFDiagCursor); startResize(inputDevice, WL_SHELL_SURFACE_RESIZE_TOP_LEFT, b); } else if (local.x() > window()->width() - margins().right()) { // top right bit waylandWindow()->setMouseCursor(inputDevice, Qt::SizeBDiagCursor); startResize(inputDevice, WL_SHELL_SURFACE_RESIZE_TOP_RIGHT, b); } else { // top reszie bit waylandWindow()->setMouseCursor(inputDevice, Qt::SplitVCursor); startResize(inputDevice, WL_SHELL_SURFACE_RESIZE_TOP, b); } } else { waylandWindow()->restoreMouseCursor(inputDevice); startMove(inputDevice, b); } }
void WindowManager::unmaximize( TopWindow &rWindow ) { // Register the window to allow moving it // registerWindow( rWindow ); // Resize the window // FIXME: Ugly const_cast GenericLayout &rLayout = (GenericLayout&)rWindow.getActiveLayout(); startResize( rLayout, kResizeSE ); resize( rLayout, m_maximizeRect.getWidth(), m_maximizeRect.getHeight() ); stopResize(); // Now move it startMove( rWindow ); move( rWindow, m_maximizeRect.getLeft(), m_maximizeRect.getTop() ); stopMove(); rWindow.m_pVarMaximized->set( false ); }
void WindowManager::maximize( TopWindow &rWindow ) { // Save the current position/size of the window, to be able to restore it m_maximizeRect = SkinsRect( rWindow.getLeft(), rWindow.getTop(), rWindow.getLeft() + rWindow.getWidth(), rWindow.getTop() + rWindow.getHeight() ); SkinsRect workArea = OSFactory::instance( getIntf() )->getWorkArea(); // Move the window startMove( rWindow ); move( rWindow, workArea.getLeft(), workArea.getTop() ); stopMove(); // Now resize it // FIXME: Ugly const_cast GenericLayout &rLayout = (GenericLayout&)rWindow.getActiveLayout(); startResize( rLayout, kResizeSE ); resize( rLayout, workArea.getWidth(), workArea.getHeight() ); stopResize(); rWindow.m_pVarMaximized->set( true ); // Make the window unmovable by unregistering it // unregisterWindow( rWindow ); }