| Index: tools/flags/SkCommandLineFlags.h
|
| diff --git a/tools/flags/SkCommandLineFlags.h b/tools/flags/SkCommandLineFlags.h
|
| index 08fd3a2ba5974447489db7f5e18712bbde71e7cc..d0e74502d8f98ce5eca8e474bb8db73dc3540878 100644
|
| --- a/tools/flags/SkCommandLineFlags.h
|
| +++ b/tools/flags/SkCommandLineFlags.h
|
| @@ -132,6 +132,10 @@ public:
|
| fStrings.push_back().set(string);
|
| }
|
|
|
| + void append(const char* string, size_t length) {
|
| + fStrings.push_back().set(string, length);
|
| + }
|
| +
|
| SkTArray<SkString> fStrings;
|
|
|
| friend class SkFlagInfo;
|
| @@ -216,7 +220,20 @@ public:
|
| kDouble_FlagType,
|
| };
|
|
|
| - // Create flags of the desired type, and append to the list.
|
| + /**
|
| + * Each Create<Type>Flag function creates an SkFlagInfo of the specified type. The SkFlagInfo
|
| + * object is appended to a list, which is deleted when SkCommandLineFlags::Parse is called.
|
| + * Therefore, each call should be made before the call to ::Parse. They are not intended
|
| + * to be called directly. Instead, use the macros described above.
|
| + * @param name Long version (at least 2 characters) of the name of the flag. This name can
|
| + * be referenced on the command line as "--name" to set the value of this flag.
|
| + * @param shortName Short version (one character) of the name of the flag. This name can
|
| + * be referenced on the command line as "-shortName" to set the value of this flag.
|
| + * @param p<Type> Pointer to a global variable which holds the value set by SkCommandLineFlags.
|
| + * @param defaultValue The default value of this flag. The variable pointed to by p<Type> will
|
| + * be set to this value initially. This is also displayed as part of the help output.
|
| + * @param helpString Explanation of what this flag changes in the program.
|
| + */
|
| static bool CreateBoolFlag(const char* name, const char* shortName, bool* pBool,
|
| bool defaultValue, const char* helpString) {
|
| SkFlagInfo* info = SkNEW_ARGS(SkFlagInfo, (name, shortName, kBool_FlagType, helpString));
|
| @@ -225,21 +242,19 @@ public:
|
| return true;
|
| }
|
|
|
| + /**
|
| + * See comments for CreateBoolFlag.
|
| + * @param pStrings Unlike the others, this is a pointer to an array of values.
|
| + * @param defaultValue Thise default will be parsed so that strings separated by spaces
|
| + * will be added to pStrings.
|
| + */
|
| static bool CreateStringFlag(const char* name, const char* shortName,
|
| SkCommandLineFlags::StringArray* pStrings,
|
| - const char* defaultValue, const char* helpString) {
|
| - SkFlagInfo* info = SkNEW_ARGS(SkFlagInfo, (name, shortName, kString_FlagType, helpString));
|
| - info->fDefaultString.set(defaultValue);
|
| -
|
| - info->fStrings = pStrings;
|
| - info->fStrings->reset();
|
| - // If default is "", leave the array empty.
|
| - if (info->fDefaultString.size() > 0) {
|
| - info->fStrings->append(defaultValue);
|
| - }
|
| - return true;
|
| - }
|
| + const char* defaultValue, const char* helpString);
|
|
|
| + /**
|
| + * See comments for CreateBoolFlag.
|
| + */
|
| static bool CreateIntFlag(const char* name, int32_t* pInt,
|
| int32_t defaultValue, const char* helpString) {
|
| SkFlagInfo* info = SkNEW_ARGS(SkFlagInfo, (name, NULL, kInt_FlagType, helpString));
|
| @@ -248,6 +263,9 @@ public:
|
| return true;
|
| }
|
|
|
| + /**
|
| + * See comments for CreateBoolFlag.
|
| + */
|
| static bool CreateDoubleFlag(const char* name, double* pDouble,
|
| double defaultValue, const char* helpString) {
|
| SkFlagInfo* info = SkNEW_ARGS(SkFlagInfo, (name, NULL, kDouble_FlagType, helpString));
|
| @@ -375,6 +393,16 @@ private:
|
| SkASSERT(NULL != name && strlen(name) > 1);
|
| SkASSERT(NULL == shortName || 1 == strlen(shortName));
|
| }
|
| +
|
| + /**
|
| + * Set a StringArray to hold the values stored in defaultStrings.
|
| + * @param array The StringArray to modify.
|
| + * @param defaultStrings Space separated list of strings that should be inserted into array
|
| + * individually.
|
| + */
|
| + static void SetDefaultStrings(SkCommandLineFlags::StringArray* array,
|
| + const char* defaultStrings);
|
| +
|
| // Name of the flag, without initial dashes
|
| SkString fName;
|
| SkString fShortName;
|
|
|