X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ef0e92205a01c7d0ca6f381cc690cb5d4fa595c9..878357d8f750a80a9bc7eb6082b8587bf5517280:/include/wx/osx/menuitem.h diff --git a/include/wx/osx/menuitem.h b/include/wx/osx/menuitem.h index 5bf0c78974..3e7c246bf7 100644 --- a/include/wx/osx/menuitem.h +++ b/include/wx/osx/menuitem.h @@ -1,5 +1,84 @@ -#ifdef __WXMAC_CLASSIC__ -#include "wx/osx/classic/menuitem.h" -#else -#include "wx/osx/carbon/menuitem.h" -#endif +/////////////////////////////////////////////////////////////////////////////// +// Name: wx/mac/carbon/menuitem.h +// Purpose: wxMenuItem class +// Author: Vadim Zeitlin +// Modified by: +// Created: 11.11.97 +// RCS-ID: $Id$ +// Copyright: (c) 1998 Vadim Zeitlin +// Licence: wxWindows licence +/////////////////////////////////////////////////////////////////////////////// + +#ifndef _MENUITEM_H +#define _MENUITEM_H + +// ---------------------------------------------------------------------------- +// headers +// ---------------------------------------------------------------------------- + +#include "wx/defs.h" +#include "wx/bitmap.h" + +// ---------------------------------------------------------------------------- +// wxMenuItem: an item in the menu, optionally implements owner-drawn behaviour +// ---------------------------------------------------------------------------- + +class WXDLLIMPEXP_FWD_CORE wxMenuItemImpl ; + +class WXDLLIMPEXP_CORE wxMenuItem: public wxMenuItemBase +{ +public: + // ctor & dtor + wxMenuItem(wxMenu *parentMenu = NULL, + int id = wxID_SEPARATOR, + const wxString& name = wxEmptyString, + const wxString& help = wxEmptyString, + wxItemKind kind = wxITEM_NORMAL, + wxMenu *subMenu = NULL); + virtual ~wxMenuItem(); + + // override base class virtuals + virtual void SetItemLabel(const wxString& strName); + + virtual void Enable(bool bDoEnable = true); + virtual void Check(bool bDoCheck = true); + + virtual void SetBitmap(const wxBitmap& bitmap) ; + virtual const wxBitmap& GetBitmap() const { return m_bitmap; } + + // update the os specific representation + void UpdateItemBitmap() ; + void UpdateItemText() ; + void UpdateItemStatus() ; + + // mark item as belonging to the given radio group + void SetAsRadioGroupStart(); + void SetRadioGroupStart(int start); + void SetRadioGroupEnd(int end); + + wxMenuItemImpl* GetPeer() { return m_peer; } +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 + + wxMenuItemImpl* m_peer; + + DECLARE_DYNAMIC_CLASS(wxMenuItem) +}; + +#endif //_MENUITEM_H