]>
Commit | Line | Data |
---|---|---|
f6bcfd97 BP |
1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
2 | %% Name: cmdlpars.tex | |
3 | %% Purpose: wxCmdLineParser documentation | |
4 | %% Author: Vadim Zeitlin | |
5 | %% Modified by: | |
6 | %% Created: 27.03.00 | |
7 | %% RCS-ID: $Id$ | |
8 | %% Copyright: (c) Vadim Zeitlin | |
8795498c | 9 | %% License: wxWindows license |
f6bcfd97 BP |
10 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
11 | ||
12 | \section{\class{wxCmdLineParser}}\label{wxcmdlineparser} | |
13 | ||
dceb1c09 | 14 | wxCmdLineParser is a class for parsing the command line. |
f6bcfd97 BP |
15 | |
16 | It has the following features: | |
5e0e6ceb JS |
17 | |
18 | \begin{enumerate}\itemsep=0pt | |
f6bcfd97 BP |
19 | \item distinguishes options, switches and parameters; allows option grouping |
20 | \item allows both short and long options | |
21 | \item automatically generates the usage message from the command line description | |
22 | \item does type checks on the options values (number, date, $\ldots$). | |
23 | \end{enumerate} | |
24 | ||
25 | To use it you should follow these steps: | |
5e0e6ceb JS |
26 | |
27 | \begin{enumerate}\itemsep=0pt | |
f6bcfd97 BP |
28 | \item \helpref{construct}{wxcmdlineparserconstruction} an object of this class |
29 | giving it the command line to parse and optionally its description or use | |
30 | {\tt AddXXX()} functions later | |
31 | \item call {\tt Parse()} | |
32 | \item use {\tt Found()} to retrieve the results | |
33 | \end{enumerate} | |
34 | ||
35 | In the documentation below the following terminology is used: | |
36 | ||
37 | \begin{twocollist}\itemsep=0pt | |
38 | \twocolitem{switch}{This is a boolean option which can be given or not, but | |
39 | which doesn't have any value. We use the word switch to distinguish such boolean | |
40 | options from more generic options like those described below. For example, | |
41 | {\tt -v} might be a switch meaning "enable verbose mode".} | |
42 | \twocolitem{option}{Option for us here is something which comes with a value 0 | |
43 | unlike a switch. For example, {\tt -o:filename} might be an option which allows | |
44 | to specify the name of the output file.} | |
45 | \twocolitem{parameter}{This is a required program argument.} | |
46 | \end{twocollist} | |
47 | ||
48 | \wxheading{Derived from} | |
49 | ||
50 | No base class | |
51 | ||
52 | \wxheading{Include files} | |
53 | ||
54 | <wx/cmdline.h> | |
55 | ||
56 | \wxheading{Constants} | |
57 | ||
58 | The structure wxCmdLineEntryDesc is used to describe the one command | |
59 | line switch, option or parameter. An array of such structures should be passed | |
60 | to \helpref{SetDesc()}{wxcmdlineparsersetdesc}. Also, the meanings of parameters | |
61 | of the {\tt AddXXX()} functions are the same as of the corresponding fields in | |
62 | this structure: | |
63 | ||
64 | \begin{verbatim} | |
65 | struct wxCmdLineEntryDesc | |
66 | { | |
67 | wxCmdLineEntryType kind; | |
68 | const wxChar *shortName; | |
69 | const wxChar *longName; | |
70 | const wxChar *description; | |
71 | wxCmdLineParamType type; | |
72 | int flags; | |
73 | }; | |
74 | \end{verbatim} | |
75 | ||
76 | The type of a command line entity is in the {\tt kind} field and may be one of | |
77 | the following constants: | |
5e0e6ceb JS |
78 | |
79 | {\small% | |
80 | \begin{verbatim} | |
f6bcfd97 BP |
81 | enum wxCmdLineEntryType |
82 | { | |
a66abda9 GT |
83 | wxCMD_LINE_SWITCH, |
84 | wxCMD_LINE_OPTION, | |
85 | wxCMD_LINE_PARAM, | |
86 | wxCMD_LINE_NONE // use this to terminate the list | |
f6bcfd97 | 87 | } |
c57e060d JS |
88 | \end{verbatim} |
89 | } | |
f6bcfd97 BP |
90 | |
91 | The field {\tt shortName} is the usual, short, name of the switch or the option. | |
92 | {\tt longName} is the corresponding long name or NULL if the option has no long | |
93 | name. Both of these fields are unused for the parameters. Both the short and | |
94 | long option names can contain only letters, digits and the underscores. | |
95 | ||
96 | {\tt description} is used by the \helpref{Usage()}{wxcmdlineparserusage} method | |
97 | to construct a help message explaining the syntax of the program. | |
98 | ||
99 | The possible values of {\tt type} which specifies the type of the value accepted | |
100 | by an option or parameter are: | |
5e0e6ceb JS |
101 | |
102 | {\small% | |
103 | \begin{verbatim} | |
f6bcfd97 BP |
104 | enum wxCmdLineParamType |
105 | { | |
a66abda9 GT |
106 | wxCMD_LINE_VAL_STRING, // default |
107 | wxCMD_LINE_VAL_NUMBER, | |
108 | wxCMD_LINE_VAL_DATE, | |
109 | wxCMD_LINE_VAL_NONE | |
f6bcfd97 | 110 | } |
c57e060d JS |
111 | \end{verbatim} |
112 | } | |
f6bcfd97 BP |
113 | |
114 | Finally, the {\tt flags} field is a combination of the following bit masks: | |
5e0e6ceb JS |
115 | |
116 | {\small% | |
117 | \begin{verbatim} | |
f6bcfd97 BP |
118 | enum |
119 | { | |
a66abda9 GT |
120 | wxCMD_LINE_OPTION_MANDATORY = 0x01, // this option must be given |
121 | wxCMD_LINE_PARAM_OPTIONAL = 0x02, // the parameter may be omitted | |
122 | wxCMD_LINE_PARAM_MULTIPLE = 0x04, // the parameter may be repeated | |
123 | wxCMD_LINE_OPTION_HELP = 0x08, // this option is a help request | |
124 | wxCMD_LINE_NEEDS_SEPARATOR = 0x10, // must have sep before the value | |
f6bcfd97 | 125 | } |
c57e060d JS |
126 | \end{verbatim} |
127 | } | |
f6bcfd97 BP |
128 | |
129 | Notice that by default (i.e. if flags are just $0$), options are optional (sic) | |
130 | and each call to \helpref{AddParam()}{wxcmdlineparseraddparam} allows one more | |
131 | parameter - this may be changed by giving non-default flags to it, i.e. use | |
132 | {\tt wxCMD\_LINE\_OPTION\_MANDATORY} to require that the option is given and | |
133 | {\tt wxCMD\_LINE\_PARAM\_OPTIONAL} to make a parameter optional. Also, | |
134 | {\tt wxCMD\_LINE\_PARAM\_MULTIPLE} may be specified if the programs accepts a | |
135 | variable number of parameters - but it only can be given for the last parameter | |
136 | in the command line description. If you use this flag, you will probably need to | |
137 | use \helpref{GetParamCount}{wxcmdlineparsergetparamcount} to retrieve the number | |
138 | of parameters effectively specified after calling | |
139 | \helpref{Parse}{wxcmdlineparserparse}. | |
140 | ||
141 | The last flag {\tt wxCMD\_LINE\_NEEDS\_SEPARATOR} can be specified to require a | |
142 | separator (either a colon, an equal sign or white space) between the option | |
143 | name and its value. By default, no separator is required. | |
144 | ||
145 | \wxheading{See also} | |
146 | ||
147 | \helpref{wxApp::argc}{wxappargc} and \helpref{wxApp::argv}{wxappargv}\\ | |
148 | console sample | |
149 | ||
150 | %%%%%%%%%%%%% Methods by group %%%%%%%%%%%%% | |
151 | \latexignore{\rtfignore{\wxheading{Function groups}}} | |
152 | ||
ff1ce997 | 153 | |
f6bcfd97 BP |
154 | \membersection{Construction}\label{wxcmdlineparserconstruction} |
155 | ||
156 | Before \helpref{Parse}{wxcmdlineparserparse} can be called, the command line | |
157 | parser object must have the command line to parse and also the rules saying | |
158 | which switches, options and parameters are valid - this is called command line | |
159 | description in what follows. | |
160 | ||
161 | You have complete freedom of choice as to when specify the required information, | |
162 | the only restriction is that it must be done before calling | |
163 | \helpref{Parse}{wxcmdlineparserparse}. | |
164 | ||
165 | To specify the command line to parse you may use either one of constructors | |
166 | accepting it (\helpref{wxCmdLineParser(argc, argv)}{wxcmdlineparserwxcmdlineparserargc} or | |
167 | \helpref{wxCmdLineParser}{wxcmdlineparserwxcmdlineparserdescargc} usually) or, | |
168 | if you use \helpref{the default constructor}{wxcmdlineparserwxcmdlineparserdef}, | |
169 | you can do it later by calling | |
170 | \helpref{SetCmdLine}{wxcmdlineparsersetcmdlineargc}. | |
171 | ||
172 | The same holds for command line description: it can be specified either in | |
173 | the constructor (\helpref{without command line}{wxcmdlineparserwxcmdlineparserdesc} or | |
174 | \helpref{together with it}{wxcmdlineparserwxcmdlineparserdescargc}) or | |
175 | constructed later using either \helpref{SetDesc}{wxcmdlineparsersetdesc} or | |
176 | combination of \helpref{AddSwitch}{wxcmdlineparseraddswitch}, | |
177 | \helpref{AddOption}{wxcmdlineparseraddoption} and | |
178 | \helpref{AddParam}{wxcmdlineparseraddparam} methods. | |
179 | ||
180 | Using constructors or \helpref{SetDesc}{wxcmdlineparsersetdesc} uses a (usually | |
181 | {\tt const static}) table containing the command line description. If you want | |
2edb0bde | 182 | to decide which options to accept during the run-time, using one of the |
f6bcfd97 BP |
183 | {\tt AddXXX()} functions above might be preferable. |
184 | ||
ff1ce997 | 185 | |
f6bcfd97 BP |
186 | \membersection{Customization}\label{wxcmdlineparsercustomization} |
187 | ||
188 | wxCmdLineParser has several global options which may be changed by the | |
189 | application. All of the functions described in this section should be called | |
190 | before \helpref{Parse}{wxcmdlineparserparse}. | |
191 | ||
192 | First global option is the support for long (also known as GNU-style) options. | |
193 | The long options are the ones which start with two dashes ({\tt "--"}) and look | |
194 | like this: {\tt --verbose}, i.e. they generally are complete words and not some | |
195 | abbreviations of them. As long options are used by more and more applications, | |
196 | they are enabled by default, but may be disabled with | |
197 | \helpref{DisableLongOptions}{wxcmdlineparserdisablelongoptions}. | |
198 | ||
199 | Another global option is the set of characters which may be used to start an | |
200 | option (otherwise, the word on the command line is assumed to be a parameter). | |
201 | Under Unix, {\tt '-'} is always used, but Windows has at least two common | |
202 | choices for this: {\tt '-'} and {\tt '/'}. Some programs also use {\tt '+'}. | |
203 | The default is to use what suits most the current platform, but may be changed | |
204 | with \helpref{SetSwitchChars}{wxcmdlineparsersetswitchchars} method. | |
205 | ||
206 | Finally, \helpref{SetLogo}{wxcmdlineparsersetlogo} can be used to show some | |
207 | application-specific text before the explanation given by | |
208 | \helpref{Usage}{wxcmdlineparserusage} function. | |
209 | ||
ff1ce997 | 210 | |
f6bcfd97 BP |
211 | \membersection{Parsing command line}\label{wxcmdlineparserparsing} |
212 | ||
97d59046 | 213 | After the command line description was constructed and the desired options were |
f6bcfd97 BP |
214 | set, you can finally call \helpref{Parse}{wxcmdlineparserparse} method. |
215 | It returns $0$ if the command line was correct and was parsed, $-1$ if the help | |
216 | option was specified (this is a separate case as, normally, the program will | |
217 | terminate after this) or a positive number if there was an error during the | |
218 | command line parsing. | |
219 | ||
220 | In the latter case, the appropriate error message and usage information are | |
fc2171bd | 221 | logged by wxCmdLineParser itself using the standard wxWidgets logging functions. |
f6bcfd97 | 222 | |
ff1ce997 | 223 | |
f6bcfd97 BP |
224 | \membersection{Getting results}\label{wxcmdlineparsergettingresults} |
225 | ||
226 | After calling \helpref{Parse}{wxcmdlineparserparse} (and if it returned $0$), | |
227 | you may access the results of parsing using one of overloaded {\tt Found()} | |
228 | methods. | |
229 | ||
230 | For a simple switch, you will simply call | |
231 | \helpref{Found}{wxcmdlineparserfoundswitch} to determine if the switch was given | |
232 | or not, for an option or a parameter, you will call a version of {\tt Found()} | |
233 | which also returns the associated value in the provided variable. All | |
cc81d32f VS |
234 | {\tt Found()} functions return true if the switch or option were found in the |
235 | command line or false if they were not specified. | |
f6bcfd97 BP |
236 | |
237 | %%%%%%%%%%%%% Methods in alphabetic order %%%%%%%%%%%%% | |
238 | \helponly{\insertatlevel{2}{ | |
239 | ||
240 | \wxheading{Members} | |
241 | ||
242 | }} | |
243 | ||
ff1ce997 | 244 | |
f6bcfd97 BP |
245 | \membersection{wxCmdLineParser::wxCmdLineParser}\label{wxcmdlineparserwxcmdlineparserdef} |
246 | ||
247 | \func{}{wxCmdLineParser}{\void} | |
248 | ||
249 | Default constructor. You must use | |
97d59046 | 250 | \helpref{SetCmdLine}{wxcmdlineparsersetcmdlineargc} later. |
f6bcfd97 | 251 | |
ff1ce997 | 252 | |
f6bcfd97 BP |
253 | \membersection{wxCmdLineParser::wxCmdLineParser}\label{wxcmdlineparserwxcmdlineparserargc} |
254 | ||
255 | \func{}{wxCmdLineParser}{\param{int }{argc}, \param{char** }{argv}} | |
256 | ||
ff1ce997 VZ |
257 | \func{}{wxCmdLineParser}{\param{int }{argc}, \param{wchar\_t** }{argv}} |
258 | ||
f6bcfd97 BP |
259 | Constructor specifies the command line to parse. This is the traditional |
260 | (Unix) command line format. The parameters {\it argc} and {\it argv} have the | |
261 | same meaning as for {\tt main()} function. | |
262 | ||
ff1ce997 VZ |
263 | The second overloaded constructor is only available in Unicode build. The |
264 | first one is available in both ANSI and Unicode modes because under some | |
265 | platforms the command line arguments are passed as ASCII strings even to | |
266 | Unicode programs. | |
267 | ||
268 | ||
f6bcfd97 BP |
269 | \membersection{wxCmdLineParser::wxCmdLineParser}\label{wxcmdlineparserwxcmdlineparserstr} |
270 | ||
271 | \func{}{wxCmdLineParser}{\param{const wxString\& }{cmdline}} | |
272 | ||
273 | Constructor specifies the command line to parse in Windows format. The parameter | |
274 | {\it cmdline} has the same meaning as the corresponding parameter of | |
275 | {\tt WinMain()}. | |
276 | ||
ff1ce997 | 277 | |
f6bcfd97 BP |
278 | \membersection{wxCmdLineParser::wxCmdLineParser}\label{wxcmdlineparserwxcmdlineparserdesc} |
279 | ||
280 | \func{}{wxCmdLineParser}{\param{const wxCmdLineEntryDesc* }{desc}} | |
281 | ||
282 | Same as \helpref{wxCmdLineParser}{wxcmdlineparserwxcmdlineparserdef}, but also | |
283 | specifies the \helpref{command line description}{wxcmdlineparsersetdesc}. | |
284 | ||
ff1ce997 | 285 | |
f6bcfd97 BP |
286 | \membersection{wxCmdLineParser::wxCmdLineParser}\label{wxcmdlineparserwxcmdlineparserdescargc} |
287 | ||
288 | \func{}{wxCmdLineParser}{\param{const wxCmdLineEntryDesc* }{desc}, \param{int }{argc}, \param{char** }{argv}} | |
289 | ||
290 | Same as \helpref{wxCmdLineParser}{wxcmdlineparserwxcmdlineparserargc}, but also | |
291 | specifies the \helpref{command line description}{wxcmdlineparsersetdesc}. | |
292 | ||
ff1ce997 | 293 | |
f6bcfd97 BP |
294 | \membersection{wxCmdLineParser::wxCmdLineParser}\label{wxcmdlineparserwxcmdlineparserdescstr} |
295 | ||
296 | \func{}{wxCmdLineParser}{\param{const wxCmdLineEntryDesc* }{desc}, \param{const wxString\& }{cmdline}} | |
297 | ||
298 | Same as \helpref{wxCmdLineParser}{wxcmdlineparserwxcmdlineparserstr}, but also | |
299 | specifies the \helpref{command line description}{wxcmdlineparsersetdesc}. | |
300 | ||
ff1ce997 | 301 | |
83a2e3c5 VZ |
302 | \membersection{wxCmdLineParser::ConvertStringToArgs}\label{wxcmdlineparserconvertstringtoargs} |
303 | ||
304 | \func{static wxArrayString}{ConvertStringToArgs}{\param{const wxChar }{*cmdline}} | |
305 | ||
306 | Breaks down the string containing the full command line in words. The words are | |
307 | separated by whitespace. The quotes can be used in the input string to quote | |
308 | the white space and the back slashes can be used to quote the quotes. | |
309 | ||
ff1ce997 | 310 | |
f6bcfd97 BP |
311 | \membersection{wxCmdLineParser::SetCmdLine}\label{wxcmdlineparsersetcmdlineargc} |
312 | ||
313 | \func{void}{SetCmdLine}{\param{int }{argc}, \param{char** }{argv}} | |
314 | ||
ff1ce997 VZ |
315 | \func{void}{SetCmdLine}{\param{int }{argc}, \param{wchar\_t** }{argv}} |
316 | ||
f6bcfd97 | 317 | Set command line to parse after using one of the constructors which don't do it. |
ff1ce997 | 318 | The second overload of this function is only available in Unicode build. |
f6bcfd97 BP |
319 | |
320 | \wxheading{See also} | |
321 | ||
322 | \helpref{wxCmdLineParser}{wxcmdlineparserwxcmdlineparserargc} | |
323 | ||
ff1ce997 | 324 | |
f6bcfd97 BP |
325 | \membersection{wxCmdLineParser::SetCmdLine}\label{wxcmdlineparsersetcmdlinestr} |
326 | ||
327 | \func{void}{SetCmdLine}{\param{const wxString\& }{cmdline}} | |
328 | ||
329 | Set command line to parse after using one of the constructors which don't do it. | |
330 | ||
331 | \wxheading{See also} | |
332 | ||
333 | \helpref{wxCmdLineParser}{wxcmdlineparserwxcmdlineparserstr} | |
334 | ||
ff1ce997 | 335 | |
f6bcfd97 BP |
336 | \membersection{wxCmdLineParser::\destruct{wxCmdLineParser}}\label{wxcmdlineparserdtor} |
337 | ||
338 | \func{}{\destruct{wxCmdLineParser}}{\void} | |
339 | ||
340 | Frees resources allocated by the object. | |
341 | ||
342 | {\bf NB:} destructor is not virtual, don't use this class polymorphically. | |
343 | ||
ff1ce997 | 344 | |
f6bcfd97 BP |
345 | \membersection{wxCmdLineParser::SetSwitchChars}\label{wxcmdlineparsersetswitchchars} |
346 | ||
347 | \func{void}{SetSwitchChars}{\param{const wxString\& }{switchChars}} | |
348 | ||
349 | {\it switchChars} contains all characters with which an option or switch may | |
350 | start. Default is {\tt "-"} for Unix, {\tt "-/"} for Windows. | |
351 | ||
ff1ce997 | 352 | |
f6bcfd97 BP |
353 | \membersection{wxCmdLineParser::EnableLongOptions}\label{wxcmdlineparserenablelongoptions} |
354 | ||
cc81d32f | 355 | \func{void}{EnableLongOptions}{\param{bool }{enable = true}} |
f6bcfd97 BP |
356 | |
357 | Enable or disable support for the long options. | |
358 | ||
359 | As long options are not (yet) POSIX-compliant, this option allows to disable | |
360 | them. | |
361 | ||
362 | \wxheading{See also} | |
363 | ||
250b589f | 364 | \helpref{Customization}{wxcmdlineparsercustomization} and \helpref{AreLongOptionsEnabled}{wxcmdlineparserarelongoptionsenabled} |
f6bcfd97 | 365 | |
ff1ce997 | 366 | |
f6bcfd97 BP |
367 | \membersection{wxCmdLineParser::DisableLongOptions}\label{wxcmdlineparserdisablelongoptions} |
368 | ||
369 | \func{void}{DisableLongOptions}{\void} | |
370 | ||
cc81d32f | 371 | Identical to \helpref{EnableLongOptions(false)}{wxcmdlineparserenablelongoptions}. |
250b589f | 372 | |
ff1ce997 | 373 | |
250b589f JS |
374 | \membersection{wxCmdLineParser::AreLongOptionsEnabled}\label{wxcmdlineparserarelongoptionsenabled} |
375 | ||
376 | \func{bool}{AreLongOptionsEnabled}{\void} | |
377 | ||
cc81d32f | 378 | Returns true if long options are enabled, otherwise false. |
250b589f JS |
379 | |
380 | \wxheading{See also} | |
381 | ||
382 | \helpref{EnableLongOptions}{wxcmdlineparserenablelongoptions} | |
f6bcfd97 | 383 | |
ff1ce997 | 384 | |
f6bcfd97 BP |
385 | \membersection{wxCmdLineParser::SetLogo}\label{wxcmdlineparsersetlogo} |
386 | ||
387 | \func{void}{SetLogo}{\param{const wxString\& }{logo}} | |
388 | ||
389 | {\it logo} is some extra text which will be shown by | |
390 | \helpref{Usage}{wxcmdlineparserusage} method. | |
391 | ||
ff1ce997 | 392 | |
f6bcfd97 BP |
393 | \membersection{wxCmdLineParser::SetDesc}\label{wxcmdlineparsersetdesc} |
394 | ||
395 | \func{void}{SetDesc}{\param{const wxCmdLineEntryDesc* }{desc}} | |
396 | ||
397 | Construct the command line description | |
398 | ||
399 | Take the command line description from the wxCMD\_LINE\_NONE terminated table. | |
400 | ||
401 | Example of usage: | |
402 | ||
403 | \begin{verbatim} | |
404 | static const wxCmdLineEntryDesc cmdLineDesc[] = | |
405 | { | |
406 | { wxCMD_LINE_SWITCH, "v", "verbose", "be verbose" }, | |
407 | { wxCMD_LINE_SWITCH, "q", "quiet", "be quiet" }, | |
408 | ||
409 | { wxCMD_LINE_OPTION, "o", "output", "output file" }, | |
410 | { wxCMD_LINE_OPTION, "i", "input", "input dir" }, | |
411 | { wxCMD_LINE_OPTION, "s", "size", "output block size", wxCMD_LINE_VAL_NUMBER }, | |
412 | { wxCMD_LINE_OPTION, "d", "date", "output file date", wxCMD_LINE_VAL_DATE }, | |
413 | ||
414 | { wxCMD_LINE_PARAM, NULL, NULL, "input file", wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_MULTIPLE }, | |
415 | ||
416 | { wxCMD_LINE_NONE } | |
417 | }; | |
418 | ||
419 | wxCmdLineParser parser; | |
420 | ||
421 | parser.SetDesc(cmdLineDesc); | |
422 | \end{verbatim} | |
423 | ||
ff1ce997 | 424 | |
f6bcfd97 BP |
425 | \membersection{wxCmdLineParser::AddSwitch}\label{wxcmdlineparseraddswitch} |
426 | ||
427 | \func{void}{AddSwitch}{\param{const wxString\& }{name}, \param{const wxString\& }{lng = wxEmptyString}, \param{const wxString\& }{desc = wxEmptyString}, \param{int }{flags = 0}} | |
428 | ||
429 | Add a switch {\it name} with an optional long name {\it lng} (no long name if it | |
430 | is empty, which is default), description {\it desc} and flags {\it flags} to the | |
431 | command line description. | |
432 | ||
ff1ce997 | 433 | |
f6bcfd97 BP |
434 | \membersection{wxCmdLineParser::AddOption}\label{wxcmdlineparseraddoption} |
435 | ||
436 | \func{void}{AddOption}{\param{const wxString\& }{name}, \param{const wxString\& }{lng = wxEmptyString}, \param{const wxString\& }{desc = wxEmptyString}, \param{wxCmdLineParamType }{type = wxCMD\_LINE\_VAL\_STRING}, \param{int }{flags = 0}} | |
437 | ||
438 | Add an option {\it name} with an optional long name {\it lng} (no long name if | |
439 | it is empty, which is default) taking a value of the given type (string by | |
440 | default) to the command line description. | |
441 | ||
ff1ce997 | 442 | |
f6bcfd97 BP |
443 | \membersection{wxCmdLineParser::AddParam}\label{wxcmdlineparseraddparam} |
444 | ||
445 | \func{void}{AddParam}{\param{const wxString\& }{desc = wxEmptyString}, \param{wxCmdLineParamType }{type = wxCMD\_LINE\_VAL\_STRING}, \param{int }{flags = 0}} | |
446 | ||
447 | Add a parameter of the given {\it type} to the command line description. | |
448 | ||
ff1ce997 | 449 | |
f6bcfd97 BP |
450 | \membersection{wxCmdLineParser::Parse}\label{wxcmdlineparserparse} |
451 | ||
cc81d32f | 452 | \func{int}{Parse}{\param{bool }{giveUsage = {\tt true}}} |
f6bcfd97 BP |
453 | |
454 | Parse the command line, return $0$ if ok, $-1$ if {\tt "-h"} or {\tt "--help"} | |
455 | option was encountered and the help message was given or a positive value if a | |
43e8916f | 456 | syntax error occurred. |
f6bcfd97 | 457 | |
be03c0ec VZ |
458 | \wxheading{Parameters} |
459 | ||
cc81d32f | 460 | \docparam{giveUsage}{If {\tt true} (default), the usage message is given if a |
be03c0ec | 461 | syntax error was encountered while parsing the command line or if help was |
cc81d32f | 462 | requested. If {\tt false}, only error messages about possible syntax errors |
be03c0ec VZ |
463 | are given, use \helpref{Usage}{wxcmdlineparserusage} to show the usage message |
464 | from the caller if needed.} | |
465 | ||
ff1ce997 | 466 | |
f6bcfd97 BP |
467 | \membersection{wxCmdLineParser::Usage}\label{wxcmdlineparserusage} |
468 | ||
469 | \func{void}{Usage}{\void} | |
470 | ||
471 | Give the standard usage message describing all program options. It will use the | |
472 | options and parameters descriptions specified earlier, so the resulting message | |
473 | will not be helpful to the user unless the descriptions were indeed specified. | |
474 | ||
475 | \wxheading{See also} | |
476 | ||
477 | \helpref{SetLogo}{wxcmdlineparsersetlogo} | |
478 | ||
ff1ce997 | 479 | |
f6bcfd97 BP |
480 | \membersection{wxCmdLineParser::Found}\label{wxcmdlineparserfoundswitch} |
481 | ||
482 | \constfunc{bool}{Found}{\param{const wxString\& }{name}} | |
483 | ||
cc81d32f | 484 | Returns true if the given switch was found, false otherwise. |
f6bcfd97 | 485 | |
ff1ce997 | 486 | |
f6bcfd97 BP |
487 | \membersection{wxCmdLineParser::Found}\label{wxcmdlineparserfoundstringoption} |
488 | ||
489 | \constfunc{bool}{Found}{\param{const wxString\& }{name}, \param{wxString* }{value}} | |
490 | ||
cc81d32f | 491 | Returns true if an option taking a string value was found and stores the |
f6bcfd97 BP |
492 | value in the provided pointer (which should not be NULL). |
493 | ||
ff1ce997 | 494 | |
f6bcfd97 BP |
495 | \membersection{wxCmdLineParser::Found}\label{wxcmdlineparserfoundintoption} |
496 | ||
497 | \constfunc{bool}{Found}{\param{const wxString\& }{name}, \param{long* }{value}} | |
498 | ||
cc81d32f | 499 | Returns true if an option taking an integer value was found and stores |
f6bcfd97 BP |
500 | the value in the provided pointer (which should not be NULL). |
501 | ||
ff1ce997 | 502 | |
f6bcfd97 BP |
503 | \membersection{wxCmdLineParser::Found}\label{wxcmdlineparserfounddateoption} |
504 | ||
505 | \constfunc{bool}{Found}{\param{const wxString\& }{name}, \param{wxDateTime* }{value}} | |
506 | ||
cc81d32f | 507 | Returns true if an option taking a date value was found and stores the |
f6bcfd97 BP |
508 | value in the provided pointer (which should not be NULL). |
509 | ||
ff1ce997 | 510 | |
f6bcfd97 BP |
511 | \membersection{wxCmdLineParser::GetParamCount}\label{wxcmdlineparsergetparamcount} |
512 | ||
513 | \constfunc{size\_t}{GetParamCount}{\void} | |
514 | ||
515 | Returns the number of parameters found. This function makes sense mostly if you | |
516 | had used {\tt wxCMD\_LINE\_PARAM\_MULTIPLE} flag. | |
517 | ||
ff1ce997 | 518 | |
f6bcfd97 BP |
519 | \membersection{wxCmdLineParser::GetParam}\label{wxcmdlineparsergetparam} |
520 | ||
521 | \constfunc{wxString}{GetParam}{\param{size\_t }{n = 0u}} | |
522 | ||
523 | Returns the value of Nth parameter (as string only for now). | |
524 | ||
525 | \wxheading{See also} | |
526 | ||
527 | \helpref{GetParamCount}{wxcmdlineparsergetparamcount} | |
528 |