3f66f6a5b3
This keyword is not expanded by Git which means it's not replaced with the correct revision value in the releases made using git-based scripts and it's confusing to have lines with unexpanded "$Id$" in the released files. As expanding them with Git is not that simple (it could be done with git archive and export-subst attribute) and there are not many benefits in having them in the first place, just remove all these lines. If nothing else, this will make an eventual transition to Git simpler. Closes #14487. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
186 lines
5.9 KiB
C++
186 lines
5.9 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/msgout.h
|
|
// Purpose: interface of wxMessageOutput and derived classes
|
|
// Author: Vadim Zeitlin
|
|
// Copyright: (c) 2009 Vadim Zeitlin
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
/**
|
|
Simple class allowing to write strings to various output channels.
|
|
|
|
wxMessageOutput is a low-level class and doesn't provide any of the
|
|
conveniences of wxLog. It simply allows to write a message to some output
|
|
channel: usually file or standard error but possibly also a message box.
|
|
While use of wxLog and related functions is preferable in many cases
|
|
sometimes this simple interface may be more convenient.
|
|
|
|
This class itself is an abstract base class for various concrete derived
|
|
classes:
|
|
- wxMessageOutputStderr
|
|
- wxMessageOutputBest
|
|
- wxMessageOutputMessageBox
|
|
- wxMessageOutputLog
|
|
|
|
It also provides access to the global message output object which is
|
|
created by wxAppTraits::CreateMessageOutput() which creates an object of
|
|
class wxMessageOutputStderr in console applications and wxMessageOutputBest
|
|
in the GUI ones but may be overridden in user-defined traits class.
|
|
|
|
Example of using this class:
|
|
@code
|
|
wxMessageOutputDebug().Printf("name=%s, preparing to greet...", name);
|
|
wxMessageOutput::Get()->Printf("Hello, %s!", name);
|
|
@endcode
|
|
|
|
@library{wxbase}
|
|
@category{logging}
|
|
*/
|
|
class wxMessageOutput
|
|
{
|
|
public:
|
|
/**
|
|
Return the global message output object.
|
|
|
|
This object is never @NULL while the program is running but may be
|
|
@NULL during initialization (before wxApp object is instantiated) or
|
|
shutdown.(after wxApp destruction).
|
|
|
|
@see wxAppTraits::CreateMessageOutput()
|
|
*/
|
|
static wxMessageOutput* Get();
|
|
|
|
/**
|
|
Sets the global message output object.
|
|
|
|
Using this function may be a simpler alternative to changing the
|
|
message output object used for your program than overriding
|
|
wxAppTraits::CreateMessageOutput().
|
|
|
|
Remember to delete the returned pointer or restore it later with
|
|
another call to Set().
|
|
*/
|
|
static wxMessageOutput* Set(wxMessageOutput* msgout);
|
|
|
|
/**
|
|
Output a message.
|
|
|
|
This function uses the same conventions as standard @c printf().
|
|
*/
|
|
void Printf(const wxString& format, ...);
|
|
|
|
/**
|
|
Method called by Printf() to really output the text.
|
|
|
|
This method is overridden in various derived classes and is also the
|
|
one you should override if you implement a custom message output
|
|
object.
|
|
|
|
It may also be called directly instead of Printf(). This is especially
|
|
useful when outputting a user-defined string because it can be simply
|
|
called with this string instead of using
|
|
@code
|
|
msgout.Printf("%s", str);
|
|
@endcode
|
|
(notice that passing user-defined string to Printf() directly is, of
|
|
course, a security risk).
|
|
*/
|
|
virtual void Output(const wxString& str) = 0;
|
|
};
|
|
|
|
/**
|
|
Output messages to stderr or another STDIO file stream.
|
|
|
|
Implements wxMessageOutput by using stderr or specified file.
|
|
|
|
@library{wxbase}
|
|
@category{logging}
|
|
*/
|
|
class wxMessageOutputStderr : public wxMessageOutput
|
|
{
|
|
public:
|
|
/**
|
|
Create a new message output object associated with standard error
|
|
stream by default.
|
|
|
|
@param fp
|
|
Non-null STDIO file stream. Notice that this object does @e not
|
|
take ownership of this pointer, i.e. the caller is responsible for
|
|
both ensuring that its life-time is great er than life-time of this
|
|
object and for deleting it if necessary.
|
|
*/
|
|
wxMessageOutputStderr(FILE *fp = stderr);
|
|
};
|
|
|
|
/**
|
|
Flags used with wxMessageOutputBest.
|
|
|
|
See wxMessageOutputBest::wxMessageOutputBest().
|
|
*/
|
|
enum wxMessageOutputFlags
|
|
{
|
|
wxMSGOUT_PREFER_STDERR = 0, ///< use stderr if available (this is the default)
|
|
wxMSGOUT_PREFER_MSGBOX = 1 ///< always use message box if available
|
|
};
|
|
|
|
/**
|
|
Output messages in the best possible way.
|
|
|
|
Some systems (e.g. MSW) are capable of showing message boxes even from
|
|
console programs. If this is the case, this class will use message box if
|
|
standard error stream is not available (e.g. running console program not
|
|
from console under Windows) or possibly even always, depending on the value
|
|
of flags constructor argument.
|
|
|
|
@library{wxbase}
|
|
@category{logging}
|
|
*/
|
|
class wxMessageOutputBest : public wxMessageOutputStderr
|
|
{
|
|
public:
|
|
/**
|
|
Create a new message output object.
|
|
|
|
@param flags
|
|
May be either @c wxMSGOUT_PREFER_STDERR (default) meaning that
|
|
standard error will be used if it's available (e.g. program is
|
|
being run from console under Windows) or @c wxMSGOUT_PREFER_MSGBOX
|
|
meaning that a message box will always be used if the current
|
|
system supports showing message boxes from console programs
|
|
(currently only Windows does).
|
|
*/
|
|
wxMessageOutputBest(wxMessageOutputFlags flags = wxMSGOUT_PREFER_STDERR);
|
|
};
|
|
|
|
/**
|
|
Output messages to the system debug output channel.
|
|
|
|
Under MSW this class outputs messages to the so called debug output. Under
|
|
the other systems it simply uses the standard error stream.
|
|
|
|
@library{wxbase}
|
|
@category{logging}
|
|
*/
|
|
class wxMessageOutputDebug : public wxMessageOutputStderr
|
|
{
|
|
public:
|
|
/// Default constructor.
|
|
wxMessageOutputDebug();
|
|
};
|
|
|
|
/**
|
|
Output messages by showing them in a message box.
|
|
|
|
This class is only available to GUI applications, unlike all the other
|
|
wxMessageOutput-derived classes.
|
|
|
|
@library{wxcore}
|
|
@category{logging}
|
|
*/
|
|
class wxMessageOutputMessageBox : public wxMessageOutput
|
|
{
|
|
public:
|
|
/// Default constructor.
|
|
wxMessageOutputMessageBox();
|
|
};
|