X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8907154c1a8a6882c6797d1f16393ddfb23e7f3a..a5de860f0b8994b2d87d0a0d3c3dedf750fa7ddb:/src/os2/menuitem.cpp diff --git a/src/os2/menuitem.cpp b/src/os2/menuitem.cpp index 27302245d3..193a679348 100644 --- a/src/os2/menuitem.cpp +++ b/src/os2/menuitem.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////// -// Name: menuitem.cpp +// Name: src/os2/menuitem.cpp // Purpose: wxMenuItem implementation // Author: David Webster // Modified by: @@ -16,20 +16,20 @@ // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" +#include "wx/menuitem.h" +#include "wx/stockitem.h" + #ifndef WX_PRECOMP #include "wx/font.h" #include "wx/bitmap.h" #include "wx/settings.h" - #include "wx/font.h" #include "wx/window.h" #include "wx/accel.h" #include "wx/menu.h" #include "wx/string.h" + #include "wx/log.h" #endif -#include "wx/menuitem.h" -#include "wx/log.h" - #if wxUSE_ACCEL #include "wx/accel.h" #endif // wxUSE_ACCEL @@ -180,7 +180,7 @@ bool wxMenuItem::IsChecked() const return (uFlag & MIA_CHECKED) == MIA_CHECKED ; } // end of wxMenuItem::IsChecked -wxString wxMenuItemBase::GetLabelFromText( +wxString wxMenuItemBase::GetLabelText( const wxString& rsText ) { @@ -199,7 +199,7 @@ wxString wxMenuItemBase::GetLabelFromText( sLabel += *zPc; } return sLabel; -} // end of wxMenuItemBase::GetLabelFromText +} // end of wxMenuItemBase::GetLabelText // // Radio group stuff @@ -363,7 +363,7 @@ void wxMenuItem::Check( wxMenuItemBase::Check(bCheck); } // end of wxMenuItem::Check -void wxMenuItem::SetText( const wxString& rText ) +void wxMenuItem::SetItemLabel( const wxString& rText ) { // // Don't do anything if label didn't change @@ -373,10 +373,18 @@ void wxMenuItem::SetText( const wxString& rText ) if (m_text == sText) return; - wxMenuItemBase::SetText(sText); - OWNER_DRAWN_ONLY(wxOwnerDrawn::SetName(sText)); + // wxMenuItemBase will do stock ID checks + wxMenuItemBase::SetItemLabel(sText); + + // m_text could now be different from 'text' if we are a stock menu item, + // so use only m_text below + + OWNER_DRAWN_ONLY(wxOwnerDrawn::SetName(m_text)); #if wxUSE_OWNER_DRAWN - SetAccelString(rText.AfterFirst(_T('\t'))); + if (rText.IsEmpty()) + SetAccelString(m_text.AfterFirst(_T('\t'))); + else + SetAccelString(rText.AfterFirst(_T('\t'))); #endif // wxUSE_OWNER_DRAWN HWND hMenu = GetHmenuOf(m_parentMenu); @@ -407,19 +415,19 @@ void wxMenuItem::SetText( const wxString& rText ) uFlagsOld |= MIS_SUBMENU; } - BYTE* pData; + char* pData; #if wxUSE_OWNER_DRAWN if (IsOwnerDrawn()) { uFlagsOld |= MIS_OWNERDRAW; - pData = (BYTE*)this; + pData = (char*)this; } else #endif //owner drawn { uFlagsOld |= MIS_TEXT; - pData = (BYTE*)sText.c_str(); + pData = (char*) m_text.wx_str(); } //