[vlc-commits] [Git][videolan/vlc][master] 12 commits: macosx: Call VLCSliderCell methods directly in VLCSlider

Steve Lhomme (@robUx4) gitlab at videolan.org
Fri Jan 20 11:07:54 UTC 2023



Steve Lhomme pushed to branch master at VideoLAN / VLC


Commits:
2b153197 by Claudio Cambra at 2023-01-20T10:28:09+00:00
macosx: Call VLCSliderCell methods directly in VLCSlider

Signed-off-by: Claudio Cambra <developer at claudiocambra.com>

- - - - -
c48206ba by Claudio Cambra at 2023-01-20T10:28:09+00:00
macosx: Stop customizing appearance of VLCSliderCell knob

Signed-off-by: Claudio Cambra <developer at claudiocambra.com>

- - - - -
894869e5 by Claudio Cambra at 2023-01-20T10:28:09+00:00
macosx: Simplify look and drawing procedure of VLCSliderCell

Signed-off-by: Claudio Cambra <developer at claudiocambra.com>

- - - - -
feeca4bb by Claudio Cambra at 2023-01-20T10:28:09+00:00
macosx: Make duration slider static instead of resizing, ensure it has a minimum size that is reasonable, fixing constantly clipped knob

Signed-off-by: Claudio Cambra <developer at claudiocambra.com>

- - - - -
44a626a9 by Claudio Cambra at 2023-01-20T10:28:09+00:00
macosx: Stop overriding default behaviour of bar and knob flipping

Signed-off-by: Claudio Cambra <developer at claudiocambra.com>

- - - - -
b65a9b96 by Claudio Cambra at 2023-01-20T10:28:09+00:00
macosx: Give the control bar playback slider some top padding

Signed-off-by: Claudio Cambra <developer at claudiocambra.com>

- - - - -
b41604c7 by Claudio Cambra at 2023-01-20T10:28:09+00:00
macosx: Redesign the playback control bar for the library window

Signed-off-by: Claudio Cambra <developer at claudiocambra.com>

- - - - -
6261d2a2 by Claudio Cambra at 2023-01-20T10:28:09+00:00
macosx: Make song name and artist name be on the same line in library control bar

Signed-off-by: Claudio Cambra <developer at claudiocambra.com>

- - - - -
642bfcae by Claudio Cambra at 2023-01-20T10:28:09+00:00
macosx: Properly elide song name and artist name in library control bar

Signed-off-by: Claudio Cambra <developer at claudiocambra.com>

- - - - -
ed50789a by Claudio Cambra at 2023-01-20T10:28:09+00:00
macosx: Hide the song name / artist name separator if no artist name available

Signed-off-by: Claudio Cambra <developer at claudiocambra.com>

- - - - -
ab3c35e7 by Claudio Cambra at 2023-01-20T10:28:09+00:00
macosx: Ensure song/video name and artist combinations are properly center aligned to slider

Signed-off-by: Claudio Cambra <developer at claudiocambra.com>

- - - - -
2bcc1c12 by Claudio Cambra at 2023-01-20T10:28:09+00:00
macosx: Make isTimeRemaining member of VLCTimeField a public property

Signed-off-by: Claudio Cambra <developer at claudiocambra.com>

- - - - -


10 changed files:

- modules/gui/macosx/UI/VLCLibraryWindow.xib
- modules/gui/macosx/views/VLCSlider.h
- modules/gui/macosx/views/VLCSlider.m
- modules/gui/macosx/views/VLCSliderCell.h
- modules/gui/macosx/views/VLCSliderCell.m
- modules/gui/macosx/views/VLCTimeField.h
- modules/gui/macosx/views/VLCTimeField.m
- modules/gui/macosx/windows/mainwindow/VLCControlsBarCommon.h
- modules/gui/macosx/windows/mainwindow/VLCMainWindowControlsBar.h
- modules/gui/macosx/windows/mainwindow/VLCMainWindowControlsBar.m


Changes:

=====================================
modules/gui/macosx/UI/VLCLibraryWindow.xib
=====================================
@@ -19,24 +19,24 @@
             <windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
             <windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
             <rect key="contentRect" x="196" y="240" width="896" height="456"/>
-            <rect key="screenRect" x="0.0" y="0.0" width="2560" height="1055"/>
+            <rect key="screenRect" x="0.0" y="0.0" width="1440" height="900"/>
             <visualEffectView key="contentView" wantsLayer="YES" misplaced="YES" blendingMode="behindWindow" material="appearanceBased" state="followsWindowActiveState" id="EiT-Mj-1SZ">
                 <rect key="frame" x="0.0" y="0.0" width="896" height="456"/>
                 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                 <subviews>
                     <splitView autosaveName="librarywindowsplitview" dividerStyle="thin" vertical="YES" translatesAutoresizingMaskIntoConstraints="NO" id="u8g-jy-S4e">
-                        <rect key="frame" x="0.0" y="81" width="896" height="138"/>
+                        <rect key="frame" x="0.0" y="45" width="896" height="138"/>
                         <subviews>
-                            <customView misplaced="YES" id="iSp-bV-w6B" customClass="VLCBasicView">
+                            <customView id="iSp-bV-w6B" customClass="VLCBasicView">
                                 <rect key="frame" x="0.0" y="0.0" width="598" height="138"/>
                                 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                             </customView>
-                            <customView misplaced="YES" id="dus-WQ-AmE">
+                            <customView id="dus-WQ-AmE">
                                 <rect key="frame" x="599" y="0.0" width="297" height="138"/>
                                 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                 <subviews>
                                     <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="TET-5r-zHx">
-                                        <rect key="frame" x="18" y="102" width="66" height="31"/>
+                                        <rect key="frame" x="18" y="97" width="66" height="31"/>
                                         <textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="fo5-R8-TeO">
                                             <font key="font" textStyle="largeTitle" name=".SFNS-Regular"/>
                                             <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@@ -44,7 +44,7 @@
                                         </textFieldCell>
                                     </textField>
                                     <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="mbV-My-cm7" customClass="VLCRoundedCornerTextField">
-                                        <rect key="frame" x="153" y="110" width="37" height="16"/>
+                                        <rect key="frame" x="242" y="105" width="37" height="16"/>
                                         <textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="4hq-fU-NXW">
                                             <font key="font" metaFont="message"/>
                                             <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@@ -52,22 +52,22 @@
                                         </textFieldCell>
                                     </textField>
                                     <box verticalHuggingPriority="750" boxType="separator" translatesAutoresizingMaskIntoConstraints="NO" id="qmL-Ar-cj1">
-                                        <rect key="frame" x="20" y="92" width="168" height="5"/>
+                                        <rect key="frame" x="20" y="87" width="257" height="5"/>
                                     </box>
                                     <scrollView borderType="none" autohidesScrollers="YES" horizontalLineScroll="19" horizontalPageScroll="10" verticalLineScroll="19" verticalPageScroll="10" hasHorizontalScroller="NO" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Z7y-D0-11Q">
-                                        <rect key="frame" x="0.0" y="68" width="208" height="18"/>
+                                        <rect key="frame" x="0.0" y="63" width="297" height="18"/>
                                         <clipView key="contentView" drawsBackground="NO" copiesOnScroll="NO" id="Vdr-bg-tuS">
-                                            <rect key="frame" x="0.0" y="0.0" width="208" height="18"/>
+                                            <rect key="frame" x="0.0" y="0.0" width="297" height="18"/>
                                             <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                                             <subviews>
                                                 <tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" multipleSelection="NO" autosaveColumns="NO" rowSizeStyle="automatic" viewBased="YES" id="Fr1-af-8gb" customClass="VLCPlaylistTableView">
-                                                    <rect key="frame" x="0.0" y="0.0" width="208" height="19"/>
+                                                    <rect key="frame" x="0.0" y="0.0" width="297" height="19"/>
                                                     <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                                                     <size key="intercellSpacing" width="3" height="2"/>
                                                     <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
                                                     <color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
                                                     <tableColumns>
-                                                        <tableColumn width="176" minWidth="40" maxWidth="1000" id="gkH-E7-Nn4">
+                                                        <tableColumn width="265" minWidth="40" maxWidth="1000" id="gkH-E7-Nn4">
                                                             <tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border">
                                                                 <color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
                                                                 <color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
@@ -80,11 +80,11 @@
                                                             <tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
                                                             <prototypeCellViews>
                                                                 <tableCellView id="3Pj-5C-4K4">
-                                                                    <rect key="frame" x="11" y="1" width="185" height="17"/>
+                                                                    <rect key="frame" x="11" y="1" width="274" height="17"/>
                                                                     <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                                                                     <subviews>
                                                                         <textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="dY4-Im-HRr">
-                                                                            <rect key="frame" x="0.0" y="1" width="185" height="16"/>
+                                                                            <rect key="frame" x="0.0" y="1" width="274" height="16"/>
                                                                             <textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="vlq-wz-y8v">
                                                                                 <font key="font" metaFont="message"/>
                                                                                 <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
@@ -122,10 +122,10 @@
                                         </scroller>
                                     </scrollView>
                                     <box verticalHuggingPriority="750" boxType="separator" translatesAutoresizingMaskIntoConstraints="NO" id="nAW-KH-ipk">
-                                        <rect key="frame" x="20" y="57" width="168" height="5"/>
+                                        <rect key="frame" x="20" y="52" width="257" height="5"/>
                                     </box>
                                     <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="jg5-33-vH0">
-                                        <rect key="frame" x="20" y="20" width="24" height="24"/>
+                                        <rect key="frame" x="20" y="15" width="24" height="24"/>
                                         <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="shuffleOn" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="J31-h3-U4s">
                                             <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                                             <font key="font" metaFont="system"/>
@@ -135,7 +135,7 @@
                                         </connections>
                                     </button>
                                     <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="8zF-Wo-H79">
-                                        <rect key="frame" x="64" y="20" width="24" height="24"/>
+                                        <rect key="frame" x="64" y="15" width="24" height="24"/>
                                         <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="repeatOff" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="ol2-xi-TEm">
                                             <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                                             <font key="font" metaFont="system"/>
@@ -145,7 +145,7 @@
                                         </connections>
                                     </button>
                                     <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="cih-xp-HmY">
-                                        <rect key="frame" x="173" y="17" width="15" height="17"/>
+                                        <rect key="frame" x="262" y="12" width="15.5" height="17"/>
                                         <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"/>
@@ -155,18 +155,18 @@
                                         </connections>
                                     </button>
                                     <customView hidden="YES" translatesAutoresizingMaskIntoConstraints="NO" id="VFI-oW-dMZ" customClass="VLCDragDropView">
-                                        <rect key="frame" x="0.0" y="60" width="208" height="34"/>
+                                        <rect key="frame" x="0.0" y="55" width="297" 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"/>
+                                                <rect key="frame" x="81" y="-50" width="135" height="134"/>
                                                 <view key="contentView" id="NSp-cB-V4X">
-                                                    <rect key="frame" x="0.0" y="0.0" width="134" height="134"/>
+                                                    <rect key="frame" x="0.0" y="0.0" width="135" 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"/>
+                                                <rect key="frame" x="93" y="-39" width="112" height="112"/>
                                                 <constraints>
                                                     <constraint firstAttribute="width" constant="112" id="IvG-i0-rbs"/>
                                                     <constraint firstAttribute="height" constant="112" id="dO8-Iv-pDk"/>
@@ -174,7 +174,7 @@
                                                 <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="dropzone" id="sHO-XQ-hCU"/>
                                             </imageView>
                                             <button wantsLayer="YES" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="SWh-4E-Qtf">
-                                                <rect key="frame" x="44" y="-87" width="120" height="32"/>
+                                                <rect key="frame" x="89" y="-87" width="119" height="32"/>
                                                 <buttonCell key="cell" type="push" title="Open media..." bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="UUH-HF-Iqc">
                                                     <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                                                     <font key="font" metaFont="system"/>
@@ -196,7 +196,7 @@
                                         </constraints>
                                     </customView>
                                     <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="244-FS-P3T">
-                                        <rect key="frame" x="146" y="20" width="17" height="10"/>
+                                        <rect key="frame" x="236" y="15" width="16" 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"/>
@@ -243,19 +243,19 @@
                         </holdingPriorities>
                     </splitView>
                     <visualEffectView blendingMode="withinWindow" material="titlebar" state="followsWindowActiveState" translatesAutoresizingMaskIntoConstraints="NO" id="vUy-jt-gjY" customClass="VLCBottomBarView">
-                        <rect key="frame" x="0.0" y="0.0" width="896" height="81"/>
+                        <rect key="frame" x="0.0" y="0.0" width="896" height="45"/>
                         <subviews>
                             <customView translatesAutoresizingMaskIntoConstraints="NO" id="MQH-bI-Zdh" customClass="VLCDragDropView">
-                                <rect key="frame" x="0.0" y="0.0" width="896" height="81"/>
+                                <rect key="frame" x="0.0" y="0.0" width="896" height="45"/>
                                 <subviews>
                                     <customView translatesAutoresizingMaskIntoConstraints="NO" id="YAj-e7-KCU" userLabel="New play controls group ">
-                                        <rect key="frame" x="308" y="0.0" width="280" height="76"/>
+                                        <rect key="frame" x="16" y="4" width="180" height="37"/>
                                         <subviews>
                                             <button translatesAutoresizingMaskIntoConstraints="NO" id="SYG-jf-oHJ" userLabel="Shuffle Button">
-                                                <rect key="frame" x="6" y="28" width="30" height="20"/>
+                                                <rect key="frame" x="0.0" y="9" width="20" height="20"/>
                                                 <constraints>
                                                     <constraint firstAttribute="height" constant="20" id="LX7-2l-Zub"/>
-                                                    <constraint firstAttribute="width" constant="30" id="b8L-ly-Ydj"/>
+                                                    <constraint firstAttribute="width" constant="20" id="b8L-ly-Ydj"/>
                                                 </constraints>
                                                 <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="shuffleOn" imagePosition="only" alignment="center" imageScaling="proportionallyUpOrDown" inset="2" id="kIq-yj-yfU">
                                                     <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
@@ -263,10 +263,10 @@
                                                 </buttonCell>
                                             </button>
                                             <button translatesAutoresizingMaskIntoConstraints="NO" id="jGc-Xw-GYI" userLabel="Prev Button">
-                                                <rect key="frame" x="66" y="23" width="20" height="30"/>
+                                                <rect key="frame" x="36" y="7" width="24" height="24"/>
                                                 <constraints>
-                                                    <constraint firstAttribute="height" constant="30" id="0T4-E0-vJm"/>
-                                                    <constraint firstAttribute="width" constant="20" id="abb-Z1-wB3"/>
+                                                    <constraint firstAttribute="height" constant="24" id="0T4-E0-vJm"/>
+                                                    <constraint firstAttribute="width" constant="24" id="abb-Z1-wB3"/>
                                                 </constraints>
                                                 <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="VLCBackwardTemplate" imagePosition="only" alignment="center" imageScaling="proportionallyUpOrDown" inset="2" id="wXL-JO-q9Q">
                                                     <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
@@ -277,10 +277,10 @@
                                                 </connections>
                                             </button>
                                             <button translatesAutoresizingMaskIntoConstraints="NO" id="WgO-zh-k4s" userLabel="Play Button">
-                                                <rect key="frame" x="116" y="14" width="48" height="48"/>
+                                                <rect key="frame" x="76" y="5" width="28" height="28"/>
                                                 <constraints>
-                                                    <constraint firstAttribute="width" constant="48" id="SMx-UH-bYG"/>
-                                                    <constraint firstAttribute="height" constant="48" id="X5G-Of-T7b"/>
+                                                    <constraint firstAttribute="width" constant="28" id="SMx-UH-bYG"/>
+                                                    <constraint firstAttribute="height" constant="28" id="X5G-Of-T7b"/>
                                                 </constraints>
                                                 <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="libraryPlay" imagePosition="only" alignment="center" imageScaling="proportionallyUpOrDown" inset="2" id="UjH-mQ-ywb">
                                                     <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
@@ -291,10 +291,10 @@
                                                 </connections>
                                             </button>
                                             <button translatesAutoresizingMaskIntoConstraints="NO" id="dPD-MZ-5oT" userLabel="Next Button">
-                                                <rect key="frame" x="194" y="28" width="30" height="20"/>
+                                                <rect key="frame" x="120" y="7" width="24" height="24"/>
                                                 <constraints>
-                                                    <constraint firstAttribute="height" constant="20" id="Idh-YB-yxU"/>
-                                                    <constraint firstAttribute="width" constant="30" id="eA3-ci-O1T"/>
+                                                    <constraint firstAttribute="height" constant="24" id="Idh-YB-yxU"/>
+                                                    <constraint firstAttribute="width" constant="24" id="eA3-ci-O1T"/>
                                                 </constraints>
                                                 <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="VLCForwardTemplate" imagePosition="only" alignment="center" imageScaling="proportionallyUpOrDown" inset="2" id="DYw-1X-kJ4">
                                                     <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
@@ -305,9 +305,9 @@
                                                 </connections>
                                             </button>
                                             <button translatesAutoresizingMaskIntoConstraints="NO" id="t4r-bt-Jxm" userLabel="Repeat Button">
-                                                <rect key="frame" x="254" y="28" width="30" height="20"/>
+                                                <rect key="frame" x="160" y="9" width="20" height="20"/>
                                                 <constraints>
-                                                    <constraint firstAttribute="width" constant="30" id="V4c-eg-QOT"/>
+                                                    <constraint firstAttribute="width" constant="20" id="V4c-eg-QOT"/>
                                                     <constraint firstAttribute="height" constant="20" id="Wom-ko-4Rp"/>
                                                 </constraints>
                                                 <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="repeatOff" imagePosition="only" alignment="center" imageScaling="proportionallyUpOrDown" inset="2" id="RJn-3f-SpX">
@@ -317,28 +317,84 @@
                                             </button>
                                         </subviews>
                                         <constraints>
-                                            <constraint firstItem="WgO-zh-k4s" firstAttribute="leading" secondItem="jGc-Xw-GYI" secondAttribute="trailing" constant="30" id="7Jh-Rk-goR"/>
+                                            <constraint firstItem="WgO-zh-k4s" firstAttribute="leading" secondItem="jGc-Xw-GYI" secondAttribute="trailing" constant="16" id="7Jh-Rk-goR"/>
                                             <constraint firstItem="t4r-bt-Jxm" firstAttribute="centerY" secondItem="YAj-e7-KCU" secondAttribute="centerY" id="Fra-T2-IQx"/>
-                                            <constraint firstItem="dPD-MZ-5oT" firstAttribute="leading" secondItem="WgO-zh-k4s" secondAttribute="trailing" constant="30" id="L7k-XW-mNm"/>
-                                            <constraint firstAttribute="height" constant="76" id="VwH-6h-FMi"/>
+                                            <constraint firstItem="dPD-MZ-5oT" firstAttribute="leading" secondItem="WgO-zh-k4s" secondAttribute="trailing" constant="16" id="L7k-XW-mNm"/>
+                                            <constraint firstAttribute="trailing" secondItem="t4r-bt-Jxm" secondAttribute="trailing" id="W3e-SL-a7f"/>
                                             <constraint firstItem="jGc-Xw-GYI" firstAttribute="centerY" secondItem="YAj-e7-KCU" secondAttribute="centerY" id="XTJ-tG-WAb"/>
                                             <constraint firstItem="WgO-zh-k4s" firstAttribute="centerX" secondItem="YAj-e7-KCU" secondAttribute="centerX" id="dj3-Cx-RLd"/>
-                                            <constraint firstItem="jGc-Xw-GYI" firstAttribute="leading" secondItem="SYG-jf-oHJ" secondAttribute="trailing" constant="30" id="f1r-vM-kxs"/>
+                                            <constraint firstItem="jGc-Xw-GYI" firstAttribute="leading" secondItem="SYG-jf-oHJ" secondAttribute="trailing" constant="16" id="f1r-vM-kxs"/>
                                             <constraint firstItem="WgO-zh-k4s" firstAttribute="centerY" secondItem="YAj-e7-KCU" secondAttribute="centerY" id="g2R-aO-KbT"/>
                                             <constraint firstItem="SYG-jf-oHJ" firstAttribute="centerY" secondItem="YAj-e7-KCU" secondAttribute="centerY" id="heY-1b-UBH"/>
-                                            <constraint firstAttribute="width" constant="280" id="hhj-X3-LaX"/>
-                                            <constraint firstItem="t4r-bt-Jxm" firstAttribute="leading" secondItem="dPD-MZ-5oT" secondAttribute="trailing" constant="30" id="lY4-vR-Qva"/>
+                                            <constraint firstItem="t4r-bt-Jxm" firstAttribute="leading" secondItem="dPD-MZ-5oT" secondAttribute="trailing" constant="16" id="lY4-vR-Qva"/>
                                             <constraint firstItem="dPD-MZ-5oT" firstAttribute="centerY" secondItem="YAj-e7-KCU" secondAttribute="centerY" id="rCy-3x-EJD"/>
+                                            <constraint firstItem="SYG-jf-oHJ" firstAttribute="leading" secondItem="YAj-e7-KCU" secondAttribute="leading" id="vUG-bU-2ce"/>
                                         </constraints>
                                     </customView>
-                                    <customView translatesAutoresizingMaskIntoConstraints="NO" id="jPd-RK-x9o" userLabel="New now playing group">
-                                        <rect key="frame" x="0.0" y="0.0" width="303" height="76"/>
+                                    <customView translatesAutoresizingMaskIntoConstraints="NO" id="Ktr-qT-1fr">
+                                        <rect key="frame" x="212" y="4" width="472" height="37"/>
                                         <subviews>
+                                            <stackView distribution="fill" orientation="horizontal" alignment="centerY" spacing="4" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" horizontalCompressionResistancePriority="250" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="jlv-jC-dQB">
+                                                <rect key="frame" x="175" y="21" width="164" height="16"/>
+                                                <subviews>
+                                                    <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="d0e-29-yNq" userLabel="Song Name" customClass="VLCWrappableTextField">
+                                                        <rect key="frame" x="-2" y="0.0" width="78" height="16"/>
+                                                        <constraints>
+                                                            <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="60" id="uah-Xv-MK9"/>
+                                                        </constraints>
+                                                        <textFieldCell key="cell" lineBreakMode="truncatingTail" alignment="right" title="Song Name" id="o4l-8l-eNX">
+                                                            <font key="font" metaFont="systemBold"/>
+                                                            <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+                                                            <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                                                        </textFieldCell>
+                                                    </textField>
+                                                    <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="1000" translatesAutoresizingMaskIntoConstraints="NO" id="XbZ-eQ-zmA">
+                                                        <rect key="frame" x="76" y="0.0" width="14" height="16"/>
+                                                        <textFieldCell key="cell" lineBreakMode="clipping" alignment="center" title="·" id="iAI-Pb-eVu">
+                                                            <font key="font" metaFont="systemBlack" size="13"/>
+                                                            <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+                                                            <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                                                        </textFieldCell>
+                                                    </textField>
+                                                    <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="0jI-HH-uWa" userLabel="Artist Name" customClass="VLCWrappableTextField">
+                                                        <rect key="frame" x="90" y="0.0" width="76" height="16"/>
+                                                        <constraints>
+                                                            <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="60" id="dVn-o0-6hg"/>
+                                                        </constraints>
+                                                        <textFieldCell key="cell" lineBreakMode="truncatingTail" alignment="left" title="Artist Name" id="n8Z-ER-5JE">
+                                                            <font key="font" metaFont="system"/>
+                                                            <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+                                                            <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                                                        </textFieldCell>
+                                                    </textField>
+                                                </subviews>
+                                                <constraints>
+                                                    <constraint firstAttribute="height" secondItem="d0e-29-yNq" secondAttribute="height" id="ppe-cg-mD0"/>
+                                                </constraints>
+                                                <visibilityPriorities>
+                                                    <integer value="1000"/>
+                                                    <integer value="1000"/>
+                                                    <integer value="1000"/>
+                                                </visibilityPriorities>
+                                                <customSpacing>
+                                                    <real value="3.4028234663852886e+38"/>
+                                                    <real value="3.4028234663852886e+38"/>
+                                                    <real value="3.4028234663852886e+38"/>
+                                                </customSpacing>
+                                            </stackView>
+                                            <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="zOB-QJ-TUy" customClass="VLCTimeField">
+                                                <rect key="frame" x="43" y="0.0" width="35" height="13"/>
+                                                <textFieldCell key="cell" lineBreakMode="clipping" title="00:00" id="q8L-S3-Ylc">
+                                                    <font key="font" metaFont="systemSemibold" size="10"/>
+                                                    <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+                                                    <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                                                </textFieldCell>
+                                            </textField>
                                             <customView translatesAutoresizingMaskIntoConstraints="NO" id="5o7-Z0-dqS" userLabel="Artwork image view" customClass="VLCImageView">
-                                                <rect key="frame" x="16" y="8" width="60" height="60"/>
+                                                <rect key="frame" x="0.0" y="0.0" width="37" height="37"/>
                                                 <subviews>
                                                     <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="15t-2s-22l">
-                                                        <rect key="frame" x="0.0" y="0.0" width="60" height="60"/>
+                                                        <rect key="frame" x="0.0" y="0.0" width="37" height="37"/>
                                                         <buttonCell key="cell" type="bevel" bezelStyle="rounded" alignment="center" imageScaling="proportionallyDown" inset="2" id="jRw-La-BEz">
                                                             <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                                                             <font key="font" metaFont="system"/>
@@ -349,168 +405,145 @@
                                                     </button>
                                                 </subviews>
                                                 <constraints>
+                                                    <constraint firstAttribute="width" secondItem="5o7-Z0-dqS" secondAttribute="height" multiplier="1:1" id="0jj-cr-D72"/>
                                                     <constraint firstItem="15t-2s-22l" firstAttribute="top" secondItem="5o7-Z0-dqS" secondAttribute="top" id="AS7-P7-l0D"/>
                                                     <constraint firstItem="15t-2s-22l" firstAttribute="leading" secondItem="5o7-Z0-dqS" secondAttribute="leading" id="Aq6-SV-NCD"/>
-                                                    <constraint firstAttribute="height" constant="60" id="CtN-ax-WYl"/>
                                                     <constraint firstAttribute="bottom" secondItem="15t-2s-22l" secondAttribute="bottom" id="VGx-AQ-FZ1"/>
                                                     <constraint firstAttribute="trailing" secondItem="15t-2s-22l" secondAttribute="trailing" id="l3U-tz-a1t"/>
-                                                    <constraint firstAttribute="width" constant="60" id="oVs-dj-viy"/>
                                                 </constraints>
                                             </customView>
-                                            <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="d0e-29-yNq" userLabel="Song Name" customClass="VLCWrappableTextField">
-                                                <rect key="frame" x="82" y="50" width="78" height="16"/>
-                                                <textFieldCell key="cell" lineBreakMode="clipping" title="Song Name" id="o4l-8l-eNX">
-                                                    <font key="font" metaFont="systemBold"/>
-                                                    <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
-                                                    <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                                                </textFieldCell>
-                                            </textField>
-                                            <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="0jI-HH-uWa" userLabel="Artist Name" customClass="VLCWrappableTextField">
-                                                <rect key="frame" x="82" y="30" width="76" height="16"/>
-                                                <textFieldCell key="cell" lineBreakMode="clipping" title="Artist Name" id="n8Z-ER-5JE">
-                                                    <font key="font" metaFont="system"/>
-                                                    <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
-                                                    <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                                                </textFieldCell>
-                                            </textField>
-                                            <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="zOB-QJ-TUy" customClass="VLCTimeField">
-                                                <rect key="frame" x="82" y="10" width="41" height="16"/>
-                                                <textFieldCell key="cell" lineBreakMode="clipping" title="00:00" id="q8L-S3-Ylc">
-                                                    <font key="font" metaFont="system"/>
+                                            <slider hidden="YES" horizontalHuggingPriority="200" verticalHuggingPriority="750" verticalCompressionResistancePriority="751" mirrorLayoutDirectionWhenInternationalizing="never" translatesAutoresizingMaskIntoConstraints="NO" id="9Hg-t2-K5z" customClass="VLCSlider">
+                                                <rect key="frame" x="78" y="-2" width="357" height="17"/>
+                                                <sliderCell key="cell" controlSize="mini" continuous="YES" state="on" alignment="left" maxValue="1" doubleValue="0.32600000000000001" tickMarkPosition="above" sliderType="linear" id="YMg-uo-8nX" customClass="VLCSliderCell"/>
+                                                <connections>
+                                                    <action selector="timeSliderAction:" target="Uzf-Tf-H8x" id="eDh-39-Ej1"/>
+                                                </connections>
+                                            </slider>
+                                            <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="oGd-mG-cFw" customClass="VLCTimeField">
+                                                <rect key="frame" x="435" y="0.0" width="39" height="13"/>
+                                                <textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" state="on" alignment="center" title="00:00" id="adD-oG-KsD">
+                                                    <font key="font" metaFont="systemSemibold" size="10"/>
                                                     <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
                                                     <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                                                 </textFieldCell>
                                             </textField>
                                         </subviews>
                                         <constraints>
-                                            <constraint firstItem="0jI-HH-uWa" firstAttribute="top" secondItem="d0e-29-yNq" secondAttribute="bottom" constant="4" id="Cpg-ET-KJC"/>
-                                            <constraint firstItem="zOB-QJ-TUy" firstAttribute="top" secondItem="0jI-HH-uWa" secondAttribute="bottom" constant="4" id="I6a-Y5-2vf"/>
-                                            <constraint firstItem="zOB-QJ-TUy" firstAttribute="leading" secondItem="5o7-Z0-dqS" secondAttribute="trailing" constant="8" id="N3W-9q-vZV"/>
-                                            <constraint firstItem="0jI-HH-uWa" firstAttribute="centerY" secondItem="5o7-Z0-dqS" secondAttribute="centerY" id="NOw-o1-Ut8"/>
-                                            <constraint firstItem="5o7-Z0-dqS" firstAttribute="leading" secondItem="jPd-RK-x9o" secondAttribute="leading" constant="16" id="U2H-dF-neT"/>
-                                            <constraint firstItem="d0e-29-yNq" firstAttribute="leading" secondItem="5o7-Z0-dqS" secondAttribute="trailing" constant="8" id="UZ6-Mm-3zG"/>
-                                            <constraint firstItem="0jI-HH-uWa" firstAttribute="leading" secondItem="5o7-Z0-dqS" secondAttribute="trailing" constant="8" id="zCU-HX-05L"/>
-                                            <constraint firstItem="5o7-Z0-dqS" firstAttribute="centerY" secondItem="jPd-RK-x9o" secondAttribute="centerY" id="zTg-xZ-ASx"/>
+                                            <constraint firstAttribute="trailing" secondItem="oGd-mG-cFw" secondAttribute="trailing" id="25y-hg-Obr"/>
+                                            <constraint firstItem="9Hg-t2-K5z" firstAttribute="trailing" secondItem="oGd-mG-cFw" secondAttribute="leading" constant="-4" id="6HG-39-dSt"/>
+                                            <constraint firstItem="5o7-Z0-dqS" firstAttribute="centerY" secondItem="Ktr-qT-1fr" secondAttribute="centerY" id="6rb-4H-ISj"/>
+                                            <constraint firstItem="zOB-QJ-TUy" firstAttribute="centerY" secondItem="9Hg-t2-K5z" secondAttribute="centerY" id="Egp-c6-x6Y"/>
+                                            <constraint firstItem="oGd-mG-cFw" firstAttribute="centerY" secondItem="9Hg-t2-K5z" secondAttribute="centerY" id="Gzr-dU-oMG"/>
+                                            <constraint firstItem="jlv-jC-dQB" firstAttribute="bottom" secondItem="9Hg-t2-K5z" secondAttribute="top" constant="-8" id="HiH-c5-MZq"/>
+                                            <constraint firstAttribute="bottom" secondItem="5o7-Z0-dqS" secondAttribute="bottom" id="Hui-Gh-xyv"/>
+                                            <constraint firstItem="jlv-jC-dQB" firstAttribute="top" secondItem="Ktr-qT-1fr" secondAttribute="top" id="ORY-q8-DFB"/>
+                                            <constraint firstItem="5o7-Z0-dqS" firstAttribute="top" secondItem="Ktr-qT-1fr" secondAttribute="top" id="Qmp-zE-IXn"/>
+                                            <constraint firstAttribute="bottom" secondItem="9Hg-t2-K5z" secondAttribute="bottom" id="UzQ-FS-i2L"/>
+                                            <constraint firstItem="5o7-Z0-dqS" firstAttribute="leading" secondItem="Ktr-qT-1fr" secondAttribute="leading" id="Zqk-vQ-rnV"/>
+                                            <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="jlv-jC-dQB" secondAttribute="trailing" constant="4" id="dE6-x3-y9L"/>
+                                            <constraint firstItem="jlv-jC-dQB" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="zOB-QJ-TUy" secondAttribute="leading" id="nyg-q0-uLs"/>
+                                            <constraint firstItem="zOB-QJ-TUy" firstAttribute="leading" secondItem="5o7-Z0-dqS" secondAttribute="trailing" constant="8" id="ob8-aS-evc"/>
+                                            <constraint firstItem="jlv-jC-dQB" firstAttribute="centerX" secondItem="9Hg-t2-K5z" secondAttribute="centerX" id="spW-Wf-nKA"/>
+                                            <constraint firstItem="9Hg-t2-K5z" firstAttribute="leading" secondItem="zOB-QJ-TUy" secondAttribute="trailing" constant="4" id="tjf-4h-ukW"/>
                                         </constraints>
                                     </customView>
-                                    <slider hidden="YES" horizontalHuggingPriority="200" verticalHuggingPriority="750" mirrorLayoutDirectionWhenInternationalizing="never" translatesAutoresizingMaskIntoConstraints="NO" id="9Hg-t2-K5z" customClass="VLCSlider">
-                                        <rect key="frame" x="-2" y="74" width="900" height="9"/>
-                                        <constraints>
-                                            <constraint firstAttribute="height" constant="5" identifier="heightConstraintIdentifier" id="yYi-ay-9FG"/>
-                                        </constraints>
-                                        <sliderCell key="cell" controlSize="small" continuous="YES" state="on" alignment="left" maxValue="1" doubleValue="0.32600000000000001" tickMarkPosition="above" sliderType="linear" id="YMg-uo-8nX" customClass="VLCSliderCell">
-                                            <font key="font" usesAppearanceFont="YES"/>
-                                        </sliderCell>
-                                        <connections>
-                                            <action selector="timeSliderAction:" target="Uzf-Tf-H8x" id="eDh-39-Ej1"/>
-                                        </connections>
-                                    </slider>
-                                    <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="oGd-mG-cFw" customClass="VLCTimeField">
-                                        <rect key="frame" x="730" y="34" width="56" height="13"/>
-                                        <constraints>
-                                            <constraint firstAttribute="height" constant="13" id="ZpD-fD-qke"/>
-                                            <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="52" id="aOU-Hc-ufI"/>
-                                        </constraints>
-                                        <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" state="on" alignment="center" title="00:00" id="adD-oG-KsD">
-                                            <font key="font" metaFont="system" size="10"/>
-                                            <color key="textColor" white="0.25" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
-                                            <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                                        </textFieldCell>
-                                    </textField>
-                                    <button translatesAutoresizingMaskIntoConstraints="NO" id="dwM-Uz-pAw" userLabel="Full Screen Button">
-                                        <rect key="frame" x="872" y="33" width="16" height="16"/>
-                                        <constraints>
-                                            <constraint firstAttribute="width" constant="16" id="ZEc-3p-Cwt"/>
-                                            <constraint firstAttribute="height" constant="16" id="e0o-op-5QK"/>
-                                        </constraints>
-                                        <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="fullscreen-one-button" imagePosition="only" alignment="center" alternateImage="fullscreen-one-button-pressed" imageScaling="proportionallyUpOrDown" id="fMb-sg-sZ1">
-                                            <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                                            <font key="font" metaFont="system"/>
-                                        </buttonCell>
-                                        <connections>
-                                            <action selector="fullscreen:" target="Uzf-Tf-H8x" id="ayV-qE-Nmy"/>
-                                        </connections>
-                                    </button>
-                                    <button translatesAutoresizingMaskIntoConstraints="NO" id="IAy-58-UPp">
-                                        <rect key="frame" x="792" y="35" width="5" height="11"/>
-                                        <constraints>
-                                            <constraint firstAttribute="height" constant="11" id="VxM-zR-jQR"/>
-                                        </constraints>
-                                        <buttonCell key="cell" type="bevel" bezelStyle="regularSquare" image="volume-low" imagePosition="only" alignment="center" id="qTN-dX-Oj5">
-                                            <behavior key="behavior" lightByContents="YES"/>
-                                            <font key="font" metaFont="system" size="10"/>
-                                        </buttonCell>
-                                        <connections>
-                                            <action selector="volumeAction:" target="Uzf-Tf-H8x" id="ugn-Py-dV8"/>
-                                        </connections>
-                                    </button>
-                                    <slider verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="noz-yJ-oH4" customClass="VLCVolumeSlider">
-                                        <rect key="frame" x="798" y="32" width="52" height="17"/>
-                                        <constraints>
-                                            <constraint firstAttribute="width" constant="48" id="EM2-Hh-lqK"/>
-                                        </constraints>
-                                        <sliderCell key="cell" controlSize="mini" continuous="YES" alignment="left" maxValue="512" doubleValue="251.95348837209303" tickMarkPosition="above" sliderType="linear" id="IIu-VN-bEm" customClass="VLCVolumeSliderCell"/>
-                                        <connections>
-                                            <action selector="volumeAction:" target="Uzf-Tf-H8x" id="am0-Zu-eBs"/>
-                                        </connections>
-                                    </slider>
-                                    <button translatesAutoresizingMaskIntoConstraints="NO" id="75c-FF-mgb">
-                                        <rect key="frame" x="851" y="35" width="13" height="11"/>
-                                        <constraints>
-                                            <constraint firstAttribute="height" constant="11" id="Kt0-WP-qU0"/>
-                                        </constraints>
-                                        <buttonCell key="cell" type="bevel" bezelStyle="regularSquare" image="volume-high" imagePosition="only" alignment="center" id="a9Z-7I-lXJ">
-                                            <behavior key="behavior" lightByContents="YES"/>
-                                            <font key="font" metaFont="system" size="10"/>
-                                        </buttonCell>
-                                        <connections>
-                                            <action selector="volumeAction:" target="Uzf-Tf-H8x" id="8aL-jE-MXa"/>
-                                        </connections>
-                                    </button>
-                                    <button ambiguous="YES" translatesAutoresizingMaskIntoConstraints="NO" id="cEC-SX-pks">
-                                        <rect key="frame" x="97" y="29" width="29" height="23"/>
-                                        <constraints>
-                                            <constraint firstAttribute="height" constant="23" id="VRF-YR-kTr"/>
-                                        </constraints>
-                                        <buttonCell key="cell" type="bevel" bezelStyle="regularSquare" image="stop" imagePosition="only" alignment="center" alternateImage="stop-pressed" enabled="NO" id="NEI-Es-D2A">
-                                            <behavior key="behavior" lightByContents="YES"/>
-                                            <font key="font" metaFont="system" size="10"/>
-                                        </buttonCell>
-                                        <connections>
-                                            <action selector="stop:" target="Uzf-Tf-H8x" id="kMO-P8-eOG"/>
-                                        </connections>
-                                    </button>
+                                    <stackView distribution="fill" orientation="horizontal" alignment="centerY" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="S1K-Lp-DVO">
+                                        <rect key="frame" x="700" y="4" width="180" height="37"/>
+                                        <subviews>
+                                            <customView translatesAutoresizingMaskIntoConstraints="NO" id="i42-vp-ih7">
+                                                <rect key="frame" x="0.0" y="0.0" width="156" height="37"/>
+                                                <subviews>
+                                                    <slider verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="noz-yJ-oH4" customClass="VLCVolumeSlider">
+                                                        <rect key="frame" x="52" y="10" width="52" height="17"/>
+                                                        <constraints>
+                                                            <constraint firstAttribute="width" constant="48" id="EM2-Hh-lqK"/>
+                                                        </constraints>
+                                                        <sliderCell key="cell" controlSize="mini" continuous="YES" alignment="left" maxValue="512" doubleValue="251.95348837209303" tickMarkPosition="above" sliderType="linear" id="IIu-VN-bEm" customClass="VLCVolumeSliderCell"/>
+                                                        <connections>
+                                                            <action selector="volumeAction:" target="Uzf-Tf-H8x" id="am0-Zu-eBs"/>
+                                                        </connections>
+                                                    </slider>
+                                                    <button translatesAutoresizingMaskIntoConstraints="NO" id="75c-FF-mgb">
+                                                        <rect key="frame" x="106" y="13" width="13" height="11"/>
+                                                        <constraints>
+                                                            <constraint firstAttribute="height" constant="11" id="Kt0-WP-qU0"/>
+                                                        </constraints>
+                                                        <buttonCell key="cell" type="bevel" bezelStyle="regularSquare" image="volume-high" imagePosition="only" alignment="center" id="a9Z-7I-lXJ">
+                                                            <behavior key="behavior" lightByContents="YES"/>
+                                                            <font key="font" metaFont="system" size="10"/>
+                                                        </buttonCell>
+                                                        <connections>
+                                                            <action selector="volumeAction:" target="Uzf-Tf-H8x" id="8aL-jE-MXa"/>
+                                                        </connections>
+                                                    </button>
+                                                    <button translatesAutoresizingMaskIntoConstraints="NO" id="IAy-58-UPp">
+                                                        <rect key="frame" x="45" y="13" width="5" height="11"/>
+                                                        <constraints>
+                                                            <constraint firstAttribute="height" constant="11" id="VxM-zR-jQR"/>
+                                                        </constraints>
+                                                        <buttonCell key="cell" type="bevel" bezelStyle="regularSquare" image="volume-low" imagePosition="only" alignment="center" id="qTN-dX-Oj5">
+                                                            <behavior key="behavior" lightByContents="YES"/>
+                                                            <font key="font" metaFont="system" size="10"/>
+                                                        </buttonCell>
+                                                        <connections>
+                                                            <action selector="volumeAction:" target="Uzf-Tf-H8x" id="ugn-Py-dV8"/>
+                                                        </connections>
+                                                    </button>
+                                                </subviews>
+                                                <constraints>
+                                                    <constraint firstItem="75c-FF-mgb" firstAttribute="leading" secondItem="noz-yJ-oH4" secondAttribute="trailing" constant="4" id="2Ot-bs-v7Q"/>
+                                                    <constraint firstItem="75c-FF-mgb" firstAttribute="centerY" secondItem="noz-yJ-oH4" secondAttribute="centerY" id="9Oz-v1-KwH"/>
+                                                    <constraint firstItem="noz-yJ-oH4" firstAttribute="centerX" secondItem="i42-vp-ih7" secondAttribute="centerX" id="KPm-J8-zuC"/>
+                                                    <constraint firstItem="IAy-58-UPp" firstAttribute="centerY" secondItem="noz-yJ-oH4" secondAttribute="centerY" id="PGM-ud-0Wk"/>
+                                                    <constraint firstItem="noz-yJ-oH4" firstAttribute="centerY" secondItem="i42-vp-ih7" secondAttribute="centerY" id="jfV-of-CoU"/>
+                                                    <constraint firstItem="IAy-58-UPp" firstAttribute="trailing" secondItem="noz-yJ-oH4" secondAttribute="leading" constant="-4" id="nMU-2d-pO9"/>
+                                                </constraints>
+                                            </customView>
+                                            <button translatesAutoresizingMaskIntoConstraints="NO" id="dwM-Uz-pAw" userLabel="Full Screen Button">
+                                                <rect key="frame" x="164" y="11" width="16" height="16"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="width" constant="16" id="ZEc-3p-Cwt"/>
+                                                    <constraint firstAttribute="height" constant="16" id="e0o-op-5QK"/>
+                                                </constraints>
+                                                <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="fullscreen-one-button" imagePosition="only" alignment="center" alternateImage="fullscreen-one-button-pressed" imageScaling="proportionallyUpOrDown" id="fMb-sg-sZ1">
+                                                    <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                                                    <font key="font" metaFont="system"/>
+                                                </buttonCell>
+                                                <connections>
+                                                    <action selector="fullscreen:" target="Uzf-Tf-H8x" id="ayV-qE-Nmy"/>
+                                                </connections>
+                                            </button>
+                                        </subviews>
+                                        <visibilityPriorities>
+                                            <integer value="1000"/>
+                                            <integer value="1000"/>
+                                        </visibilityPriorities>
+                                        <customSpacing>
+                                            <real value="3.4028234663852886e+38"/>
+                                            <real value="3.4028234663852886e+38"/>
+                                        </customSpacing>
+                                    </stackView>
                                 </subviews>
                                 <constraints>
-                                    <constraint firstItem="9Hg-t2-K5z" firstAttribute="top" secondItem="MQH-bI-Zdh" secondAttribute="top" id="2uE-Wc-re0"/>
-                                    <constraint firstItem="dwM-Uz-pAw" firstAttribute="leading" secondItem="noz-yJ-oH4" secondAttribute="trailing" constant="24" id="A2S-l6-Vfg"/>
-                                    <constraint firstItem="dwM-Uz-pAw" firstAttribute="centerY" secondItem="oGd-mG-cFw" secondAttribute="centerY" id="Brc-26-tG5"/>
-                                    <constraint firstAttribute="bottom" secondItem="YAj-e7-KCU" secondAttribute="bottom" id="Gqk-sg-bBK"/>
-                                    <constraint firstItem="75c-FF-mgb" firstAttribute="centerY" secondItem="noz-yJ-oH4" secondAttribute="centerY" id="HVh-uV-Ovg"/>
-                                    <constraint firstItem="noz-yJ-oH4" firstAttribute="leading" secondItem="IAy-58-UPp" secondAttribute="trailing" constant="3" id="TH8-V3-URc"/>
-                                    <constraint firstItem="YAj-e7-KCU" firstAttribute="centerX" secondItem="MQH-bI-Zdh" secondAttribute="centerX" id="TpX-rq-trT"/>
-                                    <constraint firstAttribute="trailing" secondItem="dwM-Uz-pAw" secondAttribute="trailing" constant="8" id="UeR-IT-Q50"/>
-                                    <constraint firstItem="75c-FF-mgb" firstAttribute="leading" secondItem="noz-yJ-oH4" secondAttribute="trailing" constant="3" id="Uqf-cR-gMY"/>
-                                    <constraint firstItem="IAy-58-UPp" firstAttribute="centerY" secondItem="noz-yJ-oH4" secondAttribute="centerY" id="V9R-uE-YMc"/>
-                                    <constraint firstItem="YAj-e7-KCU" firstAttribute="top" secondItem="9Hg-t2-K5z" secondAttribute="bottom" id="X1Y-Pq-59w"/>
-                                    <constraint firstAttribute="trailing" secondItem="9Hg-t2-K5z" secondAttribute="trailing" id="nvr-gc-rDP"/>
-                                    <constraint firstItem="jPd-RK-x9o" firstAttribute="leading" secondItem="MQH-bI-Zdh" secondAttribute="leading" id="oKT-1E-QX7"/>
-                                    <constraint firstItem="jPd-RK-x9o" firstAttribute="top" secondItem="9Hg-t2-K5z" secondAttribute="bottom" id="rZa-KY-CyA"/>
-                                    <constraint firstAttribute="bottom" secondItem="jPd-RK-x9o" secondAttribute="bottom" id="rlF-Zf-RxE"/>
-                                    <constraint firstItem="dwM-Uz-pAw" firstAttribute="centerY" secondItem="MQH-bI-Zdh" secondAttribute="centerY" id="rld-Zd-Lbn"/>
-                                    <constraint firstItem="IAy-58-UPp" firstAttribute="leading" secondItem="oGd-mG-cFw" secondAttribute="trailing" constant="8" id="sUV-dY-Ewu"/>
-                                    <constraint firstItem="YAj-e7-KCU" firstAttribute="leading" secondItem="jPd-RK-x9o" secondAttribute="trailing" constant="5" id="tXr-ao-2n3"/>
-                                    <constraint firstItem="9Hg-t2-K5z" firstAttribute="leading" secondItem="MQH-bI-Zdh" secondAttribute="leading" id="uou-Ww-Qp1"/>
-                                    <constraint firstItem="noz-yJ-oH4" firstAttribute="centerY" secondItem="MQH-bI-Zdh" secondAttribute="centerY" id="w6O-Hd-4Hv"/>
+                                    <constraint firstItem="S1K-Lp-DVO" firstAttribute="top" secondItem="MQH-bI-Zdh" secondAttribute="top" constant="4" id="6BO-R7-IvY"/>
+                                    <constraint firstItem="Ktr-qT-1fr" firstAttribute="leading" secondItem="YAj-e7-KCU" secondAttribute="trailing" constant="16" id="9P6-Y4-CxW"/>
+                                    <constraint firstAttribute="bottom" secondItem="Ktr-qT-1fr" secondAttribute="bottom" constant="4" id="9pB-9C-2xy"/>
+                                    <constraint firstAttribute="trailing" secondItem="S1K-Lp-DVO" secondAttribute="trailing" constant="16" id="BUG-PH-qrw"/>
+                                    <constraint firstAttribute="bottom" secondItem="YAj-e7-KCU" secondAttribute="bottom" constant="4" id="Gqk-sg-bBK"/>
+                                    <constraint firstItem="S1K-Lp-DVO" firstAttribute="width" secondItem="YAj-e7-KCU" secondAttribute="width" id="NxM-eQ-3UW"/>
+                                    <constraint firstItem="Ktr-qT-1fr" firstAttribute="trailing" secondItem="S1K-Lp-DVO" secondAttribute="leading" constant="-16" id="hN9-7W-Mx1"/>
+                                    <constraint firstAttribute="bottom" secondItem="S1K-Lp-DVO" secondAttribute="bottom" constant="4" id="qCf-Co-yI1"/>
+                                    <constraint firstItem="YAj-e7-KCU" firstAttribute="top" secondItem="MQH-bI-Zdh" secondAttribute="top" constant="4" id="sIM-7y-JNq"/>
+                                    <constraint firstItem="Ktr-qT-1fr" firstAttribute="top" secondItem="MQH-bI-Zdh" secondAttribute="top" constant="4" id="t0h-f6-FGO"/>
+                                    <constraint firstItem="YAj-e7-KCU" firstAttribute="leading" secondItem="MQH-bI-Zdh" secondAttribute="leading" constant="16" id="tkj-nh-Tfb"/>
                                 </constraints>
                             </customView>
                         </subviews>
                         <constraints>
+                            <constraint firstAttribute="bottom" secondItem="MQH-bI-Zdh" secondAttribute="bottom" id="Uo1-sD-OXk"/>
                             <constraint firstItem="MQH-bI-Zdh" firstAttribute="leading" secondItem="vUy-jt-gjY" secondAttribute="leading" id="YVB-nY-sHE"/>
                             <constraint firstAttribute="trailing" secondItem="MQH-bI-Zdh" secondAttribute="trailing" id="aBH-H2-ykp"/>
-                            <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="76" id="bev-so-NF9"/>
                             <constraint firstItem="MQH-bI-Zdh" firstAttribute="top" secondItem="vUy-jt-gjY" secondAttribute="top" id="kba-GQ-94a"/>
-                            <constraint firstAttribute="bottom" secondItem="MQH-bI-Zdh" secondAttribute="bottom" id="lBe-S3-sJr"/>
                         </constraints>
                     </visualEffectView>
                     <visualEffectView misplaced="YES" blendingMode="withinWindow" material="titlebar" state="followsWindowActiveState" translatesAutoresizingMaskIntoConstraints="NO" id="6gW-0d-ymm" userLabel="Option Bar">
@@ -746,6 +779,7 @@
         <customObject id="Uzf-Tf-H8x" userLabel="Detached Window Controls Bar" customClass="VLCMainWindowControlsBar">
             <connections>
                 <outlet property="artistNameTextField" destination="0jI-HH-uWa" id="ftC-MD-ymJ"/>
+                <outlet property="artistNameTextFieldWidthConstraint" destination="dVn-o0-6hg" id="f7h-af-ae8"/>
                 <outlet property="artworkButton" destination="15t-2s-22l" id="aR1-bU-1to"/>
                 <outlet property="artworkImageView" destination="5o7-Z0-dqS" id="Pns-yT-lKx"/>
                 <outlet property="backwardButton" destination="jGc-Xw-GYI" id="0AG-44-SN3"/>
@@ -753,12 +787,11 @@
                 <outlet property="dropView" destination="MQH-bI-Zdh" id="Wz9-NB-wtE"/>
                 <outlet property="forwardButton" destination="dPD-MZ-5oT" id="btH-v5-s7F"/>
                 <outlet property="fullscreenButton" destination="dwM-Uz-pAw" id="gXA-WS-Gig"/>
-                <outlet property="nowPlayingView" destination="jPd-RK-x9o" id="O7Z-tH-RMZ"/>
                 <outlet property="playButton" destination="WgO-zh-k4s" id="0yC-Yh-H4V"/>
                 <outlet property="repeatButton" destination="t4r-bt-Jxm" id="U7s-Tb-Ado"/>
                 <outlet property="shuffleButton" destination="SYG-jf-oHJ" id="b4m-v0-sC9"/>
+                <outlet property="songArtistSeparatorTextField" destination="XbZ-eQ-zmA" id="lh8-I7-g90"/>
                 <outlet property="songNameTextField" destination="d0e-29-yNq" id="JTI-XG-miC"/>
-                <outlet property="stopButton" destination="cEC-SX-pks" id="AJE-gb-v0o"/>
                 <outlet property="timeField" destination="zOB-QJ-TUy" id="mJL-1V-2lQ"/>
                 <outlet property="timeSlider" destination="9Hg-t2-K5z" id="sVe-s8-xW6"/>
                 <outlet property="volumeDownButton" destination="IAy-58-UPp" id="dDN-pE-Vmj"/>
@@ -773,14 +806,14 @@
                 <scrollView horizontalLineScroll="10" horizontalPageScroll="10" verticalLineScroll="10" verticalPageScroll="10" hasHorizontalScroller="NO" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="GUe-Sd-j2l">
                     <rect key="frame" x="0.0" y="0.0" width="869" height="808"/>
                     <clipView key="contentView" id="mqU-ND-NId">
-                        <rect key="frame" x="1" y="1" width="852" height="806"/>
+                        <rect key="frame" x="1" y="1" width="867" height="806"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <subviews>
                             <view translatesAutoresizingMaskIntoConstraints="NO" id="fxG-zK-eLG">
-                                <rect key="frame" x="0.0" y="806" width="836" height="0.0"/>
+                                <rect key="frame" x="0.0" y="806" width="851" height="0.0"/>
                                 <subviews>
                                     <stackView distribution="fill" orientation="vertical" alignment="leading" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="y8S-p5-jaq">
-                                        <rect key="frame" x="0.0" y="0.0" width="836" height="0.0"/>
+                                        <rect key="frame" x="0.0" y="0.0" width="851" height="0.0"/>
                                     </stackView>
                                 </subviews>
                                 <constraints>
@@ -802,7 +835,7 @@
                         <autoresizingMask key="autoresizingMask"/>
                     </scroller>
                     <scroller key="verticalScroller" wantsLayer="YES" verticalHuggingPriority="750" doubleValue="1" horizontal="NO" id="hqo-ev-Oma">
-                        <rect key="frame" x="853" y="1" width="15" height="806"/>
+                        <rect key="frame" x="852" y="1" width="16" height="806"/>
                         <autoresizingMask key="autoresizingMask"/>
                     </scroller>
                 </scrollView>
@@ -814,7 +847,7 @@
                             <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                             <clipView key="contentView" id="OqR-YY-weT">
                                 <rect key="frame" x="0.0" y="0.0" width="230" height="808"/>
-                                <autoresizingMask key="autoresizingMask"/>
+                                <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                                 <subviews>
                                     <tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" columnReordering="NO" columnSelection="YES" multipleSelection="NO" autosaveColumns="NO" viewBased="YES" id="ceR-Vd-9ss">
                                         <rect key="frame" x="0.0" y="0.0" width="230" height="808"/>
@@ -873,7 +906,7 @@
                             <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                             <clipView key="contentView" id="0td-vX-CFl">
                                 <rect key="frame" x="0.0" y="0.0" width="638" height="808"/>
-                                <autoresizingMask key="autoresizingMask"/>
+                                <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                                 <subviews>
                                     <tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" tableStyle="fullWidth" columnReordering="NO" multipleSelection="NO" autosaveColumns="NO" rowSizeStyle="automatic" viewBased="YES" id="8M4-Y1-r6Z" customClass="VLCLibraryTableView">
                                         <rect key="frame" x="0.0" y="0.0" width="638" height="808"/>
@@ -953,7 +986,7 @@
                     <rect key="frame" x="0.0" y="0.0" width="528" height="371"/>
                     <clipView key="contentView" id="5co-vI-cEn">
                         <rect key="frame" x="0.0" y="0.0" width="528" height="371"/>
-                        <autoresizingMask key="autoresizingMask"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <subviews>
                             <tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" columnReordering="NO" columnSelection="YES" multipleSelection="NO" autosaveColumns="NO" viewBased="YES" id="vpJ-Oz-Ebz" customClass="VLCLibraryTableView">
                                 <rect key="frame" x="0.0" y="0.0" width="528" height="371"/>
@@ -1011,7 +1044,7 @@
                     <rect key="frame" x="0.0" y="0.0" width="528" height="371"/>
                     <clipView key="contentView" id="tI4-x3-55j">
                         <rect key="frame" x="0.0" y="0.0" width="528" height="371"/>
-                        <autoresizingMask key="autoresizingMask"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <subviews>
                             <collectionView selectable="YES" id="r7v-GI-W1U">
                                 <rect key="frame" x="0.0" y="0.0" width="528" height="371"/>
@@ -1319,11 +1352,11 @@
                 <scrollView autohidesScrollers="YES" horizontalLineScroll="17" horizontalPageScroll="10" verticalLineScroll="17" verticalPageScroll="10" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="QqV-hX-sZw">
                     <rect key="frame" x="0.0" y="0.0" width="714" height="358"/>
                     <clipView key="contentView" id="D1c-vg-zeA">
-                        <rect key="frame" x="1" y="1" width="712" height="341"/>
+                        <rect key="frame" x="1" y="1" width="712" height="356"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <subviews>
                             <tableView identifier="VLCLibrarySongsTableViewIdentifier" verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" alternatingRowBackgroundColors="YES" rowSizeStyle="automatic" headerView="LR0-xA-UlZ" viewBased="YES" id="Xck-iv-pH4" customClass="VLCLibraryTableView">
-                                <rect key="frame" x="0.0" y="0.0" width="1125" height="313"/>
+                                <rect key="frame" x="0.0" y="0.0" width="1125" height="328"/>
                                 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                                 <size key="intercellSpacing" width="17" height="0.0"/>
                                 <color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
@@ -1590,7 +1623,7 @@
                         </subviews>
                     </clipView>
                     <scroller key="horizontalScroller" wantsLayer="YES" verticalHuggingPriority="750" horizontal="YES" id="2VX-c2-fRL">
-                        <rect key="frame" x="1" y="342" width="712" height="15"/>
+                        <rect key="frame" x="1" y="341" width="712" height="16"/>
                         <autoresizingMask key="autoresizingMask"/>
                     </scroller>
                     <scroller key="verticalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" doubleValue="1" horizontal="NO" id="NFb-XZ-MAv">
@@ -1666,25 +1699,23 @@
         </customView>
     </objects>
     <resources>
-        <image name="NSHomeTemplate" width="24" height="20"/>
-        <image name="NSIconViewTemplate" width="19" height="17"/>
-        <image name="NSLeftFacingTriangleTemplate" width="12" height="16"/>
-        <image name="NSListViewTemplate" width="21" height="14"/>
-        <image name="NSRightFacingTriangleTemplate" width="12" height="16"/>
+        <image name="NSHomeTemplate" width="24" height="21"/>
+        <image name="NSIconViewTemplate" width="19" height="18"/>
+        <image name="NSLeftFacingTriangleTemplate" width="12" height="17"/>
+        <image name="NSListViewTemplate" width="21" height="15"/>
+        <image name="NSRightFacingTriangleTemplate" width="12" height="17"/>
         <image name="VLC" width="512" height="512"/>
         <image name="VLCBackwardTemplate" width="128" height="128"/>
         <image name="VLCForwardTemplate" width="128" height="128"/>
-        <image name="arrow.up.arrow.down" catalog="system" width="19" height="15"/>
+        <image name="arrow.up.arrow.down" catalog="system" width="18" height="15"/>
         <image name="dropzone" width="112" height="112"/>
         <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="line.horizontal.3.decrease" catalog="system" width="16" height="10"/>
+        <image name="music.note.list" catalog="system" width="16" 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"/>


=====================================
modules/gui/macosx/views/VLCSlider.h
=====================================
@@ -30,7 +30,4 @@
 /* Indicates if the slider is scrollable with the mouse or trackpad scrollwheel. */
 @property (readwrite) BOOL isScrollable;
 
-- (void)setSliderStyleLight;
-- (void)setSliderStyleDark;
-
 @end


=====================================
modules/gui/macosx/views/VLCSlider.m
=====================================
@@ -25,26 +25,6 @@
 #import "extensions/NSView+VLCAdditions.h"
 #import "views/VLCSliderCell.h"
 
-static NSString *const kHeightConstraintIdentifier = @"heightConstraintIdentifier";
-
-static inline void mouseEnteredOrExited(NSLayoutConstraint *const __unsafe_unretained heightConstraint,
-                                        const BOOL eventIsEntered)
-{
-    [NSAnimationContext beginGrouping];
-    
-    NSAnimationContext.currentContext.duration = 0.2;
-    heightConstraint.animator.constant = eventIsEntered ? 10.0 : 5.0;
-    
-    [NSAnimationContext endGrouping];
-}
-
- at interface VLCSlider ()
-{
-    NSTrackingArea *_trackingArea;
-    NSLayoutConstraint *_heightConstraint;
-}
- at end
-
 @implementation VLCSlider
 
 - (instancetype)initWithCoder:(NSCoder *)coder
@@ -58,23 +38,9 @@ static inline void mouseEnteredOrExited(NSLayoutConstraint *const __unsafe_unret
         if (@available(macOS 10.14, *)) {
             [self viewDidChangeEffectiveAppearance];
         } else {
-            [self setSliderStyleLight];
+            [(VLCSliderCell*)self.cell setSliderStyleLight];
         }
-        
-        dispatch_async(dispatch_get_global_queue(QOS_CLASS_BACKGROUND, 0), ^(){
-            for (NSLayoutConstraint *constraint in self.constraints) {
-                if ([constraint.identifier isEqualToString:kHeightConstraintIdentifier]) {
-                    self->_heightConstraint = constraint;
-                    self->_trackingArea = [[NSTrackingArea alloc] initWithRect:NSZeroRect
-                                                                       options:NSTrackingMouseEnteredAndExited | NSTrackingActiveInKeyWindow | NSTrackingInVisibleRect
-                                                                         owner:self
-                                                                      userInfo:nil];
-                    
-                    [self addTrackingArea:self->_trackingArea];
-                    break;
-                }
-            }
-        });
+
     }
     return self;
 }
@@ -140,40 +106,13 @@ static inline void mouseEnteredOrExited(NSLayoutConstraint *const __unsafe_unret
     return NO;
 }
 
-- (void)setSliderStyleLight
-{
-    [(VLCSliderCell*)[self cell] setSliderStyleLight];
-}
-
-- (void)setSliderStyleDark
-{
-    [(VLCSliderCell*)[self cell] setSliderStyleDark];
-}
-
 - (void)viewDidChangeEffectiveAppearance
 {
     if (self.shouldShowDarkAppearance) {
-        [self setSliderStyleDark];
+        [(VLCSliderCell*)self.cell setSliderStyleDark];
     } else {
-        [self setSliderStyleLight];
-    }
-}
-
-#pragma mark - Mouse Events
-
-- (void)mouseEntered:(NSEvent *)event
-{
-    if (self.isKnobHidden || __builtin_expect(_heightConstraint == nil, false)) {
-        return;
-    }
-    mouseEnteredOrExited(_heightConstraint, YES);
-}
-- (void)mouseExited:(NSEvent *)event
-{
-    if (self.isKnobHidden || __builtin_expect(_heightConstraint == nil, false)) {
-        return;
+        [(VLCSliderCell*)self.cell setSliderStyleLight];
     }
-    mouseEnteredOrExited(_heightConstraint, NO);
 }
 
 @end


=====================================
modules/gui/macosx/views/VLCSliderCell.h
=====================================
@@ -29,20 +29,13 @@
 @property NSColor *gradientColor2;
 @property NSColor *trackStrokeColor;
 @property NSColor *filledTrackColor;
- at property NSColor *knobFillColor;
- at property NSColor *activeKnobFillColor;
 @property NSColor *shadowColor;
- at property NSColor *knobStrokeColor;
 @property NSColor *highlightBackground;
 
 // Gradients
 @property NSGradient *trackGradient;
 @property NSGradient *highlightGradient;
 
-// Shadows
- at property NSShadow *knobShadow;
-
-
 @property NSInteger animationWidth;
 
 @property (nonatomic, setter=setIndefinite:) BOOL indefinite;


=====================================
modules/gui/macosx/views/VLCSliderCell.m
=====================================
@@ -33,6 +33,8 @@
     double _lastTime;
     double _deltaToLastFrame;
     CVDisplayLinkRef _displayLink;
+
+    NSColor *_emptySliderBackgroundColor;
 }
 @end
 
@@ -52,74 +54,12 @@
 
 - (void)setSliderStyleLight
 {
-    // Color Declarations
-    _gradientColor = [NSColor colorWithCalibratedRed: 0.663 green: 0.663 blue: 0.663 alpha: 1];
-    _gradientColor2 = [NSColor colorWithCalibratedRed: 0.749 green: 0.749 blue: 0.753 alpha: 1];
-    _trackStrokeColor = [NSColor colorWithCalibratedRed: 0.619 green: 0.624 blue: 0.623 alpha: 1];
-    _filledTrackColor = [NSColor VLCSliderFillColor];
-    _knobFillColor = [NSColor colorWithCalibratedRed: 1 green: 1 blue: 1 alpha: 1];
-    _activeKnobFillColor = [NSColor colorWithCalibratedRed: 0.95 green: 0.95 blue: 0.95 alpha: 1];
-    _shadowColor = [NSColor colorWithCalibratedRed: 0.32 green: 0.32 blue: 0.32 alpha: 1];
-    _knobStrokeColor = [NSColor colorWithCalibratedRed: 0.592 green: 0.596 blue: 0.596 alpha: 1];
-
-    // Gradient Declarations
-    _trackGradient = [[NSGradient alloc] initWithColorsAndLocations:
-                      _gradientColor, 0.0,
-                      [_gradientColor blendedColorWithFraction:0.5 ofColor:_gradientColor2], 0.60,
-                      _gradientColor2, 1.0, nil];
-
-    // Shadow Declarations
-    _knobShadow = [[NSShadow alloc] init];
-    _knobShadow.shadowColor = _shadowColor;
-    _knobShadow.shadowOffset = NSMakeSize(0, 0);
-    _knobShadow.shadowBlurRadius = 2;
-
-    _highlightBackground = [NSColor colorWithCalibratedRed:0.20 green:0.55 blue:0.91 alpha:1.0];
-    NSColor *highlightAccent = [NSColor colorWithCalibratedRed:0.4588235294 green:0.7254901961 blue:0.9882352941 alpha:1.0];
-    _highlightGradient = [[NSGradient alloc] initWithColors:@[
-                                                              _highlightBackground,
-                                                              highlightAccent,
-                                                              _highlightBackground
-                                                              ]];
+    _emptySliderBackgroundColor = [NSColor VLCSliderLightBackgroundColor];
 }
 
 - (void)setSliderStyleDark
 {
-    // Color Declarations
-    if (@available(macOS 10.14, *)) {
-        _gradientColor2 = [NSColor colorWithCalibratedRed: 0.20 green: 0.20 blue: 0.20 alpha: 1];
-        _knobFillColor = [NSColor colorWithCalibratedRed: 0.81 green: 0.81 blue: 0.81 alpha: 1];
-        _activeKnobFillColor = [NSColor colorWithCalibratedRed: 0.76 green: 0.76 blue: 0.76 alpha: 1];
-    } else {
-        _gradientColor2 = [NSColor colorWithCalibratedRed: 0.24 green: 0.24 blue: 0.24 alpha: 1];
-        _knobFillColor = [NSColor colorWithCalibratedRed: 1 green: 1 blue: 1 alpha: 1];
-        _activeKnobFillColor = [NSColor colorWithCalibratedRed: 0.95 green: 0.95 blue: 0.95 alpha: 1];
-    }
-    _gradientColor = [NSColor colorWithCalibratedRed: 0.15 green: 0.15 blue: 0.15 alpha: 1];
-    _trackStrokeColor = [NSColor colorWithCalibratedRed: 0.23 green: 0.23 blue: 0.23 alpha: 1];
-    _filledTrackColor = [NSColor VLCSliderFillColor];
-    _shadowColor = [NSColor colorWithCalibratedRed: 0.32 green: 0.32 blue: 0.32 alpha: 1];
-    _knobStrokeColor = [NSColor colorWithCalibratedRed: 0.592 green: 0.596 blue: 0.596 alpha: 1];
-
-    // Gradient Declarations
-    _trackGradient = [[NSGradient alloc] initWithColorsAndLocations:
-                      _gradientColor, 0.0,
-                      [_gradientColor blendedColorWithFraction:0.5 ofColor:_gradientColor2], 0.60,
-                      _gradientColor2, 1.0, nil];
-
-    // Shadow Declarations
-    _knobShadow = [[NSShadow alloc] init];
-    _knobShadow.shadowColor = _shadowColor;
-    _knobShadow.shadowOffset = NSMakeSize(0, 0);
-    _knobShadow.shadowBlurRadius = 2;
-
-    _highlightBackground = [NSColor colorWithCalibratedRed:0.20 green:0.55 blue:0.91 alpha:1.0];
-    NSColor *highlightAccent = [NSColor colorWithCalibratedRed:0.4588235294 green:0.7254901961 blue:0.9882352941 alpha:1.0];
-    _highlightGradient = [[NSGradient alloc] initWithColors:@[
-                                                              _highlightBackground,
-                                                              highlightAccent,
-                                                              _highlightBackground
-                                                              ]];
+    _emptySliderBackgroundColor = [NSColor VLCSliderDarkBackgroundColor];
 }
 
 - (void)dealloc
@@ -159,81 +99,30 @@ static CVReturn DisplayLinkCallback(CVDisplayLinkRef displayLink, const CVTimeSt
     CVDisplayLinkSetOutputCallback(_displayLink, DisplayLinkCallback, (__bridge void*) self);
 }
 
-- (double)myNormalizedDouble
-{
-    double min;
-    double max;
-    double current;
-
-    min = [self minValue];
-    max = [self maxValue];
-    current = [self doubleValue];
-
-    max -= min;
-    current -= min;
-
-    return current / max;
-}
-
-- (NSRect)knobRectFlipped:(BOOL)flipped
-{
-    NSRect barRect = [self barRectFlipped:NO];
-    CGFloat knobThickness = barRect.size.height;
-    double val = [self myNormalizedDouble];
-
-    NSRect rect = NSMakeRect((NSWidth(barRect) - knobThickness) * val, 0, knobThickness, knobThickness);
-    return [[self controlView] backingAlignedRect:rect options:NSAlignAllEdgesNearest];
-}
-
 #pragma mark -
 #pragma mark Normal slider drawing
 
 - (void)drawKnob:(NSRect)knobRect
 {
-    if (_isKnobHidden)
+    if (_isKnobHidden) {
         return;
-
-    // Draw knob
-    NSBezierPath* knobPath = [NSBezierPath bezierPathWithOvalInRect:NSInsetRect(knobRect, 1.0, 1.0)];
-    if (self.isHighlighted) {
-        [_activeKnobFillColor setFill];
-    } else {
-        [_knobFillColor setFill];
     }
 
-    [knobPath fill];
-
-    [_knobStrokeColor setStroke];
-    knobPath.lineWidth = 0.5;
-
-    [NSGraphicsContext saveGraphicsState];
-    if (self.isHighlighted)
-        [_knobShadow set];
-    [knobPath stroke];
-    [NSGraphicsContext restoreGraphicsState];
-}
-
-- (NSRect)barRectFlipped:(BOOL)flipped
-{
-    return [[self controlView] bounds];
+    [super drawKnob:knobRect];
 }
 
 - (void)drawBarInside:(NSRect)rect flipped:(BOOL)flipped
 {
-    // Inset rect
-    rect = NSInsetRect(rect, 1.0, 1.0);
-
-    rect = [[self controlView] backingAlignedRect:rect options:NSAlignAllEdgesNearest];
+    const CGFloat trackBorderRadius = 1;
 
     // Empty Track Drawing
-    NSBezierPath* emptyTrackPath = [NSBezierPath bezierPathWithRoundedRect:rect xRadius:3 yRadius:3];
-
-    [_trackGradient vlc_safeDrawInBezierPath:emptyTrackPath angle:-90];
+    NSBezierPath* emptyTrackPath = [NSBezierPath bezierPathWithRoundedRect:rect
+                                                                   xRadius:trackBorderRadius
+                                                                   yRadius:trackBorderRadius];
+    [_emptySliderBackgroundColor setFill];
+    [emptyTrackPath fill];
 
     if (_isKnobHidden) {
-        [_trackStrokeColor setStroke];
-        emptyTrackPath.lineWidth = 1;
-        [emptyTrackPath stroke];
         return;
     }
 
@@ -243,17 +132,12 @@ static CVReturn DisplayLinkCallback(CVDisplayLinkRef displayLink, const CVTimeSt
     filledTrackRect.size.width = knobRect.origin.x + (knobRect.size.width / 2);
 
     // Filled Track Drawing
-    CGFloat filledTrackCornerRadius = 2;
     NSBezierPath* filledTrackPath = [NSBezierPath bezierPathWithRoundedRect:filledTrackRect
-                                                                    xRadius:filledTrackCornerRadius
-                                                                    yRadius:filledTrackCornerRadius];
+                                                                    xRadius:trackBorderRadius
+                                                                    yRadius:trackBorderRadius];
 
-    [_filledTrackColor setFill];
+    [[NSColor VLCAccentColor] setFill];
     [filledTrackPath fill];
-
-    [_trackStrokeColor setStroke];
-    emptyTrackPath.lineWidth = 1;
-    [emptyTrackPath stroke];
 }
 
 #pragma mark -


=====================================
modules/gui/macosx/views/VLCTimeField.h
=====================================
@@ -34,6 +34,8 @@ extern NSString *VLCTimeFieldDisplayTimeAsRemaining;
 
 @interface VLCTimeField : NSTextField
 
+ at property (readwrite, assign, nonatomic) BOOL isTimeRemaining;
+
 - (void)setRemainingIdentifier:(NSString *)identifier;
 - (void)setTime:(NSString *)time withRemainingTime:(NSString *)remainingTime;
 


=====================================
modules/gui/macosx/views/VLCTimeField.m
=====================================
@@ -6,6 +6,7 @@
  * Authors: Jon Lech Johansen <jon-vl at nanocrew.net>
  *          Felix Paul Kühne <fkuehne at videolan dot org>
  *          Marvin Scholz <epirat07 at gmail dot com>
+ *          Claudio Cambra <developer at claudiocambra dot com>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -32,14 +33,13 @@ NSString *VLCTimeFieldDisplayTimeAsRemaining = @"DisplayTimeAsTimeRemaining";
 @interface VLCTimeField ()
 {
     NSString *_identifier;
-    BOOL _isTimeRemaining;
-
     NSString *_cachedTime;
     NSString *_remainingTime;
 }
 @end
 
 @implementation VLCTimeField
+
 + (void)initialize
 {
     NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
@@ -57,23 +57,28 @@ NSString *VLCTimeFieldDisplayTimeAsRemaining = @"DisplayTimeAsTimeRemaining";
     _isTimeRemaining = [[NSUserDefaults standardUserDefaults] boolForKey:_identifier];
 }
 
+- (void)setIsTimeRemaining:(BOOL)isTimeRemaining
+{
+    if (_identifier) {
+        _isTimeRemaining = [[NSUserDefaults standardUserDefaults] boolForKey:_identifier];
+        _isTimeRemaining = !_isTimeRemaining;
+        [[NSUserDefaults standardUserDefaults] setObject:(_isTimeRemaining ? @"YES" : @"NO") forKey:_identifier];
+    } else {
+        _isTimeRemaining = !_isTimeRemaining;
+    }
+
+    [self updateTimeValue];
+}
+
 - (void)mouseDown: (NSEvent *)ourEvent
 {
-    if ( [ourEvent clickCount] > 1 )
+    if ( [ourEvent clickCount] > 1 ) {
         [[[VLCMain sharedInstance] mainMenu] goToSpecificTime: nil];
-    else
-    {
-        if (_identifier) {
-            _isTimeRemaining = [[NSUserDefaults standardUserDefaults] boolForKey:_identifier];
-            _isTimeRemaining = !_isTimeRemaining;
-            [[NSUserDefaults standardUserDefaults] setObject:(_isTimeRemaining ? @"YES" : @"NO") forKey:_identifier];
-        } else {
-            _isTimeRemaining = !_isTimeRemaining;
-        }
-
-        [self updateTimeValue];
+    } else {
+        self.isTimeRemaining = !self.isTimeRemaining;
     }
 
+    [self updateTimeValue];
     [[self nextResponder] mouseDown:ourEvent];
 }
 


=====================================
modules/gui/macosx/windows/mainwindow/VLCControlsBarCommon.h
=====================================
@@ -71,5 +71,6 @@
 
 - (IBAction)timeSliderAction:(id)sender;
 - (IBAction)fullscreen:(id)sender;
+- (void)updateTimeSlider:(NSNotification *)aNotification;
 
 @end


=====================================
modules/gui/macosx/windows/mainwindow/VLCMainWindowControlsBar.h
=====================================
@@ -40,6 +40,9 @@
 @property (readwrite, strong) IBOutlet NSButton *prevButton;
 @property (readwrite, strong) IBOutlet NSButton *nextButton;
 
+ at property (readwrite, strong) IBOutlet NSLayoutConstraint *artistNameTextFieldWidthConstraint;
+
+ at property (readwrite, strong) IBOutlet NSTextField *songArtistSeparatorTextField;
 @property (readwrite, strong) IBOutlet VLCVolumeSlider *volumeSlider;
 @property (readwrite, strong) IBOutlet NSButton *volumeDownButton;
 @property (readwrite, strong) IBOutlet NSButton *volumeUpButton;


=====================================
modules/gui/macosx/windows/mainwindow/VLCMainWindowControlsBar.m
=====================================
@@ -25,11 +25,17 @@
 #import "VLCControlsBarCommon.h"
 
 #import "extensions/NSString+Helpers.h"
+
+#import "library/VLCInputItem.h"
 #import "library/VLCLibraryWindow.h"
+
 #import "main/VLCMain.h"
+
 #import "playlist/VLCPlaylistController.h"
 #import "playlist/VLCPlayerController.h"
+
 #import "views/VLCVolumeSlider.h"
+#import "views/VLCWrappableTextField.h"
 
 /*****************************************************************************
  * VLCMainWindowControlsBar
@@ -130,6 +136,19 @@
 #pragma mark -
 #pragma mark Extra updaters
 
+- (void)updateTimeSlider:(NSNotification *)aNotification
+{
+    [super updateTimeSlider:aNotification];
+
+    VLCInputItem *inputItem = _playerController.currentMedia;
+    if (inputItem == nil) {
+        return;
+    }
+
+    _artistNameTextFieldWidthConstraint.active = inputItem.artist.length != 0;
+    _songArtistSeparatorTextField.hidden = inputItem.artist.length == 0;
+}
+
 - (void)updateVolumeSlider:(NSNotification *)aNotification
 {
     float f_volume = _playerController.volume;



View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/6d7ce21912cf87aa58012ad484b14be853236a38...2bcc1c1288a1b4cd68fff48661e7ee7c65308bbc

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/6d7ce21912cf87aa58012ad484b14be853236a38...2bcc1c1288a1b4cd68fff48661e7ee7c65308bbc
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