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;
+}
+