aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@digia.com>2013-10-01 22:36:01 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-10-02 14:33:29 +0200
commitb449a6efebcd2e9cb4744a7ce0c170b774488e99 (patch)
tree19a15fb4f78397fb15c668ff640f04f2a3c902fd
parente69c2ad2dea3667aca998dd992541c066b8c6957 (diff)
Turn QtWin back to a namespace
The conditional QT_WIDGETS_LIB inline functions won't work on MSVC when they are class members. Symbols would have to be exported from the lib. The enum duplication can be hopefully solved later by adding Q_ENUMS() support for namespaces. Change-Id: Ibf01e9c64db2be7e5f189f2088e879e9d8fabf54 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
-rw-r--r--src/imports/winextras/plugin.cpp3
-rw-r--r--src/imports/winextras/qquickdwmfeatures.cpp12
-rw-r--r--src/imports/winextras/qquickdwmfeatures_p.h8
-rw-r--r--src/imports/winextras/qquickdwmfeatures_p_p.h2
-rw-r--r--src/imports/winextras/qquickwin_p.h74
-rw-r--r--src/imports/winextras/winextras.pro3
-rw-r--r--src/winextras/qwinfunctions.h112
7 files changed, 141 insertions, 73 deletions
diff --git a/src/imports/winextras/plugin.cpp b/src/imports/winextras/plugin.cpp
index db74e4f..f111863 100644
--- a/src/imports/winextras/plugin.cpp
+++ b/src/imports/winextras/plugin.cpp
@@ -47,6 +47,7 @@
#include "qquickjumplistcategory_p.h"
#include "qquickthumbnailtoolbar_p.h"
#include "qquickthumbnailtoolbutton_p.h"
+#include "qquickwin_p.h"
#include <QtQml/QtQml>
@@ -61,7 +62,7 @@ public:
void registerTypes(const char *uri) Q_DECL_OVERRIDE
{
Q_ASSERT(uri == QLatin1String("QtWinExtras"));
- qmlRegisterUncreatableType<QtWin>(uri, 1, 0, "QtWin", "Cannot create an instance of the QtWin namespace.");
+ qmlRegisterUncreatableType<QQuickWin>(uri, 1, 0, "QtWin", "Cannot create an instance of the QtWin namespace.");
qmlRegisterType<QQuickDwmFeatures>(uri, 1, 0, "DwmFeatures");
qmlRegisterType<QQuickTaskbarButton>(uri, 1, 0, "TaskbarButton");
qmlRegisterUncreatableType<QWinTaskbarProgress>(uri, 1, 0, "TaskbarProgress", "Cannot create TaskbarProgress - use TaskbarButton.progress instead.");
diff --git a/src/imports/winextras/qquickdwmfeatures.cpp b/src/imports/winextras/qquickdwmfeatures.cpp
index 73d800e..0723d96 100644
--- a/src/imports/winextras/qquickdwmfeatures.cpp
+++ b/src/imports/winextras/qquickdwmfeatures.cpp
@@ -249,16 +249,16 @@ void QQuickDwmFeatures::setPeekDisallowed(bool disallow)
The current Flip3D policy for the window.
*/
-QtWin::WindowFlip3DPolicy QQuickDwmFeatures::flip3DPolicy() const
+QQuickWin::WindowFlip3DPolicy QQuickDwmFeatures::flip3DPolicy() const
{
Q_D(const QQuickDwmFeatures);
if (window())
- return QtWin::windowFlip3DPolicy(window());
+ return static_cast<QQuickWin::WindowFlip3DPolicy>(QtWin::windowFlip3DPolicy(window()));
else
return d->flipPolicy;
}
-void QQuickDwmFeatures::setFlip3DPolicy(QtWin::WindowFlip3DPolicy policy)
+void QQuickDwmFeatures::setFlip3DPolicy(QQuickWin::WindowFlip3DPolicy policy)
{
Q_D(QQuickDwmFeatures);
if (d->flipPolicy == policy)
@@ -308,7 +308,7 @@ void QQuickDwmFeatures::itemChange(QQuickItem::ItemChange change, const QQuickIt
QQuickDwmFeaturesPrivate::QQuickDwmFeaturesPrivate(QQuickDwmFeatures *parent) :
topMargin(0), rightMargin(0), bottomMargin(0), leftMargin(0),
- peekDisallowed(false), peekExcluded(false), flipPolicy(QtWin::FlipDefault),
+ peekDisallowed(false), peekExcluded(false), flipPolicy(QQuickWin::FlipDefault),
q_ptr(parent), formatSet(false)
{
}
@@ -329,8 +329,8 @@ void QQuickDwmFeaturesPrivate::update()
QtWin::setWindowExcludedFromPeek(w, peekExcluded);
if (peekDisallowed)
QtWin::setWindowDisallowPeek(w, peekDisallowed);
- if (flipPolicy != QtWin::FlipDefault)
- QtWin::setWindowFlip3DPolicy(w, flipPolicy);
+ if (flipPolicy != QQuickWin::FlipDefault)
+ QtWin::setWindowFlip3DPolicy(w, static_cast<QtWin::WindowFlip3DPolicy>(flipPolicy));
if (topMargin || rightMargin || bottomMargin || leftMargin)
QtWin::extendFrameIntoClientArea(w, leftMargin, topMargin, rightMargin, bottomMargin);
}
diff --git a/src/imports/winextras/qquickdwmfeatures_p.h b/src/imports/winextras/qquickdwmfeatures_p.h
index 1b58142..5c8db12 100644
--- a/src/imports/winextras/qquickdwmfeatures_p.h
+++ b/src/imports/winextras/qquickdwmfeatures_p.h
@@ -46,6 +46,8 @@
#include <QQuickItem>
#include <QWinFunctions>
+#include "qquickwin_p.h"
+
QT_BEGIN_NAMESPACE
class QQuickDwmFeaturesPrivate;
@@ -63,7 +65,7 @@ class QQuickDwmFeatures : public QQuickItem
Q_PROPERTY(int leftGlassMargin READ leftGlassMargin WRITE setLeftGlassMargin NOTIFY leftGlassMarginChanged)
Q_PROPERTY(bool excludedFromPeek READ isExcludedFromPeek WRITE setExcludedFromPeek NOTIFY excludedFromPeekChanged)
Q_PROPERTY(bool peekDisallowed READ isPeekDisallowed WRITE setPeekDisallowed NOTIFY peekDisallowedChanged)
- Q_PROPERTY(QtWin::WindowFlip3DPolicy flip3DPolicy READ flip3DPolicy WRITE setFlip3DPolicy NOTIFY flip3DPolicyChanged)
+ Q_PROPERTY(QQuickWin::WindowFlip3DPolicy flip3DPolicy READ flip3DPolicy WRITE setFlip3DPolicy NOTIFY flip3DPolicyChanged)
public:
explicit QQuickDwmFeatures(QQuickItem *parent = 0);
@@ -88,8 +90,8 @@ public:
void setExcludedFromPeek(bool exclude);
bool isPeekDisallowed() const;
void setPeekDisallowed(bool disallow);
- QtWin::WindowFlip3DPolicy flip3DPolicy() const;
- void setFlip3DPolicy(QtWin::WindowFlip3DPolicy policy);
+ QQuickWin::WindowFlip3DPolicy flip3DPolicy() const;
+ void setFlip3DPolicy(QQuickWin::WindowFlip3DPolicy policy);
bool eventFilter(QObject *, QEvent *) Q_DECL_OVERRIDE;
diff --git a/src/imports/winextras/qquickdwmfeatures_p_p.h b/src/imports/winextras/qquickdwmfeatures_p_p.h
index d371844..747ea5e 100644
--- a/src/imports/winextras/qquickdwmfeatures_p_p.h
+++ b/src/imports/winextras/qquickdwmfeatures_p_p.h
@@ -58,7 +58,7 @@ public:
bool peekDisallowed;
bool peekExcluded;
- QtWin::WindowFlip3DPolicy flipPolicy;
+ QQuickWin::WindowFlip3DPolicy flipPolicy;
void update();
diff --git a/src/imports/winextras/qquickwin_p.h b/src/imports/winextras/qquickwin_p.h
new file mode 100644
index 0000000..ecc908d
--- /dev/null
+++ b/src/imports/winextras/qquickwin_p.h
@@ -0,0 +1,74 @@
+/****************************************************************************
+ **
+ ** Copyright (C) 2013 Ivan Vizir <define-true-false@yandex.com>
+ ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+ ** Contact: http://www.qt-project.org/legal
+ **
+ ** This file is part of the QtWinExtras module of the Qt Toolkit.
+ **
+ ** $QT_BEGIN_LICENSE:LGPL$
+ ** 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 Digia. For licensing terms and
+ ** conditions see http://qt.digia.com/licensing. For further information
+ ** use the contact form at http://qt.digia.com/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 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, Digia gives you certain additional
+ ** rights. These rights are described in the Digia 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.
+ **
+ **
+ ** $QT_END_LICENSE$
+ **
+ ****************************************************************************/
+
+#ifndef QQUICKWIN_P_H
+#define QQUICKWIN_P_H
+
+#include <QObject>
+#include <QWinFunctions>
+
+QT_BEGIN_NAMESPACE
+
+class QQuickWin : public QObject
+{
+ Q_OBJECT
+ Q_ENUMS(HBitmapFormat WindowFlip3DPolicy)
+
+public:
+ enum HBitmapFormat
+ {
+ HBitmapNoAlpha = QtWin::HBitmapNoAlpha,
+ HBitmapPremultipliedAlpha = QtWin::HBitmapPremultipliedAlpha,
+ HBitmapAlpha = QtWin::HBitmapAlpha
+ };
+
+ enum WindowFlip3DPolicy
+ {
+ FlipDefault = QtWin::FlipDefault,
+ FlipExcludeBelow = QtWin::FlipExcludeBelow,
+ FlipExcludeAbove = QtWin::FlipExcludeAbove
+ };
+};
+
+QT_END_NAMESPACE
+
+#endif // QQUICKWIN_P_H
diff --git a/src/imports/winextras/winextras.pro b/src/imports/winextras/winextras.pro
index 869c622..4a646af 100644
--- a/src/imports/winextras/winextras.pro
+++ b/src/imports/winextras/winextras.pro
@@ -19,7 +19,8 @@ HEADERS += \
qquickjumplistcategory_p.h \
qquickthumbnailtoolbar_p.h \
qquickthumbnailtoolbutton_p.h \
- qquickiconloader_p.h
+ qquickiconloader_p.h \
+ qquickwin_p.h
SOURCES += \
plugin.cpp \
diff --git a/src/winextras/qwinfunctions.h b/src/winextras/qwinfunctions.h
index 15ebda1..b03a426 100644
--- a/src/winextras/qwinfunctions.h
+++ b/src/winextras/qwinfunctions.h
@@ -63,18 +63,8 @@ class QWindow;
class QString;
class QMargins;
-#ifdef Q_QDOC
namespace QtWin
{
-#else
-class Q_WINEXTRAS_EXPORT QtWin
-{
- Q_GADGET
- Q_ENUMS(HBitmapFormat WindowFlip3DPolicy)
-
-public:
-#endif // !Q_QDOC
-
enum HBitmapFormat
{
HBitmapNoAlpha,
@@ -89,57 +79,57 @@ public:
FlipExcludeAbove
};
- static HBITMAP createMask(const QBitmap &bitmap);
- static HBITMAP toHBITMAP(const QPixmap &p, HBitmapFormat format = HBitmapNoAlpha);
- static QPixmap fromHBITMAP(HBITMAP bitmap, HBitmapFormat format = HBitmapNoAlpha);
- static HICON toHICON(const QPixmap &p);
- static QImage imageFromHBITMAP(HDC hdc, HBITMAP bitmap, int width, int height);
- static QPixmap fromHICON(HICON icon);
- static HRGN toHRGN(const QRegion &region);
- static QRegion fromHRGN(HRGN hrgn);
+ Q_WINEXTRAS_EXPORT HBITMAP createMask(const QBitmap &bitmap);
+ Q_WINEXTRAS_EXPORT HBITMAP toHBITMAP(const QPixmap &p, HBitmapFormat format = HBitmapNoAlpha);
+ Q_WINEXTRAS_EXPORT QPixmap fromHBITMAP(HBITMAP bitmap, HBitmapFormat format = HBitmapNoAlpha);
+ Q_WINEXTRAS_EXPORT HICON toHICON(const QPixmap &p);
+ Q_WINEXTRAS_EXPORT QImage imageFromHBITMAP(HDC hdc, HBITMAP bitmap, int width, int height);
+ Q_WINEXTRAS_EXPORT QPixmap fromHICON(HICON icon);
+ Q_WINEXTRAS_EXPORT HRGN toHRGN(const QRegion &region);
+ Q_WINEXTRAS_EXPORT QRegion fromHRGN(HRGN hrgn);
- static QString stringFromHresult(HRESULT hresult);
- static QString errorStringFromHresult(HRESULT hresult);
+ Q_WINEXTRAS_EXPORT QString stringFromHresult(HRESULT hresult);
+ Q_WINEXTRAS_EXPORT QString errorStringFromHresult(HRESULT hresult);
- static QColor colorizationColor(bool *opaqueBlend = 0);
- static QColor realColorizationColor();
+ Q_WINEXTRAS_EXPORT QColor colorizationColor(bool *opaqueBlend = 0);
+ Q_WINEXTRAS_EXPORT QColor realColorizationColor();
- static void setWindowExcludedFromPeek(QWindow *window, bool exclude);
- static bool isWindowExcludedFromPeek(QWindow *window);
- static void setWindowDisallowPeek(QWindow *window, bool disallow);
- static bool isWindowPeekDisallowed(QWindow *window);
- static void setWindowFlip3DPolicy(QWindow *window, WindowFlip3DPolicy policy);
- static WindowFlip3DPolicy windowFlip3DPolicy(QWindow *);
+ Q_WINEXTRAS_EXPORT void setWindowExcludedFromPeek(QWindow *window, bool exclude);
+ Q_WINEXTRAS_EXPORT bool isWindowExcludedFromPeek(QWindow *window);
+ Q_WINEXTRAS_EXPORT void setWindowDisallowPeek(QWindow *window, bool disallow);
+ Q_WINEXTRAS_EXPORT bool isWindowPeekDisallowed(QWindow *window);
+ Q_WINEXTRAS_EXPORT void setWindowFlip3DPolicy(QWindow *window, WindowFlip3DPolicy policy);
+ Q_WINEXTRAS_EXPORT WindowFlip3DPolicy windowFlip3DPolicy(QWindow *);
- static void extendFrameIntoClientArea(QWindow *window, int left, int top, int right, int bottom);
- static void extendFrameIntoClientArea(QWindow *window, const QMargins &margins);
- static void resetExtendedFrame(QWindow *window);
+ Q_WINEXTRAS_EXPORT void extendFrameIntoClientArea(QWindow *window, int left, int top, int right, int bottom);
+ Q_WINEXTRAS_EXPORT void extendFrameIntoClientArea(QWindow *window, const QMargins &margins);
+ Q_WINEXTRAS_EXPORT void resetExtendedFrame(QWindow *window);
- static void enableBlurBehindWindow(QWindow *window, const QRegion &region);
- static void enableBlurBehindWindow(QWindow *window);
- static void disableBlurBehindWindow(QWindow *window);
+ Q_WINEXTRAS_EXPORT void enableBlurBehindWindow(QWindow *window, const QRegion &region);
+ Q_WINEXTRAS_EXPORT void enableBlurBehindWindow(QWindow *window);
+ Q_WINEXTRAS_EXPORT void disableBlurBehindWindow(QWindow *window);
- static bool isCompositionEnabled();
- static void setCompositionEnabled(bool enabled);
- static bool isCompositionOpaque();
+ Q_WINEXTRAS_EXPORT bool isCompositionEnabled();
+ Q_WINEXTRAS_EXPORT void setCompositionEnabled(bool enabled);
+ Q_WINEXTRAS_EXPORT bool isCompositionOpaque();
- static void setCurrentProcessExplicitAppUserModelID(const QString &id);
+ Q_WINEXTRAS_EXPORT void setCurrentProcessExplicitAppUserModelID(const QString &id);
- static void markFullscreenWindow(QWindow *, bool fullscreen = true);
+ Q_WINEXTRAS_EXPORT void markFullscreenWindow(QWindow *, bool fullscreen = true);
- static void taskbarActivateTab(QWindow *);
- static void taskbarActivateTabAlt(QWindow *);
- static void taskbarAddTab(QWindow *);
- static void taskbarDeleteTab(QWindow *);
+ Q_WINEXTRAS_EXPORT void taskbarActivateTab(QWindow *);
+ Q_WINEXTRAS_EXPORT void taskbarActivateTabAlt(QWindow *);
+ Q_WINEXTRAS_EXPORT void taskbarAddTab(QWindow *);
+ Q_WINEXTRAS_EXPORT void taskbarDeleteTab(QWindow *);
#ifdef QT_WIDGETS_LIB
- static inline void setWindowExcludedFromPeek(QWidget *window, bool exclude)
+ inline void setWindowExcludedFromPeek(QWidget *window, bool exclude)
{
window->createWinId();
setWindowExcludedFromPeek(window->windowHandle(), exclude);
}
- static inline bool isWindowExcludedFromPeek(QWidget *window)
+ inline bool isWindowExcludedFromPeek(QWidget *window)
{
if (!window->windowHandle())
return false;
@@ -147,13 +137,13 @@ public:
return isWindowExcludedFromPeek(window->windowHandle());
}
- static inline void setWindowDisallowPeek(QWidget *window, bool disallow)
+ inline void setWindowDisallowPeek(QWidget *window, bool disallow)
{
window->createWinId();
setWindowDisallowPeek(window->windowHandle(), disallow);
}
- static inline bool isWindowPeekDisallowed(QWidget *window)
+ inline bool isWindowPeekDisallowed(QWidget *window)
{
if (!window->windowHandle())
return false;
@@ -161,13 +151,13 @@ public:
return isWindowPeekDisallowed(window->windowHandle());
}
- static inline void setWindowFlip3DPolicy(QWidget *window, WindowFlip3DPolicy policy)
+ inline void setWindowFlip3DPolicy(QWidget *window, WindowFlip3DPolicy policy)
{
window->createWinId();
setWindowFlip3DPolicy(window->windowHandle(), policy);
}
- static inline WindowFlip3DPolicy windowFlip3DPolicy(QWidget *window)
+ inline WindowFlip3DPolicy windowFlip3DPolicy(QWidget *window)
{
if (!window->windowHandle())
return FlipDefault;
@@ -175,73 +165,73 @@ public:
return windowFlip3DPolicy(window->windowHandle());
}
- static inline void extendFrameIntoClientArea(QWidget *window, const QMargins &margins)
+ inline void extendFrameIntoClientArea(QWidget *window, const QMargins &margins)
{
window->createWinId();
extendFrameIntoClientArea(window->windowHandle(), margins);
}
- static inline void extendFrameIntoClientArea(QWidget *window, int left, int top, int right, int bottom)
+ inline void extendFrameIntoClientArea(QWidget *window, int left, int top, int right, int bottom)
{
window->createWinId();
extendFrameIntoClientArea(window->windowHandle(), left, top, right, bottom);
}
- static inline void resetExtendedFrame(QWidget *window)
+ inline void resetExtendedFrame(QWidget *window)
{
if (window->windowHandle())
resetExtendedFrame(window->windowHandle());
}
- static inline void enableBlurBehindWindow(QWidget *window, const QRegion &region)
+ inline void enableBlurBehindWindow(QWidget *window, const QRegion &region)
{
window->createWinId();
enableBlurBehindWindow(window->windowHandle(), region);
}
- static inline void enableBlurBehindWindow(QWidget *window)
+ inline void enableBlurBehindWindow(QWidget *window)
{
window->createWinId();
enableBlurBehindWindow(window->windowHandle());
}
- static inline void disableBlurBehindWindow(QWidget *window)
+ inline void disableBlurBehindWindow(QWidget *window)
{
if (window->windowHandle())
enableBlurBehindWindow(window->windowHandle());
}
- static inline void markFullscreenWindow(QWidget *window, bool fullscreen = true)
+ inline void markFullscreenWindow(QWidget *window, bool fullscreen = true)
{
window->createWinId();
markFullscreenWindow(window->windowHandle(), fullscreen);
}
- static inline void taskbarActivateTab(QWidget *window)
+ inline void taskbarActivateTab(QWidget *window)
{
window->createWinId();
taskbarActivateTab(window->windowHandle());
}
- static inline void taskbarActivateTabAlt(QWidget *window)
+ inline void taskbarActivateTabAlt(QWidget *window)
{
window->createWinId();
taskbarActivateTabAlt(window->windowHandle());
}
- static inline void taskbarAddTab(QWidget *window)
+ inline void taskbarAddTab(QWidget *window)
{
window->createWinId();
taskbarAddTab(window->windowHandle());
}
- static inline void taskbarDeleteTab(QWidget *window)
+ inline void taskbarDeleteTab(QWidget *window)
{
window->createWinId();
taskbarDeleteTab(window->windowHandle());
}
#endif // QT_WIDGETS_LIB
-};
+}
QT_END_NAMESPACE