diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-12 05:35:29 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-12 05:35:29 +0000 |
commit | 59203c63bb777a3bacec32fb8830fba33540e809 (patch) | |
tree | 58298e711c0ff0575818c30485b44a2f21bf28a0 /widget/cocoa/AppearanceOverride.mm | |
parent | Adding upstream version 126.0.1. (diff) | |
download | firefox-59203c63bb777a3bacec32fb8830fba33540e809.tar.xz firefox-59203c63bb777a3bacec32fb8830fba33540e809.zip |
Adding upstream version 127.0.upstream/127.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'widget/cocoa/AppearanceOverride.mm')
-rw-r--r-- | widget/cocoa/AppearanceOverride.mm | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/widget/cocoa/AppearanceOverride.mm b/widget/cocoa/AppearanceOverride.mm deleted file mode 100644 index c3938d6b93..0000000000 --- a/widget/cocoa/AppearanceOverride.mm +++ /dev/null @@ -1,90 +0,0 @@ -/* -*- Mode: c++; tab-width: 2; indent-tabs-mode: nil; -*- */ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -#import <Cocoa/Cocoa.h> - -#include "AppearanceOverride.h" - -#include "mozilla/Preferences.h" -#include "mozilla/StaticPrefs_browser.h" -#include "mozilla/StaticPrefs_widget.h" - -#include "nsXULAppAPI.h" - -static void ToolbarThemePrefChanged(const char* aPref, void* aUserInfo); - -@interface MOZGlobalAppearance () -@property NSInteger toolbarTheme; -@end - -@implementation MOZGlobalAppearance - -+ (MOZGlobalAppearance*)sharedInstance { - static MOZGlobalAppearance* sInstance = nil; - if (!sInstance) { - sInstance = [[MOZGlobalAppearance alloc] init]; - if (XRE_IsParentProcess()) { - mozilla::Preferences::RegisterCallbackAndCall( - &ToolbarThemePrefChanged, - nsDependentCString( - mozilla::StaticPrefs::GetPrefName_browser_theme_toolbar_theme())); - } - } - return sInstance; -} - -+ (NSSet*)keyPathsForValuesAffectingAppearance { - return [NSSet setWithObjects:@"toolbarTheme", nil]; -} - -- (NSAppearance*)appearance { - switch (self.toolbarTheme) { // Value for browser.theme.toolbar-theme pref - case 0: // Dark - return [NSAppearance appearanceNamed:NSAppearanceNameDarkAqua]; - case 1: // Light - return [NSAppearance appearanceNamed:NSAppearanceNameAqua]; - case 2: // System - default: - return nil; // nil means "no override". - } -} - -- (void)setAppearance:(NSAppearance*)aAppearance { - // ignored -} - -- (NSApplication*)_app { - return NSApp; -} - -+ (NSSet*)keyPathsForValuesAffectingEffectiveAppearance { - // Automatically notify any key-value observers of our effectiveAppearance - // property whenever the pref or the NSApp's effectiveAppearance change. - return - [NSSet setWithObjects:@"toolbarTheme", @"_app.effectiveAppearance", nil]; -} - -- (NSAppearance*)effectiveAppearance { - switch (self.toolbarTheme) { // Value for browser.theme.toolbar-theme pref - case 0: // Dark - return [NSAppearance appearanceNamed:NSAppearanceNameDarkAqua]; - case 1: // Light - return [NSAppearance appearanceNamed:NSAppearanceNameAqua]; - case 2: // System - default: - // Use the NSApp effectiveAppearance. This is the system appearance. - return NSApp.effectiveAppearance; - } -} - -@end - -static void ToolbarThemePrefChanged(const char* aPref, void* aUserInfo) { - MOZ_RELEASE_ASSERT(XRE_IsParentProcess()); - MOZ_RELEASE_ASSERT(NS_IsMainThread()); - - MOZGlobalAppearance.sharedInstance.toolbarTheme = - mozilla::StaticPrefs::browser_theme_toolbar_theme(); -} |