X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1a838ff58bfd0fd040156a16ce6fd804e20b5f46..4c2740ec0f18a2e657d53377031fc2dfce974f08:/src/msw/toplevel.cpp diff --git a/src/msw/toplevel.cpp b/src/msw/toplevel.cpp index ae28587509..58438ba15f 100644 --- a/src/msw/toplevel.cpp +++ b/src/msw/toplevel.cpp @@ -145,7 +145,7 @@ void wxTopLevelWindowMSW::Init() m_winLastFocused = (wxWindow *)NULL; -#ifdef __SMARTPHONE__ +#if defined(__SMARTPHONE__) && defined(__WXWINCE__) m_MenuBarHWND = 0; #endif } @@ -159,22 +159,21 @@ WXDWORD wxTopLevelWindowMSW::MSWGetStyle(long style, WXDWORD *exflags) const (style & ~wxBORDER_MASK) | wxBORDER_NONE, exflags ) & ~WS_CHILD & ~WS_VISIBLE; -#if defined(__WXWINCE__) && _WIN32_WCE < 400 + // For some reason, WS_VISIBLE needs to be defined on creation for + // SmartPhone 2003. The title can fail to be displayed otherwise. +#if defined(__SMARTPHONE__) || (defined(__WXWINCE__) && _WIN32_WCE < 400) msflags |= WS_VISIBLE; + ((wxTopLevelWindowMSW*)this)->wxWindowBase::Show(true); #endif // first select the kind of window being created // // note that if we don't set WS_POPUP, Windows assumes WS_OVERLAPPED and - // creates a window with both caption and border, hence we also test it - // below in some other cases - if ( style & wxFRAME_TOOL_WINDOW ) - { - msflags |= WS_POPUP; - } - //else: WS_OVERLAPPED is 0 anyhow, so it is on by default + // creates a window with both caption and border, hence we need to use + // WS_POPUP in a few cases just to avoid having caption/border which we + // don't want -#ifndef __SMARTPHONE__ +#if !(defined(__SMARTPHONE__) && defined(__WXWINCE__)) // border and caption styles if ( style & wxRESIZE_BORDER ) msflags |= WS_THICKFRAME; @@ -406,6 +405,11 @@ bool wxTopLevelWindowMSW::CreateDialog(const void *dlgTemplate, } SubclassWin(m_hWnd); + +#ifdef __SMARTPHONE__ + // Work around title non-display glitch + Show(false); +#endif return true; #endif // __WXMICROWIN__/!__WXMICROWIN__ @@ -428,7 +432,13 @@ bool wxTopLevelWindowMSW::CreateFrame(const wxString& title, wxSize sz(size); #endif - return MSWCreate(wxCanvasClassName, title, pos, sz, flags, exflags); + bool result = MSWCreate(wxCanvasClassName, title, pos, sz, flags, exflags); + +#ifdef __SMARTPHONE__ + // Work around title non-display glitch + Show(false); +#endif + return result; } bool wxTopLevelWindowMSW::Create(wxWindow *parent, @@ -529,7 +539,7 @@ bool wxTopLevelWindowMSW::Create(wxWindow *parent, } #endif -#ifdef __SMARTPHONE__ +#if defined(__SMARTPHONE__) && defined(__WXWINCE__) SetRightMenu(); // to nothing for initialization #endif @@ -578,7 +588,7 @@ bool wxTopLevelWindowMSW::Show(bool show) nShowCmd = SW_MAXIMIZE; // This is necessary, or no window appears -#ifdef __WINCE_STANDARDSDK__ +#if defined( __WINCE_STANDARDSDK__) || defined(__SMARTPHONE__) DoShowWindow(SW_SHOW); #endif