#ifndef _WX_UNIV_MENU_H_
#define _WX_UNIV_MENU_H_
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma interface "univmenu.h"
#endif
// fwd declarations
class WXDLLEXPORT wxMenuInfo;
-WX_DECLARE_OBJARRAY(wxMenuInfo, wxMenuInfoArray);
-
-class wxPopupMenuWindow;
+WX_DECLARE_EXPORTED_OBJARRAY(wxMenuInfo, wxMenuInfoArray);
+class WXDLLEXPORT wxMenuGeometryInfo;
+class WXDLLEXPORT wxPopupMenuWindow;
class WXDLLEXPORT wxRenderer;
-// ----------------------------------------------------------------------------
-// wxMenu helper classes, used in implementation only
-// ----------------------------------------------------------------------------
-
-// used by wxRenderer
-class WXDLLEXPORT wxMenuGeometryInfo
-{
-public:
- // get the total size of the menu
- virtual wxSize GetSize() const = 0;
-
- virtual ~wxMenuGeometryInfo();
-};
-
// ----------------------------------------------------------------------------
// wxMenu
// ----------------------------------------------------------------------------
protected:
// implement base class virtuals
- virtual bool DoAppend(wxMenuItem *item);
- virtual bool DoInsert(size_t pos, wxMenuItem *item);
- virtual wxMenuItem *DoRemove(wxMenuItem *item);
+ virtual wxMenuItem* DoAppend(wxMenuItem *item);
+ virtual wxMenuItem* DoInsert(size_t pos, wxMenuItem *item);
+ virtual wxMenuItem* DoRemove(wxMenuItem *item);
// common part of DoAppend and DoInsert
void OnItemAdded(wxMenuItem *item);
// common part of all ctors
void Init();
+ // terminate the current radio group, if any
+ void EndRadioGroup();
+
// the exact menu geometry is defined by a struct derived from this one
// which is opaque and defined by the renderer
wxMenuGeometryInfo *m_geometry;
wxAcceleratorTable m_accelTable;
#endif // wxUSE_ACCEL
+ // the position of the first item in the current radio group or -1
+ int m_startRadioGroup;
+
// it calls out OnDismiss()
-#ifdef __WXMAC__
friend class wxPopupMenuWindow;
-#else
- friend wxPopupMenuWindow;
-#endif
DECLARE_DYNAMIC_CLASS(wxMenu)
};