]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/_log.i
log wxChoice events in the same format as wxComboBox ones to make it simpler to compa...
[wxWidgets.git] / wxPython / src / _log.i
index 4797f9fe7d83dd543b7891f9ff910a69082df888..f026dead0a3c2045336220266e689707e5a23451 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)
@@ -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