]> git.saurik.com Git - wxWidgets.git/commitdiff
changed wxLog::OnLog(String) to take wxString instead of wxChar* to avoid unnecessary...
authorVáclav Slavík <vslavik@fastmail.fm>
Mon, 4 Jun 2007 10:04:05 +0000 (10:04 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Mon, 4 Jun 2007 10:04:05 +0000 (10:04 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46318 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/latex/wx/log.tex
include/wx/generic/logg.h
include/wx/log.h
src/common/log.cpp
src/generic/logg.cpp

index 026dc1eadd913db056f63ca1e9a038bb54405cf2..77e8803c118276f0e2694b146c23b62d01c8a550 100644 (file)
@@ -201,7 +201,7 @@ Returns the currently allowed list of string trace masks.
 
 \membersection{wxLog::OnLog}\label{wxlogonlog}
 
 
 \membersection{wxLog::OnLog}\label{wxlogonlog}
 
-\func{static void}{OnLog}{\param{wxLogLevel }{ level}, \param{const char * }{ message}}
+\func{static void}{OnLog}{\param{wxLogLevel }{ level}, \param{const wxString\& }{ message}}
 
 Forwards the message at specified level to the {\it DoLog()} function of the
 active log target if there is any, does nothing otherwise.
 
 Forwards the message at specified level to the {\it DoLog()} function of the
 active log target if there is any, does nothing otherwise.
@@ -250,7 +250,7 @@ flushed soon.
 
 \membersection{wxLog::DoLog}\label{wxlogdolog}
 
 
 \membersection{wxLog::DoLog}\label{wxlogdolog}
 
-\func{virtual void}{DoLog}{\param{wxLogLevel }{level}, \param{const wxChar }{*msg}, \param{time\_t }{timestamp}}
+\func{virtual void}{DoLog}{\param{wxLogLevel }{level}, \param{const wxString\& }{msg}, \param{time\_t }{timestamp}}
 
 Called to process the message of the specified severity. {\it msg} is the text
 of the message as specified in the call of {\it wxLogXXX()} function which
 
 Called to process the message of the specified severity. {\it msg} is the text
 of the message as specified in the call of {\it wxLogXXX()} function which
@@ -262,7 +262,7 @@ corresponding to the log level and then calls
 
 \membersection{wxLog::DoLogString}\label{wxlogdologstring}
 
 
 \membersection{wxLog::DoLogString}\label{wxlogdologstring}
 
-\func{virtual void}{DoLogString}{\param{const wxChar }{*msg}, \param{time\_t }{timestamp}}
+\func{virtual void}{DoLogString}{\param{const wxString\& }{msg}, \param{time\_t }{timestamp}}
 
 Called to log the specified string. The timestamp is already included in the
 string but still passed to this function.
 
 Called to log the specified string. The timestamp is already included in the
 string but still passed to this function.
@@ -368,7 +368,7 @@ for details.
 
 \membersection{wxLog::IsAllowedTraceMask}\label{wxlogisallowedtracemask}
 
 
 \membersection{wxLog::IsAllowedTraceMask}\label{wxlogisallowedtracemask}
 
-\func{static bool}{IsAllowedTraceMask}{\param{const wxChar *}{mask}}
+\func{static bool}{IsAllowedTraceMask}{\param{const wxString\& }{mask}}
 
 Returns true if the {\it mask} is one of allowed masks for
 \helpref{wxLogTrace}{wxlogtrace}.
 
 Returns true if the {\it mask} is one of allowed masks for
 \helpref{wxLogTrace}{wxlogtrace}.
index 36268ea5d32737523beb7f6c51a2b8e7702aaa4f..33ba8d6c088ea620b84d5c15ac03cca54cfc6cf2 100644 (file)
@@ -30,7 +30,7 @@ public:
 
 protected:
     // implement sink function
 
 protected:
     // implement sink function
-    virtual void DoLogString(const wxChar *szString, time_t t);
+    virtual void DoLogString(const wxString& szString, time_t t);
 
 private:
     // the control we use
 
 private:
     // the control we use
@@ -57,7 +57,7 @@ public:
     virtual void Flush();
 
 protected:
     virtual void Flush();
 
 protected:
-    virtual void DoLog(wxLogLevel level, const wxChar *szString, time_t t);
+    virtual void DoLog(wxLogLevel level, const wxString& szString, time_t t);
 
     // empty everything
     void Clear();
 
     // empty everything
     void Clear();
@@ -112,8 +112,8 @@ public:
     virtual void OnFrameDelete(wxFrame *frame);
 
 protected:
     virtual void OnFrameDelete(wxFrame *frame);
 
 protected:
-    virtual void DoLog(wxLogLevel level, const wxChar *szString, time_t t);
-    virtual void DoLogString(const wxChar *szString, time_t t);
+    virtual void DoLog(wxLogLevel level, const wxString& szString, time_t t);
+    virtual void DoLogString(const wxString& szString, time_t t);
 
 private:
     wxLogFrame *m_pLogFrame;      // the log frame
 
 private:
     wxLogFrame *m_pLogFrame;      // the log frame
index 8eb4cf7f3b613eb5ef5cc91693265de8ac73e8de..0bbcc5128058fa5e1988be77713d6c44c89fad2b 100644 (file)
@@ -133,7 +133,7 @@ public:
 
     // static sink function - see DoLog() for function to overload in the
     // derived classes
 
     // static sink function - see DoLog() for function to overload in the
     // derived classes
-    static void OnLog(wxLogLevel level, const wxChar *szString, time_t t);
+    static void OnLog(wxLogLevel level, const wxString& szString, time_t t);
 
     // message buffering
 
 
     // message buffering
 
@@ -223,7 +223,7 @@ public:
     static wxTraceMask GetTraceMask() { return ms_ulTraceMask; }
 
     // is this trace mask in the list?
     static wxTraceMask GetTraceMask() { return ms_ulTraceMask; }
 
     // is this trace mask in the list?
-    static bool IsAllowedTraceMask(const wxChar *mask);
+    static bool IsAllowedTraceMask(const wxString& mask);
 
     // return the current loglevel limit
     static wxLogLevel GetLogLevel() { return ms_logLevel; }
 
     // return the current loglevel limit
     static wxLogLevel GetLogLevel() { return ms_logLevel; }
@@ -255,11 +255,28 @@ protected:
 
     // default DoLog() prepends the time stamp and a prefix corresponding
     // to the message to szString and then passes it to DoLogString()
 
     // default DoLog() prepends the time stamp and a prefix corresponding
     // to the message to szString and then passes it to DoLogString()
-    virtual void DoLog(wxLogLevel level, const wxChar *szString, time_t t);
+    virtual void DoLog(wxLogLevel level, const wxString& szString, time_t t);
+#if WXWIN_COMPATIBILITY_2_8
+    // these shouldn't be used by new code
+    virtual void DoLog(wxLogLevel WXUNUSED(level),
+                       const char *WXUNUSED(szString), time_t WXUNUSED(t)) {}
+    virtual void DoLog(wxLogLevel WXUNUSED(level),
+                       const wchar_t *WXUNUSED(szString), time_t WXUNUSED(t)) {}
+#endif
+
+    void LogString(const wxString& szString, time_t t)
+        { DoLogString(szString, t); }
 
     // default DoLogString does nothing but is not pure virtual because if
     // you override DoLog() you might not need it at all
 
     // default DoLogString does nothing but is not pure virtual because if
     // you override DoLog() you might not need it at all
-    virtual void DoLogString(const wxChar *szString, time_t t);
+    virtual void DoLogString(const wxString& szString, time_t t);
+#if WXWIN_COMPATIBILITY_2_8
+    // these shouldn't be used by new code
+    virtual void DoLogString(const char *WXUNUSED(szString),
+                             time_t WXUNUSED(t)) {}
+    virtual void DoLogString(const wchar_t *WXUNUSED(szString),
+                             time_t WXUNUSED(t)) {}
+#endif
 
     // log a line containing the number of times the previous message was
     // repeated
 
     // log a line containing the number of times the previous message was
     // repeated
@@ -313,8 +330,8 @@ public:
     virtual void Flush();
 
 protected:
     virtual void Flush();
 
 protected:
-    virtual void DoLog(wxLogLevel level, const wxChar *szString, time_t t);
-    virtual void DoLogString(const wxChar *szString, time_t t);
+    virtual void DoLog(wxLogLevel level, const wxString& szString, time_t t);
+    virtual void DoLogString(const wxString& szString, time_t t);
 
 private:
     wxString m_str;
 
 private:
     wxString m_str;
@@ -332,7 +349,7 @@ public:
 
 protected:
     // implement sink function
 
 protected:
     // implement sink function
-    virtual void DoLogString(const wxChar *szString, time_t t);
+    virtual void DoLogString(const wxString& szString, time_t t);
 
     FILE *m_fp;
 
 
     FILE *m_fp;
 
@@ -350,7 +367,7 @@ public:
 
 protected:
     // implement sink function
 
 protected:
     // implement sink function
-    virtual void DoLogString(const wxChar *szString, time_t t);
+    virtual void DoLogString(const wxString& szString, time_t t);
 
     // using ptr here to avoid including <iostream.h> from this file
     wxSTD ostream *m_ostr;
 
     // using ptr here to avoid including <iostream.h> from this file
     wxSTD ostream *m_ostr;
@@ -421,7 +438,7 @@ public:
 
 protected:
     // pass the chain to the old logger if needed
 
 protected:
     // pass the chain to the old logger if needed
-    virtual void DoLog(wxLogLevel level, const wxChar *szString, time_t t);
+    virtual void DoLog(wxLogLevel level, const wxString& szString, time_t t);
 
 private:
     // the current log target
 
 private:
     // the current log target
index 1604899a5897fd96471c3c8ad42c3afc26a324c0..113d20215896a924690dd199d8e363647a66a855 100644 (file)
@@ -475,7 +475,7 @@ unsigned wxLog::DoLogNumberOfRepeats()
 #endif
         ms_prevCounter = 0;
         ms_prevString.clear();
 #endif
         ms_prevCounter = 0;
         ms_prevString.clear();
-        pLogger->DoLog(ms_prevLevel, msg.c_str(), ms_prevTimeStamp);
+        pLogger->DoLog(ms_prevLevel, msg, ms_prevTimeStamp);
     }
     return retval;
 }
     }
     return retval;
 }
@@ -491,7 +491,7 @@ wxLog::~wxLog()
 }
 
 /* static */
 }
 
 /* static */
-void wxLog::OnLog(wxLogLevel level, const wxChar *szString, time_t t)
+void wxLog::OnLog(wxLogLevel level, const wxString& szString, time_t t)
 {
     if ( IsEnabled() && ms_logLevel >= level )
     {
 {
     if ( IsEnabled() && ms_logLevel >= level )
     {
@@ -611,12 +611,19 @@ void wxLog::TimeStamp(wxString *str)
 #endif // wxUSE_DATETIME
 }
 
 #endif // wxUSE_DATETIME
 }
 
-void wxLog::DoLog(wxLogLevel level, const wxChar *szString, time_t t)
+void wxLog::DoLog(wxLogLevel level, const wxString& szString, time_t t)
 {
 {
+#if WXWIN_COMPATIBILITY_2_8
+    // DoLog() signature changed since 2.8, so we call the old versions here
+    // so that existing custom log classes still work:
+    DoLog(level, (const char*)szString.mb_str(), t);
+    DoLog(level, (const wchar_t*)szString.wc_str(), t);
+#endif
+
     switch ( level ) {
         case wxLOG_FatalError:
     switch ( level ) {
         case wxLOG_FatalError:
-            DoLogString(wxString(_("Fatal error: ")) + szString, t);
-            DoLogString(_("Program aborted."), t);
+            LogString(_("Fatal error: ") + szString, t);
+            LogString(_("Program aborted."), t);
             Flush();
 #ifdef __WXWINCE__
             ExitThread(3);
             Flush();
 #ifdef __WXWINCE__
             ExitThread(3);
@@ -626,11 +633,11 @@ void wxLog::DoLog(wxLogLevel level, const wxChar *szString, time_t t)
             break;
 
         case wxLOG_Error:
             break;
 
         case wxLOG_Error:
-            DoLogString(wxString(_("Error: ")) + szString, t);
+            LogString(_("Error: ") + szString, t);
             break;
 
         case wxLOG_Warning:
             break;
 
         case wxLOG_Warning:
-            DoLogString(wxString(_("Warning: ")) + szString, t);
+            LogString(_("Warning: ") + szString, t);
             break;
 
         case wxLOG_Info:
             break;
 
         case wxLOG_Info:
@@ -638,7 +645,7 @@ void wxLog::DoLog(wxLogLevel level, const wxChar *szString, time_t t)
         case wxLOG_Message:
         case wxLOG_Status:
         default:    // log unknown log levels too
         case wxLOG_Message:
         case wxLOG_Status:
         default:    // log unknown log levels too
-                DoLogString(szString, t);
+                LogString(szString, t);
             break;
 
         case wxLOG_Trace:
             break;
 
         case wxLOG_Trace:
@@ -648,16 +655,26 @@ void wxLog::DoLog(wxLogLevel level, const wxChar *szString, time_t t)
                 wxString msg = level == wxLOG_Trace ? wxT("Trace: ")
                                                     : wxT("Debug: ");
                 msg << szString;
                 wxString msg = level == wxLOG_Trace ? wxT("Trace: ")
                                                     : wxT("Debug: ");
                 msg << szString;
-                DoLogString(msg, t);
+                LogString(msg, t);
             }
 #endif // Debug
             break;
     }
 }
 
             }
 #endif // Debug
             break;
     }
 }
 
-void wxLog::DoLogString(const wxChar *WXUNUSED(szString), time_t WXUNUSED(t))
+void wxLog::DoLogString(const wxString& szString, time_t t)
 {
 {
+#if WXWIN_COMPATIBILITY_2_8
+    // DoLogString() signature changed since 2.8, so we call the old versions
+    // here so that existing custom log classes still work; unfortunately this
+    // also means that we can't have the wxFAIL_MSG below in compat mode
+    DoLogString((const char*)szString.mb_str(), t);
+    DoLogString((const wchar_t*)szString.wc_str(), t);
+#else
     wxFAIL_MSG(wxT("DoLogString must be overriden if it's called."));
     wxFAIL_MSG(wxT("DoLogString must be overriden if it's called."));
+    wxUnusedVar(szString);
+    wxUnusedVar(t);
+#endif
 }
 
 void wxLog::Flush()
 }
 
 void wxLog::Flush()
@@ -665,7 +682,7 @@ void wxLog::Flush()
     // nothing to do here
 }
 
     // nothing to do here
 }
 
-/*static*/ bool wxLog::IsAllowedTraceMask(const wxChar *mask)
+/*static*/ bool wxLog::IsAllowedTraceMask(const wxString& mask)
 {
     for ( wxArrayString::iterator it = ms_aTraceMasks.begin(),
                                   en = ms_aTraceMasks.end();
 {
     for ( wxArrayString::iterator it = ms_aTraceMasks.begin(),
                                   en = ms_aTraceMasks.end();
@@ -689,7 +706,7 @@ void wxLogBuffer::Flush()
     }
 }
 
     }
 }
 
-void wxLogBuffer::DoLog(wxLogLevel level, const wxChar *szString, time_t t)
+void wxLogBuffer::DoLog(wxLogLevel level, const wxString& szString, time_t t)
 {
     switch ( level )
     {
 {
     switch ( level )
     {
@@ -714,7 +731,7 @@ void wxLogBuffer::DoLog(wxLogLevel level, const wxChar *szString, time_t t)
     }
 }
 
     }
 }
 
-void wxLogBuffer::DoLogString(const wxChar *szString, time_t WXUNUSED(t))
+void wxLogBuffer::DoLogString(const wxString& szString, time_t WXUNUSED(t))
 {
     m_str << szString << _T("\n");
 }
 {
     m_str << szString << _T("\n");
 }
@@ -731,7 +748,7 @@ wxLogStderr::wxLogStderr(FILE *fp)
         m_fp = fp;
 }
 
         m_fp = fp;
 }
 
-void wxLogStderr::DoLogString(const wxChar *szString, time_t WXUNUSED(t))
+void wxLogStderr::DoLogString(const wxString& szString, time_t WXUNUSED(t))
 {
     wxString str;
     TimeStamp(&str);
 {
     wxString str;
     TimeStamp(&str);
@@ -770,11 +787,11 @@ wxLogStream::wxLogStream(wxSTD ostream *ostr)
         m_ostr = ostr;
 }
 
         m_ostr = ostr;
 }
 
-void wxLogStream::DoLogString(const wxChar *szString, time_t WXUNUSED(t))
+void wxLogStream::DoLogString(const wxString& szString, time_t WXUNUSED(t))
 {
 {
-    wxString str;
-    TimeStamp(&str);
-    (*m_ostr) << wxConvertWX2MB(str) << wxConvertWX2MB(szString) << wxSTD endl;
+    wxString stamp;
+    TimeStamp(&stamp);
+    (*m_ostr) << stamp << szString << wxSTD endl;
 }
 #endif // wxUSE_STD_IOSTREAM
 
 }
 #endif // wxUSE_STD_IOSTREAM
 
@@ -816,7 +833,7 @@ void wxLogChain::Flush()
         m_logNew->Flush();
 }
 
         m_logNew->Flush();
 }
 
-void wxLogChain::DoLog(wxLogLevel level, const wxChar *szString, time_t t)
+void wxLogChain::DoLog(wxLogLevel level, const wxString& szString, time_t t)
 {
     // let the previous logger show it
     if ( m_logOld && IsPassingMessages() )
 {
     // let the previous logger show it
     if ( m_logOld && IsPassingMessages() )
index 71580f7fa9d0715863ed9a3d2ab2dc664e9d226d..ab86120d6370467f6ea4e134fcae4bc1043c91c6 100644 (file)
@@ -81,7 +81,7 @@
 
 // this function is a wrapper around strftime(3)
 // allows to exclude the usage of wxDateTime
 
 // this function is a wrapper around strftime(3)
 // allows to exclude the usage of wxDateTime
-static wxString TimeStamp(const wxChar *format, time_t t)
+static wxString TimeStamp(const wxString& format, time_t t)
 {
 #if wxUSE_DATETIME
     wxChar buf[4096];
 {
 #if wxUSE_DATETIME
     wxChar buf[4096];
@@ -363,7 +363,7 @@ void wxLogGui::Flush()
 }
 
 // log all kinds of messages
 }
 
 // log all kinds of messages
-void wxLogGui::DoLog(wxLogLevel level, const wxChar *szString, time_t t)
+void wxLogGui::DoLog(wxLogLevel level, const wxString& szString, time_t t)
 {
     switch ( level ) {
         case wxLOG_Info:
 {
     switch ( level ) {
         case wxLOG_Info:
@@ -638,7 +638,7 @@ void wxLogWindow::Show(bool bShow)
     m_pLogFrame->Show(bShow);
 }
 
     m_pLogFrame->Show(bShow);
 }
 
-void wxLogWindow::DoLog(wxLogLevel level, const wxChar *szString, time_t t)
+void wxLogWindow::DoLog(wxLogLevel level, const wxString& szString, time_t t)
 {
     // first let the previous logger show it
     wxLogPassThrough::DoLog(level, szString, t);
 {
     // first let the previous logger show it
     wxLogPassThrough::DoLog(level, szString, t);
@@ -648,11 +648,11 @@ void wxLogWindow::DoLog(wxLogLevel level, const wxChar *szString, time_t t)
             case wxLOG_Status:
                 // by default, these messages are ignored by wxLog, so process
                 // them ourselves
             case wxLOG_Status:
                 // by default, these messages are ignored by wxLog, so process
                 // them ourselves
-                if ( !wxIsEmpty(szString) )
+                if ( !szString.empty() )
                 {
                     wxString str;
                     str << _("Status: ") << szString;
                 {
                     wxString str;
                     str << _("Status: ") << szString;
-                    DoLogString(str, t);
+                    LogString(str, t);
                 }
                 break;
 
                 }
                 break;
 
@@ -670,7 +670,7 @@ void wxLogWindow::DoLog(wxLogLevel level, const wxChar *szString, time_t t)
     }
 }
 
     }
 }
 
-void wxLogWindow::DoLogString(const wxChar *szString, time_t WXUNUSED(t))
+void wxLogWindow::DoLogString(const wxString& szString, time_t WXUNUSED(t))
 {
     // put the text into our window
     wxTextCtrl *pText = m_pLogFrame->TextCtrl();
 {
     // put the text into our window
     wxTextCtrl *pText = m_pLogFrame->TextCtrl();
@@ -1158,7 +1158,7 @@ wxLogTextCtrl::wxLogTextCtrl(wxTextCtrl *pTextCtrl)
     m_pTextCtrl = pTextCtrl;
 }
 
     m_pTextCtrl = pTextCtrl;
 }
 
-void wxLogTextCtrl::DoLogString(const wxChar *szString, time_t WXUNUSED(t))
+void wxLogTextCtrl::DoLogString(const wxString& szString, time_t WXUNUSED(t))
 {
     wxString msg;
     TimeStamp(&msg);
 {
     wxString msg;
     TimeStamp(&msg);