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 "KFTypeSelectTableView.h""
#import "PlaybackController.h"
#import "PlaylistController.h"
#import "PlaylistView.h"
@ -18,12 +17,7 @@
if (self)
{
[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 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 NSSlider *volumeSlider;
IBOutlet NSTextField *timeField;
IBOutlet NSTextField *lengthField;
IBOutlet NSTextField *bitrateField;
IBOutlet NSButton *playButton;
IBOutlet NSSegmentedControl *playbackButtons;
IBOutlet NSArrayController *outputDevices;
@ -48,6 +46,8 @@
- (IBAction)playPauseResume:(id)sender;
- (IBAction)pauseResume:(id)sender;
- (IBAction)playbackButtonClick:(id)sender;
- (IBAction)play:(id)sender;
- (IBAction)pause:(id)sender;
- (IBAction)resume:(id)sender;

View File

@ -52,7 +52,7 @@
- (void)awakeFromNib
{
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];
}
@ -109,6 +109,27 @@
[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
{
if ([playlistView selectedRow] == -1)
@ -175,21 +196,15 @@
- (void)changePlayButtonImage:(NSString *)name
{
NSImage *img = [NSImage imageNamed:[name stringByAppendingString:@"_gray"]];
NSImage *alt = [NSImage imageNamed:[name stringByAppendingString:@"_blue"]];
[img retain];
[alt retain];
NSImage *img = [NSImage imageNamed:name];
// [img retain];
if (img == nil)
{
NSLog(@"Error loading image!");
}
if (alt == nil)
{
NSLog(@"Error loading alt image...");
}
[playButton setImage:img];
[playButton setAlternateImage:alt];
[playbackButtons setImage:img forSegment:1];
}
- (IBAction)changeVolume:(id)sender
@ -197,7 +212,7 @@
double percent;
//Approximated log
percent = (float)[sender doubleValue]/[sender maxValue];
percent = (float)[sender doubleValue]/100.0;
percent = percent * percent * percent * percent;
//gravitates at the 100% mark
@ -206,10 +221,10 @@
{
percent = 0.5;
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];
}
@ -220,10 +235,10 @@
[volumeSlider setDoubleValue:([volumeSlider doubleValue] - 5)];
percent = (float)[volumeSlider doubleValue]/[volumeSlider maxValue];
percent = (float)[volumeSlider doubleValue]/100.0;
percent = percent * percent * percent * percent;
currentVolume = percent * [volumeSlider maxValue];
currentVolume = percent * 100.0;
[audioPlayer setVolume:currentVolume];
}

View File

@ -34,7 +34,6 @@
177EBFA00B8BC2A70000BC8C /* AMRemovableTableColumn.m in Sources */ = {isa = PBXBuildFile; fileRef = 177EBF7C0B8BC2A70000BC8C /* AMRemovableTableColumn.m */; };
177EBFA20B8BC2A70000BC8C /* AppleRemote.m in Sources */ = {isa = PBXBuildFile; fileRef = 177EBF7F0B8BC2A70000BC8C /* AppleRemote.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 */; };
177EBFAD0B8BC2A70000BC8C /* NDHotKeyEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 177EBF8F0B8BC2A70000BC8C /* NDHotKeyEvent.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 */; };
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 */; };
177EC04A0B8BC2FF0000BC8C /* next_blue.png in Resources */ = {isa = PBXBuildFile; fileRef = 177EC0340B8BC2FF0000BC8C /* next_blue.png */; };
177EC04B0B8BC2FF0000BC8C /* next_gray.png in Resources */ = {isa = PBXBuildFile; fileRef = 177EC0350B8BC2FF0000BC8C /* next_gray.png */; };
177EC04C0B8BC2FF0000BC8C /* pause_blue.png in Resources */ = {isa = PBXBuildFile; fileRef = 177EC0360B8BC2FF0000BC8C /* pause_blue.png */; };
177EC04D0B8BC2FF0000BC8C /* pause_gray.png in Resources */ = {isa = PBXBuildFile; fileRef = 177EC0370B8BC2FF0000BC8C /* pause_gray.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 */; };
177EC04B0B8BC2FF0000BC8C /* next.png in Resources */ = {isa = PBXBuildFile; fileRef = 177EC0350B8BC2FF0000BC8C /* next.png */; };
177EC04D0B8BC2FF0000BC8C /* pause.png in Resources */ = {isa = PBXBuildFile; fileRef = 177EC0370B8BC2FF0000BC8C /* pause.png */; };
177EC04F0B8BC2FF0000BC8C /* play.png in Resources */ = {isa = PBXBuildFile; fileRef = 177EC0390B8BC2FF0000BC8C /* play.png */; };
177EC0510B8BC2FF0000BC8C /* previous.png in Resources */ = {isa = PBXBuildFile; fileRef = 177EC03B0B8BC2FF0000BC8C /* previous.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 */; };
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 */; };
17818A9A0C0B27AC001C4916 /* wav.icns in Resources */ = {isa = PBXBuildFile; fileRef = 17818A930C0B27AC001C4916 /* wav.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 */; };
1791005F0CB44D6D0070BC5C /* Cog.scriptTerminology in Resources */ = {isa = PBXBuildFile; fileRef = 1791005D0CB44D6D0070BC5C /* Cog.scriptTerminology */; };
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 */; };
17BB5CFB0B8A86350009ACB1 /* CoreAudioKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 17BB5CF80B8A86350009ACB1 /* CoreAudioKit.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 */; };
17C809920C3BD206005707C4 /* Vorbis.bundle in CopyFiles */ = {isa = PBXBuildFile; fileRef = 17C808BF0C3BD1D2005707C4 /* Vorbis.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>"; };
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>"; };
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>"; };
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>"; };
@ -530,14 +527,10 @@
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>"; };
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_gray.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = next_gray.png; path = Images/next_gray.png; sourceTree = "<group>"; };
177EC0360B8BC2FF0000BC8C /* pause_blue.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = pause_blue.png; path = Images/pause_blue.png; sourceTree = "<group>"; };
177EC0370B8BC2FF0000BC8C /* pause_gray.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = pause_gray.png; path = Images/pause_gray.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>"; };
177EC0350B8BC2FF0000BC8C /* next.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = next.png; path = Images/next.png; sourceTree = "<group>"; };
177EC0370B8BC2FF0000BC8C /* pause.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = pause.png; path = Images/pause.png; sourceTree = "<group>"; };
177EC0390B8BC2FF0000BC8C /* play.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = play.png; path = Images/play.png; sourceTree = "<group>"; };
177EC03B0B8BC2FF0000BC8C /* previous.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = previous.png; path = Images/previous.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>"; };
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>"; };
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>"; };
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>"; };
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>"; };
@ -565,6 +564,8 @@
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>"; };
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>"; };
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>"; };
@ -732,6 +733,8 @@
1770429A0B8BC53600B86321 /* PlaybackController.m */,
1791FF8D0CB43A2C0070BC5C /* MediaKeysApplication.h */,
1791FF8E0CB43A2C0070BC5C /* MediaKeysApplication.m */,
17BBE5BA0CD95CFA00258F7A /* InvertedToolbarWindow.h */,
17BBE5BB0CD95CFA00258F7A /* InvertedToolbarWindow.m */,
);
path = Application;
sourceTree = "<group>";
@ -739,10 +742,10 @@
177EBF770B8BC2A70000BC8C /* ThirdParty */ = {
isa = PBXGroup;
children = (
178BAB920CD4E1B700B33D47 /* GCWindowMenu */,
177EBF780B8BC2A70000BC8C /* AMRemovableColumnsTableView */,
177EBF7D0B8BC2A70000BC8C /* AppleRemote */,
177EBF850B8BC2A70000BC8C /* ImageTextCell */,
177EBF880B8BC2A70000BC8C /* KFTypeSelectTableView */,
179790DD0C087AB7001D6996 /* OpenURLPanel */,
177EBF8B0B8BC2A70000BC8C /* NDHotKeys */,
177EBF900B8BC2A70000BC8C /* UKKQueue */,
@ -779,15 +782,6 @@
path = ImageTextCell;
sourceTree = "<group>";
};
177EBF880B8BC2A70000BC8C /* KFTypeSelectTableView */ = {
isa = PBXGroup;
children = (
177EBF890B8BC2A70000BC8C /* KFTypeSelectTableView.h */,
177EBF8A0B8BC2A70000BC8C /* KFTypeSelectTableView.m */,
);
path = KFTypeSelectTableView;
sourceTree = "<group>";
};
177EBF8B0B8BC2A70000BC8C /* NDHotKeys */ = {
isa = PBXGroup;
children = (
@ -847,14 +841,10 @@
1766C8910B912FB4004A7AE4 /* shuffle_on.png */,
177EC02E0B8BC2FF0000BC8C /* add_blue.png */,
177EC02F0B8BC2FF0000BC8C /* add_gray.png */,
177EC0340B8BC2FF0000BC8C /* next_blue.png */,
177EC0350B8BC2FF0000BC8C /* next_gray.png */,
177EC0360B8BC2FF0000BC8C /* pause_blue.png */,
177EC0370B8BC2FF0000BC8C /* pause_gray.png */,
177EC0380B8BC2FF0000BC8C /* play_blue.png */,
177EC0390B8BC2FF0000BC8C /* play_gray.png */,
177EC03A0B8BC2FF0000BC8C /* prev_blue.png */,
177EC03B0B8BC2FF0000BC8C /* prev_gray.png */,
177EC0350B8BC2FF0000BC8C /* next.png */,
177EC0370B8BC2FF0000BC8C /* pause.png */,
177EC0390B8BC2FF0000BC8C /* play.png */,
177EC03B0B8BC2FF0000BC8C /* previous.png */,
177EC03C0B8BC2FF0000BC8C /* remove_blue.png */,
177EC03D0B8BC2FF0000BC8C /* remove_gray.png */,
177EC0420B8BC2FF0000BC8C /* volume_high.png */,
@ -863,6 +853,19 @@
name = Images;
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 */ = {
isa = PBXGroup;
children = (
@ -1494,14 +1497,10 @@
8E7575DB09F31E930080F1EE /* Localizable.strings in Resources */,
177EC0440B8BC2FF0000BC8C /* add_blue.png in Resources */,
177EC0450B8BC2FF0000BC8C /* add_gray.png in Resources */,
177EC04A0B8BC2FF0000BC8C /* next_blue.png in Resources */,
177EC04B0B8BC2FF0000BC8C /* next_gray.png in Resources */,
177EC04C0B8BC2FF0000BC8C /* pause_blue.png in Resources */,
177EC04D0B8BC2FF0000BC8C /* pause_gray.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 */,
177EC04B0B8BC2FF0000BC8C /* next.png in Resources */,
177EC04D0B8BC2FF0000BC8C /* pause.png in Resources */,
177EC04F0B8BC2FF0000BC8C /* play.png in Resources */,
177EC0510B8BC2FF0000BC8C /* previous.png in Resources */,
177EC0520B8BC2FF0000BC8C /* remove_blue.png in Resources */,
177EC0530B8BC2FF0000BC8C /* remove_gray.png in Resources */,
177EC0580B8BC2FF0000BC8C /* volume_high.png in Resources */,
@ -1560,7 +1559,6 @@
177EBFA00B8BC2A70000BC8C /* AMRemovableTableColumn.m in Sources */,
177EBFA20B8BC2A70000BC8C /* AppleRemote.m in Sources */,
177EBFA70B8BC2A70000BC8C /* ImageTextCell.m in Sources */,
177EBFA90B8BC2A70000BC8C /* KFTypeSelectTableView.m in Sources */,
177EBFAB0B8BC2A70000BC8C /* NDHotKeyControl.m in Sources */,
177EBFAD0B8BC2A70000BC8C /* NDHotKeyEvent.m in Sources */,
177EBFAF0B8BC2A70000BC8C /* UKFileWatcher.m in Sources */,
@ -1585,6 +1583,10 @@
1769D7D20CC2BFF7003F455B /* FileTreeDataSource.m in Sources */,
17BA9FBF0CC431890015F804 /* ContainerNode.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;
};

Binary file not shown.

View File

@ -10,12 +10,6 @@
#import "FileIconCell.h"
#import "FileTreeDataSource.h"
@interface FileOutlineView (KFTypeSelectTableViewSupport)
- (void)findPrevious:(id)sender;
- (void)findNext:(id)sender;
- (void)kfResetSearch;
@end
@implementation FileOutlineView
- (void) awakeFromNib
@ -69,18 +63,6 @@
[super keyDown:theEvent];
[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 {
[super keyDown:theEvent];
}

View File

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

View File

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