]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/menu.h
Compile fixes,
[wxWidgets.git] / include / wx / msw / menu.h
index c0e08f9d78d0af8804a796919975ffcaac15e77a..c36a5fced286f1f9aa958acc7261b1740f14fe4e 100644 (file)
@@ -18,6 +18,7 @@
 
 #include "wx/defs.h"
 #include "wx/event.h"
+#include "wx/dynarray.h"
 
 class WXDLLEXPORT wxMenuItem;
 class WXDLLEXPORT wxMenuBar;
@@ -103,20 +104,12 @@ public:
     // menu or associated window will be used.
     void UpdateUI(wxEvtHandler* source = (wxEvtHandler*)NULL);
 
-    void ProcessCommand(wxCommandEvent& event);
+    bool ProcessCommand(wxCommandEvent& event);
 
     virtual void SetParent(wxEvtHandler *parent) { m_parent = parent; }
     void SetEventHandler(wxEvtHandler *handler) { m_eventHandler = handler; }
     wxEvtHandler *GetEventHandler() const { return m_eventHandler; }
 
-#ifdef WXWIN_COMPATIBILITY
-    void Callback(const wxFunction func) { m_callback = func; }
-
-    // compatibility: these functions are deprecated
-    bool Enabled(int id) const { return IsEnabled(id); }
-    bool Checked(int id) const { return IsChecked(id); }
-#endif // WXWIN_COMPATIBILITY
-
     // IMPLEMENTATION
     bool MSWCommand(WXUINT param, WXWORD id);
 
@@ -133,6 +126,22 @@ public:
     void Attach(wxMenuBar *menubar);
     void Detach();
 
+#if wxUSE_ACCEL
+    size_t GetAccelCount() const { return m_accelKeyCodes.GetCount(); }
+    size_t CopyAccels(wxAcceleratorEntry *accels) const;
+#endif // wxUSE_ACCEL
+
+#ifdef WXWIN_COMPATIBILITY
+    void Callback(const wxFunction func) { m_callback = func; }
+
+    // compatibility: these functions are deprecated
+    bool Enabled(int id) const { return IsEnabled(id); }
+    bool Checked(int id) const { return IsChecked(id); }
+
+private:
+    wxFunction        m_callback;
+#endif // WXWIN_COMPATIBILITY
+
 private:
     bool              m_doBreak;
 
@@ -142,7 +151,6 @@ private:
     // Might be better to have a flag saying whether it's deleteable or not.
     WXHMENU           m_savehMenu ; // Used for Enable() on popup
     WXHMENU           m_hMenu;
-    wxFunction        m_callback;
 
     int               m_noItems;
     wxString          m_title;
@@ -153,6 +161,11 @@ private:
     wxEvtHandler *    m_eventHandler;
     wxWindow         *m_pInvokingWindow;
     void*             m_clientData;
+
+#if wxUSE_ACCEL
+    // the accelerators data
+    wxArrayInt        m_accelKeyCodes, m_accelFlags, m_accelIds;
+#endif // wxUSE_ACCEL
 };
 
 // ----------------------------------------------------------------------------
@@ -204,7 +217,7 @@ public:
 
     // notifications: return FALSE to prevent the menu from being
     // appended/deleted
-    virtual bool OnAppend(wxMenu *menu, const char *title);
+    virtual bool OnAppend(wxMenu *menu, const wxChar *title);
     virtual bool OnDelete(wxMenu *menu, int index);
 
     // item search
@@ -235,12 +248,13 @@ public:
         // get the frame we live in
     wxFrame *GetFrame() const { return m_menuBarFrame; }
         // attach to a frame
-    void Attach(wxFrame *frame)
-    {
-        wxASSERT_MSG( !m_menuBarFrame, _T("menubar already attached!") );
+    void Attach(wxFrame *frame);
+
+#if wxUSE_ACCEL
+        // get the accel table for the menus
+    const wxAcceleratorTable& GetAccelTable() const { return m_accelTable; }
+#endif // wxUSE_ACCEL
 
-        m_menuBarFrame = frame;
-    }
         // get the menu handle
     WXHMENU GetHMenu() const { return m_hMenu; }
 
@@ -258,6 +272,11 @@ protected:
     wxString     *m_titles;
     wxFrame      *m_menuBarFrame;
     WXHMENU       m_hMenu;
+
+#if wxUSE_ACCEL
+    // the accelerator table for all accelerators in all our menus
+    wxAcceleratorTable m_accelTable;
+#endif // wxUSE_ACCEL
 };
 
 #endif // _WX_MENU_H_