#include <ole2.h>
#include <shellapi.h>
// Standard SDK doesn't have aygshell.dll: see include/wx/msw/wince/libraries.h
- #if _WIN32_WCE < 400 || !defined(WCE_PLATFORM_STANDARDSDK)
+ #if _WIN32_WCE < 400 || !defined(__WINCE_STANDARDSDK__)
#include <aygshell.h>
#endif
#include "wx/msw/wince/missing.h"
// globals
// ----------------------------------------------------------------------------
-// list of all frames and modeless dialogs
-wxWindowList wxModelessWindows;
-
-// the name of the default wxWindows class
+// the name of the default wxWidgets class
#ifdef __WXWINCE__
extern wxChar *wxCanvasClassName;
#else
}
//else: WS_OVERLAPPED is 0 anyhow, so it is on by default
+#ifndef __SMARTPHONE__
// border and caption styles
if ( style & wxRESIZE_BORDER )
msflags |= WS_THICKFRAME;
msflags |= WS_BORDER;
else
msflags |= WS_POPUP;
+#endif
// normally we consider that all windows without caption must be popups,
// but CE is an exception: there windows normally do not have the caption
// Keep this here because it saves recoding this function in wxTinyFrame
if ( style & (wxTINY_CAPTION_VERT | wxTINY_CAPTION_HORIZ) )
msflags |= WS_CAPTION;
-
+
if ( exflags )
{
// there is no taskbar under CE, so omit all this
-#ifndef __WXWINCE__
+#if !defined(__WXWINCE__)
if ( !(GetExtraStyle() & wxTOPLEVEL_EX_DIALOG) )
{
if ( style & wxFRAME_TOOL_WINDOW )
y = (sizeDpy.y - h) / 2;
}
-#ifndef __WXWINCE__
+#if !defined(__WXWINCE__) || defined(__WINCE_STANDARDSDK__)
if ( !::MoveWindow(GetHwnd(), x, y, w, h, FALSE) )
{
wxLogLastError(wxT("MoveWindow"));
WXDWORD exflags;
WXDWORD flags = MSWGetCreateWindowFlags(&exflags);
-#if _WIN32_WCE < 400 || defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP)
+#if (defined(_WIN32_WCE) && _WIN32_WCE < 400) || \
+ defined(__POCKETPC__) || \
+ defined(__SMARTPHONE__)
// Always expand to fit the screen in PocketPC or SmartPhone
wxSize sz(wxDefaultSize);
#else // other (including normal desktop) Windows
);
}
+ // Native look is full screen window on Smartphones and Standard SDK
+#if defined(__WXWINCE__)
+ if ( style & wxMAXIMIZE )
+ {
+ this->Maximize();
+ }
+#endif
+
return ret;
}
wxTopLevelWindowMSW::~wxTopLevelWindowMSW()
{
- if ( wxModelessWindows.Find(this) )
- wxModelessWindows.DeleteObject(this);
-
// 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
// show and maximize
nShowCmd = SW_MAXIMIZE;
+ // This is necessary, or no window appears
+#ifdef __WINCE_STANDARDSDK__
+ DoShowWindow(SW_SHOW);
+#endif
+
m_maximizeOnShow = FALSE;
}
else // just show
DoShowWindow(nShowCmd);
+#if defined(__WXWINCE__) && (_WIN32_WCE >= 400 && !defined(__POCKETPC__) && !defined(__SMARTPHONE__))
+ // Addornments have to be added when the frame is the correct size
+ wxFrame* frame = wxDynamicCast(this, wxFrame);
+ if (frame && frame->GetMenuBar())
+ frame->GetMenuBar()->AddAdornments(GetWindowStyleFlag());
+#endif
+
if ( show )
{
::BringWindowToTop(GetHwnd());
}
}
-// the DialogProc for all wxWindows dialogs
+// the DialogProc for all wxWidgets dialogs
LONG APIENTRY _EXPORT
wxDlgProc(HWND hDlg,
UINT message,
// Standard SDK doesn't have aygshell.dll: see
// include/wx/msw/wince/libraries.h
-#if defined(__WXWINCE__) && !defined(WCE_PLATFORM_STANDARDSDK)
+#if defined(__WXWINCE__) && !defined(__WINCE_STANDARDSDK__)
SHINITDLGINFO shidi;
shidi.dwMask = SHIDIM_FLAGS;
shidi.dwFlags = SHIDIF_DONEBUTTON |