92 lines
2.5 KiB
Objective-C
92 lines
2.5 KiB
Objective-C
//
|
|
// FileOutlineView.m
|
|
// BindTest
|
|
//
|
|
// Created by Vincent Spader on 8/20/06.
|
|
// Copyright 2006 Vincent Spader. All rights reserved.
|
|
//
|
|
|
|
#import "FileOutlineView.h"
|
|
#import "FileIconCell.h"
|
|
|
|
@interface FileOutlineView (KFTypeSelectTableViewSupport)
|
|
- (void)findPrevious:(id)sender;
|
|
- (void)findNext:(id)sender;
|
|
@end
|
|
|
|
@implementation FileOutlineView
|
|
|
|
- (void) awakeFromNib
|
|
{
|
|
NSEnumerator *e = [[self tableColumns] objectEnumerator];
|
|
id c;
|
|
while ((c = [e nextObject]))
|
|
{
|
|
// id headerCell = [[ImageTextCell alloc] init];
|
|
id dataCell = [[FileIconCell alloc] init];
|
|
|
|
[dataCell setLineBreakMode:NSLineBreakByTruncatingTail];
|
|
// [c setHeaderCell: headerCell];
|
|
[c setDataCell: dataCell];
|
|
}
|
|
}
|
|
|
|
|
|
- (BOOL)acceptsFirstResponder
|
|
{
|
|
return YES;
|
|
}
|
|
|
|
- (BOOL)resignFirstResponder
|
|
{
|
|
return YES;
|
|
}
|
|
|
|
|
|
//Navigate outline view with the keyboard, send select actions to delegate
|
|
- (void)keyDown:(NSEvent *)theEvent
|
|
{
|
|
if (!([theEvent modifierFlags] & NSCommandKeyMask)) {
|
|
|
|
NSString *charString = [theEvent charactersIgnoringModifiers];
|
|
unichar pressedChar = 0;
|
|
|
|
//Get the pressed character
|
|
if ([charString length] == 1) pressedChar = [charString characterAtIndex:0];
|
|
|
|
if (pressedChar == NSDeleteFunctionKey || pressedChar == NSBackspaceCharacter || pressedChar == NSDeleteCharacter) { //Delete
|
|
//As Weird-al said....EAT IT JUST EAT IT!!!
|
|
[self kfResetSearch];
|
|
} else if (pressedChar == NSCarriageReturnCharacter || pressedChar == NSEnterCharacter) { //Enter or return
|
|
//Add songs to list
|
|
[[self delegate] addSelectedToPlaylist];
|
|
|
|
[fileDrawer close];
|
|
} else if (pressedChar == 0x1b) {//Escape
|
|
[fileDrawer close];
|
|
} else if (pressedChar == NSLeftArrowFunctionKey || pressedChar == NSRightArrowFunctionKey) { //left or right
|
|
[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];
|
|
}
|
|
} else {
|
|
[super keyDown:theEvent];
|
|
}
|
|
}
|
|
|
|
@end
|