X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2a2a71e326fb9cf95b29dd10b7c8bb88cae4f439..1e52188741389278cd99abf79218162c87024ba3:/src/msw/menuitem.cpp diff --git a/src/msw/menuitem.cpp b/src/msw/menuitem.cpp index 74a82794de..09ef0d039f 100644 --- a/src/msw/menuitem.cpp +++ b/src/msw/menuitem.cpp @@ -6,7 +6,7 @@ // Created: 11.11.97 // RCS-ID: $Id$ // Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license +// Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// // =========================================================================== @@ -17,7 +17,7 @@ // headers // --------------------------------------------------------------------------- -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "menuitem.h" #endif @@ -50,6 +50,11 @@ #include "wx/msw/private.h" +#ifdef __WXWINCE__ +// Implemented in menu.cpp +UINT GetMenuState(HMENU hMenu, UINT id, UINT flags) ; +#endif + // --------------------------------------------------------------------------- // macro // --------------------------------------------------------------------------- @@ -104,7 +109,7 @@ wxMenuItem::wxMenuItem(wxMenu *parentMenu, : wxMenuItemBase(parentMenu, id, text, help, isCheckable ? wxITEM_CHECK : wxITEM_NORMAL, subMenu) #if wxUSE_OWNER_DRAWN - , wxOwnerDrawn(text, isCheckable) + , wxOwnerDrawn(text, isCheckable, true) #endif // owner drawn { Init(); @@ -262,7 +267,7 @@ void wxMenuItem::Check(bool check) #endif // __WIN32__ // also uncheck all the other items in this radio group - wxMenuItemList::Node *node = items.Item(start); + wxMenuItemList::compatibility_iterator node = items.Item(start); for ( int n = start; n <= end && node; n++ ) { if ( n != pos ) @@ -342,12 +347,31 @@ void wxMenuItem::SetText(const wxString& text) data = (wxChar*) text.c_str(); } +#ifdef __WXWINCE__ + // FIXME: complete this, applying the old + // flags. + // However, the WinCE doc for SetMenuItemInfo + // says that you can't use it to set the menu + // item state; only data, id and type. + MENUITEMINFO info; + wxZeroMemory(info); + info.cbSize = sizeof(info); + info.fMask = MIIM_TYPE; + info.fType = MFT_STRING; + info.cch = text.Length(); + info.dwTypeData = (LPTSTR) data ; + if ( !SetMenuItemInfo(hMenu, id, FALSE, & info) ) + { + wxLogLastError(wxT("SetMenuItemInfo")); + } +#else if ( ::ModifyMenu(hMenu, id, MF_BYCOMMAND | flagsOld, id, data) == (int)0xFFFFFFFF ) { wxLogLastError(wxT("ModifyMenu")); } +#endif } }