[vlc-commits] [Git][videolan/vlc][master] macosx: Fix dark mode and theme switching issues with playlist drawer

Jean-Baptiste Kempf (@jbk) gitlab at videolan.org
Sat Jul 9 22:00:31 UTC 2022



Jean-Baptiste Kempf pushed to branch master at VideoLAN / VLC


Commits:
19fb0ec2 by Claudio Cambra at 2022-07-09T22:00:22+00:00
macosx: Fix dark mode and theme switching issues with playlist drawer

- - - - -


3 changed files:

- modules/gui/macosx/UI/VLCLibraryWindow.xib
- modules/gui/macosx/library/VLCLibraryWindow.h
- modules/gui/macosx/library/VLCLibraryWindow.m


Changes:

=====================================
modules/gui/macosx/UI/VLCLibraryWindow.xib
=====================================
@@ -2,6 +2,7 @@
 <document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="20037" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
     <dependencies>
         <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="20037"/>
+        <capability name="System colors introduced in macOS 10.14" minToolsVersion="10.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
@@ -143,7 +144,7 @@
                                     </button>
                                     <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="cih-xp-HmY">
                                         <rect key="frame" x="173" y="12" width="15" height="17"/>
-                                        <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="NSTouchBarDeleteTemplate" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="OjM-W9-IrQ">
+                                        <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="trash" catalog="system" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="OjM-W9-IrQ">
                                             <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                                             <font key="font" metaFont="system"/>
                                         </buttonCell>
@@ -154,6 +155,14 @@
                                     <customView hidden="YES" translatesAutoresizingMaskIntoConstraints="NO" id="VFI-oW-dMZ" customClass="VLCDragDropView">
                                         <rect key="frame" x="0.0" y="55" width="208" height="34"/>
                                         <subviews>
+                                            <box boxType="custom" borderType="line" borderWidth="0.0" cornerRadius="10" titlePosition="noTitle" translatesAutoresizingMaskIntoConstraints="NO" id="AXk-h7-dZ0">
+                                                <rect key="frame" x="37" y="-50" width="134" height="134"/>
+                                                <view key="contentView" id="NSp-cB-V4X">
+                                                    <rect key="frame" x="0.0" y="0.0" width="134" height="134"/>
+                                                    <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                                                </view>
+                                                <color key="borderColor" name="separatorColor" catalog="System" colorSpace="catalog"/>
+                                            </box>
                                             <imageView translatesAutoresizingMaskIntoConstraints="NO" id="cTV-Wf-TfJ" customClass="VLCDropDisabledImageView">
                                                 <rect key="frame" x="48" y="-39" width="112" height="112"/>
                                                 <constraints>
@@ -174,15 +183,19 @@
                                             </button>
                                         </subviews>
                                         <constraints>
+                                            <constraint firstItem="AXk-h7-dZ0" firstAttribute="centerX" secondItem="cTV-Wf-TfJ" secondAttribute="centerX" id="BA9-JV-1Yb"/>
+                                            <constraint firstItem="AXk-h7-dZ0" firstAttribute="width" secondItem="cTV-Wf-TfJ" secondAttribute="width" multiplier="1.2" id="Bk1-25-qhr"/>
                                             <constraint firstItem="cTV-Wf-TfJ" firstAttribute="centerY" secondItem="VFI-oW-dMZ" secondAttribute="centerY" id="OHT-tO-cJy"/>
-                                            <constraint firstItem="SWh-4E-Qtf" firstAttribute="top" secondItem="cTV-Wf-TfJ" secondAttribute="bottom" constant="10" id="eok-CR-lus"/>
+                                            <constraint firstItem="SWh-4E-Qtf" firstAttribute="top" secondItem="AXk-h7-dZ0" secondAttribute="bottom" constant="10" id="eok-CR-lus"/>
+                                            <constraint firstItem="AXk-h7-dZ0" firstAttribute="height" secondItem="cTV-Wf-TfJ" secondAttribute="height" multiplier="1.2" id="gww-c2-C40"/>
                                             <constraint firstItem="cTV-Wf-TfJ" firstAttribute="centerX" secondItem="VFI-oW-dMZ" secondAttribute="centerX" id="sOt-js-AM3"/>
                                             <constraint firstItem="SWh-4E-Qtf" firstAttribute="centerX" secondItem="cTV-Wf-TfJ" secondAttribute="centerX" id="xrf-SM-XAK"/>
+                                            <constraint firstItem="AXk-h7-dZ0" firstAttribute="centerY" secondItem="cTV-Wf-TfJ" secondAttribute="centerY" id="z0k-B1-O6R"/>
                                         </constraints>
                                     </customView>
                                     <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="244-FS-P3T">
-                                        <rect key="frame" x="142" y="13" width="21" height="14"/>
-                                        <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="NSTextRulerLineHeightIncrease" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="qDZ-84-3uy">
+                                        <rect key="frame" x="146" y="15" width="17" height="10"/>
+                                        <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="line.horizontal.3.decrease" catalog="system" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="qDZ-84-3uy">
                                             <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                                             <font key="font" metaFont="system"/>
                                         </buttonCell>
@@ -643,6 +656,7 @@
                 <outlet property="clearPlaylistButton" destination="cih-xp-HmY" id="PoU-co-0kn"/>
                 <outlet property="clearPlaylistSeparator" destination="nAW-KH-ipk" id="Af9-fg-u7m"/>
                 <outlet property="controlsBar" destination="Uzf-Tf-H8x" id="n0G-92-F2Q"/>
+                <outlet property="dragDropImageBackgroundBox" destination="AXk-h7-dZ0" id="h3h-Wh-0op"/>
                 <outlet property="emptyLibraryView" destination="YJf-1r-vaC" id="AJB-eN-4u6"/>
                 <outlet property="gridVsListSegmentedControl" destination="lIg-5J-C5F" id="u6B-Zx-4mX"/>
                 <outlet property="librarySortButton" destination="Rja-6g-wNZ" id="FQ7-MU-hsk"/>
@@ -1119,8 +1133,6 @@
         <image name="NSLeftFacingTriangleTemplate" width="10" height="14"/>
         <image name="NSListViewTemplate" width="17" height="12"/>
         <image name="NSRightFacingTriangleTemplate" width="10" height="14"/>
-        <image name="NSTextRulerLineHeightIncrease" width="21" height="14"/>
-        <image name="NSTouchBarDeleteTemplate" width="15" height="17"/>
         <image name="VLC" width="512" height="512"/>
         <image name="VLCBackwardTemplate" width="128" height="128"/>
         <image name="VLCForwardTemplate" width="128" height="128"/>
@@ -1129,11 +1141,13 @@
         <image name="fullscreen-one-button" width="29" height="23"/>
         <image name="fullscreen-one-button-pressed" width="29" height="23"/>
         <image name="libraryPlay" width="64" height="64"/>
+        <image name="line.horizontal.3.decrease" catalog="system" width="17" height="10"/>
         <image name="music.note.list" catalog="system" width="17" height="15"/>
         <image name="repeatOff" width="24" height="24"/>
         <image name="shuffleOn" width="24" height="24"/>
         <image name="stop" width="29" height="23"/>
         <image name="stop-pressed" width="29" height="23"/>
+        <image name="trash" catalog="system" width="15" height="17"/>
         <image name="volume-high" width="13" height="11"/>
         <image name="volume-low" width="5" height="11"/>
     </resources>


=====================================
modules/gui/macosx/library/VLCLibraryWindow.h
=====================================
@@ -64,6 +64,7 @@ NS_ASSUME_NONNULL_BEGIN
 @property (readwrite, weak) IBOutlet NSTextField *upNextLabel;
 @property (readwrite, weak) IBOutlet VLCDragDropView *playlistDragDropView;
 @property (readwrite, weak) IBOutlet NSButton *openMediaButton;
+ at property (readwrite, weak) IBOutlet NSBox *dragDropImageBackgroundBox;
 @property (readwrite, weak) IBOutlet NSBox *upNextSeparator;
 @property (readwrite, weak) IBOutlet NSButton *clearPlaylistButton;
 @property (readwrite, weak) IBOutlet NSBox *clearPlaylistSeparator;


=====================================
modules/gui/macosx/library/VLCLibraryWindow.m
=====================================
@@ -337,6 +337,7 @@ static void addShadow(NSImageView *__unsafe_unretained imageView)
     self.upNextLabel.stringValue = _NS("Playlist");
     [self updateColorsBasedOnAppearance];
     self.openMediaButton.title = _NS("Open media...");
+    self.dragDropImageBackgroundBox.fillColor = [NSColor VLClibrarySeparatorLightColor];
 
     _mainSplitView.delegate = self;
     _lastPlaylistWidthBeforeCollaps = VLCLibraryWindowDefaultPlaylistWidth;
@@ -391,14 +392,19 @@ static void addShadow(NSImageView *__unsafe_unretained imageView)
 
 - (void)updateColorsBasedOnAppearance
 {
-    if ([self.contentView.effectiveAppearance.name isEqualToString:NSAppearanceNameVibrantDark]) {
+    // If we try to pull the view's effectiveAppearance we are going to get the previous appearance's name despite
+    // responding to the effectiveAppearance change (???) so it is a better idea to pull from the general system
+    // theme preference, which is always up-to-date
+    if ([[[NSUserDefaults standardUserDefaults] stringForKey:@"AppleInterfaceStyle"] isEqualToString:@"Dark"]) {
         self.upNextLabel.textColor = [NSColor VLClibraryDarkTitleColor];
         self.upNextSeparator.borderColor = [NSColor VLClibrarySeparatorDarkColor];
         self.clearPlaylistSeparator.borderColor = [NSColor VLClibrarySeparatorDarkColor];
+        self.dragDropImageBackgroundBox.hidden = NO;
     } else {
         self.upNextLabel.textColor = [NSColor VLClibraryLightTitleColor];
         self.upNextSeparator.borderColor = [NSColor VLClibrarySeparatorLightColor];
         self.clearPlaylistSeparator.borderColor = [NSColor VLClibrarySeparatorLightColor];
+        self.dragDropImageBackgroundBox.hidden = YES;
     }
 }
 



View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/19fb0ec2273a9e585aa59cd2749ae33c73db4cd2

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/19fb0ec2273a9e585aa59cd2749ae33c73db4cd2
You're receiving this email because of your account on code.videolan.org.


VideoLAN code repository instance


More information about the vlc-commits mailing list