global results are now stored in state

This commit is contained in:
Linus Dierheimer
2021-04-16 20:22:38 +02:00
parent 86abc05cd4
commit 7b65316483
14 changed files with 255 additions and 299 deletions
+11 -21
View File
@@ -5,19 +5,9 @@
void ffPrintFont(FFinstance* instance)
{
FFstrbuf* plasma;
ffCalculatePlasma(instance, NULL, NULL, NULL, &plasma);
ffCalculatePlasmaAndGtk(instance);
FFstrbuf* gtk2;
ffCalculateGTK2(instance, NULL, NULL, &gtk2);
FFstrbuf* gtk3;
ffCalculateGTK3(instance, NULL, NULL, &gtk3);
FFstrbuf* gtk4;
ffCalculateGTK4(instance, NULL, NULL, &gtk4);
if(plasma->length == 0 && gtk2->length == 0 && gtk3->length == 0 && gtk4->length == 0)
if(instance->state.plasma.font.length == 0 && instance->state.gtk2.font.length == 0 && instance->state.gtk3.font.length == 0 && instance->state.gtk4.font.length == 0)
{
ffPrintError(instance, FF_FONT_MODULE_NAME, 0, &instance->config.fontKey, &instance->config.fontFormat, FF_FONT_NUM_FORMAT_ARGS, "No fonts found");
return;
@@ -25,25 +15,25 @@ void ffPrintFont(FFinstance* instance)
FF_STRBUF_CREATE(plasmaName);
double plasmaSize;
ffGetFont(plasma->chars, &plasmaName, &plasmaSize);
ffGetFont(instance->state.plasma.font.chars, &plasmaName, &plasmaSize);
FF_STRBUF_CREATE(plasmaPretty);
ffGetFontPretty(&plasmaPretty, &plasmaName, plasmaSize);
FF_STRBUF_CREATE(gtk2Name);
double gtk2Size;
ffGetFont(gtk2->chars, &gtk2Name, &gtk2Size);
ffGetFont(instance->state.gtk2.font.chars, &gtk2Name, &gtk2Size);
FF_STRBUF_CREATE(gtk2Pretty);
ffGetFontPretty(&gtk2Pretty, &gtk2Name, gtk2Size);
FF_STRBUF_CREATE(gtk3Name);
double gtk3Size;
ffGetFont(gtk3->chars, &gtk3Name, &gtk3Size);
ffGetFont(instance->state.gtk3.font.chars, &gtk3Name, &gtk3Size);
FF_STRBUF_CREATE(gtk3Pretty);
ffGetFontPretty(&gtk3Pretty, &gtk3Name, gtk3Size);
FF_STRBUF_CREATE(gtk4Name);
double gtk4Size;
ffGetFont(gtk4->chars, &gtk4Name, &gtk4Size);
ffGetFont(instance->state.gtk4.font.chars, &gtk4Name, &gtk4Size);
FF_STRBUF_CREATE(gtk4Pretty);
ffGetFontPretty(&gtk4Pretty, &gtk4Name, gtk4Size);
@@ -53,7 +43,7 @@ void ffPrintFont(FFinstance* instance)
if(instance->config.fontFormat.length == 0)
{
ffPrintLogoAndKey(instance, FF_FONT_MODULE_NAME, 0, &instance->config.fontKey);
if(plasma->length > 0)
if(instance->state.plasma.font.length > 0)
{
ffStrbufWriteTo(&plasmaPretty, stdout);
fputs(" [Plasma]", stdout);
@@ -66,19 +56,19 @@ void ffPrintFont(FFinstance* instance)
else
{
ffPrintFormatString(instance, FF_FONT_MODULE_NAME, 0, &instance->config.fontKey, &instance->config.fontFormat, NULL, FF_FONT_NUM_FORMAT_ARGS, (FFformatarg[]){
{FF_FORMAT_ARG_TYPE_STRBUF, plasma},
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.plasma.font},
{FF_FORMAT_ARG_TYPE_STRBUF, &plasmaName},
{FF_FORMAT_ARG_TYPE_DOUBLE, &plasmaSize},
{FF_FORMAT_ARG_TYPE_STRBUF, &plasmaPretty},
{FF_FORMAT_ARG_TYPE_STRBUF, gtk2},
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.gtk2.font},
{FF_FORMAT_ARG_TYPE_STRBUF, &gtk2Name},
{FF_FORMAT_ARG_TYPE_DOUBLE, &gtk2Size},
{FF_FORMAT_ARG_TYPE_STRBUF, &gtk2Pretty},
{FF_FORMAT_ARG_TYPE_STRBUF, gtk3},
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.gtk3.font},
{FF_FORMAT_ARG_TYPE_STRBUF, &gtk3Name},
{FF_FORMAT_ARG_TYPE_DOUBLE, &gtk3Size},
{FF_FORMAT_ARG_TYPE_STRBUF, &gtk3Pretty},
{FF_FORMAT_ARG_TYPE_STRBUF, gtk4},
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.gtk4.font},
{FF_FORMAT_ARG_TYPE_STRBUF, &gtk4Name},
{FF_FORMAT_ARG_TYPE_DOUBLE, &gtk4Size},
{FF_FORMAT_ARG_TYPE_STRBUF, &gtk4Pretty},
+9 -19
View File
@@ -5,34 +5,24 @@
void ffPrintIcons(FFinstance* instance)
{
FFstrbuf* plasma;
ffCalculatePlasma(instance, NULL, NULL, &plasma, NULL);
ffCalculatePlasmaAndGtk(instance);
FFstrbuf* gtk2;
ffCalculateGTK2(instance, NULL, &gtk2, NULL);
FFstrbuf* gtk3;
ffCalculateGTK3(instance, NULL, &gtk3, NULL);
FFstrbuf* gtk4;
ffCalculateGTK4(instance, NULL, &gtk4, NULL);
if(plasma->length == 0 && gtk2->length == 0 && gtk3->length == 0 && gtk4->length == 0)
if(instance->state.plasma.icons.length == 0 && instance->state.gtk2.icons.length == 0 && instance->state.gtk3.icons.length == 0 && instance->state.gtk4.icons.length == 0)
{
ffPrintError(instance, FF_ICONS_MODULE_NAME, 0, &instance->config.iconsKey, &instance->config.iconsFormat, FF_ICONS_NUM_FORMAT_ARGS, "No icons could be found");
return;
}
FF_STRBUF_CREATE(gtkPretty);
ffGetGtkPretty(&gtkPretty, gtk2, gtk3, gtk4);
ffGetGtkPretty(&gtkPretty, &instance->state.gtk2.icons, &instance->state.gtk3.icons, &instance->state.gtk4.icons);
if(instance->config.iconsFormat.length == 0)
{
ffPrintLogoAndKey(instance, FF_ICONS_MODULE_NAME, 0, &instance->config.iconsKey);
if(plasma->length > 0)
if(instance->state.plasma.icons.length > 0)
{
ffStrbufWriteTo(plasma, stdout);
ffStrbufWriteTo(&instance->state.plasma.icons, stdout);
fputs(" [Plasma]", stdout);
if(gtkPretty.length > 0)
@@ -44,10 +34,10 @@ void ffPrintIcons(FFinstance* instance)
else
{
ffPrintFormatString(instance, FF_ICONS_MODULE_NAME, 0, &instance->config.iconsKey, &instance->config.iconsFormat, NULL, FF_ICONS_NUM_FORMAT_ARGS, (FFformatarg[]){
{FF_FORMAT_ARG_TYPE_STRBUF, plasma},
{FF_FORMAT_ARG_TYPE_STRBUF, gtk2},
{FF_FORMAT_ARG_TYPE_STRBUF, gtk3},
{FF_FORMAT_ARG_TYPE_STRBUF, gtk4},
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.plasma.icons},
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.gtk2.icons},
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.gtk3.icons},
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.gtk4.icons},
{FF_FORMAT_ARG_TYPE_STRBUF, &gtkPretty}
});
}
+14 -12
View File
@@ -5,24 +5,26 @@
void ffPrintTerminal(FFinstance* instance)
{
FFstrbuf* exeName;
FFstrbuf* processName;
FFstrbuf* error;
ffCalculateTerminal(instance);
ffCalculateTerminal(instance, &exeName, &processName, &error);
if(error->length > 0)
if(instance->state.terminal.error.length > 0)
{
ffPrintError(instance, FF_TERMINAL_MODULE_NAME, 0, &instance->config.terminalKey, &instance->config.terminalFormat, FF_TERMINAL_NUM_FORMAT_ARGS, error->chars);
ffPrintError(instance, FF_TERMINAL_MODULE_NAME, 0, &instance->config.terminalKey, &instance->config.terminalFormat, FF_TERMINAL_NUM_FORMAT_ARGS, instance->state.terminal.error.chars);
return;
}
if(instance->state.terminal.exeName.length == 0 && instance->state.terminal.processName.length == 0)
{
ffPrintError(instance, FF_TERMINAL_MODULE_NAME, 0, &instance->config.terminalKey, &instance->config.terminalFormat, FF_TERMINAL_NUM_FORMAT_ARGS, "Terminal names not set");
return;
}
FFstrbuf* name;
if(ffStrbufStartsWith(exeName, processName))
name = exeName;
if(ffStrbufStartsWith(&instance->state.terminal.exeName, &instance->state.terminal.processName))
name = &instance->state.terminal.exeName;
else
name = processName;
name = &instance->state.terminal.processName;
if(instance->config.terminalFormat.length == 0)
{
@@ -32,8 +34,8 @@ void ffPrintTerminal(FFinstance* instance)
else
{
ffPrintFormatString(instance, FF_TERMINAL_MODULE_NAME, 0, &instance->config.terminalKey, &instance->config.terminalFormat, NULL, FF_TERMINAL_NUM_FORMAT_ARGS, (FFformatarg[]){
{FF_FORMAT_ARG_TYPE_STRBUF, exeName},
{FF_FORMAT_ARG_TYPE_STRBUF, processName},
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.terminal.exeName},
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.terminal.processName},
{FF_FORMAT_ARG_TYPE_STRBUF, name}
});
}
+5 -6
View File
@@ -68,19 +68,18 @@ static void printTTY(FFinstance* instance)
void ffPrintTerminalFont(FFinstance* instance)
{
FFstrbuf* terminalExeName;
ffCalculateTerminal(instance, &terminalExeName, NULL, NULL);
ffCalculateTerminal(instance);
if(terminalExeName->length == 0)
if(instance->state.terminal.exeName.length == 0)
{
ffPrintError(instance, FF_TERMFONT_MODULE_NAME, 0, &instance->config.termFontKey, &instance->config.termFontFormat, FF_TERMFONT_NUM_FORMAT_ARGS, "Terminal font needs successfull terminal detection");
return;
}
if(ffStrbufIgnCaseCompS(terminalExeName, "konsole") == 0)
if(ffStrbufIgnCaseCompS(&instance->state.terminal.exeName, "konsole") == 0)
printKonsole(instance);
else if(ffStrbufIgnCaseCompS(terminalExeName, "login") == 0)
else if(ffStrbufStartsWithIgnCaseS(&instance->state.terminal.exeName, "login") == 0)
printTTY(instance);
else
ffPrintError(instance, FF_TERMFONT_MODULE_NAME, 0, &instance->config.termFontKey, &instance->config.termFontFormat, FF_TERMFONT_NUM_FORMAT_ARGS, "Terminal Font", "Unknown terminal: %s", terminalExeName->chars);
ffPrintError(instance, FF_TERMFONT_MODULE_NAME, 0, &instance->config.termFontKey, &instance->config.termFontFormat, FF_TERMFONT_NUM_FORMAT_ARGS, "Terminal Font", "Unknown terminal: %s", instance->state.terminal.exeName.chars);
}
+18 -29
View File
@@ -5,65 +5,54 @@
void ffPrintTheme(FFinstance* instance)
{
FFstrbuf* plasmaTheme;
FFstrbuf* plasmaColor;
ffCalculatePlasma(instance, &plasmaTheme, &plasmaColor, NULL, NULL);
ffCalculatePlasmaAndGtk(instance);
FFstrbuf* gtk2;
ffCalculateGTK2(instance, &gtk2, NULL, NULL);
FFstrbuf* gtk3;
ffCalculateGTK3(instance, &gtk3, NULL, NULL);
FFstrbuf* gtk4;
ffCalculateGTK4(instance, &gtk4, NULL, NULL);
if(plasmaTheme->length == 0 && plasmaColor->length == 0 && gtk2->length == 0 && gtk3->length == 0 && gtk4->length == 0)
if(instance->state.plasma.widgetStyle.length == 0 && instance->state.plasma.colorScheme.length == 0 && instance->state.gtk2.theme.length == 0 && instance->state.gtk3.theme.length == 0 && instance->state.gtk4.theme.length == 0)
{
ffPrintError(instance, FF_THEME_MODULE_NAME, 0, &instance->config.themeKey, &instance->config.themeFormat, FF_THEME_NUM_FORMAT_ARGS, "No themes found");
return;
}
FF_STRBUF_CREATE(plasmaColorPretty);
if(ffStrbufStartsWithIgnCase(plasmaColor, plasmaTheme))
ffStrbufAppendNS(&plasmaColorPretty, plasmaColor->length - plasmaTheme->length, &plasmaColor->chars[plasmaTheme->length]);
if(ffStrbufStartsWithIgnCase(&instance->state.plasma.colorScheme, &instance->state.plasma.widgetStyle))
ffStrbufAppendNS(&plasmaColorPretty, instance->state.plasma.colorScheme.length - instance->state.plasma.widgetStyle.length, &instance->state.plasma.colorScheme.chars[instance->state.plasma.widgetStyle.length]);
else
ffStrbufAppend(&plasmaColorPretty, plasmaColor);
ffStrbufAppend(&plasmaColorPretty, &instance->state.plasma.colorScheme);
ffStrbufTrim(&plasmaColorPretty, ' ');
FF_STRBUF_CREATE(gtkPretty);
ffGetGtkPretty(&gtkPretty, gtk2, gtk3, gtk4);
ffGetGtkPretty(&gtkPretty, &instance->state.gtk2.theme, &instance->state.gtk3.theme, &instance->state.gtk4.theme);
if(instance->config.themeFormat.length == 0)
{
ffPrintLogoAndKey(instance, FF_THEME_MODULE_NAME, 0, &instance->config.themeKey);
if(plasmaTheme->length > 0)
if(instance->state.plasma.widgetStyle.length > 0)
{
ffStrbufWriteTo(plasmaTheme, stdout);
ffStrbufWriteTo(&instance->state.plasma.widgetStyle, stdout);
if(plasmaColor->length > 0)
if(instance->state.plasma.colorScheme.length > 0)
{
fputs(" (", stdout);
if(plasmaColorPretty.length > 0)
ffStrbufWriteTo(&plasmaColorPretty, stdout);
else
ffStrbufWriteTo(plasmaColor, stdout);
ffStrbufWriteTo(&instance->state.plasma.colorScheme, stdout);
putchar(')');
}
}
else if(plasmaColor->length > 0)
else if(instance->state.plasma.colorScheme.length > 0)
{
if(plasmaColorPretty.length > 0)
ffStrbufWriteTo(&plasmaColorPretty, stdout);
else
ffStrbufWriteTo(plasmaColor, stdout);
ffStrbufWriteTo(&instance->state.plasma.colorScheme, stdout);
}
if(plasmaTheme->length > 0 || plasmaColor->length > 0)
if(instance->state.plasma.widgetStyle.length > 0 || instance->state.plasma.colorScheme.length > 0)
{
fputs(" [Plasma]", stdout);
@@ -76,12 +65,12 @@ void ffPrintTheme(FFinstance* instance)
else
{
ffPrintFormatString(instance, FF_THEME_MODULE_NAME, 0, &instance->config.themeKey, &instance->config.themeFormat, NULL, FF_THEME_NUM_FORMAT_ARGS, (FFformatarg[]){
{FF_FORMAT_ARG_TYPE_STRBUF, plasmaTheme},
{FF_FORMAT_ARG_TYPE_STRBUF, plasmaColor},
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.plasma.widgetStyle},
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.plasma.colorScheme},
{FF_FORMAT_ARG_TYPE_STRBUF, &plasmaColorPretty},
{FF_FORMAT_ARG_TYPE_STRBUF, gtk2},
{FF_FORMAT_ARG_TYPE_STRBUF, gtk3},
{FF_FORMAT_ARG_TYPE_STRBUF, gtk4},
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.gtk2.theme},
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.gtk3.theme},
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.gtk4.theme},
{FF_FORMAT_ARG_TYPE_STRBUF, &gtkPretty}
});
}
+15 -10
View File
@@ -5,28 +5,33 @@
void ffPrintWM(FFinstance* instance)
{
FFstrbuf* prettyName;
FFstrbuf* processName;
FFstrbuf* error;
ffCalculateWM(instance);
ffCalculateWM(instance, &prettyName, &processName, &error);
if(error->length > 0)
if(instance->state.wm.error.length > 0)
{
ffPrintError(instance, FF_WM_MODULE_NAME, 0, &instance->config.wmKey, &instance->config.wmFormat, FF_WM_NUM_FORMAT_ARGS, error->chars);
ffPrintError(instance, FF_WM_MODULE_NAME, 0, &instance->config.wmKey, &instance->config.wmFormat, FF_WM_NUM_FORMAT_ARGS, instance->state.wm.error.chars);
return;
}
if(instance->state.wm.prettyName.length == 0 && instance->state.wm.processName.length == 0)
{
ffPrintError(instance, FF_WM_MODULE_NAME, 0, &instance->config.wmKey, &instance->config.wmFormat, FF_WM_NUM_FORMAT_ARGS, "No wm name provided");
return;
}
if(instance->config.wmFormat.length == 0)
{
ffPrintLogoAndKey(instance, "WM", 0, &instance->config.wmKey);
ffStrbufPutTo(prettyName, stdout);
if(instance->state.wm.prettyName.length > 0)
ffStrbufPutTo(&instance->state.wm.prettyName, stdout);
else
ffStrbufPutTo(&instance->state.wm.processName, stdout);
}
else
{
ffPrintFormatString(instance, FF_WM_MODULE_NAME, 0, &instance->config.wmKey, &instance->config.wmFormat, NULL, FF_WM_NUM_FORMAT_ARGS, (FFformatarg[]){
{FF_FORMAT_ARG_TYPE_STRBUF, processName},
{FF_FORMAT_ARG_TYPE_STRBUF, prettyName}
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.wm.processName},
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.wm.prettyName}
});
}
}
+4 -5
View File
@@ -35,17 +35,16 @@ static void printKWin(FFinstance* instance)
void ffPrintWMTheme(FFinstance* instance)
{
FFstrbuf* wmName;
ffCalculateWM(instance, &wmName, NULL, NULL);
ffCalculateWM(instance);
if(wmName->length == 0)
if(instance->state.wm.prettyName.length == 0)
{
ffPrintError(instance, FF_WMTHEME_MODULE_NAME, 0, &instance->config.wmThemeKey, &instance->config.wmThemeFormat, FF_WMTHEME_NUM_FORMAT_ARGS, "WM Theme needs sucessfull WM detection");
return;
}
if(ffStrbufIgnCaseCompS(wmName, "KWin") == 0)
if(ffStrbufIgnCaseCompS(&instance->state.wm.prettyName, "KWin") == 0)
printKWin(instance);
else
ffPrintError(instance, FF_WMTHEME_MODULE_NAME, 0, &instance->config.wmThemeKey, &instance->config.wmThemeFormat, FF_WMTHEME_NUM_FORMAT_ARGS, "Unknown WM: %s", wmName->chars);
ffPrintError(instance, FF_WMTHEME_MODULE_NAME, 0, &instance->config.wmThemeKey, &instance->config.wmThemeFormat, FF_WMTHEME_NUM_FORMAT_ARGS, "Unknown WM: %s", instance->state.wm.prettyName.chars);
}