Jean-Baptiste Kempf pushed to branch master at VideoLAN / VLC
Commits:
bb6da418 by Claudio Cambra at 2022-12-31T11:51:42+00:00
macosx: Define default VLCLibraryCollectionViewItem size centrally, stop using
magic numbers
Signed-off-by: Claudio Cambra <[email protected]>
- - - - -
003245da by Claudio Cambra at 2022-12-31T11:51:42+00:00
macosx: Stop using magic number for correct content view inset compensation for
audio library options bar
Signed-off-by: Claudio Cambra <[email protected]>
- - - - -
29c81f73 by Claudio Cambra at 2022-12-31T11:51:42+00:00
macosx: Add new VLCLibraryUIUnits class to keep reused units centrally
Signed-off-by: Claudio Cambra <[email protected]>
- - - - -
87ec5947 by Claudio Cambra at 2022-12-31T11:51:42+00:00
macosx: Add spacing definitions to VLCLibraryUIUnits
Signed-off-by: Claudio Cambra <[email protected]>
- - - - -
32db7319 by Claudio Cambra at 2022-12-31T11:51:42+00:00
macosx: Declare standard size of small side of scrollbar in VLCLibraryUIUnits
Signed-off-by: Claudio Cambra <[email protected]>
- - - - -
accd9c31 by Claudio Cambra at 2022-12-31T11:51:42+00:00
macosx: Move pricate row height declarations in VLCLibraryWindow to
VLCLibraryUIUnits
Signed-off-by: Claudio Cambra <[email protected]>
- - - - -
951e4a80 by Claudio Cambra at 2022-12-31T11:51:42+00:00
macosx: Use VLCLibraryUIUnits in VLCLibraryAlbumTableCellView
Signed-off-by: Claudio Cambra <[email protected]>
- - - - -
fa3dacfc by Claudio Cambra at 2022-12-31T11:51:42+00:00
macosx: Use VLCLibraryUIUnits scrollBarSmallSideSize in
VLCLibraryVideoCollectionViewContainerView
Signed-off-by: Claudio Cambra <[email protected]>
- - - - -
cbca6369 by Claudio Cambra at 2022-12-31T11:51:42+00:00
macosx: Use VLCLibraryUIUnits largeSpacing in
VLCLibraryVideCollectionViewsStackViewController
Signed-off-by: Claudio Cambra <[email protected]>
- - - - -
4058e407 by Claudio Cambra at 2022-12-31T11:51:42+00:00
macosx: Use VLCLibraryUIUtils in VLCLibraryCollectionViewFlowLayout
Signed-off-by: Claudio Cambra <[email protected]>
- - - - -
99d73e29 by Claudio Cambra at 2022-12-31T11:51:42+00:00
macosx: Fix VLCLibraryCollectionViewFlowLayout detail supplementary view
alignment
Signed-off-by: Claudio Cambra <[email protected]>
- - - - -
7f33985b by Claudio Cambra at 2022-12-31T11:51:42+00:00
macosx: Use unified units in VLCLibraryCollectionViewDelegate
Signed-off-by: Claudio Cambra <[email protected]>
- - - - -
3c802935 by Claudio Cambra at 2022-12-31T11:51:42+00:00
macosx: Constify values returned in VLCLibraryUIUnits
Signed-off-by: Claudio Cambra <[email protected]>
- - - - -
12 changed files:
- extras/package/macosx/VLC.xcodeproj/project.pbxproj
- modules/gui/macosx/Makefile.am
- modules/gui/macosx/library/VLCLibraryCollectionViewDelegate.m
- modules/gui/macosx/library/VLCLibraryCollectionViewFlowLayout.m
- modules/gui/macosx/library/VLCLibraryCollectionViewItem.h
- modules/gui/macosx/library/VLCLibraryCollectionViewItem.m
- + modules/gui/macosx/library/VLCLibraryUIUnits.h
- + modules/gui/macosx/library/VLCLibraryUIUnits.m
- modules/gui/macosx/library/VLCLibraryWindow.m
- modules/gui/macosx/library/audio-library/VLCLibraryAlbumTableCellView.m
-
modules/gui/macosx/library/video-library/VLCLibraryVideoCollectionViewContainerView.m
-
modules/gui/macosx/library/video-library/VLCLibraryVideoCollectionViewsStackViewController.m
Changes:
=====================================
extras/package/macosx/VLC.xcodeproj/project.pbxproj
=====================================
@@ -92,6 +92,7 @@
536283F9291146BC00640C15 /*
VLCLibraryCollectionViewFlowLayout.m in Sources */ = {isa = PBXBuildFile;
fileRef = 536283EE291146BC00640C15 /* VLCLibraryCollectionViewFlowLayout.m */;
};
53628402291147C500640C15 /* VLCBasicView.m in Sources */ = {isa
= PBXBuildFile; fileRef = 536283FF291147C500640C15 /* VLCBasicView.m */; };
53628403291147C500640C15 /* VLCSubScrollView.m in Sources */ =
{isa = PBXBuildFile; fileRef = 53628400291147C500640C15 /* VLCSubScrollView.m
*/; };
+ 536EFBF5295BCB8300F4CB13 /* VLCLibraryUIUnits.m in Sources */ =
{isa = PBXBuildFile; fileRef = 536EFBF4295BCB8300F4CB13 /* VLCLibraryUIUnits.m
*/; };
53B447CA2939823E00857588 /*
VLCLibrarySongsTableViewSongPlayingTableCellView.m in Sources */ = {isa =
PBXBuildFile; fileRef = 53B447C92939823E00857588 /*
VLCLibrarySongsTableViewSongPlayingTableCellView.m */; };
53B447F6293BB47B00857588 /*
VLCLibraryVideoCollectionViewContainerView.m in Sources */ = {isa =
PBXBuildFile; fileRef = 53B447EC293BB47A00857588 /*
VLCLibraryVideoCollectionViewContainerView.m */; };
53B447F7293BB47B00857588 /*
VLCLibraryVideoCollectionViewContainerViewDataSource.m in Sources */ = {isa =
PBXBuildFile; fileRef = 53B447ED293BB47A00857588 /*
VLCLibraryVideoCollectionViewContainerViewDataSource.m */; };
@@ -271,6 +272,8 @@
536283FF291147C500640C15 /* VLCBasicView.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path
= VLCBasicView.m; sourceTree = "<group>"; };
53628400291147C500640C15 /* VLCSubScrollView.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path
= VLCSubScrollView.m; sourceTree = "<group>"; };
53628401291147C500640C15 /* VLCSubScrollView.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path =
VLCSubScrollView.h; sourceTree = "<group>"; };
+ 536EFBF3295BCB8300F4CB13 /* VLCLibraryUIUnits.h */ = {isa =
PBXFileReference; lastKnownFileType = sourcecode.c.h; path =
VLCLibraryUIUnits.h; sourceTree = "<group>"; };
+ 536EFBF4295BCB8300F4CB13 /* VLCLibraryUIUnits.m */ = {isa =
PBXFileReference; lastKnownFileType = sourcecode.c.objc; path =
VLCLibraryUIUnits.m; sourceTree = "<group>"; };
53B447C82939823E00857588 /*
VLCLibrarySongsTableViewSongPlayingTableCellView.h */ = {isa =
PBXFileReference; lastKnownFileType = sourcecode.c.h; path =
VLCLibrarySongsTableViewSongPlayingTableCellView.h; sourceTree = "<group>"; };
53B447C92939823E00857588 /*
VLCLibrarySongsTableViewSongPlayingTableCellView.m */ = {isa =
PBXFileReference; lastKnownFileType = sourcecode.c.objc; path =
VLCLibrarySongsTableViewSongPlayingTableCellView.m; sourceTree = "<group>"; };
53B447EC293BB47A00857588 /*
VLCLibraryVideoCollectionViewContainerView.m */ = {isa = PBXFileReference;
fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path =
VLCLibraryVideoCollectionViewContainerView.m; sourceTree = "<group>"; };
@@ -1153,6 +1156,8 @@
5317FE02294E3DD3001702F0 /*
VLCLibraryCollectionViewDelegate.h */,
5317FE03294E3DD3001702F0 /*
VLCLibraryCollectionViewDelegate.m */,
5317FE05294E8D1A001702F0 /*
VLCLibraryCollectionViewDataSource.h */,
+ 536EFBF3295BCB8300F4CB13 /* VLCLibraryUIUnits.h
*/,
+ 536EFBF4295BCB8300F4CB13 /* VLCLibraryUIUnits.m
*/,
);
path = library;
sourceTree = "<group>";
@@ -1848,6 +1853,7 @@
536283F6291146BC00640C15 /*
VLCLibraryCollectionViewAudioGroupSupplementaryDetailView.m in Sources */,
1CCC89022078A3D500E5626F /* ResumeDialog.xib in
Sources */,
7DE7232E22A51F8D00D72616 /*
VLCPositionFormatter.m in Sources */,
+ 536EFBF5295BCB8300F4CB13 /* VLCLibraryUIUnits.m
in Sources */,
1CCC89032078A3D500E5626F /*
SimplePreferences.xib in Sources */,
7DE82E7922843781002D341A /*
VLCLibraryAlbumTableCellView.m in Sources */,
7D67318622C8F4060000AD40 /*
VLCMediaSourceCollectionViewItem.m in Sources */,
=====================================
modules/gui/macosx/Makefile.am
=====================================
@@ -93,6 +93,8 @@ libmacosx_plugin_la_SOURCES = \
gui/macosx/library/VLCLibraryTableView.m \
gui/macosx/library/VLCLibraryTableCellView.h \
gui/macosx/library/VLCLibraryTableCellView.m \
+ gui/macosx/library/VLCLibraryUIUnits.h \
+ gui/macosx/library/VLCLibraryUIUnits.m \
gui/macosx/library/VLCLibraryWindow.h \
gui/macosx/library/VLCLibraryWindow.m \
gui/macosx/library/VLCLibraryWindowController.h \
=====================================
modules/gui/macosx/library/VLCLibraryCollectionViewDelegate.m
=====================================
@@ -24,7 +24,9 @@
#import "VLCLibraryCollectionViewDataSource.h"
#import "VLCLibraryCollectionViewFlowLayout.h"
+#import "VLCLibraryCollectionViewItem.h"
#import "VLCLibraryDataTypes.h"
+#import "VLCLibraryUIUnits.h"
@implementation VLCLibraryCollectionViewDelegate
@@ -33,7 +35,7 @@
self = [super init];
if (self) {
_dynamicItemSizing = YES;
- _staticItemSize = NSMakeSize(214, 260);
+ _staticItemSize = [VLCLibraryCollectionViewItem defaultSize];
}
return self;
}
@@ -85,22 +87,19 @@
- (NSSize)adjustedItemSizeForCollectionView:(NSCollectionView *)collectionView
withLayout:(VLCLibraryCollectionViewFlowLayout *)collectionViewLayout
{
- static const CGFloat maxItemWidth = 280;
- static const CGFloat minItemWidth = 180;
-
static uint numItemsInRow = 5;
NSSize itemSize = [self itemSizeForCollectionView:collectionView
withLayout:collectionViewLayout
withNumberOfItemsInRow:numItemsInRow];
- while (itemSize.width > maxItemWidth) {
+ while (itemSize.width > [VLCLibraryUIUnits
dynamicCollectionViewItemMaximumSize]) {
++numItemsInRow;
itemSize = [self itemSizeForCollectionView:collectionView
withLayout:collectionViewLayout
withNumberOfItemsInRow:numItemsInRow];
}
- while (itemSize.width < minItemWidth) {
+ while (itemSize.width < [VLCLibraryUIUnits
dynamicCollectionViewItemMinimumSize]) {
--numItemsInRow;
itemSize = [self itemSizeForCollectionView:collectionView
withLayout:collectionViewLayout
@@ -128,7 +127,7 @@
1);
const CGFloat itemWidth = rowOfItemsWidth / numItemsInRow;
- return NSMakeSize(itemWidth, itemWidth + 46); // Text fields height needed
+ return NSMakeSize(itemWidth, itemWidth + [VLCLibraryCollectionViewItem
bottomTextViewsHeight]);
}
- (BOOL)collectionView:(NSCollectionView *)collectionView
=====================================
modules/gui/macosx/library/VLCLibraryCollectionViewFlowLayout.m
=====================================
@@ -23,6 +23,7 @@
#import "VLCLibraryCollectionViewFlowLayout.h"
#import "library/VLCLibraryCollectionViewMediaItemSupplementaryDetailView.h"
+#import "library/VLCLibraryUIUnits.h"
#import "library/audio-library/VLCLibraryAudioDataSource.h"
#import
"library/audio-library/VLCLibraryCollectionViewAlbumSupplementaryDetailView.h"
@@ -34,10 +35,7 @@
static const NSUInteger kAnimationSteps = 32;
static const NSUInteger kWrapAroundValue = (NSUInteger)-1;
-static const CGFloat kDetailViewMargin = 8.;
static const CGFloat kDetailViewCollapsedHeight = 0.;
-static const CGFloat kDetailViewDefaultExpandedHeight = 300.;
-static const CGFloat kDetailViewLargeExpandedHeight = 500.;
typedef NS_ENUM(NSUInteger, VLCDetailViewAnimationType)
{
@@ -85,8 +83,8 @@ static CVReturn detailViewAnimationCallback(CVDisplayLinkRef
displayLink,
{
self = [super init];
if (self) {
- _defaultHeightAnimationSteps = [NSArray arrayWithArray:[self
generateAnimationStepsForExpandedViewHeight:kDetailViewDefaultExpandedHeight]];
- _largeHeightAnimationSteps = [NSArray arrayWithArray:[self
generateAnimationStepsForExpandedViewHeight:kDetailViewLargeExpandedHeight]];
+ _defaultHeightAnimationSteps = [NSArray arrayWithArray:[self
generateAnimationStepsForExpandedViewHeight:[VLCLibraryUIUnits
mediumDetailSupplementaryViewCollectionViewHeight]]];
+ _largeHeightAnimationSteps = [NSArray arrayWithArray:[self
generateAnimationStepsForExpandedViewHeight:[VLCLibraryUIUnits
largeDetailSupplementaryViewCollectionViewHeight]]];
_animationType = VLCExpandAnimationTypeDefault;
_prevProvidedAnimationStep = 0;
@@ -274,9 +272,9 @@ static CVReturn
detailViewAnimationCallback(CVDisplayLinkRef displayLink,
elementKind);
float selectedItemFrameMaxY = _selectedIndexPath == nil ? 0 :
NSMaxY([[self layoutAttributesForItemAtIndexPath:_selectedIndexPath] frame]);
- detailViewAttributes.frame =
NSMakeRect(NSMinX(self.collectionView.frame),
- selectedItemFrameMaxY +
kDetailViewMargin,
-
self.collectionViewContentSize.width - 20.0,
+ detailViewAttributes.frame =
NSMakeRect(NSMinX(self.collectionView.frame) + self.minimumInteritemSpacing,
+ selectedItemFrameMaxY +
[VLCLibraryUIUnits mediumSpacing],
+
self.collectionViewContentSize.width - (self.minimumInteritemSpacing * 2),
[self currentAnimationStep]);
return detailViewAttributes;
@@ -319,7 +317,7 @@ static CVReturn
detailViewAnimationCallback(CVDisplayLinkRef displayLink,
NSRect selectedItemFrame = selectedItemLayoutAttributes.frame;
if (NSMinY(attributesFrame) > (NSMaxY(selectedItemFrame))) {
- attributesFrame.origin.y += [self currentAnimationStep] +
kDetailViewMargin;
+ attributesFrame.origin.y += [self currentAnimationStep] +
[VLCLibraryUIUnits mediumSpacing];
}
}
=====================================
modules/gui/macosx/library/VLCLibraryCollectionViewItem.h
=====================================
@@ -32,6 +32,10 @@ extern NSString *VLCLibraryCellIdentifier;
@interface VLCLibraryCollectionViewItem : NSCollectionViewItem
+// NOTE: These will need to be changed after changed to XIB
++ (NSSize)defaultSize;
++ (CGFloat)bottomTextViewsHeight;
+
@property (readwrite, assign) IBOutlet NSTextField *mediaTitleTextField;
@property (readwrite, assign) IBOutlet NSTextField *annotationTextField;
@property (readwrite, assign) IBOutlet NSTextField *unplayedIndicatorTextField;
=====================================
modules/gui/macosx/library/VLCLibraryCollectionViewItem.m
=====================================
@@ -23,13 +23,17 @@
#import "VLCLibraryCollectionViewItem.h"
#import "main/VLCMain.h"
+
#import "library/VLCLibraryController.h"
#import "library/VLCLibraryDataTypes.h"
#import "library/VLCLibraryModel.h"
#import "library/VLCLibraryMenuController.h"
+#import "library/VLCLibraryUIUnits.h"
+
#import "views/VLCImageView.h"
#import "views/VLCLinearProgressIndicator.h"
#import "views/VLCTrackingView.h"
+
#import "extensions/NSString+Helpers.h"
#import "extensions/NSFont+VLCAdditions.h"
#import "extensions/NSColor+VLCAdditions.h"
@@ -48,6 +52,21 @@ const CGFloat
VLCLibraryCollectionViewItemMaximumDisplayedProgress = 0.95;
@implementation VLCLibraryCollectionViewItem
++ (NSSize)defaultSize
+{
+ CGFloat width = 214;
+ return CGSizeMake(width, width + [self bottomTextViewsHeight]);
+}
+
++ (CGFloat)bottomTextViewsHeight
+{
+ return [VLCLibraryUIUnits smallSpacing] +
+ 16 +
+ [VLCLibraryUIUnits smallSpacing] +
+ 16 +
+ [VLCLibraryUIUnits smallSpacing];
+}
+
- (instancetype)initWithNibName:(NSNibName)nibNameOrNil bundle:(NSBundle
*)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
=====================================
modules/gui/macosx/library/VLCLibraryUIUnits.h
=====================================
@@ -0,0 +1,49 @@
+/*****************************************************************************
+ * VLCLibraryAudioViewController.h: MacOS X interface module
+ *****************************************************************************
+ * Copyright (C) 2022 VLC authors and VideoLAN
+ *
+ * Authors: Claudio Cambra <[email protected]>
+ *
+ * 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
+
+@interface VLCLibraryUIUnits : NSObject
+
+// Note that these values are not necessarily linked to the layout defined in
the .xib files.
+// If the spacing in the layout is changed you will want to change these
values too.
++ (const CGFloat)largeSpacing;
++ (const CGFloat)mediumSpacing;
++ (const CGFloat)smallSpacing;
+
++ (const CGFloat)scrollBarSmallSideSize;
+
++ (const CGFloat)largeTableViewRowHeight;
++ (const CGFloat)mediumTableViewRowHeight;
++ (const CGFloat)smallTableViewRowHeight;
+
++ (const CGFloat)mediumDetailSupplementaryViewCollectionViewHeight;
++ (const CGFloat)largeDetailSupplementaryViewCollectionViewHeight;
+
++ (const CGFloat)dynamicCollectionViewItemMinimumSize;
++ (const CGFloat)dynamicCollectionViewItemMaximumSize;
+
+@end
+
+NS_ASSUME_NONNULL_END
=====================================
modules/gui/macosx/library/VLCLibraryUIUnits.m
=====================================
@@ -0,0 +1,82 @@
+/*****************************************************************************
+ * VLCLibraryAudioViewController.m: MacOS X interface module
+ *****************************************************************************
+ * Copyright (C) 2022 VLC authors and VideoLAN
+ *
+ * Authors: Claudio Cambra <[email protected]>
+ *
+ * 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 "VLCLibraryUIUnits.h"
+
+@implementation VLCLibraryUIUnits
+
++ (const CGFloat)largeSpacing
+{
+ return 20;
+}
+
++ (const CGFloat)mediumSpacing
+{
+ return 10;
+}
+
++ (const CGFloat)smallSpacing
+{
+ return 5;
+}
+
++ (const CGFloat)scrollBarSmallSideSize
+{
+ return 16;
+}
+
++ (const CGFloat)largeTableViewRowHeight
+{
+ return 100;
+}
+
++ (const CGFloat)mediumTableViewRowHeight
+{
+ return 50;
+}
+
++ (const CGFloat)smallTableViewRowHeight
+{
+ return 25;
+}
+
++ (const CGFloat)mediumDetailSupplementaryViewCollectionViewHeight
+{
+ return 300;
+}
+
++ (const CGFloat)largeDetailSupplementaryViewCollectionViewHeight
+{
+ return 500;
+}
+
++ (const CGFloat)dynamicCollectionViewItemMinimumSize
+{
+ return 180;
+}
+
++ (const CGFloat)dynamicCollectionViewItemMaximumSize
+{
+ return 280;
+}
+
+@end
=====================================
modules/gui/macosx/library/VLCLibraryWindow.m
=====================================
@@ -39,6 +39,7 @@
#import "library/VLCLibraryCollectionViewSupplementaryElementView.h"
#import "library/VLCLibrarySortingMenuController.h"
#import "library/VLCLibraryNavigationStack.h"
+#import "library/VLCLibraryUIUnits.h"
#import
"library/video-library/VLCLibraryVideoCollectionViewsStackViewController.h"
#import "library/video-library/VLCLibraryVideoTableViewDataSource.h"
@@ -64,10 +65,6 @@
const CGFloat VLCLibraryWindowMinimalWidth = 604.;
const CGFloat VLCLibraryWindowMinimalHeight = 307.;
-const CGFloat VLCLibraryWindowLargePlaylistRowHeight = 60.;
-const CGFloat VLCLibraryWindowSmallPlaylistRowHeight = 45.;
-const CGFloat VLCLibraryWindowSmallRowHeight = 24.;
-const CGFloat VLCLibraryWindowLargeRowHeight = 50.;
const CGFloat VLCLibraryWindowDefaultPlaylistWidth = 340.;
const CGFloat VLCLibraryWindowMinimalPlaylistWidth = 170.;
const NSUserInterfaceItemIdentifier VLCLibraryWindowIdentifier =
@"VLCLibraryWindow";
@@ -250,8 +247,8 @@ static void addShadow(NSImageView *__unsafe_unretained
imageView)
_libraryVideoTableViewDataSource.libraryModel =
mainInstance.libraryController.libraryModel;
_libraryVideoTableViewDataSource.groupsTableView =
_videoLibraryGroupsTableView;
_libraryVideoTableViewDataSource.groupSelectionTableView =
_videoLibraryGroupSelectionTableView;
- _videoLibraryGroupsTableView.rowHeight = VLCLibraryWindowLargeRowHeight;
- _videoLibraryGroupSelectionTableView.rowHeight =
VLCLibraryWindowLargeRowHeight;
+ _videoLibraryGroupsTableView.rowHeight = [VLCLibraryUIUnits
mediumTableViewRowHeight];
+ _videoLibraryGroupSelectionTableView.rowHeight = [VLCLibraryUIUnits
mediumTableViewRowHeight];
[_libraryVideoTableViewDataSource setup];
_libraryVideoCollectionViewsStackViewController =
[[VLCLibraryVideoCollectionViewsStackViewController alloc] init];
@@ -259,7 +256,7 @@ static void addShadow(NSImageView *__unsafe_unretained
imageView)
_libraryVideoCollectionViewsStackViewController.collectionsStackView =
_videoLibraryCollectionViewsStackView;
_libraryAudioViewController = [[VLCLibraryAudioViewController alloc]
initWithLibraryWindow:self];
- _audioCollectionSelectionTableView.rowHeight =
VLCLibraryWindowLargeRowHeight;
+ _audioCollectionSelectionTableView.rowHeight = [VLCLibraryUIUnits
mediumTableViewRowHeight];
_audioGroupSelectionTableView.rowHeight = [VLCLibraryAlbumTableCellView
defaultHeight];
_mediaSourceDataSource = [[VLCMediaSourceBaseDataSource alloc] init];
@@ -268,7 +265,7 @@ static void addShadow(NSImageView *__unsafe_unretained
imageView)
_mediaSourceDataSource.homeButton = _mediaSourceHomeButton;
_mediaSourceDataSource.pathControl = _mediaSourcePathControl;
_mediaSourceDataSource.gridVsListSegmentedControl =
_gridVsListSegmentedControl;
- _mediaSourceTableView.rowHeight = VLCLibraryWindowLargeRowHeight;
+ _mediaSourceTableView.rowHeight = [VLCLibraryUIUnits
mediumTableViewRowHeight];
_mediaSourceDataSource.tableView = _mediaSourceTableView;
[_mediaSourceDataSource setupViews];
@@ -284,14 +281,17 @@ static void addShadow(NSImageView *__unsafe_unretained
imageView)
[self setViewForSelectedSegment];
[self repeatStateUpdated:nil];
[self shuffleStateUpdated:nil];
-
- const CGFloat scrollViewTopInset = 16.;
+
+ // We want all the insets to look even, and since the scrollbar is
transparent,
+ // we have to compensate for this on the sides where there isn't a
scrollbar to
+ // match up the perceived whitespace on all sides
+ const CGFloat scrollViewTopInset = [VLCLibraryUIUnits
scrollBarSmallSideSize];
const CGFloat scrollViewRightInset = 0.;
- const CGFloat scrollViewBottomInset = 16.;
- const CGFloat scrollViewLeftInset = 16.;
+ const CGFloat scrollViewBottomInset = [VLCLibraryUIUnits
scrollBarSmallSideSize];
+ const CGFloat scrollViewLeftInset = [VLCLibraryUIUnits
scrollBarSmallSideSize];
// Need to account for the audio collection switcher at the top
- const CGFloat audioScrollViewTopInset = scrollViewTopInset + 32.;
+ const CGFloat audioScrollViewTopInset = scrollViewTopInset +
_optionBarView.frame.size.height;
const NSEdgeInsets defaultInsets = NSEdgeInsetsMake(scrollViewTopInset,
scrollViewLeftInset,
@@ -338,21 +338,24 @@ static void addShadow(NSImageView *__unsafe_unretained
imageView)
_mediaSourceTableViewScrollView.contentInsets = defaultInsets;
_mediaSourceTableViewScrollView.scrollerInsets = scrollerInsets;
- const CGFloat collectionItemSpacing = 20.;
- const NSEdgeInsets collectionViewSectionInset = NSEdgeInsetsMake(20., 20.,
20., 20.);
+ const CGFloat collectionItemSpacing = [VLCLibraryUIUnits largeSpacing];
+ const NSEdgeInsets collectionViewSectionInset =
NSEdgeInsetsMake(collectionItemSpacing,
+
collectionItemSpacing,
+
collectionItemSpacing,
+
collectionItemSpacing);
NSCollectionViewFlowLayout *audioLibraryCollectionViewLayout =
_audioLibraryCollectionView.collectionViewLayout;
audioLibraryCollectionViewLayout.minimumLineSpacing =
collectionItemSpacing;
audioLibraryCollectionViewLayout.minimumInteritemSpacing =
collectionItemSpacing;
audioLibraryCollectionViewLayout.sectionInset = collectionViewSectionInset;
- _libraryVideoCollectionViewsStackViewController.collectionViewItemSize =
CGSizeMake(214., 260.);
+ _libraryVideoCollectionViewsStackViewController.collectionViewItemSize =
[VLCLibraryCollectionViewItem defaultSize];
_libraryVideoCollectionViewsStackViewController.collectionViewMinimumLineSpacing
= collectionItemSpacing;
_libraryVideoCollectionViewsStackViewController.collectionViewMinimumInteritemSpacing
= collectionItemSpacing;
_libraryVideoCollectionViewsStackViewController.collectionViewSectionInset
= collectionViewSectionInset;
NSCollectionViewFlowLayout *mediaSourceCollectionViewLayout =
_mediaSourceCollectionView.collectionViewLayout;
- mediaSourceCollectionViewLayout.itemSize = CGSizeMake(214., 246.);
+ mediaSourceCollectionViewLayout.itemSize = [VLCLibraryCollectionViewItem
defaultSize];
mediaSourceCollectionViewLayout.minimumLineSpacing = collectionItemSpacing;
mediaSourceCollectionViewLayout.minimumInteritemSpacing =
collectionItemSpacing;
mediaSourceCollectionViewLayout.sectionInset = collectionViewSectionInset;
@@ -421,7 +424,9 @@ static void addShadow(NSImageView *__unsafe_unretained
imageView)
- (void)updateViewCellDimensionsBasedOnSetting:(NSNotification *)aNotification
{
- _playlistTableView.rowHeight = config_GetInt("macosx-large-text") ?
VLCLibraryWindowLargePlaylistRowHeight : VLCLibraryWindowSmallPlaylistRowHeight;
+ _playlistTableView.rowHeight = config_GetInt("macosx-large-text") ?
+ [VLCLibraryUIUnits largeTableViewRowHeight] :
+ [VLCLibraryUIUnits mediumTableViewRowHeight];
}
#pragma mark - playmode state display and interaction
=====================================
modules/gui/macosx/library/audio-library/VLCLibraryAlbumTableCellView.m
=====================================
@@ -26,25 +26,24 @@
#import "extensions/NSFont+VLCAdditions.h"
#import "extensions/NSString+Helpers.h"
#import "extensions/NSView+VLCAdditions.h"
+
#import "views/VLCImageView.h"
#import "views/VLCTrackingView.h"
+
#import "main/VLCMain.h"
+
#import "library/VLCLibraryController.h"
#import "library/VLCLibraryDataTypes.h"
#import "library/VLCLibraryTableCellView.h"
#import "library/VLCLibraryTableView.h"
+#import "library/VLCLibraryUIUnits.h"
+
#import "library/audio-library/VLCLibraryAlbumTracksDataSource.h"
NSString *VLCAudioLibraryCellIdentifier = @"VLCAudioLibraryCellIdentifier";
NSString *VLCLibraryAlbumTableCellTableViewColumnIdentifier =
@"VLCLibraryAlbumTableCellTableViewColumnIdentifier";
const CGFloat VLCLibraryAlbumTableCellViewDefaultHeight = 168.;
-// Note that these values are not necessarily linked to the layout defined in
the .xib files.
-// If the spacing in the layout is changed you will want to change these
values too.
-const CGFloat VLCLibraryAlbumTableCellViewLargeSpacing = 20;
-const CGFloat VLCLibraryAlbumTableCellViewMediumSpacing = 10;
-const CGFloat VLCLibraryAlbumTableCellViewSmallSpacing = 5;
-
@interface VLCLibraryAlbumTableCellView ()
{
VLCLibraryController *_libraryController;
@@ -74,25 +73,25 @@ const CGFloat VLCLibraryAlbumTableCellViewSmallSpacing = 5;
return -1;
}
- const CGFloat artworkAndSecondaryLabelsHeight =
VLCLibraryAlbumTableCellViewLargeSpacing +
+ const CGFloat artworkAndSecondaryLabelsHeight = [VLCLibraryUIUnits
largeSpacing] +
_representedImageView.frame.size.height +
-
VLCLibraryAlbumTableCellViewMediumSpacing +
+ [VLCLibraryUIUnits
mediumSpacing] +
_summaryTextField.frame.size.height +
-
VLCLibraryAlbumTableCellViewSmallSpacing +
+ [VLCLibraryUIUnits
smallSpacing] +
_yearTextField.frame.size.height +
-
VLCLibraryAlbumTableCellViewLargeSpacing;
+ [VLCLibraryUIUnits
largeSpacing];
if(_tracksTableView == nil) {
return artworkAndSecondaryLabelsHeight;
}
- const CGFloat titleAndTableViewHeight =
VLCLibraryAlbumTableCellViewLargeSpacing +
+ const CGFloat titleAndTableViewHeight = [VLCLibraryUIUnits largeSpacing] +
_albumNameTextField.frame.size.height +
-
VLCLibraryAlbumTableCellViewSmallSpacing +
+ [VLCLibraryUIUnits smallSpacing] +
_artistNameTextField.frame.size.height +
-
VLCLibraryAlbumTableCellViewSmallSpacing +
+ [VLCLibraryUIUnits smallSpacing] +
[self expectedTableViewHeight] +
-
VLCLibraryAlbumTableCellViewLargeSpacing;
+ [VLCLibraryUIUnits largeSpacing];
return titleAndTableViewHeight > artworkAndSecondaryLabelsHeight ?
titleAndTableViewHeight : artworkAndSecondaryLabelsHeight;
}
@@ -103,14 +102,14 @@ const CGFloat VLCLibraryAlbumTableCellViewSmallSpacing =
5;
// to take into account the album's left spacing, right spacing, and the
table view's
// right spacing. In this case we are using large spacing for all of
these. We also
// throw in a little bit extra spacing to compensate for some mysterious
internal spacing.
- return self.frame.size.width - _representedImageView.frame.size.width -
VLCLibraryAlbumTableCellViewLargeSpacing * 3.75;
+ return self.frame.size.width - _representedImageView.frame.size.width -
[VLCLibraryUIUnits largeSpacing] * 3.75;
}
- (CGFloat)expectedTableViewHeight
{
const NSUInteger numberOfTracks = _representedAlbum.numberOfTracks;
const CGFloat intercellSpacing = numberOfTracks > 1 ? (numberOfTracks - 1)
* _tracksTableView.intercellSpacing.height : 0;
- return numberOfTracks * VLCLibraryTracksRowHeight + intercellSpacing +
VLCLibraryAlbumTableCellViewMediumSpacing;
+ return numberOfTracks * VLCLibraryTracksRowHeight + intercellSpacing +
[VLCLibraryUIUnits mediumSpacing];
}
- (void)awakeFromNib
@@ -150,14 +149,14 @@ const CGFloat VLCLibraryAlbumTableCellViewSmallSpacing =
5;
_tracksTableView.translatesAutoresizingMaskIntoConstraints = NO;
[self addSubview:_tracksTableView];
NSString *horizontalVisualConstraints = [NSString
stringWithFormat:@"H:|-%f-[_representedImageView]-%f-[_tracksTableView]-%f-|",
- VLCLibraryAlbumTableCellViewLargeSpacing,
- VLCLibraryAlbumTableCellViewLargeSpacing,
- VLCLibraryAlbumTableCellViewLargeSpacing];
+ [VLCLibraryUIUnits largeSpacing],
+ [VLCLibraryUIUnits largeSpacing],
+ [VLCLibraryUIUnits largeSpacing]];
NSString *verticalVisualContraints = [NSString
stringWithFormat:@"V:|-%f-[_albumNameTextField]-%f-[_artistNameTextField]-%f-[_tracksTableView]->=%f-|",
- VLCLibraryAlbumTableCellViewLargeSpacing,
- VLCLibraryAlbumTableCellViewSmallSpacing,
- VLCLibraryAlbumTableCellViewMediumSpacing,
- VLCLibraryAlbumTableCellViewLargeSpacing];
+ [VLCLibraryUIUnits largeSpacing],
+ [VLCLibraryUIUnits smallSpacing],
+ [VLCLibraryUIUnits mediumSpacing],
+ [VLCLibraryUIUnits largeSpacing]];
NSDictionary *dict = NSDictionaryOfVariableBindings(_tracksTableView,
_representedImageView, _albumNameTextField, _artistNameTextField);
[self addConstraints:[NSLayoutConstraint
constraintsWithVisualFormat:horizontalVisualConstraints options:0 metrics:0
views:dict]];
[self addConstraints:[NSLayoutConstraint
constraintsWithVisualFormat:verticalVisualContraints options:0 metrics:0
views:dict]];
=====================================
modules/gui/macosx/library/video-library/VLCLibraryVideoCollectionViewContainerView.m
=====================================
@@ -25,6 +25,7 @@
#import "library/VLCLibraryCollectionViewDelegate.h"
#import "library/VLCLibraryCollectionViewFlowLayout.h"
#import "library/VLCLibraryCollectionViewSupplementaryElementView.h"
+#import "library/VLCLibraryUIUnits.h"
#import
"library/video-library/VLCLibraryVideoCollectionViewContainerViewDataSource.h"
#import "library/video-library/VLCLibraryVideoGroupDescriptor.h"
@@ -200,7 +201,7 @@
}
if (_groupDescriptor.isHorizontalBarCollectionView) {
- const CGFloat viewHeight = itemHeight + insetsHeight + 15; // Account
for horizontal scrollbar
+ const CGFloat viewHeight = itemHeight + insetsHeight +
[VLCLibraryUIUnits scrollBarSmallSideSize];
return NSMakeSize(width, viewHeight);
}
=====================================
modules/gui/macosx/library/video-library/VLCLibraryVideoCollectionViewsStackViewController.m
=====================================
@@ -26,6 +26,7 @@
#import "library/VLCLibraryCollectionViewFlowLayout.h"
#import "library/VLCLibraryCollectionViewSupplementaryElementView.h"
#import "library/VLCLibraryModel.h"
+#import "library/VLCLibraryUIUnits.h"
#import "library/video-library/VLCLibraryVideoCollectionViewContainerView.h"
#import
"library/video-library/VLCLibraryVideoCollectionViewContainerViewDataSource.h"
@@ -90,7 +91,7 @@
}
_collectionsStackView = collectionsStackView;
- _collectionsStackView.spacing = 20.;
+ _collectionsStackView.spacing = [VLCLibraryUIUnits largeSpacing];
_collectionsStackView.orientation =
NSUserInterfaceLayoutOrientationVertical;
_collectionsStackView.alignment = NSLayoutAttributeLeading;
_collectionsStackView.distribution = NSStackViewDistributionFill;
View it on GitLab:
https://code.videolan.org/videolan/vlc/-/compare/be5239676f25419822572edbcf78342eabfb8e1f...3c802935d0dbe947715bd4e5f4be8a72279fddca
--
View it on GitLab:
https://code.videolan.org/videolan/vlc/-/compare/be5239676f25419822572edbcf78342eabfb8e1f...3c802935d0dbe947715bd4e5f4be8a72279fddca
You're receiving this email because of your account on code.videolan.org.
VideoLAN code repository instance_______________________________________________
vlc-commits mailing list
[email protected]
https://mailman.videolan.org/listinfo/vlc-commits