]> git.saurik.com Git - wxWidgets.git/commitdiff
Don't use wxUSE_POCKETPC_UI, determine appropriate UI from
authorJulian Smart <julian@anthemion.co.uk>
Tue, 20 Apr 2004 22:17:24 +0000 (22:17 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Tue, 20 Apr 2004 22:17:24 +0000 (22:17 +0000)
SDK defines.
Now creates menubar at bottom of window for PPC.
Window uses default position and size in PPC.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26889 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/msw/menu.h
include/wx/msw/wince/setup.h
include/wx/toolbar.h
src/common/framecmn.cpp
src/msw/frame.cpp
src/msw/menu.cpp
src/msw/tbar95.cpp
src/msw/toplevel.cpp
src/msw/wince/tbarwce.cpp
src/msw/window.cpp

index 15232791d04a62ec7dff97c7f6acdde05f83ef9f..3d18cf67e00983f57b261c09256288122910d1ff 100644 (file)
@@ -172,7 +172,7 @@ public:
     virtual void Detach();
     virtual void Attach(wxFrame *frame);
 
-#if wxUSE_TOOLBAR && defined(__WXWINCE__) && (_WIN32_WCE < 400 || wxUSE_POCKETPC_UI)
+#if wxUSE_TOOLBAR && defined(__WXWINCE__) && (_WIN32_WCE < 400 || defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP))
     // Under WinCE, a menubar is owned by the frame's toolbar
     void SetToolBar(wxToolBar* toolBar) { m_toolBar = toolBar; }
     wxToolBar* GetToolBar() const { return m_toolBar; }
@@ -220,7 +220,7 @@ protected:
     // Not using a combined wxToolBar/wxMenuBar? then use
     // a commandbar in WinCE .NET to implement the
     // menubar, since there is no ::SetMenu function.
-#if defined(__WXWINCE__) && (_WIN32_WCE >= 400 && !wxUSE_POCKETPC_UI)
+#if defined(__WXWINCE__) && (_WIN32_WCE >= 400 && !defined(WIN32_PLATFORM_PSPC) && defined(WIN32_PLATFORM_WFSP))
     WXHWND      m_commandBar;
 #endif
 
index 6f3db8bc1e8409a0577dcd8a3288836d95af511a..edd5317f2512310de30f987669e68f7bb0debee4 100644 (file)
 // So if you're using WinCE .NET, and wxUSE_POCKETPC_UI is 0,
 // you will be able to create separate toolbars and menubars,
 // but _not_ the combined toolbar/menubar.
-#define wxUSE_POCKETPC_UI       1
+
+// NOW OBSOLETE: we test WIN32_PLATFORM_PSPC and WIN32_PLATFORM_WFSP
+// instead
+
+// #define wxUSE_POCKETPC_UI       1
 
 // ----------------------------------------------------------------------------
 // obsolete settings
index ff1ae8a51f113dd70bd21273f5f26c5d694fd946..736e3b19b77405680cb40e72cd49f59385300910 100644 (file)
@@ -123,7 +123,7 @@ enum
     #else // wxUSE_TOOLBAR_NATIVE
         #if defined(__WXUNIVERSAL__)
            #include "wx/univ/toolbar.h"
-        #elif defined(__WXMSW__) && (!defined(_WIN32_WCE) || (_WIN32_WCE >= 400 && !wxUSE_POCKETPC_UI))
+        #elif defined(__WXMSW__) && (!defined(_WIN32_WCE) || (_WIN32_WCE >= 400 && !defined(WIN32_PLATFORM_PSPC) && !defined(WIN32_PLATFORM_WFSP)))
            #include "wx/msw/tbar95.h"
         #elif defined(__WXWINCE__)
            #include "wx/msw/wince/tbarwce.h"
index 74b8205590c7f3e75dad61002e3b9cd2bc2e977b..f45162744039db5c8ff5565ec9f1aed1e56c4534 100644 (file)
@@ -156,7 +156,7 @@ wxPoint wxFrameBase::GetClientAreaOrigin() const
     wxPoint pt = wxTopLevelWindow::GetClientAreaOrigin();
 
 #if wxUSE_TOOLBAR && !defined(__WXUNIVERSAL__) && \
-  (!defined(__WXWINCE__) || (_WIN32_WCE >= 400 && !wxUSE_POCKETPC_UI))
+  (!defined(__WXWINCE__) || (_WIN32_WCE >= 400 && !defined(WIN32_PLATFORM_PSPC) && !defined(WIN32_PLATFORM_WFSP)))
     wxToolBar *toolbar = GetToolBar();
     if ( toolbar && toolbar->IsShown() )
     {
index 45130000d10d94e778478e66fcce7a2c1a920843..6c5aaef10eec7416a103c30476cf704ccee4f804 100644 (file)
@@ -320,7 +320,7 @@ void wxFrame::PositionStatusBar()
 
 void wxFrame::AttachMenuBar(wxMenuBar *menubar)
 {
-#if defined(__WXWINCE__) && (_WIN32_WCE < 400 || wxUSE_POCKETPC_UI)
+#if defined(__WXWINCE__) && (_WIN32_WCE < 400 || defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP))
     if (!GetToolBar())
     {
         wxToolBar* toolBar = new wxToolBar(this, -1,
@@ -330,6 +330,20 @@ void wxFrame::AttachMenuBar(wxMenuBar *menubar)
         SetToolBar(toolBar);
         menubar->SetToolBar(toolBar);
     }
+       // Now adjust size for menu bar
+       int menuHeight = 26;
+       
+       //When the main window is created using CW_USEDEFAULT the height of the
+       // is created is not taken into account). So we resize the window after
+       // if a menubar is present
+       {
+               RECT rc;
+               ::GetWindowRect((HWND) GetHWND(), &rc);
+               // adjust for menu / titlebar height
+               rc.bottom -= (2*menuHeight-1);
+               
+               MoveWindow((HWND) GetHWND(), rc.left, rc.top, rc.right, rc.bottom, FALSE);
+       }
 #endif
 
     wxFrameBase::AttachMenuBar(menubar);
@@ -342,7 +356,7 @@ void wxFrame::AttachMenuBar(wxMenuBar *menubar)
     }
     else // set new non NULL menu bar
     {
-#if !defined(__WXWINCE__) || (_WIN32_WCE >= 400 && !wxUSE_POCKETPC_UI)
+#if !defined(__WXWINCE__) || (_WIN32_WCE >= 400 && !defined(WIN32_PLATFORM_PSPC) && !defined(WIN32_PLATFORM_WFSP))
         // Can set a menubar several times.
         if ( menubar->GetHMenu() )
         {
@@ -405,7 +419,7 @@ bool wxFrame::ShowFullScreen(bool show, long style)
     if (show)
     {
 #if wxUSE_TOOLBAR
-#if defined(__WXWINCE__) && (_WIN32_WCE < 400 || wxUSE_POCKETPC_UI)
+#if defined(__WXWINCE__) && (_WIN32_WCE < 400 || defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP))
         // TODO: hide commandbar
 #else
         wxToolBar *theToolBar = GetToolBar();
@@ -450,7 +464,7 @@ bool wxFrame::ShowFullScreen(bool show, long style)
     else
     {
 #if wxUSE_TOOLBAR
-#if defined(__WXWINCE__) && (_WIN32_WCE < 400 || wxUSE_POCKETPC_UI)
+#if defined(__WXWINCE__) && (_WIN32_WCE < 400 || defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP))
         // TODO: show commandbar
 #else
         wxToolBar *theToolBar = GetToolBar();
@@ -496,7 +510,7 @@ bool wxFrame::ShowFullScreen(bool show, long style)
 
 wxToolBar* wxFrame::CreateToolBar(long style, wxWindowID id, const wxString& name)
 {
-#if defined(__WXWINCE__) && (_WIN32_WCE < 400 || wxUSE_POCKETPC_UI)
+#if defined(__WXWINCE__) && (_WIN32_WCE < 400 || defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP))
     // We may already have a toolbar from calling SetMenuBar.
     if (GetToolBar())
         return GetToolBar();
@@ -514,7 +528,7 @@ void wxFrame::PositionToolBar()
     wxToolBar *toolbar = GetToolBar();
     if ( toolbar && toolbar->IsShown() )
     {
-#if defined(__WXWINCE__) && (_WIN32_WCE < 400 || wxUSE_POCKETPC_UI)
+#if defined(__WXWINCE__) && (_WIN32_WCE < 400 || defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP))
         // We want to do something different in WinCE, because
         // the toolbar should be associated with the commandbar,
         // and not an independent window.
index 881f98017955ebc85d8b07f32cdbb43f349b313f..385c7fb32043f762aba4c83f03532802b2497565 100644 (file)
@@ -676,13 +676,13 @@ void wxMenuBar::Init()
 {
     m_eventHandler = this;
     m_hMenu = 0;
-#if wxUSE_TOOLBAR && defined(__WXWINCE__) && (_WIN32_WCE < 400 || wxUSE_POCKETPC_UI)
+#if wxUSE_TOOLBAR && defined(__WXWINCE__) && (_WIN32_WCE < 400 || defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP))
     m_toolBar = NULL;
 #endif
     // Not using a combined wxToolBar/wxMenuBar? then use
     // a commandbar in WinCE .NET just to implement the
     // menubar.
-#if defined(__WXWINCE__) && (_WIN32_WCE >= 400 && !wxUSE_POCKETPC_UI)
+#if defined(__WXWINCE__) && (_WIN32_WCE >= 400 && !defined(WIN32_PLATFORM_PSPC) && !defined(WIN32_PLATFORM_WFSP))
     m_commandBar = NULL;
 #endif
 }
@@ -716,7 +716,7 @@ wxMenuBar::~wxMenuBar()
 {
     // In Windows CE (not .NET), the menubar is always associated
     // with a toolbar, which destroys the menu implicitly.
-#if defined(__WXWINCE__) && (_WIN32_WCE < 400 || wxUSE_POCKETPC_UI)
+#if defined(__WXWINCE__) && (_WIN32_WCE < 400 || defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP))
     if (GetToolBar())
         GetToolBar()->SetMenuBar(NULL);
 #else
@@ -724,7 +724,7 @@ wxMenuBar::~wxMenuBar()
     // which happens if we're attached to a frame
     if (m_hMenu && !IsAttached())
     {
-#if defined(__WXWINCE__) && (_WIN32_WCE >= 400 && !wxUSE_POCKETPC_UI)
+#if defined(__WXWINCE__) && (_WIN32_WCE >= 400 && !defined(WIN32_PLATFORM_PSPC) && !defined(WIN32_PLATFORM_WFSP))
         ::DestroyWindow((HWND) m_commandBar);
         m_commandBar = (WXHWND) NULL;
 #else
@@ -743,12 +743,12 @@ void wxMenuBar::Refresh()
 {
     wxCHECK_RET( IsAttached(), wxT("can't refresh unattached menubar") );
 
-#if defined(__WXWINCE__) && (_WIN32_WCE < 400 || wxUSE_POCKETPC_UI)
+#if defined(__WXWINCE__) && (_WIN32_WCE < 400 || defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP))
     if (GetToolBar())
     {
         CommandBar_DrawMenuBar((HWND) GetToolBar()->GetHWND(), 0);
     }
-#elif defined(__WXWINCE__) && (_WIN32_WCE >= 400 && !wxUSE_POCKETPC_UI)
+#elif defined(__WXWINCE__) && (_WIN32_WCE >= 400 && !defined(WIN32_PLATFORM_PSPC) && !defined(WIN32_PLATFORM_WFSP))
     if (m_commandBar)
         DrawMenuBar((HWND) m_commandBar);
 #else
@@ -762,7 +762,7 @@ WXHMENU wxMenuBar::Create()
     // since you have to use resources.
     // We'll have to find another way to add a menu
     // by changing/adding menu items to an existing menu.
-#if defined(__WXWINCE__) && _WIN32_WCE < 400
+#if defined(__WXWINCE__) && (_WIN32_WCE < 400 || defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP))
     if ( m_hMenu != 0 )
         return m_hMenu;
 
@@ -998,7 +998,7 @@ bool wxMenuBar::Insert(size_t pos, wxMenu *menu, const wxString& title)
 
     if ( IsAttached() )
     {
-#if defined(__WXWINCE__) && (_WIN32_WCE < 400 || wxUSE_POCKETPC_UI)
+#if defined(__WXWINCE__) && (_WIN32_WCE < 400 || defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP))
         if (!GetToolBar())
             return FALSE;
         TBBUTTON tbButton; 
@@ -1052,7 +1052,7 @@ bool wxMenuBar::Append(wxMenu *menu, const wxString& title)
 
     if ( IsAttached() )
     {
-#if defined(__WXWINCE__) && (_WIN32_WCE < 400 || wxUSE_POCKETPC_UI)
+#if defined(__WXWINCE__) && (_WIN32_WCE < 400 || defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP))
         if (!GetToolBar())
             return FALSE;
         TBBUTTON tbButton; 
@@ -1103,7 +1103,7 @@ wxMenu *wxMenuBar::Remove(size_t pos)
 
     if ( IsAttached() )
     {
-#if defined(__WXWINCE__) && (_WIN32_WCE < 400 || wxUSE_POCKETPC_UI)
+#if defined(__WXWINCE__) && (_WIN32_WCE < 400 || defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP))
         if (GetToolBar())
         {
             if (!::SendMessage((HWND) GetToolBar()->GetHWND(), TB_DELETEBUTTON, (UINT) pos, (LPARAM) 0))
@@ -1170,10 +1170,14 @@ void wxMenuBar::Attach(wxFrame *frame)
 {
     wxMenuBarBase::Attach(frame);
 
-#if defined(__WXWINCE__) && _WIN32_WCE >= 400
+#if defined(__WXWINCE__)
     if (!m_hMenu)
         this->Create();
-#if wxUSE_POCKETPC_UI
+#if _WIN32_WCE < 400 || defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP)
+
+    // No idea why this was here, but it seems to be obsolete.
+       // Remove after testing with other WinCE combinations - April 2004
+#if 0
     if (GetToolBar())
     {
         HWND hCommandBar = (HWND) GetToolBar()->GetHWND();
@@ -1182,6 +1186,7 @@ void wxMenuBar::Attach(wxFrame *frame)
             wxLogLastError(wxT("CommandBar_InsertMenubarEx"));
         }
     }
+#endif
 #else
     if (!m_commandBar)
         m_commandBar = (WXHWND) CommandBar_Create(wxGetInstance(), (HWND) frame->GetHWND(), NewControlId());
@@ -1196,7 +1201,7 @@ void wxMenuBar::Attach(wxFrame *frame)
         }
     }
 #endif
-    // wxUSE_POCKETPC_UI
+    // PSPC/WFSP
 #endif
     // __WXWINCE__ && _WIN32_WCE >= 400
 
index ab987ad5a3ada3913228200f0a90aa9b2dee17a0..d439d680f41b111378113d6a43582dcdc29d9259 100644 (file)
@@ -39,7 +39,7 @@
     #include "wx/control.h"
 #endif
 
-#if wxUSE_TOOLBAR && wxUSE_TOOLBAR_NATIVE && (!defined(_WIN32_WCE) || (_WIN32_WCE >= 400 && !wxUSE_POCKETPC_UI))
+#if wxUSE_TOOLBAR && wxUSE_TOOLBAR_NATIVE && (!defined(_WIN32_WCE) || (_WIN32_WCE >= 400 && !defined(WIN32_PLATFORM_PSPC) && defined(WIN32_PLATFORM_WFSP)))
 
 #include "wx/toolbar.h"
 #include "wx/sysopt.h"
index 3ad3dc4c45023fa69aea9154dec16c330bb8f6e4..e1195914b9965595bd04d90f0582cccae885aae9 100644 (file)
@@ -414,7 +414,13 @@ bool wxTopLevelWindowMSW::CreateFrame(const wxString& title,
     WXDWORD exflags;
     WXDWORD flags = MSWGetCreateWindowFlags(&exflags);
 
-    return MSWCreate(wxCanvasClassName, title, pos, size, flags, exflags);
+       wxSize sz(size);
+#if _WIN32_WCE < 400 || defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP)
+       // Always expand to fit the screen in PocketPC or SmartPhone
+       sz = wxDefaultSize;
+#endif
+
+    return MSWCreate(wxCanvasClassName, title, pos, sz, flags, exflags);
 }
 
 bool wxTopLevelWindowMSW::Create(wxWindow *parent,
@@ -807,12 +813,13 @@ bool wxTopLevelWindowMSW::EnableCloseButton(bool enable)
 
         return FALSE;
     }
-
+#ifndef __WXWINCE__
     // update appearance immediately
     if ( !::DrawMenuBar(GetHwnd()) )
     {
         wxLogLastError(_T("DrawMenuBar"));
     }
+#endif
 #endif // !__WXMICROWIN__
 
     return TRUE;
index 746b2280f94a7ea59c3c5c9a537c8997d526c603..6ef10da2e7d4f619f1b50f76dd3aeac6f85f4a8f 100644 (file)
@@ -41,7 +41,7 @@
 
 // Use the WinCE-specific toolbar only if we're either compiling
 // with a WinCE earlier than 4, or we wish to emulate a PocketPC-style UI
-#if wxUSE_TOOLBAR && wxUSE_TOOLBAR_NATIVE && (_WIN32_WCE < 400 || wxUSE_POCKETPC_UI)
+#if wxUSE_TOOLBAR && wxUSE_TOOLBAR_NATIVE && (_WIN32_WCE < 400 || defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP))
 
 #include "wx/toolbar.h"
 
@@ -56,7 +56,7 @@
 #include <ole2.h>
 #include <shellapi.h>
 #include <commctrl.h>
-#if _WIN32_WCE < 400
+#if _WIN32_WCE < 400 || defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP)
   #include <aygshell.h>
 #endif
 #include "wx/msw/wince/missing.h"
@@ -249,17 +249,14 @@ bool wxToolBar::MSWCreateToolbar(const wxPoint& pos, const wxSize& size, wxMenuB
     if (m_menuBar)
         m_menuBar->SetToolBar(this);
 
-#if _WIN32_WCE >= 400
-    HWND hWnd = CommandBar_Create(wxGetInstance(), (HWND) GetParent()->GetHWND(), GetId());
-    SetHWND((WXHWND) hWnd);
-#else
+#if _WIN32_WCE < 400 || defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP)
     // Create the menubar.
     SHMENUBARINFO mbi;
     
     memset (&mbi, 0, sizeof (SHMENUBARINFO));
     mbi.cbSize     = sizeof (SHMENUBARINFO);
     mbi.hwndParent = (HWND) GetParent()->GetHWND();
-#if wxUSE_SMARTPHONE
+#if defined(WIN32_PLATFORM_WFSP)
     mbi.nToolBarId = 5002;
 #else
     mbi.nToolBarId = 5000;
@@ -276,6 +273,9 @@ bool wxToolBar::MSWCreateToolbar(const wxPoint& pos, const wxSize& size, wxMenuB
     }
     
     SetHWND((WXHWND) mbi.hwndMB);
+#else
+    HWND hWnd = CommandBar_Create(wxGetInstance(), (HWND) GetParent()->GetHWND(), GetId());
+    SetHWND((WXHWND) hWnd);
 #endif
 
     // install wxWindows window proc for this window
index b7c5b66709171c9a6129c1a4c45fd136c29791c1..48b20868d0b4cd20eb265f3e242c6b395c55396a 100644 (file)
@@ -3059,12 +3059,26 @@ bool wxWindowMSW::MSWGetCreateWindowCoords(const wxPoint& pos,
     //     level window in some smart way which we can't do, but we can
     //     guess a reasonably good size for a new window just as well
     //     ourselves
+
+       // However, on PocketPC devices, we must use the default
+       // size if possible.
+#ifdef _WIN32_WCE
+       if (size.x == -1)
+               w = CW_USEDEFAULT;
+       else
+               w = size.x;
+       if (size.y == -1)
+               h = CW_USEDEFAULT;
+       else
+               h = size.y;
+#else
     if ( size.x == -1 || size.y == -1)
     {
         nonDefault = true;
     }
     w = WidthDefault(size.x);
     h = HeightDefault(size.y);
+#endif
 
     AdjustForParentClientOrigin(x, y);