00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00031
00032 #pragma once
00033
00034 #include "../api_core.h"
00035 #include "../Text/string_types.h"
00036 #include <vector>
00037
00038 class CL_CommandLine_Generic;
00039
00077 class CL_API_CORE CL_CommandLine
00078 {
00081
00082 public:
00083 CL_CommandLine();
00084
00085 ~CL_CommandLine();
00086
00087
00091
00092 public:
00093 enum
00094 {
00095 REST_ARG = -2
00096 };
00097
00099 int get_key();
00100
00102 CL_String8 get_argument();
00103
00104
00108
00109 public:
00111 void set_help_indent(int i);
00112
00116 void add_usage(const CL_String8& usage);
00117
00120 void add_doc(const CL_String8& doc);
00121
00124 void add_group(const CL_String8& grouptopic);
00125
00140 void add_option(
00141 int key,
00142 const CL_String8& long_option,
00143 const CL_String8& argument,
00144 const CL_String8& help,
00145 bool visible = true);
00146
00150 void parse_args(int argc, char** argv);
00151
00153 void print_help();
00154
00156 bool next();
00157
00158
00162
00163 private:
00164 CL_CommandLine_Generic* impl;
00166 };
00167
00168