]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/cmdline.h
Split utility functions into base (in utilsexc_base.cpp) and gui (src/osx/carbon...
[wxWidgets.git] / include / wx / cmdline.h
index 44d4b1744c33c9752103d7038dac40b4207bfed9..10bf956eb0052af0cf0127481b53e97ca95acdc1 100644 (file)
 #include "wx/arrstr.h"
 #include "wx/cmdargs.h"
 
 #include "wx/arrstr.h"
 #include "wx/cmdargs.h"
 
+// determines ConvertStringToArgs() behaviour
+enum wxCmdLineSplitType
+{
+    wxCMD_LINE_SPLIT_DOS,
+    wxCMD_LINE_SPLIT_UNIX
+};
+
 #if wxUSE_CMDLINE_PARSER
 
 class WXDLLIMPEXP_FWD_BASE wxDateTime;
 #if wxUSE_CMDLINE_PARSER
 
 class WXDLLIMPEXP_FWD_BASE wxDateTime;
@@ -45,6 +52,7 @@ enum wxCmdLineParamType
     wxCMD_LINE_VAL_STRING,  // should be 0 (default)
     wxCMD_LINE_VAL_NUMBER,
     wxCMD_LINE_VAL_DATE,
     wxCMD_LINE_VAL_STRING,  // should be 0 (default)
     wxCMD_LINE_VAL_NUMBER,
     wxCMD_LINE_VAL_DATE,
+    wxCMD_LINE_VAL_DOUBLE,
     wxCMD_LINE_VAL_NONE
 };
 
     wxCMD_LINE_VAL_NONE
 };
 
@@ -54,6 +62,7 @@ enum wxCmdLineEntryType
     wxCMD_LINE_SWITCH,
     wxCMD_LINE_OPTION,
     wxCMD_LINE_PARAM,
     wxCMD_LINE_SWITCH,
     wxCMD_LINE_OPTION,
     wxCMD_LINE_PARAM,
+    wxCMD_LINE_USAGE_TEXT,
     wxCMD_LINE_NONE         // to terminate the list
 };
 
     wxCMD_LINE_NONE         // to terminate the list
 };
 
@@ -177,6 +186,9 @@ public:
                   wxCmdLineParamType type = wxCMD_LINE_VAL_STRING,
                   int flags = 0);
 
                   wxCmdLineParamType type = wxCMD_LINE_VAL_STRING,
                   int flags = 0);
 
+    // add an explanatory text to be shown to the user in help
+    void AddUsageText(const wxString& text);
+
     // actions
     // -------
 
     // actions
     // -------
 
@@ -191,6 +203,9 @@ public:
     // give the usage message describing all program options
     void Usage() const;
 
     // give the usage message describing all program options
     void Usage() const;
 
+    // return the usage string, call Usage() to directly show it to the user
+    wxString GetUsageString() const;
+
     // get the command line arguments
     // ------------------------------
 
     // get the command line arguments
     // ------------------------------
 
@@ -205,6 +220,10 @@ public:
     // the value in the provided pointer
     bool Found(const wxString& name, long *value) const;
 
     // the value in the provided pointer
     bool Found(const wxString& name, long *value) const;
 
+    // returns true if an option taking a double value was found and stores
+    // the value in the provided pointer
+    bool Found(const wxString& name, double *value) const;
+
 #if wxUSE_DATETIME
     // returns true if an option taking a date value was found and stores the
     // value in the provided pointer
 #if wxUSE_DATETIME
     // returns true if an option taking a date value was found and stores the
     // value in the provided pointer
@@ -221,12 +240,11 @@ public:
     void Reset();
 
     // break down the command line in arguments
     void Reset();
 
     // break down the command line in arguments
-    static wxArrayString ConvertStringToArgs(const wxString& cmdline);
+    static wxArrayString
+    ConvertStringToArgs(const wxString& cmdline,
+                        wxCmdLineSplitType type = wxCMD_LINE_SPLIT_DOS);
 
 private:
 
 private:
-    // get usage string
-    wxString GetUsageString() const;
-
     // common part of all ctors
     void Init();
 
     // common part of all ctors
     void Init();
 
@@ -242,10 +260,11 @@ private:
 class WXDLLIMPEXP_BASE wxCmdLineParser
 {
 public:
 class WXDLLIMPEXP_BASE wxCmdLineParser
 {
 public:
-    static wxArrayString ConvertStringToArgs(const wxString& cmdline);
+    static wxArrayString
+    ConvertStringToArgs(const wxString& cmdline,
+                        wxCmdLineSplitType type = wxCMD_LINE_SPLIT_DOS);
 };
 
 #endif // wxUSE_CMDLINE_PARSER/!wxUSE_CMDLINE_PARSER
 
 #endif // _WX_CMDLINE_H_
 };
 
 #endif // wxUSE_CMDLINE_PARSER/!wxUSE_CMDLINE_PARSER
 
 #endif // _WX_CMDLINE_H_
-