+%{
+// A Log class that can be derived from in wxPython
+class wxPyLog : public wxLog {
+public:
+ wxPyLog() : wxLog() {}
+
+ virtual void DoLog(wxLogLevel level, const wxChar *szString, time_t t) {
+ bool found;
+ wxPyTState* state = wxPyBeginBlockThreads();
+ if ((found = wxPyCBH_findCallback(m_myInst, "DoLog")))
+ wxPyCBH_callCallback(m_myInst, Py_BuildValue("(isi)", level, szString, t));
+ wxPyEndBlockThreads(state);
+ if (! found)
+ wxLog::DoLog(level, szString, t);
+ }
+
+ virtual void DoLogString(const wxChar *szString, time_t t) {
+ bool found;
+ wxPyTState* state = wxPyBeginBlockThreads();
+ if ((found = wxPyCBH_findCallback(m_myInst, "DoLogString")))
+ wxPyCBH_callCallback(m_myInst, Py_BuildValue("(si)", szString, t));
+ wxPyEndBlockThreads(state);
+ if (! found)
+ wxLog::DoLogString(szString, t);
+ }
+
+ PYPRIVATE;
+};
+%}
+
+// Now tell SWIG about it
+class wxPyLog : public wxLog {
+public:
+ wxPyLog();
+ void _setSelf(PyObject* self, PyObject* _class);
+ %pragma(python) addtomethod = "__init__:self._setSelf(self, wxPyLog)"
+ %addmethods { void Destroy() { delete self; } }
+
+};
+