vlc/vlc-3.0 | branch: master | Felix Paul Kühne <[email protected]> | Mon Sep 24 18:32:54 2018 +0200| [2da573174e5eee4145e860994b33ddfa890378fb] | committer: Felix Paul Kühne
macosx/main window: add dark mode dropzone icon > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=2da573174e5eee4145e860994b33ddfa890378fb --- modules/gui/macosx/Makefile.am | 2 ++ .../mainwindow_mojave_dark/mj-dropzone-dark.png | Bin 0 -> 1393 bytes .../mainwindow_mojave_dark/[email protected] | Bin 0 -> 2951 bytes modules/gui/macosx/VLCMainWindow.m | 32 ++++++++++++++++++++- 4 files changed, 33 insertions(+), 1 deletion(-) diff --git a/modules/gui/macosx/Makefile.am b/modules/gui/macosx/Makefile.am index 01df841ab0..da4888f30e 100644 --- a/modules/gui/macosx/Makefile.am +++ b/modules/gui/macosx/Makefile.am @@ -567,6 +567,8 @@ libmacosx_plugin_la_RES = \ gui/macosx/Resources/mainwindow_dark_yosemite/[email protected] \ gui/macosx/Resources/mainwindow_dark_yosemite/ys-volume-low_dark.png \ gui/macosx/Resources/mainwindow_dark_yosemite/[email protected] \ + gui/macosx/Resources/mainwindow_mojave_dark/mj-dropzone-dark.png \ + gui/macosx/Resources/mainwindow_mojave_dark/[email protected] \ gui/macosx/Resources/mainwindow_yosemite/ys-backward-3btns-pressed.png \ gui/macosx/Resources/mainwindow_yosemite/[email protected] \ gui/macosx/Resources/mainwindow_yosemite/ys-backward-3btns.png \ diff --git a/modules/gui/macosx/Resources/mainwindow_mojave_dark/mj-dropzone-dark.png b/modules/gui/macosx/Resources/mainwindow_mojave_dark/mj-dropzone-dark.png new file mode 100644 index 0000000000..fa0855b6bd Binary files /dev/null and b/modules/gui/macosx/Resources/mainwindow_mojave_dark/mj-dropzone-dark.png differ diff --git a/modules/gui/macosx/Resources/mainwindow_mojave_dark/[email protected] b/modules/gui/macosx/Resources/mainwindow_mojave_dark/[email protected] new file mode 100644 index 0000000000..f340e467a5 Binary files /dev/null and b/modules/gui/macosx/Resources/mainwindow_mojave_dark/[email protected] differ diff --git a/modules/gui/macosx/VLCMainWindow.m b/modules/gui/macosx/VLCMainWindow.m index 9ff62e4f34..96ad1925a7 100644 --- a/modules/gui/macosx/VLCMainWindow.m +++ b/modules/gui/macosx/VLCMainWindow.m @@ -135,6 +135,9 @@ static const float f_min_window_height = 307.; - (void)dealloc { [[NSNotificationCenter defaultCenter] removeObserver: self]; + if (@available(macOS 10_14, *)) { + [[NSApplication sharedApplication] removeObserver:self forKeyPath:@"effectiveAppearance"]; + } } - (void)awakeFromNib @@ -189,7 +192,20 @@ static const float f_min_window_height = 307.; // Dropzone [_dropzoneLabel setStringValue:_NS("Drop media here")]; - [_dropzoneImageView setImage:imageFromRes(@"dropzone")]; + if (@available(macOS 10.14, *)) { + NSApplication *app = [NSApplication sharedApplication]; + if ([app.effectiveAppearance.name isEqualToString:NSAppearanceNameDarkAqua]) { + [_dropzoneImageView setImage:[NSImage imageNamed:@"mj-dropzone-dark"]]; + } else { + [_dropzoneImageView setImage:imageFromRes(@"dropzone")]; + } + [app addObserver:self + forKeyPath:@"effectiveAppearance" + options:0 + context:nil]; + } else { + [_dropzoneImageView setImage:imageFromRes(@"dropzone")]; + } [_dropzoneButton setTitle:_NS("Open media...")]; [_dropzoneButton.cell accessibilitySetOverrideValue:_NS("Open a dialog to select the media to play") forAttribute:NSAccessibilityDescriptionAttribute]; @@ -730,6 +746,20 @@ static const float f_min_window_height = 307.; [self.fspanel setVolumeLevel:[[VLCCoreInteraction sharedInstance] volume]]; } +- (void)observeValueForKeyPath:(NSString *)keyPath + ofObject:(id)object + change:(NSDictionary<NSKeyValueChangeKey,id> *)change + context:(void *)context +{ + if (@available(macOS 10_14, *)) { + if ([[[NSApplication sharedApplication] effectiveAppearance].name isEqualToString:NSAppearanceNameDarkAqua]) { + [_dropzoneImageView setImage:[NSImage imageNamed:@"mj-dropzone-dark"]]; + } else { + [_dropzoneImageView setImage:imageFromRes(@"dropzone")]; + } + } +} + #pragma mark - #pragma mark Video Output handling _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
