]>
git.saurik.com Git - wxWidgets.git/blob - include/wx/qt/menu.h
   1 ///////////////////////////////////////////////////////////////////////////// 
   3 // Purpose:     wxMenu, wxMenuBar classes 
   8 // Copyright:   (c) AUTHOR 
   9 // Licence:     wxWindows licence 
  10 ///////////////////////////////////////////////////////////////////////////// 
  16 #pragma interface "menu.h" 
  22 class WXDLLEXPORT wxMenuItem
; 
  23 class WXDLLEXPORT wxMenuBar
; 
  24 class WXDLLEXPORT wxMenu
; 
  26 WXDLLEXPORT_DATA(extern const char*) wxEmptyString
; 
  28 // ---------------------------------------------------------------------------- 
  30 // ---------------------------------------------------------------------------- 
  31 class WXDLLEXPORT wxMenu
: public wxEvtHandler
 
  33   DECLARE_DYNAMIC_CLASS(wxMenu
) 
  37   wxMenu(const wxString
& title 
= wxEmptyString
, const wxFunction func 
= NULL
); 
  41     // append items to the menu 
  43   void AppendSeparator(); 
  45   void Append(int id
, const wxString
& Label
, const wxString
& helpString 
= wxEmptyString
, 
  46               bool checkable 
= FALSE
); 
  48   void Append(int id
, const wxString
& Label
, wxMenu 
*SubMenu
,  
  49               const wxString
& helpString 
= wxEmptyString
); 
  50       // the most generic form (create wxMenuItem first and use it's functions) 
  51   void Append(wxMenuItem 
*pItem
); 
  52     // insert a break in the menu 
  58   void Enable(int id
, bool Flag
); 
  59   bool Enabled(int id
) const; 
  60   inline bool IsEnabled(int id
) const { return Enabled(id
); }; 
  61   void Check(int id
, bool Flag
); 
  62   bool Checked(int id
) const; 
  63   inline bool IsChecked(int id
) const { return IsChecked(id
); }; 
  67   void SetTitle(const wxString
& label
); 
  68   const wxString
& GetTitle() const; 
  70   void SetLabel(int id
, const wxString
& label
); 
  71   wxString 
GetLabel(int id
) const; 
  73   virtual void SetHelpString(int id
, const wxString
& helpString
); 
  74   virtual wxString 
GetHelpString(int id
) const ; 
  77     // Finds the item id matching the given string, -1 if not found. 
  78   virtual int FindItem(const wxString
& itemString
) const ; 
  79     // Find wxMenuItem by ID, and item's menu too if itemMenu is !NULL. 
  80   wxMenuItem 
*FindItemForId(int itemId
, wxMenu 
**itemMenu 
= NULL
) const; 
  82   void ProcessCommand(wxCommandEvent
& event
); 
  83   inline void Callback(const wxFunction func
) { m_callback 
= func
; } 
  85   virtual void SetParent(wxEvtHandler 
*parent
) { m_parent 
= parent
; } 
  86   inline void SetEventHandler(wxEvtHandler 
*handler
) { m_eventHandler 
= handler
; } 
  87   inline wxEvtHandler 
*GetEventHandler() { return m_eventHandler
; } 
  89   inline wxList
& GetItems() const { return (wxList
&) m_menuItems
; } 
  92   wxFunction        m_callback
; 
  96   wxMenuBar 
*       m_menuBar
; 
  98   wxEvtHandler 
*    m_parent
; 
  99   wxEvtHandler 
*    m_eventHandler
; 
 102 // ---------------------------------------------------------------------------- 
 103 // Menu Bar (a la Windows) 
 104 // ---------------------------------------------------------------------------- 
 105 class WXDLLEXPORT wxFrame
; 
 106 class WXDLLEXPORT wxMenuBar
: public wxEvtHandler
 
 108   DECLARE_DYNAMIC_CLASS(wxMenuBar
) 
 111   wxMenuBar(int n
, wxMenu 
*menus
[], const wxString titles
[]); 
 114   void Append(wxMenu 
*menu
, const wxString
& title
); 
 115   // Must only be used AFTER menu has been attached to frame, 
 116   // otherwise use individual menus to enable/disable items 
 117   void Enable(int Id
, bool Flag
); 
 118   bool Enabled(int Id
) const ; 
 119   inline bool IsEnabled(int Id
) const { return Enabled(Id
); }; 
 120   void EnableTop(int pos
, bool Flag
); 
 121   void Check(int id
, bool Flag
); 
 122   bool Checked(int id
) const ; 
 123   inline bool IsChecked(int Id
) const { return Checked(Id
); }; 
 124   void SetLabel(int id
, const wxString
& label
) ; 
 125   wxString 
GetLabel(int id
) const ; 
 126   void SetLabelTop(int pos
, const wxString
& label
) ; 
 127   wxString 
GetLabelTop(int pos
) const ; 
 128   virtual void Delete(wxMenu 
*menu
, int index 
= 0); /* Menu not destroyed */ 
 129   virtual bool OnAppend(wxMenu 
*menu
, const char *title
); 
 130   virtual bool OnDelete(wxMenu 
*menu
, int index
); 
 132   virtual void SetHelpString(int Id
, const wxString
& helpString
); 
 133   virtual wxString 
GetHelpString(int Id
) const ; 
 135   virtual int FindMenuItem(const wxString
& menuString
, const wxString
& itemString
) const ; 
 137   // Find wxMenuItem for item ID, and return item's 
 138   // menu too if itemMenu is non-NULL. 
 139   wxMenuItem 
*FindItemForId(int itemId
, wxMenu 
**menuForItem 
= NULL
) const ; 
 141   inline void SetEventHandler(wxEvtHandler 
*handler
) { m_eventHandler 
= handler
; } 
 142   inline wxEvtHandler 
*GetEventHandler() { return m_eventHandler
; } 
 144   inline int GetMenuCount() const { return m_menuCount
; } 
 145   inline wxMenu
* GetMenu(int i
) const { return m_menus
[i
]; } 
 148   wxEvtHandler 
*            m_eventHandler
; 
 152   wxFrame 
*                 m_menuBarFrame
; 
 153 /* TODO: data that represents the actual menubar when created. 
 157 #endif // _WX_MENU_H_