wxMenu::callback stuff taken inside WXWIN_COMPATIBILITY_2 (everybody should
be happy now) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4568 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -35,6 +35,21 @@ class WXDLLEXPORT wxMenuItem;
|
|||||||
WX_DECLARE_LIST(wxMenu, wxMenuList);
|
WX_DECLARE_LIST(wxMenu, wxMenuList);
|
||||||
WX_DECLARE_LIST(wxMenuItem, wxMenuItemList);
|
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
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
@@ -177,10 +192,13 @@ public:
|
|||||||
wxList& GetItems() const { return (wxList &)m_items; }
|
wxList& GetItems() const { return (wxList &)m_items; }
|
||||||
#endif // WXWIN_COMPATIBILITY
|
#endif // WXWIN_COMPATIBILITY
|
||||||
|
|
||||||
|
#if wxUSE_MENU_CALLBACK
|
||||||
// wxWin 1.6x compatible menu event handling
|
// wxWin 1.6x compatible menu event handling
|
||||||
wxFunction GetCallback() const { return m_callback; }
|
wxFunction GetCallback() const { return m_callback; }
|
||||||
void Callback(const wxFunction func) { m_callback = func; }
|
void Callback(const wxFunction func) { m_callback = func; }
|
||||||
|
|
||||||
wxFunction m_callback;
|
wxFunction m_callback;
|
||||||
|
#endif // wxUSE_MENU_CALLBACK
|
||||||
|
|
||||||
// unlike FindItem(), this function doesn't recurse but only looks through
|
// 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
|
// our direct children and also may return the index of the found child if
|
||||||
|
@@ -125,7 +125,10 @@ void wxMenuBase::Init(long style)
|
|||||||
m_style = style;
|
m_style = style;
|
||||||
m_clientData = (void *)NULL;
|
m_clientData = (void *)NULL;
|
||||||
m_eventHandler = this;
|
m_eventHandler = this;
|
||||||
|
|
||||||
|
#if wxUSE_MENU_CALLBACK
|
||||||
m_callback = (wxFunction) NULL;
|
m_callback = (wxFunction) NULL;
|
||||||
|
#endif // wxUSE_MENU_CALLBACK
|
||||||
}
|
}
|
||||||
|
|
||||||
wxMenuBase::~wxMenuBase()
|
wxMenuBase::~wxMenuBase()
|
||||||
|
@@ -469,11 +469,13 @@ static void gtk_menu_clicked_callback( GtkWidget *widget, wxMenu *menu )
|
|||||||
event.SetEventObject( menu );
|
event.SetEventObject( menu );
|
||||||
event.SetInt(id );
|
event.SetInt(id );
|
||||||
|
|
||||||
|
#if wxUSE_MENU_CALLBACK
|
||||||
if (menu->GetCallback())
|
if (menu->GetCallback())
|
||||||
{
|
{
|
||||||
(void) (*(menu->GetCallback())) (*menu, event);
|
(void) (*(menu->GetCallback())) (*menu, event);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
#endif // wxUSE_MENU_CALLBACK
|
||||||
|
|
||||||
if (menu->GetEventHandler()->ProcessEvent(event))
|
if (menu->GetEventHandler()->ProcessEvent(event))
|
||||||
return;
|
return;
|
||||||
|
@@ -469,11 +469,13 @@ static void gtk_menu_clicked_callback( GtkWidget *widget, wxMenu *menu )
|
|||||||
event.SetEventObject( menu );
|
event.SetEventObject( menu );
|
||||||
event.SetInt(id );
|
event.SetInt(id );
|
||||||
|
|
||||||
|
#if wxUSE_MENU_CALLBACK
|
||||||
if (menu->GetCallback())
|
if (menu->GetCallback())
|
||||||
{
|
{
|
||||||
(void) (*(menu->GetCallback())) (*menu, event);
|
(void) (*(menu->GetCallback())) (*menu, event);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
#endif // wxUSE_MENU_CALLBACK
|
||||||
|
|
||||||
if (menu->GetEventHandler()->ProcessEvent(event))
|
if (menu->GetEventHandler()->ProcessEvent(event))
|
||||||
return;
|
return;
|
||||||
|
@@ -162,12 +162,14 @@ bool wxMenu::ProcessCommand(wxCommandEvent & event)
|
|||||||
{
|
{
|
||||||
bool processed = FALSE;
|
bool processed = FALSE;
|
||||||
|
|
||||||
|
#if wxUSE_MENU_CALLBACK
|
||||||
// Try a callback
|
// Try a callback
|
||||||
if (m_callback)
|
if (m_callback)
|
||||||
{
|
{
|
||||||
(void) (*(m_callback)) (*this, event);
|
(void) (*(m_callback)) (*this, event);
|
||||||
processed = TRUE;
|
processed = TRUE;
|
||||||
}
|
}
|
||||||
|
#endif // wxUSE_MENU_CALLBACK
|
||||||
|
|
||||||
// Try the menu's event handler
|
// Try the menu's event handler
|
||||||
if ( !processed && GetEventHandler())
|
if ( !processed && GetEventHandler())
|
||||||
|
@@ -432,12 +432,14 @@ bool wxMenu::ProcessCommand(wxCommandEvent & event)
|
|||||||
{
|
{
|
||||||
bool processed = FALSE;
|
bool processed = FALSE;
|
||||||
|
|
||||||
|
#if wxUSE_MENU_CALLBACK
|
||||||
// Try a callback
|
// Try a callback
|
||||||
if (m_callback)
|
if (m_callback)
|
||||||
{
|
{
|
||||||
(void)(*(m_callback))(*this, event);
|
(void)(*(m_callback))(*this, event);
|
||||||
processed = TRUE;
|
processed = TRUE;
|
||||||
}
|
}
|
||||||
|
#endif // wxUSE_MENU_CALLBACK
|
||||||
|
|
||||||
// Try the menu's event handler
|
// Try the menu's event handler
|
||||||
if ( !processed && GetEventHandler())
|
if ( !processed && GetEventHandler())
|
||||||
|
Reference in New Issue
Block a user