X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/dca0f651782d5c2659203c97b3243f613966998d..1831914337402d1b3645e955c44829ee3251a39e:/src/msw/menu.cpp diff --git a/src/msw/menu.cpp b/src/msw/menu.cpp index 8ebd4952da..8cae440b7b 100644 --- a/src/msw/menu.cpp +++ b/src/msw/menu.cpp @@ -29,7 +29,6 @@ #include "wx/menu.h" #ifndef WX_PRECOMP - #include "wx/msw/wrapcctl.h" // include "properly" #include "wx/frame.h" #include "wx/utils.h" #include "wx/intl.h" @@ -41,6 +40,7 @@ #endif #include "wx/msw/private.h" +#include "wx/msw/wrapcctl.h" // include "properly" #ifdef __WXWINCE__ #include @@ -372,7 +372,8 @@ bool wxMenu::DoInsertOrAppend(wxMenuItem *pItem, size_t pos) UpdateAccel(pItem); #endif // wxUSE_ACCEL - UINT flags = 0; + // we should support disabling the item even prior to adding it to the menu + UINT flags = pItem->IsEnabled() ? MF_ENABLED : MF_GRAYED; // if "Break" has just been called, insert a menu break before this item // (and don't forget to reset the flag) @@ -468,7 +469,7 @@ bool wxMenu::DoInsertOrAppend(wxMenuItem *pItem, size_t pos) } mii.cch = itemText.length(); - mii.dwTypeData = wx_const_cast(wxChar *, itemText.wx_str()); + mii.dwTypeData = const_cast(itemText.wx_str()); if (flags & MF_POPUP) { @@ -488,7 +489,7 @@ bool wxMenu::DoInsertOrAppend(wxMenuItem *pItem, size_t pos) // item and this looks downright ugly // // so instead draw it ourselves in MSWOnDrawItem() - mii.dwItemData = wx_reinterpret_cast(ULONG_PTR, pItem); + mii.dwItemData = reinterpret_cast(pItem); if ( pItem->IsCheckable() ) { mii.hbmpChecked = @@ -759,7 +760,7 @@ void wxMenu::SetTitle(const wxString& label) info.fMask = MIIM_TYPE; info.fType = MFT_STRING; info.cch = m_title.length(); - info.dwTypeData = wx_const_cast(wxChar *, m_title.wx_str()); + info.dwTypeData = const_cast(m_title.wx_str()); if ( !SetMenuItemInfo(hMenu, 0, TRUE, & info) ) { wxLogLastError(wxT("SetMenuItemInfo")); @@ -929,7 +930,7 @@ WXHMENU wxMenuBar::Create() if ( m_hMenu != 0 ) return m_hMenu; - wxToolMenuBar * const bar = wx_static_cast(wxToolMenuBar *, GetToolBar()); + wxToolMenuBar * const bar = static_cast(GetToolBar()); if ( !bar ) return NULL; @@ -1079,7 +1080,7 @@ void wxMenuBar::SetMenuLabel(size_t pos, const wxString& label) info.fMask = MIIM_TYPE; info.fType = MFT_STRING; info.cch = label.length(); - info.dwTypeData = wx_const_cast(wxChar *, label.wx_str()); + info.dwTypeData = const_cast(label.wx_str()); if ( !SetMenuItemInfo(GetHmenu(), id, TRUE, &info) ) { wxLogLastError(wxT("SetMenuItemInfo")); @@ -1346,7 +1347,7 @@ void wxMenuBar::RebuildAccelTable() nAccelCount += (*it)->CopyAccels(&accelEntries[nAccelCount]); } - m_accelTable = wxAcceleratorTable(nAccelCount, accelEntries); + SetAcceleratorTable(wxAcceleratorTable(nAccelCount, accelEntries)); delete [] accelEntries; }