#include "wx/log.h"
#include "wx/intl.h"
#include "wx/frame.h"
+ #include "wx/menu.h"
#include "wx/containr.h" // wxSetFocusToChild()
#include "wx/module.h"
#endif //WX_PRECOMP
#endif // __SMARTPHONE__ || __POCKETPC__
case WM_SYSCOMMAND:
+ // Keep the #ifdef block inside the case to fix a potential MSVC
+ // warning regarding switch statement containing no case or
+ // default labels (or a default only).
+#ifndef __WXUNIVERSAL__
// We may need to generate events for the items added to the system
// menu if it had been created (and presumably modified).
if ( m_menuSystem )
processed = true;
}
}
+#endif // #ifndef __WXUNIVERSAL__
break;
}
}
#endif // !__WXWINCE__
+#if !defined(__WXWINCE__) || defined(__WINCE_STANDARDSDK__)
// move the dialog to its initial position without forcing repainting
int x, y, w, h;
(void)MSWGetCreateWindowCoords(pos, size, x, y, w, h);
if ( x == (int)CW_USEDEFAULT )
{
- // centre it on the screen - what else can we do?
- wxSize sizeDpy = wxGetDisplaySize();
-
- x = (sizeDpy.x - w) / 2;
- y = (sizeDpy.y - h) / 2;
+ // Let the system position the window, just set its size.
+ ::SetWindowPos(GetHwnd(), 0,
+ 0, 0, w, h,
+ SWP_NOMOVE | SWP_NOZORDER);
}
-
-#if !defined(__WXWINCE__) || defined(__WINCE_STANDARDSDK__)
- if ( !::MoveWindow(GetHwnd(), x, y, w, h, FALSE) )
+ else // Move the window to the desired location and set its size too.
{
- wxLogLastError(wxT("MoveWindow"));
+ if ( !::MoveWindow(GetHwnd(), x, y, w, h, FALSE) )
+ {
+ wxLogLastError(wxT("MoveWindow"));
+ }
}
-#endif
+#endif // !__WXWINCE__
if ( !title.empty() )
{
{
::ShowWindow(GetHwnd(), nShowCmd);
- m_iconized = nShowCmd == SW_MINIMIZE;
+ // Hiding the window doesn't change its iconized state.
+ if ( nShowCmd != SW_HIDE )
+ {
+ // Otherwise restoring, maximizing or showing the window normally also
+ // makes it not iconized and only minimizing it does make it iconized.
+ m_iconized = nShowCmd == SW_MINIMIZE;
+ }
}
void wxTopLevelWindowMSW::ShowWithoutActivating()
wxMenu *wxTopLevelWindowMSW::MSWGetSystemMenu() const
{
+#ifndef __WXUNIVERSAL__
if ( !m_menuSystem )
{
HMENU hmenu = ::GetSystemMenu(GetHwnd(), FALSE);
// correct but doesn't seem to have any serious drawbacks.
m_menuSystem->SetInvokingWindow(self);
}
+#endif // #ifndef __WXUNIVERSAL__
return m_menuSystem;
}