\section{\class{wxLog}}\label{wxlog}
-wxLog class defines the interface for the {\it log targets} used by wxWindows
+wxLog class defines the interface for the {\it log targets} used by wxWidgets
logging functions as explained in the \helpref{wxLog overview}{wxlogoverview}.
The only situations when you need to directly use this class is when you want
to derive your own log target because the existing ones don't satisfy your
Otherwise, it is completely hidden behind the {\it wxLogXXX()} functions and
you may not even know about its existence.
-See \helpref{log overview}{wxlogoverview} for the descriptions of wxWindows
+See \helpref{log overview}{wxlogoverview} for the descriptions of wxWidgets
logging facilities.
\wxheading{Derived from}
\latexignore{\rtfignore{\wxheading{Function groups}}}
-\membersection{Static functions}
+\membersection{Static functions}\label{staticlogfunctions}
The functions in this section work with and manipulate the active log target.
The \helpref{OnLog()}{wxlogonlog} is called by the {\it wxLogXXX()} functions
\helpref{Suspend}{wxlogsuspend}\\
\helpref{Resume}{wxlogresume}
-\membersection{Logging functions}
+\membersection{Logging functions}\label{loggingfunctions}
There are two functions which must be implemented by any derived class to
actually process the log messages: \helpref{DoLog}{wxlogdolog} and
\helpref{SetTimestamp}{wxlogsettimestamp}\\
\helpref{GetTimestamp}{wxloggettimestamp}\\
\helpref{SetTraceMask}{wxlogsettracemask}\\
-\helpref{GetTraceMask}{wxloggettracemask}
+\helpref{GetTraceMask}{wxloggettracemask}\\
+\helpref{SetRepetitionCounting}{wxlogsetrepetitioncounting}\\
+\helpref{GetRepetitionCounting}{wxloggetrepetitioncounting}
%%%%% MEMBERS HERE %%%%%
\helponly{\insertatlevel{2}{
\helpref{wxLogTrace}{wxlogtrace}.
\wxheading{See also}
+
\helpref{RemoveTraceMask}{wxlogremovetracemask}
\helpref{GetTraceMasks}{wxloggettracemasks}
\helpref{AddTraceMask}{wxlogaddtracemask}.
\wxheading{See also}
+
\helpref{RemoveTraceMask}{wxlogremovetracemask}
\membersection{wxLog::GetTraceMasks}\label{wxloggettracemasks}
Returns the currently allowed list of string trace masks.
\wxheading{See also}
+
\helpref{AddTraceMask}{wxlogaddtracemask}.
\membersection{wxLog::OnLog}\label{wxlogonlog}
\func{static wxLog *}{SetActiveTarget}{\param{wxLog * }{ logtarget}}
Sets the specified log target as the active one. Returns the pointer to the
-previous active log target (may be NULL).
+previous active log target (may be NULL). To suppress logging use a new
+instance of wxLogNull not NULL. If the active log target is set to NULL a
+new default log target will be created when logging occurs.
\membersection{wxLog::Suspend}\label{wxlogsuspend}
called (the standard GUI log target only shows the log dialog when it is
flushed, so Suspend() works as expected with it).
-\wxheading{See also:}
+\wxheading{See also}
\helpref{Resume}{wxlogresume},\\
\helpref{wxLogNull}{wxlogoverview}
Flushes the current log target if any, does nothing if there is none.
-See also:
+\wxheading{See also}
\helpref{Flush}{wxlogflush}
Returns the current log level limit.
+\membersection{wxLog::SetRepetitionCounting}\label{wxlogsetrepetitioncounting}
+
+\func{static void}{SetRepetitionCounting}{\param{bool }{ repetCounting = true}}
+
+Enables logging mode in which a log message is logged once, and in case exactly
+the same message successively repeats one or more times, only the number of
+repetitions is logged.
+
+\membersection{wxLog::GetRepetitionCounting}\label{wxloggetrepetitioncounting}
+
+\func{static bool}{GetRepetitionCounting}{\void}
+
+Returns whether the repetition counting mode is enabled.
+
+
\membersection{wxLog::SetTimestamp}\label{wxlogsettimestamp}
\func{void}{SetTimestamp}{\param{const char * }{ format}}
\latexignore{\rtfignore{\wxheading{Members}}}
-\membersection{wxLogChain::wxLogChain}\label{wxlogchainwxlogchain}
+\membersection{wxLogChain::wxLogChain}\label{wxlogchainctor}
\func{}{wxLogChain}{\param{wxLog *}{logger}}
Sets the specified {\tt logger} (which may be {\tt NULL}) as the default log
target but the log messages are also passed to the previous log target if any.
-\membersection{wxLogChain::\destruct{wxLogChain}}
+\membersection{wxLogChain::\destruct{wxLogChain}}\label{wxlogchaindtor}
\func{}{\destruct{wxLogChain}}{\void}
\func{void}{SetLog}{\param{wxLog *}{logger}}
Sets another log target to use (may be {\tt NULL}). The log target specified
-in the \helpref{constructor}{wxlogchainwxlogchain} or in a previous call to
+in the \helpref{constructor}{wxlogchainctor} or in a previous call to
this function is deleted.
This doesn't change the old log target value (the one the messages are
\section{\class{wxLogGui}}\label{wxloggui}
-This is the default log target for the GUI wxWindows applications. It is passed
+This is the default log target for the GUI wxWidgets applications. It is passed
to \helpref{wxLog::SetActiveTarget}{wxlogsetactivetarget} at the program
-startup and is deleted by wxWindows during the program shut down.
+startup and is deleted by wxWidgets during the program shut down.
\wxheading{Derived from}
\latexignore{\rtfignore{\wxheading{Members}}}
-\membersection{wxLogGui::wxLogGui}
+\membersection{wxLogGui::wxLogGui}\label{wxlogguictor}
\func{}{wxLogGui}{\void}
This class allows to temporarily suspend logging. All calls to the log
functions during the life time of an object of this class are just ignored.
-In particular, it can be used to suppress the log messages given by wxWindows
+In particular, it can be used to suppress the log messages given by wxWidgets
itself but it should be noted that it is rarely the best way to cope with this
problem as {\bf all} log messages are suppressed, even if they indicate a
completely different error than the one the programmer wanted to suppress.
wxLogMessage("..."); // ok
\end{verbatim}
-}
+}%
would be better written as:
...
}
\end{verbatim}
-}
+}%
\wxheading{Derived from}
\latexignore{\rtfignore{\wxheading{Members}}}
-\membersection{wxLogNull::wxLogNull}
+\membersection{wxLogNull::wxLogNull}\label{wxlognullctor}
\func{}{wxLogNull}{\void}
Suspends logging.
-\membersection{wxLogNull::\destruct{wxLogNull}}
+\membersection{wxLogNull::\destruct{wxLogNull}}\label{wxlognulldtor}
Resumes logging.
This class can be used to redirect the log messages to a C file stream (not to
be confused with C++ streams). It is the default log target for the non-GUI
-wxWindows applications which send all the output to {\tt stderr}.
+wxWidgets applications which send all the output to {\tt stderr}.
\wxheading{Derived from}
\latexignore{\rtfignore{\wxheading{Members}}}
-\membersection{wxLogStderr::wxLogStderr}
+\membersection{wxLogStderr::wxLogStderr}\label{wxlogstderrctor}
\func{}{wxLogStderr}{\param{FILE }{*fp = NULL}}
This class can be used to redirect the log messages to a C++ stream.
-Please note that this class is only available if wxWindows was compiled with
+Please note that this class is only available if wxWidgets was compiled with
the standard iostream library support ({\tt wxUSE\_STD\_IOSTREAM} must be on).
\wxheading{Derived from}
\latexignore{\rtfignore{\wxheading{Members}}}
-\membersection{wxLogStream::wxLogStream}
+\membersection{wxLogStream::wxLogStream}\label{wxlogstreamctor}
\func{}{wxLogStream}{\param{std::ostream }{*ostr = NULL}}
\wxheading{See also}
-\helpref{wxLogTextCtrl}{wxlogtextctrl},\\
+\helpref{wxTextCtrl}{wxtextctrl},\\
\helpref{wxStreamToTextRedirector}{wxstreamtotextredirector}
\latexignore{\rtfignore{\wxheading{Members}}}
-\membersection{wxLogTextCtrl::wxLogTextCtrl}
+\membersection{wxLogTextCtrl::wxLogTextCtrl}\label{wxlogtextctrlctor}
\func{}{wxLogTextCtrl}{\param{wxTextCtrl }{*textctrl}}
\latexignore{\rtfignore{\wxheading{Members}}}
-\membersection{wxLogWindow::wxLogWindow}
+\membersection{wxLogWindow::wxLogWindow}\label{wxlogwindowctor}
\func{}{wxLogWindow}{\param{wxFrame }{*parent}, \param{const wxChar }{*title}, \param{bool }{show = {\tt true}}, \param{bool }{passToOld = {\tt true}}}
Shows or hides the frame.
-\membersection{wxLogWindow::GetFrame}
+\membersection{wxLogWindow::GetFrame}\label{wxlogwindowgetframe}
\constfunc{wxFrame *}{GetFrame}{\void}
Returns the associated log frame window. This may be used to position or resize
it but use \helpref{wxLogWindow::Show}{wxlogwindowshow} to show or hide it.
-\membersection{wxLogWindow::OnFrameCreate}
+\membersection{wxLogWindow::OnFrameCreate}\label{wxlogwindowonframecreate}
\func{virtual void}{OnFrameCreate}{\param{wxFrame }{*frame}}
\membersection{wxLogWindow::OnFrameClose}\label{wxlogwindowonframeclose}
-\func{virtual void}{OnFrameClose}{\param{wxFrame }{*frame}}
+\func{virtual bool}{OnFrameClose}{\param{wxFrame }{*frame}}
Called if the user closes the window interactively, will not be
called if it is destroyed for another reason (such as when program