1 ///////////////////////////////////////////////////////////////////////////// 
   2 // Name:        wx/gtk1/menu.h 
   4 // Author:      Robert Roebling 
   6 // Copyright:   (c) 1998 Robert Roebling, Julian Smart 
   7 // Licence:     wxWindows licence 
   8 ///////////////////////////////////////////////////////////////////////////// 
  13 //----------------------------------------------------------------------------- 
  15 //----------------------------------------------------------------------------- 
  17 class WXDLLIMPEXP_CORE wxMenuBar 
: public wxMenuBarBase
 
  22     wxMenuBar(long style
); 
  23     wxMenuBar(size_t n
, wxMenu 
*menus
[], const wxString titles
[], long style 
= 0); 
  26     // implement base class (pure) virtuals 
  27     virtual bool Append( wxMenu 
*menu
, const wxString 
&title 
); 
  28     virtual bool Insert(size_t pos
, wxMenu 
*menu
, const wxString
& title
); 
  29     virtual wxMenu 
*Replace(size_t pos
, wxMenu 
*menu
, const wxString
& title
); 
  30     virtual wxMenu 
*Remove(size_t pos
); 
  32     virtual int FindMenuItem(const wxString
& menuString
, 
  33                              const wxString
& itemString
) const; 
  34     virtual wxMenuItem
* FindItem( int id
, wxMenu 
**menu 
= NULL 
) const; 
  36     virtual void EnableTop( size_t pos
, bool flag 
); 
  37     virtual void SetLabelTop( size_t pos
, const wxString
& label 
); 
  38     virtual wxString 
GetLabelTop( size_t pos 
) const; 
  40     // implementation only from now on 
  41     void SetInvokingWindow( wxWindow 
*win 
); 
  42     void UnsetInvokingWindow( wxWindow 
*win 
); 
  44     // common part of Append and Insert 
  45     bool GtkAppend(wxMenu 
*menu
, const wxString
& title
, int pos
=-1); 
  47     GtkAccelGroup   
*m_accel
; 
  50     wxWindow        
*m_invokingWindow
; 
  53     void Init(size_t n
, wxMenu 
*menus
[], const wxString titles
[], long style
); 
  55     DECLARE_DYNAMIC_CLASS(wxMenuBar
) 
  58 //----------------------------------------------------------------------------- 
  60 //----------------------------------------------------------------------------- 
  62 class WXDLLIMPEXP_CORE wxMenu 
: public wxMenuBase
 
  66     wxMenu(const wxString
& title
, long style 
= 0) 
  67         : wxMenuBase(title
, style
) { Init(); } 
  69     wxMenu(long style 
= 0) : wxMenuBase(style
) { Init(); } 
  73     // implement base class virtuals 
  74     virtual wxMenuItem
* DoAppend(wxMenuItem 
*item
); 
  75     virtual wxMenuItem
* DoInsert(size_t pos
, wxMenuItem 
*item
); 
  76     virtual wxMenuItem
* DoRemove(wxMenuItem 
*item
); 
  78     // TODO: virtual void SetTitle(const wxString& title); 
  81     int FindMenuIdByMenuItem( GtkWidget 
*menuItem 
) const; 
  83     // implementation GTK only 
  84     GtkWidget       
*m_menu
;  // GtkMenu 
  86     GtkAccelGroup   
*m_accel
; 
  89     // common code for all constructors: 
  92     // common part of Append (if pos == -1)  and Insert 
  93     bool GtkAppend(wxMenuItem 
*item
, int pos
=-1); 
  95         GtkWidget 
*m_prevRadio
; 
  97     DECLARE_DYNAMIC_CLASS(wxMenu
) 
 100 #endif // __GTKMENUH__