vlc | branch: master | Felix Paul Kühne <fe...@feepk.net> | Tue May  7 12:55:56 
2019 +0200| [62186521264a021bfda172db9b679bfb6d14872e] | committer: Felix Paul 
Kühne

macosx: add helper for the Mojave dark mode

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=62186521264a021bfda172db9b679bfb6d14872e
---

 modules/gui/macosx/extensions/NSView+VLCAdditions.h      |  2 ++
 modules/gui/macosx/extensions/NSView+VLCAdditions.m      | 13 +++++++++++++
 .../gui/macosx/library/VLCLibraryCollectionViewItem.m    | 12 ++----------
 .../VLCLibraryCollectionViewSupplementaryElementView.m   | 12 +++---------
 modules/gui/macosx/library/VLCLibraryWindow.m            | 16 +++++-----------
 modules/gui/macosx/main/CompatibilityFixes.h             |  6 ++++++
 modules/gui/macosx/views/VLCBottomBarView.m              | 12 +++---------
 modules/gui/macosx/views/VLCSlider.m                     | 11 +++++------
 modules/gui/macosx/views/VLCVolumeSlider.m               | 12 +++++-------
 9 files changed, 44 insertions(+), 52 deletions(-)

diff --git a/modules/gui/macosx/extensions/NSView+VLCAdditions.h 
b/modules/gui/macosx/extensions/NSView+VLCAdditions.h
index a97ad3c76f..2478345d72 100644
--- a/modules/gui/macosx/extensions/NSView+VLCAdditions.h
+++ b/modules/gui/macosx/extensions/NSView+VLCAdditions.h
@@ -27,6 +27,8 @@ NS_ASSUME_NONNULL_BEGIN
 
 @interface NSView (VLCAdditions)
 
+@property (readonly) BOOL shouldShowDarkAppearance;
+
 - (void)enableSubviews:(BOOL)enabled;
 
 @end
diff --git a/modules/gui/macosx/extensions/NSView+VLCAdditions.m 
b/modules/gui/macosx/extensions/NSView+VLCAdditions.m
index 2609f0bd4f..702016e154 100644
--- a/modules/gui/macosx/extensions/NSView+VLCAdditions.m
+++ b/modules/gui/macosx/extensions/NSView+VLCAdditions.m
@@ -23,8 +23,21 @@
 
 #import "NSView+VLCAdditions.h"
 
+#import "main/CompatibilityFixes.h"
+
 @implementation NSView (VLCAdditions)
 
+- (BOOL)shouldShowDarkAppearance
+{
+    if (@available(macOS 10_14, *)) {
+        if ([self.effectiveAppearance.name 
isEqualToString:NSAppearanceNameDarkAqua]) {
+            return YES;
+        }
+    }
+
+    return NO;
+}
+
 - (void)enableSubviews:(BOOL)enabled
 {
     for (NSView *view in [self subviews]) {
diff --git a/modules/gui/macosx/library/VLCLibraryCollectionViewItem.m 
b/modules/gui/macosx/library/VLCLibraryCollectionViewItem.m
index a11560555f..58cf601b96 100644
--- a/modules/gui/macosx/library/VLCLibraryCollectionViewItem.m
+++ b/modules/gui/macosx/library/VLCLibraryCollectionViewItem.m
@@ -23,7 +23,6 @@
 #import "VLCLibraryCollectionViewItem.h"
 
 #import "main/VLCMain.h"
-#import "main/CompatibilityFixes.h"
 #import "library/VLCLibraryController.h"
 #import "library/VLCLibraryDataTypes.h"
 #import "library/VLCLibraryModel.h"
@@ -33,6 +32,7 @@
 #import "extensions/NSString+Helpers.h"
 #import "extensions/NSFont+VLCAdditions.h"
 #import "extensions/NSColor+VLCAdditions.h"
+#import "extensions/NSView+VLCAdditions.h"
 
 NSString *VLCLibraryCellIdentifier = @"VLCLibraryCellIdentifier";
 
@@ -96,15 +96,7 @@ NSString *VLCLibraryCellIdentifier = 
@"VLCLibraryCellIdentifier";
 
 - (void)updateColoredAppearance
 {
-    if (@available(macOS 10_14, *)) {
-        if ([self.view.effectiveAppearance.name 
isEqualToString:NSAppearanceNameDarkAqua]) {
-            self.mediaTitleTextField.textColor = [NSColor 
VLClibraryDarkTitleColor];
-        } else {
-            self.mediaTitleTextField.textColor = [NSColor 
VLClibraryLightTitleColor];
-        }
-    } else {
-        self.mediaTitleTextField.textColor = [NSColor 
VLClibraryLightTitleColor];
-    }
+    self.mediaTitleTextField.textColor = self.view.shouldShowDarkAppearance ? 
[NSColor VLClibraryDarkTitleColor] : [NSColor VLClibraryLightTitleColor];
 }
 
 #pragma mark - view representation
diff --git 
a/modules/gui/macosx/library/VLCLibraryCollectionViewSupplementaryElementView.m 
b/modules/gui/macosx/library/VLCLibraryCollectionViewSupplementaryElementView.m
index 9ce0a78e78..d651cf2f08 100644
--- 
a/modules/gui/macosx/library/VLCLibraryCollectionViewSupplementaryElementView.m
+++ 
b/modules/gui/macosx/library/VLCLibraryCollectionViewSupplementaryElementView.m
@@ -23,7 +23,7 @@
 #import "VLCLibraryCollectionViewSupplementaryElementView.h"
 #import "extensions/NSFont+VLCAdditions.h"
 #import "extensions/NSColor+VLCAdditions.h"
-#import "main/CompatibilityFixes.h"
+#import "extensions/NSView+VLCAdditions.h"
 
 NSString *VLCLibrarySupplementaryElementViewIdentifier = 
@"VLCLibrarySupplementaryElementViewIdentifier";
 
@@ -39,11 +39,7 @@ NSString *VLCLibrarySupplementaryElementViewIdentifier = 
@"VLCLibrarySupplementa
     self = [super initWithFrame:frameRect];
     if (self) {
         self.font = [NSFont VLClibrarySectionHeaderFont];
-        if (@available(macOS 10_14, *)) {
-            self.textColor = [self.effectiveAppearance.name 
isEqualToString:NSAppearanceNameDarkAqua] ? [NSColor VLClibraryDarkTitleColor] 
: [NSColor VLClibraryLightTitleColor];
-        } else {
-            self.textColor = [NSColor VLClibraryLightTitleColor];
-        }
+        self.textColor = self.shouldShowDarkAppearance ? [NSColor 
VLClibraryDarkTitleColor] : [NSColor VLClibraryLightTitleColor];
         self.editable = NO;
         self.selectable = NO;
     }
@@ -52,9 +48,7 @@ NSString *VLCLibrarySupplementaryElementViewIdentifier = 
@"VLCLibrarySupplementa
 
 - (void)viewDidChangeEffectiveAppearance
 {
-    if (@available(macOS 10_14, *)) {
-        self.textColor = [self.effectiveAppearance.name 
isEqualToString:NSAppearanceNameDarkAqua] ? [NSColor VLClibraryDarkTitleColor] 
: [NSColor VLClibraryLightTitleColor];
-    }
+    self.textColor = self.shouldShowDarkAppearance ? [NSColor 
VLClibraryDarkTitleColor] : [NSColor VLClibraryLightTitleColor];
 }
 
 @end
diff --git a/modules/gui/macosx/library/VLCLibraryWindow.m 
b/modules/gui/macosx/library/VLCLibraryWindow.m
index baf282b4d5..479192ef22 100644
--- a/modules/gui/macosx/library/VLCLibraryWindow.m
+++ b/modules/gui/macosx/library/VLCLibraryWindow.m
@@ -24,8 +24,8 @@
 #import "extensions/NSString+Helpers.h"
 #import "extensions/NSFont+VLCAdditions.h"
 #import "extensions/NSColor+VLCAdditions.h"
+#import "extensions/NSView+VLCAdditions.h"
 #import "main/VLCMain.h"
-#import "main/CompatibilityFixes.h"
 
 #import "playlist/VLCPlaylistTableCellView.h"
 #import "playlist/VLCPlaylistController.h"
@@ -187,16 +187,10 @@ static const float f_playlist_row_height = 72.;
 
 - (void)updateColorsBasedOnAppearance
 {
-    if (@available(macOS 10_14, *)) {
-        if ([self.effectiveAppearance.name 
isEqualToString:NSAppearanceNameDarkAqua]) {
-            self.upNextLabel.textColor = [NSColor VLClibraryDarkTitleColor];
-            self.upNextSeparator.borderColor = [NSColor 
VLClibrarySeparatorDarkColor];
-            self.clearPlaylistSeparator.borderColor = [NSColor 
VLClibrarySeparatorDarkColor];
-        } else {
-            self.upNextLabel.textColor = [NSColor VLClibraryLightTitleColor];
-            self.upNextSeparator.borderColor = [NSColor 
VLClibrarySeparatorLightColor];
-            self.clearPlaylistSeparator.borderColor = [NSColor 
VLClibrarySeparatorLightColor];
-        }
+    if (self.contentView.shouldShowDarkAppearance) {
+        self.upNextLabel.textColor = [NSColor VLClibraryDarkTitleColor];
+        self.upNextSeparator.borderColor = [NSColor 
VLClibrarySeparatorDarkColor];
+        self.clearPlaylistSeparator.borderColor = [NSColor 
VLClibrarySeparatorDarkColor];
     } else {
         self.upNextLabel.textColor = [NSColor VLClibraryLightTitleColor];
         self.upNextSeparator.borderColor = [NSColor 
VLClibrarySeparatorLightColor];
diff --git a/modules/gui/macosx/main/CompatibilityFixes.h 
b/modules/gui/macosx/main/CompatibilityFixes.h
index 85f4bf2c52..e0a2eba8f3 100644
--- a/modules/gui/macosx/main/CompatibilityFixes.h
+++ b/modules/gui/macosx/main/CompatibilityFixes.h
@@ -34,4 +34,10 @@ extern NSString *const NSAppearanceNameDarkAqua;
 
 #endif
 
+#ifndef MAC_OS_X_VERSION_10_13
+
+extern NSString *const NSCollectionViewSupplementaryElementKind;
+
+#endif
+
 NS_ASSUME_NONNULL_END
diff --git a/modules/gui/macosx/views/VLCBottomBarView.m 
b/modules/gui/macosx/views/VLCBottomBarView.m
index 08c66456d7..6cedad9280 100644
--- a/modules/gui/macosx/views/VLCBottomBarView.m
+++ b/modules/gui/macosx/views/VLCBottomBarView.m
@@ -23,7 +23,7 @@
 
 #import "VLCBottomBarView.h"
 
-#import "main/CompatibilityFixes.h"
+#import "extensions/NSView+VLCAdditions.h"
 
 @interface VLCBottomBarView () {
     NSBezierPath *_rectanglePath;
@@ -141,14 +141,8 @@
 
 - (void)viewDidChangeEffectiveAppearance
 {
-    if (@available(macOS 10_14, *)) {
-        if ([self.effectiveAppearance.name 
isEqualToString:NSAppearanceNameDarkAqua])
-            [self setDark:YES];
-        else
-            [self setDark:NO];
-
-        [self setNeedsDisplay:YES];
-    }
+    [self setDark:self.shouldShowDarkAppearance];
+    [self setNeedsDisplay:YES];
 }
 
 @end
diff --git a/modules/gui/macosx/views/VLCSlider.m 
b/modules/gui/macosx/views/VLCSlider.m
index 1c44e08c3c..310abe8ffb 100644
--- a/modules/gui/macosx/views/VLCSlider.m
+++ b/modules/gui/macosx/views/VLCSlider.m
@@ -22,7 +22,7 @@
 
 #import "VLCSlider.h"
 
-#import "main/CompatibilityFixes.h"
+#import "extensions/NSView+VLCAdditions.h"
 #import "views/VLCSliderCell.h"
 
 @implementation VLCSlider
@@ -117,11 +117,10 @@
 
 - (void)viewDidChangeEffectiveAppearance
 {
-    if (@available(macOS 10_14, *)) {
-        if ([self.effectiveAppearance.name 
isEqualToString:NSAppearanceNameDarkAqua])
-            [self setSliderStyleDark];
-        else
-            [self setSliderStyleLight];
+    if (self.shouldShowDarkAppearance) {
+        [self setSliderStyleDark];
+    } else {
+        [self setSliderStyleLight];
     }
 }
 
diff --git a/modules/gui/macosx/views/VLCVolumeSlider.m 
b/modules/gui/macosx/views/VLCVolumeSlider.m
index 1f8ebb7f2f..58162f00aa 100644
--- a/modules/gui/macosx/views/VLCVolumeSlider.m
+++ b/modules/gui/macosx/views/VLCVolumeSlider.m
@@ -22,7 +22,7 @@
 
 #import "VLCVolumeSlider.h"
 
-#import "main/CompatibilityFixes.h"
+#import "extensions/NSView+VLCAdditions.h"
 #import "views/VLCVolumeSliderCell.h"
 
 @implementation VLCVolumeSlider
@@ -56,12 +56,10 @@
 
 - (void)viewDidChangeEffectiveAppearance
 {
-    if (@available(macOS 10_14, *)) {
-        if ([self.effectiveAppearance.name 
isEqualToString:NSAppearanceNameDarkAqua]) {
-            [(VLCVolumeSliderCell*)self.cell setSliderStyleDark];
-        } else {
-            [(VLCVolumeSliderCell*)self.cell setSliderStyleLight];
-        }
+    if (self.shouldShowDarkAppearance) {
+        [(VLCVolumeSliderCell*)self.cell setSliderStyleDark];
+    } else {
+        [(VLCVolumeSliderCell*)self.cell setSliderStyleLight];
     }
 }
 

_______________________________________________
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to