summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@nokia.com>2012-01-20 17:33:23 +0100
committerQt by Nokia <qt-info@nokia.com>2012-01-24 15:33:19 +0100
commitb0a0403daf81e82ea732aa91ec92cf94553a7935 (patch)
tree6ff862a6fcb854fb527a06db7877b9100f1d96f3
parent37a7b035f8feb248d25741b22e22ffb0ec7463d6 (diff)
QMessageBox: Clean up some Q_WS_WIN code.
Enable 'Close' of system menu according to whether escape button is present. Change-Id: I305e4732f781dbe2d81c2503ee278ec33579acdb Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
-rw-r--r--src/widgets/dialogs/qmessagebox.cpp36
1 files changed, 20 insertions, 16 deletions
diff --git a/src/widgets/dialogs/qmessagebox.cpp b/src/widgets/dialogs/qmessagebox.cpp
index c2718821ae..115c41a082 100644
--- a/src/widgets/dialogs/qmessagebox.cpp
+++ b/src/widgets/dialogs/qmessagebox.cpp
@@ -65,20 +65,27 @@
#include <QtGui/qfontmetrics.h>
#include <QtGui/qclipboard.h>
-#ifndef QT_NO_STYLE_S60
-#include <qs60style.h>
+#ifdef Q_OS_WIN
+# include <QtCore/qt_windows.h>
+# include <QtGui/QPlatformNativeInterface>
#endif
-#ifdef Q_WS_WINCE
-extern bool qt_wince_is_mobile(); //defined in qguifunctions_wince.cpp
-extern bool qt_wince_is_smartphone();//defined in qguifunctions_wince.cpp
-extern bool qt_wince_is_pocket_pc(); //defined in qguifunctions_wince.cpp
+QT_BEGIN_NAMESPACE
-#include "qguifunctions_wince.h"
+#ifdef Q_OS_WIN
+static inline HMENU qt_getWindowsSystemMenu(const QWidget *w)
+{
+ QWindow *window = w->windowHandle();
+ if (!window)
+ if (const QWidget *nativeParent = w->nativeParentWidget())
+ window = nativeParent->windowHandle();
+ if (window)
+ if (void *handle = QGuiApplication::platformNativeInterface()->nativeResourceForWindow("handle", window))
+ return GetSystemMenu(reinterpret_cast<HWND>(handle), FALSE);
+ return 0;
+}
#endif
-QT_BEGIN_NAMESPACE
-
enum Button { Old_Ok = 1, Old_Cancel = 2, Old_Yes = 3, Old_No = 4, Old_Abort = 5, Old_Retry = 6,
Old_Ignore = 7, Old_YesAll = 8, Old_NoAll = 9, Old_ButtonMask = 0xFF,
NewButtonMask = 0xFFFFFC00 };
@@ -1480,13 +1487,10 @@ void QMessageBox::showEvent(QShowEvent *e)
#ifndef QT_NO_ACCESSIBILITY
QAccessible::updateAccessibility(this, 0, QAccessible::Alert);
#endif
-#ifdef Q_WS_WIN
- HMENU systemMenu = GetSystemMenu((HWND)winId(), FALSE);
- if (!d->detectedEscapeButton) {
- EnableMenuItem(systemMenu, SC_CLOSE, MF_BYCOMMAND|MF_GRAYED);
- }
- else {
- EnableMenuItem(systemMenu, SC_CLOSE, MF_BYCOMMAND|MF_ENABLED);
+#ifdef Q_OS_WIN
+ if (const HMENU systemMenu = qt_getWindowsSystemMenu(this)) {
+ EnableMenuItem(systemMenu, SC_CLOSE, d->detectedEscapeButton ?
+ MF_BYCOMMAND|MF_ENABLED : MF_BYCOMMAND|MF_GRAYED);
}
#endif
QDialog::showEvent(e);