menuitem.h 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. ///////////////////////////////////////////////////////////////////////////////
  2. // Name: wx/gtk1/menuitem.h
  3. // Purpose: wxMenuItem class
  4. // Author: Robert Roebling
  5. // Copyright: (c) 1998 Robert Roebling
  6. // Licence: wxWindows licence
  7. ///////////////////////////////////////////////////////////////////////////////
  8. #ifndef __GTKMENUITEMH__
  9. #define __GTKMENUITEMH__
  10. #include "wx/bitmap.h"
  11. //-----------------------------------------------------------------------------
  12. // wxMenuItem
  13. //-----------------------------------------------------------------------------
  14. class WXDLLIMPEXP_CORE wxMenuItem : public wxMenuItemBase
  15. {
  16. public:
  17. wxMenuItem(wxMenu *parentMenu = NULL,
  18. int id = wxID_SEPARATOR,
  19. const wxString& text = wxEmptyString,
  20. const wxString& help = wxEmptyString,
  21. wxItemKind kind = wxITEM_NORMAL,
  22. wxMenu *subMenu = NULL);
  23. virtual ~wxMenuItem();
  24. // implement base class virtuals
  25. virtual void SetItemLabel( const wxString& str );
  26. virtual wxString GetItemLabel() const;
  27. virtual void Enable( bool enable = TRUE );
  28. virtual void Check( bool check = TRUE );
  29. virtual bool IsChecked() const;
  30. virtual void SetBitmap(const wxBitmap& bitmap) { m_bitmap = bitmap; }
  31. virtual const wxBitmap& GetBitmap() const { return m_bitmap; }
  32. #if wxUSE_ACCEL
  33. virtual wxAcceleratorEntry *GetAccel() const;
  34. #endif // wxUSE_ACCEL
  35. // implementation
  36. void SetMenuItem(GtkWidget *menuItem) { m_menuItem = menuItem; }
  37. GtkWidget *GetMenuItem() const { return m_menuItem; }
  38. GtkWidget *GetLabelWidget() const { return m_labelWidget; }
  39. void SetLabelWidget(GtkWidget *labelWidget) { m_labelWidget = labelWidget; }
  40. wxString GetFactoryPath() const;
  41. wxString GetHotKey() const { return m_hotKey; }
  42. // compatibility only, don't use in new code
  43. wxMenuItem(wxMenu *parentMenu,
  44. int id,
  45. const wxString& text,
  46. const wxString& help,
  47. bool isCheckable,
  48. wxMenu *subMenu = NULL);
  49. private:
  50. // common part of all ctors
  51. void Init();
  52. // DoSetText() transforms the accel mnemonics in our label from MSW/wxWin
  53. // style to GTK+ and is called from ctor and SetText()
  54. void DoSetText(const wxString& text);
  55. wxString m_hotKey;
  56. wxBitmap m_bitmap; // Bitmap for menuitem, if any
  57. GtkWidget *m_menuItem; // GtkMenuItem
  58. GtkWidget* m_labelWidget; // Label widget
  59. DECLARE_DYNAMIC_CLASS(wxMenuItem)
  60. };
  61. #endif
  62. //__GTKMENUITEMH__