Mercurial > mercurial > hgweb_console.cgi
diff console2.cpp @ 0:dabf2a6b7d4e default tip
wxWidgets minimal console app.
author | pyon@macmini |
---|---|
date | Wed, 12 Feb 2020 21:21:24 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/console2.cpp Wed Feb 12 21:21:24 2020 +0900 @@ -0,0 +1,84 @@ +#include "wx/wxprec.h" + +#include <wx/wx.h> +#include <wx/app.h> +#include <wx/cmdline.h> + +static const wxCmdLineEntryDesc cmdLineDesc[] = +{ + { wxCMD_LINE_SWITCH, "h", "help", "show this help message", + wxCMD_LINE_VAL_NONE, wxCMD_LINE_OPTION_HELP }, + { wxCMD_LINE_SWITCH, "d", "dummy", "a dummy switch", + wxCMD_LINE_VAL_NONE, 0 }, + { wxCMD_LINE_SWITCH, "s", "secret", "a secret switch", + wxCMD_LINE_VAL_NONE, wxCMD_LINE_HIDDEN }, + // ... your other command line options here... + + wxCMD_LINE_DESC_END +}; + +int main(int argc, char **argv) +{ + wxApp::CheckBuildOptions(WX_BUILD_OPTIONS_SIGNATURE, "program"); + + wxInitializer initializer; + if (!initializer) + fprintf(stderr, "Failed to initialize the wxWidgets library, aborting."); + return -1; + } + + wxCmdLineParser parser(cmdLineDesc, argc, argv); + switch (parser.Parse()) { + case -1: + // help was given, terminating + break; + + case 0: + // everything is ok; proceed + if (parser.Found("d")) { + wxPrintf("Dummy switch was given...\n"); + + while (1) { + wxChar input[128]; + wxPrintf("Try to guess the magic number (type 'quit' to escape): "); + if ( !wxFgets(input, WXSIZEOF(input), stdin) ) + break; + + // kill the last '\n' + input[wxStrlen(input) - 1] = 0; + + if (wxStrcmp(input, "quit") == 0) + break; + + long val; + if (!wxString(input).ToLong(&val)) { + wxPrintf("Invalid number...\n"); + continue; + } + + if (val == 42) + wxPrintf("You guessed!\n"); + else + wxPrintf("Bad luck!\n"); + } + } + if (parser.Found("s")) { + wxPrintf("Secret switch was given...\n"); + } + + break; + + default: + break; + } + + if (argc == 1) { + wxPrintf("Welcome to the wxWidgets 'console' sample!\n"); + wxPrintf("For more information, run it again with the --help option\n"); + } + + // do something useful here + + return 0; +} +