Add support for negatable command line switches.
Add wxCMD_LINE_SWITCH_NEGATABLE which allows to use a dash after a command line switch to inverse its meaning (i.e. use "/X-" form). Also add new wxCmdLineParser::FoundSwitch() allowing to check for whether the switch was specified in normal or negated form. Closes #11643. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66253 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -25,6 +25,12 @@
|
||||
@c 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.
|
||||
|
||||
@c wxCMD_LINE_SWITCH_NEGATABLE can be specified if you want to allow the
|
||||
user to specify the switch in both normal form and in negated one (e.g.
|
||||
/R-). You will need to use wxCmdLineParser::FoundSwitch() to distinguish
|
||||
between the normal and negated forms of the switch. This flag is new since
|
||||
wxWidgets 2.9.2.
|
||||
*/
|
||||
enum wxCmdLineEntryFlags
|
||||
{
|
||||
@@ -32,7 +38,8 @@ enum wxCmdLineEntryFlags
|
||||
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.
|
||||
wxCMD_LINE_NEEDS_SEPARATOR = 0x10, ///< Must have a separator before the value.
|
||||
wxCMD_LINE_SWITCH_NEGATABLE = 0x20 ///< This switch can be negated (e.g. /S-)
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -69,6 +76,24 @@ enum wxCmdLineEntryType
|
||||
wxCMD_LINE_NONE ///< Use this to terminate the list.
|
||||
};
|
||||
|
||||
/**
|
||||
The state of a switch as returned by wxCmdLineParser::FoundSwitch().
|
||||
|
||||
@since 2.9.2
|
||||
*/
|
||||
enum wxCmdLineSwitchState
|
||||
{
|
||||
/// The switch was found in negated form, i.e. followed by a '-'.
|
||||
wxCMD_SWITCH_OFF,
|
||||
|
||||
/// The switch was not found at all on the command line.
|
||||
wxCMD_SWITCH_NOT_FOUND
|
||||
|
||||
/// The switch was found (and was not negated)
|
||||
wxCMD_SWITCH_ON
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
Flags determining wxCmdLineParser::ConvertStringToArgs() behaviour.
|
||||
*/
|
||||
@@ -389,6 +414,26 @@ public:
|
||||
*/
|
||||
bool Found(const wxString& name) const;
|
||||
|
||||
/**
|
||||
Returns whether the switch was found on the command line and whether it
|
||||
was negated.
|
||||
|
||||
This method can be used for any kind of switch but is especially useful
|
||||
for switches that can be negated, i.e. were added with
|
||||
wxCMD_LINE_SWITCH_NEGATABLE flag, as otherwise Found() is simpler to
|
||||
use.
|
||||
|
||||
However Found() doesn't allow to distinguish between switch specified
|
||||
normally, i.e. without dash following it, and negated switch, i.e. with
|
||||
the following dash. This method will return @c wxCMD_SWITCH_ON or @c
|
||||
wxCMD_SWITCH_OFF depending on whether the switch was negated or not.
|
||||
And if the switch was not found at all, @c wxCMD_SWITCH_NOT_FOUND is
|
||||
returned.
|
||||
|
||||
@since 2.9.2
|
||||
*/
|
||||
wxCmdLineSwitchState FoundSwitch(const wxString& name) const;
|
||||
|
||||
/**
|
||||
Returns true if an option taking a string value was found and stores
|
||||
the value in the provided pointer (which should not be @NULL).
|
||||
|
Reference in New Issue
Block a user