Browse Source

macosx: Use VLCSubScrollViews in the collection view cells to improve scroll

Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
pull/141/head
Claudio Cambra 4 years ago
committed by Jean-Baptiste Kempf
parent
commit
bf68e1e7a7
  1. 1
      modules/gui/macosx/library/VLCLibraryVideoCollectionViewsDataSource.h
  2. 8
      modules/gui/macosx/library/VLCLibraryVideoCollectionViewsDataSource.m
  3. 1
      modules/gui/macosx/library/VLCLibraryWindow.m

1
modules/gui/macosx/library/VLCLibraryVideoCollectionViewsDataSource.h

@ -45,6 +45,7 @@ NS_ASSUME_NONNULL_BEGIN
@property (readwrite, assign) NSEdgeInsets collectionViewSectionInset;
@property (readwrite, assign, nonatomic) NSTableView *collectionsTableView;
@property (readwrite, assign) NSScrollView *collectionsTableViewScrollView;
@end

8
modules/gui/macosx/library/VLCLibraryVideoCollectionViewsDataSource.m

@ -36,6 +36,8 @@
#import "main/VLCMain.h"
#import "views/VLCSubScrollView.h"
@interface VLCLibraryVideoCollectionViewGroupDescriptor : NSObject
@property (readonly) VLCLibraryVideoGroup group;
@ -222,7 +224,7 @@ writeItemsAtIndexPaths:(NSSet<NSIndexPath *> *)indexPaths
@interface VLCLibraryVideoCollectionViewTableViewCell : NSTableCellView
@property (readonly) NSCollectionView *collectionView;
@property (readonly) NSScrollView *scrollView;
@property (readonly) VLCSubScrollView *scrollView;
@property (readonly) VLCLibraryVideoCollectionViewTableViewCellDataSource *dataSource;
@property (readonly) VLCLibraryVideoCollectionViewGroupDescriptor *groupDescriptor;
@property (readwrite, assign, nonatomic) VLCLibraryVideoGroup videoGroup;
@ -253,7 +255,8 @@ writeItemsAtIndexPaths:(NSSet<NSIndexPath *> *)indexPaths
_collectionView = [[NSCollectionView alloc] initWithFrame:NSZeroRect];
_collectionView.collectionViewLayout = collectionViewLayout;
_scrollView = [[NSScrollView alloc] init];
_scrollView = [[VLCSubScrollView alloc] init];
_scrollView.scrollParentY = YES;
_scrollView.translatesAutoresizingMaskIntoConstraints = NO;
_scrollView.documentView = _collectionView;
@ -340,6 +343,7 @@ writeItemsAtIndexPaths:(NSSet<NSIndexPath *> *)indexPaths
{
VLCLibraryVideoCollectionViewTableViewCell *cell = [[VLCLibraryVideoCollectionViewTableViewCell alloc] init];
cell.identifier = @"VLCLibraryVideoCollectionViewTableViewCellIdentifier";
cell.scrollView.parentScrollView = _collectionsTableViewScrollView;
cell.videoGroup = row + 1; // The VLCVideoLibraryVideoGroup enum starts at 1, and represents our row count
return cell;

1
modules/gui/macosx/library/VLCLibraryWindow.m

@ -292,6 +292,7 @@ static void addShadow(NSImageView *__unsafe_unretained imageView)
[_libraryVideoDataSource setup];
_libraryVideoCollectionViewsDataSource = [[VLCLibraryVideoCollectionViewsDataSource alloc] init];
_libraryVideoCollectionViewsDataSource.collectionsTableViewScrollView = _videoLibraryCollectionsTableViewScrollView;
_libraryVideoCollectionViewsDataSource.collectionsTableView = _videoLibraryCollectionsTableView;
_videoLibraryCollectionsTableView.rowHeight = VLCLibraryWindowLargeRowHeight * 10;
[_videoLibraryCollectionsTableView reloadData];

Loading…
Cancel
Save