]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/menu.h
Added class to handle selection inside wxGrid
[wxWidgets.git] / include / wx / menu.h
index 599326cb180928bcdee2e4732646eb24210c3185..c297b599a6ebc4743ad86b122dfd282b749535c0 100644 (file)
@@ -35,6 +35,21 @@ class WXDLLEXPORT wxMenuItem;
 WX_DECLARE_LIST(wxMenu, wxMenuList);
 WX_DECLARE_LIST(wxMenuItem, wxMenuItemList);
 
 WX_DECLARE_LIST(wxMenu, wxMenuList);
 WX_DECLARE_LIST(wxMenuItem, wxMenuItemList);
 
+// ----------------------------------------------------------------------------
+// conditional compilation
+// ----------------------------------------------------------------------------
+
+// having callbacks in menus is a wxWin 1.6x feature which should be replaced
+// with event tables in wxWin 2.xx code - however provide it because many
+// people like it a lot by default
+#ifndef wxUSE_MENU_CALLBACK
+    #if WXWIN_COMPATIBILITY_2
+        #define wxUSE_MENU_CALLBACK 1
+    #else
+        #define wxUSE_MENU_CALLBACK 0
+    #endif // WXWIN_COMPATIBILITY_2
+#endif // !defined(wxUSE_MENU_CALLBACK)
+
 // ----------------------------------------------------------------------------
 // wxMenu
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
 // wxMenu
 // ----------------------------------------------------------------------------
@@ -57,9 +72,6 @@ public:
     // menu construction
     // -----------------
 
     // menu construction
     // -----------------
 
-    // append a separator to the menu
-    void AppendSeparator() { Append(wxID_SEPARATOR, wxEmptyString); }
-
     // append a normal item to the menu
     void Append(int id,
                 const wxString& text,
     // append a normal item to the menu
     void Append(int id,
                 const wxString& text,
@@ -69,6 +81,9 @@ public:
         DoAppend(wxMenuItem::New((wxMenu *)this, id, text, help, isCheckable));
     }
 
         DoAppend(wxMenuItem::New((wxMenu *)this, id, text, help, isCheckable));
     }
 
+    // append a separator to the menu
+    void AppendSeparator() { Append(wxID_SEPARATOR, wxEmptyString); }
+
     // append a submenu
     void Append(int id,
                 const wxString& text,
     // append a submenu
     void Append(int id,
                 const wxString& text,
@@ -175,12 +190,15 @@ public:
         { return FindItem(itemId, itemMenu); }
 
     wxList& GetItems() const { return (wxList &)m_items; }
         { return FindItem(itemId, itemMenu); }
 
     wxList& GetItems() const { return (wxList &)m_items; }
+#endif // WXWIN_COMPATIBILITY
 
 
+#if wxUSE_MENU_CALLBACK
     // wxWin 1.6x compatible menu event handling
     wxFunction GetCallback() const { return m_callback; }
     void Callback(const wxFunction func) { m_callback = func; }
     // wxWin 1.6x compatible menu event handling
     wxFunction GetCallback() const { return m_callback; }
     void Callback(const wxFunction func) { m_callback = func; }
+
     wxFunction m_callback;
     wxFunction m_callback;
-#endif // WXWIN_COMPATIBILITY
+#endif // wxUSE_MENU_CALLBACK
 
     // unlike FindItem(), this function doesn't recurse but only looks through
     // our direct children and also may return the index of the found child if
 
     // unlike FindItem(), this function doesn't recurse but only looks through
     // our direct children and also may return the index of the found child if
@@ -279,6 +297,9 @@ public:
     // if menu is !NULL, it will be filled with wxMenu this item belongs to
     virtual wxMenuItem* FindItem(int id, wxMenu **menu = NULL) const = 0;
 
     // if menu is !NULL, it will be filled with wxMenu this item belongs to
     virtual wxMenuItem* FindItem(int id, wxMenu **menu = NULL) const = 0;
 
+    // find menu by its caption, return wxNOT_FOUND on failure
+    int FindMenu(const wxString& title) const;
+
     // item access
     // -----------
 
     // item access
     // -----------