X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e2478fde622a16d25c66690af353dfdc37e7b582..e304942c65edbe2842f1d1ad60de19f567150559:/include/wx/msgout.h diff --git a/include/wx/msgout.h b/include/wx/msgout.h index f6422c6f38..bd3719e79d 100755 --- a/include/wx/msgout.h +++ b/include/wx/msgout.h @@ -5,7 +5,7 @@ // Modified by: // Created: 17.07.02 // RCS-ID: $Id$ -// Copyright: (c) wxWindows team +// Copyright: (c) Mattia Barbon // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// @@ -16,7 +16,14 @@ // headers // ---------------------------------------------------------------------------- -#if defined(__GNUG__) && !defined(__APPLE__) +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) && !defined(__EMX__) +// Some older compilers (such as EMX) cannot handle +// #pragma interface/implementation correctly, iff +// #pragma implementation is used in _two_ translation +// units (as created by e.g. event.cpp compiled for +// libwx_base and event.cpp compiled for libwx_gui_core). +// So we must not use those pragmas for those compilers in +// such files. #pragma interface "msgout.h" #endif @@ -28,7 +35,7 @@ // something you can printf() to // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxMessageOutput +class WXDLLIMPEXP_BASE wxMessageOutput { public: virtual ~wxMessageOutput() { } @@ -36,7 +43,8 @@ public: // show a message to the user virtual void Printf(const wxChar* format, ...) ATTRIBUTE_PRINTF_2 = 0; - // gets the current wxMessageOutput object + // gets the current wxMessageOutput object (may be NULL during + // initialization or shutdown) static wxMessageOutput* Get(); // sets the global wxMessageOutput instance; returns the previous one @@ -46,11 +54,25 @@ private: static wxMessageOutput* ms_msgOut; }; +// ---------------------------------------------------------------------------- +// implementation showing the message to the user in "best" possible way: uses +// native message box if available (currently only under Windows) and stderr +// otherwise; unlike wxMessageOutputMessageBox this class is always safe to use +// ---------------------------------------------------------------------------- + +class WXDLLIMPEXP_BASE wxMessageOutputBest : public wxMessageOutput +{ +public: + wxMessageOutputBest() { } + + virtual void Printf(const wxChar* format, ...) ATTRIBUTE_PRINTF_2; +}; + // ---------------------------------------------------------------------------- // implementation which sends output to stderr // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxMessageOutputStderr : public wxMessageOutput +class WXDLLIMPEXP_BASE wxMessageOutputStderr : public wxMessageOutput { public: wxMessageOutputStderr() { } @@ -64,7 +86,7 @@ public: #if wxUSE_GUI -class WXDLLEXPORT wxMessageOutputMessageBox : public wxMessageOutput +class WXDLLIMPEXP_CORE wxMessageOutputMessageBox : public wxMessageOutput { public: wxMessageOutputMessageBox() { } @@ -78,7 +100,7 @@ public: // implementation using the native way of outputting debug messages // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxMessageOutputDebug : public wxMessageOutput +class WXDLLIMPEXP_BASE wxMessageOutputDebug : public wxMessageOutput { public: wxMessageOutputDebug() { } @@ -90,7 +112,7 @@ public: // implementation using wxLog (mainly for backwards compatibility) // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxMessageOutputLog : public wxMessageOutput +class WXDLLIMPEXP_BASE wxMessageOutputLog : public wxMessageOutput { public: wxMessageOutputLog() { }