-#else
- wxMessageOutput::Set(new wxMessageOutputStderr);
-#endif
-}
-
-// ----------------------------------------------------------------------------
-// cmd line parsing
-// ----------------------------------------------------------------------------
-
-bool wxAppBase::OnInit()
-{
- DoInit();
-#if wxUSE_CMDLINE_PARSER
- wxCmdLineParser parser(argc, argv);
-
- OnInitCmdLine(parser);
-
- bool cont;
- switch ( parser.Parse(FALSE /* don't show usage */) )
- {
- case -1:
- cont = OnCmdLineHelp(parser);
- break;
-
- case 0:
- cont = OnCmdLineParsed(parser);
- break;
-
- default:
- cont = OnCmdLineError(parser);
- break;
- }
-
- if ( !cont )
- return FALSE;
-#endif // wxUSE_CMDLINE_PARSER
-
- return TRUE;
-}
-
-#if wxUSE_CMDLINE_PARSER
-
-#define OPTION_VERBOSE _T("verbose")
-#define OPTION_THEME _T("theme")
-#define OPTION_MODE _T("mode")
-
-void wxAppBase::OnInitCmdLine(wxCmdLineParser& parser)
-{
- // the standard command line options
- static const wxCmdLineEntryDesc cmdLineDesc[] =
- {
- {
- wxCMD_LINE_SWITCH,
- _T("h"),
- _T("help"),
- gettext_noop("show this help message"),
- wxCMD_LINE_VAL_NONE,
- wxCMD_LINE_OPTION_HELP
- },
-
-#if wxUSE_LOG
- {
- wxCMD_LINE_SWITCH,
- _T(""),
- OPTION_VERBOSE,
- gettext_noop("generate verbose log messages"),
- wxCMD_LINE_VAL_NONE,
- 0x0
- },
-#endif // wxUSE_LOG
-
-#ifdef __WXUNIVERSAL__
- {
- wxCMD_LINE_OPTION,
- _T(""),
- OPTION_THEME,
- gettext_noop("specify the theme to use"),
- wxCMD_LINE_VAL_STRING,
- 0x0
- },
-#endif // __WXUNIVERSAL__
-
-#if defined(__WXMGL__)
- // VS: this is not specific to wxMGL, all fullscreen (framebuffer) ports
- // should provide this option. That's why it is in common/appcmn.cpp
- // and not mgl/app.cpp
- {
- wxCMD_LINE_OPTION,
- _T(""),
- OPTION_MODE,
- gettext_noop("specify display mode to use (e.g. 640x480-16)"),
- wxCMD_LINE_VAL_STRING,
- 0x0
- },
-#endif // __WXMGL__
-
- // terminator
- {
- wxCMD_LINE_NONE,
- _T(""),
- _T(""),
- _T(""),
- wxCMD_LINE_VAL_NONE,
- 0x0
- }
- };
-
- parser.SetDesc(cmdLineDesc);
-}
-
-bool wxAppBase::OnCmdLineParsed(wxCmdLineParser& parser)
-{
-#if wxUSE_LOG
- if ( parser.Found(OPTION_VERBOSE) )
- {
- wxLog::SetVerbose(TRUE);
- }
-#endif // wxUSE_LOG
-
-#ifdef __WXUNIVERSAL__
- wxString themeName;
- if ( parser.Found(OPTION_THEME, &themeName) )
- {
- wxTheme *theme = wxTheme::Create(themeName);
- if ( !theme )
- {
- wxLogError(_("Unsupported theme '%s'."), themeName.c_str());
-
- return FALSE;
- }
-
- wxTheme::Set(theme);
- }
-#endif // __WXUNIVERSAL__
-
-#if defined(__WXMGL__)
- wxString modeDesc;
- if ( parser.Found(OPTION_MODE, &modeDesc) )
- {
- unsigned w, h, bpp;
- if ( wxSscanf(modeDesc.c_str(), _T("%ux%u-%u"), &w, &h, &bpp) != 3 )
- {
- wxLogError(_("Invalid display mode specification '%s'."), modeDesc.c_str());
-
- return FALSE;
- }
-
- if ( !SetDisplayMode(wxDisplayModeInfo(w, h, bpp)) )
- return FALSE;
- }
-#endif // __WXMGL__
-
- return TRUE;