// Modified by:
// Created: 05.05.01
// RCS-ID: $Id$
-// Copyright: (c) 2001 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
+// Copyright: (c) 2001 SciTech Software, Inc. (www.scitechsoft.com)
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#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
- // it calls out OnDismiss()
- friend wxPopupMenuWindow;
+ // the position of the first item in the current radio group or -1
+ int m_startRadioGroup;
+ // it calls out OnDismiss()
+ friend class wxPopupMenuWindow;
DECLARE_DYNAMIC_CLASS(wxMenu)
};
bool m_shouldShowMenu;
// it calls out ProcessMouseEvent()
- friend wxPopupMenuWindow;
+ friend class wxPopupMenuWindow;
DECLARE_EVENT_TABLE()
DECLARE_DYNAMIC_CLASS(wxMenuBar)