]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/cocoa/menu.h
use global operator new to fix compilation errors if type T overloads new (as wxObjec...
[wxWidgets.git] / include / wx / cocoa / menu.h
index 814599dea01d756fc515ff963fe17dbda8d6a090..6903d190bc4757dfc7da68a287ff27737d2bd139 100644 (file)
@@ -4,7 +4,7 @@
 // Author:      David Elliott
 // Modified by:
 // Created:     2002/12/09
-// RCS-ID:      $Id: 
+// RCS-ID:      $Id:
 // Copyright:   (c) 2002 David Elliott
 // Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 // wxMenu
 // ========================================================================
 
-class WXDLLEXPORT wxMenu : public wxMenuBase, public wxCocoaNSMenu
+class WXDLLIMPEXP_CORE wxMenu : public wxMenuBase, public wxCocoaNSMenu
 {
 public:
     // ctors and dtor
     wxMenu(const wxString& title, long style = 0)
-        : wxMenuBase(title, style) { Create(title,style); }
+    :   wxMenuBase(title, style)
+    ,   m_cocoaDeletes(false)
+    {   Create(title,style); }
     bool Create(const wxString& title, long style = 0);
 
     wxMenu(long style = 0) : wxMenuBase(style) { Create(wxEmptyString, style); }
 
     virtual ~wxMenu();
 
+// ------------------------------------------------------------------------
+// Cocoa specifics
+// ------------------------------------------------------------------------
+public:
+    inline WX_NSMenu GetNSMenu() { return m_cocoaNSMenu; }
+    void SetCocoaDeletes(bool cocoaDeletes);
+    virtual void Cocoa_dealloc();
+protected:
+    WX_NSMenu m_cocoaNSMenu;
+    bool m_cocoaDeletes;
+// ------------------------------------------------------------------------
+// Implementation
+// ------------------------------------------------------------------------
 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 wxMenuItemDoRemove(wxMenuItem *item);
 
 #if wxUSE_ACCEL
     // add/remove accel for the given menu item
@@ -58,16 +73,26 @@ private:
 // ========================================================================
 // wxMenuBar
 // ========================================================================
-class WXDLLEXPORT wxMenuBar : public wxMenuBarBase, public wxCocoaNSMenu
+class WXDLLIMPEXP_CORE wxMenuBar : public wxMenuBarBase
 {
 public:
     // ctors and dtor
     wxMenuBar(long style = 0) { Create(style); }
+    wxMenuBar(size_t n, wxMenu *menus[], const wxString titles[], long style = 0);
     bool Create(long style = 0);
     virtual ~wxMenuBar();
 
-    wxMenuItemList m_items;             // the list of menu items
-
+// ------------------------------------------------------------------------
+// Cocoa specifics
+// ------------------------------------------------------------------------
+public:
+    inline WX_NSMenu GetNSMenu() { return m_cocoaNSMenu; }
+protected:
+    WX_NSMenu m_cocoaNSMenu;
+// ------------------------------------------------------------------------
+// Implementation
+// ------------------------------------------------------------------------
+public:
     // implement base class virtuals
     virtual bool Append(wxMenu *menu, const wxString &title);
     virtual bool Insert(size_t pos, wxMenu *menu, const wxString& title);
@@ -77,8 +102,8 @@ public:
     virtual void EnableTop(size_t pos, bool enable);
     virtual bool IsEnabledTop(size_t pos) const;
 
-    virtual void SetLabelTop(size_t pos, const wxString& label);
-    virtual wxString GetLabelTop(size_t pos) const;
+    virtual void SetMenuLabel(size_t pos, const wxString& label);
+    virtual wxString GetMenuLabel(size_t pos) const;
 
     virtual void Attach(wxFrame *frame);
     virtual void Detach();