#include "wx/string.h"
#include "wx/ffile.h"
#include "wx/app.h"
+ #include "wx/intl.h"
#if wxUSE_GUI
#include "wx/msgdlg.h"
#endif // wxUSE_GUI
#endif
#include "wx/msgout.h"
+#include "wx/log.h"
#include <stdarg.h>
#include <stdio.h>
wxMessageOutput* wxMessageOutput::Get()
{
- // FIXME this is an hack
- static bool inGet = FALSE;
-
- if(!ms_msgOut && wxTheApp && !inGet)
+ if ( !ms_msgOut && wxTheApp )
{
- inGet = TRUE;
- wxTheApp->DoInit();
+ ms_msgOut = wxTheApp->CreateMessageOutput();
}
- inGet = FALSE;
return ms_msgOut;
}
out.PrintfV(format, args);
va_end(args);
- fprintf(stderr, "%s", out.mb_str());
+ fprintf(stderr, "%s", (const char*) out.mb_str());
}
// ----------------------------------------------------------------------------
out.PrintfV(format, args);
va_end(args);
+ // the native MSW msg box understands the TABs, others don't
#ifndef __WXMSW__
- out.Replace("\t"," ");
+ out.Replace(wxT("\t"), wxT(" "));
#endif
- ::wxMessageBox(out);
+
+ wxString title;
+ if ( wxTheApp )
+ title.Printf(_("%s message"), wxTheApp->GetAppName().c_str());
+
+ ::wxMessageBox(out, title);
}
#endif // wxUSE_GUI
void wxMessageOutputLog::Printf(const wxChar* format, ...)
{
+ wxString out;
+
va_list args;
va_start(args, format);
- wxString out;
out.PrintfV(format, args);
va_end(args);
- out.Replace("\t"," ");
- // under Motif, wxMessageDialog needs a parent window, so we use
- // wxLog, which is better than nothing
- ::wxLogMessage("%s", out.c_str());
+ out.Replace(wxT("\t"), wxT(" "));
+
+ ::wxLogMessage(wxT("%s"), out.c_str());
}