X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/23d1d521c829ebfe1ab0abf29c16013ece822c34..238d735dc2db6fc2c64ed48ceba2d00a85c4b273:/include/wx/gtk/menuitem.h?ds=sidebyside diff --git a/include/wx/gtk/menuitem.h b/include/wx/gtk/menuitem.h index 6536ac0805..0575a81dab 100644 --- a/include/wx/gtk/menuitem.h +++ b/include/wx/gtk/menuitem.h @@ -1,95 +1,97 @@ /////////////////////////////////////////////////////////////////////////////// // Name: menuitem.h // Purpose: wxMenuItem class -// Author: Vadim Zeitlin -// Modified by: -// Created: 11.11.97 +// Author: Robert Roebling // RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin +// Copyright: (c) 1998 Robert Roebling // Licence: wxWindows license /////////////////////////////////////////////////////////////////////////////// -#ifndef _MENUITEM_H -#define _MENUITEM_H +#ifndef __GTKMENUITEMH__ +#define __GTKMENUITEMH__ #ifdef __GNUG__ -#pragma interface "menuitem.h" +#pragma interface #endif -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#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 USE_OWNER_DRAWN -#include "wx/ownerdrw.h" -#endif +#include "wx/defs.h" +#include "wx/string.h" // ---------------------------------------------------------------------------- // constants // ---------------------------------------------------------------------------- -// id for a separator line in the menu (invalid for normal item) #define ID_SEPARATOR (-1) -// ---------------------------------------------------------------------------- -// wxMenuItem: an item in the menu, optionally implements owner-drawn behaviour -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxMenuItem: public wxObject -#if USE_OWNER_DRAWN - , public wxOwnerDrawn -#endif -{ -DECLARE_DYNAMIC_CLASS(wxMenuItem) - -public: - // ctor & dtor - wxMenuItem(wxMenu *pParentMenu = NULL, int id = ID_SEPARATOR, - const wxString& strName = "", const wxString& wxHelp = "", - bool bCheckable = FALSE, wxMenu *pSubMenu = NULL); - virtual ~wxMenuItem(); - - // accessors (some more are inherited from wxOwnerDrawn or are below) - bool IsSeparator() const { return m_idItem == ID_SEPARATOR; } - bool IsEnabled() const { return m_bEnabled; } - bool IsChecked() const { return m_bChecked; } +//----------------------------------------------------------------------------- +// classes +//----------------------------------------------------------------------------- - int GetId() const { return m_idItem; } - const wxString& GetHelp() const { return m_strHelp; } - wxMenu *GetSubMenu() const { return m_pSubMenu; } +class wxMenuItem; +class wxMenu; - // operations - void SetName(const wxString& strName) { m_strName = strName; } - void SetHelp(const wxString& strHelp) { m_strHelp = strHelp; } +//----------------------------------------------------------------------------- +// wxMenuItem +//----------------------------------------------------------------------------- - void Enable(bool bDoEnable = TRUE); - void Check(bool bDoCheck = TRUE); +class wxMenuItem : public wxObject +{ +DECLARE_DYNAMIC_CLASS(wxMenuItem) - void DeleteSubMenu(); +public: + wxMenuItem(); + + // accessors + // id + void SetId(int id) { m_id = id; } + int GetId() const { return m_id; } + bool IsSeparator() const { return m_id == ID_SEPARATOR; } + + // the item's text = name + void SetName(const wxString& str); + void SetText(const wxString& str) { SetName(str); } // compatibility + const wxString& GetName() const { return m_text; } + const wxString& GetText() const { return GetName(); } + + // what kind of menu item we are + void SetCheckable(bool checkable) { m_isCheckMenu = checkable; } + bool IsCheckable() const { return m_isCheckMenu; } + void SetSubMenu(wxMenu *menu) { m_subMenu = menu; } + wxMenu *GetSubMenu() const { return m_subMenu; } + bool IsSubMenu() const { return m_subMenu != NULL; } + + // state + void Enable( bool enable = TRUE ); + bool IsEnabled() const { return m_isEnabled; } + void Check( bool check = TRUE ); + bool IsChecked() const; + + // help string (displayed in the status bar by default) + void SetHelp(const wxString& str) { m_helpStr = str; } + const wxString& GetHelp() const { return m_helpStr; } + + // implementation + void SetMenuItem(GtkWidget *menuItem) { m_menuItem = menuItem; } + GtkWidget *GetMenuItem() const { return m_menuItem; } + + wxString GetHotKey() const { return m_hotKey; } + + void SetCheckedFlag(bool checked) { m_isChecked = checked; } + bool GetCheckedFlag() const { return m_isChecked; } private: - int m_idItem; // numeric id of the item - wxString m_strHelp; // associated help string - wxMenu *m_pSubMenu, // may be NULL - *m_pParentMenu; // menu this item is contained in - bool m_bEnabled, // enabled or greyed? - m_bChecked; // checked? (only if checkable) - -#if USE_OWNER_DRAWN - // wxOwnerDrawn base class already has these variables - nothing to do - -#else //!owner drawn - bool m_bCheckable; // can be checked? - wxString m_strName; // name or label of the item - -public: - const wxString& GetName() const { return m_strName; } - bool IsCheckable() const { return m_bCheckable; } -#endif //owner drawn + int m_id; + wxString m_text; + wxString m_hotKey; + bool m_isCheckMenu; + bool m_isChecked; + bool m_isEnabled; + wxMenu *m_subMenu; + wxString m_helpStr; + + GtkWidget *m_menuItem; // GtkMenuItem }; -#endif //_MENUITEM_H + +#endif + //__GTKMENUITEMH__