annotate console2.cpp @ 0:dabf2a6b7d4e default tip

wxWidgets minimal console app.
author pyon@macmini
date Wed, 12 Feb 2020 21:21:24 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
1 #include "wx/wxprec.h"
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
2
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
3 #include <wx/wx.h>
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
4 #include <wx/app.h>
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
5 #include <wx/cmdline.h>
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
6
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
7 static const wxCmdLineEntryDesc cmdLineDesc[] =
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
8 {
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
9 { wxCMD_LINE_SWITCH, "h", "help", "show this help message",
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
10 wxCMD_LINE_VAL_NONE, wxCMD_LINE_OPTION_HELP },
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
11 { wxCMD_LINE_SWITCH, "d", "dummy", "a dummy switch",
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
12 wxCMD_LINE_VAL_NONE, 0 },
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
13 { wxCMD_LINE_SWITCH, "s", "secret", "a secret switch",
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
14 wxCMD_LINE_VAL_NONE, wxCMD_LINE_HIDDEN },
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
15 // ... your other command line options here...
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
16
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
17 wxCMD_LINE_DESC_END
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
18 };
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
19
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
20 int main(int argc, char **argv)
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
21 {
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
22 wxApp::CheckBuildOptions(WX_BUILD_OPTIONS_SIGNATURE, "program");
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
23
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
24 wxInitializer initializer;
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
25 if (!initializer)
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
26 fprintf(stderr, "Failed to initialize the wxWidgets library, aborting.");
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
27 return -1;
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
28 }
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
29
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
30 wxCmdLineParser parser(cmdLineDesc, argc, argv);
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
31 switch (parser.Parse()) {
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
32 case -1:
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
33 // help was given, terminating
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
34 break;
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
35
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
36 case 0:
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
37 // everything is ok; proceed
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
38 if (parser.Found("d")) {
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
39 wxPrintf("Dummy switch was given...\n");
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
40
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
41 while (1) {
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
42 wxChar input[128];
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
43 wxPrintf("Try to guess the magic number (type 'quit' to escape): ");
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
44 if ( !wxFgets(input, WXSIZEOF(input), stdin) )
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
45 break;
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
46
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
47 // kill the last '\n'
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
48 input[wxStrlen(input) - 1] = 0;
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
49
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
50 if (wxStrcmp(input, "quit") == 0)
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
51 break;
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
52
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
53 long val;
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
54 if (!wxString(input).ToLong(&val)) {
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
55 wxPrintf("Invalid number...\n");
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
56 continue;
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
57 }
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
58
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
59 if (val == 42)
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
60 wxPrintf("You guessed!\n");
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
61 else
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
62 wxPrintf("Bad luck!\n");
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
63 }
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
64 }
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
65 if (parser.Found("s")) {
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
66 wxPrintf("Secret switch was given...\n");
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
67 }
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
68
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
69 break;
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
70
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
71 default:
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
72 break;
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
73 }
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
74
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
75 if (argc == 1) {
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
76 wxPrintf("Welcome to the wxWidgets 'console' sample!\n");
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
77 wxPrintf("For more information, run it again with the --help option\n");
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
78 }
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
79
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
80 // do something useful here
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
81
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
82 return 0;
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
83 }
dabf2a6b7d4e wxWidgets minimal console app.
pyon@macmini
parents:
diff changeset
84