view src/sys/osx/dark_theme.mm @ 12:cf6a73a5ba1c

cmake: fix for mingw
author Paper <mrpapersonic@gmail.com>
date Mon, 18 Sep 2023 23:40:11 -0400
parents 5c0397762b53
children cde8f67a7c7d
line wrap: on
line source

#include "sys/osx/dark_theme.h"
#import <Cocoa/Cocoa.h>

namespace osx {

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 (__builtin_available(macOS 10.14, *)) {
		[NSApp
			setAppearance:[NSAppearance appearanceNamed:NSAppearanceNameAqua]];
	}
}

void SetToAutoTheme() {
	if (@available(macOS 10.14, *)) {
		[NSApp setAppearance:nil];
	}
}

} // namespace osx