diff options
-rw-r--r-- | src/gui/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/gui/image/qpixmap_win.cpp | 17 | ||||
-rw-r--r-- | src/gui/image/qpixmap_win_p.h | 38 | ||||
-rw-r--r-- | src/plugins/platforms/windows/qwindowscursor.cpp | 4 | ||||
-rw-r--r-- | src/plugins/platforms/windows/qwindowsmenu.cpp | 3 | ||||
-rw-r--r-- | src/printsupport/platform/windows/qprintengine_win.cpp | 2 |
6 files changed, 51 insertions, 15 deletions
diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt index e1b1f5859d..96a1ae4bd5 100644 --- a/src/gui/CMakeLists.txt +++ b/src/gui/CMakeLists.txt @@ -392,7 +392,7 @@ qt_internal_extend_target(Gui CONDITION QT_FEATURE_animation qt_internal_extend_target(Gui CONDITION WIN32 SOURCES - image/qpixmap_win.cpp + image/qpixmap_win.cpp image/qpixmap_win_p.h kernel/qwindowdefs_win.h platform/windows/qwindowsguieventdispatcher.cpp platform/windows/qwindowsguieventdispatcher_p.h platform/windows/qwindowsmimeconverter.h platform/windows/qwindowsmimeconverter.cpp diff --git a/src/gui/image/qpixmap_win.cpp b/src/gui/image/qpixmap_win.cpp index 47f0eae2ef..5a340aacc7 100644 --- a/src/gui/image/qpixmap_win.cpp +++ b/src/gui/image/qpixmap_win.cpp @@ -3,6 +3,7 @@ #include "qbitmap.h" #include "qpixmap.h" +#include <private/qpixmap_win_p.h> #include <qpa/qplatformpixmap.h> #include "qpixmap_raster_p.h" @@ -206,7 +207,7 @@ static HBITMAP qt_createIconMask(QImage bm) return hbm; } -Q_GUI_EXPORT HBITMAP qt_createIconMask(const QBitmap &bitmap) +HBITMAP qt_createIconMask(const QBitmap &bitmap) { return qt_createIconMask(bitmap.toImage().convertToFormat(QImage::Format_Mono)); } @@ -224,7 +225,7 @@ static inline QImage::Format format32(int hbitmapFormat) return QImage::Format_ARGB32_Premultiplied; } -Q_GUI_EXPORT HBITMAP qt_imageToWinHBITMAP(const QImage &imageIn, int hbitmapFormat = 0) +HBITMAP qt_imageToWinHBITMAP(const QImage &imageIn, int hbitmapFormat) { if (imageIn.isNull()) return nullptr; @@ -350,7 +351,7 @@ HBITMAP QImage::toHBITMAP() const return qt_imageToWinHBITMAP(*this); } -Q_GUI_EXPORT HBITMAP qt_pixmapToWinHBITMAP(const QPixmap &p, int hbitmapFormat = 0) +HBITMAP qt_pixmapToWinHBITMAP(const QPixmap &p, int hbitmapFormat) { if (p.isNull()) return nullptr; @@ -449,7 +450,7 @@ static QImage imageFromWinHBITMAP_GetDiBits(HBITMAP bitmap, bool forceQuads, int return copyImageData(info.bmiHeader, bmiColorTable256.bmiColors, data.data(), imageFormat); } -Q_GUI_EXPORT QImage qt_imageFromWinHBITMAP(HBITMAP bitmap, int hbitmapFormat = 0) +QImage qt_imageFromWinHBITMAP(HBITMAP bitmap, int hbitmapFormat) { QImage result = imageFromWinHBITMAP_DibSection(bitmap, hbitmapFormat); if (result.isNull()) @@ -481,7 +482,7 @@ QImage QImage::fromHBITMAP(HBITMAP hbitmap) return qt_imageFromWinHBITMAP(hbitmap); } -Q_GUI_EXPORT QPixmap qt_pixmapFromWinHBITMAP(HBITMAP bitmap, int hbitmapFormat = 0) +QPixmap qt_pixmapFromWinHBITMAP(HBITMAP bitmap, int hbitmapFormat) { return QPixmap::fromImage(imageFromWinHBITMAP_GetDiBits(bitmap, /* forceQuads */ true, hbitmapFormat)); } @@ -532,7 +533,7 @@ HICON QImage::toHICON(const QImage &mask) const return hIcon; } -Q_GUI_EXPORT HICON qt_pixmapToWinHICON(const QPixmap &p) +HICON qt_pixmapToWinHICON(const QPixmap &p) { QImage mask; QBitmap maskBitmap = p.mask(); @@ -541,7 +542,7 @@ Q_GUI_EXPORT HICON qt_pixmapToWinHICON(const QPixmap &p) return p.toImage().toHICON(mask); } -Q_GUI_EXPORT QImage qt_imageFromWinHBITMAP(HDC hdc, HBITMAP bitmap, int w, int h) +QImage qt_imageFromWinHBITMAP(HDC hdc, HBITMAP bitmap, int w, int h) { QImage image(w, h, QImage::Format_ARGB32_Premultiplied); if (image.isNull()) @@ -641,7 +642,7 @@ QImage QImage::fromHICON(HICON icon) return image; } -Q_GUI_EXPORT QPixmap qt_pixmapFromWinHICON(HICON icon) +QPixmap qt_pixmapFromWinHICON(HICON icon) { return QPixmap::fromImage(QImage::fromHICON(icon)); } diff --git a/src/gui/image/qpixmap_win_p.h b/src/gui/image/qpixmap_win_p.h new file mode 100644 index 0000000000..64abca3428 --- /dev/null +++ b/src/gui/image/qpixmap_win_p.h @@ -0,0 +1,38 @@ +// Copyright (C) 2023 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QPIXMAP_WIN_P_H +#define QPIXMAP_WIN_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include <QtGui/private/qtguiglobal_p.h> +#include <QtCore/qt_windows.h> + +QT_BEGIN_NAMESPACE + +class QBitmap; +class QImage; +class QPixmap; + +Q_GUI_EXPORT HBITMAP qt_createIconMask(const QBitmap &bitmap); +Q_GUI_EXPORT HBITMAP qt_imageToWinHBITMAP(const QImage &imageIn, int hbitmapFormat = 0); +Q_GUI_EXPORT HBITMAP qt_pixmapToWinHBITMAP(const QPixmap &p, int hbitmapFormat = 0); +Q_GUI_EXPORT QImage qt_imageFromWinHBITMAP(HBITMAP bitmap, int hbitmapFormat = 0); +Q_GUI_EXPORT QPixmap qt_pixmapFromWinHBITMAP(HBITMAP bitmap, int hbitmapFormat = 0); +Q_GUI_EXPORT HICON qt_pixmapToWinHICON(const QPixmap &p); +Q_GUI_EXPORT QImage qt_imageFromWinHBITMAP(HDC hdc, HBITMAP bitmap, int w, int h); +Q_GUI_EXPORT QPixmap qt_pixmapFromWinHICON(HICON icon); + +QT_END_NAMESPACE + +#endif // QPIXMAP_WIN_P_H diff --git a/src/plugins/platforms/windows/qwindowscursor.cpp b/src/plugins/platforms/windows/qwindowscursor.cpp index 5b904709ef..77903f6b6f 100644 --- a/src/plugins/platforms/windows/qwindowscursor.cpp +++ b/src/plugins/platforms/windows/qwindowscursor.cpp @@ -14,6 +14,7 @@ #include <QtGui/qscreen.h> #include <QtGui/private/qguiapplication_p.h> // getPixmapCursor() #include <QtGui/private/qhighdpiscaling_p.h> +#include <QtGui/private/qpixmap_win_p.h> #include <QtCore/private/qwinregistry_p.h> #include <QtCore/qdebug.h> @@ -29,9 +30,6 @@ static bool initResources() QT_BEGIN_NAMESPACE -Q_GUI_EXPORT HBITMAP qt_pixmapToWinHBITMAP(const QPixmap &p, int hbitmapFormat = 0); -Q_GUI_EXPORT HBITMAP qt_createIconMask(const QBitmap &bitmap); - /*! \class QWindowsCursorCacheKey \brief Cache key for storing values in a QHash with a QCursor as key. diff --git a/src/plugins/platforms/windows/qwindowsmenu.cpp b/src/plugins/platforms/windows/qwindowsmenu.cpp index 403ce52cb0..79deeeaea2 100644 --- a/src/plugins/platforms/windows/qwindowsmenu.cpp +++ b/src/plugins/platforms/windows/qwindowsmenu.cpp @@ -6,6 +6,7 @@ #include "qwindowswindow.h" #include <QtGui/qwindow.h> +#include <QtGui/private/qpixmap_win_p.h> #include <QtCore/qdebug.h> #include <QtCore/qvariant.h> #include <QtCore/qmetaobject.h> @@ -229,8 +230,6 @@ void QWindowsMenuItem::setIcon(const QIcon &icon) updateBitmap(); } -Q_GUI_EXPORT HBITMAP qt_pixmapToWinHBITMAP(const QPixmap &p, int hbitmapFormat = 0); - void QWindowsMenuItem::updateBitmap() { freeBitmap(); diff --git a/src/printsupport/platform/windows/qprintengine_win.cpp b/src/printsupport/platform/windows/qprintengine_win.cpp index 99075f4ec3..516ed0fc94 100644 --- a/src/printsupport/platform/windows/qprintengine_win.cpp +++ b/src/printsupport/platform/windows/qprintengine_win.cpp @@ -30,10 +30,10 @@ #include <QtCore/QMetaType> #include <QtCore/qt_windows.h> #include <QtGui/qpagelayout.h> +#include <QtGui/private/qpixmap_win_p.h> QT_BEGIN_NAMESPACE -Q_GUI_EXPORT HBITMAP qt_pixmapToWinHBITMAP(const QPixmap &p, int hbitmapFormat = 0); extern QPainterPath qt_regionToPath(const QRegion ®ion); extern QMarginsF qt_convertMargins(const QMarginsF &margins, QPageLayout::Unit fromUnits, QPageLayout::Unit toUnits); |