Added toolbar UI.

CQTexperiment
vspader 2007-11-01 01:53:52 +00:00
parent de85236760
commit aa856de92b
21 changed files with 564 additions and 343 deletions

View File

@ -1,5 +1,4 @@
#import "AppController.h" #import "AppController.h"
#import "KFTypeSelectTableView.h""
#import "PlaybackController.h" #import "PlaybackController.h"
#import "PlaylistController.h" #import "PlaylistController.h"
#import "PlaylistView.h" #import "PlaylistView.h"
@ -19,11 +18,6 @@
{ {
[self initDefaults]; [self initDefaults];
/* Use KFTypeSelectTableView as our NSTableView base class to allow type-select searching of all
* table and outline views.
*/
[[KFTypeSelectTableView class] poseAsClass:[NSTableView class]];
remote = [[AppleRemote alloc] init]; remote = [[AppleRemote alloc] init];
[remote setDelegate: self]; [remote setDelegate: self];
} }

View File

@ -0,0 +1,17 @@
//
// InvertedToolbarWindow.h
// Cog
//
// Created by Vincent Spader on 10/31/07.
// Copyright 2007 __MyCompanyName__. All rights reserved.
//
#import <Cocoa/Cocoa.h>
@interface InvertedToolbarWindow : NSWindow {
BOOL contentHidden;
double contentHeight;
}
@end

View File

@ -0,0 +1,59 @@
//
// InvertedToolbarWindow.m
// Cog
//
// Created by Vincent Spader on 10/31/07.
// Copyright 2007 __MyCompanyName__. All rights reserved.
//
#import "InvertedToolbarWindow.h"
@implementation InvertedToolbarWindow
- (void)awakeFromNib
{
contentHidden = NO;
}
- (void)toggleToolbarShown:(id)sender
{
NSLog(@"Size: %lf %lf", [self minSize].width, [self minSize].height);
if (contentHidden) {
NSRect newFrame = [self frame];
newFrame.origin.y -= contentHeight;
newFrame.size.height += contentHeight;
[self setFrame:newFrame display:YES animate:YES];
[self setShowsResizeIndicator:YES];
}
else {
NSRect newFrame = [self frame];
contentHeight = [[self contentView] bounds].size.height;
newFrame.origin.y += contentHeight;
newFrame.size.height -= contentHeight;
[self setShowsResizeIndicator:NO];
[self setFrame:newFrame display:YES animate:YES];
[self setShowsResizeIndicator:NO];
}
contentHidden = !contentHidden;
}
- (NSSize)windowWillResize:(NSWindow *)sender toSize:(NSSize)proposedFrameSize {
if (contentHidden) {
proposedFrameSize.height = [self frame].size.height;
}
return proposedFrameSize;
}
@end

View File

@ -19,10 +19,8 @@
IBOutlet TrackingSlider *positionSlider; IBOutlet TrackingSlider *positionSlider;
IBOutlet NSSlider *volumeSlider; IBOutlet NSSlider *volumeSlider;
IBOutlet NSTextField *timeField; IBOutlet NSTextField *timeField;
IBOutlet NSTextField *lengthField;
IBOutlet NSTextField *bitrateField;
IBOutlet NSButton *playButton; IBOutlet NSSegmentedControl *playbackButtons;
IBOutlet NSArrayController *outputDevices; IBOutlet NSArrayController *outputDevices;
@ -48,6 +46,8 @@
- (IBAction)playPauseResume:(id)sender; - (IBAction)playPauseResume:(id)sender;
- (IBAction)pauseResume:(id)sender; - (IBAction)pauseResume:(id)sender;
- (IBAction)playbackButtonClick:(id)sender;
- (IBAction)play:(id)sender; - (IBAction)play:(id)sender;
- (IBAction)pause:(id)sender; - (IBAction)pause:(id)sender;
- (IBAction)resume:(id)sender; - (IBAction)resume:(id)sender;

View File

@ -52,7 +52,7 @@
- (void)awakeFromNib - (void)awakeFromNib
{ {
currentVolume = 100.0; currentVolume = 100.0;
[volumeSlider setDoubleValue:pow(10.0, log10(0.5)/4.0)*[volumeSlider maxValue]]; [volumeSlider setDoubleValue:pow(10.0, log10(0.5)/4.0)*100];
[positionSlider setEnabled:NO]; [positionSlider setEnabled:NO];
} }
@ -109,6 +109,27 @@
[self playEntry:pe]; [self playEntry:pe];
} }
- (IBAction)playbackButtonClick:(id)sender
{
int clickedSegment = [sender selectedSegment];
if (clickedSegment == 0) //Previous
{
[sender setSelected:YES forSegment:0];
[sender setSelected:YES forSegment:1];
[self prev:sender];
}
else if (clickedSegment == 1) //Play
{
[self playPauseResume:sender];
}
else if (clickedSegment == 2) //Next
{
[self next:sender];
}
}
- (IBAction)play:(id)sender - (IBAction)play:(id)sender
{ {
if ([playlistView selectedRow] == -1) if ([playlistView selectedRow] == -1)
@ -175,21 +196,15 @@
- (void)changePlayButtonImage:(NSString *)name - (void)changePlayButtonImage:(NSString *)name
{ {
NSImage *img = [NSImage imageNamed:[name stringByAppendingString:@"_gray"]]; NSImage *img = [NSImage imageNamed:name];
NSImage *alt = [NSImage imageNamed:[name stringByAppendingString:@"_blue"]]; // [img retain];
[img retain];
[alt retain];
if (img == nil) if (img == nil)
{ {
NSLog(@"Error loading image!"); NSLog(@"Error loading image!");
} }
if (alt == nil)
{
NSLog(@"Error loading alt image...");
}
[playButton setImage:img]; [playbackButtons setImage:img forSegment:1];
[playButton setAlternateImage:alt];
} }
- (IBAction)changeVolume:(id)sender - (IBAction)changeVolume:(id)sender
@ -197,7 +212,7 @@
double percent; double percent;
//Approximated log //Approximated log
percent = (float)[sender doubleValue]/[sender maxValue]; percent = (float)[sender doubleValue]/100.0;
percent = percent * percent * percent * percent; percent = percent * percent * percent * percent;
//gravitates at the 100% mark //gravitates at the 100% mark
@ -206,10 +221,10 @@
{ {
percent = 0.5; percent = 0.5;
v = pow(10.0, log10(percent)/4.0); v = pow(10.0, log10(percent)/4.0);
[sender setDoubleValue:v*[sender maxValue]]; [sender setDoubleValue:v*100.0];
} }
currentVolume = percent * [sender maxValue]; currentVolume = percent * 100.0;
[audioPlayer setVolume:currentVolume]; [audioPlayer setVolume:currentVolume];
} }
@ -220,10 +235,10 @@
[volumeSlider setDoubleValue:([volumeSlider doubleValue] - 5)]; [volumeSlider setDoubleValue:([volumeSlider doubleValue] - 5)];
percent = (float)[volumeSlider doubleValue]/[volumeSlider maxValue]; percent = (float)[volumeSlider doubleValue]/100.0;
percent = percent * percent * percent * percent; percent = percent * percent * percent * percent;
currentVolume = percent * [volumeSlider maxValue]; currentVolume = percent * 100.0;
[audioPlayer setVolume:currentVolume]; [audioPlayer setVolume:currentVolume];
} }

View File

@ -34,7 +34,6 @@
177EBFA00B8BC2A70000BC8C /* AMRemovableTableColumn.m in Sources */ = {isa = PBXBuildFile; fileRef = 177EBF7C0B8BC2A70000BC8C /* AMRemovableTableColumn.m */; }; 177EBFA00B8BC2A70000BC8C /* AMRemovableTableColumn.m in Sources */ = {isa = PBXBuildFile; fileRef = 177EBF7C0B8BC2A70000BC8C /* AMRemovableTableColumn.m */; };
177EBFA20B8BC2A70000BC8C /* AppleRemote.m in Sources */ = {isa = PBXBuildFile; fileRef = 177EBF7F0B8BC2A70000BC8C /* AppleRemote.m */; }; 177EBFA20B8BC2A70000BC8C /* AppleRemote.m in Sources */ = {isa = PBXBuildFile; fileRef = 177EBF7F0B8BC2A70000BC8C /* AppleRemote.m */; };
177EBFA70B8BC2A70000BC8C /* ImageTextCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 177EBF870B8BC2A70000BC8C /* ImageTextCell.m */; }; 177EBFA70B8BC2A70000BC8C /* ImageTextCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 177EBF870B8BC2A70000BC8C /* ImageTextCell.m */; };
177EBFA90B8BC2A70000BC8C /* KFTypeSelectTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 177EBF8A0B8BC2A70000BC8C /* KFTypeSelectTableView.m */; };
177EBFAB0B8BC2A70000BC8C /* NDHotKeyControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 177EBF8D0B8BC2A70000BC8C /* NDHotKeyControl.m */; }; 177EBFAB0B8BC2A70000BC8C /* NDHotKeyControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 177EBF8D0B8BC2A70000BC8C /* NDHotKeyControl.m */; };
177EBFAD0B8BC2A70000BC8C /* NDHotKeyEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 177EBF8F0B8BC2A70000BC8C /* NDHotKeyEvent.m */; }; 177EBFAD0B8BC2A70000BC8C /* NDHotKeyEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 177EBF8F0B8BC2A70000BC8C /* NDHotKeyEvent.m */; };
177EBFAF0B8BC2A70000BC8C /* UKFileWatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 177EBF920B8BC2A70000BC8C /* UKFileWatcher.m */; }; 177EBFAF0B8BC2A70000BC8C /* UKFileWatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 177EBF920B8BC2A70000BC8C /* UKFileWatcher.m */; };
@ -48,14 +47,10 @@
177EC0290B8BC2CF0000BC8C /* TrackingSlider.m in Sources */ = {isa = PBXBuildFile; fileRef = 177EC01D0B8BC2CF0000BC8C /* TrackingSlider.m */; }; 177EC0290B8BC2CF0000BC8C /* TrackingSlider.m in Sources */ = {isa = PBXBuildFile; fileRef = 177EC01D0B8BC2CF0000BC8C /* TrackingSlider.m */; };
177EC0440B8BC2FF0000BC8C /* add_blue.png in Resources */ = {isa = PBXBuildFile; fileRef = 177EC02E0B8BC2FF0000BC8C /* add_blue.png */; }; 177EC0440B8BC2FF0000BC8C /* add_blue.png in Resources */ = {isa = PBXBuildFile; fileRef = 177EC02E0B8BC2FF0000BC8C /* add_blue.png */; };
177EC0450B8BC2FF0000BC8C /* add_gray.png in Resources */ = {isa = PBXBuildFile; fileRef = 177EC02F0B8BC2FF0000BC8C /* add_gray.png */; }; 177EC0450B8BC2FF0000BC8C /* add_gray.png in Resources */ = {isa = PBXBuildFile; fileRef = 177EC02F0B8BC2FF0000BC8C /* add_gray.png */; };
177EC04A0B8BC2FF0000BC8C /* next_blue.png in Resources */ = {isa = PBXBuildFile; fileRef = 177EC0340B8BC2FF0000BC8C /* next_blue.png */; }; 177EC04B0B8BC2FF0000BC8C /* next.png in Resources */ = {isa = PBXBuildFile; fileRef = 177EC0350B8BC2FF0000BC8C /* next.png */; };
177EC04B0B8BC2FF0000BC8C /* next_gray.png in Resources */ = {isa = PBXBuildFile; fileRef = 177EC0350B8BC2FF0000BC8C /* next_gray.png */; }; 177EC04D0B8BC2FF0000BC8C /* pause.png in Resources */ = {isa = PBXBuildFile; fileRef = 177EC0370B8BC2FF0000BC8C /* pause.png */; };
177EC04C0B8BC2FF0000BC8C /* pause_blue.png in Resources */ = {isa = PBXBuildFile; fileRef = 177EC0360B8BC2FF0000BC8C /* pause_blue.png */; }; 177EC04F0B8BC2FF0000BC8C /* play.png in Resources */ = {isa = PBXBuildFile; fileRef = 177EC0390B8BC2FF0000BC8C /* play.png */; };
177EC04D0B8BC2FF0000BC8C /* pause_gray.png in Resources */ = {isa = PBXBuildFile; fileRef = 177EC0370B8BC2FF0000BC8C /* pause_gray.png */; }; 177EC0510B8BC2FF0000BC8C /* previous.png in Resources */ = {isa = PBXBuildFile; fileRef = 177EC03B0B8BC2FF0000BC8C /* previous.png */; };
177EC04E0B8BC2FF0000BC8C /* play_blue.png in Resources */ = {isa = PBXBuildFile; fileRef = 177EC0380B8BC2FF0000BC8C /* play_blue.png */; };
177EC04F0B8BC2FF0000BC8C /* play_gray.png in Resources */ = {isa = PBXBuildFile; fileRef = 177EC0390B8BC2FF0000BC8C /* play_gray.png */; };
177EC0500B8BC2FF0000BC8C /* prev_blue.png in Resources */ = {isa = PBXBuildFile; fileRef = 177EC03A0B8BC2FF0000BC8C /* prev_blue.png */; };
177EC0510B8BC2FF0000BC8C /* prev_gray.png in Resources */ = {isa = PBXBuildFile; fileRef = 177EC03B0B8BC2FF0000BC8C /* prev_gray.png */; };
177EC0520B8BC2FF0000BC8C /* remove_blue.png in Resources */ = {isa = PBXBuildFile; fileRef = 177EC03C0B8BC2FF0000BC8C /* remove_blue.png */; }; 177EC0520B8BC2FF0000BC8C /* remove_blue.png in Resources */ = {isa = PBXBuildFile; fileRef = 177EC03C0B8BC2FF0000BC8C /* remove_blue.png */; };
177EC0530B8BC2FF0000BC8C /* remove_gray.png in Resources */ = {isa = PBXBuildFile; fileRef = 177EC03D0B8BC2FF0000BC8C /* remove_gray.png */; }; 177EC0530B8BC2FF0000BC8C /* remove_gray.png in Resources */ = {isa = PBXBuildFile; fileRef = 177EC03D0B8BC2FF0000BC8C /* remove_gray.png */; };
177EC0580B8BC2FF0000BC8C /* volume_high.png in Resources */ = {isa = PBXBuildFile; fileRef = 177EC0420B8BC2FF0000BC8C /* volume_high.png */; }; 177EC0580B8BC2FF0000BC8C /* volume_high.png in Resources */ = {isa = PBXBuildFile; fileRef = 177EC0420B8BC2FF0000BC8C /* volume_high.png */; };
@ -67,6 +62,9 @@
17818A990C0B27AC001C4916 /* shn.icns in Resources */ = {isa = PBXBuildFile; fileRef = 17818A920C0B27AC001C4916 /* shn.icns */; }; 17818A990C0B27AC001C4916 /* shn.icns in Resources */ = {isa = PBXBuildFile; fileRef = 17818A920C0B27AC001C4916 /* shn.icns */; };
17818A9A0C0B27AC001C4916 /* wav.icns in Resources */ = {isa = PBXBuildFile; fileRef = 17818A930C0B27AC001C4916 /* wav.icns */; }; 17818A9A0C0B27AC001C4916 /* wav.icns in Resources */ = {isa = PBXBuildFile; fileRef = 17818A930C0B27AC001C4916 /* wav.icns */; };
17818A9B0C0B27AC001C4916 /* wv.icns in Resources */ = {isa = PBXBuildFile; fileRef = 17818A940C0B27AC001C4916 /* wv.icns */; }; 17818A9B0C0B27AC001C4916 /* wv.icns in Resources */ = {isa = PBXBuildFile; fileRef = 17818A940C0B27AC001C4916 /* wv.icns */; };
178BAB990CD4E1B700B33D47 /* GCOneShotEffectTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = 178BAB940CD4E1B700B33D47 /* GCOneShotEffectTimer.m */; };
178BAB9A0CD4E1B700B33D47 /* GCWindowMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = 178BAB960CD4E1B700B33D47 /* GCWindowMenu.m */; };
178BAB9B0CD4E1B700B33D47 /* PopupButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 178BAB980CD4E1B700B33D47 /* PopupButton.m */; };
1791005E0CB44D6D0070BC5C /* Cog.scriptSuite in Resources */ = {isa = PBXBuildFile; fileRef = 1791005C0CB44D6D0070BC5C /* Cog.scriptSuite */; }; 1791005E0CB44D6D0070BC5C /* Cog.scriptSuite in Resources */ = {isa = PBXBuildFile; fileRef = 1791005C0CB44D6D0070BC5C /* Cog.scriptSuite */; };
1791005F0CB44D6D0070BC5C /* Cog.scriptTerminology in Resources */ = {isa = PBXBuildFile; fileRef = 1791005D0CB44D6D0070BC5C /* Cog.scriptTerminology */; }; 1791005F0CB44D6D0070BC5C /* Cog.scriptTerminology in Resources */ = {isa = PBXBuildFile; fileRef = 1791005D0CB44D6D0070BC5C /* Cog.scriptTerminology */; };
1791FF8F0CB43A2C0070BC5C /* MediaKeysApplication.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 1791FF8D0CB43A2C0070BC5C /* MediaKeysApplication.h */; }; 1791FF8F0CB43A2C0070BC5C /* MediaKeysApplication.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 1791FF8D0CB43A2C0070BC5C /* MediaKeysApplication.h */; };
@ -82,6 +80,7 @@
17BB5CFA0B8A86350009ACB1 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 17BB5CF70B8A86350009ACB1 /* CoreAudio.framework */; }; 17BB5CFA0B8A86350009ACB1 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 17BB5CF70B8A86350009ACB1 /* CoreAudio.framework */; };
17BB5CFB0B8A86350009ACB1 /* CoreAudioKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 17BB5CF80B8A86350009ACB1 /* CoreAudioKit.framework */; }; 17BB5CFB0B8A86350009ACB1 /* CoreAudioKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 17BB5CF80B8A86350009ACB1 /* CoreAudioKit.framework */; };
17BB5EA60B8A87850009ACB1 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 17BB5EA50B8A87850009ACB1 /* IOKit.framework */; }; 17BB5EA60B8A87850009ACB1 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 17BB5EA50B8A87850009ACB1 /* IOKit.framework */; };
17BBE5BC0CD95CFA00258F7A /* InvertedToolbarWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 17BBE5BB0CD95CFA00258F7A /* InvertedToolbarWindow.m */; };
17C809910C3BD201005707C4 /* WavPack.bundle in CopyFiles */ = {isa = PBXBuildFile; fileRef = 17C808C80C3BD1DD005707C4 /* WavPack.bundle */; }; 17C809910C3BD201005707C4 /* WavPack.bundle in CopyFiles */ = {isa = PBXBuildFile; fileRef = 17C808C80C3BD1DD005707C4 /* WavPack.bundle */; };
17C809920C3BD206005707C4 /* Vorbis.bundle in CopyFiles */ = {isa = PBXBuildFile; fileRef = 17C808BF0C3BD1D2005707C4 /* Vorbis.bundle */; }; 17C809920C3BD206005707C4 /* Vorbis.bundle in CopyFiles */ = {isa = PBXBuildFile; fileRef = 17C808BF0C3BD1D2005707C4 /* Vorbis.bundle */; };
17C809930C3BD21D005707C4 /* TagLib.bundle in CopyFiles */ = {isa = PBXBuildFile; fileRef = 17C808B60C3BD1C5005707C4 /* TagLib.bundle */; }; 17C809930C3BD21D005707C4 /* TagLib.bundle in CopyFiles */ = {isa = PBXBuildFile; fileRef = 17C808B60C3BD1C5005707C4 /* TagLib.bundle */; };
@ -503,8 +502,6 @@
177EBF7F0B8BC2A70000BC8C /* AppleRemote.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = AppleRemote.m; sourceTree = "<group>"; }; 177EBF7F0B8BC2A70000BC8C /* AppleRemote.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = AppleRemote.m; sourceTree = "<group>"; };
177EBF860B8BC2A70000BC8C /* ImageTextCell.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ImageTextCell.h; sourceTree = "<group>"; }; 177EBF860B8BC2A70000BC8C /* ImageTextCell.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ImageTextCell.h; sourceTree = "<group>"; };
177EBF870B8BC2A70000BC8C /* ImageTextCell.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ImageTextCell.m; sourceTree = "<group>"; }; 177EBF870B8BC2A70000BC8C /* ImageTextCell.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ImageTextCell.m; sourceTree = "<group>"; };
177EBF890B8BC2A70000BC8C /* KFTypeSelectTableView.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = KFTypeSelectTableView.h; sourceTree = "<group>"; };
177EBF8A0B8BC2A70000BC8C /* KFTypeSelectTableView.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = KFTypeSelectTableView.m; sourceTree = "<group>"; };
177EBF8C0B8BC2A70000BC8C /* NDHotKeyControl.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NDHotKeyControl.h; sourceTree = "<group>"; }; 177EBF8C0B8BC2A70000BC8C /* NDHotKeyControl.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NDHotKeyControl.h; sourceTree = "<group>"; };
177EBF8D0B8BC2A70000BC8C /* NDHotKeyControl.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NDHotKeyControl.m; sourceTree = "<group>"; }; 177EBF8D0B8BC2A70000BC8C /* NDHotKeyControl.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NDHotKeyControl.m; sourceTree = "<group>"; };
177EBF8E0B8BC2A70000BC8C /* NDHotKeyEvent.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NDHotKeyEvent.h; sourceTree = "<group>"; }; 177EBF8E0B8BC2A70000BC8C /* NDHotKeyEvent.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NDHotKeyEvent.h; sourceTree = "<group>"; };
@ -530,14 +527,10 @@
177EC01D0B8BC2CF0000BC8C /* TrackingSlider.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = TrackingSlider.m; sourceTree = "<group>"; }; 177EC01D0B8BC2CF0000BC8C /* TrackingSlider.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = TrackingSlider.m; sourceTree = "<group>"; };
177EC02E0B8BC2FF0000BC8C /* add_blue.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = add_blue.png; path = Images/add_blue.png; sourceTree = "<group>"; }; 177EC02E0B8BC2FF0000BC8C /* add_blue.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = add_blue.png; path = Images/add_blue.png; sourceTree = "<group>"; };
177EC02F0B8BC2FF0000BC8C /* add_gray.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = add_gray.png; path = Images/add_gray.png; sourceTree = "<group>"; }; 177EC02F0B8BC2FF0000BC8C /* add_gray.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = add_gray.png; path = Images/add_gray.png; sourceTree = "<group>"; };
177EC0340B8BC2FF0000BC8C /* next_blue.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = next_blue.png; path = Images/next_blue.png; sourceTree = "<group>"; }; 177EC0350B8BC2FF0000BC8C /* next.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = next.png; path = Images/next.png; sourceTree = "<group>"; };
177EC0350B8BC2FF0000BC8C /* next_gray.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = next_gray.png; path = Images/next_gray.png; sourceTree = "<group>"; }; 177EC0370B8BC2FF0000BC8C /* pause.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = pause.png; path = Images/pause.png; sourceTree = "<group>"; };
177EC0360B8BC2FF0000BC8C /* pause_blue.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = pause_blue.png; path = Images/pause_blue.png; sourceTree = "<group>"; }; 177EC0390B8BC2FF0000BC8C /* play.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = play.png; path = Images/play.png; sourceTree = "<group>"; };
177EC0370B8BC2FF0000BC8C /* pause_gray.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = pause_gray.png; path = Images/pause_gray.png; sourceTree = "<group>"; }; 177EC03B0B8BC2FF0000BC8C /* previous.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = previous.png; path = Images/previous.png; sourceTree = "<group>"; };
177EC0380B8BC2FF0000BC8C /* play_blue.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = play_blue.png; path = Images/play_blue.png; sourceTree = "<group>"; };
177EC0390B8BC2FF0000BC8C /* play_gray.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = play_gray.png; path = Images/play_gray.png; sourceTree = "<group>"; };
177EC03A0B8BC2FF0000BC8C /* prev_blue.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = prev_blue.png; path = Images/prev_blue.png; sourceTree = "<group>"; };
177EC03B0B8BC2FF0000BC8C /* prev_gray.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = prev_gray.png; path = Images/prev_gray.png; sourceTree = "<group>"; };
177EC03C0B8BC2FF0000BC8C /* remove_blue.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = remove_blue.png; path = Images/remove_blue.png; sourceTree = "<group>"; }; 177EC03C0B8BC2FF0000BC8C /* remove_blue.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = remove_blue.png; path = Images/remove_blue.png; sourceTree = "<group>"; };
177EC03D0B8BC2FF0000BC8C /* remove_gray.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = remove_gray.png; path = Images/remove_gray.png; sourceTree = "<group>"; }; 177EC03D0B8BC2FF0000BC8C /* remove_gray.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = remove_gray.png; path = Images/remove_gray.png; sourceTree = "<group>"; };
177EC0420B8BC2FF0000BC8C /* volume_high.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = volume_high.png; path = Images/volume_high.png; sourceTree = "<group>"; }; 177EC0420B8BC2FF0000BC8C /* volume_high.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = volume_high.png; path = Images/volume_high.png; sourceTree = "<group>"; };
@ -549,6 +542,12 @@
17818A920C0B27AC001C4916 /* shn.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = shn.icns; sourceTree = "<group>"; }; 17818A920C0B27AC001C4916 /* shn.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = shn.icns; sourceTree = "<group>"; };
17818A930C0B27AC001C4916 /* wav.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = wav.icns; sourceTree = "<group>"; }; 17818A930C0B27AC001C4916 /* wav.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = wav.icns; sourceTree = "<group>"; };
17818A940C0B27AC001C4916 /* wv.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = wv.icns; sourceTree = "<group>"; }; 17818A940C0B27AC001C4916 /* wv.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = wv.icns; sourceTree = "<group>"; };
178BAB930CD4E1B700B33D47 /* GCOneShotEffectTimer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCOneShotEffectTimer.h; sourceTree = "<group>"; };
178BAB940CD4E1B700B33D47 /* GCOneShotEffectTimer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCOneShotEffectTimer.m; sourceTree = "<group>"; };
178BAB950CD4E1B700B33D47 /* GCWindowMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCWindowMenu.h; sourceTree = "<group>"; };
178BAB960CD4E1B700B33D47 /* GCWindowMenu.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCWindowMenu.m; sourceTree = "<group>"; };
178BAB970CD4E1B700B33D47 /* PopupButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PopupButton.h; sourceTree = "<group>"; };
178BAB980CD4E1B700B33D47 /* PopupButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PopupButton.m; sourceTree = "<group>"; };
1791005C0CB44D6D0070BC5C /* Cog.scriptSuite */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xml; path = Cog.scriptSuite; sourceTree = "<group>"; }; 1791005C0CB44D6D0070BC5C /* Cog.scriptSuite */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xml; path = Cog.scriptSuite; sourceTree = "<group>"; };
1791005D0CB44D6D0070BC5C /* Cog.scriptTerminology */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xml; path = Cog.scriptTerminology; sourceTree = "<group>"; }; 1791005D0CB44D6D0070BC5C /* Cog.scriptTerminology */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xml; path = Cog.scriptTerminology; sourceTree = "<group>"; };
1791FF8D0CB43A2C0070BC5C /* MediaKeysApplication.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaKeysApplication.h; sourceTree = "<group>"; }; 1791FF8D0CB43A2C0070BC5C /* MediaKeysApplication.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaKeysApplication.h; sourceTree = "<group>"; };
@ -565,6 +564,8 @@
17BB5CF70B8A86350009ACB1 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; }; 17BB5CF70B8A86350009ACB1 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; };
17BB5CF80B8A86350009ACB1 /* CoreAudioKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudioKit.framework; path = /System/Library/Frameworks/CoreAudioKit.framework; sourceTree = "<absolute>"; }; 17BB5CF80B8A86350009ACB1 /* CoreAudioKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudioKit.framework; path = /System/Library/Frameworks/CoreAudioKit.framework; sourceTree = "<absolute>"; };
17BB5EA50B8A87850009ACB1 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = "<absolute>"; }; 17BB5EA50B8A87850009ACB1 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = "<absolute>"; };
17BBE5BA0CD95CFA00258F7A /* InvertedToolbarWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InvertedToolbarWindow.h; sourceTree = "<group>"; };
17BBE5BB0CD95CFA00258F7A /* InvertedToolbarWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = InvertedToolbarWindow.m; sourceTree = "<group>"; };
17C4D3D10C3EF130004D0867 /* Swedish */ = {isa = PBXFileReference; lastKnownFileType = folder; name = Swedish; path = Swedish.lproj/Help; sourceTree = "<group>"; }; 17C4D3D10C3EF130004D0867 /* Swedish */ = {isa = PBXFileReference; lastKnownFileType = folder; name = Swedish; path = Swedish.lproj/Help; sourceTree = "<group>"; };
17C4D3E00C3EF133004D0867 /* German */ = {isa = PBXFileReference; lastKnownFileType = folder; name = German; path = German.lproj/Help; sourceTree = "<group>"; }; 17C4D3E00C3EF133004D0867 /* German */ = {isa = PBXFileReference; lastKnownFileType = folder; name = German; path = German.lproj/Help; sourceTree = "<group>"; };
17C4D3EF0C3EF135004D0867 /* Greek */ = {isa = PBXFileReference; lastKnownFileType = folder; name = Greek; path = Greek.lproj/Help; sourceTree = "<group>"; }; 17C4D3EF0C3EF135004D0867 /* Greek */ = {isa = PBXFileReference; lastKnownFileType = folder; name = Greek; path = Greek.lproj/Help; sourceTree = "<group>"; };
@ -732,6 +733,8 @@
1770429A0B8BC53600B86321 /* PlaybackController.m */, 1770429A0B8BC53600B86321 /* PlaybackController.m */,
1791FF8D0CB43A2C0070BC5C /* MediaKeysApplication.h */, 1791FF8D0CB43A2C0070BC5C /* MediaKeysApplication.h */,
1791FF8E0CB43A2C0070BC5C /* MediaKeysApplication.m */, 1791FF8E0CB43A2C0070BC5C /* MediaKeysApplication.m */,
17BBE5BA0CD95CFA00258F7A /* InvertedToolbarWindow.h */,
17BBE5BB0CD95CFA00258F7A /* InvertedToolbarWindow.m */,
); );
path = Application; path = Application;
sourceTree = "<group>"; sourceTree = "<group>";
@ -739,10 +742,10 @@
177EBF770B8BC2A70000BC8C /* ThirdParty */ = { 177EBF770B8BC2A70000BC8C /* ThirdParty */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
178BAB920CD4E1B700B33D47 /* GCWindowMenu */,
177EBF780B8BC2A70000BC8C /* AMRemovableColumnsTableView */, 177EBF780B8BC2A70000BC8C /* AMRemovableColumnsTableView */,
177EBF7D0B8BC2A70000BC8C /* AppleRemote */, 177EBF7D0B8BC2A70000BC8C /* AppleRemote */,
177EBF850B8BC2A70000BC8C /* ImageTextCell */, 177EBF850B8BC2A70000BC8C /* ImageTextCell */,
177EBF880B8BC2A70000BC8C /* KFTypeSelectTableView */,
179790DD0C087AB7001D6996 /* OpenURLPanel */, 179790DD0C087AB7001D6996 /* OpenURLPanel */,
177EBF8B0B8BC2A70000BC8C /* NDHotKeys */, 177EBF8B0B8BC2A70000BC8C /* NDHotKeys */,
177EBF900B8BC2A70000BC8C /* UKKQueue */, 177EBF900B8BC2A70000BC8C /* UKKQueue */,
@ -779,15 +782,6 @@
path = ImageTextCell; path = ImageTextCell;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
177EBF880B8BC2A70000BC8C /* KFTypeSelectTableView */ = {
isa = PBXGroup;
children = (
177EBF890B8BC2A70000BC8C /* KFTypeSelectTableView.h */,
177EBF8A0B8BC2A70000BC8C /* KFTypeSelectTableView.m */,
);
path = KFTypeSelectTableView;
sourceTree = "<group>";
};
177EBF8B0B8BC2A70000BC8C /* NDHotKeys */ = { 177EBF8B0B8BC2A70000BC8C /* NDHotKeys */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
@ -847,14 +841,10 @@
1766C8910B912FB4004A7AE4 /* shuffle_on.png */, 1766C8910B912FB4004A7AE4 /* shuffle_on.png */,
177EC02E0B8BC2FF0000BC8C /* add_blue.png */, 177EC02E0B8BC2FF0000BC8C /* add_blue.png */,
177EC02F0B8BC2FF0000BC8C /* add_gray.png */, 177EC02F0B8BC2FF0000BC8C /* add_gray.png */,
177EC0340B8BC2FF0000BC8C /* next_blue.png */, 177EC0350B8BC2FF0000BC8C /* next.png */,
177EC0350B8BC2FF0000BC8C /* next_gray.png */, 177EC0370B8BC2FF0000BC8C /* pause.png */,
177EC0360B8BC2FF0000BC8C /* pause_blue.png */, 177EC0390B8BC2FF0000BC8C /* play.png */,
177EC0370B8BC2FF0000BC8C /* pause_gray.png */, 177EC03B0B8BC2FF0000BC8C /* previous.png */,
177EC0380B8BC2FF0000BC8C /* play_blue.png */,
177EC0390B8BC2FF0000BC8C /* play_gray.png */,
177EC03A0B8BC2FF0000BC8C /* prev_blue.png */,
177EC03B0B8BC2FF0000BC8C /* prev_gray.png */,
177EC03C0B8BC2FF0000BC8C /* remove_blue.png */, 177EC03C0B8BC2FF0000BC8C /* remove_blue.png */,
177EC03D0B8BC2FF0000BC8C /* remove_gray.png */, 177EC03D0B8BC2FF0000BC8C /* remove_gray.png */,
177EC0420B8BC2FF0000BC8C /* volume_high.png */, 177EC0420B8BC2FF0000BC8C /* volume_high.png */,
@ -863,6 +853,19 @@
name = Images; name = Images;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
178BAB920CD4E1B700B33D47 /* GCWindowMenu */ = {
isa = PBXGroup;
children = (
178BAB930CD4E1B700B33D47 /* GCOneShotEffectTimer.h */,
178BAB940CD4E1B700B33D47 /* GCOneShotEffectTimer.m */,
178BAB950CD4E1B700B33D47 /* GCWindowMenu.h */,
178BAB960CD4E1B700B33D47 /* GCWindowMenu.m */,
178BAB970CD4E1B700B33D47 /* PopupButton.h */,
178BAB980CD4E1B700B33D47 /* PopupButton.m */,
);
path = GCWindowMenu;
sourceTree = "<group>";
};
179790DD0C087AB7001D6996 /* OpenURLPanel */ = { 179790DD0C087AB7001D6996 /* OpenURLPanel */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
@ -1494,14 +1497,10 @@
8E7575DB09F31E930080F1EE /* Localizable.strings in Resources */, 8E7575DB09F31E930080F1EE /* Localizable.strings in Resources */,
177EC0440B8BC2FF0000BC8C /* add_blue.png in Resources */, 177EC0440B8BC2FF0000BC8C /* add_blue.png in Resources */,
177EC0450B8BC2FF0000BC8C /* add_gray.png in Resources */, 177EC0450B8BC2FF0000BC8C /* add_gray.png in Resources */,
177EC04A0B8BC2FF0000BC8C /* next_blue.png in Resources */, 177EC04B0B8BC2FF0000BC8C /* next.png in Resources */,
177EC04B0B8BC2FF0000BC8C /* next_gray.png in Resources */, 177EC04D0B8BC2FF0000BC8C /* pause.png in Resources */,
177EC04C0B8BC2FF0000BC8C /* pause_blue.png in Resources */, 177EC04F0B8BC2FF0000BC8C /* play.png in Resources */,
177EC04D0B8BC2FF0000BC8C /* pause_gray.png in Resources */, 177EC0510B8BC2FF0000BC8C /* previous.png in Resources */,
177EC04E0B8BC2FF0000BC8C /* play_blue.png in Resources */,
177EC04F0B8BC2FF0000BC8C /* play_gray.png in Resources */,
177EC0500B8BC2FF0000BC8C /* prev_blue.png in Resources */,
177EC0510B8BC2FF0000BC8C /* prev_gray.png in Resources */,
177EC0520B8BC2FF0000BC8C /* remove_blue.png in Resources */, 177EC0520B8BC2FF0000BC8C /* remove_blue.png in Resources */,
177EC0530B8BC2FF0000BC8C /* remove_gray.png in Resources */, 177EC0530B8BC2FF0000BC8C /* remove_gray.png in Resources */,
177EC0580B8BC2FF0000BC8C /* volume_high.png in Resources */, 177EC0580B8BC2FF0000BC8C /* volume_high.png in Resources */,
@ -1560,7 +1559,6 @@
177EBFA00B8BC2A70000BC8C /* AMRemovableTableColumn.m in Sources */, 177EBFA00B8BC2A70000BC8C /* AMRemovableTableColumn.m in Sources */,
177EBFA20B8BC2A70000BC8C /* AppleRemote.m in Sources */, 177EBFA20B8BC2A70000BC8C /* AppleRemote.m in Sources */,
177EBFA70B8BC2A70000BC8C /* ImageTextCell.m in Sources */, 177EBFA70B8BC2A70000BC8C /* ImageTextCell.m in Sources */,
177EBFA90B8BC2A70000BC8C /* KFTypeSelectTableView.m in Sources */,
177EBFAB0B8BC2A70000BC8C /* NDHotKeyControl.m in Sources */, 177EBFAB0B8BC2A70000BC8C /* NDHotKeyControl.m in Sources */,
177EBFAD0B8BC2A70000BC8C /* NDHotKeyEvent.m in Sources */, 177EBFAD0B8BC2A70000BC8C /* NDHotKeyEvent.m in Sources */,
177EBFAF0B8BC2A70000BC8C /* UKFileWatcher.m in Sources */, 177EBFAF0B8BC2A70000BC8C /* UKFileWatcher.m in Sources */,
@ -1585,6 +1583,10 @@
1769D7D20CC2BFF7003F455B /* FileTreeDataSource.m in Sources */, 1769D7D20CC2BFF7003F455B /* FileTreeDataSource.m in Sources */,
17BA9FBF0CC431890015F804 /* ContainerNode.m in Sources */, 17BA9FBF0CC431890015F804 /* ContainerNode.m in Sources */,
17BA9FC80CC432060015F804 /* ContainedNode.m in Sources */, 17BA9FC80CC432060015F804 /* ContainedNode.m in Sources */,
178BAB990CD4E1B700B33D47 /* GCOneShotEffectTimer.m in Sources */,
178BAB9A0CD4E1B700B33D47 /* GCWindowMenu.m in Sources */,
178BAB9B0CD4E1B700B33D47 /* PopupButton.m in Sources */,
17BBE5BC0CD95CFA00258F7A /* InvertedToolbarWindow.m in Sources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };

Binary file not shown.

View File

@ -10,12 +10,6 @@
#import "FileIconCell.h" #import "FileIconCell.h"
#import "FileTreeDataSource.h" #import "FileTreeDataSource.h"
@interface FileOutlineView (KFTypeSelectTableViewSupport)
- (void)findPrevious:(id)sender;
- (void)findNext:(id)sender;
- (void)kfResetSearch;
@end
@implementation FileOutlineView @implementation FileOutlineView
- (void) awakeFromNib - (void) awakeFromNib
@ -69,18 +63,6 @@
[super keyDown:theEvent]; [super keyDown:theEvent];
[self kfResetSearch]; [self kfResetSearch];
} else if ((pressedChar == '\031') && // backtab
([self respondsToSelector:@selector(findPrevious:)])) {
/* KFTypeSelectTableView supports findPrevious; backtab is added to AIOutlineView as a find previous action
* if KFTypeSelectTableView is being used via posing */
[self findPrevious:self];
} else if ((pressedChar == '\t') &&
([self respondsToSelector:@selector(findNext:)])) {
/* KFTypeSelectTableView supports findNext; tab is added to AIOutlineView as a find next action
* if KFTypeSelectTableView is being used via posing */
[self findNext:self];
} else { } else {
[super keyDown:theEvent]; [super keyDown:theEvent];
} }

View File

@ -1,217 +1,380 @@
{ <?xml version="1.0" encoding="UTF-8"?>
IBClasses = ( <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
{ <plist version="1.0">
CLASS = AMRemovableColumnsTableView; <dict>
LANGUAGE = ObjC; <key>IBClasses</key>
OUTLETS = {obligatoryColumnIdentifiers = id; }; <array>
SUPERCLASS = NSTableView; <dict>
}, <key>CLASS</key>
{ <string>DNDArrayController</string>
CLASS = AMRemovableTableColumn; <key>LANGUAGE</key>
LANGUAGE = ObjC; <string>ObjC</string>
OUTLETS = {mainTableView = AMRemovableColumnsTableView; }; <key>OUTLETS</key>
SUPERCLASS = NSTableColumn; <dict>
}, <key>tableView</key>
{ <string>NSTableView</string>
ACTIONS = { </dict>
delEntries = id; <key>SUPERCLASS</key>
donate = id; <string>NSArrayController</string>
openFiles = id; </dict>
openURL = id; <dict>
savePlaylist = id; <key>CLASS</key>
toggleFileDrawer = id; <string>TrackingSlider</string>
toggleInfoDrawer = id; <key>LANGUAGE</key>
}; <string>ObjC</string>
CLASS = AppController; <key>SUPERCLASS</key>
LANGUAGE = ObjC; <string>NSSlider</string>
OUTLETS = { </dict>
addURLPanel = NSPanel; <dict>
fileButton = NSButton; <key>CLASS</key>
fileDrawer = NSDrawer; <string>FileTreeController</string>
fileOutlineView = FileOutlineView; <key>LANGUAGE</key>
fileTreeController = FileTreeController; <string>ObjC</string>
infoButton = NSButton; <key>OUTLETS</key>
infoDrawer = NSDrawer; <dict>
mainWindow = NSPanel; <key>playlistLoader</key>
nextButton = NSButton; <string>PlaylistLoader</string>
playButton = NSButton; </dict>
playbackController = PlaybackController; <key>SUPERCLASS</key>
playlistController = PlaylistController; <string>NSTreeController</string>
playlistLoader = PlaylistLoader; </dict>
playlistView = PlaylistView; <dict>
prevButton = NSButton; <key>ACTIONS</key>
repeatButton = NSButton; <dict>
showAlbumColumn = NSMenuItem; <key>scrollToCurrentEntry</key>
showArtistColumn = NSMenuItem; <string>id</string>
showGenreColumn = NSMenuItem; <key>shufflePlaylist</key>
showIndexColumn = NSMenuItem; <string>id</string>
showLengthColumn = NSMenuItem; <key>sortByPath</key>
showTitleColumn = NSMenuItem; <string>id</string>
showTrackColumn = NSMenuItem; <key>toggleColumn</key>
showYearColumn = NSMenuItem; <string>id</string>
shuffleButton = NSButton; </dict>
urlComboBox = NSComboBox; <key>CLASS</key>
}; <string>PlaylistView</string>
SUPERCLASS = NSObject; <key>LANGUAGE</key>
}, <string>ObjC</string>
{CLASS = ClickField; LANGUAGE = ObjC; SUPERCLASS = NSTextField; }, <key>OUTLETS</key>
{ <dict>
CLASS = DNDArrayController; <key>playbackController</key>
LANGUAGE = ObjC; <string>PlaybackController</string>
OUTLETS = {tableView = NSTableView; }; <key>playlistController</key>
SUPERCLASS = NSArrayController; <string>PlaylistController</string>
}, </dict>
{CLASS = DragScrollView; LANGUAGE = ObjC; SUPERCLASS = NSScrollView; }, <key>SUPERCLASS</key>
{ <string>AMRemovableColumnsTableView</string>
ACTIONS = {cancel = id; openFeedbackWindow = id; sendFeedback = id; }; </dict>
CLASS = FeedbackController; <dict>
LANGUAGE = ObjC; <key>CLASS</key>
OUTLETS = { <string>AMRemovableColumnsTableView</string>
feedbackWindow = NSWindow; <key>LANGUAGE</key>
fromView = NSTextField; <string>ObjC</string>
messageView = NSTextView; <key>OUTLETS</key>
sendingIndicator = NSProgressIndicator; <dict>
subjectView = NSTextField; <key>obligatoryColumnIdentifiers</key>
}; <string>id</string>
SUPERCLASS = NSObject; </dict>
}, <key>SUPERCLASS</key>
{ <string>NSTableView</string>
CLASS = FileOutlineView; </dict>
LANGUAGE = ObjC; <dict>
OUTLETS = {fileDrawer = NSDrawer; }; <key>CLASS</key>
SUPERCLASS = NSOutlineView; <string>PlaylistLoader</string>
}, <key>LANGUAGE</key>
{ <string>ObjC</string>
CLASS = FileTreeController; <key>OUTLETS</key>
LANGUAGE = ObjC; <dict>
OUTLETS = {playlistLoader = PlaylistLoader; }; <key>playlistController</key>
SUPERCLASS = NSTreeController; <string>PlaylistController</string>
}, </dict>
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, <key>SUPERCLASS</key>
{CLASS = InfoController; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, <string>NSObject</string>
{CLASS = InfoView; LANGUAGE = ObjC; SUPERCLASS = NSScrollView; }, </dict>
{CLASS = NSSegmentedControl; LANGUAGE = ObjC; SUPERCLASS = NSControl; }, <dict>
{CLASS = PathNode; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, <key>ACTIONS</key>
{ <dict>
ACTIONS = { <key>showPrefs</key>
changeVolume = id; <string>id</string>
next = id; </dict>
pause = id; <key>CLASS</key>
pauseResume = id; <string>PreferencesController</string>
play = id; <key>LANGUAGE</key>
playPauseResume = id; <string>ObjC</string>
prev = id; <key>SUPERCLASS</key>
resume = id; <string>NSObject</string>
seek = id; </dict>
stop = id; <dict>
toggleShowTimeRemaining = id; <key>CLASS</key>
volumeDown = id; <string>FirstResponder</string>
volumeUp = id; <key>LANGUAGE</key>
}; <string>ObjC</string>
CLASS = PlaybackController; <key>SUPERCLASS</key>
LANGUAGE = ObjC; <string>NSObject</string>
OUTLETS = { </dict>
bitrateField = NSTextField; <dict>
lengthField = NSTextField; <key>ACTIONS</key>
outputDevices = NSArrayController; <dict>
playButton = NSButton; <key>changeVolume</key>
playlistController = PlaylistController; <string>id</string>
playlistView = PlaylistView; <key>next</key>
positionSlider = TrackingSlider; <string>id</string>
timeField = NSTextField; <key>pause</key>
volumeSlider = NSSlider; <string>id</string>
}; <key>pauseResume</key>
SUPERCLASS = NSObject; <string>id</string>
}, <key>play</key>
{ <string>id</string>
ACTIONS = { <key>playPauseResume</key>
clear = id; <string>id</string>
clearFilterPredicate = id; <key>prev</key>
showEntryInFinder = id; <string>id</string>
takeRepeatFromObject = id; <key>resume</key>
takeShuffleFromObject = id; <string>id</string>
}; <key>seek</key>
CLASS = PlaylistController; <string>id</string>
LANGUAGE = ObjC; <key>stop</key>
OUTLETS = {playlistLoader = PlaylistLoader; }; <string>id</string>
SUPERCLASS = DNDArrayController; <key>toggleShowTimeRemaining</key>
}, <string>id</string>
{CLASS = PlaylistEntry; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, <key>volumeDown</key>
{ <string>id</string>
CLASS = PlaylistLoader; <key>volumeUp</key>
LANGUAGE = ObjC; <string>id</string>
OUTLETS = {playlistController = PlaylistController; }; </dict>
SUPERCLASS = NSObject; <key>CLASS</key>
}, <string>PlaybackController</string>
{ <key>LANGUAGE</key>
ACTIONS = { <string>ObjC</string>
scrollToCurrentEntry = id; <key>OUTLETS</key>
shufflePlaylist = id; <dict>
sortByPath = id; <key>bitrateField</key>
toggleColumn = id; <string>NSTextField</string>
}; <key>lengthField</key>
CLASS = PlaylistView; <string>NSTextField</string>
LANGUAGE = ObjC; <key>outputDevices</key>
OUTLETS = { <string>NSArrayController</string>
playbackController = PlaybackController; <key>playButton</key>
playlistController = PlaylistController; <string>NSButton</string>
}; <key>playlistController</key>
SUPERCLASS = AMRemovableColumnsTableView; <string>PlaylistController</string>
}, <key>playlistView</key>
{ <string>PlaylistView</string>
ACTIONS = {showPrefs = id; }; <key>positionSlider</key>
CLASS = PreferencesController; <string>TrackingSlider</string>
LANGUAGE = ObjC; <key>timeField</key>
SUPERCLASS = NSObject; <string>NSTextField</string>
}, <key>volumeSlider</key>
{ <string>NSSlider</string>
ACTIONS = {checkForUpdates = id; }; </dict>
CLASS = SUUpdater; <key>SUPERCLASS</key>
LANGUAGE = ObjC; <string>NSObject</string>
SUPERCLASS = NSObject; </dict>
}, <dict>
{CLASS = SecondsFormatter; LANGUAGE = ObjC; SUPERCLASS = NSFormatter; }, <key>CLASS</key>
{ <string>NSObject</string>
ACTIONS = { <key>LANGUAGE</key>
changeVolume = id; <string>ObjC</string>
next = id; </dict>
pause = id; <dict>
pauseResume = id; <key>CLASS</key>
play = id; <string>ClickField</string>
playPauseResume = id; <key>LANGUAGE</key>
prev = id; <string>ObjC</string>
resume = id; <key>SUPERCLASS</key>
seek = id; <string>NSTextField</string>
stop = id; </dict>
toggleShowTimeRemaining = id; <dict>
}; <key>ACTIONS</key>
CLASS = SoundController; <dict>
LANGUAGE = ObjC; <key>cancel</key>
OUTLETS = { <string>id</string>
bitrateField = NSTextField; <key>openFeedbackWindow</key>
lengthField = NSTextField; <string>id</string>
playButton = NSButton; <key>sendFeedback</key>
playlistController = PlaylistController; <string>id</string>
playlistView = PlaylistView; </dict>
positionSlider = TrackingSlider; <key>CLASS</key>
timeField = NSTextField; <string>FeedbackController</string>
}; <key>LANGUAGE</key>
SUPERCLASS = NSObject; <string>ObjC</string>
}, <key>OUTLETS</key>
{CLASS = TrackingSlider; LANGUAGE = ObjC; SUPERCLASS = NSSlider; }, <dict>
{ <key>feedbackWindow</key>
ACTIONS = {okay = id; openUpdateWindow = id; takeBoolFromObject = id; }; <string>NSWindow</string>
CLASS = UpdateController; <key>fromView</key>
LANGUAGE = ObjC; <string>NSTextField</string>
OUTLETS = { <key>messageView</key>
autoCheckButton = NSButton; <string>NSTextView</string>
checkingIndicator = NSProgressIndicator; <key>sendingIndicator</key>
okayButton = NSButton; <string>NSProgressIndicator</string>
statusView = NSTextField; <key>subjectView</key>
updateWindow = NSWindow; <string>NSTextField</string>
}; </dict>
SUPERCLASS = NSObject; <key>SUPERCLASS</key>
} <string>NSObject</string>
); </dict>
IBVersion = 1; <dict>
} <key>ACTIONS</key>
<dict>
<key>checkForUpdates</key>
<string>id</string>
</dict>
<key>CLASS</key>
<string>SUUpdater</string>
<key>LANGUAGE</key>
<string>ObjC</string>
<key>SUPERCLASS</key>
<string>NSObject</string>
</dict>
<dict>
<key>ACTIONS</key>
<dict>
<key>clear</key>
<string>id</string>
<key>clearFilterPredicate</key>
<string>id</string>
<key>showEntryInFinder</key>
<string>id</string>
<key>takeRepeatFromObject</key>
<string>id</string>
<key>takeShuffleFromObject</key>
<string>id</string>
</dict>
<key>CLASS</key>
<string>PlaylistController</string>
<key>LANGUAGE</key>
<string>ObjC</string>
<key>OUTLETS</key>
<dict>
<key>playlistLoader</key>
<string>PlaylistLoader</string>
</dict>
<key>SUPERCLASS</key>
<string>DNDArrayController</string>
</dict>
<dict>
<key>CLASS</key>
<string>FileOutlineView</string>
<key>LANGUAGE</key>
<string>ObjC</string>
<key>OUTLETS</key>
<dict>
<key>fileDrawer</key>
<string>NSDrawer</string>
</dict>
<key>SUPERCLASS</key>
<string>NSOutlineView</string>
</dict>
<dict>
<key>CLASS</key>
<string>FileTreeDataSource</string>
<key>LANGUAGE</key>
<string>ObjC</string>
<key>OUTLETS</key>
<dict>
<key>outlineView</key>
<string>NSOutlineView</string>
</dict>
<key>SUPERCLASS</key>
<string>NSObject</string>
</dict>
<dict>
<key>CLASS</key>
<string>AMRemovableTableColumn</string>
<key>LANGUAGE</key>
<string>ObjC</string>
<key>OUTLETS</key>
<dict>
<key>mainTableView</key>
<string>AMRemovableColumnsTableView</string>
</dict>
<key>SUPERCLASS</key>
<string>NSTableColumn</string>
</dict>
<dict>
<key>ACTIONS</key>
<dict>
<key>delEntries</key>
<string>id</string>
<key>donate</key>
<string>id</string>
<key>openFiles</key>
<string>id</string>
<key>openURL</key>
<string>id</string>
<key>savePlaylist</key>
<string>id</string>
<key>toggleFileDrawer</key>
<string>id</string>
<key>toggleInfoDrawer</key>
<string>id</string>
</dict>
<key>CLASS</key>
<string>AppController</string>
<key>LANGUAGE</key>
<string>ObjC</string>
<key>OUTLETS</key>
<dict>
<key>addURLPanel</key>
<string>NSPanel</string>
<key>fileButton</key>
<string>NSButton</string>
<key>fileDrawer</key>
<string>NSDrawer</string>
<key>fileOutlineView</key>
<string>FileOutlineView</string>
<key>fileTreeController</key>
<string>FileTreeController</string>
<key>fileTreeDataSource</key>
<string>FileTreeDataSource</string>
<key>infoButton</key>
<string>NSButton</string>
<key>infoDrawer</key>
<string>NSDrawer</string>
<key>mainWindow</key>
<string>NSPanel</string>
<key>nextButton</key>
<string>NSButton</string>
<key>playButton</key>
<string>NSButton</string>
<key>playbackController</key>
<string>PlaybackController</string>
<key>playlistController</key>
<string>PlaylistController</string>
<key>playlistLoader</key>
<string>PlaylistLoader</string>
<key>playlistView</key>
<string>PlaylistView</string>
<key>prevButton</key>
<string>NSButton</string>
<key>repeatButton</key>
<string>NSButton</string>
<key>showAlbumColumn</key>
<string>NSMenuItem</string>
<key>showArtistColumn</key>
<string>NSMenuItem</string>
<key>showGenreColumn</key>
<string>NSMenuItem</string>
<key>showIndexColumn</key>
<string>NSMenuItem</string>
<key>showLengthColumn</key>
<string>NSMenuItem</string>
<key>showTitleColumn</key>
<string>NSMenuItem</string>
<key>showTrackColumn</key>
<string>NSMenuItem</string>
<key>showYearColumn</key>
<string>NSMenuItem</string>
<key>shuffleButton</key>
<string>NSButton</string>
<key>urlComboBox</key>
<string>NSComboBox</string>
</dict>
<key>SUPERCLASS</key>
<string>NSObject</string>
</dict>
</array>
<key>IBVersion</key>
<string>1</string>
</dict>
</plist>

View File

@ -1,45 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>IBDocumentLocation</key>
<string>274 244 639 388 0 0 1680 1028 </string>
<key>IBEditorPositions</key>
<dict>
<key>1063</key>
<string>549 810 136 68 0 0 1440 878 </string>
<key>1156</key>
<string>633 402 241 366 0 0 1440 878 </string>
<key>1324</key>
<string>664 542 137 182 0 0 1440 878 </string>
<key>29</key>
<string>157 976 390 44 0 0 1680 1028 </string>
<key>463</key>
<string>669 640 341 145 0 0 1680 1028 </string>
<key>513</key>
<string>320 525 131 168 0 0 1440 878 </string>
</dict>
<key>IBFramework Version</key> <key>IBFramework Version</key>
<string>446.1</string> <string>629</string>
<key>IBLockedObjects</key> <key>IBLastKnownRelativeProjectPath</key>
<array> <string>../../Cog.xcodeproj</string>
<integer>484</integer>
<integer>606</integer>
</array>
<key>IBLockedTabItems</key>
<array>
<integer>564</integer>
</array>
<key>IBOldestOS</key> <key>IBOldestOS</key>
<integer>4</integer> <integer>5</integer>
<key>IBOpenObjects</key> <key>IBOpenObjects</key>
<array> <array/>
<integer>463</integer>
<integer>21</integer>
<integer>268</integer>
<integer>29</integer>
</array>
<key>IBSystem Version</key> <key>IBSystem Version</key>
<string>8R2218</string> <string>9A581</string>
<key>targetFramework</key>
<string>IBCocoaFramework</string>
</dict> </dict>
</plist> </plist>

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 688 B

After

Width:  |  Height:  |  Size: 228 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 664 B

After

Width:  |  Height:  |  Size: 310 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 413 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 209 B

View File

@ -71,6 +71,8 @@
- (void)setSampleRate:(NSNumber *)s; - (void)setSampleRate:(NSNumber *)s;
- (NSNumber *)sampleRate; - (NSNumber *)sampleRate;
- (NSString *)display;
- (void)setSeekable:(NSNumber *)s; - (void)setSeekable:(NSNumber *)s;
- (NSNumber *)seekable; - (NSNumber *)seekable;

View File

@ -12,6 +12,10 @@
@implementation PlaylistEntry @implementation PlaylistEntry
+ (void)initialize {
[self setKeys:[NSArray arrayWithObjects:@"artist",@"title",nil] triggerChangeNotificationsForDependentKey:@"display"];
}
- (id)init - (id)init
{ {
self = [super init]; self = [super init];
@ -271,6 +275,16 @@
return sampleRate; return sampleRate;
} }
- (NSString *)display
{
if ([[self artist] isEqualToString:@""]) {
return title;
}
else {
return [NSString stringWithFormat:@"%@ - %@", artist, title];
}
}
- (void)setSeekable:(NSNumber *)s - (void)setSeekable:(NSNumber *)s
{ {
[s retain]; [s retain];