Browse Source

macosx: Make master/detail view table view delegate VLCLibraryGroupHeaderDelegate conformant

Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
pull/201/head
Claudio Cambra 1 month ago
committed by Felix Paul Kühne
parent
commit
931b61e4e2
  1. 3
      modules/gui/macosx/library/VLCLibraryMasterDetailViewTableViewDataSource.h
  2. 7
      modules/gui/macosx/library/VLCLibraryMasterDetailViewTableViewDelegate.h
  3. 23
      modules/gui/macosx/library/VLCLibraryMasterDetailViewTableViewDelegate.m

3
modules/gui/macosx/library/VLCLibraryMasterDetailViewTableViewDataSource.h

@ -31,6 +31,9 @@ NS_ASSUME_NONNULL_BEGIN
@property (readwrite, weak) NSTableView *masterTableView;
@property (readwrite, weak) NSTableView *detailTableView;
@optional
- (void)updateHeaderForTableView:(NSTableView *)tableView;
@end
NS_ASSUME_NONNULL_END

7
modules/gui/macosx/library/VLCLibraryMasterDetailViewTableViewDelegate.h

@ -22,11 +22,16 @@
#import <Cocoa/Cocoa.h>
#import "library/VLCLibraryGroupHeaderDelegate.h"
#import "library/VLCLibraryTableViewDelegate.h"
@class VLCLibraryAudioGroupTableHeaderView;
NS_ASSUME_NONNULL_BEGIN
@interface VLCLibraryMasterDetailViewTableViewDelegate : VLCLibraryTableViewDelegate
@interface VLCLibraryMasterDetailViewTableViewDelegate : VLCLibraryTableViewDelegate<VLCLibraryGroupHeaderDelegate>
@property (readwrite, weak) VLCLibraryAudioGroupTableHeaderView *detailTableHeaderView;
@end

23
modules/gui/macosx/library/VLCLibraryMasterDetailViewTableViewDelegate.m

@ -23,6 +23,9 @@
#import "VLCLibraryMasterDetailViewTableViewDelegate.h"
#import "library/VLCLibraryMasterDetailViewTableViewDataSource.h"
#import "library/VLCLibraryRepresentedItem.h"
#import "library/audio-library/VLCLibraryAudioGroupTableHeaderView.h"
@implementation VLCLibraryMasterDetailViewTableViewDelegate
@ -41,7 +44,27 @@
if (tableView == masterDetailViewDataSource.masterTableView) {
[masterDetailViewDataSource.detailTableView reloadData];
if ([masterDetailViewDataSource respondsToSelector:@selector(updateHeaderForTableView:)]) {
[masterDetailViewDataSource updateHeaderForTableView:tableView];
}
}
}
#pragma mark - VLCLibraryGroupHeaderDelegate
- (void)updateHeaderForTableView:(NSTableView *)tableView
withRepresentedItem:(VLCLibraryRepresentedItem *)representedItem
fallbackTitle:(NSString *)fallbackTitle
fallbackDetail:(NSString *)fallbackDetail
{
if (tableView != tableView) { // TODO
return;
}
[self.detailTableHeaderView updateWithRepresentedItem:representedItem
fallbackTitle:fallbackTitle
fallbackDetail:fallbackDetail];
}
@end

Loading…
Cancel
Save