X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3766781218689ca38a07fad5c73735317797c572..fa699cbaaf217af186cd04dd10d6ec67c8667136:/samples/console/console.cpp?ds=inline diff --git a/samples/console/console.cpp b/samples/console/console.cpp index e90e7b5858..fa356714ad 100644 --- a/samples/console/console.cpp +++ b/samples/console/console.cpp @@ -1,31 +1,117 @@ ///////////////////////////////////////////////////////////////////////////// // Name: samples/console/console.cpp -// Purpose: a sample console (as opposed to GUI) progam using wxWindows +// Purpose: A sample console (as opposed to GUI) program using wxWidgets // Author: Vadim Zeitlin // Modified by: // Created: 04.10.99 // RCS-ID: $Id$ // Copyright: (c) 1999 Vadim Zeitlin -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#include +// ============================================================================ +// declarations +// ============================================================================ + +// ---------------------------------------------------------------------------- +// headers +// ---------------------------------------------------------------------------- + +// For compilers that support precompilation, includes "wx/wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +// for all others, include the necessary headers (this file is usually all you +// need because it includes almost all "standard" wxWidgets headers) +#ifndef WX_PRECOMP + #include "wx/wx.h" +#endif -#include #include +#include + +// ============================================================================ +// implementation +// ============================================================================ -int main() +static const wxCmdLineEntryDesc cmdLineDesc[] = { - if ( !wxInitialize() ) + { 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" }, + // ... your other command line options here... + + { wxCMD_LINE_NONE } +}; + +int main(int argc, char **argv) +{ + wxApp::CheckBuildOptions(WX_BUILD_OPTIONS_SIGNATURE, "program"); + + wxInitializer initializer; + if ( !initializer ) { - fprintf(stderr, "Failed to initialize the wxWindows library, aborting."); + fprintf(stderr, "Failed to initialize the wxWidgets library, aborting."); + return -1; } - wxString s("Hello, "); + 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; + } - wxLogMessage(s + "world!"); + if (val == 42) + wxPrintf("You guessed!\n"); + else + wxPrintf("Bad luck!\n"); + } + } + break; + + default: + break; + } + + if ( argc == 1 ) + { + // If there were no command-line options supplied, emit a message + // otherwise it's not obvious that the sample ran successfully + wxPrintf("Welcome to the wxWidgets 'console' sample!\n"); + wxPrintf("For more information, run it again with the --help option\n"); + } - wxUninitialize(); + // do something useful here return 0; }