-//wxPyEvtHandlers::wxPyEvtHandlers()
-// : pyOnActivate(0),
-// pyOnChar(0),
-// pyOnCharHook(0),
-// pyOnClose(0),
-// pyOnCommand(0),
-// pyOnDropFiles(0),
-// pyOnDefaultAction(0),
-// pyOnEvent(0),
-// pyOnInitMenuPopup(0),
-// pyOnKillFocus(0),
-// pyOnMenuCommand(0),
-// pyOnMenuSelect(0),
-// pyOnMove(0),
-// pyOnPaint(0),
-// pyOnScroll(0),
-// pyOnSetFocus(0),
-// pyOnSize(0),
-// pyOnSysColourChange(0),
-// pyOnLeftClick(0),
-// pyOnMouseEnter(0),
-// pyOnRightClick(0),
-// pyOnDoubleClickSash(0),
-// pyOnUnsplit(0)
-//{
-//}
-
-
-//wxPyEvtHandlers::~wxPyEvtHandlers()
-//{
-// Py_XDECREF(pyOnActivate);
-// Py_XDECREF(pyOnChar);
-// Py_XDECREF(pyOnCharHook);
-// Py_XDECREF(pyOnClose);
-// Py_XDECREF(pyOnCommand);
-// Py_XDECREF(pyOnDropFiles);
-// Py_XDECREF(pyOnDefaultAction);
-// Py_XDECREF(pyOnEvent);
-// Py_XDECREF(pyOnInitMenuPopup);
-// Py_XDECREF(pyOnKillFocus);
-// Py_XDECREF(pyOnMenuCommand);
-// Py_XDECREF(pyOnMenuSelect);
-// Py_XDECREF(pyOnMove);
-// Py_XDECREF(pyOnPaint);
-// Py_XDECREF(pyOnScroll);
-// Py_XDECREF(pyOnSetFocus);
-// Py_XDECREF(pyOnSize);
-// Py_XDECREF(pyOnSysColourChange);
-// Py_XDECREF(pyOnLeftClick);
-// Py_XDECREF(pyOnMouseEnter);
-// Py_XDECREF(pyOnRightClick);
-// Py_XDECREF(pyOnDoubleClickSash);
-// Py_XDECREF(pyOnUnsplit);
-
-// wxNode* node = cleanupList.First();
-// while (node) {
-// delete (wxPyEvtHandlers*)node->Data();
-// delete node;
-// node = cleanupList.First();
-// }
-
-// node = decrefList.First();
-// while (node) {
-// PyObject* obj = (PyObject*)node->Data();
-// Py_DECREF(obj);
-// delete node;
-// node = decrefList.First();
-// }
-//// printf("~wxPyEvtHandlers: %p\n", this);
-//}
-
-////----------------------------------------------------------------------
-
-//Bool wxPyEvtHandlers::addCallback(char* name, PyObject* callback)
-//{
-// Py_INCREF(callback);
-
-// if (strcmp(name, "OnActivate") == 0) {
-// pyOnActivate = callback;
-// return TRUE;
-// }
-// if (strcmp(name, "OnChar") == 0) {
-// pyOnChar = callback;
-// return TRUE;
-// }
-// if (strcmp(name, "OnCharHook") == 0) {
-// pyOnCharHook = callback;
-// return TRUE;
-// }
-// if (strcmp(name, "OnClose") == 0) {
-// pyOnClose = callback;
-// return TRUE;
-// }
-// if (strcmp(name, "OnCommand") == 0) {
-// pyOnCommand = callback;
-// return TRUE;
-// }
-// if (strcmp(name, "OnDropFiles") == 0) {
-// pyOnDropFiles = callback;
-// return TRUE;
-// }
-// if (strcmp(name, "OnDefaultAction") == 0) {
-// pyOnDefaultAction = callback;
-// return TRUE;
-// }
-// if (strcmp(name, "OnEvent") == 0) {
-// pyOnEvent = callback;
-// return TRUE;
-// }
-// if (strcmp(name, "OnInitMenuPopup") == 0) {
-// pyOnInitMenuPopup = callback;
-// return TRUE;
-// }
-// if (strcmp(name, "OnKillFocus") == 0) {
-// pyOnKillFocus = callback;
-// return TRUE;
-// }
-// if (strcmp(name, "OnMenuCommand") == 0) {
-// pyOnMenuCommand = callback;
-// return TRUE;
-// }
-// if (strcmp(name, "OnMenuSelect") == 0) {
-// pyOnMenuSelect = callback;
-// return TRUE;
-// }
-// if (strcmp(name, "OnMove") == 0) {
-// pyOnMove = callback;
-// return TRUE;
-// }
-// if (strcmp(name, "OnPaint") == 0) {
-// pyOnPaint = callback;
-// return TRUE;
-// }
-// if (strcmp(name, "OnScroll") == 0) {
-// pyOnScroll = callback;
-// return TRUE;
-// }
-// if (strcmp(name, "OnSetFocus") == 0) {
-// pyOnSetFocus = callback;
-// return TRUE;
-// }
-// if (strcmp(name, "OnSize") == 0) {
-// pyOnSize = callback;
-// return TRUE;
-// }
-// if (strcmp(name, "OnSysColourChange") == 0) {
-// pyOnSysColourChange = callback;
-// return TRUE;
-// }
-// if (strcmp(name, "OnLeftClick") == 0) {
-// pyOnLeftClick = callback;
-// return TRUE;
-// }
-// if (strcmp(name, "OnMouseEnter") == 0) {
-// pyOnMouseEnter = callback;
-// return TRUE;
-// }
-// if (strcmp(name, "OnRightClick") == 0) {
-// pyOnRightClick = callback;
-// return TRUE;
-// }
-// if (strcmp(name, "OnDoubleClickSash") == 0) {
-// pyOnDoubleClickSash = callback;
-// return TRUE;
-// }
-// if (strcmp(name, "OnUnsplit") == 0) {
-// pyOnUnsplit = callback;
-// return TRUE;
-// }
-
-// // If we get here, there was no match.
-// Py_DECREF(callback);
-// return FALSE;
-//}
-
-
-////----------------------------------------------------------------------
-//// Helpers to assist in calling the python callable objects
-////----------------------------------------------------------------------
-
-//PyObject* wxPyEvtHandlers::constructObject(void* ptr, char* className)
-//{
-// char buff[64]; // should be big enough...
-// char swigptr[64];
-
-// sprintf(buff, "_%s_p", className);
-// SWIG_MakePtr(swigptr, ptr, buff);
-
-// sprintf(buff, "%sPtr", className);
-// PyObject* classobj = PyDict_GetItemString(wxPython_dict, buff);
-// PyObject* arg = Py_BuildValue("(s)", swigptr);
-// PyObject* obj = PyInstance_New(classobj, arg, NULL);
-// Py_DECREF(arg);
-
-// return obj;
-//}
-
-
-
-//int wxPyEvtHandlers::callFunc(PyObject* func, PyObject* arglist)
-//{
-// PyObject* result;
-// int retval = FALSE;
-
-// result = PyEval_CallObject(func, arglist);
-// Py_DECREF(arglist);
-// if (result) { // Assumes an integer return type...
-// retval = PyInt_AsLong(result);
-// Py_DECREF(result);
-// PyErr_Clear(); // forget about it if it's not...
-// } else {
-// PyErr_Print();
-// }
-// return retval;
-//}
-
-////---------------------------------------------------------------------------
-//// Methods and helpers of the wxPy* classes
-////---------------------------------------------------------------------------
-
-//IMP_OnActivate(wxFrame, wxPyFrame);
-//IMP_OnCharHook(wxFrame, wxPyFrame);
-//IMP_OnClose(wxFrame, wxPyFrame);
-//IMP_OnMenuCommand(wxFrame, wxPyFrame);
-//IMP_OnMenuSelect(wxFrame, wxPyFrame);
-//IMP_OnSize(wxFrame, wxPyFrame);
-//IMP_OnDropFiles(wxFrame, wxPyFrame);
-
-//IMP_OnChar(wxCanvas, wxPyCanvas);
-//IMP_OnEvent(wxCanvas, wxPyCanvas);
-//IMP_OnPaint(wxCanvas, wxPyCanvas);
-//IMP_OnScroll(wxCanvas, wxPyCanvas);
-//IMP_OnDropFiles(wxCanvas, wxPyCanvas);
-
-//IMP_OnChar(wxPanel, wxPyPanel);
-//IMP_OnEvent(wxPanel, wxPyPanel);
-//IMP_OnPaint(wxPanel, wxPyPanel);
-//IMP_OnScroll(wxPanel, wxPyPanel);
-//IMP_OnCommand(wxPanel, wxPyPanel);
-//IMP_OnDefaultAction(wxPanel, wxPyPanel);
-//IMP_OnDropFiles(wxPanel, wxPyPanel);
-
-//IMP_OnChar(wxTextWindow, wxPyTextWindow);
-//IMP_OnDropFiles(wxTextWindow, wxPyTextWindow);
-
-//IMP_OnCharHook(wxDialogBox, wxPyDialogBox);
-//IMP_OnClose(wxDialogBox, wxPyDialogBox);
-//IMP_OnSize(wxDialogBox, wxPyDialogBox);
-//IMP_OnDropFiles(wxDialogBox, wxPyDialogBox);
-//IMP_OnChar(wxDialogBox, wxPyDialogBox);
-//IMP_OnEvent(wxDialogBox, wxPyDialogBox);
-//IMP_OnPaint(wxDialogBox, wxPyDialogBox);
-//IMP_OnScroll(wxDialogBox, wxPyDialogBox);
-//IMP_OnCommand(wxDialogBox, wxPyDialogBox);
-//IMP_OnDefaultAction(wxDialogBox, wxPyDialogBox);
-
-//IMP_OnChar(wxToolBar, wxPyToolBar);
-//IMP_OnEvent(wxToolBar, wxPyToolBar);
-//IMP_OnPaint(wxToolBar, wxPyToolBar);
-//IMP_OnScroll(wxToolBar, wxPyToolBar);
-//IMP_OnCommand(wxToolBar, wxPyToolBar);
-//IMP_OnDefaultAction(wxToolBar, wxPyToolBar);
-//IMP_OnDropFiles(wxToolBar, wxPyToolBar);
-//IMP_OnMouseEnter(wxToolBar, wxPyToolBar);
-//IMP_OnRightClick(wxToolBar, wxPyToolBar);
-
-//IMP_OnChar(wxButtonBar, wxPyButtonBar);
-//IMP_OnEvent(wxButtonBar, wxPyButtonBar);
-//IMP_OnPaint(wxButtonBar, wxPyButtonBar);
-//IMP_OnScroll(wxButtonBar, wxPyButtonBar);
-//IMP_OnCommand(wxButtonBar, wxPyButtonBar);
-//IMP_OnDefaultAction(wxButtonBar, wxPyButtonBar);
-//IMP_OnDropFiles(wxButtonBar, wxPyButtonBar);
-//IMP_OnMouseEnter(wxButtonBar, wxPyButtonBar);
-//IMP_OnRightClick(wxButtonBar, wxPyButtonBar);
-
-//IMP_OnDoubleClickSash(wxSplitterWindow, wxPySplitterWindow);
-//IMP_OnUnsplit(wxSplitterWindow, wxPySplitterWindow);
-
-
-
-//Bool wxPyToolBar::OnLeftClick(int a, int b) {
-// wxPyEvtHandlers* peh=(wxPyEvtHandlers*)GetClientData();
-// if (peh->pyOnLeftClick)
-// return peh->callFunc(peh->pyOnLeftClick, Py_BuildValue("(ii)",a,b));
-// else {
-// // If there is no Python callback, redirect the request to
-// // the OnMenuCommand of the parent frame.
-// wxFrame* frame = (wxFrame*)GetParent();
-// frame->OnMenuCommand(a);
-// return TRUE;
-// }
-//// else
-//// return wxToolBar::OnLeftClick(a,b);
-//}
-//Bool wxPyToolBar::baseclass_OnLeftClick(int a, int b) {
-// return wxToolBar::OnLeftClick(a,b);
-//}
-
-
-//Bool wxPyButtonBar::OnLeftClick(int a, int b) {
-// wxPyEvtHandlers* peh=(wxPyEvtHandlers*)GetClientData();
-// if (peh->pyOnLeftClick)
-// return peh->callFunc(peh->pyOnLeftClick, Py_BuildValue("(ii)",a,b));
-// else {
-// // If there is no Python callback, redirect the request to
-// // the OnMenuCommand of the parent frame.
-// wxFrame* frame = (wxFrame*)GetParent();
-// frame->OnMenuCommand(a);
-// return TRUE;
-// }
-//}
-//Bool wxPyButtonBar::baseclass_OnLeftClick(int a, int b) {
-// return wxButtonBar::OnLeftClick(a,b);
-//}
-
-
-
-//wxPyMenu::wxPyMenu(PyObject* _func)
-// : wxMenu(NULL, (wxFunction)(func ? MenuCallback : NULL)), func(0) {
-
-// if (_func) {
-// func = _func;
-// Py_INCREF(func);
-// }
-//}
-
-//wxPyMenu::~wxPyMenu() {
-// if (func)
-// Py_DECREF(func);
-//}
-
-
-//void wxPyMenu::MenuCallback(wxWindow& win, wxCommandEvent& evt) {
-// wxPyEvtHandlers* peh= new wxPyEvtHandlers; // Used for the helper methods
-// PyObject* evtobj = peh->constructObject((void*)&evt, "wxCommandEvent");
-// PyObject* winobj = peh->constructObject((void*)&win, "wxWindow");
-// if (PyErr_Occurred()) {
-// // bail out if a problem
-// PyErr_Print();
-// delete peh;
-// return;
-// }
-// // Now call the callback...
-// PyObject* func = ((wxPyMenu*)&win)->func;
-// peh->callFunc(func, Py_BuildValue("(OO)", winobj, evtobj));
-// Py_DECREF(evtobj);
-// Py_DECREF(winobj);
-// delete peh;
-//}
-
-
-
-//wxPyTimer::wxPyTimer(PyObject* callback) {
-// func = callback;
-// Py_INCREF(func);
-//}
-
-//wxPyTimer::~wxPyTimer() {
-// Py_DECREF(func);
-//}
-
-//void wxPyTimer::Notify() {
-// wxPyEvtHandlers* peh= new wxPyEvtHandlers; // just for the helper methods
-// peh->callFunc(func, Py_BuildValue("()"));
-// delete peh;
-//}