]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/menu.h
converted to 16 colors
[wxWidgets.git] / include / wx / msw / menu.h
index f01dafd08061662b8a5615cfa55de960005db2eb..3e6aad81d7934125790a66469852d85d02c5ce86 100644 (file)
@@ -18,6 +18,7 @@
 
 #include "wx/defs.h"
 #include "wx/event.h"
+#include "wx/dynarray.h"
 
 class WXDLLEXPORT wxMenuItem;
 class WXDLLEXPORT wxMenuBar;
@@ -35,8 +36,23 @@ class WXDLLEXPORT wxMenu : public wxEvtHandler
     DECLARE_DYNAMIC_CLASS(wxMenu)
 
 public:
-    // ctor & dtor
-    wxMenu(const wxString& title = wxEmptyString, const wxFunction func = NULL);
+    // ctors & dtor
+    wxMenu(const wxString& title,
+           const wxFunction func)
+    {
+        Init(title, func);
+    }
+
+    wxMenu( long WXUNUSED(style) )
+    {
+       Init( wxEmptyString );
+    }
+
+    wxMenu(const wxString& title = wxEmptyString, long WXUNUSED(style) = 0)
+    {
+        Init(title);
+    }
+
     virtual ~wxMenu();
 
     // construct menu
@@ -125,21 +141,26 @@ 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
+    wxFunction GetCallback() const { return m_callback; }
     void Callback(const wxFunction func) { m_callback = func; }
+    wxFunction        m_callback;
 
+#ifdef WXWIN_COMPATIBILITY
     // 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:
+    // common part of all ctors
+    void Init(const wxString& title, const wxFunction func = NULL );
+
     bool              m_doBreak;
 
     // This is used when m_hMenu is NULL because we don't want to
@@ -159,8 +180,10 @@ private:
     wxWindow         *m_pInvokingWindow;
     void*             m_clientData;
 
+#if wxUSE_ACCEL
     // the accelerators data
     wxArrayInt        m_accelKeyCodes, m_accelFlags, m_accelIds;
+#endif // wxUSE_ACCEL
 };
 
 // ----------------------------------------------------------------------------
@@ -212,7 +235,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
@@ -245,8 +268,11 @@ public:
         // attach to a frame
     void Attach(wxFrame *frame);
 
+#if wxUSE_ACCEL
         // get the accel table for the menus
     const wxAcceleratorTable& GetAccelTable() const { return m_accelTable; }
+#endif // wxUSE_ACCEL
+
         // get the menu handle
     WXHMENU GetHMenu() const { return m_hMenu; }
 
@@ -265,8 +291,10 @@ protected:
     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_