summaryrefslogtreecommitdiffstats
path: root/src/widgets/styles/qpixmapstyle_p_p.h
diff options
context:
space:
mode:
authorRafael Roquetto <rafael.roquetto.qnx@kdab.com>2015-09-21 14:54:00 +0000
committerLouai Al-Khanji <louai.al-khanji@theqtcompany.com>2015-11-19 15:43:53 +0000
commit986a5262e3e753958a6ec9058eb7332d44a9065f (patch)
tree5c097e240cafb439ab10fd0127180ccaeaad9676 /src/widgets/styles/qpixmapstyle_p_p.h
parent3d93fb077109e2190ca5f2c7ad04a46768ccad50 (diff)
Add QPixmapStyle class
The QPixmapStyle class provides a mechanism for implementing pixmap based QStyles, using the same concept introduced by the BorderImage QML component. The bb10style plugin in qtstyleplugins uses this class and is currently the only user. Change-Id: Ibfa2104e95ba6a91e89a6277baa97a7fc9edaec2 Done-with: Louai Al-Khanji <louai.al-khanji@theqtcompany.com> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
Diffstat (limited to 'src/widgets/styles/qpixmapstyle_p_p.h')
-rw-r--r--src/widgets/styles/qpixmapstyle_p_p.h86
1 files changed, 86 insertions, 0 deletions
diff --git a/src/widgets/styles/qpixmapstyle_p_p.h b/src/widgets/styles/qpixmapstyle_p_p.h
new file mode 100644
index 0000000000..6fb274d3a5
--- /dev/null
+++ b/src/widgets/styles/qpixmapstyle_p_p.h
@@ -0,0 +1,86 @@
+/****************************************************************************
+**
+** Copyright (C) 2015 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the QtWidgets module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** As a special exception, The Qt Company gives you certain additional
+** rights. These rights are described in The Qt Company LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QPIXMAPSTYLE_P_H
+#define QPIXMAPSTYLE_P_H
+
+#include "qpixmapstyle_p.h"
+#include "qcommonstyle_p.h"
+
+QT_BEGIN_NAMESPACE
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists for the convenience
+// of qapplication_*.cpp, qwidget*.cpp and qfiledialog.cpp. This header
+// file may change from version to version without notice, or even be removed.
+//
+// We mean it.
+//
+
+struct QPixmapStyleDescriptor
+{
+ QString fileName;
+ QSize size;
+ QMargins margins;
+ QTileRules tileRules;
+};
+
+struct QPixmapStylePixmap
+{
+ QPixmap pixmap;
+ QMargins margins;
+};
+
+class QPixmapStylePrivate : public QCommonStylePrivate
+{
+ Q_DECLARE_PUBLIC(QPixmapStyle)
+
+public:
+ QHash<QPixmapStyle::ControlDescriptor, QPixmapStyleDescriptor> descriptors;
+ QHash<QPixmapStyle::ControlPixmap, QPixmapStylePixmap> pixmaps;
+
+ static QPixmap scale(int w, int h, const QPixmap &pixmap, const QPixmapStyleDescriptor &desc);
+
+ QPixmap getCachedPixmap(QPixmapStyle::ControlDescriptor control,
+ const QPixmapStyleDescriptor &desc,
+ const QSize &size) const;
+
+ QSize computeSize(const QPixmapStyleDescriptor &desc, int width, int height) const;
+};
+
+QT_END_NAMESPACE
+
+#endif // QPIXMAPSTYLE_P_H