X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c0e97a5ec44e77322eb830c084b317eb68680128..711a481223e50d08205648cf67b82d0d8b8ed335:/interface/wx/cmdline.h diff --git a/interface/wx/cmdline.h b/interface/wx/cmdline.h index 0136d2d9ad..d0952b5cde 100644 --- a/interface/wx/cmdline.h +++ b/interface/wx/cmdline.h @@ -3,29 +3,30 @@ // Purpose: interface of wxCmdLineParser // Author: wxWidgets team // RCS-ID: $Id$ -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// /** 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 + (sic) and each call to wxCmdLineParser::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 + @c wxCMD_LINE_OPTION_MANDATORY to require that the option is given and + @c wxCMD_LINE_PARAM_OPTIONAL to make a parameter optional. + + Also, @c 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 + @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. */ -enum +enum wxCmdLineEntryFlags { wxCMD_LINE_OPTION_MANDATORY = 0x01, ///< This option must be given. wxCMD_LINE_PARAM_OPTIONAL = 0x02, ///< The parameter may be omitted. @@ -35,7 +36,7 @@ enum }; /** - The possible values of wxCmdLineEntryDesc::type which specifies the type of + The possible values of wxCmdLineEntryDesc::type which specify the type of the value accepted by an option. */ enum wxCmdLineParamType @@ -52,10 +53,19 @@ enum wxCmdLineParamType */ enum wxCmdLineEntryType { + /// A boolean argument of the program; e.g. @c -v to enable verbose mode. wxCMD_LINE_SWITCH, + + /// An argument with an associated value; e.g. @c "-o filename" to specify + /// an optional output filename. wxCMD_LINE_OPTION, + + /// A parameter: a required program argument. wxCMD_LINE_PARAM, + + /// Additional usage text. See wxCmdLineParser::AddUsageText. wxCMD_LINE_USAGE_TEXT, + wxCMD_LINE_NONE ///< Use this to terminate the list. }; @@ -69,28 +79,53 @@ enum wxCmdLineSplitType }; /** - The structure wxCmdLineEntryDesc is used to describe the one command line + The structure wxCmdLineEntryDesc is used to describe a 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. + to wxCmdLineParser::SetDesc(). + + Note that the meanings of parameters of the wxCmdLineParser::AddXXX() functions + are the same as of the corresponding fields in this structure. */ struct wxCmdLineEntryDesc { + /** + The kind of this program argument. + See ::wxCmdLineEntryType for more info. + */ wxCmdLineEntryType kind; + + /** + The usual, short, name of the switch or the option. + + It may contain only letters, digits and the underscores. + This field is unused if kind == wxCMD_LINE_PARAM. + */ const char *shortName; + + /** + The long name for this program argument (may be empty if the option + has no long name). + + It may contain only letters, digits and the underscores. + This field is unused if kind == wxCMD_LINE_PARAM. + */ const char *longName; + + /** + This description is used by the wxCmdLineParser::Usage() method to + construct a help message explaining the syntax of the program. + */ const char *description; + + /** + The type associated with this option (ignored if kind != wxCMD_LINE_OPTION). + See ::wxCmdLineParamType for more info. + */ wxCmdLineParamType type; + + /** + A combination of one or more ::wxCmdLineEntryFlags enum values. + */ int flags; }; @@ -115,18 +150,20 @@ struct wxCmdLineEntryDesc -# Call Parse(). -# Use Found() to retrieve the results. + You can also use wxApp's default command line processing just overriding + wxAppConsole::OnInitCmdLine() and wxAppConsole::OnCmdLineParsed(). + In the documentation below the following terminology is used: - - @b switch: This is a boolean option which can be given or not, but which - doesn't have any value. We use the word switch to distinguish + - @b switch: a boolean option which can be given or not, but which doesn't have + any value. We use the word @e switch to distinguish such boolean options from more generic options like those described below. For example, @c "-v" might be a switch meaning "enable verbose mode". - - @b option: Option for us here is something which comes with a value 0 - unlike a switch. For example, @c -o: @c filename might be an + - @b option: a switch with a value associated to it. + For example, @c "-o filename" might be an option for specifying the name of the output file. - - @b parameter: This is a required program argument. - - @b text: This is a text which can be shown in usage information. + - @b parameter: a required program argument. @section cmdlineparser_construction Construction @@ -208,7 +245,7 @@ struct wxCmdLineEntryDesc @library{wxbase} @category{appmanagement} - @see wxApp::argc, wxApp::argv, @ref page_samples_console "Console Sample" + @see wxApp::argc, wxApp::argv, @ref page_samples_console */ class wxCmdLineParser { @@ -218,20 +255,27 @@ public: */ wxCmdLineParser(); - //@{ /** Constructor which specifies the command line to parse. This is the traditional (Unix) command line format. The parameters @a argc and @a argv have the same meaning as the typical @c main() function. - The second overloaded constructor is only available in Unicode build. - The first one is available in both ANSI and Unicode modes because under + This constructor is available in both ANSI and Unicode modes because under some platforms the command line arguments are passed as ASCII strings even to Unicode programs. */ wxCmdLineParser(int argc, char** argv); + + /** + Constructor which specifies the command line to parse. + This is the traditional (Unix) command line format. + + The parameters @a argc and @a argv have the same meaning as the typical + @c main() function. + + This constructor is only available in Unicode build. + */ wxCmdLineParser(int argc, wchar_t** argv); - //@} /** Constructor which specify the command line to parse in Windows format. @@ -322,7 +366,7 @@ public: backslash can be used to escape all the other special characters. */ static wxArrayString - ConvertStringToArgs(const wxChar cmdline, + ConvertStringToArgs(const wxString& cmdline, wxCmdLineSplitType flags = wxCMD_LINE_SPLIT_DOS); /**