X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f58f51637f1187dab5deec7199c7951969d44ad0..355a5e2bd317690c277cd9229af76d7b0db45d03:/include/wx/mac/menuitem.h diff --git a/include/wx/mac/menuitem.h b/include/wx/mac/menuitem.h index 0a85aa3725..7e78a57f63 100644 --- a/include/wx/mac/menuitem.h +++ b/include/wx/mac/menuitem.h @@ -6,13 +6,13 @@ // Created: 11.11.97 // RCS-ID: $Id$ // Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license +// Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// #ifndef _MENUITEM_H #define _MENUITEM_H -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma interface "menuitem.h" #endif @@ -22,20 +22,10 @@ #include "wx/setup.h" -// an exception to the general rule that a normal header doesn't include other -// headers - only because ownerdrw.h is not always included and I don't want -// to write #ifdef's everywhere... -#if wxUSE_OWNER_DRAWN -#include "wx/ownerdrw.h" -#endif - // ---------------------------------------------------------------------------- // wxMenuItem: an item in the menu, optionally implements owner-drawn behaviour // ---------------------------------------------------------------------------- class WXDLLEXPORT wxMenuItem: public wxMenuItemBase -#if wxUSE_OWNER_DRAWN - , public wxOwnerDrawn -#endif { public: // ctor & dtor @@ -43,35 +33,48 @@ public: int id = wxID_SEPARATOR, const wxString& name = wxEmptyString, const wxString& help = wxEmptyString, - bool isCheckable = FALSE, + wxItemKind kind = wxITEM_NORMAL, wxMenu *subMenu = (wxMenu *)NULL); virtual ~wxMenuItem(); // override base class virtuals virtual void SetText(const wxString& strName); - virtual wxString GetLabel() const; - virtual void SetCheckable(bool checkable); virtual void Enable(bool bDoEnable = TRUE); virtual void Check(bool bDoCheck = TRUE); - virtual bool IsChecked() const; - -#if wxUSE_ACCEL - virtual wxAcceleratorEntry *GetAccel() const; -#endif // wxUSE_ACCEL - // unfortunately needed to resolve ambiguity between - // wxMenuItemBase::IsCheckable() and wxOwnerDrawn::IsCheckable() - bool IsCheckable() const { return wxMenuItemBase::IsCheckable(); } + virtual void SetBitmap(const wxBitmap& bitmap) ; + virtual const wxBitmap& GetBitmap() const { return m_bitmap; } - // the id for a popup menu is really its menu handle (as required by - // ::AppendMenu() API), so this function will return either the id or the - // menu handle depending on what we're - int GetRealId() const; + // update the os specific representation + void UpdateItemBitmap() ; + void UpdateItemText() ; + void UpdateItemStatus() ; - static int MacBuildMenuString(StringPtr outMacItemText, SInt16 *outMacShortcutChar , UInt8 *outMacModifiers , const char *inItemName , bool useShortcuts ) ; + // mark item as belonging to the given radio group + void SetAsRadioGroupStart(); + void SetRadioGroupStart(int start); + void SetRadioGroupEnd(int end); private: + void UncheckRadio() ; + + // the positions of the first and last items of the radio group this item + // belongs to or -1: start is the radio group start and is valid for all + // but first radio group items (m_isRadioGroupStart == FALSE), end is valid + // only for the first one + union + { + int start; + int end; + } m_radioGroup; + + // does this item start a radio group? + bool m_isRadioGroupStart; + + wxBitmap m_bitmap; // Bitmap for menuitem, if any + void* m_menu ; // the appropriate menu , may also be a system menu + DECLARE_DYNAMIC_CLASS(wxMenuItem) };