X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/dd9f7fea29e3f8bb61861f52984b7943512346ac..f78cc8969d48219333726b47bc745d21256dd800:/wxPython/src/_log.i diff --git a/wxPython/src/_log.i b/wxPython/src/_log.i index 0664712ee7..17a737e292 100644 --- a/wxPython/src/_log.i +++ b/wxPython/src/_log.i @@ -61,7 +61,7 @@ public: static bool IsEnabled(); // change the flag state, return the previous one - static bool EnableLogging(bool doIt = True); + static bool EnableLogging(bool doIt = true); // static sink function static void OnLog(wxLogLevel level, const wxChar *szString, time_t t); @@ -94,7 +94,7 @@ public: // verbose mode is activated by standard command-line '-verbose' // option - static void SetVerbose(bool bVerbose = True); + static void SetVerbose(bool bVerbose = true); // Set log level. Log messages with level > logLevel will not be logged. static void SetLogLevel(wxLogLevel logLevel); @@ -181,10 +181,10 @@ class wxLogWindow : public wxLog public: wxLogWindow(wxFrame *pParent, // the parent frame (can be NULL) const wxString& szTitle, // the title of the frame - bool bShow = True, // show window immediately? - bool bPassToOld = True); // pass log messages to the old target? + bool bShow = true, // show window immediately? + bool bPassToOld = true); // pass log messages to the old target? - void Show(bool bShow = True); + void Show(bool bShow = true); wxFrame *GetFrame() const; wxLog *GetOldLog() const; bool IsPassingMessages() const; @@ -207,21 +207,118 @@ public: unsigned long wxSysErrorCode(); const wxString wxSysErrorMsg(unsigned long nErrCode = 0); -void wxLogFatalError(const wxString& msg); -void wxLogError(const wxString& msg); -void wxLogWarning(const wxString& msg); -void wxLogMessage(const wxString& msg); -void wxLogInfo(const wxString& msg); -void wxLogDebug(const wxString& msg); -void wxLogVerbose(const wxString& msg); -void wxLogStatus(const wxString& msg); -%name(LogStatusFrame)void wxLogStatus(wxFrame *pFrame, const wxString& msg); -void wxLogSysError(const wxString& msg); - -void wxLogTrace(const wxString& msg); -%name(LogTraceMask)void wxLogTrace(const wxString& mask, const wxString& msg); - -void wxLogGeneric(unsigned long level, const wxString& msg); + +%{// Make somce wrappers that double any % signs so they are 'escaped' + void wxPyLogFatalError(const wxString& msg) + { + wxString m(msg); + m.Replace(wxT("%"), wxT("%%")); + wxLogFatalError(m); + } + + void wxPyLogError(const wxString& msg) + { + wxString m(msg); + m.Replace(wxT("%"), wxT("%%")); + wxLogError(m); + } + + void wxPyLogWarning(const wxString& msg) + { + wxString m(msg); + m.Replace(wxT("%"), wxT("%%")); + wxLogWarning(m); + } + + void wxPyLogMessage(const wxString& msg) + { + wxString m(msg); + m.Replace(wxT("%"), wxT("%%")); + wxLogMessage(m); + } + + void wxPyLogInfo(const wxString& msg) + { + wxString m(msg); + m.Replace(wxT("%"), wxT("%%")); + wxLogInfo(m); + } + + void wxPyLogDebug(const wxString& msg) + { + wxString m(msg); + m.Replace(wxT("%"), wxT("%%")); + wxLogDebug(m); + } + + void wxPyLogVerbose(const wxString& msg) + { + wxString m(msg); + m.Replace(wxT("%"), wxT("%%")); + wxLogVerbose(m); + } + + void wxPyLogStatus(const wxString& msg) + { + wxString m(msg); + m.Replace(wxT("%"), wxT("%%")); + wxLogStatus(m); + } + + void wxPyLogStatusFrame(wxFrame *pFrame, const wxString& msg) + { + wxString m(msg); + m.Replace(wxT("%"), wxT("%%")); + wxLogStatus(pFrame, m); + } + + void wxPyLogSysError(const wxString& msg) + { + wxString m(msg); + m.Replace(wxT("%"), wxT("%%")); + wxLogSysError(m); + } + + void wxPyLogGeneric(unsigned long level, const wxString& msg) + { + wxString m(msg); + m.Replace(wxT("%"), wxT("%%")); + wxLogGeneric(level, m); + } + + void wxPyLogTrace(unsigned long mask, const wxString& msg) + { + wxString m(msg); + m.Replace(wxT("%"), wxT("%%")); + wxLogTrace(mask, m); + } + + void wxPyLogTrace(const wxString& mask, const wxString& msg) + { + wxString m(msg); + m.Replace(wxT("%"), wxT("%%")); + wxLogTrace(mask, m); + } + +%} + +%name(LogFatalError) void wxPyLogFatalError(const wxString& msg); +%name(LogError) void wxPyLogError(const wxString& msg); +%name(LogWarning) void wxPyLogWarning(const wxString& msg); +%name(LogMessage) void wxPyLogMessage(const wxString& msg); +%name(LogInfo) void wxPyLogInfo(const wxString& msg); +%name(LogDebug) void wxPyLogDebug(const wxString& msg); +%name(LogVerbose) void wxPyLogVerbose(const wxString& msg); +%name(LogStatus) void wxPyLogStatus(const wxString& msg); +%name(LogStatusFrame) void wxPyLogStatusFrame(wxFrame *pFrame, const wxString& msg); +%name(LogSysError) void wxPyLogSysError(const wxString& msg); + +%name(LogGeneric) void wxPyLogGeneric(unsigned long level, const wxString& msg); + +%nokwargs wxPyLogTrace; +%name(LogTrace) void wxPyLogTrace(unsigned long mask, const wxString& msg); +%name(LogTrace) void wxPyLogTrace(const wxString& mask, const wxString& msg); + // wxLogFatalError helper: show the (fatal) error to the user in a safe way, // i.e. without using wxMessageBox() for example because it could crash @@ -249,26 +346,26 @@ public: virtual void DoLog(wxLogLevel level, const wxChar *szString, time_t t) { bool found; - wxPyBeginBlockThreads(); + bool blocked = wxPyBeginBlockThreads(); if ((found = wxPyCBH_findCallback(m_myInst, "DoLog"))) { PyObject* s = wx2PyString(szString); wxPyCBH_callCallback(m_myInst, Py_BuildValue("(iOi)", level, s, t)); Py_DECREF(s); } - wxPyEndBlockThreads(); + wxPyEndBlockThreads(blocked); if (! found) wxLog::DoLog(level, szString, t); } virtual void DoLogString(const wxChar *szString, time_t t) { bool found; - wxPyBeginBlockThreads(); + bool blocked = wxPyBeginBlockThreads(); if ((found = wxPyCBH_findCallback(m_myInst, "DoLogString"))) { PyObject* s = wx2PyString(szString); wxPyCBH_callCallback(m_myInst, Py_BuildValue("(Oi)", s, t)); Py_DECREF(s); } - wxPyEndBlockThreads(); + wxPyEndBlockThreads(blocked); if (! found) wxLog::DoLogString(szString, t); } @@ -280,7 +377,7 @@ public: // Now tell SWIG about it class wxPyLog : public wxLog { public: - %addtofunc wxPyLog "self._setCallbackInfo(self, PyLog)" + %pythonAppend wxPyLog "self._setCallbackInfo(self, PyLog)" wxPyLog();