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