Browse Source

macosx: Implement header view support in playlist view controller

Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
pull/201/head
Claudio Cambra 5 months ago
committed by Felix Paul Kühne
parent
commit
be21afbde3
  1. 2
      modules/gui/macosx/library/playlist-library/VLCLibraryPlaylistViewController.h
  2. 22
      modules/gui/macosx/library/playlist-library/VLCLibraryPlaylistViewController.m

2
modules/gui/macosx/library/playlist-library/VLCLibraryPlaylistViewController.h

@ -35,6 +35,7 @@ NS_ASSUME_NONNULL_BEGIN
@class VLCLibraryTableView;
@class VLCLibraryTwoPaneSplitViewDelegate;
@class VLCLibraryWindow;
@class VLCLibraryAudioGroupTableHeaderView;
@interface VLCLibraryPlaylistViewController : VLCLibraryAbstractMediaLibrarySegmentViewController<NSSplitViewDelegate>
@ -51,6 +52,7 @@ NS_ASSUME_NONNULL_BEGIN
@property (readonly) VLCLibraryCollectionViewDelegate *collectionViewDelegate;
@property (readonly) VLCLibraryMasterDetailViewTableViewDelegate *tableViewDelegate;
@property (readonly) VLCLibraryTwoPaneSplitViewDelegate *splitViewDelegate;
@property (readonly) VLCLibraryAudioGroupTableHeaderView *detailTableHeaderView;
- (instancetype)initWithLibraryWindow:(VLCLibraryWindow *)libraryWindow;

22
modules/gui/macosx/library/playlist-library/VLCLibraryPlaylistViewController.m

@ -41,6 +41,8 @@
#import "library/audio-library/VLCLibraryAudioViewController.h"
#import "library/playlist-library/VLCLibraryPlaylistDataSource.h"
#import "library/audio-library/VLCLibraryAudioGroupTableHeaderCell.h"
#import "library/audio-library/VLCLibraryAudioGroupTableHeaderView.h"
#import "library/video-library/VLCLibraryVideoViewController.h"
@ -138,6 +140,8 @@
_detailTableView = [[VLCLibraryTableView alloc] init];
_listViewSplitView = [[NSSplitView alloc] init];
self.dataSource.headerDelegate = _tableViewDelegate;
self.masterTableViewScrollView.translatesAutoresizingMaskIntoConstraints = NO;
self.detailTableViewScrollView.translatesAutoresizingMaskIntoConstraints = NO;
self.listViewSplitView.translatesAutoresizingMaskIntoConstraints = NO;
@ -183,8 +187,24 @@
[self.detailTableView registerNib:tableCellViewNib
forIdentifier:@"VLCLibraryTableViewCellIdentifier"];
CGFloat headerHeight = VLCLibraryAudioGroupTableHeaderViewHeight;
if (@available(macOS 26.0, *)) {
headerHeight += VLCLibraryUIUnits.largeSpacing * 2;
}
const NSRect headerFrame = NSMakeRect(0.f,
0.f,
self.masterTableView.bounds.size.width,
headerHeight);
_detailTableHeaderView = [[VLCLibraryAudioGroupTableHeaderView alloc] initWithFrame:headerFrame withInternalPaddingAddedForContentView:YES];
self.detailTableHeaderView.autoresizingMask = NSViewWidthSizable;
self.tableViewDelegate.detailTableHeaderView = self.detailTableHeaderView;
self.masterTableView.headerView = nil;
self.detailTableView.headerView = nil;
self.detailTableView.headerView = self.detailTableHeaderView;
detailColumn.headerCell = [VLCLibraryAudioGroupTableHeaderCell new];
self.masterTableView.rowHeight = VLCLibraryUIUnits.mediumTableViewRowHeight;
self.detailTableView.rowHeight = VLCLibraryUIUnits.mediumTableViewRowHeight;

Loading…
Cancel
Save