Mercurial > minori
view src/sys/osx/dark_theme.mm @ 193:0ad2507c3e60
dep/animia: cmake: check for the objc runtime library
author | Paper <mrpapersonic@gmail.com> |
---|---|
date | Thu, 07 Dec 2023 01:56:39 -0500 |
parents | 9c4645100fec |
children |
line wrap: on
line source
#include "sys/osx/dark_theme.h" #import <AppKit/AppKit.h> namespace osx { /* I remember clang giving a hissy fit when I tried simplifying this to just * a return; does it still do that? */ bool DarkThemeAvailable() { if (@available(macOS 10.14, *)) return true; else return false; } bool IsInDarkTheme() { if (@available(macOS 10.14, *)) { auto appearance = [NSApp.effectiveAppearance bestMatchFromAppearancesWithNames:@[ NSAppearanceNameAqua, NSAppearanceNameDarkAqua ]]; return [appearance isEqualToString:NSAppearanceNameDarkAqua]; } return false; } void SetToDarkTheme() { // https://stackoverflow.com/questions/55925862/how-can-i-set-my-os-x-application-theme-in-code if (@available(macOS 10.14, *)) { [NSApp setAppearance:[NSAppearance appearanceNamed:NSAppearanceNameDarkAqua]]; } } void SetToLightTheme() { // https://stackoverflow.com/questions/55925862/how-can-i-set-my-os-x-application-theme-in-code if (@available(macOS 10.14, *)) { [NSApp setAppearance:[NSAppearance appearanceNamed:NSAppearanceNameAqua]]; } } void SetToAutoTheme() { if (@available(macOS 10.14, *)) { [NSApp setAppearance:nil]; } } } // namespace osx