summaryrefslogtreecommitdiffstats
path: root/src/widgets/dialogs
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@nokia.com>2012-01-27 14:09:36 +0100
committerQt by Nokia <qt-info@nokia.com>2012-01-30 16:40:02 +0100
commit870f19f44b1eb2b93c7151dd48b8d9cd471acae8 (patch)
tree111a6ae7cf59b83ca6f872bd537b4c8a635d8800 /src/widgets/dialogs
parentb3a978d661b7d85b637e8e8a134bd1df925947f8 (diff)
Add native event filters to Windows, forward to Widgets.
Use prototypically for qwizard_win.cpp. Change-Id: I075e81ae1bc3d62d9f27e51c73c800ffd71cbcd6 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Diffstat (limited to 'src/widgets/dialogs')
-rw-r--r--src/widgets/dialogs/qwizard.cpp13
-rw-r--r--src/widgets/dialogs/qwizard.h4
-rw-r--r--src/widgets/dialogs/qwizard_win.cpp17
3 files changed, 18 insertions, 16 deletions
diff --git a/src/widgets/dialogs/qwizard.cpp b/src/widgets/dialogs/qwizard.cpp
index 2c56ffc391..4e707ab7c1 100644
--- a/src/widgets/dialogs/qwizard.cpp
+++ b/src/widgets/dialogs/qwizard.cpp
@@ -3205,16 +3205,17 @@ void QWizard::paintEvent(QPaintEvent * event)
#endif
}
-#if defined(Q_WS_WIN)
+#if defined(Q_OS_WIN)
/*!
\reimp
*/
-bool QWizard::winEvent(MSG *message, long *result)
+bool QWizard::nativeEvent(const QByteArray &eventType, void *message, long *result)
{
#if !defined(QT_NO_STYLE_WINDOWSVISTA)
Q_D(QWizard);
- if (d->isVistaThemeEnabled()) {
- const bool winEventResult = d->vistaHelper->handleWinEvent(message, result);
+ if (d->isVistaThemeEnabled() && eventType == QByteArrayLiteral("windows_generic_MSG")) {
+ MSG *windowsMessage = static_cast<MSG *>(message);
+ const bool winEventResult = d->vistaHelper->handleWinEvent(windowsMessage, result);
if (QVistaHelper::vistaState() != d->vistaState) {
d->vistaState = QVistaHelper::vistaState();
d->vistaStateChanged = true;
@@ -3222,10 +3223,10 @@ bool QWizard::winEvent(MSG *message, long *result)
}
return winEventResult;
} else {
- return QDialog::winEvent(message, result);
+ return QDialog::nativeEvent(eventType, message, result);
}
#else
- return QDialog::winEvent(message, result);
+ return QDialog::nativeEvent(eventType, message, result);
#endif
}
#endif
diff --git a/src/widgets/dialogs/qwizard.h b/src/widgets/dialogs/qwizard.h
index cd8920671f..caa9d5e648 100644
--- a/src/widgets/dialogs/qwizard.h
+++ b/src/widgets/dialogs/qwizard.h
@@ -189,8 +189,8 @@ protected:
bool event(QEvent *event);
void resizeEvent(QResizeEvent *event);
void paintEvent(QPaintEvent *event);
-#if defined(Q_WS_WIN)
- bool winEvent(MSG * message, long * result);
+#ifdef Q_OS_WIN
+ bool nativeEvent(const QByteArray &eventType, void * message, long * result);
#endif
void done(int result);
virtual void initializePage(int id);
diff --git a/src/widgets/dialogs/qwizard_win.cpp b/src/widgets/dialogs/qwizard_win.cpp
index 3efd8274bd..d60a47f2c2 100644
--- a/src/widgets/dialogs/qwizard_win.cpp
+++ b/src/widgets/dialogs/qwizard_win.cpp
@@ -399,12 +399,13 @@ bool QVistaHelper::winEvent(MSG* msg, long* result)
*result = DefWindowProc(msg->hwnd, msg->message, msg->wParam, msg->lParam);
break;
}
- case WM_NCCALCSIZE: {
- NCCALCSIZE_PARAMS* lpncsp = (NCCALCSIZE_PARAMS*)msg->lParam;
- *result = DefWindowProc(msg->hwnd, msg->message, msg->wParam, msg->lParam);
- lpncsp->rgrc[0].top -= (vistaState() == VistaAero ? titleBarSize() : 0);
- break;
- }
+// case WM_NCCALCSIZE: { #fixme: If the frame size is changed, it needs to be communicated to the QWindow.
+// NCCALCSIZE_PARAMS* lpncsp = (NCCALCSIZE_PARAMS*)msg->lParam;
+// *result = DefWindowProc(msg->hwnd, msg->message, msg->wParam, msg->lParam);
+// lpncsp->rgrc[0].top -= (vistaState() == VistaAero ? titleBarSize() : 0);
+//
+// break;
+// }
default:
retval = false;
}
@@ -480,8 +481,8 @@ bool QVistaHelper::handleWinEvent(MSG *message, long *result)
if (wizard->wizardStyle() == QWizard::AeroStyle && vistaState() == VistaAero) {
status = winEvent(message, result);
if (message->message == WM_NCCALCSIZE) {
- if (status)
- collapseTopFrameStrut();
+// if (status) #fixme
+// collapseTopFrameStrut();
} else if (message->message == WM_NCPAINT) {
wizard->update();
}