[vlc-commits] macOS: Add image button classes
Cameron Mozie
git at videolan.org
Tue Feb 28 22:10:49 CET 2017
vlc | branch: master | Cameron Mozie <camsw0rld14 at gmail.com> | Sun Feb 26 14:54:59 2017 +0100| [6b11e86356e1c5d75fffba6680a7e2b11556eac5] | committer: Marvin Scholz
macOS: Add image button classes
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=6b11e86356e1c5d75fffba6680a7e2b11556eac5
---
.../package/macosx/VLC.xcodeproj/project.pbxproj | 16 +++++++--
modules/gui/macosx/Makefile.am | 4 ++-
modules/gui/macosx/UI/VLCFullScreenPanel.xib | 18 +++++-----
modules/gui/macosx/VLCFSPanelController.m | 4 ---
modules/gui/macosx/VLCHUDImageButton.h | 28 ++++++++++++++++
modules/gui/macosx/VLCHUDImageButton.m | 38 ++++++++++++++++++++++
modules/gui/macosx/VLCHUDToggleButton.h | 28 ++++++++++++++++
modules/gui/macosx/VLCHUDToggleButton.m | 38 ++++++++++++++++++++++
8 files changed, 158 insertions(+), 16 deletions(-)
diff --git a/extras/package/macosx/VLC.xcodeproj/project.pbxproj b/extras/package/macosx/VLC.xcodeproj/project.pbxproj
index 6384f73..9250957 100644
--- a/extras/package/macosx/VLC.xcodeproj/project.pbxproj
+++ b/extras/package/macosx/VLC.xcodeproj/project.pbxproj
@@ -165,6 +165,8 @@
1C3114281E508D1B00D4DD76 /* VLCFullScreenPanel.xib in Sources */ = {isa = PBXBuildFile; fileRef = 6B8224181E4D2A9000833BE1 /* VLCFullScreenPanel.xib */; };
1C3114291E508D1B00D4DD76 /* VLCRendererDialog.xib in Sources */ = {isa = PBXBuildFile; fileRef = 6B8224191E4D2A9000833BE1 /* VLCRendererDialog.xib */; };
1C31142A1E508D1B00D4DD76 /* VLCStatusBarIconMainMenu.xib in Sources */ = {isa = PBXBuildFile; fileRef = 6B82241A1E4D2A9000833BE1 /* VLCStatusBarIconMainMenu.xib */; };
+ 6B3BE42C1E6217CB008D098A /* VLCHUDImageButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B3BE42B1E6217CB008D098A /* VLCHUDImageButton.m */; };
+ 6B3BE4321E621F24008D098A /* VLCHUDToggleButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B3BE4311E621F24008D098A /* VLCHUDToggleButton.m */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
@@ -195,6 +197,10 @@
633121CB1B51122700E636DA /* VLCResumeDialogController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCResumeDialogController.m; sourceTree = "<group>"; };
6B13E2A61BC67678001AD24A /* VLCScrollingClipView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VLCScrollingClipView.h; sourceTree = "<group>"; };
6B13E2A71BC67678001AD24A /* VLCScrollingClipView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCScrollingClipView.m; sourceTree = "<group>"; };
+ 6B3BE42A1E6217CB008D098A /* VLCHUDImageButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VLCHUDImageButton.h; sourceTree = "<group>"; };
+ 6B3BE42B1E6217CB008D098A /* VLCHUDImageButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCHUDImageButton.m; sourceTree = "<group>"; };
+ 6B3BE4301E621F24008D098A /* VLCHUDToggleButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VLCHUDToggleButton.h; sourceTree = "<group>"; };
+ 6B3BE4311E621F24008D098A /* VLCHUDToggleButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCHUDToggleButton.m; sourceTree = "<group>"; };
6B6A499A1DFD9B23009128AC /* VLCDefaultValueSlider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VLCDefaultValueSlider.h; sourceTree = "<group>"; };
6B6A499B1DFD9B23009128AC /* VLCDefaultValueSlider.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCDefaultValueSlider.m; sourceTree = "<group>"; };
6B6A499C1DFD9B23009128AC /* VLCDefaultValueSliderCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VLCDefaultValueSliderCell.h; sourceTree = "<group>"; };
@@ -922,6 +928,10 @@
08FB77AFFE84173DC02AAC07 /* Classes */ = {
isa = PBXGroup;
children = (
+ 6B3BE42A1E6217CB008D098A /* VLCHUDImageButton.h */,
+ 6B3BE42B1E6217CB008D098A /* VLCHUDImageButton.m */,
+ 6B3BE4301E621F24008D098A /* VLCHUDToggleButton.h */,
+ 6B3BE4311E621F24008D098A /* VLCHUDToggleButton.m */,
1C67C8A61D58C0A40079E1C1 /* VLCAboutWindowController.h */,
1C67C8A71D58C0A40079E1C1 /* VLCAboutWindowController.m */,
1C67C8A31D58C0980079E1C1 /* VLCHelpWindowController.h */,
@@ -1879,7 +1889,7 @@
};
};
};
- buildConfigurationList = C2F2A6EA09588F1B00018C74 /* Build configuration list for PBXProject "vlc" */;
+ buildConfigurationList = C2F2A6EA09588F1B00018C74 /* Build configuration list for PBXProject "VLC" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 1;
@@ -1905,6 +1915,7 @@
buildActionMask = 2147483647;
files = (
1C31140E1E508D1B00D4DD76 /* About.xib in Sources */,
+ 6B3BE42C1E6217CB008D098A /* VLCHUDImageButton.m in Sources */,
1C31140F1E508D1B00D4DD76 /* AddonManager.xib in Sources */,
1C3114101E508D1B00D4DD76 /* AudioEffects.xib in Sources */,
1C3114111E508D1B00D4DD76 /* Bookmarks.xib in Sources */,
@@ -1954,6 +1965,7 @@
1C3113F01E508C7600D4DD76 /* VLCRendererItem.h in Sources */,
1C3113F11E508C7600D4DD76 /* VLCRendererItem.m in Sources */,
1C3113F21E508C7600D4DD76 /* VLCRendererDialog.h in Sources */,
+ 6B3BE4321E621F24008D098A /* VLCHUDToggleButton.m in Sources */,
1C3113F31E508C7600D4DD76 /* VLCRendererDialog.m in Sources */,
1C3113F41E508C7600D4DD76 /* VLCHUDTextFieldCell.h in Sources */,
1C3113F51E508C7600D4DD76 /* VLCHUDTextFieldCell.m in Sources */,
@@ -2218,7 +2230,7 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Default;
};
- C2F2A6EA09588F1B00018C74 /* Build configuration list for PBXProject "vlc" */ = {
+ C2F2A6EA09588F1B00018C74 /* Build configuration list for PBXProject "VLC" */ = {
isa = XCConfigurationList;
buildConfigurations = (
C2F2A6EB09588F1B00018C74 /* Development */,
diff --git a/modules/gui/macosx/Makefile.am b/modules/gui/macosx/Makefile.am
index 809034a..15569bb 100644
--- a/modules/gui/macosx/Makefile.am
+++ b/modules/gui/macosx/Makefile.am
@@ -92,7 +92,9 @@ libmacosx_plugin_la_SOURCES = \
VLCFSPanelController.h VLCFSPanelController.m \
VLCFSPanelDraggableView.h VLCFSPanelDraggableView.m \
VLCDefaultValueSlider.h VLCDefaultValueSlider.m \
- VLCDefaultValueSliderCell.h VLCDefaultValueSliderCell.m
+ VLCDefaultValueSliderCell.h VLCDefaultValueSliderCell.m \
+ VLCHUDImageButton.h VLCHUDImageButton.m \
+ VLCHUDToggleButton.h VLCHUDToggleButton.m
nobase_libmacosx_plugin_la_DATA = \
UI/About.nib \
diff --git a/modules/gui/macosx/UI/VLCFullScreenPanel.xib b/modules/gui/macosx/UI/VLCFullScreenPanel.xib
index 6f7c9a4..3152cfc 100644
--- a/modules/gui/macosx/UI/VLCFullScreenPanel.xib
+++ b/modules/gui/macosx/UI/VLCFullScreenPanel.xib
@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="11542" systemVersion="15G1217" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="12100" systemVersion="16D32" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<dependencies>
<deployment identifier="macosx"/>
<development version="7000" identifier="xcode"/>
- <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="11542"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="12100"/>
<capability name="Aspect ratio constraints" minToolsVersion="5.1"/>
<capability name="system font weights other than Regular or Bold" minToolsVersion="7.0"/>
</dependencies>
@@ -42,7 +42,7 @@
<customView translatesAutoresizingMaskIntoConstraints="NO" id="VLH-qy-cwr">
<rect key="frame" x="0.0" y="0.0" width="480" height="42"/>
<subviews>
- <button translatesAutoresizingMaskIntoConstraints="NO" id="YSL-bH-k6U">
+ <button translatesAutoresizingMaskIntoConstraints="NO" id="YSL-bH-k6U" customClass="VLCHUDToggleButton">
<rect key="frame" x="226" y="7" width="35" height="29"/>
<constraints>
<constraint firstAttribute="width" secondItem="YSL-bH-k6U" secondAttribute="height" multiplier="1:1" constant="6" id="2if-S8-t0u"/>
@@ -55,7 +55,7 @@
<action selector="togglePlayPause:" target="-2" id="9os-DP-jAN"/>
</connections>
</button>
- <button translatesAutoresizingMaskIntoConstraints="NO" id="jSN-hV-r5D">
+ <button translatesAutoresizingMaskIntoConstraints="NO" id="jSN-hV-r5D" customClass="VLCHUDImageButton">
<rect key="frame" x="263" y="7" width="34" height="29"/>
<constraints>
<constraint firstAttribute="width" secondItem="jSN-hV-r5D" secondAttribute="height" multiplier="19:16" id="m1w-9i-bkp"/>
@@ -68,7 +68,7 @@
<action selector="jumpForward:" target="-2" id="bjn-qc-BJ7"/>
</connections>
</button>
- <button translatesAutoresizingMaskIntoConstraints="NO" id="7QH-jb-QdM">
+ <button translatesAutoresizingMaskIntoConstraints="NO" id="7QH-jb-QdM" customClass="VLCHUDImageButton">
<rect key="frame" x="189" y="7" width="35" height="29"/>
<constraints>
<constraint firstAttribute="width" secondItem="7QH-jb-QdM" secondAttribute="height" multiplier="19:16" id="isk-o2-kZY"/>
@@ -93,7 +93,7 @@
<action selector="volumeSliderUpdate:" target="-2" id="doI-qM-Pde"/>
</connections>
</slider>
- <button translatesAutoresizingMaskIntoConstraints="NO" id="2ai-dB-Wpq">
+ <button translatesAutoresizingMaskIntoConstraints="NO" id="2ai-dB-Wpq" customClass="VLCHUDImageButton">
<rect key="frame" x="299" y="7" width="34" height="29"/>
<constraints>
<constraint firstAttribute="width" secondItem="2ai-dB-Wpq" secondAttribute="height" multiplier="19:16" id="Itj-7f-YDa"/>
@@ -106,7 +106,7 @@
<action selector="gotoNext:" target="-2" id="flJ-52-Pcb"/>
</connections>
</button>
- <button translatesAutoresizingMaskIntoConstraints="NO" id="TVM-DT-2yo">
+ <button translatesAutoresizingMaskIntoConstraints="NO" id="TVM-DT-2yo" customClass="VLCHUDImageButton">
<rect key="frame" x="153" y="7" width="34" height="29"/>
<constraints>
<constraint firstAttribute="width" secondItem="TVM-DT-2yo" secondAttribute="height" multiplier="19:16" id="oKb-iw-6S1"/>
@@ -130,7 +130,7 @@
<font key="font" metaFont="system"/>
</buttonCell>
</button>
- <button translatesAutoresizingMaskIntoConstraints="NO" id="C5K-aX-3aJ">
+ <button translatesAutoresizingMaskIntoConstraints="NO" id="C5K-aX-3aJ" customClass="VLCHUDImageButton">
<rect key="frame" x="438" y="10" width="22" height="22"/>
<constraints>
<constraint firstAttribute="width" secondItem="C5K-aX-3aJ" secondAttribute="height" multiplier="1:1" id="VWl-0x-p1I"/>
diff --git a/modules/gui/macosx/VLCFSPanelController.m b/modules/gui/macosx/VLCFSPanelController.m
index 0b4f499..e3ed64f 100644
--- a/modules/gui/macosx/VLCFSPanelController.m
+++ b/modules/gui/macosx/VLCFSPanelController.m
@@ -92,10 +92,6 @@ static NSString *kAssociatedFullscreenRect = @"VLCFullscreenAssociatedWindowRect
[self injectBackgroundView];
#endif
- /* TODO: Write custom Image-only button subclass to behave properly */
- [(NSButtonCell*)[_playPauseButton cell] setHighlightsBy:NSPushInCellMask];
- [(NSButtonCell*)[_playPauseButton cell] setShowsStateBy:NSContentsCellMask];
-
[self setupControls];
}
diff --git a/modules/gui/macosx/VLCHUDImageButton.h b/modules/gui/macosx/VLCHUDImageButton.h
new file mode 100644
index 0000000..93a53c3
--- /dev/null
+++ b/modules/gui/macosx/VLCHUDImageButton.h
@@ -0,0 +1,28 @@
+/*****************************************************************************
+ * VLCHUDImageButton.h
+ *****************************************************************************
+ * Copyright (C) 2017 VLC authors and VideoLAN
+ * $Id$
+ *
+ * Authors: Cameron Mozie <camsw0rld14 at gmail.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 <Cocoa/Cocoa.h>
+
+ at interface VLCHUDImageButton : NSButton
+
+ at end
diff --git a/modules/gui/macosx/VLCHUDImageButton.m b/modules/gui/macosx/VLCHUDImageButton.m
new file mode 100644
index 0000000..49ea850
--- /dev/null
+++ b/modules/gui/macosx/VLCHUDImageButton.m
@@ -0,0 +1,38 @@
+/*****************************************************************************
+ * VLCHUDImageButton.m
+ *****************************************************************************
+ * Copyright (C) 2017 VLC authors and VideoLAN
+ * $Id$
+ *
+ * Authors: Cameron Mozie <camsw0rld14 at gmail.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 "VLCHUDImageButton.h"
+
+ at implementation VLCHUDImageButton
+
+- (instancetype)initWithCoder:(NSCoder *)coder
+{
+ self = [super initWithCoder:coder];
+ if (self) {
+ [(NSButtonCell*)[self cell] setHighlightsBy:NSPushInCellMask];
+ [(NSButtonCell*)[self cell] setShowsStateBy:NSNoCellMask];
+ }
+ return self;
+}
+
+ at end
diff --git a/modules/gui/macosx/VLCHUDToggleButton.h b/modules/gui/macosx/VLCHUDToggleButton.h
new file mode 100644
index 0000000..449eccb
--- /dev/null
+++ b/modules/gui/macosx/VLCHUDToggleButton.h
@@ -0,0 +1,28 @@
+/*****************************************************************************
+ * VLCHUDToggleButton.h
+ *****************************************************************************
+ * Copyright (C) 2017 VLC authors and VideoLAN
+ * $Id$
+ *
+ * Authors: Cameron Mozie <camsw0rld14 at gmail.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 "VLCHUDImageButton.h"
+
+ at interface VLCHUDToggleButton : VLCHUDImageButton
+
+ at end
diff --git a/modules/gui/macosx/VLCHUDToggleButton.m b/modules/gui/macosx/VLCHUDToggleButton.m
new file mode 100644
index 0000000..bc26fa6
--- /dev/null
+++ b/modules/gui/macosx/VLCHUDToggleButton.m
@@ -0,0 +1,38 @@
+/*****************************************************************************
+ * VLCHUDToggleButton.h
+ *****************************************************************************
+ * Copyright (C) 2017 VLC authors and VideoLAN
+ * $Id$
+ *
+ * Authors: Cameron Mozie <camsw0rld14 at gmail.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 "VLCHUDToggleButton.h"
+
+ at implementation VLCHUDToggleButton
+
+- (instancetype)initWithCoder:(NSCoder *)coder
+{
+ self = [super initWithCoder:coder];
+ if (self) {
+ [(NSButtonCell*)[self cell] setHighlightsBy:NSPushInCellMask];
+ [(NSButtonCell*)[self cell] setShowsStateBy:NSContentsCellMask];
+ }
+ return self;
+}
+
+ at end
More information about the vlc-commits
mailing list