]>
git.saurik.com Git - wxWidgets.git/blob - include/wx/gtk1/menu.h
   1 ///////////////////////////////////////////////////////////////////////////// 
   4 // Author:      Robert Roebling 
   6 // Copyright:   (c) 1998 Robert Roebling, Julian Smart 
   7 // Licence:     wxWindows licence 
   8 ///////////////////////////////////////////////////////////////////////////// 
  13 #if defined(__GNUG__) && !defined(__APPLE__) 
  14     #pragma interface "menu.h" 
  17 //----------------------------------------------------------------------------- 
  19 //----------------------------------------------------------------------------- 
  21 class wxMenuBar 
: public wxMenuBarBase
 
  26     wxMenuBar(long style
); 
  27     wxMenuBar(int n
, wxMenu 
*menus
[], const wxString titles
[]); 
  30     // implement base class (pure) virtuals 
  31     virtual bool Append( wxMenu 
*menu
, const wxString 
&title 
); 
  32     virtual bool Insert(size_t pos
, wxMenu 
*menu
, const wxString
& title
); 
  33     virtual wxMenu 
*Replace(size_t pos
, wxMenu 
*menu
, const wxString
& title
); 
  34     virtual wxMenu 
*Remove(size_t pos
); 
  36     virtual int FindMenuItem(const wxString
& menuString
, 
  37                              const wxString
& itemString
) const; 
  38     virtual wxMenuItem
* FindItem( int id
, wxMenu 
**menu 
= NULL 
) const; 
  40     virtual void EnableTop( size_t pos
, bool flag 
); 
  41     virtual void SetLabelTop( size_t pos
, const wxString
& label 
); 
  42     virtual wxString 
GetLabelTop( size_t pos 
) const; 
  44     // implementation only from now on 
  45     void SetInvokingWindow( wxWindow 
*win 
); 
  46     void UnsetInvokingWindow( wxWindow 
*win 
); 
  48     // common part of Append and Insert 
  49     bool GtkAppend(wxMenu 
*menu
, const wxString
& title
); 
  51     GtkAccelGroup   
*m_accel
; 
  52     GtkItemFactory  
*m_factory
; 
  55     wxWindow        
*m_invokingWindow
; 
  58     DECLARE_DYNAMIC_CLASS(wxMenuBar
) 
  61 //----------------------------------------------------------------------------- 
  63 //----------------------------------------------------------------------------- 
  65 class wxMenu 
: public wxMenuBase
 
  69     wxMenu(const wxString
& title
, long style 
= 0) 
  70         : wxMenuBase(title
, style
) { Init(); } 
  72     wxMenu(long style 
= 0) : wxMenuBase(style
) { Init(); } 
  76     // implement base class virtuals 
  77     virtual bool DoAppend(wxMenuItem 
*item
); 
  78     virtual bool DoInsert(size_t pos
, wxMenuItem 
*item
); 
  79     virtual wxMenuItem 
*DoRemove(wxMenuItem 
*item
); 
  81     // TODO: virtual void SetTitle(const wxString& title); 
  84 #if wxUSE_MENU_CALLBACK 
  85     wxMenu(const wxString
& title
, const wxFunction func
) 
  92 #endif // WXWIN_COMPATIBILITY_2 
  95     int FindMenuIdByMenuItem( GtkWidget 
*menuItem 
) const; 
  97     // implementation GTK only 
  98     GtkWidget       
*m_menu
;  // GtkMenu 
 100     GtkAccelGroup   
*m_accel
; 
 101     GtkItemFactory  
*m_factory
; 
 104     // common code for all constructors: 
 107     // common part of Append and Insert 
 108     bool GtkAppend(wxMenuItem 
*item
); 
 110     // if the last menu item was a radio one, this field contains its path, 
 111     // otherwise it is empty 
 112     wxString m_pathLastRadio
; 
 114     DECLARE_DYNAMIC_CLASS(wxMenu
) 
 117 #endif // __GTKMENUH__