X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5f170f33fd19bdef10884f506fcc924d858ccb50..085a1f3cd9bb0dd151024aeb2d09e769e76bb829:/include/wx/log.h diff --git a/include/wx/log.h b/include/wx/log.h index 8c17c182d8..db1f30d5d1 100644 --- a/include/wx/log.h +++ b/include/wx/log.h @@ -161,7 +161,7 @@ public: void SetVerbose(bool bVerbose = TRUE) { m_bVerbose = bVerbose; } // should GetActiveTarget() try to create a new log object if the // current is NULL? - static void DontCreateOnDemand() { ms_bAutoCreate = FALSE; } + static void DontCreateOnDemand(); // trace mask (see wxTraceXXX constants for details) static void SetTraceMask(wxTraceMask ulMask) { ms_ulTraceMask = ulMask; } @@ -169,6 +169,8 @@ public: static void AddTraceMask(const wxString& str) { ms_aTraceMasks.Add(str); } // add string trace mask static void RemoveTraceMask(const wxString& str); + // remove all string trace masks + static void ClearTraceMasks(); // sets the timestamp string: this is used as strftime() format string // for the log targets which add time stamps to the messages - set it @@ -249,14 +251,14 @@ class WXDLLEXPORT wxLogStream : public wxLog { public: // redirect log output to an ostream - wxLogStream(ostream *ostr = (ostream *) NULL); + wxLogStream(wxSTD ostream *ostr = (wxSTD ostream *) NULL); protected: // implement sink function virtual void DoLogString(const wxChar *szString, time_t t); // using ptr here to avoid including from this file - ostream *m_ostr; + wxSTD ostream *m_ostr; }; #endif @@ -266,6 +268,8 @@ protected: #if wxUSE_GUI +#if wxUSE_TEXTCTRL + // log everything to a text window (GUI only of course) class WXDLLEXPORT wxLogTextCtrl : public wxLog { @@ -280,9 +284,14 @@ private: wxTextCtrl *m_pTextCtrl; }; +#endif // wxUSE_TEXTCTRL + // ---------------------------------------------------------------------------- // GUI log target, the default one for wxWindows programs // ---------------------------------------------------------------------------- + +#if wxUSE_LOGGUI + class WXDLLEXPORT wxLogGui : public wxLog { public: @@ -298,12 +307,6 @@ protected: // empty everything void Clear(); - // the translated titles for misc message boxes: only translate ones to - // avoid reentrancy problems later - wxString m_error, - m_warning, - m_info; - wxArrayString m_aMessages; // the log message texts wxArrayInt m_aSeverity; // one of wxLOG_XXX values wxArrayLong m_aTimes; // the time of each message @@ -311,12 +314,17 @@ protected: m_bWarnings; // any warnings? }; +#endif // wxUSE_LOGGUI + // ---------------------------------------------------------------------------- // (background) log window: this class forwards all log messages to the log // target which was active when it was instantiated, but also collects them // to the log window. This window has it's own menu which allows the user to // close it, clear the log contents or save it to the file. // ---------------------------------------------------------------------------- + +#if wxUSE_LOGWINDOW + class WXDLLEXPORT wxLogWindow : public wxLog { public: @@ -327,15 +335,15 @@ public: ~wxLogWindow(); // window operations - // show/hide the log window + // show/hide the log window void Show(bool bShow = TRUE); - // retrieve the pointer to the frame + // retrieve the pointer to the frame wxFrame *GetFrame() const; // accessors - // the previous log target (may be NULL) + // the previous log target (may be NULL) wxLog *GetOldLog() const { return m_pOldLog; } - // are we passing the messages to the previous log target? + // are we passing the messages to the previous log target? bool IsPassingMessages() const { return m_bPassMessages; } // we can pass the messages to the previous log target (we're in this mode by @@ -344,14 +352,20 @@ public: void PassMessages(bool bDoPass) { m_bPassMessages = bDoPass; } // base class virtuals - // we don't need it ourselves, but we pass it to the previous logger + // we don't need it ourselves, but we pass it to the previous logger virtual void Flush(); // overridables - // called immediately after the log frame creation allowing for - // any extra initializations + // called immediately after the log frame creation allowing for + // any extra initializations virtual void OnFrameCreate(wxFrame *frame); - // called right before the log frame is going to be deleted + // called if the user closes the window interactively, will not be + // called if it is destroyed for another reason (such as when program + // exits) - return TRUE from here to allow the frame to close, FALSE + // to prevent this from happening + virtual bool OnFrameClose(wxFrame *frame); + // called right before the log frame is going to be deleted: will + // always be called unlike OnFrameClose() virtual void OnFrameDelete(wxFrame *frame); protected: @@ -364,6 +378,8 @@ private: wxLogFrame *m_pLogFrame; // the log frame }; +#endif // wxUSE_LOGWINDOW + #endif // wxUSE_GUI // ---------------------------------------------------------------------------- @@ -471,7 +487,7 @@ DECLARE_LOG_FUNCTION2(SysError, long lErrCode); // this second version will only log the message if the mask had been // added to the list of masks with AddTraceMask() - DECLARE_LOG_FUNCTION2(Trace, const char *mask); + DECLARE_LOG_FUNCTION2(Trace, const wxChar *mask); // the last one does nothing if all of level bits are not set // in wxLog::GetActive()->GetTraceMask() - it's deprecated in favour of @@ -500,13 +516,13 @@ DECLARE_LOG_FUNCTION2(SysError, long lErrCode); #ifdef __VISUALC__ #define wxLogApiError(api, rc) \ wxLogDebug(wxT("%s(%d): '%s' failed with error 0x%08lx (%s)."), \ - __TFILE__, __LINE__, _T(api), \ + __TFILE__, __LINE__, api, \ rc, wxSysErrorMsg(rc)) #else // !VC++ #define wxLogApiError(api, rc) \ wxLogDebug(wxT("In file %s at line %d: '%s' failed with " \ "error 0x%08lx (%s)."), \ - __TFILE__, __LINE__, _T(api), \ + __TFILE__, __LINE__, api, \ rc, wxSysErrorMsg(rc)) #endif // VC++/!VC++