-// wxPyMenu::wxPyMenu(const wxString& title, PyObject* _func)
-// : wxMenu(title, (wxFunction)(func ? MenuCallback : NULL)), func(0) {
-
-// if (_func) {
-// func = _func;
-// Py_INCREF(func);
-// }
-// }
-
-// wxPyMenu::~wxPyMenu() {
-// #ifdef WXP_WITH_THREAD
-// //if (! wxPyInEvent)
-// PyEval_RestoreThread(wxPyEventThreadState);
-// #endif
-
-// if (func)
-// Py_DECREF(func);
-
-// #ifdef WXP_WITH_THREAD
-// //if (! wxPyInEvent)
-// PyEval_SaveThread();
-// #endif
-// }
-
-
-// void wxPyMenu::MenuCallback(wxMenu& menu, wxCommandEvent& evt) {
-// PyObject* evtobj;
-// PyObject* menuobj;
-// PyObject* func;
-// PyObject* args;
-// PyObject* res;
-
-// #ifdef WXP_WITH_THREAD
-// PyEval_RestoreThread(wxPyEventThreadState);
-// wxPyInEvent = true;
-// #endif
-// evtobj = wxPyConstructObject((void*)&evt, "wxCommandEvent");
-// menuobj = wxPyConstructObject((void*)&menu, "wxMenu");
-// if (PyErr_Occurred()) {
-// // bail out if a problem
-// PyErr_Print();
-// goto done;
-// }
-// // Now call the callback...
-// func = ((wxPyMenu*)&menu)->func;
-// args = PyTuple_New(2);
-// PyTuple_SET_ITEM(args, 0, menuobj);
-// PyTuple_SET_ITEM(args, 1, evtobj);
-// res = PyEval_CallObject(func, args);
-// Py_DECREF(args);
-// Py_XDECREF(res); /* In case res is a NULL pointer */
-// done:
-// #ifdef WXP_WITH_THREAD
-// PyEval_SaveThread();
-// wxPyInEvent = false;
-// #endif
-// return;
-// }