X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/71908213057690d5452f72b2b9c8e62b53357170..7a5e53abb3f9ea13eba2880972306446e4e21e83:/include/wx/univ/menu.h diff --git a/include/wx/univ/menu.h b/include/wx/univ/menu.h index e5a5a3fa8e..874f5bd896 100644 --- a/include/wx/univ/menu.h +++ b/include/wx/univ/menu.h @@ -12,8 +12,8 @@ #ifndef _WX_UNIV_MENU_H_ #define _WX_UNIV_MENU_H_ -#ifdef __GNUG__ - #pragma interface "menu.h" +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma interface "univmenu.h" #endif #if wxUSE_ACCEL @@ -24,26 +24,12 @@ // 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 // ---------------------------------------------------------------------------- @@ -93,9 +79,9 @@ public: 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); @@ -129,6 +115,9 @@ private: // 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; @@ -141,9 +130,11 @@ private: 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) }; @@ -275,7 +266,7 @@ private: bool m_shouldShowMenu; // it calls out ProcessMouseEvent() - friend wxPopupMenuWindow; + friend class wxPopupMenuWindow; DECLARE_EVENT_TABLE() DECLARE_DYNAMIC_CLASS(wxMenuBar)