#if defined(__WXWINCE__)
#include <ole2.h>
#include <shellapi.h>
- #if _WIN32_WCE < 400
+ // Standard SDK doesn't have aygshell.dll: see include/wx/msw/wince/libraries.h
+ #if _WIN32_WCE < 400 || !defined(WCE_PLATFORM_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
+#ifdef __WXWINCE__
+extern wxChar *wxCanvasClassName;
+#else
extern const wxChar *wxCanvasClassName;
+#endif
// ----------------------------------------------------------------------------
// wxTLWHiddenParentModule: used to manage the hidden parent window (we need a
y = (sizeDpy.y - h) / 2;
}
+#ifndef __WXWINCE__
if ( !::MoveWindow(GetHwnd(), x, y, w, h, FALSE) )
{
wxLogLastError(wxT("MoveWindow"));
}
+#endif
if ( !title.empty() )
{
WXDWORD exflags;
WXDWORD flags = MSWGetCreateWindowFlags(&exflags);
- return MSWCreate(wxCanvasClassName, title, pos, size, flags, exflags);
+#if (defined(_WIN32_WCE) && _WIN32_WCE < 400) || \
+ defined(WIN32_PLATFORM_PSPC) || \
+ defined(WIN32_PLATFORM_WFSP)
+ // Always expand to fit the screen in PocketPC or SmartPhone
+ wxSize sz(wxDefaultSize);
+#else // other (including normal desktop) Windows
+ wxSize sz(size);
+#endif
+
+ return MSWCreate(wxCanvasClassName, title, pos, sz, flags, exflags);
}
bool wxTopLevelWindowMSW::Create(wxWindow *parent,
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
return FALSE;
}
-
+#ifndef __WXWINCE__
// update appearance immediately
if ( !::DrawMenuBar(GetHwnd()) )
{
wxLogLastError(_T("DrawMenuBar"));
}
+#endif
#endif // !__WXMICROWIN__
return TRUE;
WPARAM WXUNUSED(wParam),
LPARAM WXUNUSED(lParam))
{
- switch ( message )
+ if ( message == WM_INITDIALOG )
{
- case WM_INITDIALOG:
- // for this message, returning TRUE tells system to set focus to
- // the first control in the dialog box, but as we set the focus
- // ourselves, we return FALSE from here as well, so fall through
-#ifdef __WXWINCE__
- {
- SHINITDLGINFO shidi;
- shidi.dwMask = SHIDIM_FLAGS;
- shidi.dwFlags = SHIDIF_DONEBUTTON |
- SHIDIF_SIZEDLGFULLSCREEN;
- shidi.hDlg = hDlg;
- SHInitDialog( &shidi );
- }
+ // under CE, add a "Ok" button in the dialog title bar and make it full
+ // screen
+ //
+ // VZ: we should probably allow for overriding this, e.g. by including
+ // MAXIMIZED flag in the dialog style by default and doing this
+ // only if it is present...
+
+ // Standard SDK doesn't have aygshell.dll: see
+ // include/wx/msw/wince/libraries.h
+#if defined(__WXWINCE__) && !defined(WCE_PLATFORM_STANDARDSDK)
+ SHINITDLGINFO shidi;
+ shidi.dwMask = SHIDIM_FLAGS;
+ shidi.dwFlags = SHIDIF_DONEBUTTON |
+ SHIDIF_SIZEDLGFULLSCREEN;
+ shidi.hDlg = hDlg;
+ SHInitDialog( &shidi );
+#else // no SHInitDialog()
+ wxUnusedVar(hDlg);
#endif
-
- default:
- // for all the other ones, FALSE means that we didn't process the
- // message
- return FALSE;
}
+
+ // for almost all messages, returning FALSE means that we didn't process
+ // the message
+ //
+ // for WM_INITDIALOG, returning TRUE tells system to set focus to
+ // the first control in the dialog box, but as we set the focus
+ // ourselves, we return FALSE for it as well
+ return FALSE;
}
// ============================================================================