[vlc-commits] macosx: Use NSButton subclass for badge drawing

Marvin Scholz git at videolan.org
Sat Aug 18 18:53:03 CEST 2018


vlc | branch: master | Marvin Scholz <epirat07 at gmail.com> | Sat Aug 18 18:49:55 2018 +0200| [9385e8ba801e1a3baee3580f29e011e162b7d993] | committer: Marvin Scholz

macosx: Use NSButton subclass for badge drawing

For badges in source lists a NSInlineBezelStyle button should be used
according to the documentation. This greatly improves the look of the
badge, especially in selected state and Dark Aqua.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=9385e8ba801e1a3baee3580f29e011e162b7d993
---

 .../package/macosx/VLC.xcodeproj/project.pbxproj   | 12 ++++
 modules/gui/macosx/Makefile.am                     |  2 +
 modules/gui/macosx/UI/MainWindow.xib               | 28 ++++++----
 modules/gui/macosx/VLCMainWindow.m                 | 10 ++--
 modules/gui/macosx/VLCSourceListBadgeButton.h      | 34 +++++++++++
 modules/gui/macosx/VLCSourceListBadgeButton.m      | 65 ++++++++++++++++++++++
 modules/gui/macosx/VLCSourceListTableCellView.h    | 35 ++++++++++++
 modules/gui/macosx/VLCSourceListTableCellView.m    | 28 ++++++++++
 8 files changed, 198 insertions(+), 16 deletions(-)

diff --git a/extras/package/macosx/VLC.xcodeproj/project.pbxproj b/extras/package/macosx/VLC.xcodeproj/project.pbxproj
index a2a7c6baa5..59cd9ef2c4 100644
--- a/extras/package/macosx/VLC.xcodeproj/project.pbxproj
+++ b/extras/package/macosx/VLC.xcodeproj/project.pbxproj
@@ -111,6 +111,8 @@
 		6B8A6B0221279D2600DC29F3 /* PXSourceList.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B8A6AF921279D2600DC29F3 /* PXSourceList.m */; };
 		6B8A6B0321279D2600DC29F3 /* PXSourceListBadgeCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B8A6AFC21279D2600DC29F3 /* PXSourceListBadgeCell.m */; };
 		6B8A6B082127A3EA00DC29F3 /* VLCSourceListItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B8A6B072127A3EA00DC29F3 /* VLCSourceListItem.m */; };
+		6B8A6B0B2128697E00DC29F3 /* VLCSourceListTableCellView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B8A6B0A2128697E00DC29F3 /* VLCSourceListTableCellView.m */; };
+		6B8A6B0E21286D3600DC29F3 /* VLCSourceListBadgeButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B8A6B0D21286D3600DC29F3 /* VLCSourceListBadgeButton.m */; };
 		6BBB05DA1EEFEA29003A1019 /* VLCHUDOutlineView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6BBB05D91EEFEA29003A1019 /* VLCHUDOutlineView.m */; };
 		6BBB05E01EEFF165003A1019 /* VLCHUDTableCornerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6BBB05DF1EEFF165003A1019 /* VLCHUDTableCornerView.m */; };
 		6BBBF9851F7B257100B404CD /* VLCLogMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 6BBBF9841F7B257100B404CD /* VLCLogMessage.m */; };
@@ -395,6 +397,10 @@
 		6B8A6AFC21279D2600DC29F3 /* PXSourceListBadgeCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PXSourceListBadgeCell.m; sourceTree = "<group>"; };
 		6B8A6B0421279FA200DC29F3 /* VLCSourceListItem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VLCSourceListItem.h; sourceTree = "<group>"; };
 		6B8A6B072127A3EA00DC29F3 /* VLCSourceListItem.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VLCSourceListItem.m; sourceTree = "<group>"; };
+		6B8A6B092128697E00DC29F3 /* VLCSourceListTableCellView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VLCSourceListTableCellView.h; sourceTree = "<group>"; };
+		6B8A6B0A2128697E00DC29F3 /* VLCSourceListTableCellView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VLCSourceListTableCellView.m; sourceTree = "<group>"; };
+		6B8A6B0C21286D3600DC29F3 /* VLCSourceListBadgeButton.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VLCSourceListBadgeButton.h; sourceTree = "<group>"; };
+		6B8A6B0D21286D3600DC29F3 /* VLCSourceListBadgeButton.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VLCSourceListBadgeButton.m; sourceTree = "<group>"; };
 		6BA1A0632038D93D005EA18A /* ci_filters.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ci_filters.m; path = ../../../modules/video_filter/ci_filters.m; sourceTree = "<group>"; };
 		6BBB05D81EEFEA29003A1019 /* VLCHUDOutlineView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VLCHUDOutlineView.h; sourceTree = "<group>"; };
 		6BBB05D91EEFEA29003A1019 /* VLCHUDOutlineView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCHUDOutlineView.m; sourceTree = "<group>"; };
@@ -1097,8 +1103,12 @@
 				7D5678EF1D5BA397002698F3 /* VLCMainWindowControlsBar.m */,
 				CC448A6213B68A0B009F72E0 /* VLCMainWindow.h */,
 				CC448A6313B68A0B009F72E0 /* VLCMainWindow.m */,
+				6B8A6B0C21286D3600DC29F3 /* VLCSourceListBadgeButton.h */,
+				6B8A6B0D21286D3600DC29F3 /* VLCSourceListBadgeButton.m */,
 				6B8A6B0421279FA200DC29F3 /* VLCSourceListItem.h */,
 				6B8A6B072127A3EA00DC29F3 /* VLCSourceListItem.m */,
+				6B8A6B092128697E00DC29F3 /* VLCSourceListTableCellView.h */,
+				6B8A6B0A2128697E00DC29F3 /* VLCSourceListTableCellView.m */,
 			);
 			name = "Main Window";
 			sourceTree = "<group>";
@@ -1591,6 +1601,7 @@
 				1CFE8D591EA0D42A00E94451 /* VLCErrorWindowController.m in Sources */,
 				6B4D50961E7A7D16004479B5 /* NSSound+VLCAdditions.m in Sources */,
 				6BF093F91EE0182B0049D8B0 /* VLCTimeField.m in Sources */,
+				6B8A6B0E21286D3600DC29F3 /* VLCSourceListBadgeButton.m in Sources */,
 				1C31140D1E508C8800D4DD76 /* SPMediaKeyTap.m in Sources */,
 				1C3113EF1E508C7600D4DD76 /* VLCRendererDiscovery.m in Sources */,
 				1C3113F11E508C7600D4DD76 /* VLCRendererItem.m in Sources */,
@@ -1638,6 +1649,7 @@
 				1C1C62011F8260A90052DD4F /* VLCWrappableTextField.m in Sources */,
 				6BBB05DA1EEFEA29003A1019 /* VLCHUDOutlineView.m in Sources */,
 				1C3113CB1E508C6900D4DD76 /* VLCPLItem.m in Sources */,
+				6B8A6B0B2128697E00DC29F3 /* VLCSourceListTableCellView.m in Sources */,
 				1C3113CD1E508C6900D4DD76 /* VLCPLModel.m in Sources */,
 				1C3113CF1E508C6900D4DD76 /* prefs_widgets.m in Sources */,
 				1C3113D11E508C6900D4DD76 /* prefs.m in Sources */,
diff --git a/modules/gui/macosx/Makefile.am b/modules/gui/macosx/Makefile.am
index 7f9f7024fc..45c2f1682e 100644
--- a/modules/gui/macosx/Makefile.am
+++ b/modules/gui/macosx/Makefile.am
@@ -93,6 +93,8 @@ libmacosx_plugin_la_SOURCES = \
 	gui/macosx/VLCRendererMenuController.h gui/macosx/VLCRendererMenuController.m \
 	gui/macosx/VLCResumeDialogController.h gui/macosx/VLCResumeDialogController.m \
 	gui/macosx/VLCSourceListItem.h gui/macosx/VLCSourceListItem.m \
+	gui/macosx/VLCSourceListTableCellView.h gui/macosx/VLCSourceListTableCellView.m \
+	gui/macosx/VLCSourceListBadgeButton.h gui/macosx/VLCSourceListBadgeButton.m \
 	gui/macosx/VLCTrackSynchronizationWindowController.h gui/macosx/VLCTrackSynchronizationWindowController.m \
 	gui/macosx/VLCVideoEffectsWindowController.h gui/macosx/VLCVideoEffectsWindowController.m \
 	gui/macosx/VLCFSPanelController.h gui/macosx/VLCFSPanelController.m \
diff --git a/modules/gui/macosx/UI/MainWindow.xib b/modules/gui/macosx/UI/MainWindow.xib
index 0275e3a325..27afa84001 100644
--- a/modules/gui/macosx/UI/MainWindow.xib
+++ b/modules/gui/macosx/UI/MainWindow.xib
@@ -81,7 +81,7 @@
                                                                                 <outlet property="textField" destination="WaJ-bS-EIG" id="8lv-jw-399"/>
                                                                             </connections>
                                                                         </tableCellView>
-                                                                        <tableCellView identifier="DataCell" id="xB8-ec-7Yv" customClass="PXSourceListTableCellView">
+                                                                        <tableCellView identifier="DataCell" id="xB8-ec-7Yv" customClass="VLCSourceListTableCellView">
                                                                             <rect key="frame" x="1" y="20" width="233" height="17"/>
                                                                             <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                                                                             <subviews>
@@ -92,32 +92,38 @@
                                                                                     </constraints>
                                                                                     <imageCell key="cell" refusesFirstResponder="YES" imageScaling="proportionallyUpOrDown" image="NSActionTemplate" id="sFV-eO-qxM"/>
                                                                                 </imageView>
-                                                                                <textField horizontalHuggingPriority="1000" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="0ju-Z4-RED">
-                                                                                    <rect key="frame" x="22" y="0.0" width="96" height="17"/>
+                                                                                <textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="0ju-Z4-RED">
+                                                                                    <rect key="frame" x="22" y="0.0" width="190" height="17"/>
                                                                                     <textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="oiO-3f-qfh">
                                                                                         <font key="font" metaFont="system"/>
                                                                                         <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
                                                                                         <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
                                                                                     </textFieldCell>
                                                                                 </textField>
-                                                                                <customView translatesAutoresizingMaskIntoConstraints="NO" id="581-8x-wSd" customClass="PXSourceListBadgeView">
-                                                                                    <rect key="frame" x="117" y="0.0" width="113" height="17"/>
-                                                                                </customView>
+                                                                                <button hidden="YES" horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ZtM-n7-Nyl" customClass="VLCSourceListBadgeButton">
+                                                                                    <rect key="frame" x="212" y="-1" width="20" height="17"/>
+                                                                                    <buttonCell key="cell" type="inline" title="0" bezelStyle="inline" alignment="center" refusesFirstResponder="YES" state="on" borderStyle="border" inset="2" id="ZsW-rM-biz">
+                                                                                        <behavior key="behavior" lightByContents="YES"/>
+                                                                                        <font key="font" metaFont="smallSystemBold"/>
+                                                                                    </buttonCell>
+                                                                                    <userDefinedRuntimeAttributes>
+                                                                                        <userDefinedRuntimeAttribute type="boolean" keyPath="hideWhenZero" value="YES"/>
+                                                                                    </userDefinedRuntimeAttributes>
+                                                                                </button>
                                                                             </subviews>
                                                                             <constraints>
-                                                                                <constraint firstAttribute="bottom" secondItem="581-8x-wSd" secondAttribute="bottom" id="2Q3-wj-d1S"/>
-                                                                                <constraint firstItem="581-8x-wSd" firstAttribute="leading" secondItem="0ju-Z4-RED" secondAttribute="trailing" constant="1" id="6WD-xB-kFQ"/>
                                                                                 <constraint firstItem="xTO-W7-AeC" firstAttribute="centerY" secondItem="xB8-ec-7Yv" secondAttribute="centerY" id="Cby-pa-mb0"/>
                                                                                 <constraint firstItem="xTO-W7-AeC" firstAttribute="top" secondItem="xB8-ec-7Yv" secondAttribute="top" constant="1" id="Mdd-rm-8bF"/>
+                                                                                <constraint firstAttribute="trailing" secondItem="ZtM-n7-Nyl" secondAttribute="trailing" constant="1" id="RBP-b5-dRm"/>
                                                                                 <constraint firstItem="xTO-W7-AeC" firstAttribute="leading" secondItem="xB8-ec-7Yv" secondAttribute="leading" constant="3" id="TLD-5C-SXg"/>
-                                                                                <constraint firstAttribute="trailing" secondItem="581-8x-wSd" secondAttribute="trailing" constant="3" id="YNk-XC-3aD"/>
-                                                                                <constraint firstItem="581-8x-wSd" firstAttribute="top" secondItem="xB8-ec-7Yv" secondAttribute="top" id="hHf-BC-6Cf"/>
+                                                                                <constraint firstItem="ZtM-n7-Nyl" firstAttribute="centerY" secondItem="xB8-ec-7Yv" secondAttribute="centerY" id="dd7-wK-AY9"/>
                                                                                 <constraint firstAttribute="bottom" secondItem="xTO-W7-AeC" secondAttribute="bottom" constant="1" id="hUY-JB-o3u"/>
                                                                                 <constraint firstItem="0ju-Z4-RED" firstAttribute="centerY" secondItem="xTO-W7-AeC" secondAttribute="centerY" id="oDe-uz-van"/>
+                                                                                <constraint firstItem="ZtM-n7-Nyl" firstAttribute="leading" secondItem="0ju-Z4-RED" secondAttribute="trailing" constant="2" id="rGB-F0-G1W"/>
                                                                                 <constraint firstItem="0ju-Z4-RED" firstAttribute="leading" secondItem="xTO-W7-AeC" secondAttribute="trailing" constant="7" id="tNX-nJ-GgZ"/>
                                                                             </constraints>
                                                                             <connections>
-                                                                                <outlet property="badgeView" destination="581-8x-wSd" id="2mh-uw-UwM"/>
+                                                                                <outlet property="badgeView" destination="ZtM-n7-Nyl" id="bsQ-mM-b7K"/>
                                                                                 <outlet property="imageView" destination="xTO-W7-AeC" id="XKu-Yf-XVN"/>
                                                                                 <outlet property="textField" destination="0ju-Z4-RED" id="e8e-hp-hAG"/>
                                                                             </connections>
diff --git a/modules/gui/macosx/VLCMainWindow.m b/modules/gui/macosx/VLCMainWindow.m
index 16fb0f6794..caf130bc2a 100644
--- a/modules/gui/macosx/VLCMainWindow.m
+++ b/modules/gui/macosx/VLCMainWindow.m
@@ -45,6 +45,8 @@
 #import "PXSourceList/PXSourceList.h"
 #import "PXSourceList/PXSourceListDataSource.h"
 
+#import "VLCSourceListTableCellView.h"
+
 #import "VLCMainWindowControlsBar.h"
 #import "VLCVoutView.h"
 #import "VLCVideoOutputProvider.h"
@@ -990,7 +992,7 @@ static const float f_min_window_height = 307.;
 
 - (NSView *)sourceList:(PXSourceList *)aSourceList viewForItem:(id)item
 {
-    PXSourceListTableCellView *cellView = nil;
+    VLCSourceListTableCellView *cellView = nil;
     if ([aSourceList levelForItem:item] == 0)
         cellView = [aSourceList makeViewWithIdentifier:@"HeaderCell" owner:nil];
     else
@@ -1013,13 +1015,11 @@ static const float f_min_window_height = 307.;
         i_playlist_size = p_playlist->p_playing->i_children;
         PL_UNLOCK;
 
-        cellView.badgeView.badgeValue = i_playlist_size;
+        cellView.badgeView.integerValue = i_playlist_size;
     } else {
-        cellView.badgeView.badgeValue = sourceListItem.badgeValue.integerValue;
+        cellView.badgeView.integerValue = sourceListItem.badgeValue.integerValue;
     }
 
-    cellView.badgeView.hidden = cellView.badgeView.badgeValue == 0;
-
     return cellView;
 }
 
diff --git a/modules/gui/macosx/VLCSourceListBadgeButton.h b/modules/gui/macosx/VLCSourceListBadgeButton.h
new file mode 100644
index 0000000000..422c907b1c
--- /dev/null
+++ b/modules/gui/macosx/VLCSourceListBadgeButton.h
@@ -0,0 +1,34 @@
+/*****************************************************************************
+ * VLCSourceListBadgeButton.h: MacOS X interface module
+ *****************************************************************************
+ * Copyright (C) 2018 VLC authors and VideoLAN
+ * $Id$
+ *
+ * Authors: Marvin Scholz <epirat07 at gmail dot com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * 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>
+
+NS_ASSUME_NONNULL_BEGIN
+
+ at interface VLCSourceListBadgeButton : NSButton
+
+ at property IBInspectable BOOL hideWhenZero;
+
+ at end
+
+NS_ASSUME_NONNULL_END
diff --git a/modules/gui/macosx/VLCSourceListBadgeButton.m b/modules/gui/macosx/VLCSourceListBadgeButton.m
new file mode 100644
index 0000000000..ec14deef04
--- /dev/null
+++ b/modules/gui/macosx/VLCSourceListBadgeButton.m
@@ -0,0 +1,65 @@
+/*****************************************************************************
+ * VLCSourceListBadgeButton.m: MacOS X interface module
+ *****************************************************************************
+ * Copyright (C) 2018 VLC authors and VideoLAN
+ * $Id$
+ *
+ * Authors: Marvin Scholz <epirat07 at gmail dot com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * 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 "VLCSourceListBadgeButton.h"
+
+ at implementation VLCSourceListBadgeButton
+
+/* Ignore clicks on this button as we use it as badge so we want clicks to
+ * pass-through us and not handle them.
+ */
+- (NSView *)hitTest:(NSPoint)point
+{
+    return nil;
+}
+
+/* Our badges show integer values so make it easier to set those by setting
+ * the title depending on the integer value.
+ */
+- (void)setIntegerValue:(NSInteger)integerValue
+{
+    [super setIntegerValue:integerValue];
+
+    self.title = [@(integerValue) stringValue];
+
+    if (_hideWhenZero)
+        [self setHidden:(integerValue == 0)];
+}
+
+/* "Alias" for setIntegerValue for normal int vs NSInteger
+ */
+- (void)setIntValue:(int)intValue
+{
+    [self setIntegerValue:intValue];
+}
+
+/* Return zero size when hidden
+ */
+- (NSSize)intrinsicContentSize
+{
+    if (_hideWhenZero && self.hidden)
+        return CGSizeZero;
+    return [super intrinsicContentSize];
+}
+
+ at end
diff --git a/modules/gui/macosx/VLCSourceListTableCellView.h b/modules/gui/macosx/VLCSourceListTableCellView.h
new file mode 100644
index 0000000000..451e4a4793
--- /dev/null
+++ b/modules/gui/macosx/VLCSourceListTableCellView.h
@@ -0,0 +1,35 @@
+/*****************************************************************************
+ * VLCSourceListTableCellView.h: MacOS X interface module
+ *****************************************************************************
+ * Copyright (C) 2018 VLC authors and VideoLAN
+ * $Id$
+ *
+ * Authors: Marvin Scholz <epirat07 at gmail dot com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * 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>
+#import "VLCSourceListBadgeButton.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+ at interface VLCSourceListTableCellView : NSTableCellView
+
+ at property (weak, nonatomic) IBOutlet VLCSourceListBadgeButton *badgeView;
+
+ at end
+
+NS_ASSUME_NONNULL_END
diff --git a/modules/gui/macosx/VLCSourceListTableCellView.m b/modules/gui/macosx/VLCSourceListTableCellView.m
new file mode 100644
index 0000000000..b567f0d28c
--- /dev/null
+++ b/modules/gui/macosx/VLCSourceListTableCellView.m
@@ -0,0 +1,28 @@
+/*****************************************************************************
+ * VLCSourceListTableCellView.m: MacOS X interface module
+ *****************************************************************************
+ * Copyright (C) 2018 VLC authors and VideoLAN
+ * $Id$
+ *
+ * Authors: Marvin Scholz <epirat07 at gmail dot com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * 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 "VLCSourceListTableCellView.h"
+
+ at implementation VLCSourceListTableCellView
+
+ at end



More information about the vlc-commits mailing list