]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/mac/menu.h
moved definition of TARGET_CARBON to generated setup.h when compiling with
[wxWidgets.git] / include / wx / mac / menu.h
index 39b0f0a918806ac0bbbf89e2332d6bb03bfa0bba..a8e62e4967805660466d2a2df801d83b040f75bf 100644 (file)
 #ifndef _WX_MENU_H_
 #define _WX_MENU_H_
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "menu.h"
 #endif
 
-#if wxUSE_ACCEL
-    #include "wx/accel.h"
-    #include "wx/dynarray.h"
-
-    WX_DEFINE_EXPORTED_ARRAY(wxAcceleratorEntry *, wxAcceleratorArray);
-#endif // wxUSE_ACCEL
-
 class WXDLLEXPORT wxFrame;
 
 // ----------------------------------------------------------------------------
@@ -44,6 +37,7 @@ public:
     virtual bool DoAppend(wxMenuItem *item);
     virtual bool DoInsert(size_t pos, wxMenuItem *item);
     virtual wxMenuItem *DoRemove(wxMenuItem *item);
+    virtual void Attach(wxMenuBarBase *menubar) ;
 
     virtual void Break();
 
@@ -63,7 +57,6 @@ public:
     // implementation only from now on
     // -------------------------------
 
-       bool MacMenuSelect(wxEvtHandler* handler, long when , int macMenuId, int macMenuItemNum) ;
        int     MacGetIndexFromId( int id ) ; 
        int     MacGetIndexFromItem( wxMenuItem *pItem ) ; 
        void MacEnableMenu( bool bDoEnable ) ;
@@ -75,18 +68,6 @@ public:
     WXHMENU GetHMenu() const { return m_hMenu; }
 
        short MacGetMenuId() { return m_macMenuId ; }
-#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(); }
-    size_t CopyAccels(wxAcceleratorEntry *accels) const;
-
-    // called by wxMenuItem when its accels changes
-    void UpdateAccel(wxMenuItem *item);
-
-    // helper used by wxMenu itself (returns the index in m_accels)
-    int FindAccel(int id) const;
-#endif // wxUSE_ACCEL
 
 private:
     // common part of all ctors
@@ -95,19 +76,21 @@ private:
     // common part of Append/Insert (behaves as Append is pos == (size_t)-1)
     bool DoInsertOrAppend(wxMenuItem *item, size_t pos = (size_t)-1);
 
+    // terminate the current radio group, if any
+    void EndRadioGroup();
+
     // if TRUE, insert a breal before appending the next item
     bool m_doBreak;
 
+    // the position of the first item in the current radio group or -1
+    int m_startRadioGroup;
+
     // the menu handle of this menu
     WXHMENU m_hMenu;
 
        short                           m_macMenuId;
 
        static short            s_macNextMenuId ;
-#if wxUSE_ACCEL
-    // the accelerators for our menu items
-    wxAcceleratorArray m_accels;
-#endif // wxUSE_ACCEL
 
     DECLARE_DYNAMIC_CLASS(wxMenu)
 };
@@ -163,25 +146,23 @@ public:
         // attach to a frame
     void Attach(wxFrame *frame);
 
-#if wxUSE_ACCEL
-    // get the accel table for all the menus
-    const wxAcceleratorTable& GetAccelTable() const { return m_accelTable; }
+               // clear the invoking window for all menus and submenus
+       void UnsetInvokingWindow() ;
 
-    // update the accel table (must be called after adding/deletign a menu)
-    void RebuildAccelTable();
-#endif // wxUSE_ACCEL
+               // set the invoking window for all menus and submenus
+       void SetInvokingWindow( wxFrame* frame ) ;
 
     // if the menubar is modified, the display is not updated automatically,
     // call this function to update it (m_menuBarFrame should be !NULL)
-    void Refresh();
+    void Refresh(bool eraseBackground = TRUE, const wxRect *rect = (const wxRect *) NULL);
 
   void MacInstallMenuBar() ;
-  void MacMenuSelect(wxEvtHandler* handler, long when , int macMenuId, int macMenuItemNum) ;
   static wxMenuBar* MacGetInstalledMenuBar() { return s_macInstalledMenuBar ; }
 
 protected:
     // common part of all ctors
     void Init();
+    wxWindow        *m_invokingWindow;
 
 #if WXWIN_COMPATIBILITY
     wxEvtHandler *m_eventHandler;
@@ -189,11 +170,6 @@ protected:
 
     wxArrayString m_titles;
 
-#if wxUSE_ACCEL
-    // the accelerator table for all accelerators in all our menus
-    wxAcceleratorTable m_accelTable;
-#endif // wxUSE_ACCEL
-
 private:
   static wxMenuBar*                    s_macInstalledMenuBar ;