#if wxUSE_TOOLTIPS
m_hwndToolTip = 0;
#endif
-#ifdef __WXWINCE__
- m_commandBar = 0;
-#endif
// Data to save/restore when calling ShowFullScreen
m_fsStatusBarFields = 0;
{
m_isBeingDeleted = TRUE;
DeleteAllBars();
-#ifdef __WXWINCE__
- if (m_commandBar)
- {
- ::DestroyWindow((HWND) m_commandBar);
- m_commandBar = NULL;
- }
-#endif
-
}
// ----------------------------------------------------------------------------
}
else // set new non NULL menu bar
{
+#ifndef __WXWINCE__
// Can set a menubar several times.
if ( menubar->GetHMenu() )
{
return;
}
}
-
+#endif
InternalSetMenuBar();
}
}
#ifdef __WXMICROWIN__
// Nothing
#elif defined(__WXWINCE__)
- if (!m_commandBar)
- {
- // TODO: what identifer shall we use?
- // TODO: eventually have a wxCommandBar class
- m_commandBar = (WXHWND) CommandBar_Create(wxGetInstance(), GetHwnd(), 999);
- }
- if (m_commandBar)
+
+ if (!GetToolBar())
{
- CommandBar_InsertMenubarEx((HWND) m_commandBar, wxGetInstance(),
- (LPTSTR) (HMENU) m_hMenu, 0);
+ wxToolBar* toolBar = new wxToolBar(this, -1,
+ wxDefaultPosition, wxDefaultSize,
+ wxBORDER_NONE | wxTB_HORIZONTAL,
+ wxToolBarNameStr, GetMenuBar());
+ SetToolBar(toolBar);
}
#else
if ( !::SetMenu(GetHwnd(), (HMENU)m_hMenu) )
if (show)
{
#if wxUSE_TOOLBAR
+#ifdef __WXWINCE__
+ // TODO: hide commandbar
+#else
wxToolBar *theToolBar = GetToolBar();
if (theToolBar)
theToolBar->GetSize(NULL, &m_fsToolBarHeight);
theToolBar->SetSize(-1,0);
theToolBar->Show(FALSE);
}
+#endif // __WXWINCE__
#endif // wxUSE_TOOLBAR
// TODO: make it work for WinCE
else
{
#if wxUSE_TOOLBAR
+#ifdef __WXWINCE__
+ // TODO: show commandbar
+#else
wxToolBar *theToolBar = GetToolBar();
// restore the toolbar, menubar, and statusbar
theToolBar->SetSize(-1, m_fsToolBarHeight);
theToolBar->Show(TRUE);
}
+#endif // __WXWINCE__
#endif // wxUSE_TOOLBAR
#if wxUSE_STATUSBAR
wxToolBar* wxFrame::CreateToolBar(long style, wxWindowID id, const wxString& name)
{
+#ifdef __WXWINCE__
+ // We may already have a toolbar from calling SetMenuBar.
+ if (GetToolBar())
+ return GetToolBar();
+#endif
if ( wxFrameBase::CreateToolBar(style, id, name) )
{
PositionToolBar();
wxToolBar *toolbar = GetToolBar();
if ( toolbar && toolbar->IsShown() )
{
+#ifdef __WXWINCE__
+ // We want to do something different in WinCE, because
+ // the toolbar should be associated with the commandbar,
+ // and not an independent window.
+ // TODO
+#else
// don't call our (or even wxTopLevelWindow) version because we want
// the real (full) client area size, not excluding the tool/status bar
int width, height;
// use the 'real' MSW position here, don't offset relativly to the
// client area origin
toolbar->SetSize(0, 0, tw, th, wxSIZE_NO_ADJUSTMENTS);
+#endif // __WXWINCE__
}
}
processed = HandlePaint();
break;
+ case WM_INITMENUPOPUP:
+ processed = HandleInitMenuPopup((WXHMENU) wParam);
+ break;
+
#if !defined(__WXMICROWIN__) && !defined(__WXWINCE__)
case WM_MENUSELECT:
{
}
break;
- case WM_INITMENU:
- processed = HandleInitMenu();
- break;
-
case WM_EXITMENULOOP:
processed = HandleMenuLoop(wxEVT_MENU_CLOSE, wParam);
break;
return rc;
}
-// handle WM_INITMENU message
-bool wxFrame::HandleInitMenu()
+// handle WM_INITMENUPOPUP message
+bool wxFrame::HandleInitMenuPopup(WXHMENU hMenu)
{
- wxMenuEvent event(wxEVT_MENU_OPEN, 0);
+ wxMenu* menu = NULL;
+ if (GetMenuBar())
+ {
+ int nCount = GetMenuBar()->GetMenuCount();
+ for (int n = 0; n < nCount; n++)
+ {
+ if (GetMenuBar()->GetMenu(n)->GetHMenu() == hMenu)
+ {
+ menu = GetMenuBar()->GetMenu(n);
+ break;
+ }
+ }
+ }
+
+ wxMenuEvent event(wxEVT_MENU_OPEN, 0, menu);
event.SetEventObject(this);
return GetEventHandler()->ProcessEvent(event);
}
-
-