Added header menu for playlist view.

CQTexperiment
vspader 2007-03-14 03:16:37 +00:00
parent 985ab27e1d
commit 44eeab95ee
4 changed files with 28 additions and 11 deletions

View File

@ -173,7 +173,7 @@
- (void)setSortDescriptors:(NSArray *)sortDescriptors
{
//Cheap hack so the index column isn't sorted
if (([sortDescriptors count] != 0) && [[[sortDescriptors objectAtIndex:0] key] caseInsensitiveCompare:@"displayIndex"] == NSOrderedSame)
if (([sortDescriptors count] != 0) && [[[sortDescriptors objectAtIndex:0] key] caseInsensitiveCompare:@"index"] == NSOrderedSame)
{
//Remove the sort descriptors
[super setSortDescriptors:nil];

View File

@ -67,12 +67,4 @@
[super mouseDown: theEvent];
}
-(NSMenu*)menuForEvent:(NSEvent*)event
{
NSString *hi = @"This is a test";
//Show a menu!
NSLog(@"MENU FOR HEADER!");
return nil;
}
@end

View File

@ -14,9 +14,10 @@
#import "AMRemovableColumnsTableView.h"
@interface PlaylistView : AMRemovableColumnsTableView {
IBOutlet PlaybackController *playbackController;
IBOutlet PlaylistController *playlistController;
NSMenu *headerContextMenu;
}
- (IBAction)sortByPath:(id)sender;

View File

@ -44,6 +44,7 @@
[self setHeaderView:customTableHeaderView];
//Set up formatters
NSFormatter *secondsFormatter = [[SecondsFormatter alloc] init];
[[[self tableColumnWithIdentifier:@"length"] dataCell] setFormatter:secondsFormatter];
[secondsFormatter release];
@ -51,8 +52,31 @@
NSFormatter *indexFormatter = [[IndexFormatter alloc] init];
[[[self tableColumnWithIdentifier:@"index"] dataCell] setFormatter:indexFormatter];
[indexFormatter release];
//end setting up formatters
[self setVerticalMotionCanBeginDrag:YES];
//Set up header context menu
headerContextMenu = [[NSMenu alloc] initWithTitle:@"Playlist Header Context Menu"];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"headerCell.title" ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
NSEnumerator *e = [[[[self allTableColumns] allObjects] sortedArrayUsingDescriptors: sortDescriptors] objectEnumerator];
int menuIndex = 0;
NSTableColumn *col;
while (col = [e nextObject]) {
NSMenuItem *contextMenuItem = [headerContextMenu insertItemWithTitle:[[col headerCell] title] action:@selector(toggleColumn:) keyEquivalent:@"" atIndex:menuIndex];
[contextMenuItem setTarget:self];
[contextMenuItem setRepresentedObject:col];
[contextMenuItem setState:([[self visibleTableColumns] containsObject:col] ? NSOnState : NSOffState)];
menuIndex++;
}
[sortDescriptor release];
[[self headerView] setMenu:headerContextMenu];
}