]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/_log.i
Forgot to remove wxBackingFile from the changes.txt. It was kept internal
[wxWidgets.git] / wxPython / src / _log.i
index 17a737e292273c024ac4f7cbdd07b2bd02f20c60..48fd12b62b1f443616f453fb40df0bb828b28eaf 100644 (file)
@@ -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,8 +402,10 @@ public:
             wxLog::DoLogString(szString, t);
     }
 
+    DEC_PYCALLBACK_VOID_(Flush);
     PYPRIVATE;
 };
+IMP_PYCALLBACK_VOID_(wxPyLog, wxLog, Flush);
 %}
 
 // Now tell SWIG about it