#include "wx/control.h"
#endif
-#if !defined(__GNUWIN32__) && !defined(__SALFORDC__)
+#if !defined(__GNUWIN32__)
#include "malloc.h"
#endif
#include <shellapi.h>
#if defined(WINCE_WITHOUT_COMMANDBAR)
#include <aygshell.h>
+ #include "wx/msw/wince/resources.h"
#endif
#include "wx/msw/wince/missing.h"
m_menuBar->SetToolBar(this);
HWND hwndParent = GetHwndOf(GetParent());
- wxCHECK_MSG( hwndParent, false, _T("should have valid parent HWND") );
+ wxCHECK_MSG( hwndParent, false, wxT("should have valid parent HWND") );
#if defined(WINCE_WITHOUT_COMMANDBAR)
- // Create the menubar.
+ // create the menubar.
WinStruct<SHMENUBARINFO> mbi;
mbi.hwndParent = hwndParent;
-#ifdef __SMARTPHONE__
- mbi.nToolBarId = 5002;
-#else
- mbi.nToolBarId = 5000;
-#endif
- mbi.dwFlags = SHCMBF_EMPTYBAR;
+ mbi.nToolBarId = wxIDM_SHMENU;
mbi.hInstRes = wxGetInstance();
- if (!SHCreateMenuBar(&mbi))
+ if ( !SHCreateMenuBar(&mbi) )
{
- wxFAIL_MSG( _T("SHCreateMenuBar failed") );
+ wxFAIL_MSG( wxT("SHCreateMenuBar failed") );
return false;
}
// Return HMENU for the menu associated with the commandbar
WXHMENU wxToolMenuBar::GetHMenu()
{
-#if defined(__HANDHELDPC__)
- return 0;
-#else
+#if !defined(__HANDHELDPC__)
if (GetHWND())
{
- return (WXHMENU) (HMENU)::SendMessage((HWND) GetHWND(), SHCMBM_GETMENU, (WPARAM)0, (LPARAM)0);
+ return (WXHMENU)::SendMessage(GetHwnd(), SHCMBM_GETMENU, 0, 0);
}
- else
- return 0;
#endif
+
+ return NULL;
}
// ----------------------------------------------------------------------------
bool wxToolMenuBar::DoDeleteTool(size_t pos, wxToolBarToolBase *tool)
{
+ // Skip over the menus
+ if (GetMenuBar())
+ pos += GetMenuBar()->GetMenuCount();
+
// the main difficulty we have here is with the controls in the toolbars:
// as we (sometimes) use several separators to cover up the space used by
// them, the indices are not the same for us and the toolbar
RECT r;
if ( !::SendMessage(GetHwnd(), TB_GETITEMRECT, pos, (LPARAM)&r) )
{
- wxLogLastError(_T("TB_GETITEMRECT"));
+ wxLogLastError(wxT("TB_GETITEMRECT"));
}
int width = r.right - r.left;
}
int n = 0;
- if ( bmpToUse.Ok() )
+ if ( bmpToUse.IsOk() )
{
n = ::CommandBar_AddBitmap( (HWND) GetHWND(), NULL, (int) (HBITMAP) bmpToUse.GetHBITMAP(),
1, 16, 16 );
break;
default:
- wxFAIL_MSG( _T("unexpected toolbar button kind") );
+ wxFAIL_MSG( wxT("unexpected toolbar button kind") );
// fall through
case wxITEM_NORMAL:
return true;
}
-bool wxToolMenuBar::MSWCommand(WXUINT WXUNUSED(cmd), WXWORD id)
+bool wxToolMenuBar::MSWCommand(WXUINT WXUNUSED(cmd), WXWORD id_)
{
- wxToolBarToolBase *tool = FindById((int)id);
+ const int id = (signed short)id_;
+
+ wxToolBarToolBase *tool = FindById(id);
if ( !tool )
{
bool checked = false;
if ( !tool->CanBeToggled() || tool->GetKind() != wxITEM_RADIO || toggled )
{
// OnLeftClick() can veto the button state change - for buttons which
- // may be toggled only, of couse
+ // may be toggled only, of course.
if ( !OnLeftClick((int)id, toggled) && tool->CanBeToggled() )
{
// revert back
void wxToolBar::DoSetToggle(wxToolBarToolBase *WXUNUSED(tool), bool WXUNUSED(toggle))
{
- wxFAIL_MSG( _T("not implemented") );
+ wxFAIL_MSG( wxT("not implemented") );
}
#endif