]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/toplevel.cpp
Remove unused headers.
[wxWidgets.git] / src / msw / toplevel.cpp
index 09e60871b188c478e10252f4b87d6a0107570da1..2b7fdf4a48676b94d74395dfbc7ac36bf1a70a98 100644 (file)
@@ -148,10 +148,6 @@ void wxTopLevelWindowMSW::Init()
 #if defined(__SMARTPHONE__) && defined(__WXWINCE__)
     m_MenuBarHWND = 0;
 #endif
-#ifdef __POCKETPC__
-    // A dummy menubar for dialogs
-    m_menuBarHWND = 0;
-#endif
 }
 
 WXDWORD wxTopLevelWindowMSW::MSWGetStyle(long style, WXDWORD *exflags) const
@@ -185,8 +181,10 @@ WXDWORD wxTopLevelWindowMSW::MSWGetStyle(long style, WXDWORD *exflags) const
         *exflags |= WS_EX_DLGMODALFRAME;
     else if ( !(style & wxBORDER_NONE) )
         msflags |= WS_BORDER;
+#ifndef __POCKETPC__
     else
         msflags |= WS_POPUP;
+#endif
 #endif
 
     // normally we consider that all windows without a caption must be popups,
@@ -419,27 +417,6 @@ bool wxTopLevelWindowMSW::CreateDialog(const void *dlgTemplate,
         ::SetWindowText(GetHwnd(), title);
     }
 
-#ifdef __POCKETPC__
-    // Create an empty menubar so that we don't see the menubar underneath
-    SHMENUBARINFO mbi;
-
-    memset (&mbi, 0, sizeof (SHMENUBARINFO));
-    mbi.cbSize     = sizeof (SHMENUBARINFO);
-    mbi.hwndParent = (HWND) GetParent()->GetHWND();
-    mbi.nToolBarId = 5000;
-    mbi.nBmpId     = 0;
-    mbi.cBmpImages = 0;
-    mbi.dwFlags = 0 ; // SHCMBF_EMPTYBAR;
-    mbi.hInstRes = wxGetInstance();
-
-    if (!SHCreateMenuBar(&mbi))
-    {
-        wxFAIL_MSG( _T("SHCreateMenuBar failed") );
-    }
-
-    m_menuBarHWND = (WXHWND) mbi.hwndMB;
-#endif
-
     SubclassWin(m_hWnd);
     
 #ifdef __SMARTPHONE__
@@ -470,10 +447,6 @@ bool wxTopLevelWindowMSW::CreateFrame(const wxString& title,
 
     bool result = MSWCreate(wxCanvasClassName, title, pos, sz, flags, exflags);
 
-#ifdef __SMARTPHONE__
-    // Work around title non-display glitch
-    Show(false);
-#endif
     return result;
 }
 
@@ -533,9 +506,11 @@ bool wxTopLevelWindowMSW::Create(wxWindow *parent,
         // all dialogs are popups
         dlgTemplate->style |= WS_POPUP;
 
+#ifndef __WXWINCE__
         // force 3D-look if necessary, it looks impossibly ugly otherwise
         if ( style & (wxRESIZE_BORDER | wxCAPTION) )
             dlgTemplate->style |= DS_MODALFRAME;
+#endif
 
         ret = CreateDialog(dlgTemplate, title, pos, sizeReal);
         free(dlgTemplate);
@@ -569,9 +544,8 @@ bool wxTopLevelWindowMSW::Create(wxWindow *parent,
         );
     }
 
-    // Native look is full screen window on Smartphones and Standard SDK.
-    // TODO: check that we need this (if we're passing default values to ctor).
-    // Also check that there really is a difference between PocketPC and Smartphone in this regard.
+    // Note: if we include PocketPC in this test, dialogs can fail to show up,
+    // for example the text entry dialog in the dialogs sample. Problem with Maximise()?
 #if defined(__WXWINCE__) && (defined(__SMARTPHONE__) || defined(__WINCE_STANDARDSDK__))
     if ( style & wxMAXIMIZE )
     {
@@ -588,15 +562,6 @@ bool wxTopLevelWindowMSW::Create(wxWindow *parent,
 
 wxTopLevelWindowMSW::~wxTopLevelWindowMSW()
 {
-#ifdef __POCKETPC__
-    // Destroy the dummy menubar for dialogs
-    if (m_menuBarHWND)
-    {
-        ::DestroyWindow((HWND) m_menuBarHWND);
-        m_menuBarHWND = 0;
-    }
-#endif
-
     // after destroying an owned window, Windows activates the next top level
     // window in Z order but it may be different from our owner (to reproduce
     // this simply Alt-TAB to another application and back before closing the
@@ -703,6 +668,14 @@ void wxTopLevelWindowMSW::Maximize(bool maximize)
         // we can't maximize the hidden frame because it shows it as well, so
         // just remember that we should do it later in this case
         m_maximizeOnShow = maximize;
+
+        // after calling Maximize() the client code expects to get the frame
+        // "real" size and doesn't want to know that, because of implementation
+        // details, the frame isn't really maximized yet but will be only once
+        // it's shown, so return our size as it will be then in this case
+
+        // we don't know which display we're on yet so use the default one
+        SetSize(wxGetClientDisplayRect().GetSize());
     }
 }
 
@@ -711,7 +684,7 @@ bool wxTopLevelWindowMSW::IsMaximized() const
 #ifdef __WXWINCE__
     return false;
 #else
-    return ::IsZoomed(GetHwnd()) != 0;
+    return m_maximizeOnShow || ::IsZoomed(GetHwnd()) != 0;
 #endif
 }
 
@@ -792,7 +765,7 @@ bool wxTopLevelWindowMSW::ShowFullScreen(bool show, long style)
             rect = wxDisplay(dpy).GetGeometry();
         }
         else // fall back to the main desktop
-#else // wxUSE_DISPLAY
+#endif // wxUSE_DISPLAY
         {
             // resize to the size of the desktop
             wxCopyRECTToRect(wxGetWindowRect(::GetDesktopWindow()), rect);
@@ -803,7 +776,6 @@ bool wxTopLevelWindowMSW::ShowFullScreen(bool show, long style)
             rect.y       = 0;
 #endif
         }
-#endif // wxUSE_DISPLAY
 
         SetSize(rect);
 
@@ -963,10 +935,12 @@ bool wxTopLevelWindowMSW::SetShape(const wxRegion& region)
 
 void wxTopLevelWindowMSW::RequestUserAttention(int flags)
 {
-    // check if we can use FlashWindowEx(): unfortunately an explicit test for
-    // FLASHW_STOP, for example, doesn't work because MSVC6 headers do #define
-    // it but don't provide FlashWindowEx() declaration
-#if (WINVER >= 0x0500 && (defined FLASHW_STOP))
+    // check if we can use FlashWindowEx(): unfortunately a simple test for
+    // FLASHW_STOP doesn't work because MSVC6 headers do #define it but don't
+    // provide FlashWindowEx() declaration, so try to detect whether we have
+    // real headers for WINVER 0x0500 by checking for existence of a symbol not
+    // declated in MSVC6 header
+#if defined(FLASHW_STOP) && defined(VK_XBUTTON1)
     // available in the headers, check if it is supported by the system
     typedef BOOL (WINAPI *FlashWindowEx_t)(FLASHWINFO *pfwi);
     FlashWindowEx_t s_pfnFlashWindowEx = NULL;
@@ -976,7 +950,7 @@ void wxTopLevelWindowMSW::RequestUserAttention(int flags)
         s_pfnFlashWindowEx = (FlashWindowEx_t)
                                 dllUser32.GetSymbol(_T("FlashWindowEx"));
 
-        // we can safely unload user32.dll here, it's goign to remain loaded as
+        // we can safely unload user32.dll here, it's going to remain loaded as
         // long as the program is running anyhow
     }