SYNERGY-1006 - Added template mode for icons on Big Sur and higher

This commit is contained in:
Igor Sikachyna 2021-06-10 14:15:07 +03:00
parent 974652494a
commit 534fcfa2f0
3 changed files with 28 additions and 13 deletions

View File

@ -343,10 +343,20 @@ void MainWindow::setIcon(qSynergyState state) const
QIcon icon;
#ifdef Q_OS_MAC
if (isOSXUseDarkIcons())
icon.addFile(synergyDarkIconFiles[state]);
else
icon.addFile(synergyLightIconFiles[state]);
IconsTheme theme = getOSXIconsTheme();
switch(getOSXIconsTheme()) {
case IconsTheme::ICONS_DARK:
icon.addFile(synergyDarkIconFiles[state]);
break;
case IconsTheme::ICONS_LIGHT:
icon.addFile(synergyLightIconFiles[state]);
break;
case IconsTheme::ICONS_TEMPLATE:
default:
icon.addFile(synergyDarkIconFiles[state]);
icon.setIsMask(true);
break;
}
#else
icon.addFile(synergyDefaultIconFiles[state]);
#endif

View File

@ -19,7 +19,13 @@
#define OSXHELPERS__H
enum IconsTheme {
ICONS_DARK,
ICONS_LIGHT,
ICONS_TEMPLATE
};
bool isOSXInterfaceStyleDark();
bool isOSXUseDarkIcons();
IconsTheme getOSXIconsTheme();
#endif

View File

@ -30,13 +30,12 @@ isOSXInterfaceStyleDark()
return (style && [style isKindOfClass:[NSString class]] && NSOrderedSame == [style caseInsensitiveCompare:@"dark"]);
}
bool
isOSXUseDarkIcons()
IconsTheme
getOSXIconsTheme()
{
if (@available(macOS 11, *)) {
return true;
}
else {
return isOSXInterfaceStyleDark();
}
if (@available(macOS 11, *))
return IconsTheme::ICONS_TEMPLATE;
else if(isOSXInterfaceStyleDark())
return IconsTheme::ICONS_DARK;
return IconsTheme::ICONS_LIGHT;
}