diff options
Diffstat (limited to 'src/gui/embedded/qdecorationwindows_qws.cpp')
-rw-r--r-- | src/gui/embedded/qdecorationwindows_qws.cpp | 407 |
1 files changed, 0 insertions, 407 deletions
diff --git a/src/gui/embedded/qdecorationwindows_qws.cpp b/src/gui/embedded/qdecorationwindows_qws.cpp deleted file mode 100644 index 3de3783beb..0000000000 --- a/src/gui/embedded/qdecorationwindows_qws.cpp +++ /dev/null @@ -1,407 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtGui module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <qapplication.h> -#include <qwidget.h> -#include <qpainter.h> -#include <qdrawutil.h> -#include "qdecorationwindows_qws.h" - -QT_BEGIN_NAMESPACE - -#if !defined(QT_NO_QWS_DECORATION_WINDOWS) || defined(QT_PLUGIN) - -#ifndef QT_NO_IMAGEFORMAT_XPM - -/* XPM */ -static const char * const win_close_xpm[] = { -"16 16 4 1", -" s None c None", -". c #000000", -"X c #FFFFFF", -"Y c #707070", -" ", -" ", -" ", -" Y. .Y ", -" .. .. ", -" .. .. ", -" .YY. ", -" Y..Y ", -" .YY. ", -" .. .. ", -" .. .. ", -" Y. .Y ", -" ", -" ", -" ", -" "}; - -static const char * const win_help_xpm[] = { -"16 16 3 1", -" s None c None", -". c #ffffff", -"X c #000000", -" ", -" ", -" ", -" XXXXXX ", -" XX XX ", -" XX XX ", -" XX ", -" XX ", -" XX ", -" XX ", -" ", -" XX ", -" XX ", -" ", -" ", -" "}; - -static const char * const win_maximize_xpm[] = { -"16 16 4 1", -" s None c None", -". c #000000", -"X c #FFFFFF", -"Y c #707070", -" ", -" ", -" ", -" .......... ", -" .......... ", -" . . ", -" . . ", -" . . ", -" . . ", -" . . ", -" . . ", -" .......... ", -" ", -" ", -" ", -" "}; - -static const char * const win_minimize_xpm[] = { -"16 16 4 1", -" s None c None", -". c #000000", -"X c #FFFFFF", -"Y c #707070", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ........ ", -" ........ ", -" ", -" ", -" ", -" "}; - -static const char * const win_normalize_xpm[] = { -"16 16 4 1", -" s None c None", -". c #000000", -"X c #FFFFFF", -"Y c #707070", -" ", -" ", -" ......... ", -" ......... ", -" . . ", -" . . ", -" ......... . ", -" ......... . ", -" . . . ", -" . .... ", -" . . ", -" . . ", -" ......... ", -" ", -" ", -" "}; - -#endif // QT_NO_IMAGEFORMAT_XPM - - -QDecorationWindows::QDecorationWindows() - : QDecorationDefault() -{ - menu_width = 16; - help_width = 18; - minimize_width = 18; - maximize_width = 18; - close_width = 18; -} - -QDecorationWindows::~QDecorationWindows() -{ -} - -const char **QDecorationWindows::xpmForRegion(int reg) -{ -#ifdef QT_NO_IMAGEFORMAT_XPM - Q_UNUSED(reg); -#else - switch(reg) - { - case Close: - return (const char **)win_close_xpm; - case Help: - return (const char **)win_help_xpm; - case Minimize: - return (const char **)win_minimize_xpm; - case Maximize: - return (const char **)win_maximize_xpm; - case Normalize: - return (const char **)win_normalize_xpm; - default: - return QDecorationDefault::xpmForRegion(reg); - } -#endif - return 0; -} - -QRegion QDecorationWindows::region(const QWidget *widget, const QRect &rect, int type) -{ - Qt::WindowFlags flags = widget->windowFlags(); - bool hasTitle = flags & Qt::WindowTitleHint; - bool hasSysMenu = flags & Qt::WindowSystemMenuHint; - bool hasContextHelp = flags & Qt::WindowContextHelpButtonHint; - bool hasMinimize = flags & Qt::WindowMinimizeButtonHint; - bool hasMaximize = flags & Qt::WindowMaximizeButtonHint; - const QFontMetrics fontMetrics = QApplication::fontMetrics(); - int titleHeight = hasTitle ? qMax(20, fontMetrics.height()) : 0; - int state = widget->windowState(); - bool isMinimized = state & Qt::WindowMinimized; - bool isMaximized = state & Qt::WindowMaximized; - - QRegion region; - switch (type) { - case Menu: { - if (hasSysMenu) { - region = QRect(rect.left() + 2, rect.top() - titleHeight, - menu_width, titleHeight); - } - } - break; - - case Title: { - QRect r(rect.left() - + (hasSysMenu ? menu_width + 4: 0), - rect.top() - titleHeight, - rect.width() - - (hasSysMenu ? menu_width : 0) - - close_width - - (hasMaximize ? maximize_width : 0) - - (hasMinimize ? minimize_width : 0) - - (hasContextHelp ? help_width : 0) - - 3, - titleHeight); - if (r.width() > 0) - region = r; - } - break; - case Help: { - if (hasContextHelp) { - QRect r(rect.right() - - close_width - - (hasMaximize ? maximize_width : 0) - - (hasMinimize ? minimize_width : 0) - - help_width - 3, rect.top() - titleHeight, - help_width, titleHeight); - if (r.left() > rect.left() + titleHeight) - region = r; - } - } - break; - - case Minimize: { - if (hasMinimize && !isMinimized) { - QRect r(rect.right() - close_width - - (hasMaximize ? maximize_width : 0) - - minimize_width - 3, rect.top() - titleHeight, - minimize_width, titleHeight); - if (r.left() > rect.left() + titleHeight) - region = r; - } - } - break; - - case Maximize: { - if (hasMaximize && !isMaximized) { - QRect r(rect.right() - close_width - maximize_width - 3, - rect.top() - titleHeight, maximize_width, titleHeight); - if (r.left() > rect.left() + titleHeight) - region = r; - } - } - break; - - case Normalize: { - if (hasMinimize && isMinimized) { - QRect r(rect.right() - close_width - - (hasMaximize ? maximize_width : 0) - - minimize_width - 3, rect.top() - titleHeight, - minimize_width, titleHeight); - if (r.left() > rect.left() + titleHeight) - region = r; - } else if (hasMaximize && isMaximized) { - QRect r(rect.right() - close_width - maximize_width - 3, - rect.top() - titleHeight, maximize_width, titleHeight); - if (r.left() > rect.left() + titleHeight) - region = r; - } - } - break; - - case Close: { - QRect r(rect.right() - close_width - 1, rect.top() - titleHeight, - close_width, titleHeight); - if (r.left() > rect.left() + titleHeight) - region = r; - } - break; - - default: - region = QDecorationDefault::region(widget, rect, type); - break; - } - - return region; -} - -bool QDecorationWindows::paint(QPainter *painter, const QWidget *widget, int decorationRegion, - DecorationState state) -{ - if (decorationRegion == None) - return false; - - const QRect titleRect = QDecoration::region(widget, Title).boundingRect(); - const QPalette pal = QApplication::palette(); - QRegion oldClipRegion = painter->clipRegion(); - - bool paintAll = (decorationRegion == int(All)); - if ((paintAll || decorationRegion & Title && titleRect.width() > 0) && state == Normal - && (widget->windowFlags() & Qt::WindowTitleHint) ) { - painter->setClipRegion(oldClipRegion); - QColor fromBrush, toBrush; - QPen titlePen; - - if (widget == qApp->activeWindow() || qApp->activeWindow() == qApp->activePopupWidget()) { - fromBrush = pal.color(QPalette::Highlight); - titlePen = pal.color(QPalette::HighlightedText); - } else { - fromBrush = pal.color(QPalette::Window); - titlePen = pal.color(QPalette::Text); - } - toBrush = fromBrush.lighter(300); - - painter->setPen(Qt::NoPen); - QPoint p1(titleRect.x(), titleRect.y() + titleRect.height()/2); - QPoint p2(titleRect.right(), titleRect.y() + titleRect.height()/2); - QLinearGradient lg(p1, p2); - lg.setColorAt(0, fromBrush); - lg.setColorAt(1, toBrush); - painter->fillRect(titleRect, lg); - - painter->setPen(titlePen); - painter->drawText(titleRect, Qt::AlignVCenter, windowTitleFor(widget)); - decorationRegion ^= Title; - } - - return QDecorationDefault::paint(painter, widget, decorationRegion, state); -} - -void QDecorationWindows::paintButton(QPainter *painter, const QWidget *widget, int buttonRegion, - DecorationState state, const QPalette &pal) -{ - QBrush fromBrush, toBrush; - QPen titlePen; - - if (widget == qApp->activeWindow() || qApp->activeWindow() == qApp->activePopupWidget()) { - fromBrush = pal.brush(QPalette::Highlight); - titlePen = pal.color(QPalette::HighlightedText); - } else { - fromBrush = pal.brush(QPalette::Window); - titlePen = pal.color(QPalette::Text); - } - toBrush = fromBrush.color().lighter(300); - - QRect brect(QDecoration::region(widget, buttonRegion).boundingRect()); - if (buttonRegion != Close && buttonRegion != Menu) - painter->fillRect(brect, toBrush); - else - painter->fillRect(brect.x() - 2, brect.y(), brect.width() + 4, brect.height(), - buttonRegion == Menu ? fromBrush : toBrush); - - int xoff = 1; - int yoff = 2; - const QPixmap pm = pixmapFor(widget, buttonRegion, xoff, yoff); - if (buttonRegion != Menu) { - if (state & Normal) { - qDrawWinPanel(painter, brect.x(), brect.y() + 2, brect.width(), - brect.height() - 4, pal, false, &pal.brush(QPalette::Window)); - } else if (state & Pressed) { - qDrawWinPanel(painter, brect.x(), brect.y() + 2, brect.width(), - brect.height() - 4, pal, true, &pal.brush(QPalette::Window)); - ++xoff; - ++yoff; - } - } else { - xoff = 0; - yoff = 2; - } - - if (!pm.isNull()) - painter->drawPixmap(brect.x() + xoff, brect.y() + yoff, pm); -} - -#endif // QT_NO_QWS_DECORATION_WINDOWS || QT_PLUGIN - -QT_END_NAMESPACE |