X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6e6b35578d9be94739e1f9ebadcb57d9a483db6a..bc50a2ae95f2ab36b16ceedc7902a9cbfb2f70ea:/wxPython/src/_log.i?ds=sidebyside diff --git a/wxPython/src/_log.i b/wxPython/src/_log.i index 4797f9fe7d..f026dead0a 100644 --- a/wxPython/src/_log.i +++ b/wxPython/src/_log.i @@ -54,7 +54,7 @@ class wxLog { public: wxLog(); - + ~wxLog(); // these functions allow to completely disable all log messages // is logging disabled now? @@ -80,9 +80,12 @@ public: // create one if none exists static wxLog *GetActiveTarget(); + %disownarg( wxLog* pLogger ); + %newobject SetActiveTarget; // change log target, pLogger may be NULL static wxLog *SetActiveTarget(wxLog *pLogger); - + %cleardisown( wxLog* pLogger ); + // suspend the message flushing of the main target until the next call // to Resume() - this is mainly for internal use (to prevent wxYield() // from flashing the messages) @@ -149,6 +152,7 @@ public: } } + %pythonAppend Destroy "args[0].thisown = 0"; %extend { void Destroy() { delete self; } } }; @@ -202,13 +206,27 @@ public: wxLog *GetOldLog(); }; +// log everything to a buffer +class wxLogBuffer : public wxLog +{ +public: + wxLogBuffer(); + + // get the string contents with all messages logged + const wxString& GetBuffer() const { return m_str; } + + // show the buffer contents to the user in the best possible way (this uses + // wxMessageOutputMessageBox) and clear it + virtual void Flush(); +}; + //--------------------------------------------------------------------------- unsigned long wxSysErrorCode(); const wxString wxSysErrorMsg(unsigned long nErrCode = 0); -%{// Make somce wrappers that double any % signs so they are 'escaped' +%{// Make some wrappers that double any % signs so they are 'escaped' void wxPyLogFatalError(const wxString& msg) { wxString m(msg); @@ -370,8 +388,10 @@ public: wxLog::DoLogString(szString, t); } + DEC_PYCALLBACK_VOID_(Flush); PYPRIVATE; }; +IMP_PYCALLBACK_VOID_(wxPyLog, wxLog, Flush); %} // Now tell SWIG about it