#if wxUSE_ACCEL
#include "wx/accel.h"
+ #include "wx/list.h" // for "template" list classes
#include "wx/dynarray.h"
- WX_DEFINE_EXPORTED_ARRAY(wxAcceleratorEntry *, wxAcceleratorArray);
+ WX_DEFINE_EXPORTED_ARRAY_PTR(wxAcceleratorEntry *, wxAcceleratorArray);
#endif // wxUSE_ACCEL
class WXDLLEXPORT wxFrame;
//
// Implement base class virtuals
//
- virtual bool DoAppend(wxMenuItem* pItem);
- virtual bool DoInsert( size_t nPos
+ virtual wxMenuItem* DoAppend(wxMenuItem* pItem);
+ virtual wxMenuItem* DoInsert( size_t nPos
,wxMenuItem* pItem
);
virtual wxMenuItem* DoRemove(wxMenuItem* pItem);
virtual void Break(void);
virtual void SetTitle(const wxString& rTitle);
-#if wxUSE_MENU_CALLBACK
- wxMenu( const wxString& rTitle
- ,const wxFunction fnFunc
- )
- : wxMenuBase(rTitle)
- {
- Init();
- Callback(fnFunc);
- }
-#endif // wxUSE_MENU_CALLBACK
-
- //
- // OS2-specific
- //
- bool ProcessCommand(wxCommandEvent& rEvent);
-
-
//
// Implementation only from now on
// -------------------------------
//
+ virtual void Attach(wxMenuBarBase* pMenubar);
+
bool OS2Command( WXUINT uParam
,WXWORD wId
);
//
WXHMENU GetHMenu() const { return m_hMenu; }
- //
- // Attach/detach menu to/from wxMenuBar
- //
- void Attach(wxMenuBar* pMenubar);
- void Detach(void);
-
#if wxUSE_ACCEL
//
// Called by wxMenuBar to build its accel table from the accels of all menus
//
- bool HasAccels(void) const { return !m_vAccels.IsEmpty(); }
+ bool HasAccels(void) const { return m_vAccels.IsEmpty(); }
size_t GetAccelCount(void) const { return m_vAccels.GetCount(); }
size_t CopyAccels(wxAcceleratorEntry* pAccels) const;
);
//
- // If TRUE, insert a breal before appending the next item
+ // Terminate the current radio group, if any
+ //
+ void EndRadioGroup(void);
+
+ //
+ // If true, insert a breal before appending the next item
//
- bool m_bDoBreak;
+ bool m_bDoBreak;
//
// The menu handle of this menu
//
// The helper variable for creating unique IDs.
//
- static USHORT m_nextMenuId;
+ static USHORT m_nextMenuId;
+
+ //
+ // The position of the first item in the current radio group or -1
+ //
+ int m_nStartRadioGroup;
#if wxUSE_ACCEL
//
wxMenuBar( int n
,wxMenu* vMenus[]
,const wxString sTitles[]
+ ,long lStyle = 0
);
virtual ~wxMenuBar();
);
virtual wxString GetLabelTop(size_t nPos) const;
- //
- // Compatibility: these functions are deprecated
- //
-#if WXWIN_COMPATIBILITY
- void SetEventHandler(wxEvtHandler* pHandler) { m_pEventHandler = pHandler; }
- wxEvtHandler* GetEventHandler(void) { return m_pEventHandler; }
- bool Enabled(int nId) const { return IsEnabled(nId); }
- bool Checked(int nId) const { return IsChecked(nId); }
-#endif // WXWIN_COMPATIBILITY
-
//
// Implementation from now on
//
WXHMENU Create(void);
- void Detach(void);
-
- //
- // Returns TRUE if we're attached to a frame
- //
- bool IsAttached(void) const { return m_pMenuBarFrame != NULL; }
-
- //
- // Get the frame we live in
- //
- wxFrame * GetFrame(void) const { return m_pMenuBarFrame; }
-
- //
- // Attach to a frame
- //
- void Attach(wxFrame* pFrame);
+ virtual void Detach(void);
+ virtual void Attach(wxFrame* pFrame);
#if wxUSE_ACCEL
//
const wxAcceleratorTable& GetAccelTable(void) const { return m_vAccelTable; }
//
- // Update the accel table (must be called after adding/deletign a menu)
+ // Update the accel table (must be called after adding/deleting a menu)
//
void RebuildAccelTable(void);
#endif // wxUSE_ACCEL
//
void Init(void);
-#if WXWIN_COMPATIBILITY
- wxEvtHandler* m_pEventHandler;
-#endif // WXWIN_COMPATIBILITY
-
wxArrayString m_titles;
- wxFrame* m_pMenuBarFrame;
WXHMENU m_hMenu;
#if wxUSE_ACCEL