interface revisions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56444 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -7,26 +7,28 @@
|
|||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@class wxList
|
||||||
|
|
||||||
The wxList<T> class provides linked list functionality. It has been rewritten
|
The wxList<T> class provides linked list functionality.
|
||||||
to be type safe and to provide the full API of the STL std::list container and
|
|
||||||
should be used like it. The exception is that wxList<T> actually stores
|
This class has been rewritten to be type safe and to provide the full API of
|
||||||
pointers and therefore its iterators return pointers and not references
|
the STL std::list container and should be used like it.
|
||||||
to the actual objets in the list (see example below) and @e value_type
|
The exception is that wxList<T> actually stores pointers and therefore its
|
||||||
is defined as @e T*. wxList<T> destroys an object after removing it only
|
iterators return pointers and not references to the actual objets in the list
|
||||||
if wxList::DeleteContents has been called.
|
(see example below) and @e value_type is defined as @e T*.
|
||||||
|
wxList<T> destroys an object after removing it only if wxList::DeleteContents
|
||||||
|
has been called.
|
||||||
|
|
||||||
wxList<T> is not a real template and it requires that you declare and define
|
wxList<T> is not a real template and it requires that you declare and define
|
||||||
each wxListT class in your program. This is done with @e WX_DECLARE_LIST
|
each wxListT class in your program. This is done with @e WX_DECLARE_LIST
|
||||||
and @e WX_DEFINE_LIST macros (see example). We hope that we'll be able
|
and @e WX_DEFINE_LIST macros (see example). We hope that we'll be able to
|
||||||
to provide a proper template class providing both the STL std::list
|
provide a proper template class providing both the STL std::list and the old
|
||||||
and the old wxList API in the future.
|
wxList API in the future.
|
||||||
|
|
||||||
Please refer to the STL std::list documentation for further
|
Please refer to the STL std::list documentation for further information on how
|
||||||
information on how to use the class. Below we documented both
|
to use the class. Below we documented both the supported STL and the legacy API
|
||||||
the supported STL and the legacy API that originated from the
|
that originated from the old wxList class and which can still be used alternatively
|
||||||
old wxList class and which can still be used alternatively for
|
for the the same class.
|
||||||
the the same class.
|
|
||||||
|
|
||||||
Note that if you compile wxWidgets in STL mode (wxUSE_STL defined as 1)
|
Note that if you compile wxWidgets in STL mode (wxUSE_STL defined as 1)
|
||||||
then wxList<T> will actually derive from std::list and just add a legacy
|
then wxList<T> will actually derive from std::list and just add a legacy
|
||||||
@@ -78,6 +80,11 @@
|
|||||||
}
|
}
|
||||||
@endcode
|
@endcode
|
||||||
|
|
||||||
|
For compatibility with previous versions wxList and wxStringList classes are
|
||||||
|
still defined, but their usage is deprecated and they will disappear in the
|
||||||
|
future versions completely.
|
||||||
|
The use of the latter is especially discouraged as it is not only unsafe but
|
||||||
|
is also much less efficient than wxArrayString class.
|
||||||
|
|
||||||
@library{wxbase}
|
@library{wxbase}
|
||||||
@category{data}
|
@category{data}
|
||||||
@@ -199,17 +206,17 @@ public:
|
|||||||
wxList<T>::compatibility_iterator Item(size_t index) const;
|
wxList<T>::compatibility_iterator Item(size_t index) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@note This function is deprecated, use Find() instead.
|
@deprecated This function is deprecated, use Find() instead.
|
||||||
*/
|
*/
|
||||||
wxList<T>::compatibility_iterator Member(T* object) const;
|
wxList<T>::compatibility_iterator Member(T* object) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@note This function is deprecated, use Item() instead.
|
@deprecated This function is deprecated, use Item() instead.
|
||||||
*/
|
*/
|
||||||
wxList<T>::compatibility_iterator Nth(int n) const;
|
wxList<T>::compatibility_iterator Nth(int n) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@note This function is deprecated, use wxList::GetCount instead.
|
@deprecated This function is deprecated, use wxList::GetCount instead.
|
||||||
Returns the number of elements in the list.
|
Returns the number of elements in the list.
|
||||||
*/
|
*/
|
||||||
int Number() const;
|
int Number() const;
|
||||||
@@ -351,20 +358,18 @@ public:
|
|||||||
void remove(const_reference v);
|
void remove(const_reference v);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Returns a reverse iterator pointing to the end of the
|
Returns a reverse iterator pointing to the end of the reversed list.
|
||||||
reversed list.
|
|
||||||
*/
|
*/
|
||||||
reverse_iterator rend();
|
reverse_iterator rend();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Returns a const reverse iterator pointing to the end of the
|
Returns a const reverse iterator pointing to the end of the reversed list.
|
||||||
reversed list.
|
|
||||||
*/
|
*/
|
||||||
const_reverse_iterator rend() const;
|
const_reverse_iterator rend() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Resizes the list. If the the list is enlarges items with
|
Resizes the list.
|
||||||
the value @e v are appended to the list.
|
If the the list is enlarges items with the value @e v are appended to the list.
|
||||||
*/
|
*/
|
||||||
void resize(size_type n);
|
void resize(size_type n);
|
||||||
|
|
||||||
@@ -384,13 +389,14 @@ public:
|
|||||||
/**
|
/**
|
||||||
@class wxNode
|
@class wxNode
|
||||||
|
|
||||||
wxNodeBase is the node structure used in linked lists (see
|
wxNodeBase is the node structure used in linked lists (see wxList) and derived
|
||||||
wxList) and derived classes. You should never use wxNodeBase
|
classes. You should never use wxNodeBase class directly, however, because it
|
||||||
class directly, however, because it works with untyped (@c void *) data and
|
works with untyped (@c void *) data and this is unsafe.
|
||||||
this is unsafe. Use wxNodeBase-derived classes which are automatically defined
|
Use wxNodeBase-derived classes which are automatically defined by WX_DECLARE_LIST
|
||||||
by WX_DECLARE_LIST and WX_DEFINE_LIST macros instead as described in
|
and WX_DEFINE_LIST macros instead as described in wxList documentation
|
||||||
wxList documentation (see example there). Also note that
|
(see example there).
|
||||||
although there is a class called wxNode, it is defined for backwards
|
|
||||||
|
Also note that although there is a class called wxNode, it is defined for backwards
|
||||||
compatibility only and usage of this class is strongly deprecated.
|
compatibility only and usage of this class is strongly deprecated.
|
||||||
|
|
||||||
In the documentation below, the type @c T should be thought of as a
|
In the documentation below, the type @c T should be thought of as a
|
||||||
@@ -400,7 +406,7 @@ public:
|
|||||||
helps to think of it as if it were.
|
helps to think of it as if it were.
|
||||||
|
|
||||||
@library{wxbase}
|
@library{wxbase}
|
||||||
@category{FIXME}
|
@category{data}
|
||||||
|
|
||||||
@see wxList<T>, wxHashTable
|
@see wxList<T>, wxHashTable
|
||||||
*/
|
*/
|
||||||
|
@@ -51,6 +51,7 @@ public:
|
|||||||
Called if the user closes the window interactively, will not be
|
Called if the user closes the window interactively, will not be
|
||||||
called if it is destroyed for another reason (such as when program
|
called if it is destroyed for another reason (such as when program
|
||||||
exits).
|
exits).
|
||||||
|
|
||||||
Return @true from here to allow the frame to close, @false to
|
Return @true from here to allow the frame to close, @false to
|
||||||
prevent this from happening.
|
prevent this from happening.
|
||||||
|
|
||||||
@@ -81,16 +82,13 @@ public:
|
|||||||
/**
|
/**
|
||||||
@class wxLogInterposerTemp
|
@class wxLogInterposerTemp
|
||||||
|
|
||||||
A special version of wxLogChain which uses itself as the
|
A special version of wxLogChain which uses itself as the new log target.
|
||||||
new log target. It forwards log messages to the previously installed one in
|
It forwards log messages to the previously installed one in addition to
|
||||||
addition to
|
processing them itself. Unlike wxLogInterposer, it doesn't delete the old
|
||||||
processing them itself. Unlike wxLogInterposer, it doesn't
|
target which means it can be used to temporarily redirect log output.
|
||||||
delete the old target which means it can be used to temporarily redirect log
|
|
||||||
output.
|
|
||||||
|
|
||||||
As per wxLogInterposer, this class must be derived from to implement
|
As per wxLogInterposer, this class must be derived from to implement
|
||||||
wxLog::DoLog
|
wxLog::DoLog and/or wxLog::DoLogString methods.
|
||||||
and/or wxLog::DoLogString methods.
|
|
||||||
|
|
||||||
@library{wxbase}
|
@library{wxbase}
|
||||||
@category{logging}
|
@category{logging}
|
||||||
@@ -101,6 +99,7 @@ public:
|
|||||||
/**
|
/**
|
||||||
The default constructor installs this object as the current active log target.
|
The default constructor installs this object as the current active log target.
|
||||||
*/
|
*/
|
||||||
|
wxLogInterposerTemp();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -159,8 +158,7 @@ public:
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
Returns @true if the messages are passed to the previously active log
|
Returns @true if the messages are passed to the previously active log
|
||||||
target (default) or @false if PassMessages()
|
target (default) or @false if PassMessages() had been called.
|
||||||
had been called.
|
|
||||||
*/
|
*/
|
||||||
bool IsPassingMessages() const;
|
bool IsPassingMessages() const;
|
||||||
|
|
||||||
@@ -173,9 +171,10 @@ public:
|
|||||||
void PassMessages(bool passMessages);
|
void PassMessages(bool passMessages);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Sets another log target to use (may be @NULL). The log target specified
|
Sets another log target to use (may be @NULL).
|
||||||
in the wxLogChain(wxLog*) constructor or in a previous call to
|
|
||||||
this function is deleted.
|
The log target specified in the wxLogChain(wxLog*) constructor or in a
|
||||||
|
previous call to this function is deleted.
|
||||||
This doesn't change the old log target value (the one the messages are
|
This doesn't change the old log target value (the one the messages are
|
||||||
forwarded to) which still remains the same as was active when wxLogChain
|
forwarded to) which still remains the same as was active when wxLogChain
|
||||||
object was created.
|
object was created.
|
||||||
@@ -436,8 +435,7 @@ public:
|
|||||||
by the new lines.
|
by the new lines.
|
||||||
|
|
||||||
All the messages collected so far can be shown to the user (and the current
|
All the messages collected so far can be shown to the user (and the current
|
||||||
buffer cleared) by calling the overloaded wxLogBuffer::Flush
|
buffer cleared) by calling the overloaded wxLogBuffer::Flush method.
|
||||||
method.
|
|
||||||
|
|
||||||
@library{wxbase}
|
@library{wxbase}
|
||||||
@category{logging}
|
@category{logging}
|
||||||
@@ -455,8 +453,8 @@ public:
|
|||||||
/**
|
/**
|
||||||
Returns the current buffer contains. Messages from different log function calls
|
Returns the current buffer contains. Messages from different log function calls
|
||||||
are separated with the new lines in the buffer.
|
are separated with the new lines in the buffer.
|
||||||
The buffer can be cleared by Flush() which will
|
The buffer can be cleared by Flush() which will also show the current
|
||||||
also show the current contents to the user.
|
contents to the user.
|
||||||
*/
|
*/
|
||||||
const wxString GetBuffer();
|
const wxString GetBuffer();
|
||||||
};
|
};
|
||||||
@@ -466,17 +464,15 @@ public:
|
|||||||
/**
|
/**
|
||||||
@class wxLogInterposer
|
@class wxLogInterposer
|
||||||
|
|
||||||
A special version of wxLogChain which uses itself as the
|
A special version of wxLogChain which uses itself as the new log target.
|
||||||
new log target. It forwards log messages to the previously installed one in
|
It forwards log messages to the previously installed one in addition to
|
||||||
addition to
|
|
||||||
processing them itself.
|
processing them itself.
|
||||||
|
|
||||||
Unlike wxLogChain which is usually used directly as is,
|
Unlike wxLogChain which is usually used directly as is, this class must be
|
||||||
this class must be derived from to implement wxLog::DoLog
|
derived from to implement wxLog::DoLog and/or wxLog::DoLogString methods.
|
||||||
and/or wxLog::DoLogString methods.
|
|
||||||
|
|
||||||
wxLogInterposer destroys the previous log target in its destructor. If you
|
wxLogInterposer destroys the previous log target in its destructor.
|
||||||
don't want this to happen, use wxLogInterposerTemp instead.
|
If you don't want this to happen, use wxLogInterposerTemp instead.
|
||||||
|
|
||||||
@library{wxbase}
|
@library{wxbase}
|
||||||
@category{logging}
|
@category{logging}
|
||||||
@@ -487,6 +483,7 @@ public:
|
|||||||
/**
|
/**
|
||||||
The default constructor installs this object as the current active log target.
|
The default constructor installs this object as the current active log target.
|
||||||
*/
|
*/
|
||||||
|
wxLogInterposer();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -530,116 +527,132 @@ public:
|
|||||||
Otherwise, it is completely hidden behind the @e wxLogXXX() functions and
|
Otherwise, it is completely hidden behind the @e wxLogXXX() functions and
|
||||||
you may not even know about its existence.
|
you may not even know about its existence.
|
||||||
|
|
||||||
@section overview_wxLog_deriving Deriving your own log target
|
|
||||||
|
|
||||||
There are two functions which must be implemented by any derived class to
|
@section log_derivingyours Deriving your own log target
|
||||||
actually process the log messages: DoLog() and
|
|
||||||
DoLogString(). The second function receives a string
|
|
||||||
which just has to be output in some way and the easiest way to write a new log
|
|
||||||
target is to override just this function in the derived class. If more control
|
|
||||||
over the output format is needed, then the first function must be overridden
|
|
||||||
which allows to construct custom messages depending on the log level or even
|
|
||||||
do completely different things depending on the message severity (for example,
|
|
||||||
throw away all messages except warnings and errors, show warnings on the
|
|
||||||
screen and forward the error messages to the user's (or programmer's) cell
|
|
||||||
phone - maybe depending on whether the timestamp tells us if it is day or
|
|
||||||
night in the current time zone).
|
|
||||||
There also functions to support message buffering. Why are they needed?
|
|
||||||
Some of wxLog implementations, most notably the standard wxLogGui class,
|
|
||||||
buffer the messages (for example, to avoid showing the user a zillion of modal
|
|
||||||
message boxes one after another -- which would be really annoying).
|
|
||||||
Flush() shows them all and clears the buffer contents.
|
|
||||||
This function doesn't do anything if the buffer is already empty.
|
|
||||||
See also:
|
|
||||||
@li Flush()
|
|
||||||
@li FlushActive()
|
|
||||||
|
|
||||||
@section overview_wxLog_Trace_Masks Using trace masks
|
There are two functions which must be implemented by any derived class to
|
||||||
|
actually process the log messages: DoLog() and DoLogString().
|
||||||
|
The second function receives a string which just has to be output in some way
|
||||||
|
and the easiest way to write a new log target is to override just this function
|
||||||
|
in the derived class.
|
||||||
|
|
||||||
The functions below allow some limited customization of wxLog behaviour
|
If more control over the output format is needed, then the first function must
|
||||||
without writing a new log target class (which, aside from being a matter of
|
be overridden which allows to construct custom messages depending on the log level
|
||||||
several minutes, allows you to do anything you want).
|
or even do completely different things depending on the message severity
|
||||||
The verbose messages are the trace messages which are not disabled in the
|
(for example, throw away all messages except warnings and errors, show warnings
|
||||||
release mode and are generated by wxLogVerbose(). They
|
on the screen and forward the error messages to the user's (or programmer's) cell
|
||||||
are not normally shown to the user because they present little interest, but
|
phone - maybe depending on whether the timestamp tells us if it is day or
|
||||||
may be activated, for example, in order to help the user find some program
|
night in the current time zone).
|
||||||
problem.
|
|
||||||
As for the (real) trace messages, their handling depends on the settings of
|
|
||||||
the (application global) @e trace mask which can either be specified using
|
|
||||||
SetTraceMask(), GetTraceMask() and wxLogTrace() which takes an integer mask
|
|
||||||
or using AddTraceMask() for string trace masks.
|
|
||||||
The difference between bit-wise and string trace masks is that a message using
|
|
||||||
integer trace mask will only be logged if all bits of the mask are set in the
|
|
||||||
current mask while a message using string mask will be logged simply if the
|
|
||||||
mask had been added before to the list of allowed ones.
|
|
||||||
For example,
|
|
||||||
|
|
||||||
@code
|
There also functions to support message buffering. Why are they needed?
|
||||||
wxLogTrace( wxTraceRefCount|wxTraceOleCalls, "Active object ref count: %d", nRef );
|
Some of wxLog implementations, most notably the standard wxLogGui class,
|
||||||
@endcode
|
buffer the messages (for example, to avoid showing the user a zillion of modal
|
||||||
|
message boxes one after another -- which would be really annoying).
|
||||||
|
|
||||||
will do something only if the current trace mask contains both
|
Flush() shows them all and clears the buffer contents.
|
||||||
@c wxTraceRefCount and @c wxTraceOle, but
|
This function doesn't do anything if the buffer is already empty.
|
||||||
|
|
||||||
@code
|
See also:
|
||||||
wxLogTrace( wxTRACE_OleCalls, "IFoo::Bar() called" );
|
@li Flush()
|
||||||
@endcode
|
@li FlushActive()
|
||||||
|
|
||||||
will log the message if it was preceded by
|
|
||||||
|
|
||||||
@code
|
@section log_tracemasks Using trace masks
|
||||||
wxLog::AddTraceMask( wxTRACE_OleCalls);
|
|
||||||
@endcode
|
|
||||||
|
|
||||||
Using string masks is simpler and allows you to easily add custom ones, so this is
|
The functions below allow some limited customization of wxLog behaviour
|
||||||
the preferred way of working with trace messages. The integer trace mask is
|
without writing a new log target class (which, aside from being a matter of
|
||||||
kept for compatibility and for additional (but very rarely needed) flexibility
|
several minutes, allows you to do anything you want).
|
||||||
only.
|
The verbose messages are the trace messages which are not disabled in the
|
||||||
The standard trace masks are given in wxLogTrace() documentation.
|
release mode and are generated by wxLogVerbose().
|
||||||
Finally, the @e wxLog::DoLog() function automatically prepends a time stamp
|
They are not normally shown to the user because they present little interest,
|
||||||
to all the messages. The format of the time stamp may be changed: it can be
|
but may be activated, for example, in order to help the user find some program
|
||||||
any string with % specifications fully described in the documentation of the
|
problem.
|
||||||
standard @e strftime() function. For example, the default format is
|
|
||||||
"[%d/%b/%y %H:%M:%S] " which gives something like "[17/Sep/98 22:10:16] "
|
|
||||||
(without quotes) for the current date. Setting an empty string as the time
|
|
||||||
format disables timestamping of the messages completely.
|
|
||||||
See also
|
|
||||||
@li AddTraceMask()
|
|
||||||
@li RemoveTraceMask()
|
|
||||||
@li ClearTraceMasks()
|
|
||||||
@li GetTraceMasks()
|
|
||||||
@li IsAllowedTraceMask()
|
|
||||||
@li SetVerbose()
|
|
||||||
@li GetVerbose()
|
|
||||||
@li SetTimestamp()
|
|
||||||
@li GetTimestamp()
|
|
||||||
@li SetTraceMask()
|
|
||||||
@li GetTraceMask()
|
|
||||||
@li SetRepetitionCounting()
|
|
||||||
@li GetRepetitionCounting()
|
|
||||||
|
|
||||||
@note Timestamping is disabled for Visual C++ users in debug builds by
|
As for the (real) trace messages, their handling depends on the settings of
|
||||||
default because otherwise it would be impossible to directly go to the line
|
the (application global) @e trace mask which can either be specified using
|
||||||
from which the log message was generated by simply clicking in the debugger
|
SetTraceMask(), GetTraceMask() and wxLogTrace() which takes an integer mask
|
||||||
window on the corresponding error message. If you wish to enable it, please
|
or using AddTraceMask() for string trace masks.
|
||||||
use SetTimestamp() explicitly.
|
|
||||||
|
|
||||||
@section overview_wxLog_Target Manipulating the log target
|
The difference between bit-wise and string trace masks is that a message using
|
||||||
|
integer trace mask will only be logged if all bits of the mask are set in the
|
||||||
|
current mask while a message using string mask will be logged simply if the
|
||||||
|
mask had been added before to the list of allowed ones.
|
||||||
|
For example,
|
||||||
|
|
||||||
|
@code
|
||||||
|
wxLogTrace( wxTraceRefCount|wxTraceOleCalls, "Active object ref count: %d", nRef );
|
||||||
|
@endcode
|
||||||
|
|
||||||
|
will do something only if the current trace mask contains both @c wxTraceRefCount
|
||||||
|
and @c wxTraceOle, but:
|
||||||
|
|
||||||
|
@code
|
||||||
|
wxLogTrace( wxTRACE_OleCalls, "IFoo::Bar() called" );
|
||||||
|
@endcode
|
||||||
|
|
||||||
|
will log the message if it was preceded by:
|
||||||
|
|
||||||
|
@code
|
||||||
|
wxLog::AddTraceMask( wxTRACE_OleCalls);
|
||||||
|
@endcode
|
||||||
|
|
||||||
|
Using string masks is simpler and allows you to easily add custom ones, so this
|
||||||
|
is the preferred way of working with trace messages. The integer trace mask is
|
||||||
|
kept for compatibility and for additional (but very rarely needed) flexibility
|
||||||
|
only.
|
||||||
|
|
||||||
|
The standard trace masks are given in wxLogTrace() documentation.
|
||||||
|
|
||||||
|
Finally, the @e wxLog::DoLog() function automatically prepends a time stamp
|
||||||
|
to all the messages. The format of the time stamp may be changed: it can be
|
||||||
|
any string with % specifications fully described in the documentation of the
|
||||||
|
standard @e strftime() function. For example, the default format is
|
||||||
|
"[%d/%b/%y %H:%M:%S] " which gives something like "[17/Sep/98 22:10:16] "
|
||||||
|
(without quotes) for the current date. Setting an empty string as the time
|
||||||
|
format disables timestamping of the messages completely.
|
||||||
|
|
||||||
|
See also
|
||||||
|
@li AddTraceMask()
|
||||||
|
@li RemoveTraceMask()
|
||||||
|
@li ClearTraceMasks()
|
||||||
|
@li GetTraceMasks()
|
||||||
|
@li IsAllowedTraceMask()
|
||||||
|
@li SetVerbose()
|
||||||
|
@li GetVerbose()
|
||||||
|
@li SetTimestamp()
|
||||||
|
@li GetTimestamp()
|
||||||
|
@li SetTraceMask()
|
||||||
|
@li GetTraceMask()
|
||||||
|
@li SetRepetitionCounting()
|
||||||
|
@li GetRepetitionCounting()
|
||||||
|
|
||||||
|
@note Timestamping is disabled for Visual C++ users in debug builds by
|
||||||
|
default because otherwise it would be impossible to directly go to the line
|
||||||
|
from which the log message was generated by simply clicking in the debugger
|
||||||
|
window on the corresponding error message. If you wish to enable it, please
|
||||||
|
use SetTimestamp() explicitly.
|
||||||
|
|
||||||
|
|
||||||
|
@section log_target Manipulating the log target
|
||||||
|
|
||||||
|
The functions in this section work with and manipulate the active log
|
||||||
|
target. The OnLog() is called by the @e wxLogXXX() functions
|
||||||
|
and invokes the DoLog() of the active log target if any.
|
||||||
|
|
||||||
|
Get/Set methods are used to install/query the current active target and,
|
||||||
|
finally, DontCreateOnDemand() disables the automatic creation of a standard
|
||||||
|
log target if none actually exists. It is only useful when the application
|
||||||
|
is terminating and shouldn't be used in other situations because it may
|
||||||
|
easily lead to a loss of messages.
|
||||||
|
|
||||||
|
See also:
|
||||||
|
@li OnLog()
|
||||||
|
@li GetActiveTarget()
|
||||||
|
@li SetActiveTarget()
|
||||||
|
@li DontCreateOnDemand()
|
||||||
|
@li Suspend()
|
||||||
|
@li Resume()
|
||||||
|
|
||||||
The functions in this section work with and manipulate the active log
|
|
||||||
target. The OnLog() is called by the @e wxLogXXX() functions
|
|
||||||
and invokes the DoLog() of the active log target if any.
|
|
||||||
Get/Set methods are used to install/query the current active target and,
|
|
||||||
finally, DontCreateOnDemand() disables the automatic creation of a standard
|
|
||||||
log target if none actually exists. It is only useful when the application
|
|
||||||
is terminating and shouldn't be used in other situations because it may
|
|
||||||
easily lead to a loss of messages. See also
|
|
||||||
@li OnLog()
|
|
||||||
@li GetActiveTarget()
|
|
||||||
@li SetActiveTarget()
|
|
||||||
@li DontCreateOnDemand()
|
|
||||||
@li Suspend()
|
|
||||||
@li Resume()
|
|
||||||
|
|
||||||
@library{wxcore}
|
@library{wxcore}
|
||||||
@category{logging}
|
@category{logging}
|
||||||
@@ -650,16 +663,14 @@ class wxLog
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
Add the @a mask to the list of allowed masks for
|
Add the @a mask to the list of allowed masks for wxLogTrace().
|
||||||
wxLogTrace().
|
|
||||||
|
|
||||||
@see RemoveTraceMask(), GetTraceMasks()
|
@see RemoveTraceMask(), GetTraceMasks()
|
||||||
*/
|
*/
|
||||||
static void AddTraceMask(const wxString& mask);
|
static void AddTraceMask(const wxString& mask);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Removes all trace masks previously set with
|
Removes all trace masks previously set with AddTraceMask().
|
||||||
AddTraceMask().
|
|
||||||
|
|
||||||
@see RemoveTraceMask()
|
@see RemoveTraceMask()
|
||||||
*/
|
*/
|
||||||
@@ -667,7 +678,8 @@ public:
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
Disables time stamping of the log messages.
|
Disables time stamping of the log messages.
|
||||||
This function is new since wxWidgets version 2.9
|
|
||||||
|
@since 2.9.0
|
||||||
*/
|
*/
|
||||||
static void SetTimestamp(const wxString& format);
|
static void SetTimestamp(const wxString& format);
|
||||||
|
|
||||||
@@ -675,6 +687,7 @@ public:
|
|||||||
Called to process the message of the specified severity. @a msg is the text
|
Called to process the message of the specified severity. @a msg is the text
|
||||||
of the message as specified in the call of @e wxLogXXX() function which
|
of the message as specified in the call of @e wxLogXXX() function which
|
||||||
generated it and @a timestamp is the moment when the message was generated.
|
generated it and @a timestamp is the moment when the message was generated.
|
||||||
|
|
||||||
The base class version prepends the timestamp to the message, adds a prefix
|
The base class version prepends the timestamp to the message, adds a prefix
|
||||||
corresponding to the log level and then calls
|
corresponding to the log level and then calls
|
||||||
DoLogString() with the resulting string.
|
DoLogString() with the resulting string.
|
||||||
@@ -685,6 +698,7 @@ public:
|
|||||||
/**
|
/**
|
||||||
Called to log the specified string. The timestamp is already included in the
|
Called to log the specified string. The timestamp is already included in the
|
||||||
string but still passed to this function.
|
string but still passed to this function.
|
||||||
|
|
||||||
A simple implementation may just send the string to @c stdout or, better,
|
A simple implementation may just send the string to @c stdout or, better,
|
||||||
@c stderr.
|
@c stderr.
|
||||||
*/
|
*/
|
||||||
@@ -694,14 +708,14 @@ public:
|
|||||||
Instructs wxLog to not create new log targets on the fly if there is none
|
Instructs wxLog to not create new log targets on the fly if there is none
|
||||||
currently. (Almost) for internal use only: it is supposed to be called by the
|
currently. (Almost) for internal use only: it is supposed to be called by the
|
||||||
application shutdown code.
|
application shutdown code.
|
||||||
Note that this function also calls
|
|
||||||
ClearTraceMasks().
|
Note that this function also calls ClearTraceMasks().
|
||||||
*/
|
*/
|
||||||
static void DontCreateOnDemand();
|
static void DontCreateOnDemand();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Shows all the messages currently in buffer and clears it. If the buffer
|
Shows all the messages currently in buffer and clears it.
|
||||||
is already empty, nothing happens.
|
If the buffer is already empty, nothing happens.
|
||||||
*/
|
*/
|
||||||
virtual void Flush();
|
virtual void Flush();
|
||||||
|
|
||||||
@@ -733,8 +747,7 @@ public:
|
|||||||
static const wxString GetTimestamp();
|
static const wxString GetTimestamp();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Returns the current trace mask, see Customization() section
|
Returns the current trace mask, see Customization() section for details.
|
||||||
for details.
|
|
||||||
*/
|
*/
|
||||||
static wxTraceMask GetTraceMask();
|
static wxTraceMask GetTraceMask();
|
||||||
|
|
||||||
@@ -751,38 +764,12 @@ public:
|
|||||||
static bool GetVerbose();
|
static bool GetVerbose();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Returns @true if the @a mask is one of allowed masks for
|
Returns @true if the @a mask is one of allowed masks for wxLogTrace().
|
||||||
wxLogTrace().
|
|
||||||
|
|
||||||
See also: AddTraceMask(), RemoveTraceMask()
|
See also: AddTraceMask(), RemoveTraceMask()
|
||||||
*/
|
*/
|
||||||
static bool IsAllowedTraceMask(const wxString& mask);
|
static bool IsAllowedTraceMask(const wxString& mask);
|
||||||
|
|
||||||
/**
|
|
||||||
There are two functions which must be implemented by any derived class to
|
|
||||||
actually process the log messages: DoLog() and
|
|
||||||
DoLogString(). The second function receives a string
|
|
||||||
which just has to be output in some way and the easiest way to write a new log
|
|
||||||
target is to override just this function in the derived class. If more control
|
|
||||||
over the output format is needed, then the first function must be overridden
|
|
||||||
which allows you to construct custom messages depending on the log level or even
|
|
||||||
do completely different things depending on the message severity (for example,
|
|
||||||
throw away all messages except warnings and errors, show warnings on the
|
|
||||||
screen and forward the error messages to the user's (or programmer's) cell
|
|
||||||
phone - maybe depending on whether the timestamp tells us if it is day or
|
|
||||||
night in the current time zone).
|
|
||||||
There also functions to support message buffering. Why are they needed?
|
|
||||||
Some of wxLog implementations, most notably the standard wxLogGui class,
|
|
||||||
buffer the messages (for example, to avoid showing the user a zillion of modal
|
|
||||||
message boxes one after another -- which would be really annoying).
|
|
||||||
Flush() shows them all and clears the buffer contents.
|
|
||||||
This function doesn't do anything if the buffer is already empty.
|
|
||||||
Flush()
|
|
||||||
|
|
||||||
FlushActive()
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Forwards the message at specified level to the @e DoLog() function of the
|
Forwards the message at specified level to the @e DoLog() function of the
|
||||||
active log target if there is any, does nothing otherwise.
|
active log target if there is any, does nothing otherwise.
|
||||||
@@ -792,7 +779,8 @@ public:
|
|||||||
/**
|
/**
|
||||||
Remove the @a mask from the list of allowed masks for
|
Remove the @a mask from the list of allowed masks for
|
||||||
wxLogTrace().
|
wxLogTrace().
|
||||||
See also: AddTraceMask()
|
|
||||||
|
@see AddTraceMask()
|
||||||
*/
|
*/
|
||||||
static void RemoveTraceMask(const wxString& mask);
|
static void RemoveTraceMask(const wxString& mask);
|
||||||
|
|
||||||
@@ -834,8 +822,7 @@ public:
|
|||||||
static void SetTimestamp(const wxString& format);
|
static void SetTimestamp(const wxString& format);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Sets the trace mask, see Customization()
|
Sets the trace mask, see @ref log_derivingyours section for details.
|
||||||
section for details.
|
|
||||||
*/
|
*/
|
||||||
static void SetTraceMask(wxTraceMask mask);
|
static void SetTraceMask(wxTraceMask mask);
|
||||||
|
|
||||||
@@ -846,14 +833,16 @@ public:
|
|||||||
static void SetVerbose(bool verbose = true);
|
static void SetVerbose(bool verbose = true);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Suspends the logging until Resume() is called. Note that
|
Suspends the logging until Resume() is called.
|
||||||
the latter must be called the same number of times as the former to undo it,
|
|
||||||
i.e. if you call Suspend() twice you must call Resume() twice as well.
|
Note that the latter must be called the same number of times as the former
|
||||||
|
to undo it, i.e. if you call Suspend() twice you must call Resume() twice as well.
|
||||||
|
|
||||||
Note that suspending the logging means that the log sink won't be be flushed
|
Note that suspending the logging means that the log sink won't be be flushed
|
||||||
periodically, it doesn't have any effect if the current log target does the
|
periodically, it doesn't have any effect if the current log target does the
|
||||||
logging immediately without waiting for Flush() to be
|
logging immediately without waiting for Flush() to be called (the standard
|
||||||
called (the standard GUI log target only shows the log dialog when it is
|
GUI log target only shows the log dialog when it is flushed, so Suspend()
|
||||||
flushed, so Suspend() works as expected with it).
|
works as expected with it).
|
||||||
|
|
||||||
@see Resume(), wxLogNull
|
@see Resume(), wxLogNull
|
||||||
*/
|
*/
|
||||||
@@ -876,7 +865,7 @@ public:
|
|||||||
For instance, the example of the overview:
|
For instance, the example of the overview:
|
||||||
|
|
||||||
@code
|
@code
|
||||||
wxFile file;
|
wxFile file;
|
||||||
|
|
||||||
// wxFile.Open() normally complains if file can't be opened, we don't want it
|
// wxFile.Open() normally complains if file can't be opened, we don't want it
|
||||||
{
|
{
|
||||||
@@ -891,7 +880,7 @@ public:
|
|||||||
would be better written as:
|
would be better written as:
|
||||||
|
|
||||||
@code
|
@code
|
||||||
wxFile file;
|
wxFile file;
|
||||||
|
|
||||||
// don't try to open file if it doesn't exist, we are prepared to deal with
|
// don't try to open file if it doesn't exist, we are prepared to deal with
|
||||||
// this ourselves - but all other errors are not expected
|
// this ourselves - but all other errors are not expected
|
||||||
@@ -921,6 +910,7 @@ public:
|
|||||||
/**
|
/**
|
||||||
Resumes logging.
|
Resumes logging.
|
||||||
*/
|
*/
|
||||||
|
~wxLogNull();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@@ -29,10 +29,9 @@
|
|||||||
If a native (i.e. supported directly by the compiler) 64 bit integer type was
|
If a native (i.e. supported directly by the compiler) 64 bit integer type was
|
||||||
found to exist, @e wxLongLong_t macro will be defined to correspond to it.
|
found to exist, @e wxLongLong_t macro will be defined to correspond to it.
|
||||||
Also, in this case only, two additional macros will be defined:
|
Also, in this case only, two additional macros will be defined:
|
||||||
wxLongLongFmtSpec() for printing 64 bit integers
|
- wxLongLongFmtSpec() for printing 64 bit integers using the standard @c printf()
|
||||||
using the standard @c printf() function (but see also
|
function (but see also wxLongLong::ToString for a more portable solution);
|
||||||
wxLongLong::ToString for a more portable solution) and
|
- wxLL() for defining 64 bit integer compile-time constants.
|
||||||
wxLL() for defining 64 bit integer compile-time constants.
|
|
||||||
|
|
||||||
@library{wxbase}
|
@library{wxbase}
|
||||||
@category{data}
|
@category{data}
|
||||||
@@ -40,6 +39,16 @@
|
|||||||
class wxLongLong
|
class wxLongLong
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
/**
|
||||||
|
Default constructor initializes the object to 0.
|
||||||
|
*/
|
||||||
|
wxLongLong();
|
||||||
|
|
||||||
|
/**
|
||||||
|
Constructor from native long long (only for compilers supporting it).
|
||||||
|
*/
|
||||||
|
wxLongLong(wxLongLong_t ll);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Constructor from 2 longs: the high and low part are combined into one
|
Constructor from 2 longs: the high and low part are combined into one
|
||||||
wxLongLong.
|
wxLongLong.
|
||||||
@@ -49,16 +58,17 @@ public:
|
|||||||
//@{
|
//@{
|
||||||
/**
|
/**
|
||||||
Returns an absolute value of wxLongLong - either making a copy (const version)
|
Returns an absolute value of wxLongLong - either making a copy (const version)
|
||||||
or modifying it in place (the second one). Not in wxULongLong.
|
or modifying it in place (the second one). Not in wxULongLong.
|
||||||
*/
|
*/
|
||||||
wxLongLong Abs();
|
wxLongLong Abs() const;
|
||||||
const wxLongLong& Abs();
|
wxLongLong& Abs();
|
||||||
//@}
|
//@}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This allows to convert a double value to wxLongLong type. Such conversion is
|
This allows to convert a double value to wxLongLong type.
|
||||||
not always possible in which case the result will be silently truncated in a
|
|
||||||
platform-dependent way. Not in wxULongLong.
|
Such conversion is not always possible in which case the result will be
|
||||||
|
silently truncated in a platform-dependent way. Not in wxULongLong.
|
||||||
*/
|
*/
|
||||||
wxLongLong Assign(double d);
|
wxLongLong Assign(double d);
|
||||||
|
|
||||||
@@ -73,7 +83,7 @@ public:
|
|||||||
unsigned long GetLo() const;
|
unsigned long GetLo() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Convert to native long long (only for compilers supporting it)
|
Convert to native long long (only for compilers supporting it).
|
||||||
*/
|
*/
|
||||||
wxLongLong_t GetValue() const;
|
wxLongLong_t GetValue() const;
|
||||||
|
|
||||||
@@ -94,48 +104,83 @@ public:
|
|||||||
*/
|
*/
|
||||||
wxString ToString() const;
|
wxString ToString() const;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Adds 2 wxLongLongs together and returns the result.
|
Adds 2 wxLongLongs together and returns the result.
|
||||||
*/
|
*/
|
||||||
wxLongLong operator+(const wxLongLong& ll) const;
|
wxLongLong operator+(const wxLongLong& ll) const;
|
||||||
|
|
||||||
//@{
|
|
||||||
/**
|
|
||||||
Pre/post increment operator.
|
|
||||||
*/
|
|
||||||
wxLongLong operator++();
|
|
||||||
wxLongLong operator++(int );
|
|
||||||
//@}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Add another wxLongLong to this one.
|
Add another wxLongLong to this one.
|
||||||
*/
|
*/
|
||||||
wxLongLong operator+(const wxLongLong& ll);
|
wxLongLong& operator+(const wxLongLong& ll);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Subtracts 2 wxLongLongs and returns the result.
|
Subtracts 2 wxLongLongs and returns the result.
|
||||||
*/
|
*/
|
||||||
wxLongLong operator-(const wxLongLong& ll) const;
|
wxLongLong operator-(const wxLongLong& ll) const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Subtracts another wxLongLong from this one.
|
||||||
|
*/
|
||||||
|
wxLongLong& operator-(const wxLongLong& ll);
|
||||||
|
|
||||||
|
|
||||||
|
//@{
|
||||||
|
/**
|
||||||
|
Pre/post increment operator.
|
||||||
|
*/
|
||||||
|
wxLongLong operator++();
|
||||||
|
wxLongLong operator++(int);
|
||||||
|
//@}
|
||||||
|
|
||||||
//@{
|
//@{
|
||||||
/**
|
/**
|
||||||
Pre/post decrement operator.
|
Pre/post decrement operator.
|
||||||
*/
|
*/
|
||||||
wxLongLong operator--();
|
wxLongLong operator--();
|
||||||
wxLongLong operator--(int );
|
wxLongLong operator--(int);
|
||||||
//@}
|
//@}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Subtracts another wxLongLong from this one.
|
Returns the value of this wxLongLong with opposite sign. Not in wxULongLong.
|
||||||
*/
|
*/
|
||||||
wxLongLong operator-(const wxLongLong& ll);
|
wxLongLong operator-() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Assignment operator from unsigned long long. The sign bit will be copied too.
|
Assignment operator from unsigned long long. The sign bit will be copied too.
|
||||||
|
|
||||||
@since 2.7.0
|
@since 2.7.0
|
||||||
*/
|
*/
|
||||||
wxLongLong& operator operator=(const wxULongLong& ll);
|
wxLongLong& operator=(const wxULongLong& ll);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Assignment operator from native long long (only for compilers supporting it).
|
||||||
|
*/
|
||||||
|
wxLongLong& operator=(wxLongLong_t ll);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Assignment operator from native unsigned long long (only for compilers supporting it).
|
||||||
|
|
||||||
|
@since 2.7.0
|
||||||
|
*/
|
||||||
|
wxLongLong& operator=(wxULongLong_t ll);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Assignment operator from long.
|
||||||
|
|
||||||
|
@since 2.7.0
|
||||||
|
*/
|
||||||
|
wxLongLong& operator=(long l);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Assignment operator from unsigned long.
|
||||||
|
|
||||||
|
@since 2.7.0
|
||||||
|
*/
|
||||||
|
wxLongLong& operator=(unsigned long l);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user