]> git.saurik.com Git - wxWidgets.git/commitdiff
wxMenu::callback stuff taken inside WXWIN_COMPATIBILITY_2 (everybody should
authorVadim Zeitlin <vadim@wxwidgets.org>
Mon, 15 Nov 1999 14:04:06 +0000 (14:04 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Mon, 15 Nov 1999 14:04:06 +0000 (14:04 +0000)
be happy now)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4568 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/menu.h
src/common/menucmn.cpp
src/gtk/menu.cpp
src/gtk1/menu.cpp
src/motif/menu.cpp
src/msw/menu.cpp

index 8b9bccd5b80f169f7678f58fc0e6f5b8f8238c16..e3521afa2cec1df6038fd89cfdbf2499adb701c2 100644 (file)
@@ -35,6 +35,21 @@ class WXDLLEXPORT wxMenuItem;
 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
 // ----------------------------------------------------------------------------
@@ -177,10 +192,13 @@ public:
     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; }
+
     wxFunction m_callback;
+#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
index 65459efdd33d93bdf0db9ce1d210bf965ce9a6a4..5d917876657b78bfb573fc4fc6c1051d98cf9c0d 100644 (file)
@@ -125,7 +125,10 @@ void wxMenuBase::Init(long style)
     m_style = style;
     m_clientData = (void *)NULL;
     m_eventHandler = this;
+
+#if wxUSE_MENU_CALLBACK
     m_callback = (wxFunction) NULL;
+#endif // wxUSE_MENU_CALLBACK
 }
 
 wxMenuBase::~wxMenuBase()
index cc8b6b0e0cf16626f398796ea11bb98425739025..750593b5339ced30c42ec57504e8c4986248b9ca 100644 (file)
@@ -469,11 +469,13 @@ static void gtk_menu_clicked_callback( GtkWidget *widget, wxMenu *menu )
     event.SetEventObject( menu );
     event.SetInt(id );
 
+#if wxUSE_MENU_CALLBACK
     if (menu->GetCallback())
     {
         (void) (*(menu->GetCallback())) (*menu, event);
         return;
     }
+#endif // wxUSE_MENU_CALLBACK
 
     if (menu->GetEventHandler()->ProcessEvent(event))
         return;
index cc8b6b0e0cf16626f398796ea11bb98425739025..750593b5339ced30c42ec57504e8c4986248b9ca 100644 (file)
@@ -469,11 +469,13 @@ static void gtk_menu_clicked_callback( GtkWidget *widget, wxMenu *menu )
     event.SetEventObject( menu );
     event.SetInt(id );
 
+#if wxUSE_MENU_CALLBACK
     if (menu->GetCallback())
     {
         (void) (*(menu->GetCallback())) (*menu, event);
         return;
     }
+#endif // wxUSE_MENU_CALLBACK
 
     if (menu->GetEventHandler()->ProcessEvent(event))
         return;
index 30ca32e4cd7cb6bd269f90c7f95062ad62a68ce8..23b39e39ba71ea75859b931602d4a10fa1ccc07f 100644 (file)
@@ -162,12 +162,14 @@ bool wxMenu::ProcessCommand(wxCommandEvent & event)
 {
     bool processed = FALSE;
 
+#if wxUSE_MENU_CALLBACK
     // Try a callback
     if (m_callback)
     {
         (void) (*(m_callback)) (*this, event);
         processed = TRUE;
     }
+#endif // wxUSE_MENU_CALLBACK
 
     // Try the menu's event handler
     if ( !processed && GetEventHandler())
index 845c67a0b46e33ab2aa4dd4c4c594078977cfacd..dc9f5dfba612bc45e0efd185ea5228aad63c1781 100644 (file)
@@ -432,12 +432,14 @@ bool wxMenu::ProcessCommand(wxCommandEvent & event)
 {
     bool processed = FALSE;
 
+#if wxUSE_MENU_CALLBACK
     // Try a callback
     if (m_callback)
     {
         (void)(*(m_callback))(*this, event);
         processed = TRUE;
     }
+#endif // wxUSE_MENU_CALLBACK
 
     // Try the menu's event handler
     if ( !processed && GetEventHandler())