Remove outdated and unused 3rd Party code.
parent
204d63923e
commit
3d489aeeb9
|
@ -1,39 +0,0 @@
|
||||||
//
|
|
||||||
// AMRemovableColumnsTableView.h
|
|
||||||
// HebX
|
|
||||||
//
|
|
||||||
// Created by Andreas on 26.08.05.
|
|
||||||
// Copyright 2005 Andreas Mayer. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
|
||||||
|
|
||||||
|
|
||||||
@interface AMRemovableColumnsTableView : NSTableView {
|
|
||||||
IBOutlet id obligatoryColumnIdentifiers; // NSArray
|
|
||||||
NSSet *allTableColumns;
|
|
||||||
NSSet *obligatoryTableColumns;
|
|
||||||
BOOL am_respondsToControlDidBecomeFirstResponder;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSSet *)allTableColumns;
|
|
||||||
|
|
||||||
- (NSSet *)visibleTableColumns;
|
|
||||||
|
|
||||||
- (NSSet *)hiddenTableColumns;
|
|
||||||
|
|
||||||
// obligatory columns are automatically retrieved from obligatoryColumnIdentifiers if not nil;
|
|
||||||
// use setter otherwise
|
|
||||||
- (NSSet *)obligatoryTableColumns;
|
|
||||||
- (void)setObligatoryTableColumns:(NSSet *)newObligatoryTableColumns;
|
|
||||||
|
|
||||||
- (BOOL)isObligatoryColumn:(NSTableColumn *)column;
|
|
||||||
|
|
||||||
// use these to show and hide columns:
|
|
||||||
|
|
||||||
- (BOOL)hideTableColumn:(NSTableColumn *)column;
|
|
||||||
|
|
||||||
- (BOOL)showTableColumn:(NSTableColumn *)column;
|
|
||||||
|
|
||||||
|
|
||||||
@end
|
|
|
@ -1,299 +0,0 @@
|
||||||
//
|
|
||||||
// AMRemovableColumnsTableView.m
|
|
||||||
// HebX
|
|
||||||
//
|
|
||||||
// Created by Andreas on 26.08.05.
|
|
||||||
// Copyright 2005 Andreas Mayer. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "AMRemovableColumnsTableView.h"
|
|
||||||
#import "AMRemovableTableColumn.h"
|
|
||||||
|
|
||||||
|
|
||||||
@interface NSTableView (ApplePrivate)
|
|
||||||
- (void)_readPersistentTableColumns;
|
|
||||||
- (void)_writePersistentTableColumns;
|
|
||||||
@end
|
|
||||||
|
|
||||||
|
|
||||||
@interface AMRemovableColumnsTableView (Private)
|
|
||||||
- (NSString *)columnVisibilitySaveName;
|
|
||||||
- (void)setAllTableColumns:(NSSet *)newAllTableColumns;
|
|
||||||
- (void)am_hideTableColumn:(NSTableColumn *)column;
|
|
||||||
- (void)am_showTableColumn:(NSTableColumn *)column;
|
|
||||||
- (void)readPersistentTableColumns;
|
|
||||||
- (void)writePersistentTableColumns;
|
|
||||||
- (void)am_readPersistentTableColumns;
|
|
||||||
- (void)am_writePersistentTableColumns;
|
|
||||||
@end
|
|
||||||
|
|
||||||
|
|
||||||
@implementation AMRemovableColumnsTableView
|
|
||||||
|
|
||||||
static BOOL AMRemovableColumnsTableView_readPersistentTableColumnsIsPublic = NO;
|
|
||||||
|
|
||||||
+ (void)initialize
|
|
||||||
{
|
|
||||||
// should the framework support readPersistentTableColumns/writePersistentTableColumns, use the public methods
|
|
||||||
AMRemovableColumnsTableView_readPersistentTableColumnsIsPublic = [NSTableColumn instancesRespondToSelector:@selector(readPersistentTableColumns)];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)awakeFromNib
|
|
||||||
{
|
|
||||||
am_respondsToControlDidBecomeFirstResponder = [[self delegate] respondsToSelector:@selector(controlDidBecomeFirstResponder:)];
|
|
||||||
|
|
||||||
// set main table view for columns
|
|
||||||
NSEnumerator *enumerator = [[self tableColumns] objectEnumerator];
|
|
||||||
AMRemovableTableColumn *column;
|
|
||||||
while (column = [enumerator nextObject]) {
|
|
||||||
[column setMainTableView:self];
|
|
||||||
}
|
|
||||||
|
|
||||||
// if there's an array of the names of obligatory columns, update the obligatoryTableColumns set
|
|
||||||
if (obligatoryColumnIdentifiers) {
|
|
||||||
NSMutableSet *columns = (NSMutableSet *)[NSMutableSet setWithSet:[self allTableColumns]];
|
|
||||||
NSEnumerator *enumerator = [columns objectEnumerator];
|
|
||||||
NSTableColumn *column;
|
|
||||||
while (column = [enumerator nextObject]) {
|
|
||||||
if (![(NSArray *)obligatoryColumnIdentifiers containsObject:[column identifier]]) {
|
|
||||||
[columns removeObject:column];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
[self setObligatoryTableColumns:columns];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)dealloc
|
|
||||||
{
|
|
||||||
[obligatoryColumnIdentifiers release];
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
- (NSSet *)allTableColumns
|
|
||||||
{
|
|
||||||
return allTableColumns;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)setAllTableColumns:(NSSet *)newAllTableColumns
|
|
||||||
{
|
|
||||||
if (allTableColumns != newAllTableColumns) {
|
|
||||||
[newAllTableColumns retain];
|
|
||||||
[allTableColumns release];
|
|
||||||
allTableColumns = newAllTableColumns;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSSet *)visibleTableColumns
|
|
||||||
{
|
|
||||||
NSMutableSet *result = [NSMutableSet set];
|
|
||||||
[result addObjectsFromArray:[self tableColumns]];
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSSet *)hiddenTableColumns
|
|
||||||
{
|
|
||||||
NSMutableSet *result = [NSMutableSet setWithSet:[self allTableColumns]];
|
|
||||||
[result minusSet:[self visibleTableColumns]];
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSSet *)obligatoryTableColumns
|
|
||||||
{
|
|
||||||
return obligatoryTableColumns;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)setObligatoryTableColumns:(NSSet *)newObligatoryTableColumns
|
|
||||||
{
|
|
||||||
if (obligatoryTableColumns != newObligatoryTableColumns) {
|
|
||||||
[newObligatoryTableColumns retain];
|
|
||||||
[obligatoryTableColumns release];
|
|
||||||
obligatoryTableColumns = newObligatoryTableColumns;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (BOOL)hideTableColumn:(NSTableColumn *)column
|
|
||||||
{
|
|
||||||
BOOL result = NO;
|
|
||||||
if (![(AMRemovableTableColumn *)column isHidden] && ![self isObligatoryColumn:column]) {
|
|
||||||
[(AMRemovableTableColumn *)column setHidden:YES];
|
|
||||||
result = YES;
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (BOOL)showTableColumn:(NSTableColumn *)column
|
|
||||||
{
|
|
||||||
BOOL result = NO;
|
|
||||||
if ([(AMRemovableTableColumn *)column isHidden]) {
|
|
||||||
[(AMRemovableTableColumn *)column setHidden:NO];
|
|
||||||
result = YES;
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (BOOL)isObligatoryColumn:(NSTableColumn *)column
|
|
||||||
{
|
|
||||||
return [(NSArray *)obligatoryColumnIdentifiers containsObject:[column identifier]] ;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// ============================================================
|
|
||||||
#pragma mark -
|
|
||||||
#pragma mark ━ table view methods ━
|
|
||||||
// ============================================================
|
|
||||||
|
|
||||||
- (NSTableColumn *)tableColumnWithIdentifier:(id)identifier
|
|
||||||
{
|
|
||||||
NSTableColumn *result = nil;
|
|
||||||
NSEnumerator *enumerator = [[self allTableColumns] objectEnumerator];
|
|
||||||
NSTableColumn *column;
|
|
||||||
while (column = [enumerator nextObject]) {
|
|
||||||
if ([[column identifier] isEqualToString:identifier]) {
|
|
||||||
result = column;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)setDelegate:(id)anObject
|
|
||||||
{
|
|
||||||
am_respondsToControlDidBecomeFirstResponder = [anObject respondsToSelector:@selector(controlDidBecomeFirstResponder:)];
|
|
||||||
[super setDelegate:anObject];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// ============================================================
|
|
||||||
#pragma mark -
|
|
||||||
#pragma mark ━ view methods ━
|
|
||||||
// ============================================================
|
|
||||||
|
|
||||||
- (void)viewWillMoveToWindow:(NSWindow *)newWindow
|
|
||||||
{
|
|
||||||
//NSLog(@"AMRemovableColumnsTableView - viewWillMoveToWindow:%@", newWindow);
|
|
||||||
[self am_readPersistentTableColumns];
|
|
||||||
[super viewWillMoveToWindow:newWindow];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// ============================================================
|
|
||||||
#pragma mark -
|
|
||||||
#pragma mark ━ responder methods ━
|
|
||||||
// ============================================================
|
|
||||||
|
|
||||||
- (BOOL)becomeFirstResponder
|
|
||||||
{
|
|
||||||
BOOL result = [super becomeFirstResponder];
|
|
||||||
if (result && am_respondsToControlDidBecomeFirstResponder) {
|
|
||||||
[[self delegate] performSelector:@selector(controlDidBecomeFirstResponder:) withObject:self];
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// ============================================================
|
|
||||||
#pragma mark -
|
|
||||||
#pragma mark ━ private table view methods ━
|
|
||||||
// ============================================================
|
|
||||||
|
|
||||||
- (void)_readPersistentTableColumns
|
|
||||||
{
|
|
||||||
//NSLog(@"_readPersistentTableColumns");
|
|
||||||
if (!AMRemovableColumnsTableView_readPersistentTableColumnsIsPublic) {
|
|
||||||
[self setAllTableColumns:[NSSet setWithArray:[self tableColumns]]];
|
|
||||||
// restore visible columns
|
|
||||||
[self am_readPersistentTableColumns];
|
|
||||||
} // else readPersistentTableColumns will be used
|
|
||||||
[super _readPersistentTableColumns];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)_writePersistentTableColumns
|
|
||||||
{
|
|
||||||
//NSLog(@"_writePersistentTableColumns");
|
|
||||||
[super _writePersistentTableColumns];
|
|
||||||
// save visible columns
|
|
||||||
if (!AMRemovableColumnsTableView_readPersistentTableColumnsIsPublic) {
|
|
||||||
[self am_writePersistentTableColumns];
|
|
||||||
} // else writePersistentTableColumns will be used
|
|
||||||
}
|
|
||||||
|
|
||||||
// just in case these methods should become public:
|
|
||||||
- (void)readPersistentTableColumns
|
|
||||||
{
|
|
||||||
//NSLog(@"_readPersistentTableColumns");
|
|
||||||
[self setAllTableColumns:[NSSet setWithArray:[self tableColumns]]];
|
|
||||||
// restore visible columns
|
|
||||||
[self am_readPersistentTableColumns];
|
|
||||||
[(id)super readPersistentTableColumns]; // cast to avoid compiler warning
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)writePersistentTableColumns
|
|
||||||
{
|
|
||||||
//NSLog(@"_writePersistentTableColumns");
|
|
||||||
[(id)super writePersistentTableColumns]; // cast to avoid compiler warning
|
|
||||||
// save visible columns
|
|
||||||
[self am_writePersistentTableColumns];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// ============================================================
|
|
||||||
#pragma mark -
|
|
||||||
#pragma mark ━ private methods ━
|
|
||||||
// ============================================================
|
|
||||||
|
|
||||||
- (NSString *)columnVisibilitySaveName
|
|
||||||
{
|
|
||||||
NSString *autosaveName = [self autosaveName];
|
|
||||||
if (!autosaveName) {
|
|
||||||
NSLog(@"AMRemovableColumnsTableView: autosave name missing for table view: %@", self);
|
|
||||||
autosaveName = @"no-autosave-name-set";
|
|
||||||
}
|
|
||||||
return [@"AMRemovableColumnsTableView VisibleColumns " stringByAppendingString:autosaveName];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)am_readPersistentTableColumns
|
|
||||||
{
|
|
||||||
// restore visible columns
|
|
||||||
NSArray *visibleColumnIdentifiers = [[NSUserDefaults standardUserDefaults] objectForKey:[self columnVisibilitySaveName]];
|
|
||||||
if (visibleColumnIdentifiers) {
|
|
||||||
NSSet *allColumns = [self allTableColumns];
|
|
||||||
NSEnumerator *enumerator = [allColumns objectEnumerator];
|
|
||||||
NSTableColumn *column;
|
|
||||||
while (column = [enumerator nextObject]) {
|
|
||||||
if (![visibleColumnIdentifiers containsObject:[column identifier]]) {
|
|
||||||
[(AMRemovableTableColumn *)column setMainTableView:self];
|
|
||||||
[self removeTableColumn:column];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)am_writePersistentTableColumns
|
|
||||||
{
|
|
||||||
NSMutableArray *visibleColumnIdentifiers = [NSMutableArray array];
|
|
||||||
NSEnumerator *enumerator = [[self visibleTableColumns] objectEnumerator];
|
|
||||||
NSTableColumn *column;
|
|
||||||
while (column = [enumerator nextObject]) {
|
|
||||||
[visibleColumnIdentifiers addObject:[column identifier]];
|
|
||||||
}
|
|
||||||
[[NSUserDefaults standardUserDefaults] setObject:visibleColumnIdentifiers forKey:[self columnVisibilitySaveName]];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)am_hideTableColumn:(NSTableColumn *)column
|
|
||||||
{
|
|
||||||
[(AMRemovableTableColumn *)column setMainTableView:self];
|
|
||||||
[self removeTableColumn:column];
|
|
||||||
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(am_writePersistentTableColumns) object:nil];
|
|
||||||
[self performSelector:@selector(am_writePersistentTableColumns) withObject:nil afterDelay:0.0];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)am_showTableColumn:(NSTableColumn *)column
|
|
||||||
{
|
|
||||||
[self addTableColumn:column];
|
|
||||||
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(am_writePersistentTableColumns) object:nil];
|
|
||||||
[self performSelector:@selector(am_writePersistentTableColumns) withObject:nil afterDelay:0.0];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@end
|
|
|
@ -1,24 +0,0 @@
|
||||||
//
|
|
||||||
// AMRemovableTableColumn.h
|
|
||||||
// HebX
|
|
||||||
//
|
|
||||||
// Created by Andreas on 28.08.05.
|
|
||||||
// Copyright 2005 Andreas Mayer. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
|
||||||
#import "AMRemovableColumnsTableView.h"
|
|
||||||
|
|
||||||
|
|
||||||
@interface AMRemovableTableColumn : NSTableColumn {
|
|
||||||
IBOutlet AMRemovableColumnsTableView *mainTableView;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (AMRemovableColumnsTableView *)mainTableView;
|
|
||||||
- (void)setMainTableView:(AMRemovableColumnsTableView *)newMainTableView;
|
|
||||||
|
|
||||||
- (BOOL)isHidden;
|
|
||||||
- (void)setHidden:(BOOL)flag;
|
|
||||||
|
|
||||||
|
|
||||||
@end
|
|
|
@ -1,63 +0,0 @@
|
||||||
//
|
|
||||||
// AMRemovableTableColumn.m
|
|
||||||
// HebX
|
|
||||||
//
|
|
||||||
// Created by Andreas on 28.08.05.
|
|
||||||
// Copyright 2005 Andreas Mayer. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "AMRemovableTableColumn.h"
|
|
||||||
|
|
||||||
@interface AMRemovableColumnsTableView (Private)
|
|
||||||
- (void)am_hideTableColumn:(NSTableColumn *)column;
|
|
||||||
- (void)am_showTableColumn:(NSTableColumn *)column;
|
|
||||||
@end
|
|
||||||
|
|
||||||
|
|
||||||
@implementation AMRemovableTableColumn
|
|
||||||
|
|
||||||
static BOOL AMRemovableTableColumn_frameworkDoesSupportHiddenColumns = NO;
|
|
||||||
|
|
||||||
+ (void)initialize
|
|
||||||
{
|
|
||||||
// should the framework support isHidden/setHidden:, use the build-in methods
|
|
||||||
AMRemovableTableColumn_frameworkDoesSupportHiddenColumns = [NSTableColumn instancesRespondToSelector:@selector(setHidden:)];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
- (AMRemovableColumnsTableView *)mainTableView
|
|
||||||
{
|
|
||||||
return mainTableView;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)setMainTableView:(AMRemovableColumnsTableView *)newMainTableView
|
|
||||||
{
|
|
||||||
// do not retain
|
|
||||||
mainTableView = newMainTableView;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
- (BOOL)isHidden
|
|
||||||
{
|
|
||||||
if (AMRemovableTableColumn_frameworkDoesSupportHiddenColumns) {
|
|
||||||
return [(id)super isHidden]; // cast to id to avoid compiler warning
|
|
||||||
} else {
|
|
||||||
return ([self tableView] != mainTableView);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)setHidden:(BOOL)flag
|
|
||||||
{
|
|
||||||
if (AMRemovableTableColumn_frameworkDoesSupportHiddenColumns) {
|
|
||||||
[(id)super setHidden:flag]; // cast to id to avoid compiler warning
|
|
||||||
} else {
|
|
||||||
if (flag) {
|
|
||||||
[(AMRemovableColumnsTableView *)[self tableView] am_hideTableColumn:self];
|
|
||||||
} else {
|
|
||||||
[mainTableView am_showTableColumn:self];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@end
|
|
|
@ -1,121 +0,0 @@
|
||||||
//
|
|
||||||
// KFTypeSelectTableView.h
|
|
||||||
// KFTypeSelectTableView v1.0.4
|
|
||||||
//
|
|
||||||
// Keyboard navigation enabled table view. Suitable for
|
|
||||||
// class posing as well as normal use.
|
|
||||||
//
|
|
||||||
// All delegate methods are optional, except you need to implement typeSelectTableView:stringValueForTableColumn:row:
|
|
||||||
// if you're using bindings to supply the table view with data.
|
|
||||||
//
|
|
||||||
// ------------------------------------------------------------------------
|
|
||||||
// Copyright (c) 2005, Ken Ferry All rights reserved.
|
|
||||||
//
|
|
||||||
// Redistribution and use in source and binary forms, with or without
|
|
||||||
// modification, are permitted provided that the following conditions are
|
|
||||||
// met:
|
|
||||||
//
|
|
||||||
// (1) Redistributions of source code must retain the above copyright notice,
|
|
||||||
// this list of conditions and the following disclaimer.
|
|
||||||
//
|
|
||||||
// (2) Redistributions in binary form must reproduce the above copyright
|
|
||||||
// notice, this list of conditions and the following disclaimer in the
|
|
||||||
// documentation and/or other materials provided with the distribution.
|
|
||||||
//
|
|
||||||
// (3) Neither Ken Ferry's name nor the names of other contributors
|
|
||||||
// may be used to endorse or promote products derived from this software
|
|
||||||
// without specific prior written permission.
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
|
||||||
// IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
|
||||||
// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
|
||||||
// PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
|
|
||||||
// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
||||||
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
||||||
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
||||||
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
||||||
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
//
|
|
||||||
// ------------------------------------------------------------------------
|
|
||||||
//
|
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
|
||||||
|
|
||||||
#pragma mark constants
|
|
||||||
|
|
||||||
typedef enum KFTypeSelectMatchAlgorithm {
|
|
||||||
KFSubstringMatchAlgorithm = 0,
|
|
||||||
KFPrefixMatchAlgorithm = 1
|
|
||||||
} KFTypeSelectMatchAlgorithm;
|
|
||||||
|
|
||||||
@interface KFTypeSelectTableView : NSTableView
|
|
||||||
|
|
||||||
#pragma mark action methods
|
|
||||||
|
|
||||||
// these beep if the operation cannot be performed
|
|
||||||
- (void)findNext:(id)sender;
|
|
||||||
- (void)findPrevious:(id)sender;
|
|
||||||
|
|
||||||
#pragma mark accessors
|
|
||||||
// KVO-compliant
|
|
||||||
- (NSString *)pattern;
|
|
||||||
|
|
||||||
// a tableview with no match algorithm set uses defaultMatchAlgorithm
|
|
||||||
// defaultMatchAlgorithm defaults to KFPrefixMatchAlgorithm
|
|
||||||
+ (KFTypeSelectMatchAlgorithm)defaultMatchAlgorithm;
|
|
||||||
+ (void)setDefaultMatchAlgorithm:(KFTypeSelectMatchAlgorithm)algorithm;
|
|
||||||
|
|
||||||
- (KFTypeSelectMatchAlgorithm)matchAlgorithm;
|
|
||||||
- (void)setMatchAlgorithm:(KFTypeSelectMatchAlgorithm)algorithm;
|
|
||||||
|
|
||||||
// defaults to NO
|
|
||||||
- (BOOL)searchWraps;
|
|
||||||
- (void)setSearchWraps:(BOOL)flag;
|
|
||||||
|
|
||||||
// supply a set of identifiers to limit columns searched for match.
|
|
||||||
// Only columns with identifiers in the provided set are searched.
|
|
||||||
// nil identifiers means search all columns. defaults to nil.
|
|
||||||
- (NSSet *)searchColumnIdentifiers;
|
|
||||||
- (void)setSearchColumnIdentifiers:(NSSet *)identifiers;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
@interface NSObject (KFTypeSelectTableViewDelegate)
|
|
||||||
|
|
||||||
#pragma mark configuration methods
|
|
||||||
|
|
||||||
// Implement this method if the table uses bindings for data.
|
|
||||||
// Use something like
|
|
||||||
// return [[[arrayController arrangedObjects] objectAtIndex:row] valueForKey:[column identifier]];
|
|
||||||
// Could also use it to supply string representations for non-string data, or to search only part of visible text.
|
|
||||||
- (NSString *)typeSelectTableView:(id)tableView stringValueForTableColumn:(NSTableColumn *)column row:(int)row;
|
|
||||||
|
|
||||||
// defaults to YES
|
|
||||||
- (BOOL)typeSelectTableViewSearchTopToBottom:(id)tableView;
|
|
||||||
|
|
||||||
// defaults to first or last row, depending on direction of search
|
|
||||||
- (int)typeSelectTableViewInitialSearchRow:(id)tableView;
|
|
||||||
|
|
||||||
// A hook for cases (like mail plugin) where there's no good place to configure the table.
|
|
||||||
// Will be called before type-select is used with any particular delegate.
|
|
||||||
- (void)configureTypeSelectTableView:(id)tableView;
|
|
||||||
|
|
||||||
#pragma mark reporting methods
|
|
||||||
// pattern of @"" indicates no search, anything else means a search is in progress
|
|
||||||
// userInfo dictionary has @"oldPattern" key
|
|
||||||
// this notification is sent
|
|
||||||
// when a search begins or is modified
|
|
||||||
// when a search is cancelled
|
|
||||||
// x seconds after a search either succeeds or fails, where x is a timeout period
|
|
||||||
- (void)typeSelectTableViewPatternDidChange:(NSNotification *)aNotification;
|
|
||||||
- (void)typeSelectTableView:(id)tableView didFindMatch:(NSString *)match range:(NSRange)matchedRange forPattern:(NSString *)pattern;
|
|
||||||
- (void)typeSelectTableView:(id)tableView didFailToFindMatchForPattern:(NSString *)pattern; // fallback is a beep if delegate does not implement
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
#pragma mark notifications
|
|
||||||
// delegate automatically receives this notification. See delegate method above.
|
|
||||||
extern NSString *KFTypeSelectTableViewPattenDidChangeNotification;
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue