]>
git.saurik.com Git - wxWidgets.git/blob - include/wx/gtk/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(NO_GCC_PRAGMA)
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 wxMenuItem
* DoAppend(wxMenuItem
*item
);
78 virtual wxMenuItem
* DoInsert(size_t pos
, wxMenuItem
*item
);
79 virtual wxMenuItem
* DoRemove(wxMenuItem
*item
);
81 // TODO: virtual void SetTitle(const wxString& title);
84 int FindMenuIdByMenuItem( GtkWidget
*menuItem
) const;
86 // implementation GTK only
87 GtkWidget
*m_menu
; // GtkMenu
89 GtkAccelGroup
*m_accel
;
90 GtkItemFactory
*m_factory
;
93 // common code for all constructors:
96 // common part of Append and Insert
97 bool GtkAppend(wxMenuItem
*item
);
99 // if the last menu item was a radio one, this field contains its path,
100 // otherwise it is empty
101 wxString m_pathLastRadio
;
103 DECLARE_DYNAMIC_CLASS(wxMenu
)
106 #endif // __GTKMENUH__