1 /*
2 * This file is part of gtkD.
3 *
4 * gtkD is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License
6 * as published by the Free Software Foundation; either version 3
7 * of the License, or (at your option) any later version, with
8 * some exceptions, please read the COPYING file.
9 *
10 * gtkD is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public License
16 * along with gtkD; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA
18 */19 20 // generated automatically - do not change21 // find conversion definition on APILookup.txt22 // implement new conversion functionalities on the wrap.utils pakage23 24 /*
25 * Conversion parameters:
26 * inFile = glib-Commandline-option-parser.html
27 * outPack = glib
28 * outFile = OptionContext
29 * strct = GOptionContext
30 * realStrct=
31 * ctorStrct=
32 * clss = OptionContext
33 * interf =
34 * class Code: Yes
35 * interface Code: No
36 * template for:
37 * extend =
38 * implements:
39 * prefixes:
40 * - g_option_context_
41 * omit structs:
42 * omit prefixes:
43 * - g_option_group_
44 * omit code:
45 * - g_option_context_parse
46 * omit signals:
47 * imports:
48 * - glib.ErrorG
49 * - glib.GException
50 * - glib.OptionGroup
51 * - glib.Str
52 * structWrap:
53 * - GOptionGroup* -> OptionGroup
54 * module aliases:
55 * local aliases:
56 * overrides:
57 */58 59 moduleglib.OptionContext;
60 61 publicimportgtkc.glibtypes;
62 63 privateimportgtkc.glib;
64 privateimportglib.ConstructionException;
65 66 67 privateimportglib.ErrorG;
68 privateimportglib.GException;
69 privateimportglib.OptionGroup;
70 privateimportglib.Str;
71 72 73 74 75 /**
76 * Description
77 * The GOption commandline parser is intended to be a simpler replacement
78 * for the popt library. It supports short and long commandline options,
79 * as shown in the following example:
80 * testtreemodel -r 1 --max-size 20 --rand --display=:1.0 -vb -- file1 file2
81 * The example demonstrates a number of features of the GOption
82 * commandline parser
83 * Options can be single letters, prefixed by a single dash. Multiple
84 * short options can be grouped behind a single dash.
85 * Long options are prefixed by two consecutive dashes.
86 * Options can have an extra argument, which can be a number, a string or
87 * a filename. For long options, the extra argument can be appended with
88 * an equals sign after the option name, which is useful if the extra
89 * argument starts with a dash, which would otherwise cause it to be
90 * interpreted as another option.
91 * Non-option arguments are returned to the application as rest arguments.
92 * An argument consisting solely of two dashes turns off further parsing,
93 * any remaining arguments (even those starting with a dash) are returned
94 * to the application as rest arguments.
95 * Another important feature of GOption is that it can automatically
96 * generate nicely formatted help output. Unless it is explicitly turned
97 * off with g_option_context_set_help_enabled(), GOption will recognize
98 * the --help, -?,
99 * --help-all and
100 * --help-groupname options
101 * (where groupname is the name of a
102 * GOptionGroup) and write a text similar to the one shown in the
103 * following example to stdout.
104 * $(DDOC_COMMENT example)
105 * GOption groups options in GOptionGroups, which makes it easy to
106 * incorporate options from multiple sources. The intended use for this is
107 * to let applications collect option groups from the libraries it uses,
108 * add them to their GOptionContext, and parse all options by a single call
109 * to g_option_context_parse(). See gtk_get_option_group() for an example.
110 * If an option is declared to be of type string or filename, GOption takes
111 * care of converting it to the right encoding; strings are returned in
112 * UTF-8, filenames are returned in the GLib filename encoding. Note that
113 * this only works if setlocale() has been called before
114 * g_option_context_parse().
115 * Here is a complete example of setting up GOption to parse the example
116 * commandline above and produce the example help output.
117 * $(DDOC_COMMENT example)
118 */119 publicclassOptionContext120 {
121 122 /** the main Gtk struct */123 protectedGOptionContext* gOptionContext;
124 125 126 publicGOptionContext* getOptionContextStruct()
127 {
128 returngOptionContext;
129 }
130 131 132 /** the main Gtk struct as a void* */133 protectedvoid* getStruct()
134 {
135 returncast(void*)gOptionContext;
136 }
137 138 /**
139 * Sets our main struct and passes it to the parent class
140 */141 publicthis (GOptionContext* gOptionContext)
142 {
143 this.gOptionContext = gOptionContext;
144 }
145 146 /**
147 * Parses the command line arguments, recognizing options
148 * which have been added to context. A side-effect of
149 * calling this function is that g_set_prgname() will be
150 * called.
151 * If the parsing is successful, any parsed arguments are
152 * removed from the array and argc and argv are updated
153 * accordingly. A '--' option is stripped from argv
154 * unless there are unparsed options before and after it,
155 * or some of the options after it start with '-'. In case
156 * of an error, argc and argv are left unmodified.
157 * If automatic --help support is enabled
158 * (see g_option_context_set_help_enabled()), and the
159 * argv array contains one of the recognized help options,
160 * this function will produce help output to stdout and
161 * call exit (0).
162 * Note that function depends on the
163 * current locale for
164 * automatic character set conversion of string and filename
165 * arguments.
166 * Since 2.6
167 * Params:
168 * argc = a pointer to the number of command line arguments
169 * argv = a pointer to the array of command line arguments
170 * Returns: TRUE if the parsing was successful, FALSE if an error occurred
171 * Throws: GException on failure.
172 */173 publicintparse(outintargc, outstring[] argv)
174 {
175 // gboolean g_option_context_parse (GOptionContext *context, gint *argc, gchar ***argv, GError **error);176 GError* err = null;
177 char** arg = null;
178 179 autop = g_option_context_parse(gOptionContext, &argc, &arg, &err);
180 181 if (err !isnull)
182 {
183 thrownewGException( newErrorG(err) );
184 }
185 186 argv = Str.toStringArray(arg);
187 returnp;
188 }
189 190 /**
191 */192 193 /**
194 * Creates a new option context.
195 * The parameter_string can serve multiple purposes. It can be used
196 * to add descriptions for "rest" arguments, which are not parsed by
197 * the GOptionContext, typically something like "FILES" or
198 * "FILE1 FILE2...". If you are using G_OPTION_REMAINING for
199 * collecting "rest" arguments, GLib handles this automatically by
200 * using the arg_description of the corresponding GOptionEntry in
201 * the usage summary.
202 * Another usage is to give a short summary of the program
203 * functionality, like " - frob the strings", which will be displayed
204 * in the same line as the usage. For a longer description of the
205 * program functionality that should be displayed as a paragraph
206 * below the usage line, use g_option_context_set_summary().
207 * Note that the parameter_string is translated using the
208 * function set with g_option_context_set_translate_func(), so
209 * it should normally be passed untranslated.
210 * Since 2.6
211 * Params:
212 * parameterString = a string which is displayed in
213 * the first line of --help output, after the
214 * usage summary
215 * programname [OPTION...]
216 * Throws: ConstructionException GTK+ fails to create the object.
217 */218 publicthis (stringparameterString)
219 {
220 // GOptionContext * g_option_context_new (const gchar *parameter_string);221 autop = g_option_context_new(Str.toStringz(parameterString));
222 if(pisnull)
223 {
224 thrownewConstructionException("null returned by g_option_context_new(Str.toStringz(parameterString))");
225 }
226 this(cast(GOptionContext*) p);
227 }
228 229 /**
230 * Adds a string to be displayed in --help output
231 * before the list of options. This is typically a summary of the
232 * program functionality.
233 * Note that the summary is translated (see
234 * g_option_context_set_translate_func() and
235 * g_option_context_set_translation_domain()).
236 * Since 2.12
237 * Params:
238 * summary = a string to be shown in --help output
239 * before the list of options, or NULL
240 */241 publicvoidsetSummary(stringsummary)
242 {
243 // void g_option_context_set_summary (GOptionContext *context, const gchar *summary);244 g_option_context_set_summary(gOptionContext, Str.toStringz(summary));
245 }
246 247 /**
248 * Returns the summary. See g_option_context_set_summary().
249 * Since 2.12
250 * Returns: the summary
251 */252 publicstringgetSummary()
253 {
254 // const gchar * g_option_context_get_summary (GOptionContext *context);255 returnStr.toString(g_option_context_get_summary(gOptionContext));
256 }
257 258 /**
259 * Adds a string to be displayed in --help output
260 * after the list of options. This text often includes a bug reporting
261 * address.
262 * Note that the summary is translated (see
263 * g_option_context_set_translate_func()).
264 * Since 2.12
265 * Params:
266 * description = a string to be shown in --help output
267 * after the list of options, or NULL
268 */269 publicvoidsetDescription(stringdescription)
270 {
271 // void g_option_context_set_description (GOptionContext *context, const gchar *description);272 g_option_context_set_description(gOptionContext, Str.toStringz(description));
273 }
274 275 /**
276 * Returns the description. See g_option_context_set_description().
277 * Since 2.12
278 * Returns: the description
279 */280 publicstringgetDescription()
281 {
282 // const gchar * g_option_context_get_description (GOptionContext *context);283 returnStr.toString(g_option_context_get_description(gOptionContext));
284 }
285 286 /**
287 * Sets the function which is used to translate the contexts
288 * user-visible strings, for --help output.
289 * If func is NULL, strings are not translated.
290 * Note that option groups have their own translation functions,
291 * this function only affects the parameter_string (see g_option_context_new()),
292 * the summary (see g_option_context_set_summary()) and the description
293 * (see g_option_context_set_description()).
294 * If you are using gettext(), you only need to set the translation
295 * domain, see g_option_context_set_translation_domain().
296 * Since 2.12
297 * Params:
298 * func = the GTranslateFunc, or NULL
299 * data = user data to pass to func, or NULL
300 * destroyNotify = a function which gets called to free data, or NULL
301 */302 publicvoidsetTranslateFunc(GTranslateFuncfunc, void* data, GDestroyNotifydestroyNotify)
303 {
304 // void g_option_context_set_translate_func (GOptionContext *context, GTranslateFunc func, gpointer data, GDestroyNotify destroy_notify);305 g_option_context_set_translate_func(gOptionContext, func, data, destroyNotify);
306 }
307 308 /**
309 * A convenience function to use gettext() for translating
310 * user-visible strings.
311 * Since 2.12
312 * Params:
313 * domain = the domain to use
314 */315 publicvoidsetTranslationDomain(stringdomain)
316 {
317 // void g_option_context_set_translation_domain (GOptionContext *context, const gchar *domain);318 g_option_context_set_translation_domain(gOptionContext, Str.toStringz(domain));
319 }
320 321 /**
322 * Frees context and all the groups which have been
323 * added to it.
324 * Please note that parsed arguments need to be freed separately (see
325 * GOptionEntry).
326 * Since 2.6
327 */328 publicvoidfree()
329 {
330 // void g_option_context_free (GOptionContext *context);331 g_option_context_free(gOptionContext);
332 }
333 334 /**
335 * Enables or disables automatic generation of --help
336 * output. By default, g_option_context_parse() recognizes
337 * --help, -h,
338 * -?, --help-all
339 * and --help-groupname and creates
340 * suitable output to stdout.
341 * Since 2.6
342 * Params:
343 * helpEnabled = TRUE to enable --help, FALSE to disable it
344 */345 publicvoidsetHelpEnabled(inthelpEnabled)
346 {
347 // void g_option_context_set_help_enabled (GOptionContext *context, gboolean help_enabled);348 g_option_context_set_help_enabled(gOptionContext, helpEnabled);
349 }
350 351 /**
352 * Returns whether automatic --help generation
353 * is turned on for context. See g_option_context_set_help_enabled().
354 * Since 2.6
355 * Returns: TRUE if automatic help generation is turned on.
356 */357 publicintgetHelpEnabled()
358 {
359 // gboolean g_option_context_get_help_enabled (GOptionContext *context);360 returng_option_context_get_help_enabled(gOptionContext);
361 }
362 363 /**
364 * Sets whether to ignore unknown options or not. If an argument is
365 * ignored, it is left in the argv array after parsing. By default,
366 * g_option_context_parse() treats unknown options as error.
367 * This setting does not affect non-option arguments (i.e. arguments
368 * which don't start with a dash). But note that GOption cannot reliably
369 * determine whether a non-option belongs to a preceding unknown option.
370 * Since 2.6
371 * Params:
372 * ignoreUnknown = TRUE to ignore unknown options, FALSE to produce
373 * an error when unknown options are met
374 */375 publicvoidsetIgnoreUnknownOptions(intignoreUnknown)
376 {
377 // void g_option_context_set_ignore_unknown_options (GOptionContext *context, gboolean ignore_unknown);378 g_option_context_set_ignore_unknown_options(gOptionContext, ignoreUnknown);
379 }
380 381 /**
382 * Returns whether unknown options are ignored or not. See
383 * g_option_context_set_ignore_unknown_options().
384 * Since 2.6
385 * Returns: TRUE if unknown options are ignored.
386 */387 publicintgetIgnoreUnknownOptions()
388 {
389 // gboolean g_option_context_get_ignore_unknown_options (GOptionContext *context);390 returng_option_context_get_ignore_unknown_options(gOptionContext);
391 }
392 393 /**
394 * Returns a formatted, translated help text for the given context.
395 * To obtain the text produced by --help, call
396 * g_option_context_get_help (context, TRUE, NULL).
397 * To obtain the text produced by --help-all, call
398 * g_option_context_get_help (context, FALSE, NULL).
399 * To obtain the help text for an option group, call
400 * g_option_context_get_help (context, FALSE, group).
401 * Since 2.14
402 * Params:
403 * mainHelp = if TRUE, only include the main group
404 * group = the GOptionGroup to create help for, or NULL
405 * Returns: A newly allocated string containing the help text
406 */407 publicstringgetHelp(intmainHelp, OptionGroupgroup)
408 {
409 // gchar * g_option_context_get_help (GOptionContext *context, gboolean main_help, GOptionGroup *group);410 returnStr.toString(g_option_context_get_help(gOptionContext, mainHelp, (groupisnull) ? null : group.getOptionGroupStruct()));
411 }
412 413 /**
414 * A convenience function which creates a main group if it doesn't
415 * exist, adds the entries to it and sets the translation domain.
416 * Since 2.6
417 * Params:
418 * entries = a NULL-terminated array of GOptionEntrys
419 * translationDomain = a translation domain to use for translating
420 * the --help output for the options in entries
421 * with gettext(), or NULL
422 */423 publicvoidaddMainEntries(GOptionEntry* entries, stringtranslationDomain)
424 {
425 // void g_option_context_add_main_entries (GOptionContext *context, const GOptionEntry *entries, const gchar *translation_domain);426 g_option_context_add_main_entries(gOptionContext, entries, Str.toStringz(translationDomain));
427 }
428 429 /**
430 * Adds a GOptionGroup to the context, so that parsing with context
431 * will recognize the options in the group. Note that the group will
432 * be freed together with the context when g_option_context_free() is
433 * called, so you must not free the group yourself after adding it
434 * to a context.
435 * Since 2.6
436 * Params:
437 * group = the group to add
438 */439 publicvoidaddGroup(OptionGroupgroup)
440 {
441 // void g_option_context_add_group (GOptionContext *context, GOptionGroup *group);442 g_option_context_add_group(gOptionContext, (groupisnull) ? null : group.getOptionGroupStruct());
443 }
444 445 /**
446 * Sets a GOptionGroup as main group of the context.
447 * This has the same effect as calling g_option_context_add_group(),
448 * the only difference is that the options in the main group are
449 * treated differently when generating --help output.
450 * Since 2.6
451 * Params:
452 * group = the group to set as main group
453 */454 publicvoidsetMainGroup(OptionGroupgroup)
455 {
456 // void g_option_context_set_main_group (GOptionContext *context, GOptionGroup *group);457 g_option_context_set_main_group(gOptionContext, (groupisnull) ? null : group.getOptionGroupStruct());
458 }
459 460 /**
461 * Returns a pointer to the main group of context.
462 * Since 2.6
463 * Returns: the main group of context, or NULL if context doesn't have a main group. Note that group belongs to context and should not be modified or freed.
464 */465 publicOptionGroupgetMainGroup()
466 {
467 // GOptionGroup * g_option_context_get_main_group (GOptionContext *context);468 autop = g_option_context_get_main_group(gOptionContext);
469 470 if(pisnull)
471 {
472 returnnull;
473 }
474 475 returnnewOptionGroup(cast(GOptionGroup*) p);
476 }
477 }