[vlc-commits] [Git][videolan/vlc][master] 12 commits: macosx: Ensure fullscreen button is hidden and not just resized when native...
Jean-Baptiste Kempf (@jbk)
gitlab at videolan.org
Tue Apr 11 05:52:07 UTC 2023
Jean-Baptiste Kempf pushed to branch master at VideoLAN / VLC
Commits:
68455f95 by Claudio Cambra at 2023-04-10T17:07:23+00:00
macosx: Ensure fullscreen button is hidden and not just resized when native fullscreen enabled, fixing visual bug in control bar
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
5b9b1e3c by Claudio Cambra at 2023-04-10T17:07:23+00:00
macosx: Add button cluster next to volume slider in VLCMainVideoView UI
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
781b30cc by Claudio Cambra at 2023-04-10T17:07:23+00:00
macosx: Add a VLCMainVideoViewControlsBar
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
1e6256b4 by Claudio Cambra at 2023-04-10T17:07:23+00:00
macosx: Enable bookmarks button in main video view to toggle bookmarks window
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
3d8f20a0 by Claudio Cambra at 2023-04-10T17:07:23+00:00
macosx: Hide subtitle button when there are no subtitle tracks available
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
21c17407 by Claudio Cambra at 2023-04-10T17:07:23+00:00
macosx: Hide audio tracks button when there are no subtitle tracks available
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
e6cdd3e3 by Claudio Cambra at 2023-04-10T17:07:23+00:00
macosx: Update visibility of tracks buttons when current media item changes or tracks are changed
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
30f09909 by Claudio Cambra at 2023-04-10T17:07:23+00:00
macosx: Open subtitles menu when hitting subtitles button
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
729f31d3 by Claudio Cambra at 2023-04-10T17:07:23+00:00
macosx: Open audio menu when clicking audio menu button in main video view
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
27290173 by Claudio Cambra at 2023-04-10T17:07:23+00:00
macosx: Simplify audio and subtitle button handling as we are showing the full menu
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
cf45b7a7 by Claudio Cambra at 2023-04-10T17:07:23+00:00
macosx: Add tooltips to subtitle and audio settings buttons
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
921a6a50 by Claudio Cambra at 2023-04-10T17:07:23+00:00
macosx: Constify pointers in VLCMainVideoViewControlsBar
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
6 changed files:
- extras/package/macosx/VLC.xcodeproj/project.pbxproj
- modules/gui/macosx/Makefile.am
- modules/gui/macosx/UI/VLCMainVideoView.xib
- modules/gui/macosx/windows/mainwindow/VLCControlsBarCommon.m
- + modules/gui/macosx/windows/mainwindow/VLCMainVideoViewControlsBar.h
- + modules/gui/macosx/windows/mainwindow/VLCMainVideoViewControlsBar.m
Changes:
=====================================
extras/package/macosx/VLC.xcodeproj/project.pbxproj
=====================================
@@ -79,6 +79,7 @@
5317FE04294E3DD3001702F0 /* VLCLibraryCollectionViewDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 5317FE03294E3DD3001702F0 /* VLCLibraryCollectionViewDelegate.m */; };
5325C57D29302E6800B2B63A /* VLCLibraryAudioViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5325C57B29302E6800B2B63A /* VLCLibraryAudioViewController.m */; };
534E8E3A29A06325009503F8 /* VLCMainVideoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 534E8E3929A06325009503F8 /* VLCMainVideoViewController.m */; };
+ 5352B37329DF29BF0011CE03 /* VLCMainVideoViewControlsBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 5352B37229DF29BF0011CE03 /* VLCMainVideoViewControlsBar.m */; };
5362550D293FD639005D64FA /* VLCLibraryWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5362550C293FD639005D64FA /* VLCLibraryWindowController.m */; };
536283F0291146BC00640C15 /* VLCLibraryTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 536283DE291146BC00640C15 /* VLCLibraryTableView.m */; };
536283F1291146BC00640C15 /* VLCLibraryAlbumTracksDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 536283DF291146BC00640C15 /* VLCLibraryAlbumTracksDataSource.m */; };
@@ -258,6 +259,8 @@
534E8E3729A04F95009503F8 /* VLCMainVideoView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = VLCMainVideoView.xib; sourceTree = "<group>"; };
534E8E3829A06325009503F8 /* VLCMainVideoViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VLCMainVideoViewController.h; sourceTree = "<group>"; };
534E8E3929A06325009503F8 /* VLCMainVideoViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VLCMainVideoViewController.m; sourceTree = "<group>"; };
+ 5352B37129DF29BF0011CE03 /* VLCMainVideoViewControlsBar.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VLCMainVideoViewControlsBar.h; sourceTree = "<group>"; };
+ 5352B37229DF29BF0011CE03 /* VLCMainVideoViewControlsBar.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VLCMainVideoViewControlsBar.m; sourceTree = "<group>"; };
5362550B293FD639005D64FA /* VLCLibraryWindowController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VLCLibraryWindowController.h; sourceTree = "<group>"; };
5362550C293FD639005D64FA /* VLCLibraryWindowController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VLCLibraryWindowController.m; sourceTree = "<group>"; };
536283DC291146BC00640C15 /* VLCLibraryAlbumTracksDataSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VLCLibraryAlbumTracksDataSource.h; sourceTree = "<group>"; };
@@ -321,9 +324,9 @@
53ED472A29C8FF9D00795DB1 /* VLCLibraryAlbumTracksTableViewDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VLCLibraryAlbumTracksTableViewDelegate.m; sourceTree = "<group>"; };
53ED472C29C907C200795DB1 /* VLCLibraryVideoTableViewDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VLCLibraryVideoTableViewDelegate.h; sourceTree = "<group>"; };
53ED472D29C907C200795DB1 /* VLCLibraryVideoTableViewDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VLCLibraryVideoTableViewDelegate.m; sourceTree = "<group>"; };
- 53ED473729CAF67F00795DB1 /* VLCLibraryTableCellViewProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VLCLibraryTableCellViewProtocol.h; sourceTree = "<group>"; };
53ED473429CA4F3400795DB1 /* VLCLibraryTableViewDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VLCLibraryTableViewDelegate.h; sourceTree = "<group>"; };
53ED473529CA4F3400795DB1 /* VLCLibraryTableViewDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VLCLibraryTableViewDelegate.m; sourceTree = "<group>"; };
+ 53ED473729CAF67F00795DB1 /* VLCLibraryTableCellViewProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VLCLibraryTableCellViewProtocol.h; sourceTree = "<group>"; };
53ED473A29CBC64200795DB1 /* NSPasteboardItem+VLCAdditions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSPasteboardItem+VLCAdditions.h"; sourceTree = "<group>"; };
53ED473B29CBC64200795DB1 /* NSPasteboardItem+VLCAdditions.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSPasteboardItem+VLCAdditions.m"; sourceTree = "<group>"; };
53F0E92B299B002300491D49 /* VLCInputNodePathControlItem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VLCInputNodePathControlItem.h; sourceTree = "<group>"; };
@@ -1034,6 +1037,8 @@
children = (
1C1ED51D2205AC6B00811EC0 /* VLCControlsBarCommon.h */,
E0382C01160BA09E0031D7FF /* VLCControlsBarCommon.m */,
+ 5352B37129DF29BF0011CE03 /* VLCMainVideoViewControlsBar.h */,
+ 5352B37229DF29BF0011CE03 /* VLCMainVideoViewControlsBar.m */,
7D5678EE1D5BA397002698F3 /* VLCMainWindowControlsBar.h */,
7D5678EF1D5BA397002698F3 /* VLCMainWindowControlsBar.m */,
);
@@ -1897,6 +1902,7 @@
7D61DCE4236C1937008133CF /* VLCCustomWindowButton.m in Sources */,
7DFFF90123682D4800C8B0C9 /* VLCDetachedAudioWindow.m in Sources */,
7D66D4392200C5B80040D04A /* VLCVideoFilterHelper.m in Sources */,
+ 5352B37329DF29BF0011CE03 /* VLCMainVideoViewControlsBar.m in Sources */,
7D445D812202524000263D34 /* VLCPlaylistController.m in Sources */,
7DFBDCBE226CED7200B700A5 /* VLCMediaSource.m in Sources */,
536283F2291146BC00640C15 /* VLCLibraryCollectionViewAlbumSupplementaryDetailView.m in Sources */,
=====================================
modules/gui/macosx/Makefile.am
=====================================
@@ -348,6 +348,8 @@ libmacosx_plugin_la_SOURCES = \
gui/macosx/windows/logging/VLCLogWindowController.m \
gui/macosx/windows/mainwindow/VLCControlsBarCommon.h \
gui/macosx/windows/mainwindow/VLCControlsBarCommon.m \
+ gui/macosx/windows/mainwindow/VLCMainVideoViewControlsBar.h \
+ gui/macosx/windows/mainwindow/VLCMainVideoViewControlsBar.m \
gui/macosx/windows/mainwindow/VLCMainWindowControlsBar.h \
gui/macosx/windows/mainwindow/VLCMainWindowControlsBar.m \
gui/macosx/windows/video/VLCAspectRatioRetainingVideoWindow.h \
=====================================
modules/gui/macosx/UI/VLCMainVideoView.xib
=====================================
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="21507" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="21701" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<dependencies>
<deployment version="101000" identifier="macosx"/>
- <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="21507"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="21701"/>
<capability name="Image references" minToolsVersion="12.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
@@ -28,19 +28,20 @@
</customObject>
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
- <customObject id="3" userLabel="Main Video View Controls Bar" customClass="VLCControlsBarCommon">
+ <customObject id="3" userLabel="Main Video View Controls Bar" customClass="VLCMainVideoViewControlsBar">
<connections>
+ <outlet property="audioButton" destination="cja-ZG-8LF" id="96C-CC-iV7"/>
<outlet property="backwardButton" destination="V9d-hX-iyg" id="ZFn-jn-7OB"/>
+ <outlet property="bookmarksButton" destination="4tZ-52-1q9" id="dAN-YB-YZ5"/>
<outlet property="forwardButton" destination="sF5-Z0-bef" id="H6w-Le-NAK"/>
<outlet property="fullscreenButton" destination="dYZ-ri-Kra" id="Cw2-BS-QG9"/>
<outlet property="fullscreenButtonWidthConstraint" destination="quS-fD-Od7" id="6hT-nR-yQI"/>
- <outlet property="muteVolumeButton" destination="tVB-Xs-sJJ" id="snj-OU-aTI"/>
<outlet property="playButton" destination="PCC-8a-sVF" id="ddT-ZM-Jhz"/>
<outlet property="songNameTextField" destination="lEW-MN-FFU" id="btX-L9-7TO"/>
+ <outlet property="subtitlesButton" destination="YTl-LZ-WDe" id="893-XB-eDY"/>
<outlet property="timeField" destination="3ri-8b-8mw" id="f0i-Gh-R8V"/>
<outlet property="timeSlider" destination="qNZ-Fh-W8i" id="Fkk-fj-s5Q"/>
<outlet property="trailingTimeField" destination="f4v-2z-dQ1" id="AXX-AU-lF0"/>
- <outlet property="volumeSlider" destination="lyY-Zo-4aH" id="HbX-7f-pNR"/>
</connections>
</customObject>
<customView id="WRu-Ic-lQK">
@@ -80,7 +81,7 @@
</textFieldCell>
</textField>
<textField wantsLayer="YES" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="lEW-MN-FFU" customClass="VLCWrappableTextField">
- <rect key="frame" x="18" y="59" width="495" height="28"/>
+ <rect key="frame" x="18" y="59" width="394" height="28"/>
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingTail" allowsUndo="NO" sendsActionOnEndEditing="YES" alignment="left" placeholderString="Nothing Playing" usesSingleLineMode="YES" id="8l0-zS-fOa">
<font key="font" metaFont="systemBold" size="24"/>
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
@@ -97,34 +98,111 @@
<action selector="timeSliderAction:" target="3" id="W32-wA-rN9"/>
</connections>
</slider>
- <stackView distribution="fill" orientation="horizontal" alignment="centerY" spacing="20" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="sJu-ZK-5QH">
- <rect key="frame" x="531" y="59" width="169" height="32"/>
+ <stackView distribution="fill" orientation="horizontal" alignment="centerY" spacing="10" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="sJu-ZK-5QH">
+ <rect key="frame" x="430" y="59" width="270" height="32"/>
<subviews>
<stackView distribution="fill" orientation="horizontal" alignment="centerY" spacing="5" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Y8F-hr-iaW">
- <rect key="frame" x="0.0" y="0.0" width="117" height="32"/>
+ <rect key="frame" x="0.0" y="0.0" width="143" height="32"/>
<subviews>
- <button wantsLayer="YES" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="tVB-Xs-sJJ" customClass="VLCImageButton">
+ <button wantsLayer="YES" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="cja-ZG-8LF" customClass="VLCImageButton">
<rect key="frame" x="0.0" y="-1" width="32" height="33"/>
<constraints>
- <constraint firstAttribute="width" constant="32" id="PGL-rL-Qcp"/>
- <constraint firstAttribute="width" secondItem="tVB-Xs-sJJ" secondAttribute="height" multiplier="1:1" id="qTO-ie-xwE"/>
+ <constraint firstAttribute="width" secondItem="cja-ZG-8LF" secondAttribute="height" multiplier="1:1" id="Hc7-cx-AiL"/>
+ <constraint firstAttribute="width" constant="32" id="NiS-Cd-FWu"/>
</constraints>
- <buttonCell key="cell" type="recessed" bezelStyle="recessed" image="volume.3.fill" catalog="system" imagePosition="only" alignment="center" controlSize="large" borderStyle="border" imageScaling="proportionallyUpOrDown" inset="2" id="skE-5H-zgX">
+ <buttonCell key="cell" type="recessed" bezelStyle="recessed" image="waveform.circle" catalog="system" imagePosition="only" alignment="center" controlSize="large" borderStyle="border" imageScaling="proportionallyUpOrDown" inset="2" id="5em-Cm-yoF">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES" changeBackground="YES" changeGray="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<connections>
- <action selector="volumeAction:" target="3" id="4W0-Ft-7pO"/>
+ <action selector="openAudioMenu:" target="3" id="hHT-Oc-wgF"/>
</connections>
</button>
- <slider verticalHuggingPriority="750" horizontalCompressionResistancePriority="800" translatesAutoresizingMaskIntoConstraints="NO" id="lyY-Zo-4aH" customClass="VLCVolumeSlider">
+ <button wantsLayer="YES" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="YTl-LZ-WDe" customClass="VLCImageButton">
+ <rect key="frame" x="37" y="-1" width="32" height="33"/>
+ <constraints>
+ <constraint firstAttribute="width" constant="32" id="lX6-ad-1gX"/>
+ <constraint firstAttribute="width" secondItem="YTl-LZ-WDe" secondAttribute="height" multiplier="1:1" id="vzf-FG-VLf"/>
+ </constraints>
+ <buttonCell key="cell" type="recessed" bezelStyle="recessed" image="text.bubble" catalog="system" imagePosition="only" alignment="center" controlSize="large" borderStyle="border" imageScaling="proportionallyUpOrDown" inset="2" id="1qF-LY-LkO">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES" changeBackground="YES" changeGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <connections>
+ <action selector="openSubtitlesMenu:" target="3" id="X6e-aG-mVF"/>
+ </connections>
+ </button>
+ <button wantsLayer="YES" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="4tZ-52-1q9" customClass="VLCImageButton">
+ <rect key="frame" x="74" y="-1" width="32" height="33"/>
+ <constraints>
+ <constraint firstAttribute="width" constant="32" id="oY2-hp-RHB"/>
+ <constraint firstAttribute="width" secondItem="4tZ-52-1q9" secondAttribute="height" multiplier="1:1" id="pSW-vN-Ly5"/>
+ </constraints>
+ <buttonCell key="cell" type="recessed" bezelStyle="recessed" image="bookmark.circle" catalog="system" imagePosition="only" alignment="center" controlSize="large" borderStyle="border" imageScaling="proportionallyUpOrDown" inset="2" id="bGc-fn-jgQ">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES" changeBackground="YES" changeGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <connections>
+ <action selector="openBookmarks:" target="3" id="o6m-9M-L4U"/>
+ </connections>
+ </button>
+ <button wantsLayer="YES" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="dYZ-ri-Kra" customClass="VLCImageButton">
+ <rect key="frame" x="111" y="-1" width="32" height="33"/>
+ <constraints>
+ <constraint firstAttribute="width" secondItem="dYZ-ri-Kra" secondAttribute="height" multiplier="1:1" id="cHQ-Fu-L8k"/>
+ <constraint firstAttribute="width" constant="32" id="quS-fD-Od7"/>
+ </constraints>
+ <buttonCell key="cell" type="recessed" bezelStyle="recessed" image="arrow.up.left.and.arrow.down.right" catalog="system" imagePosition="only" alignment="center" controlSize="large" borderStyle="border" imageScaling="proportionallyUpOrDown" inset="2" id="Z8g-js-0W6">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES" changeBackground="YES" changeGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <connections>
+ <action selector="fullscreen:" target="3" id="0Kk-UV-WtF"/>
+ </connections>
+ </button>
+ </subviews>
+ <constraints>
+ <constraint firstItem="YTl-LZ-WDe" firstAttribute="width" secondItem="YTl-LZ-WDe" secondAttribute="height" multiplier="1:1" id="2QI-lH-hlk"/>
+ <constraint firstItem="4tZ-52-1q9" firstAttribute="width" secondItem="4tZ-52-1q9" secondAttribute="height" multiplier="1:1" id="UdU-aK-B0s"/>
+ </constraints>
+ <visibilityPriorities>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ </visibilityPriorities>
+ <customSpacing>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ </customSpacing>
+ </stackView>
+ <stackView distribution="fill" orientation="horizontal" alignment="centerY" spacing="5" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="zyp-45-IgR">
+ <rect key="frame" x="153" y="0.0" width="117" height="32"/>
+ <subviews>
+ <button wantsLayer="YES" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="afi-4d-rQk" customClass="VLCImageButton">
+ <rect key="frame" x="0.0" y="-1" width="32" height="33"/>
+ <constraints>
+ <constraint firstAttribute="width" secondItem="afi-4d-rQk" secondAttribute="height" multiplier="1:1" id="2lo-OW-sv9"/>
+ <constraint firstAttribute="width" constant="32" id="PWI-LB-n9j"/>
+ </constraints>
+ <buttonCell key="cell" type="recessed" bezelStyle="recessed" image="volume.3.fill" catalog="system" imagePosition="only" alignment="center" controlSize="large" borderStyle="border" imageScaling="proportionallyUpOrDown" inset="2" id="POe-ne-XtP">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES" changeBackground="YES" changeGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <connections>
+ <action selector="volumeAction:" target="3" id="GOu-6c-pg9"/>
+ </connections>
+ </button>
+ <slider verticalHuggingPriority="750" horizontalCompressionResistancePriority="800" translatesAutoresizingMaskIntoConstraints="NO" id="fKc-2d-Uu6" customClass="VLCVolumeSlider">
<rect key="frame" x="35" y="8" width="84" height="17"/>
<constraints>
- <constraint firstAttribute="width" constant="80" id="SeC-cP-5Dr"/>
+ <constraint firstAttribute="width" constant="80" id="cWg-Fr-x0Z"/>
</constraints>
- <sliderCell key="cell" controlSize="mini" continuous="YES" state="on" alignment="left" maxValue="512" doubleValue="50" tickMarkPosition="above" sliderType="linear" id="Zws-Wl-Ctp" customClass="VLCVolumeSliderCell"/>
+ <sliderCell key="cell" controlSize="mini" continuous="YES" state="on" alignment="left" maxValue="512" doubleValue="50" tickMarkPosition="above" sliderType="linear" id="Gp6-7o-lvj" customClass="VLCVolumeSliderCell"/>
<connections>
- <action selector="volumeAction:" target="3" id="rPg-yg-qAG"/>
+ <action selector="volumeAction:" target="3" id="soW-Fc-H3Y"/>
</connections>
</slider>
</subviews>
@@ -137,20 +215,6 @@
<real value="3.4028234663852886e+38"/>
</customSpacing>
</stackView>
- <button wantsLayer="YES" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="dYZ-ri-Kra" customClass="VLCImageButton">
- <rect key="frame" x="137" y="-1" width="32" height="33"/>
- <constraints>
- <constraint firstAttribute="width" secondItem="dYZ-ri-Kra" secondAttribute="height" multiplier="1:1" id="cHQ-Fu-L8k"/>
- <constraint firstAttribute="width" constant="32" id="quS-fD-Od7"/>
- </constraints>
- <buttonCell key="cell" type="recessed" bezelStyle="recessed" image="NSEnterFullScreenTemplate" imagePosition="only" alignment="center" controlSize="large" borderStyle="border" imageScaling="proportionallyUpOrDown" inset="2" id="Z8g-js-0W6">
- <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES" changeBackground="YES" changeGray="YES"/>
- <font key="font" metaFont="system"/>
- </buttonCell>
- <connections>
- <action selector="fullscreen:" target="3" id="0Kk-UV-WtF"/>
- </connections>
- </button>
</subviews>
<visibilityPriorities>
<integer value="1000"/>
@@ -197,7 +261,7 @@
<rect key="frame" x="260" y="208" width="200" height="64"/>
<subviews>
<button translatesAutoresizingMaskIntoConstraints="NO" id="V9d-hX-iyg" customClass="VLCImageButton">
- <rect key="frame" x="0.0" y="7" width="48" height="51"/>
+ <rect key="frame" x="0.0" y="6.5" width="48" height="51"/>
<constraints>
<constraint firstAttribute="width" constant="48" id="XBm-GM-29d"/>
<constraint firstAttribute="width" secondItem="V9d-hX-iyg" secondAttribute="height" multiplier="1:1" id="mjk-wN-72b"/>
@@ -215,7 +279,7 @@
</connections>
</button>
<button translatesAutoresizingMaskIntoConstraints="NO" id="PCC-8a-sVF" customClass="VLCImageButton">
- <rect key="frame" x="68" y="-2" width="64" height="68"/>
+ <rect key="frame" x="68" y="-2" width="64.5" height="68"/>
<constraints>
<constraint firstAttribute="width" secondItem="PCC-8a-sVF" secondAttribute="height" multiplier="1:1" id="2jF-Y0-kn3"/>
<constraint firstAttribute="width" constant="64" id="OHb-xJ-sqM"/>
@@ -236,7 +300,7 @@
</connections>
</button>
<button translatesAutoresizingMaskIntoConstraints="NO" id="sF5-Z0-bef" customClass="VLCImageButton">
- <rect key="frame" x="152" y="7" width="48" height="51"/>
+ <rect key="frame" x="152" y="6.5" width="48" height="51"/>
<constraints>
<constraint firstAttribute="width" constant="48" id="M5n-CD-fd3"/>
<constraint firstAttribute="width" secondItem="sF5-Z0-bef" secondAttribute="height" multiplier="1:1" id="b5c-td-Idb"/>
@@ -332,13 +396,16 @@
</customView>
</objects>
<resources>
- <image name="NSEnterFullScreenTemplate" width="20" height="18"/>
- <image name="NSLeftFacingTriangleTemplate" width="12" height="16"/>
- <image name="NSListViewTemplate" width="21" height="14"/>
+ <image name="NSLeftFacingTriangleTemplate" width="12" height="17"/>
+ <image name="NSListViewTemplate" width="21" height="15"/>
<image name="VLCPauseTemplate" width="128" height="128"/>
- <image name="backward.fill" catalog="system" width="20" height="12"/>
- <image name="forward.fill" catalog="system" width="20" height="12"/>
+ <image name="arrow.up.left.and.arrow.down.right" catalog="system" width="16" height="15"/>
+ <image name="backward.fill" catalog="system" width="19" height="12"/>
+ <image name="bookmark.circle" catalog="system" width="15" height="15"/>
+ <image name="forward.fill" catalog="system" width="19" height="12"/>
<image name="play.fill" catalog="system" width="12" height="13"/>
+ <image name="text.bubble" catalog="system" width="17" height="16"/>
<image name="volume.3.fill" catalog="system" width="22" height="15"/>
+ <image name="waveform.circle" catalog="system" width="15" height="15"/>
</resources>
</document>
=====================================
modules/gui/macosx/windows/mainwindow/VLCControlsBarCommon.m
=====================================
@@ -170,6 +170,7 @@
// remove fullscreen button for lion fullscreen
if (_nativeFullscreenMode) {
self.fullscreenButtonWidthConstraint.constant = 0;
+ self.fullscreenButton.hidden = YES;
}
self.backwardButton.accessibilityTitle = _NS("Previous");
=====================================
modules/gui/macosx/windows/mainwindow/VLCMainVideoViewControlsBar.h
=====================================
@@ -0,0 +1,39 @@
+/*****************************************************************************
+ * VLCMainVideoViewControlsBar.h: MacOS X interface module
+ *****************************************************************************
+ * Copyright (C) 2023 VLC authors and VideoLAN
+ *
+ * Authors: Claudio Cambra <developer at claudiocambra.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ *****************************************************************************/
+
+#import "VLCControlsBarCommon.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+ at interface VLCMainVideoViewControlsBar : VLCControlsBarCommon
+
+ at property (readwrite, strong) IBOutlet NSButton *bookmarksButton;
+ at property (readwrite, strong) IBOutlet NSButton *subtitlesButton;
+ at property (readwrite, strong) IBOutlet NSButton *audioButton;
+
+- (IBAction)openBookmarks:(id)sender;
+- (IBAction)openSubtitlesMenu:(id)sender;
+- (IBAction)openAudioMenu:(id)sender;
+
+ at end
+
+NS_ASSUME_NONNULL_END
=====================================
modules/gui/macosx/windows/mainwindow/VLCMainVideoViewControlsBar.m
=====================================
@@ -0,0 +1,73 @@
+/*****************************************************************************
+ * VLCMainVideoViewControlsBar.m: MacOS X interface module
+ *****************************************************************************
+ * Copyright (C) 2023 VLC authors and VideoLAN
+ *
+ * Authors: Claudio Cambra <developer at claudiocambra.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ *****************************************************************************/
+
+#import "VLCMainVideoViewControlsBar.h"
+
+#import "extensions/NSString+Helpers.h"
+
+#import "main/VLCMain.h"
+
+#import "menus/VLCMainMenu.h"
+
+#import "panels/VLCBookmarksWindowController.h"
+
+#import "playlist/VLCPlaylistController.h"
+#import "playlist/VLCPlayerController.h"
+
+ at implementation VLCMainVideoViewControlsBar
+
+- (void)awakeFromNib
+{
+ [super awakeFromNib];
+
+ _bookmarksButton.toolTip = _NS("Bookmarks");
+ _bookmarksButton.accessibilityLabel = _bookmarksButton.toolTip;
+
+ _subtitlesButton.toolTip = _NS("Subtitle settings");
+ _subtitlesButton.accessibilityLabel = _subtitlesButton.toolTip;
+
+ _audioButton.toolTip = _NS("Audio settings");
+ _audioButton.accessibilityLabel = _audioButton.toolTip;
+}
+
+- (IBAction)openBookmarks:(id)sender
+{
+ [VLCMain.sharedInstance.bookmarks toggleWindow:sender];
+}
+
+- (IBAction)openSubtitlesMenu:(id)sender
+{
+ NSMenu * const menu = VLCMain.sharedInstance.mainMenu.subtitlesMenu;
+ [menu popUpMenuPositioningItem:nil
+ atLocation:_subtitlesButton.frame.origin
+ inView:((NSView *)sender).superview];
+}
+
+- (IBAction)openAudioMenu:(id)sender
+{
+ NSMenu * const menu = VLCMain.sharedInstance.mainMenu.audioMenu;
+ [menu popUpMenuPositioningItem:nil
+ atLocation:_audioButton.frame.origin
+ inView:((NSView *)sender).superview];
+}
+
+ at end
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/ed97dd9fb80a2d02de8c3b756aaeb263f8b807bb...921a6a50321439b9185478b69329de64b463a05f
--
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/ed97dd9fb80a2d02de8c3b756aaeb263f8b807bb...921a6a50321439b9185478b69329de64b463a05f
You're receiving this email because of your account on code.videolan.org.
VideoLAN code repository instance
More information about the vlc-commits
mailing list