#if wxUSE_ACCEL
// called by wxMenuBar to build its accel table from the accels of all menus
- bool HasAccels() const { return !m_accels.IsEmpty(); }
- size_t GetAccelCount() const { return m_accels.GetCount(); }
+ bool HasAccels() const { return !m_accels.empty(); }
+ size_t GetAccelCount() const { return m_accels.size(); }
size_t CopyAccels(wxAcceleratorEntry *accels) const;
// called by wxMenuItem when its accels changes
// helper used by wxMenu itself (returns the index in m_accels)
int FindAccel(int id) const;
+
+ // used only by wxMDIParentFrame currently but could be useful elsewhere:
+ // returns a new accelerator table with accelerators for just this menu
+ // (shouldn't be called if we don't have any accelerators)
+ wxAcceleratorTable *CreateAccelTable() const;
#endif // wxUSE_ACCEL
protected:
#include "wx/ownerdrw.h"
#endif
+#include "wx/ptr_scpd.h"
+
#include "wx/msw/private.h"
#include "wx/msw/wrapcctl.h" // include <commctrl.h> "properly"
return count;
}
+wxAcceleratorTable *wxMenu::CreateAccelTable() const
+{
+ const size_t count = m_accels.size();
+ wxScopedArray<wxAcceleratorEntry> accels(new wxAcceleratorEntry[count]);
+ CopyAccels(accels.get());
+
+ return new wxAcceleratorTable(count, accels.get());
+}
+
#endif // wxUSE_ACCEL
// ---------------------------------------------------------------------------