Global: add option --<module>-key-icon

This commit is contained in:
李通洲
2024-07-24 14:05:46 +08:00
parent 8fa4d7ae6e
commit bee7c62000
5 changed files with 191 additions and 77 deletions
+20 -11
View File
@@ -50,20 +50,29 @@ bool ffOptionParseModuleArgs(const char* argumentKey, const char* subKey, const
ffOptionParseColor(value, &result->outputColor);
return true;
}
else if(ffStrEqualsIgnCase(subKey, "key-color"))
else if(ffStrStartsWithIgnCase(subKey, "key-"))
{
if(value == NULL)
const char* subKey2 = subKey + strlen("key-");
if(ffStrEqualsIgnCase(subKey2, "color"))
{
fprintf(stderr, "Error: usage: %s <str>\n", argumentKey);
exit(477);
if(value == NULL)
{
fprintf(stderr, "Error: usage: %s <str>\n", argumentKey);
exit(477);
}
ffOptionParseColor(value, &result->keyColor);
return true;
}
else if(ffStrEqualsIgnCase(subKey2, "width"))
{
result->keyWidth = ffOptionParseUInt32(argumentKey, value);
return true;
}
else if(ffStrEqualsIgnCase(subKey2, "icon"))
{
ffOptionParseString(argumentKey, value, &result->keyIcon);
return true;
}
ffOptionParseColor(value, &result->keyColor);
return true;
}
else if(ffStrEqualsIgnCase(subKey, "key-width"))
{
result->keyWidth = ffOptionParseUInt32(argumentKey, value);
return true;
}
return false;
}
+3 -3
View File
@@ -57,9 +57,9 @@ typedef struct FFModuleArgs
{
FFstrbuf key;
FFstrbuf keyColor;
FFstrbuf keyIcon;
FFstrbuf outputFormat;
FFstrbuf outputColor;
FFstrbuf icon;
uint32_t keyWidth;
} FFModuleArgs;
@@ -87,9 +87,9 @@ static inline void ffOptionInitModuleArg(FFModuleArgs* args, const char* icon)
{
ffStrbufInit(&args->key);
ffStrbufInit(&args->keyColor);
ffStrbufInitStatic(&args->keyIcon, icon);
ffStrbufInit(&args->outputFormat);
ffStrbufInit(&args->outputColor);
ffStrbufInitStatic(&args->icon, icon);
args->keyWidth = 0;
}
@@ -99,5 +99,5 @@ static inline void ffOptionDestroyModuleArg(FFModuleArgs* args)
ffStrbufDestroy(&args->keyColor);
ffStrbufDestroy(&args->outputFormat);
ffStrbufDestroy(&args->outputColor);
ffStrbufDestroy(&args->icon);
ffStrbufDestroy(&args->keyIcon);
}
+3 -3
View File
@@ -26,9 +26,9 @@ void ffPrintLogoAndKey(const char* moduleName, uint8_t moduleIndex, const FFModu
}
bool hasIcon = false;
if (instance.config.display.keyType & FF_MODULE_KEY_TYPE_ICON && moduleArgs && moduleArgs->icon.length > 0)
if (instance.config.display.keyType & FF_MODULE_KEY_TYPE_ICON && moduleArgs && moduleArgs->keyIcon.length > 0)
{
ffStrbufWriteTo(&moduleArgs->icon, stdout);
ffStrbufWriteTo(&moduleArgs->keyIcon, stdout);
hasIcon = true;
}
@@ -50,7 +50,7 @@ void ffPrintLogoAndKey(const char* moduleName, uint8_t moduleIndex, const FFModu
FF_STRBUF_AUTO_DESTROY key = ffStrbufCreate();
FF_PARSE_FORMAT_STRING_CHECKED(&key, &moduleArgs->key, 2, ((FFformatarg[]){
{FF_FORMAT_ARG_TYPE_UINT8, &moduleIndex, "index"},
{FF_FORMAT_ARG_TYPE_STRBUF, &moduleArgs->icon, "icon"},
{FF_FORMAT_ARG_TYPE_STRBUF, &moduleArgs->keyIcon, "icon"},
}));
ffStrbufWriteTo(&key, stdout);
}
+8
View File
@@ -1651,6 +1651,14 @@
},
"pseudo": true
},
{
"long": "<module>-key-icon",
"desc": "Set the icon to be displayed by \"--key-type icon\"",
"arg": {
"type": "string"
},
"pseudo": true
},
{
"long": "<module>-output-color",
"desc": "Override the global \"--color-output\" option for each specific module",