[vlc-devel] [PATCH] macosx: Rework VLC Status bar icon for OS X

Marvin Scholz epirat07 at gmail.com
Fri May 13 15:42:04 CEST 2016


This overhauls the VLC Status Bar Icon for OS X
It completely changed the appearance, using a mini-player instead of
simple menu items.
Additionally the current playing track with metadata is shown, including
it's coverart, if any.

TODO:
  - Use more of the InputManager hooks to prevent unnecessary updates
  - Refactor the metadata update code, it's a  bit cluttered
  - Increase accessibility
---
 .../English.lproj/VLCStatusBarIconMainMenu.xib     | 196 +++++--
 .../Resources/vlcmenubaricon/VLCNextTemplate.pdf   | Bin 0 -> 3086 bytes
 .../Resources/vlcmenubaricon/VLCPauseTemplate.pdf  | Bin 0 -> 3036 bytes
 .../Resources/vlcmenubaricon/VLCPlayTemplate.pdf   | Bin 0 -> 3034 bytes
 .../vlcmenubaricon/VLCPreviousTemplate.pdf         | Bin 0 -> 3094 bytes
 .../vlcmenubaricon/VLCShuffleTemplate.pdf          | Bin 0 -> 3516 bytes
 .../Resources/vlcmenubaricon/VLCStatusBarIcon.pdf  | Bin 0 -> 6398 bytes
 .../macosx/Resources/vlcmenubaricon/pauseIcon.png  | Bin 455 -> 0 bytes
 .../Resources/vlcmenubaricon/pauseIcon at 2x.png      | Bin 1055 -> 0 bytes
 .../macosx/Resources/vlcmenubaricon/playIcon.png   | Bin 559 -> 0 bytes
 .../Resources/vlcmenubaricon/playIcon at 2x.png       | Bin 1528 -> 0 bytes
 .../Resources/vlcmenubaricon/statusBarIcon.pdf     | Bin 6398 -> 0 bytes
 .../macosx/Resources/vlcmenubaricon/stopIcon.png   | Bin 354 -> 0 bytes
 .../Resources/vlcmenubaricon/stopIcon at 2x.png       | Bin 688 -> 0 bytes
 .../package/macosx/vlc.xcodeproj/project.pbxproj   |  52 +-
 modules/gui/macosx/InputManager.m                  |   1 +
 modules/gui/macosx/VLCStatusBarIcon.h              |   7 +-
 modules/gui/macosx/VLCStatusBarIcon.m              | 574 +++++++++++----------
 18 files changed, 488 insertions(+), 342 deletions(-)
 create mode 100644 extras/package/macosx/Resources/vlcmenubaricon/VLCNextTemplate.pdf
 create mode 100644 extras/package/macosx/Resources/vlcmenubaricon/VLCPauseTemplate.pdf
 create mode 100644 extras/package/macosx/Resources/vlcmenubaricon/VLCPlayTemplate.pdf
 create mode 100644 extras/package/macosx/Resources/vlcmenubaricon/VLCPreviousTemplate.pdf
 create mode 100644 extras/package/macosx/Resources/vlcmenubaricon/VLCShuffleTemplate.pdf
 create mode 100644 extras/package/macosx/Resources/vlcmenubaricon/VLCStatusBarIcon.pdf
 delete mode 100644 extras/package/macosx/Resources/vlcmenubaricon/pauseIcon.png
 delete mode 100644 extras/package/macosx/Resources/vlcmenubaricon/pauseIcon at 2x.png
 delete mode 100644 extras/package/macosx/Resources/vlcmenubaricon/playIcon.png
 delete mode 100644 extras/package/macosx/Resources/vlcmenubaricon/playIcon at 2x.png
 delete mode 100644 extras/package/macosx/Resources/vlcmenubaricon/statusBarIcon.pdf
 delete mode 100644 extras/package/macosx/Resources/vlcmenubaricon/stopIcon.png
 delete mode 100644 extras/package/macosx/Resources/vlcmenubaricon/stopIcon at 2x.png

diff --git a/extras/package/macosx/Resources/English.lproj/VLCStatusBarIconMainMenu.xib b/extras/package/macosx/Resources/English.lproj/VLCStatusBarIconMainMenu.xib
index e146530..77ff9fe 100755
--- a/extras/package/macosx/Resources/English.lproj/VLCStatusBarIconMainMenu.xib
+++ b/extras/package/macosx/Resources/English.lproj/VLCStatusBarIconMainMenu.xib
@@ -1,71 +1,205 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="9532" systemVersion="14F27" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="10117" systemVersion="15E65" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
     <dependencies>
         <deployment identifier="macosx"/>
         <development version="7000" identifier="xcode"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9532"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="10117"/>
     </dependencies>
     <objects>
         <customObject id="-2" userLabel="File's Owner" customClass="VLCStatusBarIcon">
             <connections>
-                <outlet property="nextItem" destination="GhQ-VQ-jtu" id="45X-b4-mHv"/>
-                <outlet property="playPauseItem" destination="9kC-yJ-Gy5" id="laU-MV-Il1"/>
-                <outlet property="prevItem" destination="iHu-rd-8KL" id="IzO-1Q-rtv"/>
+                <outlet property="albumField" destination="SKt-XT-Vki" id="33Z-OU-f74"/>
+                <outlet property="artistField" destination="FnZ-Gr-BKf" id="wl6-Tg-uhc"/>
+                <outlet property="backwardsButton" destination="p8X-zU-PwN" id="y6F-9l-mm8"/>
+                <outlet property="coverImageView" destination="0kw-t4-DcN" id="QmE-0F-ud4"/>
+                <outlet property="forwardButton" destination="NHj-Vf-SPF" id="XOV-fo-CZn"/>
+                <outlet property="pathActionItem" destination="1QM-IB-vK4" id="gbD-sJ-WLP"/>
+                <outlet property="playPauseButton" destination="lvI-lN-t4O" id="kA7-4Q-q36"/>
+                <outlet property="progressField" destination="z3X-aG-Veg" id="wV9-n7-N7O"/>
                 <outlet property="quitItem" destination="539" id="xuy-Vl-Ami"/>
-                <outlet property="randItem" destination="lPi-EL-hoN" id="dOE-ib-n98"/>
+                <outlet property="randButton" destination="PaW-Fe-vxo" id="L3x-xm-50A"/>
+                <outlet property="separatorField" destination="za4-8d-tZy" id="Qcx-VE-sZY"/>
                 <outlet property="showMainWindowItem" destination="08C-TA-yqu" id="qQR-Ah-T0b"/>
-                <outlet property="stopItem" destination="4Sh-MJ-bSf" id="qBc-qg-d9R"/>
+                <outlet property="titleField" destination="Byt-pH-60l" id="JKP-xq-fIb"/>
+                <outlet property="totalField" destination="wXO-2p-mxK" id="XoY-cx-jzm"/>
                 <outlet property="vlcStatusBarIconMenu" destination="534" id="O0F-8Q-FgA"/>
             </connections>
         </customObject>
         <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
         <customObject id="-3" userLabel="Application" customClass="NSObject"/>
         <customObject id="420" customClass="NSFontManager"/>
-        <menu id="534" userLabel="vlcStatusBarIconMenu">
+        <menu autoenablesItems="NO" id="534" userLabel="vlcStatusBarIconMenu">
             <items>
-                <menuItem title="Show Main Window" toolTip="Restore main window" id="08C-TA-yqu">
+                <menuItem title="Loading Now playing view..." id="KRm-PC-DPQ">
                     <modifierMask key="keyEquivalentModifierMask"/>
                     <connections>
-                        <action selector="restoreMainWindow:" target="-2" id="2Uq-Pa-toi"/>
+                        <outlet property="view" destination="fDN-Tb-DeD" id="T0n-Z2-HeL"/>
                     </connections>
                 </menuItem>
-                <menuItem isSeparatorItem="YES" id="t2X-zn-Z4x"/>
-                <menuItem title="Play" tag="74747" toolTip="Start/Pause playback" id="9kC-yJ-Gy5">
+                <menuItem isSeparatorItem="YES" id="hOT-4N-jtU"/>
+                <menuItem title="Loading Player view..." id="w9T-bW-Qom">
                     <modifierMask key="keyEquivalentModifierMask"/>
                     <connections>
-                        <action selector="statusBarIconTogglePlayPause:" target="-2" id="py3-sd-ST2"/>
+                        <outlet property="view" destination="v97-Ct-Yqs" id="mXc-iD-4sJ"/>
                     </connections>
                 </menuItem>
-                <menuItem title="Stop" tag="83838" toolTip="Stop playback" id="4Sh-MJ-bSf">
+                <menuItem isSeparatorItem="YES" id="dNe-Wu-c6x"/>
+                <menuItem title="URL/Path action" enabled="NO" id="1QM-IB-vK4">
+                    <modifierMask key="keyEquivalentModifierMask"/>
                     <connections>
-                        <action selector="statusBarIconStop:" target="-2" id="unT-d5-vlC"/>
+                        <action selector="copyOrOpenCurrentPlaybackItem:" target="-2" id="I4p-PQ-kPp"/>
                     </connections>
                 </menuItem>
-                <menuItem isSeparatorItem="YES" id="b5S-aL-b79"/>
-                <menuItem title="Next" toolTip="Next track in playlist" id="GhQ-VQ-jtu">
+                <menuItem title="Show Main Window" id="08C-TA-yqu">
+                    <modifierMask key="keyEquivalentModifierMask"/>
                     <connections>
-                        <action selector="statusBarIconNext:" target="-2" id="VZh-xB-5IC"/>
+                        <action selector="restoreMainWindow:" target="-2" id="2Uq-Pa-toi"/>
                     </connections>
                 </menuItem>
-                <menuItem title="Previous" toolTip="Previous track in playlist" id="iHu-rd-8KL">
+                <menuItem title="Quit" id="539">
+                    <modifierMask key="keyEquivalentModifierMask"/>
                     <connections>
-                        <action selector="statusBarIconPrevious:" target="-2" id="rNU-Dq-Sot"/>
+                        <action selector="quitAction:" target="-2" id="OJL-0Y-e8i"/>
                     </connections>
                 </menuItem>
-                <menuItem isSeparatorItem="YES" id="Dn5-wA-WfF"/>
-                <menuItem title="Random" tag="63636" toolTip="Randomize play order" id="lPi-EL-hoN">
+            </items>
+            <point key="canvasLocation" x="354" y="328.5"/>
+        </menu>
+        <customView id="fDN-Tb-DeD">
+            <rect key="frame" x="0.0" y="0.0" width="247" height="70"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+            <subviews>
+                <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" id="0kw-t4-DcN">
+                    <rect key="frame" x="6" y="4" width="48" height="62"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+                    <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="vlc" id="7Ns-2s-EgU"/>
+                </imageView>
+                <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" id="Byt-pH-60l">
+                    <rect key="frame" x="60" y="42" width="183" height="17"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+                    <textFieldCell key="cell" lineBreakMode="truncatingTail" allowsUndo="NO" sendsActionOnEndEditing="YES" title="The Fox (What Does the Fox Say?) to this very very" usesSingleLineMode="YES" id="Fo7-qA-sCC">
+                        <font key="font" metaFont="system"/>
+                        <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+                        <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
+                    </textFieldCell>
+                </textField>
+                <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" id="FnZ-Gr-BKf">
+                    <rect key="frame" x="60" y="27" width="183" height="17"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+                    <textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="by Ylvis" usesSingleLineMode="YES" id="TWt-2V-iGT">
+                        <font key="font" metaFont="system"/>
+                        <color key="textColor" red="0.34105039267015702" green="0.34105039267015702" blue="0.34105039267015702" alpha="1" colorSpace="calibratedRGB"/>
+                        <color key="backgroundColor" red="0.021842277486911033" green="0.021842277486911033" blue="0.021842277486911033" alpha="1" colorSpace="calibratedRGB"/>
+                    </textFieldCell>
+                </textField>
+                <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" id="SKt-XT-Vki">
+                    <rect key="frame" x="60" y="12" width="183" height="17"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+                    <textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="on “The Fox”" usesSingleLineMode="YES" id="IKI-Pl-Iji">
+                        <font key="font" metaFont="system"/>
+                        <color key="textColor" red="0.34105039269999998" green="0.34105039269999998" blue="0.34105039269999998" alpha="1" colorSpace="calibratedRGB"/>
+                        <color key="backgroundColor" red="0.021842277489999999" green="0.021842277489999999" blue="0.021842277489999999" alpha="1" colorSpace="calibratedRGB"/>
+                    </textFieldCell>
+                </textField>
+            </subviews>
+            <point key="canvasLocation" x="370.5" y="-52"/>
+        </customView>
+        <customView id="v97-Ct-Yqs">
+            <rect key="frame" x="0.0" y="0.0" width="247" height="45"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+            <subviews>
+                <button verticalHuggingPriority="750" id="rih-mA-gAq">
+                    <rect key="frame" x="32" y="1" width="184" height="14"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+                    <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" alignment="center" transparent="YES" imageScaling="proportionallyDown" inset="2" id="RbD-Js-cLU">
+                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                        <font key="font" metaFont="system"/>
+                    </buttonCell>
                     <connections>
-                        <action selector="statusBarIconToggleRandom:" target="-2" id="DyP-Hd-KHG"/>
+                        <action selector="toggelProgressTime:" target="-2" id="S3e-vr-guH"/>
                     </connections>
-                </menuItem>
-                <menuItem isSeparatorItem="YES" id="p96-c8-lBM"/>
-                <menuItem title="Quit" toolTip="Quit VLC" id="539">
+                </button>
+                <button id="p8X-zU-PwN">
+                    <rect key="frame" x="76" y="20" width="28" height="24"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+                    <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="VLCPreviousTemplate" imagePosition="overlaps" alignment="center" imageScaling="proportionallyUpOrDown" inset="2" id="PSI-Wi-u0R">
+                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                        <font key="font" metaFont="system"/>
+                    </buttonCell>
                     <connections>
-                        <action selector="quitAction:" target="-2" id="OJL-0Y-e8i"/>
+                        <action selector="statusBarIconPrevious:" target="-2" id="kAL-hK-8qL"/>
                     </connections>
-                </menuItem>
-            </items>
-            <point key="canvasLocation" x="328.5" y="267.5"/>
-        </menu>
+                </button>
+                <button id="lvI-lN-t4O">
+                    <rect key="frame" x="109" y="20" width="28" height="24"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+                    <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="VLCPlayTemplate" imagePosition="only" alignment="center" alternateImage="VLCPauseTemplate" imageScaling="proportionallyUpOrDown" inset="2" id="nqu-wV-vI1">
+                        <behavior key="behavior" pushIn="YES" changeContents="YES" lightByContents="YES"/>
+                        <font key="font" metaFont="system"/>
+                    </buttonCell>
+                    <connections>
+                        <action selector="statusBarIconTogglePlayPause:" target="-2" id="K38-Dr-lNS"/>
+                    </connections>
+                </button>
+                <button id="NHj-Vf-SPF">
+                    <rect key="frame" x="141" y="20" width="28" height="24"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+                    <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="VLCNextTemplate" imagePosition="overlaps" alignment="center" imageScaling="proportionallyUpOrDown" inset="2" id="BIa-Vy-yD2">
+                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                        <font key="font" metaFont="system"/>
+                    </buttonCell>
+                    <connections>
+                        <action selector="statusBarIconNext:" target="-2" id="4I4-wu-R5u"/>
+                    </connections>
+                </button>
+                <button id="PaW-Fe-vxo">
+                    <rect key="frame" x="179" y="12" width="18" height="21"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+                    <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="VLCShuffleTemplate" imagePosition="only" alignment="center" imageScaling="proportionallyUpOrDown" inset="2" id="VEm-qG-2cc">
+                        <behavior key="behavior" pushIn="YES" changeContents="YES" lightByContents="YES"/>
+                        <font key="font" metaFont="system"/>
+                    </buttonCell>
+                    <connections>
+                        <action selector="statusBarIconToggleRandom:" target="-2" id="IHE-JL-EfK"/>
+                    </connections>
+                </button>
+                <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" id="z3X-aG-Veg">
+                    <rect key="frame" x="18" y="0.0" width="100" height="17"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+                    <textFieldCell key="cell" lineBreakMode="truncatingTail" allowsUndo="NO" sendsActionOnEndEditing="YES" alignment="right" title="00:00" usesSingleLineMode="YES" id="CLT-p2-bxf">
+                        <font key="font" metaFont="system"/>
+                        <color key="textColor" name="secondaryLabelColor" catalog="System" colorSpace="catalog"/>
+                        <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                    </textFieldCell>
+                </textField>
+                <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" id="za4-8d-tZy">
+                    <rect key="frame" x="115" y="1" width="17" height="17"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+                    <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" allowsUndo="NO" sendsActionOnEndEditing="YES" alignment="center" title="/" usesSingleLineMode="YES" id="y3P-oA-eTa">
+                        <font key="font" metaFont="system"/>
+                        <color key="textColor" name="secondaryLabelColor" catalog="System" colorSpace="catalog"/>
+                        <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                    </textFieldCell>
+                </textField>
+                <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" id="wXO-2p-mxK">
+                    <rect key="frame" x="127" y="0.0" width="102" height="17"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+                    <textFieldCell key="cell" lineBreakMode="truncatingTail" allowsUndo="NO" sendsActionOnEndEditing="YES" title="00:00" usesSingleLineMode="YES" id="vF8-Z8-vhW">
+                        <font key="font" metaFont="system"/>
+                        <color key="textColor" name="secondaryLabelColor" catalog="System" colorSpace="catalog"/>
+                        <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                    </textFieldCell>
+                </textField>
+            </subviews>
+            <point key="canvasLocation" x="370.5" y="100.5"/>
+        </customView>
     </objects>
+    <resources>
+        <image name="VLCNextTemplate" width="128" height="128"/>
+        <image name="VLCPauseTemplate" width="128" height="128"/>
+        <image name="VLCPlayTemplate" width="128" height="128"/>
+        <image name="VLCPreviousTemplate" width="128" height="128"/>
+        <image name="VLCShuffleTemplate" width="128" height="128"/>
+        <image name="vlc" width="512" height="512"/>
+    </resources>
 </document>
diff --git a/extras/package/macosx/Resources/vlcmenubaricon/VLCNextTemplate.pdf b/extras/package/macosx/Resources/vlcmenubaricon/VLCNextTemplate.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..f619e27862e50dc318ee889f1d396b63f8a8991a
GIT binary patch
literal 3086
zcmb_edu$s;8gJs`QP+^t!s*IUG;A7 at D6D69{oIx9Ch^9QQ<4V9Z30Qao857;bnW%6
z*NPJb`iMxM(DLYA(Vco#)pBqWh|(%m3DD5el3r<PPrRibMJ>l69tGW1fH<zqZtU23
z^ymrvhdrM8=9}O5`<`XZe2Ap&9&6dTvv2&(>Hri_yY934e6Rr}y7eBw;GHlG$%>9N
z7*Yfs at kmr91e*X2!$P7PwNrowoq>QgrE5rtTQl#A(P+b1{RuKgN26oMt17h;ZR5tZ
z8^h5RqoaQvJvMp}90reV?dUl3tGQ<mt(-qFa%A-C9q`lDuXllKp4++em*tjE$ZF-0
zj^;@5&JSkozPGQwX!G$Ni?l&n^9$DUUQzXMb)rdTB5-Wkwl`lq83m-}$QQOc+tao!
zw!^lgwskhPdboIS&S0fwY{k157OcAPEq%_i^j6E!;_Y7$Lk&avkZow*l?%7`RGxHh
zX65LfmQ_zKTWu?PaQ+Jy=giwM at 56w|xUZbG_)BK16(yvsVR&V5V=!X=Qf}kWSh}at
z=DGxJg*0^@8 at Z;q##VP~;4c|^)mObrYjx3^vqp**ojmYr^<Ls7?(2d5%<$J+L#O{p
z{rNeoZ_QKJEjgrzn_fBFz2l~r*7ra2{HE_@@9upIPkhAJm3&M*dht(pY~C`ukqO at E
zyvuSba>GOKe7+%2ssYP%BMf{7a+>nyjG(E!6}l!QlSl#;F+oY8N-GRv*XpVUDq4^x
z$3RUiCMRUQ51&M2T|uA%E=?gV1yQrC2|DCaYPqf^;j)Hc6Uyij6i*tV(}a5MNhy}o
zC#wk_?}7 at RV<_59xo8LFb~+hH6~&ZOR5_MwRHYviY1ULJEh3B!$Fd at KRW<YVfVES0
z7b$~|ibg>MOIko1NmF(fxSbu9l~(M9tmo*QH}ers)28nteMtlxkuFGrF2I&_mu_sd
zH8$j3=v$mg3gU94gD%u9C;Y_ukpl#fB|p*XYNQ&ILDVDP(XXMF{-%i7zg%P`VsXF<
z at W+?oGVx>_YX_OQl1OnGKOx{yLL6Qj+mIL+#G;xM<HCF>D~SL3i5^`~auD|R_S$<L
zc2(<!G|RG(Vj#niSb|LTC3GP}CQ_vnda|0ZXGBd->X>_AXcoHEwC*Q}9FBOhv2o&o
zM9OZWvWsdQW`rc9?G%j1^Wes9G462niIgrRL{!fQ(rH=ZoQ$W2rR!+Y6=Eoo_c&_F
zpvM&?YaQ;I5bx!AH}CR6%);cmCOw8)gCz5iSH*N3CG?zPp7z$#4v&XqS(k^TsJb8-
zWF2mjrJc33H|XIh)|*pYaCbtn4;pqC at Q`ErvKji{{1h-gZUbi~4>IC7V8l5|xk%a(
zq1>F)$(g~<QIv_eP;vrqRte4oIo5YMN(v;WD#@mCL{*i*<V-GjU)9X>sdsa^a9I$t
zd1J~>DEf)a<H|8J^Y{QqrejK2;$1FR8v-+whG~_d(g!Eq`5AHJ^v>q&q?E$XWoAa6
z;j$$-U{+ugS$^;5LMDk5xRPm2F)N8ALZl!g;ZhhHJ%v<B<aDFp=X1u)R3oEm6n*k;
zHlGyPs4bj=X9YizAte+O(uz(5{-2I99yy9U`GN7>DewB=bc~k_yzv8EUB?yUB*@j}
zfHhy;aj)<bno+y)YVt5(HVd<nx)^$*sT7P+W*Z6O7NV%#uvzFvDLgG1BULV)fZ2k=
z`If}y+i-RUqn+lB8HO-Z`;xBvTJ$&`$eegi(^5KM=zNdLyub9}SFD4SZRq^{>tC#C
zFW+<3SKEKh42kcael_^Sdz;s78D9PJ_jfNCE1o^@pB4Y*XO+%gbltjDd)6k;5QO}j
zIsTr~@(X-P`M}eC$z69Y55l at fsx~aVX=Tmn*aAO%_VK3uQL=1s(bZ4DH#VgYo~}l_
zK3ntmf3F?sZ#_ at h9=<lycHy<#KR$Z!w})<gX4~=k<l2X-KI`A|=`P{szD2eBF800M
z{rWAN?)mP7d+x;tzAv8hRNa>|aBP at wa_sR;P at EfJaNoWZFKuBIgRSi}o?)3z*dq5M
zK)YdBRdqlc9ty+yL`((d+=JJAyU!g8;ikg4y=*W<^InQ!LvELw4N<%|RKwI#fghLX
z#IuhvA2$nHJcYppRV5uyq<{-HYe<qsV~C=eKp;0?dl|FW;jcoU-EeI8?3LAX`BMi5
zD}LYp;Qn}z1mBJ>y=qt}IdbzqU-*M>sHAkXb4OeGzICnNT*2J9Ui;VV-`(~=*Y2|b
v-hTZy|H6OleQWOr;r5o$H$~3F^Uh5t6*p^5&uA!SWjs!&wXCdeNyz#G?)T+c

literal 0
HcmV?d00001

diff --git a/extras/package/macosx/Resources/vlcmenubaricon/VLCPauseTemplate.pdf b/extras/package/macosx/Resources/vlcmenubaricon/VLCPauseTemplate.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..fe973eef0eef39cf43f0adcaee91235b59907a67
GIT binary patch
literal 3036
zcmb_eZEzDs7%r`Y5P~3#4yfoEsBNcScJD5i^fF0knlxIbEio<7u?2g*+q4IlyLh=w
z(~9!Zp- at 4@5k~mqbR2N>hmKms4;ZZ|SU?1<gMgyo=Quc`j?CyN;@%}``i0_Xek7aS
zci(;X+4p^)w=f(Gk(AwKDg5foqaRur0upM=a*M|Us*%#Fw-Gd+iGYwK>qrA3nb%Pe
z395)dEkS_ at ue72@NKnL5pU;xeHN?j(snbGpbM-*g2V|6LZXP&NTB1$UHf`FlDbl>E
zzyDDG;r at NZe&X@%O-*NKO+Wk2>X|F|9O$3)6ga>3{T5>C3p;n-SXA&GSuQ`;6t2(T
z`FY-p_jOcF*m9(;K-?&<zlJL~HKBZWxl$|9^<ZG}lOOFp)=ZEE2Y#?tTA#IUv+lPZ
zwDwrJ^4<AeQ at TnD23DQCID5^-->9z&7Tr;BFu(T)TX%K0-fiukF>y|BTgfrU7EWsJ
zt6TH*;<eTZ>t?=jdCH89GtT)0+Bq?A{*Ux_3sS_)#qh}B#$d$!g-&D97&^z$#$JK8
z;WQ1lPjiOv2H()GL56+#g)ltP2Nyx-Aj7=sh(HH at j9FZ~;Ohm0U(k- at eGu*=r{yt|
zuKQ&yBI7Uv2J6ZKqF at e@uJQ3W5{cp{FDFom1qARj>8eH)*C9=c68>mZQY5_tuhdJr
zjEG{eD1o#DKw(Mabr3{}6}lP+i>m`+KAAxEC>A&3pcb{;<6<=HP*Rm3o+XNdZW>Zf
z$Wjb+GA<gHLb?dTB5YTqivMI1)>JVmAPf!%rYyCThJ#fEXNPu{l!&I{8eSk4))5UP
z1??Q+bTpNeSTLoTXP~lAlM7#pG9RM8BaT1~(s_~Bc~F;Z(T$0Qn(Ewpc;=_#ys!f4
zL<?$_6tC^Vp0{j-BzkR2*cw<951=;b?oJKWb=KAkoht-Rw9WTf2>kJ++^JYRhP at N1
zn5-n+DX)#kae>@;Y)k`N+7O#+V$>Z8hBAiupV!u=>v1;#?d|RMcE+x1t$^Y<4nP{v
zG>I+9M2DjDDN;$y9rBa$gr7#xq_~c`Ck)Sgi<;EEHd_`)EM8MHbbykuo2cx98Ural
z4k$YWu~-gV`Yy&Eca at URc||}~L0>W{iEak^D>)X at q$@yIkQ~c$Bu6<Yva*bI(F{ei
zY#H<b%)-dMCOw8*gCuh?s0zs#QuM52iVbppe}E$WoC}hb4o3wUpj;g3qRLo?fet at M
zb6Lm3_6|Ar0OQ`nc*rt+)eQYTKf at SL-@$EW4>ID|XT&)PS(0Mvq0`N{aNy%$cf&Ll
z!!3vKW}M(mkfI$|<7AlSXeXIGu2)srH!_t?#?t4jnz=rDZ#EaM3PL7tOxqzx|B-oI
zImTxmFW|^zMujDwb!TgXZ=BLFrZSXxz=%EnBW|4DnVcPwQuw&k_{dZ4Obzy#CD=rk
zoBO|ziNX-Bcv6$iN+JpX$;e2!1cpY9B2^UJx>50SIb&w3kx_nGA32-JCs{ITi(AIR
z at 3o~!5k>i=tlND5N;1-+BTFMsNY9Qs*aOCbykg{~7jSt^JH}a%EzCYkuDoNh at Y*z^
zc;nGXX*bovP*RGe=^<4a))bjK62KZFtF0i+x1t2 at eT)Vvn@@zPL6Mv$aXBH*bX1hX
z+%Zl|WqM!Ovb;`@;r7abyDlxE6Eu|*snqF3o8Pu{L2LJg2Or++Z!GG&_NU&P>2BfV
znRf#_PHpMgwtMZHm+qZCkUx3lAFKWh=FOcv at A{rKeH-FuZ8mAa6mQ$yqKm<4MJu1}
zi0`^*MF3PjR=RP{Evx-!qO-l=`K`6DH<N{3^Cs;8M;}e at J5!E!eZT&*UpDONTyg<g
zH(!@(xcJ^(-yYm||2sE5_vDe8<c3E|zwg|3eiwgh$GnPHFL#`1egF1Hm;L^MbNc0n
zF6B>ort-&eI5w_ta_q{rE7=YP3-^_HX^5aGSkg%0j+9;s>ZDFYP)-n0Rh^)W7m9!?
zC8`o;=Yz+=Mo)ltRJ#0SPJaNa2;+y25Y0hHMTnvT6(JaM`u^EsDeiuZZa2(pu>=Me
zP~~JyNf0auYe<v?qm80ypD)`jm(ix!;jiIucEjNpC$BD_9z6b5SML*z>!vnz?`Y_G
z{lPi2PIj+*ruV$^^DN({y!M`!M?Rgn>|D`6D!lbj(aD#7U9*34*WNqtdF{l at HxE9r
m at DuKpl3nX>EB$!JOJhmJYOU!h4Mi=qlXF-K3o93fEPnwfp3Kt#

literal 0
HcmV?d00001

diff --git a/extras/package/macosx/Resources/vlcmenubaricon/VLCPlayTemplate.pdf b/extras/package/macosx/Resources/vlcmenubaricon/VLCPlayTemplate.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..7503d688f30d38abf94d9f23c1dc1f13fe863c45
GIT binary patch
literal 3034
zcmb_edu&rx7>CX9=*mNg1VqTSFt<5x&po%VwYFtlZznU`=pH=6hW75>)9u3Tz4i7s
zYZnB@!W>UALWF;S5FqjgM8IGWA`@Smh at ujML=*)jMgwRh(J11%ckS9e5RCMX_Vhd7
z`OfeBzGr at rDJP-XVaUI7`IFBK7J?$=rlkhA8&o2xS#2R`EU5+Mf~X<|l#8s27{tju
z0 at VZrwXD>P8Ylu1OT1n~OjQsYF(fW<p-^Q{#m8hAhC)4Oii?y9%7zVH8)`!<ySqQ^
zKHYtac#n8_TVvy;sS_`~vug74<L`Hm*$sYL{ZSJ!?zKI8rWEA<NS2B(H3sW*_Ixwq
z(6h;kk(<x7<nrtJ7anltemS!AXsJ{!(Dk5a!H#n$&V~pw_x)?efN{TZtMNT!uW_x>
zS$Z_5Bd?<<w`b+~o738F{sFJ#&VMYoH)q#1Q)gwT+G*^ZG-}4KmZG!P%}yb7q^^D6
zg4M>6YbL*WJ8#nZN#A-o+CFN;oE!8u1CsdE!|+PuMq@<(rR>_KwzLnS&2|UcvT6Ff
zb%H%O7yLk5Uq5HD)Kiw4p6?HzwH&olHPjbJC<k5B)Bel2jg`L{H$Jf{XIi7MxN!th
z at _L6t(r(jm*h<ofAeDinDr_{0c%m at OiZN7V0DkNzRaS_?I;03;!WRw;lAtE>PQ9Rt
zh$sZ}V at Qbs6ciLz1q_NUQ{^aFQ0WhfY_c9jqFNkOqgHd252x)3vczC1QOLMx3fd_f
zv`}{1NyB1_E}*CatXC!TcT))}G9Tv<#)bn^6q<^IOa<XIQ)U|}5RHXZEJw_%BNma6
zGCK*owXvwkfGJJ60j6D(310|xN7N^y2vi}J<yn;lb at 3)u6D+E#%=p7SClO`2Wk at BO
zP_rO;OxKT}G!X*tF)g%JQB_etY7yqPDX6Zkx}IxW#yNS at 9It`EA9uo)h(sgUI+2Ko
zQp}a`m{=Sa$c5LM7?}DLv8uv{UA0VkN)i9_m|9dd>H?s(wbk5eG0RFbfKI0qP&A-v
z5^IpLq@=P5Qi{#$x0AAjJ;NzNRK?sAnq{_0j;kJ%DUBl%t*Yw3K#G}lRAx?&fCL)_
z&`g0yBm=JRE!r7Zg%nd+i9;2PHy#&w7Ysm(vH2Mi+Wa(W3D7>$=W|e`-O6AeQx;3W
zNxK1NVc=Pv9?h&qlD^5vTs(p#HEq~g?g&^N<qT=3?U3|2Yz~t0`ylCumU8HD1Z-tx
zj<n&dv;BtMKznx<4{4_FnW2B at CyVjEH@NiVL0TMpwKyj!8wqjp+Fi8Mr3br<qIAUB
zn*DfFMsOww;pDv-$<iEbB$dYXvMhQBW^&g3vZC(~KAX;kdxDV48(p{G(Enr}SB~MC
z#~U~@ErY at mOI_*O;2owk45<u7ZZP1?eZ-B^JC(BoQVL&}7#?}Tl`6qry#njVGP3)H
zjOY4sMdOO7R}!8BNJLt~#V|BDh*X|)sanC$<cyxFT1NRqb)YnrPokjJ7MF+{zsHmy
zc@$>jqH6N~myXdFIifJ|f<Eb>d);6t#ybXH-v+L(eTH!or0cTRkg4vtS9nZ{R=e?P
zU}x8xh1N%*jfVYAC2J<q+lU{x5K(RhLADvi at aUt>N9lAT^cGZ`X-UpZ8%_;W(5jyp
zW}?!q&udy*r$+E}WyM365>p8pW_ncO!u(Bd8#*Xs=k at 2;o$xgj92xz~uIY3qcmCqL
z{_S6GUc2?^>bGt!p4O8ycKKf`|7J$a8aw;Jwe3f`qL)l2;pse2%dCQ%%!GpF`;*bV
zHOu at U@KW*m8IP>;T?|k2fP-7AkA=wmj at e_jgHK+JpSoCz_Wu0B*S~cgZ(DesGHx25
zSakD)r>^#%dhVTv59~NIne5tF{BzsZpZ2mdle5d-xSjl>`J+c)eCE%O?GtaWxRsOl
zYT(8&9Ba?lId(YuDNfHXxNqNymqoQG3>G#(Jdn~$K%LNr2xtejvaAwN^H43Qkis&d
z&pmj}G`JZjW3f=a0BtK{N*pB&RpMYutahh`_Lo`gwleSCHJ0GnM;ms7tP+V~aDG{g
zN2C~G13?Ax0;dg8koJ1h!*U7KdmaAD_Sr+H4~<<_I+6MGWXG;o8rB?(PhERp>V@;|
zq3Kh0uReIZm;0T{`6_>%O_`opvy-^&t9g89==67^r#w0S*Tc-Wi$9ktuX`d_&+XeX
eb478_q(ehF#l2cl6AB6&X#6}wetuwHx#1t1^UI3>

literal 0
HcmV?d00001

diff --git a/extras/package/macosx/Resources/vlcmenubaricon/VLCPreviousTemplate.pdf b/extras/package/macosx/Resources/vlcmenubaricon/VLCPreviousTemplate.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..8d554c18dab6cc0f2aacb9f83fa156d45bcf72a4
GIT binary patch
literal 3094
zcmb_ed2Ab18gFB+I_^RfSkbb;tlN-;Fn%**du)$vH?GGnS>+;e549<q$;`7eWIQv>
zjENIv=@Ai9nuT&yg<Wk`RSmoS1D2|*prwdSTS`-CDZ4_5LxCbLp;iqDia59XW at 5+A
zQ7BschyDEC_rCXizwi20G_!G>bouNRAAWG^KXx}pU`oeb_FxdyLpf!1ViekG0dY|>
zpa$X+XFwM6iU2_)MuHYjPQmpAMq(SnVY_Z<kW1UMZ}aW#^<#Cf;z_c-ee7gSwRW{O
zG&DHW(!OzY^ySf4Mh|00u}2?oYdd}YHK&hkD(^e^(&$xtz?m&4I<SS$?A`n8O53M+
zt at LnPbE0JLd-L}HzNc>f_LH49VViLOWdYk;^J_<H<wlW8fU(uPUVr|zb_}<@bj}fT
z>~rjJ9CaLbY;^=`M at srj`>SnZ8{a&?c=P#h$PaC+Zm}IN*?rDAP(NS{I0nkDxN&!9
z^=qE(0kQo+>*gm{Z*k1Oul%_SrDfa7-VgH>eZ{=xpHYw7p)BMaLn{*-6A|l|pv^;b
zNza1KdlA@*VcIZsaA65~?PdC!{p6t|U%jAQer at f-zLMK_Z(Q(RMdhM%oyk)>yN-SE
zPTO#o|A9Ts)^7Kw(FK2H7yW&F at K)6}GJ0UVDP8~ax|JjUSR$`{_J+WP=Q6Z2a^1SJ
zYVt47Jd$YYlmGmM?Wvn at zH_z@rg^5}B;m{ZKoSKf42 at G&C}34dPSRnu9Yj%N4MoGM
zTA?N;u}Cs0%A(POP7<OaL97a_(xIjU*eq(C0a&Pa8Hx&4*GHQ*c#o)L^aM<+X7)6~
zZkH+~^EyREX3;KI#WEB@(u9|E6SRkPQ#AxtNf4Dtu0augN~Bp+gbWXneJGtJv7 at G$
zt-}H?!sW$9tgWhn<FTezY%NX_t^h`R+N!JVC=j{ek@<iYlAa{3 at FjXw2pXWl37o-!
z)=Y<CZmeynFGMl8Jgahi7c{UAm=fiXbK>B?oR}ztoNK%dM1vZIo#O4i8f@)tOz^#3
zd_Zt658E;H31*pWT1_MEST-%mI+G1KIh0M1L2GjxI41>>s3s(t7B-#}ME^q0PQy?c
z0J^)oUEOY%qNM;C2m}B at 0gA$r1g`hU2A9QUed&~*oF)_<UK3RVVUL-bxeg^`gq+U2
z9ci_pVd?={cUe}scqI+8oC-)60n+J$ag)B7cbGa^H#nJxb!<435d|jhcl+XzxE~Mr
zSI{_1u at oNh5pFyliA20!Uo7qm_=5nUF#WCtkEzxK$vR{eK9h#BkylLkh^U{S{5Z+d
zEbb<W6*%pW_;A)oQqfq%L&a%NUUAXgDaAox`dx%W9_dR)=*RIXLVVH(#ws9a=5g4}
zbDZ$vq&q>-jE7{bWM>G%vbb1s%HEt3R0(3T=TejuNzPP~E9HcuNa5+#T=c%8S?4qF
z=4;`SOvu%ZB|D|)|3n^jj=7OX2PiY$Gtv_6GWp&Ro})F)>I~IEFzwDSXg4bFT+L1^
zDfC=+Zp*Vwt__E+E^Jv=*!!g{6Zk2+)Ql!sokZXPl%QE~Ix>x%0jj_=hS~HBHDgt(
zSy2(mn7*5<CrLDW3nL-A5OQX50VcVOWH`e=cWO*#k0efiWO8 at L+d(kf&Wk4B<N at li
zlZsIx<a=}2Ug+>>UWA;Q*}u_hIw!COhBZ*Vly_>d6tO95ltj at Ok(3l@=2B2cq{(Df
z`I5q{G1O8ROM${T&QUSaW8Ij8i&@&6I__#U(ukLN5M9%B1Ea{ooXWnv>cK<ye!?*@
z at rMVVkF2jeaOLN_Z=eSFH^*O$KJnJ}tvg1xyzs-i#bYH4`o7=zUv}Qo1<Mv~-F#qB
zJ?(Ugzbg%OF0DMzUR~L at uSXreqbmwx57%tF at i&_y<H^M#@bqJi|7^!A`j=hx1UU6j
z=J0qe96o#hyI&3->|HZKI3D~}cJ29ND?d4Y`0gW1p4xS?93T8+&Dq`^XNI|(dX}wt
z_Cn7asT03_=+5t6rLVbg?++!Ve~W!K2gauR7RJ5;X~`2AG`lZ`%i0#01Z&olh{{qM
zK&#jbF_H!?ieg}-8KD+XCnpum;y-B3t`GVmY&5pQM<Xucj|4nKED~V-F**>7cv&{)
zkA;6)VguqpCQWYUw6u<liz-qkE$f&UAVMUFyh)}=Djd$!Y`@!@cj&7)X4k#4f8i#=
z!Tx)qykt0Kzh}(xx^(E)v(aNqPSiFn>p1)I at o$+ at b!QblmVUqd-u|J1JwfBppN at jt
x&SkgnTxy@#)#y#97<u1EHzmKG?;R{VGaFSju{9&B!K9t?c}aUkMXV`q{~tv)<@*2t

literal 0
HcmV?d00001

diff --git a/extras/package/macosx/Resources/vlcmenubaricon/VLCShuffleTemplate.pdf b/extras/package/macosx/Resources/vlcmenubaricon/VLCShuffleTemplate.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..7f7246f72cd9daad662ab6db01adf71dd4e243fb
GIT binary patch
literal 3516
zcmb_fdt4J&7FMVzAwH^$ix1o}LV?A}%;W{hl0cq{8pVK0i`azB1O_J$Cld+i78Ic<
zzG#;!t>uR(y0z{4{OMABAXdd9KI-b?v)KArs}<4Ot<{#j6A~Uiw(f76Ka!h!&pr3M
z-<<E9GvP at Z9gOi~IN{g6Ir$|=2%(TYBbyT!hfE=CnM at WW05b+eM^X$yBRa~&5E{a4
z#|dOAgdql#Et5z?Aq+}aC^$}rCQMe2`-0hMoYI(h0=8gAV`Fo46g`+;zPx0)!I)oP
z|3!UMeFJnDdUx&Y*{vZ%S`QTrTUd9ben2&Hd-3rMXyCSu8;3{u-+~jUve`)~ejC5)
zv;EE7#J;PWv;6T={Owny{^$E9>`t&vB?T!+<IKu`>^)_KVE-d`xmxZ=+;Z+=?lJCC
zt~6n{Utv&Tlz(G>%fk_i9zMdZ`OkRG|CnFZU0(5&Vy2i|JTxG*Dl6)gXtk6y?o3{^
zY35>X-=blkbp#D99ePz^7Dxj6#NQLF<q$U9doeI#xnUXc{Gt+eksV5&p-ub(+IrHY
zPnND6rQ{yJ865hjst;lw`Nh{yORc|>u#6jWuPuG_cN3Qdd~$XA_?h_~?ar-V<qx`1
z{ptQKQPS+otN8b+*Z1~K{Ny53u_Zy0_!FeuesN66vFr`a2Uoct{InpYtY5rf?ddm{
zUR>ZZ+<oIbE-#uiCglFSu=~~DPr-N1-!#8D*l&1s(~`ZXPZeoOr?1yu56Nz+PhV5L
z#)iv^&cCy9cvIlMok>v0*zY2$TWSM;9Pz$uYkvQNgrbbV`G+cbDWhd28M_z1Yy5gi
z%?h!2?0X*uzLvX#((g(z(Qsjsbly<=laAO+V+#sh?|gfrym5Scu=4emJt6b at 4F2}Q
zie(Loiwl2o2)AA_mTfkyHv}DZESR`1tzYnv+Lr5 at kj?A-Z6}52tUF2lv=47(Nk4vT
z%z^!(B!1ESXkGt%KmYw-t)oYsDRZAbn0=@%!>k+m;~Z+p<O%z>kJ#vVT-yBk>GmT5
z7w&AqT8PP)QaR`9_ECXh>(4a37t1U=`vKg)eaB`v;_eqQX?_*THPJV}hM(-JQT3Of
z3?6jfIWaCE{@)#=KYqX7g!%P*<wAIqbxuR%tx3 at I2akVvI7+3?I~jZX^xQqXzBs3N
z-yhc04!beHhNs^M*s#0(+M3$Q6X#VmT^e95-CMC>b;;)1S3mnkt7w)F-ZuWq at quA~
zth`a_&@8B^yIDFRuc9t=!?rVoEw!q35f+1&A9--3O!a8T+57{omrpz!b8I-VfhHD8
zeKCij-9g9DCWnK-p-78~auQJ-L=BY4*l8#-nV?Avq_kK_8_DE?l at yYp2q+Sn;Us7$
zLL`y2i9s}kb1q|dAjw%Si-jUm2&;ot`cxu^@4ziSf27@}0kcq~MkYWp2`a{f7%CQv
z&}dW;fua$>PH)G5%_NDo<1RA+uz}P=kr~lRnnXy-NBLrygl0$TO=f6XGL#BqC|?Rm
zM6;u!I6yRBp<zDpbtfnc^GGcv*Fhk9f-&JH#)KrhG8lFuRX?R$adGi(hsivbV4w^l
zleEcsZFL8D5Q)oqv&4E-?@$w2<itFhNY0y at V$Pdumg2m41qTA3IJeAgby$IS$Ze%;
zPMKTIGXdojGB9SR5niVuFr{&e%%IVE4Z%M-FN<LuG6c!V$>HY+`F1)J!K6|tf(j6U
z00tJYGuOtL+_23#uFH?t6L>OanshLLdx-UH%CNf_IgjVVVRh*BT?g2ld=DzV*=|ML
zCI^D?QN(KP2G at BPc8@I4=44DZGm)rKxLhPIQ)8kSrA{D%HEJ{#R!cPkSSu35z!ITK
zB*m1dRx1|9A%KP6dp-29ZdsB%iyFJxWhHEk&#?$Zh)y7t!aAW=32P-f3>KkUF^ox7
z7%Eh2F;Oh)bKGNZm*Y5uy>|~Dd`!PIL;szh9*lS1LFN$;!N#$IjdK_UV1+3dDie!k
zo?w at uorrr{cH#9p0ZJe(xi90Shvm~wyfRL)+bKnFC3_g_Jl{@x)}P+%)51$Z at ao26
z+vVv0WFBOW=Q9r$Kx7J^3QI66^W_G`b5g at InIS3;>9yxK#0})_)od?Gf#clINA8w+
zQ?SC5fj!8&=YA_>xVa0L!$nh`OoE#cf+ASKIRP~6DN=E>jA0Xgw`M#_Wfi5QnBKEq
zJy9f^TVxby?c_W+j1v}<i(+_+|D|GdMh->xKA>~<sdM9yXEDAo at H!VjcI|WwMBvNI
z3Ql)+2em at ZquJaIM!kDCPqAPNDJB+RT}7ow*Xt=GYEVKbdnS@($|Rhixn(<GpPV31
z2{Lq-Bx!dU_O{HJ$g|@)J+sIAw2bUz#tQmp5ooJvCj$wv?i%I3Fk|IGP9e%IZu|4H
zy~?zRo&DRZMhS||Etfx6SDatHw0!sC{Xf4kqR}sK;gkGdG=0VehP}FU(asV_E00G`
z3X*4yi+HFR9I^1DTu06HxoSjP7F`-Tx<Gl^GD430?JrYnjc|Bj*nkS;<SJLg<piSU
z&f8bMFR9C$)rN9c4sxeHJUZd#v4(kvMt)k^JPa;b5q&4G{C16LOm3KJPe<;#%;RHM
z&3Sx6GNj|JpZ$XVs=fCdj at j#bIF5<wqS)8KfV%x6UQ!K&1(}tGfmaSeI+9H05fCOp
z40byMVeAt!Ac;1M9rE-&V5~`tQ;TDDQk6y`7KmasLX`$nDFv}2Au7_S)M}MZqWE=-
zbkO^-uQN#|+Uf-0)ON~cwK*X%l0*|YX=a-!OrTKsUWZ~aPpt!AJ)c=<laiCr=XXo4
zb_@(ZFDu$tl$=^ydd3laedHkC;d|8nO$T%Z at bn2$6OO_Q3l;|*JKQj?Qe2v&x~8-h
uZ*`m?&u;$b4{cE^u$rRZ8^0V@{w$}UR at 01|CM+Bw79-|_hij+lIR63s6T+SV

literal 0
HcmV?d00001

diff --git a/extras/package/macosx/Resources/vlcmenubaricon/VLCStatusBarIcon.pdf b/extras/package/macosx/Resources/vlcmenubaricon/VLCStatusBarIcon.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..0a905ba294a625be2a4b4254b983c006d4687860
GIT binary patch
literal 6398
zcmb_h2|UzY_eWW>W-TR6vdgTt8HUC%DEq!d#>`+CGa4gINF+-|LM3HMPl%AE$X1e&
zggn+t){=c!ws&ZMp6C6)@8|P>=kuAFJNKUZz2|rCIp1^c9Vt^Cj3NZ6$|*H8_^OQ)
z1^@#nE*_j38X!Xg*^TB7fHHc_K^P*5MxcT)BrJ`fL%>n+1duTR1~SKz-3Sg~0E8j*
z_3fys$>~F*60lyJ{yjIZ_*q(ZibTAs^rNT01h<LO<ALCic_3ilcC+2CY`Ytoo^l(J
zBC`(b at bfe4UP=pL&PdnKjdVF6o8`=>zthwO9G#Vg$8;PC3<#JS9$tE0+1KMX<+Id%
zDzya2Bx$lA2x7g$0!Wg1&rVl+Z4<87a(|79%|C?s4ingJG`k8l`Q)%9NOc$eQT>k9
z^Y6Hs^;fG1A4g3x!!}IXaxJTvnCg$$j*yHIM{7Sz7&i*tj-G%?+^Lg{7R5v*fsUBg
zQe9#khW<zm66rQ;8pn$})DGOR=x!iEmLmO6ox60<rB<(&RrHwgok+ at gTbRMMCgB-}
z6C`Lv5-(G<<O43XTz~%L$ZNHHyfpq9DwFr^QjppRmxy=a_5pO+?c1(%WhZ7>9s!TW
zl0Cd$rk$cf<JDNsq-(_|)(;hp0_7UA4V_e&&bzH25<THHdP~CLy1j$_p6jAX!Dd+-
zkCs)XCMP5+IhWtSB0H8MCh}L!KQTEsMSB#D at i{aFGa(+Z0Q@%il1C0ON$Li9R?j>O
za32VW+Qnh+b>Sim2D?})b|tPft$OS<VwERo26=GiWcAgE$;K!GXZ&{BiMO_L26Eb(
zNMvHeKnu@?M(u{$bpD*}p8BZaX}E@&PL_LPX@#0uc>pOdB)KNTCtxExY6CoOVt>Ok
zPIe)cNx6|j|7{w}&<D+sTRWKr0!-g5^sS79 at v#mh at 4ADyueOxRy0((%9km?Sd~rqW
zgTQV>w;i8F&wCDd?q~^Nl4KUH-zJ>KOgnP`yv_Qth#HG(0n73k=bgMAEFzKY4Iz9`
z6tIh%^DuuG>tg5;(`}zn2i=)v4zsKA07G89N0jcE3}JWPej)6GGg}4o+|KRT15lka
zLkFz%xu79U05&{d8A{U>AjGSSKCzQeK)b9(B#T2nTt3}Ci~oxVg4Ho3PkUPn(p~6!
zXmI$uryPc%*#*#Cp1n`GyLK#|3+q?*7Q4ar;qm8b<5HHqu-GRP)2z#gKz8vnsZWbI
z4o7nEn4!7(*#<(F5Af?Bs?k#cgzLl2BZ>iz`XDNoDC$m}pDcHD=&cNHvj?&!mK at RH
zN6=n}g)`*M^vou*#M>3yWj)vyb{Jt4(s^1`+(Gm5G%<vrV+c at BHLbVhYKvdX;78Tn
z+~>}<KC#7WK>Dw3Z$cPCMwsph`-sCrM4vXf+_w$LW$xe|iy*kLcCm~Hk3+`c<A9T5
zD<XQe*#k}9lcgMDd{-kBo-6k^53rpOEDfj-a^j+dEj=xo>0TBHL{@Q~-li3kDx)t*
z<2ZTNS(^n5OAl?)F4ghZ_t%va_%o`bmPz7jX_PHW!?;3QOseW&!=-rx;BEcOmx|+Q
zXK5+4*!gHfY0vn54g7fK0GYD5z_`_GtJa|sSjm2=Cs(>;&7 at j^5ZM`R0Z_KosAQQn
zRIl*Z?Cl|*2BKU=!h?kKLKYrjmWl0h+1PA5VsvqKaVo8lcApkMZ#8NlntS2Fg=B6A
z>Ej~>O}a at CPVLsTQd8Rm#RPhzRHK?O`p<N_nP8S~J0)waUDQsrn^2fuXjf=e=!VyG
z=P*hh(LH)AvBkLMocq*OS<ngl8oNTA!HdgJq<pB+)EKH*nRc0VnL2f9cyyLL8#P-#
ztUk0~E=_1&m_-OG%qxG){F?P``5yT~AueGP*>^UfiSvmpi5+tLtUp;?x3V@{G&Qz*
zmmg>rU>|;GAnS6P`5me?;Yi{wkNid}MGIu+mkYq7ez#;=6+R;8MU|zLO_bB^@7Y)P
zR6L5IN77U1IbRO)gtDOzT4xw$IN&fAR<CVfHbr)GRU%I3(}nX(Omb{IjUDvV4NoPX
zj99!Kb0g-eag1?MGup8*FN}Phd~?zZc|jZvGMfr{XB1 at Hr>*5wePrVtGs&6wSXs>(
zTp(20PM4z)-?m}Vm(%01=deZnS^O{SpUb|=dipW^{+$zNXUKz2gC^1<(gxBC(tL&l
zLz`<ONhg!mJ?>EIpgGWTFJl!y)js!k#C2-Y6KHc`*o#Sf(?fxZ5A0|TfyKpzLk<sY
zjqQl`x(-$jJg_Y8(-_ELv~o{RH$7v4IOeBvMTI3<P^G$SPmgquO1Ckv)2`XhsXDO9
z_-zc)##7bB<YDXsExgu1+Q?&CmXH5HR)76TlJ^boHlHKjh>`i4?%JfOHzOJ!Tm}o@
z4Ob`(eCoIV*fS+PC^BF at y4dCT7TH|c9aQ(U26yv$fJt%Y!w=+FSP%hp#U`V(i8Dud
z%x2y{z9Otbp)z&(<H~f<qd;t*aMh{6{dw*74G!J??5h>4i_6H_&KZ-r4NWG&_xnwS
zr<Gciz^VnRkpe=(?Lza?UGP%LWmF_N5`0_T5~>6(hR}db%DGA;eB#XAg`B(yg|j|S
z)ejc%r}Ojh7v;RQo^nKr6Z!3S!izC(Mjh94JcT=??;!=HM4w$ih+d50Jx`8ae>{)t
zfVkl*T<+prZGpK#xgSV+Cq++1<DSb68`kzbyHaOd*ZpiFDmmIO5)_*{^2l4E3?!%_
z=pis7uqF^I36u<%Dv=(%oDpv_gZGcBND)d*$W1t78P*=!9;cLCTuFolQi9QlgevJu
zi^IZeh6_7<!yUpiL>EP^L at 6*d%*55eZKm)`;X;ug-ejosLtrIuNlZzex{acr&*VpX
z=0eHdG#<#_N2(sArarZ*2Hfk`muFu_C7-T`H7LA1RVhU}YEwmBzq5M(p14CYmn7#h
z>(gG+!#_!SULVL)eb_48MvO`Lc#Ws7wC=F({%E^romJ4ay8}7lH}9*j96fZDcd}-D
zU}8_tM8S%CHjQXJ+9lqHoFL2>))aQ0%2;$#JZ|k&6kA|YO1WK=dCRAIWZiK^%d*bq
zT{bn(<DT{1cV<YxkRa#jw81A=_6%RYb$uzKG-9%Y-u|GI*qOM$POMpNwOF&bYRR*%
z^CAx?k1o&t*y)%HVmul>uigLb>bl)-*~YEPm7E!)D_;Kj;+X19#dC@!_li4i4Zbg(
zUM`|!RPRId2i;nc9K^ryv+uKdXx78oo4z={m=v=d6W2W5e8xh-*w?T7WJwTZel6~`
zM`liQeTp3Xs9N&rll{k<%ev>XKV*Vx9e0n#d<ynH@#nK%Br|gDY6Zx#Y&`h0OTNWa
znZijM<Krb|^iO*R?VtO;7 at G(Z3G&jiU2W;0boT{6{e<~oG?whR?FD-?FM`{tbeKLi
z>y_WzIh9)h0}DZEeri<zA>hj7Q047YpeeUEsizA at 4}8J)AI#Ppj!hKrT+3R*jYSUE
zCz*A&R>`1D#4p^hOW8<Re;qNinmLp?EO=M&V!Ug7X6BnrvZlitX*J-}+~?8I)IUz=
z1*fkJlphy6J(_H%3|qgvLGAAxu$j$|sc>3+bgJX@;!N_8>YPtFWw=i~=(&IAistxQ
zZQuy|ctmt8eSf)Tz-fBvrHX>-y-R23RyYY{{I_C}(b}v#H>=I9Z)LdB=ICZy<!?2q
z^1rD`f2}=-t<?*~RJog$gap;oI6{~r1wS$&YOL)zQv}LCSylFy?}e53>{2_CR;&C(
zNdMAd)!^0Hg<g%Sji6+-#N6`g%Gin#rZg9==P^1XID7rY0nqW4OW1RSeIE1*oW+Y$
zIE*{_ddl)dNy6PK*6JIR&u{K(;H`&T+;#8BdZ6*T_95}MHIaiI4=n10!7>MeFr5b=
zwa&r=B7-j>O4_HeB1?|Ym3a?H!V4ym6-$#p?kfuD9mPBzh`U$0C!P2?dqVD*cbrO|
z%zmfq&!0~`pLnIE?~3{`7mLs1XS=G(+aR6nIliMWk2SIc>lG`?siQf9ppHB4${XRG
zmbn%<#>(FMzIQkG at +afPlK}^rgHJ~;@eT(!QZ9t7UluKIk8zB1;8LhbL3JVIb>DNT
zs5b90lyLI4e4l at yjh|15?bd07rQSVdOM-)Y@$5MGp~PEZg6g5o&SoWx{kXmL_aHL*
z)sjrtz^RM2hsABJX0rO(An)Hco?lABdUKsiIjOF6yec at pc`0na%fPno9ghWh51k!)
z7!Z-r-K4i0a~~p}#S`IiQAr&ct*dUIwf|cDd<3m}c>1ufBeV_dwa}Vol7DT|Wa!8c
z_=2Ty3b&Az%mEI2HDOp(64#L%MO>Yjvtwu8ICcfg<R5+C#iEyMzPHfyif1Hdke7c%
z$F9W;yKltB{+j&FBlxiU`;?;M3`JiYlac at 9t}u66d+r=jF`+zT+VyZx$M%|ccWkVa
z>++pTbJDp5I~u-Vs9`0lKoWB=*u5j_MX9zWYv<mzn0*<SrW$X&Ew#SPr4SDnGEIwY
z9~srYnc|WI<CL|!i(}8KQGB&_C{p(QJKamh3+B%6Ys~A4-}H)RJL`LTPBkL99$FBN
zXA8WtY~4taU#DcxmbY!N^PMfsVW)H1erXV{v{#x;JD=XlSth+#-|I0wa-U>=<_!|;
zZQMih10(enKZvIq`U+HsZDb^gzers}BiUfBr+i;x4fEsI?U`N6Eg#p)Sjw~!YjI~<
zY6G*gRMLb&R&I{I8 at r0>RnjDhU78zTlv`t&48gI!mC~VTy?Ulep{9IsRQIc>Yxj`%
zo(I5X+Gxu&PXr>xD-^etO%V8IZWi$yWjHMc-Mcb>BcU*KpzbEpKI5^xSnC-7G?b`C
zZ!6sHp911DwlCngy0iUtj{&<pGOxAQVjdp#A@`~QcVD7#EUWWlue#>XyK4_0Ppw;A
z(1iOvF-w&^HvN27uU*06&#wI;E-A3p at bNL?EZ^&;ar3`3!e*>*vH)Be`kfFUznoHO
zRIIl*0S}OM#gcpoa-1ME<LpVJPyw<Q1S-)LfO2&ul8Lkc#)u`6Mj`-YK~_Elst<@@
zN~B_GARU5_Cyn9_vNl8?H^5QIKySS3cN8Lptiw3(0%Ua%P%uOVtOS8Vl)w;WxB?g|
z0|v`5<cuiz|0H5crQm&W1cpY8qc(}?qF}0H0DuF*KxIWD;Fzot76&k~0N5%*z(6=a
zMd_HF94CXvzHuMq at 8k#h%6^ss-UN^lfriCnX;_ejuM2In!`8^~Ckbk3`Fmq=o&*}e
zh2TacBPFKFt0e$LJW|3&*$8apjV8Dg_32cC1>M*ZNB6|R at e*2^oB+m4!yn=A<?Y2l
z2l#uD$UX>vqy&~h#smbTz1a<t_$tT{rQ%%?<~o>ff{b5C33nRJ8vz3O`S}6;U_c7h
z4FrM1;UF*+1cfRxBouuD$TY0KBH8EQ51emEjQzk-iQY7Z?E#y}SQm;f4Jje<T at NpB
zBcmS+kbQt#S^;qsFOWah8w3G at L0(=zmHYZEn{yBbWFH!qj3XH6X!`mR at dz}A;ZYC_
zR1u<rf+&KOR3M5NB^7N&CAgZZvI<NarG!?}05Poa``j(_Y{G6DX=_l2g7ftvkZIq6
zRWWKhO3DmOT{K)*5d~)eqf{`;iV!pkih`)XA!^!?@4&yz{Q;~2+I;R`?C{;v|Fwnw
zZ~OdW at vqN-*a{iKrXOo=`Z>cGiV&zJL<s?gAhw(x0S0er{Hx>-eZPS)B7x`{@ZW&^
zBKcR4Z^3Ixp^!9xkKbR`r%<=X|2p at 3Ec{n0e2bec*&jgvPs=ly<DV_h7+`oN>@RM~
z=tX?z2F-t<hQBd`oCfH(IsZew8R7jcW`7GQ#&Z7uthqnp8}Vvx@$QypKl}byn&ELj
z^z!zllD3!xj{^}%gw25SVW<ZAi&6171Z|V%f5yyKq;5tOibVUp_gg%Xh at 0GkATh2o
zkrMujc!Dd|mqe4${LgvftG|$lzr%j*{mW_^pucPOZ{6+d0E1J%0yA9yI~!|q{^WE<
zhCoVCHyNAJ`n`(YN)ek$6QT@({75CLKkMkN<bh at +4id!;WQuho_-tL at n*T^BfUU%1
z{!1eIUYY;A8HT9+n=%}<1#jZwVL|g^TobD?ZjY%xG=LKPXKM2A at ij$xJO%Hp7!zIz
zJ)%%n$n%6f=UKvK^V~OvyfxNG-3u;Ap=Vc)<Q+&*K}3qWMs)Afah7Dq-w+B3jTbPL
zK(X0sT;^7D-Hw_Lb!O9c#Xrnwy!kd)=5?=r%6NobbGp~3m?~MTy%hGHkJFIW!a-GM
zG3<hE_zck at gGi3_uALE7v;;ZMS@^h^)-jn=a~74V>*uS=TGuld*}B3mnZM(o$&0!g
z5G>gD((Q|@I@@Dk&~V+(B=)kl4*J8U%7qXuI;@-!ebR`pNOUcsVl7dg=YGM$o<|R#
zHndN+{V`V%c~ktf%$IA0w{^bI_XM(cTlb}6s+lic^3VT={o1tT=6*qcDRSUHx9cBn
z-?vO`Yff+l**HKLm-J9akOh%W06 at VYa|(q9fNbuzImm$QN&#%uON_RTgN8OtMFpaw
z1VQQOpkOF%l(LQ*Mi-@`3x~mVw9zna&HpUn$f%h%{{S$>QoVc_-hif%e7(p%0A-LV
zm4GMWHj6I^R8#Z&9|&;Ot!&Bo_;vfeE<iZL4hylm?ca?GwJL7BSP^0~EyC>JpkN{t
z8}9<inSI;W%N>jLXK9j5Nl&mkXi&>1>up~DDalccD#)%a{$~18$<&(yBd2xxti#+e
psO{5wE4)N4;0f!yD3PAO+nAC4sWg8o!Ig8fkmHn+(lx<w{tHMLZ2JHJ

literal 0
HcmV?d00001

diff --git a/extras/package/macosx/Resources/vlcmenubaricon/pauseIcon.png b/extras/package/macosx/Resources/vlcmenubaricon/pauseIcon.png
deleted file mode 100644
index 76b8a5c25a31bd37bac6bac06c76de824a7b6d99..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 455
zcmV;&0XY7NP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000XU
z000XU0RWnu7ytkO2XskIMF-#k1QjO|TLZ0g0004INkl<ZILob*L5|cw3`O5}xuQso
zM6X&bSj{E4!EiT at Fel*(eFoMHQm>i?txibAET$X+5^SKPD3yHI^S7PAKQ8tAYv3Jl
zPvLkxez{(+p8!s$)5GO*dAmC|0%zds3q^XA6lS(v<2XKL^x<&$u-7Gpq(=bnfV-Ii
zd;<)q^E`h}!0mQ>E~PAz=7<R35E1v*+6%zlB?(~YWtCD&ou&zZVHi9jika08AR at E@
zN-3Bbk^)dfu&!&Q12apVewc`0p68!{grwM7+dAg%8zl90UD<jt48s-xu&(R2Pe3L}
zJrj6Z%pic)8ogBhq;K%dP;1=+((2y9 at A@x*S}X33yOTZH18S{*2c*S5PA$uVnQ31_
zDTP`q5utq<=^(nz2{1`RYwi2a!BT5&?mp$K9CJDtODVYft6kPNyZxz@;;HvBkNZ#g
xY-aDx?B1V|^t}CX(vzf**<4AZnVtC`>jxBYohU7qocjO(002ovPDHLkV1ncS#EJj_

diff --git a/extras/package/macosx/Resources/vlcmenubaricon/pauseIcon at 2x.png b/extras/package/macosx/Resources/vlcmenubaricon/pauseIcon at 2x.png
deleted file mode 100644
index d5325b1e3457c60e63ffae9a6c4d6ec0e963ad70..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1055
zcmV+)1mOFLP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800009a7bBm000XU
z000XU0RWnu7ytkO2XskIMF-#k1QjR<A^Awg000BNNkl<ZSi{X%yKW>m5UlE+@$Smd
zL9k9|g$7m&NrC^sk;97}-Tj|aXA1lgjxJCjz&IER{DPp<T8|x)?cm5&FU66tfdLaB
zR+yP;R#z9B6tOwFJPnPZs+deBsqg!EeSMw$yMu!Rd3box+uK_SAz)+>K*)3b000C)
z!WLtHf1krJU~g{^F-BZoUK+L=Td(<_3}(rTB<}#c1rPz;xN=A?L72^Ezx93p^VQYW
zFFw%W;o-OU_xIl~m&<twVVWODC;O`$=M2D)rQ}^j;4Ogn8w^R9J*pdH{6O+o02>5W
ztJOClgdYHWH->fNk${L;N}o$1BC!B-eWXSX!*CTsxUHWrm&@Cf(%)tlMMQIqG7<pE
zWTIQoI{zWboBSI|{%K~rSw<!KMM~*9#`uSsJt44Kt?mH)B_h9z$k!zA0R%JaNPYrv
zU}l|}-K<?Gg070wX95b~%RD0hH8YT$sp<}ZzTRqG*YyB)0L%ase8?qE`4=Sn4V;J|
z#<*tWO2G2lFfLm?!pxY7I#C~E)Se)TPE|1s!<s+=yC7?XnZZ6sXgSMBCX(i2*dx@|
zF*Zt2vi1Zj1EC_&bauft5_oiCN*m9gc%TF*MEpV{+o?r>FC{Umz)J+4Q^2cNVwCTE
ztY-<R>IQ)tU}i`uy-1+OKTAMWM+wvml^T{tQtyJ65}rUEbJT=BgSvKOUhuf`_e=O^
zJ>YBTfwhyzuvLd`mTpu5RUIWzHJT=YQp);WZQv#WAHXkGG8ijC!TRY5mw4VkqXf$I
za at QHP2&n2>Jx`#-s(sPi1zrUYc*%q<Z28vjDo<Wjw=-eMW~>$03VH%Q{)Pgzv at Qc{
zHKDOKTa&L7D+ at k34J!|rlTor^Shi7qM>Au?1I%-s1b}ipvqhlQis>>)`G_^&&&Q5q
zRW(&L5i#c<Gcywr^QCyM1R={9MC2wf6iId|rKyPAk^Be1(D30v@=iqVNd^(QGqZtY
zCn7gyHqE!8Fj at kVyE*$#MBcb-ROtn;Nxl}5X`=*Fl3$U0lkvMnZdIKD=yM5nYX$uM
zNt~Iw+C=%?9?6}C38y4q<&5jgN$-wm at xJl@69B+j1||TX0QA`dlFKoW{7CYmLEt0F
zpGbZHu#*>$dBFf+Hz#=JU;+P&adL7Z+hXSPITwoskB*KwpU=51{`B-zo?N+)kB>W5
z?Ix3nsp`gAkW#`h3>bzX#Teto#l^<0WU*L?h-lyU(skYXf>OF?j1jBViZRA;ety1|
Z{$HL#3{PWl`7;0j002ovPDHLkV1h;@*=7I$

diff --git a/extras/package/macosx/Resources/vlcmenubaricon/playIcon.png b/extras/package/macosx/Resources/vlcmenubaricon/playIcon.png
deleted file mode 100644
index c4bf1d6dcac5a6d0940dced28fe99a195071ee1b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 559
zcmV+~0?_ at 5P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000XU
z000XU0RWnu7ytkO2XskIMF-#k1QjVL1B_Wu0005bNkl<ZILp0Kv5Hhd5UlCx>7Mu2
zaor2$GEMvi!8<V3pYSIP{RI;v6U__-1C0bTK at iM^Lk<xx(%s>n^WN at Eo7@U_9(M*}
zLqjK3)m0SmFQ)JNdEfW<Qc3{;VvJry+}~h50GQcct at VwW?TX0tQp$%~D^xXl?`y5~
zVixDz9uXNc8#7zibuU%*0RW_wNLBSh0uk9)Ra4a>B5k`d#!sqx69Brd6IG?NSONg=
zJ(w9G1ScX+L|h1A4d8}z?z5`Ct+i5X&0j_UX5QWsW4sb${4OGQnE59WJr<GOQ}zL1
zXJ==hh~5#=1VGMl*;;G4);e#kwQ(F at 0C-qR`NjZ1L||rk?_p-!U;zNNRuB<X)eXad
z^?FSwA_f2q;P?Am0_PlBYcMmUlzt4uFk7uwS4%0+i0Dx%<?Hq}25`#zR#jEk-uv<B
z=;+!sP48>1cg?IGA0My(2$6{3y+;V4F|+l3-*V1;aB%R&%x>kJZ-)>XfOa+<KB=y$
zDmI%<9LEudhlj7au6tcdc{-oZDW#;#<#If)Lks}R<x-g$tJUiHFbp3zo6VD)Gg3-%
xnx--5JYH7ixpVG5fB*oq*~~8%3y1$PzW~|xz5&9$Zx#Rm002ovPDHLkV1i9$?12CP

diff --git a/extras/package/macosx/Resources/vlcmenubaricon/playIcon at 2x.png b/extras/package/macosx/Resources/vlcmenubaricon/playIcon at 2x.png
deleted file mode 100644
index a17b73ff8a0875c573c54a4fc3ace504ddd78c41..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1528
zcmV<U1qb?xP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800009a7bBm000XU
z000XU0RWnu7ytkO2XskIMF-#k1QjV6Qc_uU000G-Nkl<ZSi`kf&5LD675|<3xF7Fh
zUUv_(&=5stVY?0P3?wdvEX0Mb{WAo?t>VIk3s(|cjG_nz5rnuA(P<=!K at Fs#83s)<
z2B+usOTYK-ty@*+92ax%%$t|jCe2J26x at 63)~Vn5_?>f#uraEtasXWannMT~S3C#+
z>bf><+sgK0RaF*%6Ojx+VvPE%0ayUYIqwwgoC5#`pjUA?0MKYOa!u1 at 02qx%-vaOr
z00Q7v(=@*uew<7uCg)tMYF5=0W0YqBz%jD}kO6?1zXsr&!&+U}cbs$Yr<7)^)#`l!
z>kapis-o+<r?QMmDLoR9QbLRoDJ3xTR{;Dx=lmyC{jT@^VEAt~n-PEtKv|ZheJTrx
zJhr5WtN}n(GZF1E^Jn^{&lzLh8;wRsB9hy-eJ92^ANJLCZAHWY;I8W~<r?RlL(UJ`
zX05eE1R`>(y3RS9{__D5eNRM^s=fo@`v873P*+u at kDE)o!#d|2Gcy2q?_VLJFB at Y(
zL;-*yA|@gaz^bYT at Ej36=e<94&K;_1?z-*+W>#j#bUL-hn9^EH)>`dFUu*#)dQ6G_
zg@|B`an{<Asscb()uz{U3gATmFRJQ)0o*EzVkshbiKtvIm&=~IgL_C-5klBabz{uq
zh<vCyHbHIVi at FD6RTcg74FKOJqL-|- at 2ct_i0GE8W&qgV-?v at Yc>r41b=sBewk<Gd
z4<b^1cnbB?53#DMt3Dsp0QOY%1pqIo>Sv3hm;rc8L_Rz_JNq|)Fvu^<(h?Cu2)xq*
zTL7S{w2QjE8wM+609iyJA}_1zS5 at _{G3K{LQT!~%_;w#(wpT<ibb+<@2>=_1JOOg3
zAw$su5JjX=RZ>-m$QPLT>mqWqD2l%m(VN!VzcfvAe at J2gTnHgKYwd*qwhzBxQ~;`8
zkqDp_5z09~FCw2;)mK#YNL7DPRn_YN?uHN|fK*i#ne8CloYvY)O=FBBqLH<BRF)+s
zlL=2Ilg at kpMOFO)fZG7RvjN^;7z4(bPiq0F>Z82_l~q-VNJIpE9`SuZ>L=2$*9HUK
zcF^*P!v~<wx$M0U%#5~e$0;Q*B4FlYW6Uo_<TX`2+1Q at kE*A^{L}Vv`p?(k%y!XL5
zmvYW7##rZ^3uZ>wbsy%O-v;nERsDyx_NZx^_lD#Iz_o3=8^ACxETP8eM&J%ID5az^
zMrGy?nE7=P`DqB at 2mp$rFn!CXZQC+{1OOjn!Il*i0I4d5oNld^s;bt;m=r>&+qSJ^
zjE<SX%ty at ps~F=O%zT=2{?{No#wb-)ZBzK;iD)>y4<=GoSZlQ?irjPDrIe<9GlCGp
zM{V2QVdfKS?H}v9es#HAb^vgAcxdn4yH|;bib!gj=2EG6vrKbc*9`z&tyYus^K%zM
zfU17f=l&mu5bjh}RiB=oc7wd*<72*d?V6}6nx@%ZjJBwzLsXY#nd`b<t1879M~lT`
zmQq5_8C}=iUa!}GCZhk8W%<{pX^sIPgph9BxM4#Gg^1*wb3Q*m*H3Inwqw9KH#}Pr
zaWO{B=kpjs5a-;n_x?vIrC$TUcszEq+02Lt0g(Im?=yh*Q+Gt8(Fhy0o4xla%QCH2
zEC1lZgNm6!MCU1`ABGTad+*g+`_Ey|+1Xj1&1SYQQhM30$hGZbupxwTN(m_?zg#X)
z=kxgqGuyhZ-#9op_{n;`evnea&6_vr<m99Vpw`;7SS)z63Axmm&1Tic^Q(J%d%C~B
zuX}rYuMyFg08Fc at dVYJ~bULN!bV^TsFIcbFkM4i#_4 at Y!#(j5oOI6?PEwdbt#|A)c
zjLF{nG at s9($;IUVYA_y;NkmYVB^Hatm0ZnC->qDfcMTC00L=C4*Xb$%(3Zw-BRS>O
eYIWt;^Zx;7vQ+EhODxv_0000<MNUMnLSTY(+RjA)

diff --git a/extras/package/macosx/Resources/vlcmenubaricon/statusBarIcon.pdf b/extras/package/macosx/Resources/vlcmenubaricon/statusBarIcon.pdf
deleted file mode 100644
index 0a905ba294a625be2a4b4254b983c006d4687860..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 6398
zcmb_h2|UzY_eWW>W-TR6vdgTt8HUC%DEq!d#>`+CGa4gINF+-|LM3HMPl%AE$X1e&
zggn+t){=c!ws&ZMp6C6)@8|P>=kuAFJNKUZz2|rCIp1^c9Vt^Cj3NZ6$|*H8_^OQ)
z1^@#nE*_j38X!Xg*^TB7fHHc_K^P*5MxcT)BrJ`fL%>n+1duTR1~SKz-3Sg~0E8j*
z_3fys$>~F*60lyJ{yjIZ_*q(ZibTAs^rNT01h<LO<ALCic_3ilcC+2CY`Ytoo^l(J
zBC`(b at bfe4UP=pL&PdnKjdVF6o8`=>zthwO9G#Vg$8;PC3<#JS9$tE0+1KMX<+Id%
zDzya2Bx$lA2x7g$0!Wg1&rVl+Z4<87a(|79%|C?s4ingJG`k8l`Q)%9NOc$eQT>k9
z^Y6Hs^;fG1A4g3x!!}IXaxJTvnCg$$j*yHIM{7Sz7&i*tj-G%?+^Lg{7R5v*fsUBg
zQe9#khW<zm66rQ;8pn$})DGOR=x!iEmLmO6ox60<rB<(&RrHwgok+ at gTbRMMCgB-}
z6C`Lv5-(G<<O43XTz~%L$ZNHHyfpq9DwFr^QjppRmxy=a_5pO+?c1(%WhZ7>9s!TW
zl0Cd$rk$cf<JDNsq-(_|)(;hp0_7UA4V_e&&bzH25<THHdP~CLy1j$_p6jAX!Dd+-
zkCs)XCMP5+IhWtSB0H8MCh}L!KQTEsMSB#D at i{aFGa(+Z0Q@%il1C0ON$Li9R?j>O
za32VW+Qnh+b>Sim2D?})b|tPft$OS<VwERo26=GiWcAgE$;K!GXZ&{BiMO_L26Eb(
zNMvHeKnu@?M(u{$bpD*}p8BZaX}E@&PL_LPX@#0uc>pOdB)KNTCtxExY6CoOVt>Ok
zPIe)cNx6|j|7{w}&<D+sTRWKr0!-g5^sS79 at v#mh at 4ADyueOxRy0((%9km?Sd~rqW
zgTQV>w;i8F&wCDd?q~^Nl4KUH-zJ>KOgnP`yv_Qth#HG(0n73k=bgMAEFzKY4Iz9`
z6tIh%^DuuG>tg5;(`}zn2i=)v4zsKA07G89N0jcE3}JWPej)6GGg}4o+|KRT15lka
zLkFz%xu79U05&{d8A{U>AjGSSKCzQeK)b9(B#T2nTt3}Ci~oxVg4Ho3PkUPn(p~6!
zXmI$uryPc%*#*#Cp1n`GyLK#|3+q?*7Q4ar;qm8b<5HHqu-GRP)2z#gKz8vnsZWbI
z4o7nEn4!7(*#<(F5Af?Bs?k#cgzLl2BZ>iz`XDNoDC$m}pDcHD=&cNHvj?&!mK at RH
zN6=n}g)`*M^vou*#M>3yWj)vyb{Jt4(s^1`+(Gm5G%<vrV+c at BHLbVhYKvdX;78Tn
z+~>}<KC#7WK>Dw3Z$cPCMwsph`-sCrM4vXf+_w$LW$xe|iy*kLcCm~Hk3+`c<A9T5
zD<XQe*#k}9lcgMDd{-kBo-6k^53rpOEDfj-a^j+dEj=xo>0TBHL{@Q~-li3kDx)t*
z<2ZTNS(^n5OAl?)F4ghZ_t%va_%o`bmPz7jX_PHW!?;3QOseW&!=-rx;BEcOmx|+Q
zXK5+4*!gHfY0vn54g7fK0GYD5z_`_GtJa|sSjm2=Cs(>;&7 at j^5ZM`R0Z_KosAQQn
zRIl*Z?Cl|*2BKU=!h?kKLKYrjmWl0h+1PA5VsvqKaVo8lcApkMZ#8NlntS2Fg=B6A
z>Ej~>O}a at CPVLsTQd8Rm#RPhzRHK?O`p<N_nP8S~J0)waUDQsrn^2fuXjf=e=!VyG
z=P*hh(LH)AvBkLMocq*OS<ngl8oNTA!HdgJq<pB+)EKH*nRc0VnL2f9cyyLL8#P-#
ztUk0~E=_1&m_-OG%qxG){F?P``5yT~AueGP*>^UfiSvmpi5+tLtUp;?x3V@{G&Qz*
zmmg>rU>|;GAnS6P`5me?;Yi{wkNid}MGIu+mkYq7ez#;=6+R;8MU|zLO_bB^@7Y)P
zR6L5IN77U1IbRO)gtDOzT4xw$IN&fAR<CVfHbr)GRU%I3(}nX(Omb{IjUDvV4NoPX
zj99!Kb0g-eag1?MGup8*FN}Phd~?zZc|jZvGMfr{XB1 at Hr>*5wePrVtGs&6wSXs>(
zTp(20PM4z)-?m}Vm(%01=deZnS^O{SpUb|=dipW^{+$zNXUKz2gC^1<(gxBC(tL&l
zLz`<ONhg!mJ?>EIpgGWTFJl!y)js!k#C2-Y6KHc`*o#Sf(?fxZ5A0|TfyKpzLk<sY
zjqQl`x(-$jJg_Y8(-_ELv~o{RH$7v4IOeBvMTI3<P^G$SPmgquO1Ckv)2`XhsXDO9
z_-zc)##7bB<YDXsExgu1+Q?&CmXH5HR)76TlJ^boHlHKjh>`i4?%JfOHzOJ!Tm}o@
z4Ob`(eCoIV*fS+PC^BF at y4dCT7TH|c9aQ(U26yv$fJt%Y!w=+FSP%hp#U`V(i8Dud
z%x2y{z9Otbp)z&(<H~f<qd;t*aMh{6{dw*74G!J??5h>4i_6H_&KZ-r4NWG&_xnwS
zr<Gciz^VnRkpe=(?Lza?UGP%LWmF_N5`0_T5~>6(hR}db%DGA;eB#XAg`B(yg|j|S
z)ejc%r}Ojh7v;RQo^nKr6Z!3S!izC(Mjh94JcT=??;!=HM4w$ih+d50Jx`8ae>{)t
zfVkl*T<+prZGpK#xgSV+Cq++1<DSb68`kzbyHaOd*ZpiFDmmIO5)_*{^2l4E3?!%_
z=pis7uqF^I36u<%Dv=(%oDpv_gZGcBND)d*$W1t78P*=!9;cLCTuFolQi9QlgevJu
zi^IZeh6_7<!yUpiL>EP^L at 6*d%*55eZKm)`;X;ug-ejosLtrIuNlZzex{acr&*VpX
z=0eHdG#<#_N2(sArarZ*2Hfk`muFu_C7-T`H7LA1RVhU}YEwmBzq5M(p14CYmn7#h
z>(gG+!#_!SULVL)eb_48MvO`Lc#Ws7wC=F({%E^romJ4ay8}7lH}9*j96fZDcd}-D
zU}8_tM8S%CHjQXJ+9lqHoFL2>))aQ0%2;$#JZ|k&6kA|YO1WK=dCRAIWZiK^%d*bq
zT{bn(<DT{1cV<YxkRa#jw81A=_6%RYb$uzKG-9%Y-u|GI*qOM$POMpNwOF&bYRR*%
z^CAx?k1o&t*y)%HVmul>uigLb>bl)-*~YEPm7E!)D_;Kj;+X19#dC@!_li4i4Zbg(
zUM`|!RPRId2i;nc9K^ryv+uKdXx78oo4z={m=v=d6W2W5e8xh-*w?T7WJwTZel6~`
zM`liQeTp3Xs9N&rll{k<%ev>XKV*Vx9e0n#d<ynH@#nK%Br|gDY6Zx#Y&`h0OTNWa
znZijM<Krb|^iO*R?VtO;7 at G(Z3G&jiU2W;0boT{6{e<~oG?whR?FD-?FM`{tbeKLi
z>y_WzIh9)h0}DZEeri<zA>hj7Q047YpeeUEsizA at 4}8J)AI#Ppj!hKrT+3R*jYSUE
zCz*A&R>`1D#4p^hOW8<Re;qNinmLp?EO=M&V!Ug7X6BnrvZlitX*J-}+~?8I)IUz=
z1*fkJlphy6J(_H%3|qgvLGAAxu$j$|sc>3+bgJX@;!N_8>YPtFWw=i~=(&IAistxQ
zZQuy|ctmt8eSf)Tz-fBvrHX>-y-R23RyYY{{I_C}(b}v#H>=I9Z)LdB=ICZy<!?2q
z^1rD`f2}=-t<?*~RJog$gap;oI6{~r1wS$&YOL)zQv}LCSylFy?}e53>{2_CR;&C(
zNdMAd)!^0Hg<g%Sji6+-#N6`g%Gin#rZg9==P^1XID7rY0nqW4OW1RSeIE1*oW+Y$
zIE*{_ddl)dNy6PK*6JIR&u{K(;H`&T+;#8BdZ6*T_95}MHIaiI4=n10!7>MeFr5b=
zwa&r=B7-j>O4_HeB1?|Ym3a?H!V4ym6-$#p?kfuD9mPBzh`U$0C!P2?dqVD*cbrO|
z%zmfq&!0~`pLnIE?~3{`7mLs1XS=G(+aR6nIliMWk2SIc>lG`?siQf9ppHB4${XRG
zmbn%<#>(FMzIQkG at +afPlK}^rgHJ~;@eT(!QZ9t7UluKIk8zB1;8LhbL3JVIb>DNT
zs5b90lyLI4e4l at yjh|15?bd07rQSVdOM-)Y@$5MGp~PEZg6g5o&SoWx{kXmL_aHL*
z)sjrtz^RM2hsABJX0rO(An)Hco?lABdUKsiIjOF6yec at pc`0na%fPno9ghWh51k!)
z7!Z-r-K4i0a~~p}#S`IiQAr&ct*dUIwf|cDd<3m}c>1ufBeV_dwa}Vol7DT|Wa!8c
z_=2Ty3b&Az%mEI2HDOp(64#L%MO>Yjvtwu8ICcfg<R5+C#iEyMzPHfyif1Hdke7c%
z$F9W;yKltB{+j&FBlxiU`;?;M3`JiYlac at 9t}u66d+r=jF`+zT+VyZx$M%|ccWkVa
z>++pTbJDp5I~u-Vs9`0lKoWB=*u5j_MX9zWYv<mzn0*<SrW$X&Ew#SPr4SDnGEIwY
z9~srYnc|WI<CL|!i(}8KQGB&_C{p(QJKamh3+B%6Ys~A4-}H)RJL`LTPBkL99$FBN
zXA8WtY~4taU#DcxmbY!N^PMfsVW)H1erXV{v{#x;JD=XlSth+#-|I0wa-U>=<_!|;
zZQMih10(enKZvIq`U+HsZDb^gzers}BiUfBr+i;x4fEsI?U`N6Eg#p)Sjw~!YjI~<
zY6G*gRMLb&R&I{I8 at r0>RnjDhU78zTlv`t&48gI!mC~VTy?Ulep{9IsRQIc>Yxj`%
zo(I5X+Gxu&PXr>xD-^etO%V8IZWi$yWjHMc-Mcb>BcU*KpzbEpKI5^xSnC-7G?b`C
zZ!6sHp911DwlCngy0iUtj{&<pGOxAQVjdp#A@`~QcVD7#EUWWlue#>XyK4_0Ppw;A
z(1iOvF-w&^HvN27uU*06&#wI;E-A3p at bNL?EZ^&;ar3`3!e*>*vH)Be`kfFUznoHO
zRIIl*0S}OM#gcpoa-1ME<LpVJPyw<Q1S-)LfO2&ul8Lkc#)u`6Mj`-YK~_Elst<@@
zN~B_GARU5_Cyn9_vNl8?H^5QIKySS3cN8Lptiw3(0%Ua%P%uOVtOS8Vl)w;WxB?g|
z0|v`5<cuiz|0H5crQm&W1cpY8qc(}?qF}0H0DuF*KxIWD;Fzot76&k~0N5%*z(6=a
zMd_HF94CXvzHuMq at 8k#h%6^ss-UN^lfriCnX;_ejuM2In!`8^~Ckbk3`Fmq=o&*}e
zh2TacBPFKFt0e$LJW|3&*$8apjV8Dg_32cC1>M*ZNB6|R at e*2^oB+m4!yn=A<?Y2l
z2l#uD$UX>vqy&~h#smbTz1a<t_$tT{rQ%%?<~o>ff{b5C33nRJ8vz3O`S}6;U_c7h
z4FrM1;UF*+1cfRxBouuD$TY0KBH8EQ51emEjQzk-iQY7Z?E#y}SQm;f4Jje<T at NpB
zBcmS+kbQt#S^;qsFOWah8w3G at L0(=zmHYZEn{yBbWFH!qj3XH6X!`mR at dz}A;ZYC_
zR1u<rf+&KOR3M5NB^7N&CAgZZvI<NarG!?}05Poa``j(_Y{G6DX=_l2g7ftvkZIq6
zRWWKhO3DmOT{K)*5d~)eqf{`;iV!pkih`)XA!^!?@4&yz{Q;~2+I;R`?C{;v|Fwnw
zZ~OdW at vqN-*a{iKrXOo=`Z>cGiV&zJL<s?gAhw(x0S0er{Hx>-eZPS)B7x`{@ZW&^
zBKcR4Z^3Ixp^!9xkKbR`r%<=X|2p at 3Ec{n0e2bec*&jgvPs=ly<DV_h7+`oN>@RM~
z=tX?z2F-t<hQBd`oCfH(IsZew8R7jcW`7GQ#&Z7uthqnp8}Vvx@$QypKl}byn&ELj
z^z!zllD3!xj{^}%gw25SVW<ZAi&6171Z|V%f5yyKq;5tOibVUp_gg%Xh at 0GkATh2o
zkrMujc!Dd|mqe4${LgvftG|$lzr%j*{mW_^pucPOZ{6+d0E1J%0yA9yI~!|q{^WE<
zhCoVCHyNAJ`n`(YN)ek$6QT@({75CLKkMkN<bh at +4id!;WQuho_-tL at n*T^BfUU%1
z{!1eIUYY;A8HT9+n=%}<1#jZwVL|g^TobD?ZjY%xG=LKPXKM2A at ij$xJO%Hp7!zIz
zJ)%%n$n%6f=UKvK^V~OvyfxNG-3u;Ap=Vc)<Q+&*K}3qWMs)Afah7Dq-w+B3jTbPL
zK(X0sT;^7D-Hw_Lb!O9c#Xrnwy!kd)=5?=r%6NobbGp~3m?~MTy%hGHkJFIW!a-GM
zG3<hE_zck at gGi3_uALE7v;;ZMS@^h^)-jn=a~74V>*uS=TGuld*}B3mnZM(o$&0!g
z5G>gD((Q|@I@@Dk&~V+(B=)kl4*J8U%7qXuI;@-!ebR`pNOUcsVl7dg=YGM$o<|R#
zHndN+{V`V%c~ktf%$IA0w{^bI_XM(cTlb}6s+lic^3VT={o1tT=6*qcDRSUHx9cBn
z-?vO`Yff+l**HKLm-J9akOh%W06 at VYa|(q9fNbuzImm$QN&#%uON_RTgN8OtMFpaw
z1VQQOpkOF%l(LQ*Mi-@`3x~mVw9zna&HpUn$f%h%{{S$>QoVc_-hif%e7(p%0A-LV
zm4GMWHj6I^R8#Z&9|&;Ot!&Bo_;vfeE<iZL4hylm?ca?GwJL7BSP^0~EyC>JpkN{t
z8}9<inSI;W%N>jLXK9j5Nl&mkXi&>1>up~DDalccD#)%a{$~18$<&(yBd2xxti#+e
psO{5wE4)N4;0f!yD3PAO+nAC4sWg8o!Ig8fkmHn+(lx<w{tHMLZ2JHJ

diff --git a/extras/package/macosx/Resources/vlcmenubaricon/stopIcon.png b/extras/package/macosx/Resources/vlcmenubaricon/stopIcon.png
deleted file mode 100644
index 503ac127f80a14b3cd4e387bae0d88962f945096..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 354
zcmV-o0iFJdP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000XU
z000XU0RWnu7ytkO2XskIMF-#k1QjYHzjM<B00032Nkl<ZILoDzO=`n15QV=P&A2WU
zdXD4*-DlCBJ*yt36jEdBbrIP~N`p=NV35$yr>BPm|CF`%8F&Fszs!$qTtL^_2jCs}
zIIl8$H8Z*UrZO{`*#RIL;N<QApY4>NE=ucHU;rK^jng!p0TE$l29T}psmw4*wg5^g
zxH}E9DoIFU7={aAhDh23sI{_W&~+W|PRn6cwN|ESx&Yjrh at h0R>cGsF%?ltR$jr at v
zYo`H_nM4E;vHtSR7{~DzFkc}vmvHWB4*Dj8%v5tQY`DUgq^{PgYX^NPg@}0C0O*>7
z{`x5&-TlqoPm*i}AT#UT{RqHrxBK%~-tYH(18^>Iu)%9_Gynhq07*qoM6N<$g5h71
AfB*mh

diff --git a/extras/package/macosx/Resources/vlcmenubaricon/stopIcon at 2x.png b/extras/package/macosx/Resources/vlcmenubaricon/stopIcon at 2x.png
deleted file mode 100644
index 0dad40c64924b85170368c58fc71f95817577eb2..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 688
zcmV;h0#E&kP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800009a7bBm000XU
z000XU0RWnu7ytkO2XskIMF-#k1QjYYJfK#?0006{Nkl<ZSi{9vTXNzs5bT~2A!L`|
zJp$MqB}YgOxqtcFbHEw)GgKv8fHnJpM2%%T4{(U8R4#)x)6?B!OGJBwG!360eQW4`
zXSy~34&{S_>yPiq*-ue$lso{qPc&`Qe{ZcNfIWbhG<N_ZfExfa0GjR_06$aJe*pZ>
zl7|AoJ%Gnn77}K|mLRjVcmeR565ay%;b?v}vzhZ*2B1MiEXH^gMWk^-<0o~xOLK^=
zT*!^fhu|sz$!)qul7G!??wrg4w=)5i;+dG&l6*F^+r;L-lM6*U8cz}cNfh3>pqGq&
zmXf5l`d&oPG|dT-lYsQ}jN$kr2=n(rRk7diPXKaGk~U`YoY&0Qk|0;@0gPOD3xw~e
zjt6q`4CJl$JA-;;_YX4g)d0K{y#Q3T1)yATZt}tdZ2+n|2w-dm%9w*D^bCAK7ktbE
zA~GriF~&~3K?YRy1Rzs)Zq>P{O#izQh{y>***2Fj(ASEC0P-Ad>ywHpWA=7I$->wY
z_*klX9TWPGoCnaiALvv+0s|%@W at eqDNOnA6P6FoExex&5h at b<Y?^R4^LMwJc=bRG=
zz(gcw038z+5*(5Y2NBt(Aad?O#mt0c6p?2$n~|LOLrF&hlJiu35RqT+Y|B5~1*$qT
zvq_R*UNS%jKwKvTALPO|oVd;s2Y{hCr#+<wk>r+S7~>6?a?DeKPwtUp?y9P=SS+q~
z9IL7dbzQd(h~IWNWnI@;uh#&8<#HKRHB6^dQ`ONvMtSSM+wIsi&0(|I8~|XoTH!w>
WEgX4wfMdS^0000<MNUMnLSTYOE+XLo

diff --git a/extras/package/macosx/vlc.xcodeproj/project.pbxproj b/extras/package/macosx/vlc.xcodeproj/project.pbxproj
index fdc3f6c..820a004 100644
--- a/extras/package/macosx/vlc.xcodeproj/project.pbxproj
+++ b/extras/package/macosx/vlc.xcodeproj/project.pbxproj
@@ -461,19 +461,18 @@
 		1CE5ED2619DD6AB700FCEFD3 /* lion-window-fullscreen at 2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1CE5ED2019DD6AB700FCEFD3 /* lion-window-fullscreen at 2x.png */; };
 		633121D01B5112C300E636DA /* ResumeDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = 633121CE1B5112C300E636DA /* ResumeDialog.xib */; };
 		6B13E2A81BC67678001AD24A /* VLCScrollingClipView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B13E2A71BC67678001AD24A /* VLCScrollingClipView.m */; };
-		6B242D4F1CBD18DA00016E2A /* statusBarIcon.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 6B242D4E1CBD18DA00016E2A /* statusBarIcon.pdf */; };
+		6B3F8D2C1CE58E0E002A4998 /* VLCNextTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 6B3F8D281CE58E0E002A4998 /* VLCNextTemplate.pdf */; };
+		6B3F8D2D1CE58E0E002A4998 /* VLCPauseTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 6B3F8D291CE58E0E002A4998 /* VLCPauseTemplate.pdf */; };
+		6B3F8D2E1CE58E0E002A4998 /* VLCPlayTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 6B3F8D2A1CE58E0E002A4998 /* VLCPlayTemplate.pdf */; };
+		6B3F8D2F1CE58E0E002A4998 /* VLCPreviousTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 6B3F8D2B1CE58E0E002A4998 /* VLCPreviousTemplate.pdf */; };
+		6B3F8D311CE5CC21002A4998 /* VLCStatusBarIcon.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 6B3F8D301CE5CC21002A4998 /* VLCStatusBarIcon.pdf */; };
+		6B3F8D331CE5CD57002A4998 /* VLCShuffleTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 6B3F8D321CE5CD57002A4998 /* VLCShuffleTemplate.pdf */; };
 		7D3F6525188051F2005776C4 /* BWQuincyMain.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D3F6523188051F2005776C4 /* BWQuincyMain.xib */; };
 		7D8BB0B71830311300FAE9B7 /* DebugMessageVisualizer.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D8BB0B51830311300FAE9B7 /* DebugMessageVisualizer.xib */; };
 		7D8BB0BA1830367200FAE9B7 /* PlaylistMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D8BB0B81830367200FAE9B7 /* PlaylistMenu.xib */; };
 		7D8BB0C01830393300FAE9B7 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D8BB0BE1830393300FAE9B7 /* MainWindow.xib */; };
 		7D9516B71C60B69200D14E1A /* VLCStatusBarIconMainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D9516B51C60B69200D14E1A /* VLCStatusBarIconMainMenu.xib */; };
 		7D9516BA1C60B6AB00D14E1A /* VLCStatusBarIcon.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D9516B91C60B6AB00D14E1A /* VLCStatusBarIcon.m */; };
-		7D9516C41C60B6DB00D14E1A /* pauseIcon.png in Resources */ = {isa = PBXBuildFile; fileRef = 7D9516BC1C60B6DB00D14E1A /* pauseIcon.png */; };
-		7D9516C51C60B6DB00D14E1A /* pauseIcon at 2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7D9516BD1C60B6DB00D14E1A /* pauseIcon at 2x.png */; };
-		7D9516C61C60B6DB00D14E1A /* playIcon.png in Resources */ = {isa = PBXBuildFile; fileRef = 7D9516BE1C60B6DB00D14E1A /* playIcon.png */; };
-		7D9516C71C60B6DB00D14E1A /* playIcon at 2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7D9516BF1C60B6DB00D14E1A /* playIcon at 2x.png */; };
-		7D9516CA1C60B6DB00D14E1A /* stopIcon.png in Resources */ = {isa = PBXBuildFile; fileRef = 7D9516C21C60B6DB00D14E1A /* stopIcon.png */; };
-		7D9516CB1C60B6DB00D14E1A /* stopIcon at 2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7D9516C31C60B6DB00D14E1A /* stopIcon at 2x.png */; };
 		7DB65D5618ABD6490053B874 /* AddonManager.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7DB65D5418ABD6490053B874 /* AddonManager.xib */; };
 		7DBB06641CC2314D004C74D2 /* caopengllayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DBB06631CC2314D004C74D2 /* caopengllayer.m */; };
 		7DD6EC101B58136D0047CF5C /* SimplePreferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7DD6EC0E1B58136D0047CF5C /* SimplePreferences.xib */; };
@@ -1253,7 +1252,12 @@
 		633121CF1B5112C300E636DA /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = Resources/English.lproj/ResumeDialog.xib; sourceTree = "<group>"; };
 		6B13E2A61BC67678001AD24A /* VLCScrollingClipView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCScrollingClipView.h; path = ../../../modules/gui/macosx/VLCScrollingClipView.h; sourceTree = "<group>"; };
 		6B13E2A71BC67678001AD24A /* VLCScrollingClipView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCScrollingClipView.m; path = ../../../modules/gui/macosx/VLCScrollingClipView.m; sourceTree = "<group>"; };
-		6B242D4E1CBD18DA00016E2A /* statusBarIcon.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = statusBarIcon.pdf; path = Resources/vlcmenubaricon/statusBarIcon.pdf; sourceTree = "<group>"; };
+		6B3F8D281CE58E0E002A4998 /* VLCNextTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = VLCNextTemplate.pdf; path = Resources/vlcmenubaricon/VLCNextTemplate.pdf; sourceTree = "<group>"; };
+		6B3F8D291CE58E0E002A4998 /* VLCPauseTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = VLCPauseTemplate.pdf; path = Resources/vlcmenubaricon/VLCPauseTemplate.pdf; sourceTree = "<group>"; };
+		6B3F8D2A1CE58E0E002A4998 /* VLCPlayTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = VLCPlayTemplate.pdf; path = Resources/vlcmenubaricon/VLCPlayTemplate.pdf; sourceTree = "<group>"; };
+		6B3F8D2B1CE58E0E002A4998 /* VLCPreviousTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = VLCPreviousTemplate.pdf; path = Resources/vlcmenubaricon/VLCPreviousTemplate.pdf; sourceTree = "<group>"; };
+		6B3F8D301CE5CC21002A4998 /* VLCStatusBarIcon.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = VLCStatusBarIcon.pdf; path = Resources/vlcmenubaricon/VLCStatusBarIcon.pdf; sourceTree = "<group>"; };
+		6B3F8D321CE5CD57002A4998 /* VLCShuffleTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = VLCShuffleTemplate.pdf; path = Resources/vlcmenubaricon/VLCShuffleTemplate.pdf; sourceTree = "<group>"; };
 		7D3F6524188051F2005776C4 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = Resources/English.lproj/BWQuincyMain.xib; sourceTree = "<group>"; };
 		7D3F652618805297005776C4 /* BWQuincyManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = BWQuincyManager.h; path = ../../../modules/gui/macosx/BWQuincyManager.h; sourceTree = SOURCE_ROOT; };
 		7D3F652718805297005776C4 /* BWQuincyManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = BWQuincyManager.m; path = ../../../modules/gui/macosx/BWQuincyManager.m; sourceTree = SOURCE_ROOT; };
@@ -1270,12 +1274,6 @@
 		7D9516B61C60B69200D14E1A /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = Resources/English.lproj/VLCStatusBarIconMainMenu.xib; sourceTree = "<group>"; };
 		7D9516B81C60B6AB00D14E1A /* VLCStatusBarIcon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCStatusBarIcon.h; path = ../../../modules/gui/macosx/VLCStatusBarIcon.h; sourceTree = "<group>"; };
 		7D9516B91C60B6AB00D14E1A /* VLCStatusBarIcon.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCStatusBarIcon.m; path = ../../../modules/gui/macosx/VLCStatusBarIcon.m; sourceTree = "<group>"; };
-		7D9516BC1C60B6DB00D14E1A /* pauseIcon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = pauseIcon.png; path = Resources/vlcmenubaricon/pauseIcon.png; sourceTree = "<group>"; };
-		7D9516BD1C60B6DB00D14E1A /* pauseIcon at 2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "pauseIcon at 2x.png"; path = "Resources/vlcmenubaricon/pauseIcon at 2x.png"; sourceTree = "<group>"; };
-		7D9516BE1C60B6DB00D14E1A /* playIcon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = playIcon.png; path = Resources/vlcmenubaricon/playIcon.png; sourceTree = "<group>"; };
-		7D9516BF1C60B6DB00D14E1A /* playIcon at 2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "playIcon at 2x.png"; path = "Resources/vlcmenubaricon/playIcon at 2x.png"; sourceTree = "<group>"; };
-		7D9516C21C60B6DB00D14E1A /* stopIcon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = stopIcon.png; path = Resources/vlcmenubaricon/stopIcon.png; sourceTree = "<group>"; };
-		7D9516C31C60B6DB00D14E1A /* stopIcon at 2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "stopIcon at 2x.png"; path = "Resources/vlcmenubaricon/stopIcon at 2x.png"; sourceTree = "<group>"; };
 		7DA481221B5FC13700917FD7 /* VLCPlaylistView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = VLCPlaylistView.h; path = ../../../modules/gui/macosx/VLCPlaylistView.h; sourceTree = "<group>"; };
 		7DA481231B5FC13700917FD7 /* VLCPlaylistView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = VLCPlaylistView.m; path = ../../../modules/gui/macosx/VLCPlaylistView.m; sourceTree = "<group>"; };
 		7DB65D5218ABD6380053B874 /* AddonsWindowController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AddonsWindowController.h; path = ../../../modules/gui/macosx/AddonsWindowController.h; sourceTree = SOURCE_ROOT; };
@@ -2367,13 +2365,12 @@
 		7D9516BB1C60B6C700D14E1A /* status bar item */ = {
 			isa = PBXGroup;
 			children = (
-				7D9516BC1C60B6DB00D14E1A /* pauseIcon.png */,
-				7D9516BD1C60B6DB00D14E1A /* pauseIcon at 2x.png */,
-				7D9516BE1C60B6DB00D14E1A /* playIcon.png */,
-				7D9516BF1C60B6DB00D14E1A /* playIcon at 2x.png */,
-				6B242D4E1CBD18DA00016E2A /* statusBarIcon.pdf */,
-				7D9516C21C60B6DB00D14E1A /* stopIcon.png */,
-				7D9516C31C60B6DB00D14E1A /* stopIcon at 2x.png */,
+				6B3F8D301CE5CC21002A4998 /* VLCStatusBarIcon.pdf */,
+				6B3F8D281CE58E0E002A4998 /* VLCNextTemplate.pdf */,
+				6B3F8D291CE58E0E002A4998 /* VLCPauseTemplate.pdf */,
+				6B3F8D2A1CE58E0E002A4998 /* VLCPlayTemplate.pdf */,
+				6B3F8D2B1CE58E0E002A4998 /* VLCPreviousTemplate.pdf */,
+				6B3F8D321CE5CD57002A4998 /* VLCShuffleTemplate.pdf */,
 			);
 			name = "status bar item";
 			sourceTree = "<group>";
@@ -3237,6 +3234,7 @@
 				CC04336613B28B8200D7D52E /* effects-one-button.png in Resources */,
 				1C88BA7E19DC7B2200645190 /* yosemite-window-zoom-over-graphite.png in Resources */,
 				1C88BC2719DC7C8100645190 /* ys-progressbar-fill-right_dark.png in Resources */,
+				6B3F8D2E1CE58E0E002A4998 /* VLCPlayTemplate.pdf in Resources */,
 				1C88BB1A19DC7C7800645190 /* ys-effects-one-button.png in Resources */,
 				1C88BA9A19DC7C5D00645190 /* ys-sidebar-playlist at 2x.png in Resources */,
 				1C88BB5D19DC7C7800645190 /* ys-repeat at 2x.png in Resources */,
@@ -3296,8 +3294,8 @@
 				1C88BB0A19DC7C7800645190 /* ys-backward-3btns.png in Resources */,
 				1C88BB0819DC7C7800645190 /* ys-backward-3btns-pressed.png in Resources */,
 				CC04338C13B28B8200D7D52E /* stop-pressed.png in Resources */,
+				6B3F8D2F1CE58E0E002A4998 /* VLCPreviousTemplate.pdf in Resources */,
 				CC04338D13B28B8200D7D52E /* stop.png in Resources */,
-				6B242D4F1CBD18DA00016E2A /* statusBarIcon.pdf in Resources */,
 				CC04338E13B28B8200D7D52E /* volume-high.png in Resources */,
 				CC04338F13B28B8200D7D52E /* volume-low.png in Resources */,
 				1C88BB3219DC7C7800645190 /* ys-pause.png in Resources */,
@@ -3321,6 +3319,7 @@
 				1C88BCAC19DC7CB300645190 /* ys-fs_stop.png in Resources */,
 				CC0433AD13B28B9C00D7D52E /* m4a.icns in Resources */,
 				CC0433AE13B28B9C00D7D52E /* m4v.icns in Resources */,
+				6B3F8D331CE5CD57002A4998 /* VLCShuffleTemplate.pdf in Resources */,
 				1C88BA6419DC7B2200645190 /* yosemite-window-fullscreen-on.png in Resources */,
 				1C88BCB419DC7CB300645190 /* ys-fs_time_slider_knob_highlight.png in Resources */,
 				1C88BB5A19DC7C7800645190 /* ys-repeat-pressed.png in Resources */,
@@ -3495,6 +3494,7 @@
 				CC9E5D7015975E2600D14E83 /* sidebar-local at 2x.png in Resources */,
 				1C88BB2D19DC7C7800645190 /* ys-next-6btns-pressed at 2x.png in Resources */,
 				CC9E5D7115975E2600D14E83 /* sidebar-movie at 2x.png in Resources */,
+				6B3F8D2C1CE58E0E002A4998 /* VLCNextTemplate.pdf in Resources */,
 				1C88BBE619DC7C8100645190 /* ys-backward-3btns-dark-pressed at 2x.png in Resources */,
 				1C88BB0C19DC7C7800645190 /* ys-backward-6btns-pressed.png in Resources */,
 				1C88BC2619DC7C8100645190 /* ys-progressbar-fill-middle_dark at 2x.png in Resources */,
@@ -3510,7 +3510,6 @@
 				1C88BB6319DC7C7800645190 /* ys-shuffle-pressed at 2x.png in Resources */,
 				CC9E5D9B15975F5B00D14E83 /* fs_background at 2x.png in Resources */,
 				1C88BC3E19DC7C8100645190 /* ys-shuffle-blue-pressed_dark at 2x.png in Resources */,
-				7D9516C51C60B6DB00D14E1A /* pauseIcon at 2x.png in Resources */,
 				1C88BC2119DC7C8100645190 /* ys-previous-6btns-dark.png in Resources */,
 				CC9E5D9C15975F5B00D14E83 /* fs_exit_fullscreen at 2x.png in Resources */,
 				CC9E5D9D15975F5B00D14E83 /* fs_forward_highlight at 2x.png in Resources */,
@@ -3533,16 +3532,15 @@
 				1C88BA7519DC7B2200645190 /* yosemite-window-minimize-over at 2x.png in Resources */,
 				CC9E5DA815975F5B00D14E83 /* fs_skip_previous at 2x.png in Resources */,
 				1C88BC4319DC7C8100645190 /* ys-shuffle_dark.png in Resources */,
-				7D9516C71C60B6DB00D14E1A /* playIcon at 2x.png in Resources */,
 				CC9E5DA915975F5B00D14E83 /* fs_stop_highlight at 2x.png in Resources */,
 				CC9E5DAA15975F5B00D14E83 /* fs_stop at 2x.png in Resources */,
 				CC9E5DAB15975F5B00D14E83 /* fs_time_slider_knob_highlight at 2x.png in Resources */,
-				7D9516C41C60B6DB00D14E1A /* pauseIcon.png in Resources */,
 				1CE5ED2619DD6AB700FCEFD3 /* lion-window-fullscreen at 2x.png in Resources */,
 				1C88BB3E19DC7C7800645190 /* ys-playlist-btn.png in Resources */,
 				1C88BBEB19DC7C8100645190 /* ys-backward-6btns-dark.png in Resources */,
 				CC9E5DAC15975F5B00D14E83 /* fs_time_slider_knob at 2x.png in Resources */,
 				1C88BB3919DC7C7800645190 /* ys-playlist-1btn-pressed at 2x.png in Resources */,
+				6B3F8D2D1CE58E0E002A4998 /* VLCPauseTemplate.pdf in Resources */,
 				1C88BC5519DC7C8100645190 /* ys-volume-slider-track_dark.png in Resources */,
 				1C88BB5419DC7C7800645190 /* ys-repeat-all.png in Resources */,
 				CC9E5DAD15975F5B00D14E83 /* fs_time_slider at 2x.png in Resources */,
@@ -3629,7 +3627,6 @@
 				CC9E5E08159760B100D14E83 /* stop at 2x.png in Resources */,
 				CC9E5E09159760B100D14E83 /* volume-high at 2x.png in Resources */,
 				1C88BCB719DC7CB300645190 /* ys-fs_volume_max at 2x.png in Resources */,
-				7D9516CB1C60B6DB00D14E1A /* stopIcon at 2x.png in Resources */,
 				1C88BB3019DC7C7800645190 /* ys-pause-pressed.png in Resources */,
 				CC9E5E0A159760B100D14E83 /* volume-low at 2x.png in Resources */,
 				1C88BCBD19DC7CB300645190 /* ys-fs_volume_mute_highlight at 2x.png in Resources */,
@@ -3762,7 +3759,6 @@
 				1C88BA6019DC7B2200645190 /* yosemite-window-fullscreen-graphite.png in Resources */,
 				CC166FB415F511CC0088201B /* backward-3btns-dark.png in Resources */,
 				CC166FB515F511CC0088201B /* backward-3btns-dark at 2x.png in Resources */,
-				7D9516CA1C60B6DB00D14E1A /* stopIcon.png in Resources */,
 				CC166FBA15F511DB0088201B /* backward-3btns-pressed.png in Resources */,
 				1C88BB3C19DC7C7800645190 /* ys-playlist-btn-pressed.png in Resources */,
 				CC166FBB15F511DB0088201B /* backward-3btns-pressed at 2x.png in Resources */,
@@ -3799,7 +3795,6 @@
 				CC166FE415F5136B0088201B /* previous-6btns-dark at 2x.png in Resources */,
 				1C88BB1E19DC7C7800645190 /* ys-forward-3btns.png in Resources */,
 				CC166FE915F517660088201B /* backward-6btns-pressed.png in Resources */,
-				7D9516C61C60B6DB00D14E1A /* playIcon.png in Resources */,
 				1C88BB6819DC7C7800645190 /* ys-stop.png in Resources */,
 				CC166FEA15F517660088201B /* backward-6btns-pressed at 2x.png in Resources */,
 				1C88BBF719DC7C8100645190 /* ys-effects-one-button-pressed-dark.png in Resources */,
@@ -3840,6 +3835,7 @@
 				1C88BB1619DC7C7800645190 /* ys-effects-double-buttons.png in Resources */,
 				1C88BB0D19DC7C7800645190 /* ys-backward-6btns-pressed at 2x.png in Resources */,
 				1C88BC9519DC7CB300645190 /* ys-fs_forward at 2x.png in Resources */,
+				6B3F8D311CE5CC21002A4998 /* VLCStatusBarIcon.pdf in Resources */,
 				1C88BCA119DC7CB300645190 /* ys-fs_rewind at 2x.png in Resources */,
 				1C88BB6519DC7C7800645190 /* ys-shuffle at 2x.png in Resources */,
 				1CE5ED2119DD6AB700FCEFD3 /* lion-window-fullscreen-on.png in Resources */,
diff --git a/modules/gui/macosx/InputManager.m b/modules/gui/macosx/InputManager.m
index de4252f..41d22b2 100644
--- a/modules/gui/macosx/InputManager.m
+++ b/modules/gui/macosx/InputManager.m
@@ -64,6 +64,7 @@ static int InputEvent(vlc_object_t *p_this, const char *psz_var,
                 break;
             case INPUT_EVENT_POSITION:
                 [[[VLCMain sharedInstance] mainWindow] performSelectorOnMainThread:@selector(updateTimeSlider) withObject: nil waitUntilDone:NO];
+                [[[VLCMain sharedInstance] statusBarIcon] performSelectorOnMainThread:@selector(updateProgress) withObject:nil waitUntilDone:NO];
                 break;
             case INPUT_EVENT_TITLE:
             case INPUT_EVENT_CHAPTER:
diff --git a/modules/gui/macosx/VLCStatusBarIcon.h b/modules/gui/macosx/VLCStatusBarIcon.h
index a646e6b..f5b12a4 100644
--- a/modules/gui/macosx/VLCStatusBarIcon.h
+++ b/modules/gui/macosx/VLCStatusBarIcon.h
@@ -26,15 +26,12 @@
 @interface VLCStatusBarIcon : NSObject <NSMenuDelegate>
 
 @property NSStatusItem *statusItem;
- at property NSTimer *dataRefreshUpdateTimer;
 @property (readwrite, strong) IBOutlet NSMenu *vlcStatusBarIconMenu;
 
-// get data from VLC and update the little status menu
+// Get data from VLC and update the little status menu
 - (void)updateMenuItemRandom;
-- (void)updateMenuItemPlayPause;
-- (void)setDataUpdateTimer:(float)interval;
+- (void)updateProgress;
 
-- (IBAction)updateMenuItemContent:(id)sender;
 - (IBAction)restoreMainWindow:(id)sender;
 - (IBAction)statusBarIconTogglePlayPause:(id)sender;
 - (IBAction)statusBarIconStop:(id)sender;
diff --git a/modules/gui/macosx/VLCStatusBarIcon.m b/modules/gui/macosx/VLCStatusBarIcon.m
index f9e3484..b3c19c9 100644
--- a/modules/gui/macosx/VLCStatusBarIcon.m
+++ b/modules/gui/macosx/VLCStatusBarIcon.m
@@ -32,32 +32,33 @@
 #import <CoreInteraction.h>
 #import <StringUtility.h>
 
-#pragma mark -
-#pragma mark Defines
-
-#define dataUpdateTimerInterval 1.0
-#define NSInitialToolTipDelayIn_ms 20
-// #define showURLInToolTip 1
-
 @interface VLCStatusBarIcon ()
 {
     NSMenuItem *_vlcStatusBarMenuItem;
 
+    /* Outlets for Now Playing labels */
+    IBOutlet NSTextField *titleField;
+    IBOutlet NSTextField *artistField;
+    IBOutlet NSTextField *albumField;
+    IBOutlet NSTextField *progressField;
+    IBOutlet NSTextField *separatorField;
+    IBOutlet NSTextField *totalField;
+    IBOutlet NSImageView *coverImageView;
+
+    /* Outlets for player controls */
+    IBOutlet NSButton *backwardsButton;
+    IBOutlet NSButton *playPauseButton;
+    IBOutlet NSButton *forwardButton;
+    IBOutlet NSButton *randButton;
+
+    /* Outlets for menu items */
+    IBOutlet NSMenuItem *pathActionItem;
     IBOutlet NSMenuItem *showMainWindowItem;
-    IBOutlet NSMenuItem *playPauseItem;
-    IBOutlet NSMenuItem *stopItem;
-    IBOutlet NSMenuItem *nextItem;
-    IBOutlet NSMenuItem *prevItem;
-    IBOutlet NSMenuItem *randItem;
     IBOutlet NSMenuItem *quitItem;
 
-    NSString *_nameToDisplay;
-    NSString *_timeToDisplay;
-    NSString *_durationToDisplay;
-    NSString *_urlToDisplay;
-    NSImage *_menuImagePlay;
-    NSImage *_menuImagePause;
-    NSImage *_menuImageStop;
+    BOOL isStopped;
+    BOOL showTimeElapsed;
+    NSString *_currentPlaybackUrl;
 }
 @end
 
@@ -69,280 +70,325 @@ @implementation VLCStatusBarIcon
 #pragma mark -
 #pragma mark Init
 
-- (void)dealloc
-{
-    // cleanup
-    [self.dataRefreshUpdateTimer invalidate];
-    self.dataRefreshUpdateTimer = nil;
-}
-
 - (void)awakeFromNib
 {
     [super awakeFromNib];
-
     [self enableMenuIcon];
 
+    // Set Accessibility Attributes for Image Buttons
+    [backwardsButton.cell accessibilitySetOverrideValue:_NS("Go to previous track")
+                                           forAttribute:NSAccessibilityDescriptionAttribute];
+
+    [playPauseButton.cell accessibilitySetOverrideValue:_NS("Play or pause current media")
+                                           forAttribute:NSAccessibilityDescriptionAttribute];
+
+    [forwardButton.cell accessibilitySetOverrideValue:_NS("Go to next track")
+                                         forAttribute:NSAccessibilityDescriptionAttribute];
+
+    [randButton.cell accessibilitySetOverrideValue:_NS("Toggle random order playback")
+                                      forAttribute:NSAccessibilityDescriptionAttribute];
+    
+
     // Populate menu items with localized strings
     [showMainWindowItem setTitle:_NS("Show Main Window")];
-    [playPauseItem setTitle:_NS("Play")];
-    [stopItem setTitle:_NS("Stop")];
-    [nextItem setTitle:_NS("Next")];
-    [prevItem setTitle:_NS("Previous")];
-    [randItem setTitle:_NS("Random")];
+    [pathActionItem setTitle:_NS("Path/URL Action")];
     [quitItem setTitle:_NS("Quit")];
 
-    // add the top menu item for dynamic data
-    _vlcStatusBarMenuItem = [[NSMenuItem alloc] initWithTitle:_NS("URL/Path Options") action:@selector(updateMenuItemContent:) keyEquivalent:@""];
-
-    [_vlcStatusBarMenuItem setToolTip:_NS("Misc functions with media URL or Path")];
-    [_vlcStatusBarMenuItem setTarget:self];
-
-    [_vlcStatusBarIconMenu insertItem:_vlcStatusBarMenuItem atIndex:0];
+    showTimeElapsed = YES;
 
     // Set our selves up as delegate, to receive menuNeedsUpdate messages, so
     // we can update our menu as needed/before it's drawn
     [_vlcStatusBarIconMenu setDelegate:self];
+    
+    // Register notifications
+    [[NSNotificationCenter defaultCenter] addObserver:self
+                                             selector:@selector(updateNowPlayingInfo)
+                                                 name:VLCInputChangedNotification
+                                               object:nil];
+}
 
-    // Disable custom menu item initially
-    // needs to be done with validateMenuItem (see below)
-    [_vlcStatusBarMenuItem setEnabled:NO];
-
-    // Increase toolTip speed, improves status usability
-    // Tweak delay above, with '#define NSInitialToolTipDelayIn_ms x'
-
-    [[NSUserDefaults standardUserDefaults] setObject: [NSNumber numberWithInt: NSInitialToolTipDelayIn_ms] forKey: @"NSInitialToolTipDelay"];
-
-    // init _urlToDisplay
-    _urlToDisplay = nil;
-
-    // Load the menu icons
-    _menuImagePlay = [NSImage imageNamed:@"playIcon"];
-    _menuImagePause = [NSImage imageNamed:@"pauseIcon"];
-
-    _menuImageStop = [NSImage imageNamed:@"stopIcon"];
-    [stopItem setImage:_menuImageStop];
+/* Enables the Status Bar Item and initializes it's image
+ * and context menu
+ */
+- (void)enableMenuIcon
+{
+    // Init the status item
+    _statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength];
+    [_statusItem setHighlightMode:YES];
+    [_statusItem setEnabled:YES];
+    [_statusItem setTarget:self];
 
-    // I'd rather not use a timer and only update when mouse comes near
-    // status icon in bar. But one can't tell without evil sourcery :(
-    // Tweak update frequency above (#define)
+    // Set the status item image
+    NSImage *menuIcon = [NSImage imageNamed:@"VLCStatusBarIcon"];
+    [menuIcon setTemplate:YES];
+    [_statusItem setImage:menuIcon];
 
-    [self setDataUpdateTimer:dataUpdateTimerInterval];
+    // Attach pull-down menu
+    [_statusItem setMenu:_vlcStatusBarIconMenu];
 }
 
+- (void)dealloc
+{
+    // Cleanup
+    [[NSNotificationCenter defaultCenter] removeObserver:self];
+}
 
 #pragma mark -
-#pragma mark Various callback functions
+#pragma mark Event callback functions
 
-//---
-// Menu delegate/callback for cocoa - called before menu is opened/displayed
-// fire off menu item updates (dynamic item 0, play/pause, random)
+/* Menu update delegate
+ * Called before menu is opened/displayed
+ */
 - (void)menuNeedsUpdate:(NSMenu *)menu
 {
-    // update dynamic menu 'item 0' (follows data gathered by timer handler)
-    [self updateDynamicMenuItemText];
-
-    // update play/pause status in status bar menu
-    [self updateMenuItemPlayPause];
-
-    // update random status in status bar menu
+    [self updateMetadata];
     [self updateMenuItemRandom];
+    [self updateDynamicMenuItemText];
 }
 
-
-//---
-// Make sure we can enable/disable menu items (in our case index 0)
-// override class method. Called every time before menu is drawn.
-- (BOOL)validateMenuItem:(NSMenuItem *)menuItem
+/* This is called whenever the playback status for VLC changes and here
+ * we can update our information in the menu/view
+ */
+- (void) updateNowPlayingInfo
 {
-    // disable the URL/Path options menu if there is no meaningful data
-    if ((menuItem.action == @selector(updateMenuItemContent:)) && (!_urlToDisplay)) {
-        return NO;
-    }
-    return YES;
+    [self updateMetadata];
+    [self updateProgress];
+    [self updateDynamicMenuItemText];
 }
 
-
-//---
-// callback for tooltip update timer
-//
-- (void)dataRefreshTimeHandler:(NSTimer *)timer
+/* Callback to update current playback time
+ * Called by InputManager
+ */
+- (void)updateProgress
 {
-    [self gatherDataToDisplay];
-    [self updateToolTipText];
+    input_thread_t *input = pl_CurrentInput(getIntf());
+
+    if (input) {
+        NSString *elapsedTime;
+        NSString *remainingTime;
+        NSString *totalTime;
+
+        /* Get elapsed and remaining time */
+        elapsedTime = [[VLCStringUtility sharedInstance] getCurrentTimeAsString:input negative:NO];
+        remainingTime = [[VLCStringUtility sharedInstance] getCurrentTimeAsString:input negative:YES];
+
+        /* Check item duration */
+        mtime_t dur = input_item_GetDuration(input_GetItem(input));
+
+        if (dur == -1) {
+            /* Unknown duration, possibly due to buffering */
+            [progressField setStringValue:@"--:--"];
+            [totalField setStringValue:@"--:--"];
+        } else if (dur == 0) {
+            /* Infinite duration */
+            [progressField setStringValue:elapsedTime];
+            [totalField setStringValue:@"∞"];
+        } else {
+            /* Not unknown, update displayed duration */
+            totalTime = [[VLCStringUtility sharedInstance] stringForTime:(dur/1000000)];
+            [progressField setStringValue:(showTimeElapsed) ? elapsedTime : remainingTime];
+            [totalField setStringValue:totalTime];
+        }
+        [self setStoppedStatus:NO];
+        vlc_object_release(input);
+    } else {
+        /* Nothing playing */
+        [self setStoppedStatus:YES];
+    }
 }
 
 
 #pragma mark -
-#pragma mark Various functions
-
-
-//---
-// enables menu icon/status item, sets proporties like image, attach menu
-//
-- (void)enableMenuIcon
-{
-    _statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength];
-    [_statusItem setHighlightMode:YES];
-    [_statusItem setEnabled:YES];
-    [_statusItem setTarget:self];
-
-    NSImage *menuIcon;
-    // set black/white icon (or color, like originally)
-    menuIcon = [NSImage imageNamed:@"statusBarIcon"];
-    // Make sure the b/w statusItem icon is inverted on dark/light mode
-    menuIcon.template = YES;
-    [_statusItem setImage:menuIcon];
-    [_statusItem setLength:24];
-
-    // Attach pull-down menu
-    [_statusItem setMenu:_vlcStatusBarIconMenu];
-}
+#pragma mark Update functions
 
-
-//---
-// Make sure data is fresh, before displaying
-//
-- (void)gatherDataToDisplay
+/* Updates the Metadata for the currently
+ * playing item or resets it if nothing is playing
+ */
+- (void)updateMetadata
 {
-    mtime_t pos;
+    NSImage         *coverArtImage;
+    NSString        *title;
+    NSString        *nowPlaying;
+    NSString        *artist;
+    NSString        *album;
+    input_thread_t  *input = pl_CurrentInput(getIntf());
+    input_item_t    *item  = NULL;
+
+    // Update play/pause status
+    switch ([self getPlaylistPlayStatus]) {
+        case PLAYLIST_RUNNING:
+            [self setStoppedStatus:NO];
+            [self setProgressTimeEnabled:YES];
+            [pathActionItem setEnabled:YES];
+            _currentPlaybackUrl = [[[VLCCoreInteraction sharedInstance]
+                                    URLOfCurrentPlaylistItem] absoluteString];
+            break;
+        case PLAYLIST_STOPPED:
+            [self setStoppedStatus:YES];
+            [self setProgressTimeEnabled:NO];
+            [pathActionItem setEnabled:NO];
+            _currentPlaybackUrl = nil;
+            break;
+        case PLAYLIST_PAUSED:
+            [self setStoppedStatus:NO];
+            [self setProgressTimeEnabled:YES];
+            [pathActionItem setEnabled:YES];
+            _currentPlaybackUrl = [[[VLCCoreInteraction sharedInstance]
+                                    URLOfCurrentPlaylistItem] absoluteString];
+            [playPauseButton setState:NSOffState];
+        default:
+            break;
+    }
 
-    // get name of current item - clear first!
-    _nameToDisplay = nil;
-    _nameToDisplay = [[VLCCoreInteraction sharedInstance] nameOfCurrentPlaylistItem];
+    if (input) {
+        item = input_GetItem(input);
+    }
 
-    // If status is 'stopped' there is no useful data
-    // Otherwise could have used 'if (_nameToDisplay == nil)'
+    if (item) {
+        /* Something is playing */
+        static char *tmp_cstr = NULL;
+
+        // Get Coverart
+        tmp_cstr = input_item_GetArtworkURL(item);
+        if (tmp_cstr) {
+            NSString *tempStr = toNSStr(tmp_cstr);
+            if (![tempStr hasPrefix:@"attachment://"]) {
+                coverArtImage = [[NSImage alloc]
+                                 initWithContentsOfURL:[NSURL URLWithString:tempStr]];
+            }
+            FREENULL(tmp_cstr);
+        }
 
-    if ([self vlcPlayingStatus] == PLAYLIST_STOPPED) {
-        _urlToDisplay = nil;
-    } else {
-        input_thread_t * p_input;
-        p_input = pl_CurrentInput(getIntf());
-        if (p_input) {
-            pos = var_GetInteger(p_input, "time") / CLOCK_FREQ;
-            vlc_object_release(p_input); // must release or get segfault on quit
+        // Get Titel
+        tmp_cstr = input_item_GetTitle(item);
+        if (tmp_cstr) {
+            title = toNSStr(tmp_cstr);
+            FREENULL(tmp_cstr);
         }
 
-        // update our time counter
-        _timeToDisplay = [[VLCStringUtility sharedInstance] stringForTime:(long long) pos];
+        // Get Now Playing
+        tmp_cstr = input_item_GetNowPlaying(item);
+        if (tmp_cstr) {
+            nowPlaying = toNSStr(tmp_cstr);
+            FREENULL(tmp_cstr);
+        }
 
-        // get the duration (if it's there)
-        int duration = [[VLCCoreInteraction sharedInstance] durationOfCurrentPlaylistItem];
-        _durationToDisplay = [[VLCStringUtility sharedInstance] stringForTime:(long long) duration];
+        // Get author
+        tmp_cstr = input_item_GetArtist(item);
+        if (tmp_cstr) {
+            artist = toNSStr(tmp_cstr);
+            FREENULL(tmp_cstr);
+        }
 
-        // update the playing item's URL/Path
-        _urlToDisplay =  [[[VLCCoreInteraction sharedInstance] URLOfCurrentPlaylistItem] absoluteString];
+        // Get album
+        tmp_cstr = input_item_GetAlbum(item);
+        if (tmp_cstr) {
+            album = toNSStr(tmp_cstr);
+            FREENULL(tmp_cstr);
+        }
+    } else {
+        /* Nothing playing */
+        title = _NS("VLC media player");
+        artist = _NS("Nothing playing");
     }
-}
 
+    // Set fallback coverart
+    if (!coverArtImage) {
+        coverArtImage = [NSImage imageNamed:@"noart.png"];
+    }
 
-//---
-// Call for periodic updates of tooltip text
-//
-- (void)updateToolTipText
-{
-    NSString *toolTipText = nil;
-
-    // craft the multiline string, for the tooltip, depending on play status
-
-    if ([self vlcPlayingStatus] == PLAYLIST_STOPPED) {
-        // nothing playing
-        toolTipText = _NS("VLC media player\nNothing playing");
-    } else {
-#ifdef showURLInToolTip
-        toolTipText = [NSString stringWithFormat:_NS("VLC media player\nName: %@\nDuration: %@\nTime: %@\nURL/Path: %@"), _nameToDisplay, _durationToDisplay, _timeToDisplay, _urlToDisplay];
-#else
-        toolTipText = [NSString stringWithFormat:_NS("VLC media player\nName: %@\nDuration: %@\nTime: %@"), _nameToDisplay, _durationToDisplay, _timeToDisplay];
-        // Causes warning, we need NS_FORMAT_ARGUMENT(1) for the localize function
-#endif
+    // Hack to show now playing for streams (ICY)
+    if (nowPlaying && !artist) {
+        artist = nowPlaying;
     }
 
-    [_statusItem setToolTip:toolTipText];
+    // Set the metadata in the UI
+    [self setMetadataTitle:title artist:artist album:album andCover:coverArtImage];
+
+    // Cleanup
+    if (input)
+        vlc_object_release(input);
 }
 
 
 
-//---
-// Call for updating of dynamic menu item
-//
+// Update dynamic copy/open menu item status
 - (void)updateDynamicMenuItemText
 {
-    NSString *menuString = nil;
+    if (!_currentPlaybackUrl) {
+        [pathActionItem setTitle:_NS("Path/URL Action")];
+        return;
+    }
+
+    NSURL *itemURI = [NSURL URLWithString:_currentPlaybackUrl];
 
-    // create string for dynamic menu bit (sync?)
-    if ([self vlcPlayingStatus] == PLAYLIST_STOPPED) {
-        // put back our disabled menu item text.
-        menuString =  _NS("URL/Path Options");
+    if ([itemURI.scheme isEqualToString:@"file"]) {
+        [pathActionItem setTitle:_NS("Select File In Finder")];
     } else {
-        if ([_urlToDisplay hasPrefix:@"file://"]) {
-            // offer to show 'file://' in finder
-            menuString = _NS("Select File In Finder");
-        } else {
-            // offer to copy URL to clipboard
-            menuString = _NS("Copy URL to clipboard");
-        }
+        [pathActionItem setTitle:_NS("Copy URL to clipboard")];
     }
-
-    [_vlcStatusBarMenuItem setTitle:menuString];
 }
 
-
-//---
-// set timer for tooltips updates and flee
-//
-- (void)setDataUpdateTimer:(float)interval
+// Update the random menu item status
+- (void)updateMenuItemRandom
 {
-    self.dataRefreshUpdateTimer = [NSTimer scheduledTimerWithTimeInterval:interval
-                                                                   target:self
-                                                                 selector:@selector(dataRefreshTimeHandler:)
-                                                                 userInfo:nil
-                                                                  repeats:YES];
+    // Get current random status
+    bool random;
+    playlist_t *playlist = pl_Get(getIntf());
+    random = var_GetBool(playlist, "random");
+
+    [randButton setState:(random) ? NSOnState : NSOffState];
 }
 
 
-//---
-//
-//
-- (void)updateMenuItemRandom
-{
-    // get current random status
-    bool b_value;
-    playlist_t *p_playlist = pl_Get(getIntf());
-    b_value = var_GetBool(p_playlist, "random");
 
-    if (b_value) {
-        [randItem setState:NSOnState];
-    } else {
-        [randItem setState:NSOffState];
-    }
-}
+#pragma mark -
+#pragma mark Utility functions
 
+/* Update the UI to the specified metadata
+ * Any of the values can be nil and will be replaced with empty strings
+ * or no cover Image at all
+ */
+- (void)setMetadataTitle:(NSString *)title
+                  artist:(NSString *)artist
+                   album:(NSString *)album
+                andCover:(NSImage *)cover
+{
+    [titleField setStringValue:(title) ? title : @""];
+    [artistField setStringValue:(artist) ? artist : @""];
+    [albumField setStringValue:(album) ? album : @""];
+    [coverImageView setImage:cover];
+}
 
-//---
-//
-//
-- (void)updateMenuItemPlayPause
+// Set the play/pause menu item status
+- (void)setStoppedStatus:(BOOL)stopped
 {
-    if ([self vlcPlayingStatus] == PLAYLIST_RUNNING) {
-        [playPauseItem setTitle:_NS("Pause")];
-        [playPauseItem setImage:_menuImagePause];
+    isStopped = stopped;
+    if (stopped) {
+        [playPauseButton setState:NSOffState];
     } else {
-        [playPauseItem setTitle:_NS("Play")];
-        [playPauseItem setImage:_menuImagePlay];
+        [playPauseButton setState:NSOnState];
     }
 }
 
+- (void)setProgressTimeEnabled:(BOOL)enabled
+{
+    NSColor *color;
+    color = (!enabled) ? [NSColor secondaryLabelColor] : [NSColor blackColor];
+    // Set color to the labels
+    [progressField setTextColor:color];
+    [separatorField setTextColor:color];
+    [totalField setTextColor:color];
+}
 
-#pragma mark -
-#pragma mark Utility functions
 
-//---
-// Returns VLC playlist status
-// Check for: constants PLAYLIST_RUNNING, PLAYLIST_STOPPED, PLAYLIST_PAUSED.
-- (int)vlcPlayingStatus
+/* Returns VLC playlist status
+ * Check for constants:
+ *   PLAYLIST_RUNNING, PLAYLIST_STOPPED, PLAYLIST_PAUSED
+ */
+- (int)getPlaylistPlayStatus
 {
     int res;
-    // get the playlist 'playing' status
     playlist_t *p_playlist = pl_Get(getIntf());
 
     PL_LOCK;
@@ -353,108 +399,80 @@ - (int)vlcPlayingStatus
 }
 
 
-//---
-// Returns true if playing, false in all other cases.
-//
-- (BOOL)isVLCPlaying
-{
-    bool vlcPlaying = false;
-
-    // get the playlist 'playing' status
-    playlist_t *p_playlist = pl_Get(getIntf());
-
-    PL_LOCK;
-    if (playlist_Status( p_playlist ) == PLAYLIST_RUNNING) {
-        vlcPlaying = true;
-    }
-    PL_UNLOCK;
-
-    return vlcPlaying;
-}
-
-
-
 #pragma mark -
 #pragma mark Menu item Actions
 
-//-- action for dynamic menu index 0
-
-- (IBAction) updateMenuItemContent:(id)sender
+/* Action: Select the currently playing file in Finder
+ *         or in case of a network stream, copy the URL
+ */
+- (IBAction)copyOrOpenCurrentPlaybackItem:(id)sender
 {
-    // Here we offer to copy the url to the clipboard or
-    // select/show a local file in the finder..(useful imo ;-)
-
-    if ([self vlcPlayingStatus] != PLAYLIST_STOPPED) {
-        if ([_urlToDisplay hasPrefix:@"file://"]) {
-            // show local file in finder
-            NSString *path=[_urlToDisplay substringFromIndex:7];
-            [[NSWorkspace sharedWorkspace] selectFile:path inFileViewerRootedAtPath:path];
-        } else {
-            // copy remote URL to clipboard
-            NSPasteboard *pasteboard = [NSPasteboard generalPasteboard];
-            [pasteboard clearContents];
-            [pasteboard setString:_urlToDisplay forType:NSStringPboardType];
-        }
+    // If nothing playing, there is nothing to do
+    if (!_currentPlaybackUrl) {
+        return;
     }
-}
 
+    // Check if path or URL
+    NSURL *itemURI = [NSURL URLWithString:_currentPlaybackUrl];
 
-//-- action for 'main window'
+    if ([itemURI.scheme isEqualToString:@"file"]) {
+        // Local file, open in Finder
+        [[NSWorkspace sharedWorkspace] selectFile:itemURI.path
+                         inFileViewerRootedAtPath:itemURI.path];
+    } else {
+        // URL, copy to pasteboard
+        NSPasteboard *pasteboard = [NSPasteboard generalPasteboard];
+        [pasteboard clearContents];
+        [pasteboard setString:_currentPlaybackUrl forType:NSPasteboardTypeString];
+    }
+}
 
+// Action: Show VLC main window
 - (IBAction)restoreMainWindow:(id)sender
 {
-    // force our window to go to front (huzzah) and restore window
     [[VLCApplication sharedApplication] activateIgnoringOtherApps:YES];
     [[[VLCMain sharedInstance] mainWindow] makeKeyAndOrderFront:sender];
 }
 
-
-//-- action for 'toggle play/pause'
-
+// Action: Toggle Play / Pause
 - (IBAction)statusBarIconTogglePlayPause:(id)sender
 {
     [[VLCCoreInteraction sharedInstance] playOrPause];
 }
 
-
-//-- action for 'stop'
-
+// Action: Stop playback
 - (IBAction)statusBarIconStop:(id)sender
 {
     [[VLCCoreInteraction sharedInstance] stop];
 }
 
-
-//-- action for 'Next track'
-
+// Action: Go to next track
 - (IBAction)statusBarIconNext:(id)sender
 {
     [[VLCCoreInteraction sharedInstance] next];
 }
 
-
-//-- action for 'previous track'
-
+// Action: Go to previous track
 - (IBAction)statusBarIconPrevious:(id)sender
 {
     [[VLCCoreInteraction sharedInstance] previous];
 }
 
-
-//-- action to actually 'toggle VLC randomize playorder status'
-
+// Action: Toggle random playback (shuffle)
 - (IBAction)statusBarIconToggleRandom:(id)sender
 {
     [[VLCCoreInteraction sharedInstance] shuffle];
 }
 
+// Action: Toggle between elapsed and remaining time
+- (IBAction)toggelProgressTime:(id)sender
+{
+    showTimeElapsed = (!showTimeElapsed);
+}
 
-//-- action voor 'quit'
-
+// Action: Quit VLC
 - (IBAction)quitAction:(id)sender
 {
-    // clean timer, quit
-    [self.dataRefreshUpdateTimer invalidate];
     [[NSApplication sharedApplication] terminate:nil];
 }
 
-- 
2.7.4 (Apple Git-66)




More information about the vlc-devel mailing list