UINT WXUNUSED_IN_WINCE(id))
{
#ifndef __WXWINCE__
- MENUITEMINFO mii;
- wxZeroMemory(mii);
- mii.cbSize = sizeof(MENUITEMINFO);
+ WinStruct<MENUITEMINFO> mii;
mii.fMask = MIIM_STATE;
mii.fState = MFS_DEFAULT;
BOOL WXUNUSED_IN_WINCE(byPositon = FALSE))
{
#ifndef __WXWINCE__
- MENUITEMINFO mii;
- wxZeroMemory(mii);
- mii.cbSize = sizeof(MENUITEMINFO);
+ WinStruct<MENUITEMINFO> mii;
mii.fMask = MIIM_FTYPE | MIIM_DATA;
mii.fType = MFT_OWNERDRAW;
mii.dwItemData = data;
#ifdef __WXWINCE__
UINT GetMenuState(HMENU hMenu, UINT id, UINT flags)
{
- MENUITEMINFO info;
- wxZeroMemory(info);
- info.cbSize = sizeof(info);
+ WinStruct<MENUITEMINFO> info;
info.fMask = MIIM_STATE;
// MF_BYCOMMAND is zero so test MF_BYPOSITION
if ( !::GetMenuItemInfo(hMenu, id, flags & MF_BYPOSITION ? TRUE : FALSE , & info) )
}
mii.cch = itemText.length();
- mii.dwTypeData = const_cast<wxChar *>(itemText.wx_str());
+ mii.dwTypeData = wxMSW_CONV_LPTSTR(itemText);
if ( flags & MF_POPUP )
{
itemText = wxMenuItem::GetLabelText(itemText);
#endif
- pData = (wxChar*)itemText.wx_str();
+ pData = itemText.t_str();
}
// item might have already been inserted by InsertMenuItem() above
if ( !label.empty() )
{
if ( !::InsertMenu(hMenu, 0u, MF_BYPOSITION | MF_STRING,
- (UINT_PTR)idMenuTitle, m_title.wx_str()) ||
+ (UINT_PTR)idMenuTitle, m_title.t_str()) ||
!::InsertMenu(hMenu, 1u, MF_BYPOSITION, (unsigned)-1, NULL) )
{
wxLogLastError(wxT("InsertMenu"));
{
// modify the title
#ifdef __WXWINCE__
- MENUITEMINFO info;
- wxZeroMemory(info);
- info.cbSize = sizeof(info);
+ WinStruct<MENUITEMINFO> info;
info.fMask = MIIM_TYPE;
info.fType = MFT_STRING;
info.cch = m_title.length();
- info.dwTypeData = const_cast<wxChar *>(m_title.wx_str());
+ info.dwTypeData = wxMSW_CONV_LPTSTR(m_title);
if ( !SetMenuItemInfo(hMenu, 0, TRUE, & info) )
{
wxLogLastError(wxT("SetMenuItemInfo"));
#else
if ( !ModifyMenu(hMenu, 0u,
MF_BYPOSITION | MF_STRING,
- (UINT_PTR)idMenuTitle, m_title.wx_str()) )
+ (UINT_PTR)idMenuTitle, m_title.t_str()) )
{
wxLogLastError(wxT("ModifyMenu"));
}
// put the title string in bold face
if ( !m_title.empty() )
{
- SetDefaultMenuItem(GetHmenu(), (UINT_PTR)idMenuTitle);
+ SetDefaultMenuItem(GetHmenu(), (UINT)idMenuTitle);
}
#endif // Win32
}
HMENU hPopupMenu = (HMENU) GetMenu(i)->GetHMenu();
tbButton.dwData = (DWORD)hPopupMenu;
wxString label = wxStripMenuCodes(GetMenuLabel(i));
- tbButton.iString = (int) label.wx_str();
+ tbButton.iString = (int) wxMSW_CONV_LPCTSTR(label);
tbButton.idCommand = NewControlId();
if ( !::SendMessage(hCommandBar, TB_INSERTBUTTON, i, (LPARAM)&tbButton) )
{
if ( !::AppendMenu((HMENU)m_hMenu, MF_POPUP | MF_STRING,
(UINT_PTR)(*it)->GetHMenu(),
- (*it)->GetTitle().wx_str()) )
+ (*it)->GetTitle().t_str()) )
{
wxLogLastError(wxT("AppendMenu"));
}
Refresh();
}
+bool wxMenuBar::IsEnabledTop(size_t pos) const
+{
+ wxCHECK_MSG( pos < GetMenuCount(), false, wxS("invalid menu index") );
+ WinStruct<MENUITEMINFO> mii;
+ mii.fMask = MIIM_STATE;
+ if ( !::GetMenuItemInfo(GetHmenu(), pos, TRUE, &mii) )
+ {
+ wxLogLastError(wxS("GetMenuItemInfo(menubar)"));
+ }
+
+ return !(mii.fState & MFS_GRAYED);
+}
+
void wxMenuBar::SetMenuLabel(size_t pos, const wxString& label)
{
wxCHECK_RET( pos < GetMenuCount(), wxT("invalid menu index") );
}
#ifdef __WXWINCE__
- MENUITEMINFO info;
- wxZeroMemory(info);
- info.cbSize = sizeof(info);
+ WinStruct<MENUITEMINFO> info;
info.fMask = MIIM_TYPE;
info.fType = MFT_STRING;
info.cch = label.length();
- info.dwTypeData = const_cast<wxChar *>(label.wx_str());
+ info.dwTypeData = wxMSW_CONV_LPTSTR(label);
if ( !SetMenuItemInfo(GetHmenu(), id, TRUE, &info) )
{
wxLogLastError(wxT("SetMenuItemInfo"));
#else
if ( ::ModifyMenu(GetHmenu(), mswpos, MF_BYPOSITION | MF_STRING | flagsOld,
- id, label.wx_str()) == (int)0xFFFFFFFF )
+ id, label.t_str()) == (int)0xFFFFFFFF )
{
wxLogLastError(wxT("ModifyMenu"));
}
if ( !::InsertMenu(GetHmenu(), (UINT)mswpos,
MF_BYPOSITION | MF_POPUP | MF_STRING,
- (UINT_PTR)GetHmenuOf(menu), title.wx_str()) )
+ (UINT_PTR)GetHmenuOf(menu), title.t_str()) )
{
wxLogLastError(wxT("InsertMenu"));
}
HMENU hPopupMenu = (HMENU) menu->GetHMenu() ;
tbButton.dwData = (DWORD)hPopupMenu;
wxString label = wxStripMenuCodes(title);
- tbButton.iString = (int) label.wx_str();
+ tbButton.iString = (int) wxMSW_CONV_LPCTSTR(label);
tbButton.idCommand = NewControlId();
if (!::SendMessage((HWND) GetToolBar()->GetHWND(), TB_INSERTBUTTON, pos, (LPARAM)&tbButton))
#else
if ( !::InsertMenu(GetHmenu(), mswpos,
MF_BYPOSITION | MF_POPUP | MF_STRING,
- (UINT_PTR)GetHmenuOf(menu), title.wx_str()) )
+ (UINT_PTR)GetHmenuOf(menu), title.t_str()) )
{
wxLogLastError(wxT("InsertMenu"));
}
HMENU hPopupMenu = (HMENU) menu->GetHMenu() ;
tbButton.dwData = (DWORD)hPopupMenu;
wxString label = wxStripMenuCodes(title);
- tbButton.iString = (int) label.wx_str();
+ tbButton.iString = (int) wxMSW_CONV_LPCTSTR(label);
tbButton.idCommand = NewControlId();
if (!::SendMessage((HWND) GetToolBar()->GetHWND(), TB_INSERTBUTTON, pos, (LPARAM)&tbButton))
}
#else
if ( !::AppendMenu(GetHmenu(), MF_POPUP | MF_STRING,
- (UINT_PTR)submenu, title.wx_str()) )
+ (UINT_PTR)submenu, title.t_str()) )
{
wxLogLastError(wxT("AppendMenu"));
}
delete [] accelEntries;
}
+ else // No (more) accelerators.
+ {
+ SetAcceleratorTable(wxAcceleratorTable());
+ }
}
#endif // wxUSE_ACCEL