+/**
+ wxCmdLineEntryDesc::flags field is a combination of these bit masks.
+
+ Notice that by default (i.e. if flags are just 0), options are optional
+ (sic) and each call to wxCmdLineEntryDesc::AddParam() allows one more
+ parameter - this may be changed by giving non-default flags to it, i.e. use
+ wxCMD_LINE_OPTION_MANDATORY to require that the option is given and
+ wxCMD_LINE_PARAM_OPTIONAL to make a parameter optional. Also,
+ wxCMD_LINE_PARAM_MULTIPLE may be specified if the programs accepts a
+ variable number of parameters - but it only can be given for the last
+ parameter in the command line description. If you use this flag, you will
+ probably need to use wxCmdLineEntryDesc::GetParamCount() to retrieve the
+ number of parameters effectively specified after calling
+ wxCmdLineEntryDesc::Parse().
+
+ wxCMD_LINE_NEEDS_SEPARATOR can be specified to require a separator (either
+ a colon, an equal sign or white space) between the option name and its
+ value. By default, no separator is required.
+*/
+enum
+{
+ wxCMD_LINE_OPTION_MANDATORY = 0x01, ///< This option must be given.
+ wxCMD_LINE_PARAM_OPTIONAL = 0x02, ///< The parameter may be omitted.
+ wxCMD_LINE_PARAM_MULTIPLE = 0x04, ///< The parameter may be repeated.
+ wxCMD_LINE_OPTION_HELP = 0x08, ///< This option is a help request.
+ wxCMD_LINE_NEEDS_SEPARATOR = 0x10 ///< Must have a separator before the value.
+};
+
+/**
+ The possible values of wxCmdLineEntryDesc::type which specifies the type of
+ the value accepted by an option.
+*/
+enum wxCmdLineParamType
+{
+ wxCMD_LINE_VAL_STRING,
+ wxCMD_LINE_VAL_NUMBER,
+ wxCMD_LINE_VAL_DATE,
+ wxCMD_LINE_VAL_DOUBLE,
+ wxCMD_LINE_VAL_NONE
+};
+
+/**
+ The type of a command line entity used for wxCmdLineEntryDesc::kind.
+*/
+enum wxCmdLineEntryType
+{
+ wxCMD_LINE_SWITCH,
+ wxCMD_LINE_OPTION,
+ wxCMD_LINE_PARAM,
+ wxCMD_LINE_NONE ///< Use this to terminate the list.
+};
+
+/**
+ The structure wxCmdLineEntryDesc is used to describe the one command line
+ switch, option or parameter. An array of such structures should be passed
+ to wxCmdLineParser::SetDesc(). Also, the meanings of parameters of the
+ wxCmdLineParser::AddXXX() functions are the same as of the corresponding
+ fields in this structure.
+
+ The field @c shortName is the usual, short, name of the switch or the
+ option. @c longName is the corresponding long name or empty if the option
+ has no long name. Both of these fields are unused for the parameters. Both
+ the short and long option names can contain only letters, digits and the
+ underscores.
+
+ @c description is used by the wxCmdLineEntryDesc::Usage() method to
+ construct a help message explaining the syntax of the program.
+*/
+struct wxCmdLineEntryDesc
+{
+ wxCmdLineEntryType kind;
+ const char *shortName;
+ const char *longName;
+ const char *description;
+ wxCmdLineParamType type;
+ int flags;
+};
+