X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4e819f106b95b247b5f4911fab2f59ada1f94290..30e24d9dd5a5abf1c9a375ea259eb239b122b7f7:/wxPython/src/_log.i?ds=sidebyside diff --git a/wxPython/src/_log.i b/wxPython/src/_log.i index 17a737e292..b9204ea80e 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) @@ -103,6 +106,13 @@ public: // current is NULL? static void DontCreateOnDemand(); + // log the count of repeating messages instead of logging the messages + // multiple times + static void SetRepetitionCounting(bool bRepetCounting = true); + + // gets duplicate counting status + static bool GetRepetitionCounting(); + // trace mask (see wxTraceXXX constants for details) static void SetTraceMask(wxTraceMask ulMask); @@ -149,6 +159,7 @@ public: } } + %pythonPrepend Destroy "args[0].this.own(False)"; %extend { void Destroy() { delete self; } } }; @@ -189,6 +200,9 @@ public: wxLog *GetOldLog() const; bool IsPassingMessages() const; void PassMessages(bool bDoPass); + + %property(Frame, GetFrame, doc="See `GetFrame`"); + %property(OldLog, GetOldLog, doc="See `GetOldLog`"); }; @@ -200,6 +214,24 @@ public: void PassMessages(bool bDoPass); bool IsPassingMessages(); wxLog *GetOldLog(); + + %property(OldLog, GetOldLog, doc="See `GetOldLog`"); +}; + +// log everything to a buffer +class wxLogBuffer : public wxLog +{ +public: + wxLogBuffer(); + + // get the string contents with all messages logged + const wxString& GetBuffer() const; + + // show the buffer contents to the user in the best possible way (this uses + // wxMessageOutputMessageBox) and clear it + virtual void Flush(); + + %property(Buffer, GetBuffer, doc="See `GetBuffer`"); }; @@ -208,7 +240,7 @@ public: 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); @@ -302,22 +334,22 @@ const wxString wxSysErrorMsg(unsigned long nErrCode = 0); %} -%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); +%Rename(LogFatalError, void, wxPyLogFatalError(const wxString& msg)); +%Rename(LogError, void, wxPyLogError(const wxString& msg)); +%Rename(LogWarning, void, wxPyLogWarning(const wxString& msg)); +%Rename(LogMessage, void, wxPyLogMessage(const wxString& msg)); +%Rename(LogInfo, void, wxPyLogInfo(const wxString& msg)); +%Rename(LogDebug, void, wxPyLogDebug(const wxString& msg)); +%Rename(LogVerbose, void, wxPyLogVerbose(const wxString& msg)); +%Rename(LogStatus, void, wxPyLogStatus(const wxString& msg)); +%Rename(LogStatusFrame, void, wxPyLogStatusFrame(wxFrame *pFrame, const wxString& msg)); +%Rename(LogSysError, void, wxPyLogSysError(const wxString& msg)); -%name(LogGeneric) void wxPyLogGeneric(unsigned long level, const wxString& msg); +%Rename(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); +%Rename(LogTrace, void, wxPyLogTrace(unsigned long mask, const wxString& msg)); +%Rename(LogTrace, void, wxPyLogTrace(const wxString& mask, const wxString& msg)); // wxLogFatalError helper: show the (fatal) error to the user in a safe way, @@ -346,7 +378,7 @@ public: virtual void DoLog(wxLogLevel level, const wxChar *szString, time_t t) { bool found; - bool blocked = wxPyBeginBlockThreads(); + wxPyBlock_t blocked = wxPyBeginBlockThreads(); if ((found = wxPyCBH_findCallback(m_myInst, "DoLog"))) { PyObject* s = wx2PyString(szString); wxPyCBH_callCallback(m_myInst, Py_BuildValue("(iOi)", level, s, t)); @@ -359,7 +391,7 @@ public: virtual void DoLogString(const wxChar *szString, time_t t) { bool found; - bool blocked = wxPyBeginBlockThreads(); + wxPyBlock_t blocked = wxPyBeginBlockThreads(); if ((found = wxPyCBH_findCallback(m_myInst, "DoLogString"))) { PyObject* s = wx2PyString(szString); wxPyCBH_callCallback(m_myInst, Py_BuildValue("(Oi)", s, t)); @@ -370,14 +402,16 @@ public: wxLog::DoLogString(szString, t); } + DEC_PYCALLBACK_VOID_(Flush); PYPRIVATE; }; +IMP_PYCALLBACK_VOID_(wxPyLog, wxLog, Flush); %} // Now tell SWIG about it class wxPyLog : public wxLog { public: - %pythonAppend wxPyLog "self._setCallbackInfo(self, PyLog)" + %pythonAppend wxPyLog setCallbackInfo(PyLog) wxPyLog();