Changeset 1308
- Timestamp:
- 05/22/04 12:05:18 (5 years ago)
- Files:
-
- WiredClient/trunk/WCChat.h (modified) (3 diffs)
- WiredClient/trunk/WCChat.m (modified) (2 diffs)
- WiredClient/trunk/WCFiles.h (modified) (2 diffs)
- WiredClient/trunk/WCFiles.m (modified) (5 diffs)
- WiredClient/trunk/WCMessages.h (modified) (2 diffs)
- WiredClient/trunk/WCMessages.m (modified) (3 diffs)
- WiredClient/trunk/WCPrivateChat.m (modified) (2 diffs)
- WiredClient/trunk/WCPublicChat.m (modified) (2 diffs)
- WiredClient/trunk/WCTableView.h (modified) (2 diffs)
- WiredClient/trunk/WCTableView.m (modified) (4 diffs)
- WiredClient/trunk/WCTypeAheadTableView.h (deleted)
- WiredClient/trunk/WCTypeAheadTableView.m (deleted)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
WiredClient/trunk/WCChat.h
r1297 r1308 1 /* $Id: WCChat.h,v 1.1 2 2004/05/21 21:03:18 morris Exp $ */1 /* $Id: WCChat.h,v 1.13 2004/05/22 10:05:18 morris Exp $ */ 2 2 3 3 /* … … 29 29 #import "WCWindowController.h" 30 30 31 @class WCConnection, WCSplitView, WCTextView, WCT ypeAheadTableView;31 @class WCConnection, WCSplitView, WCTextView, WCTableView; 32 32 33 33 @protocol WCTableViewMenuValidation, WCTableViewInfoCopying; … … 50 50 IBOutlet WCSplitView *_userListSplitView; 51 51 IBOutlet NSView *_userListView; 52 IBOutlet WCT ypeAheadTableView*_userListTableView;52 IBOutlet WCTableView *_userListTableView; 53 53 54 54 IBOutlet NSButton *_privateMessageButton; WiredClient/trunk/WCChat.m
r1298 r1308 1 /* $Id: WCChat.m,v 1.4 5 2004/05/22 02:18:09morris Exp $ */1 /* $Id: WCChat.m,v 1.46 2004/05/22 10:05:18 morris Exp $ */ 2 2 3 3 /* … … 45 45 #import "WCSplitView.h" 46 46 #import "WCStats.h" 47 #import "WCTableView.h" 47 48 #import "WCTextView.h" 48 #import "WCTypeAheadTableView.h"49 49 #import "WCUser.h" 50 50 #import "WCUserInfo.h" WiredClient/trunk/WCFiles.h
r1275 r1308 1 /* $Id: WCFiles.h,v 1. 6 2004/05/20 03:55:13morris Exp $ */1 /* $Id: WCFiles.h,v 1.7 2004/05/22 10:05:18 morris Exp $ */ 2 2 3 3 /* … … 29 29 #import "WCWindowController.h" 30 30 31 @class WCConnection, WCFile ;31 @class WCConnection, WCFile, WCTableView; 32 32 33 33 @protocol WCGetInfoValidation, WCTableViewInfoCopying, WCTableViewOptionsSelection; 34 @protocol WCTableViewTypingAhead; 34 35 35 @interface WCFiles : WCWindowController <WCGetInfoValidation, WCTableViewInfoCopying, WCTableViewOptionsSelection > {36 IBOutlet NSTableView *_filesTableView;36 @interface WCFiles : WCWindowController <WCGetInfoValidation, WCTableViewInfoCopying, WCTableViewOptionsSelection, WCTableViewTypingAhead> { 37 IBOutlet WCTableView *_filesTableView; 37 38 IBOutlet NSScrollView *_filesScrollView; 38 39 WiredClient/trunk/WCFiles.m
r1301 r1308 1 /* $Id: WCFiles.m,v 1.3 3 2004/05/22 08:06:45morris Exp $ */1 /* $Id: WCFiles.m,v 1.34 2004/05/22 10:05:18 morris Exp $ */ 2 2 3 3 /* … … 44 44 #import "WCServer.h" 45 45 #import "WCSettings.h" 46 #import "WCTableView.h" 46 47 #import "WCTextCell.h" 47 48 #import "WCTransfers.h" … … 147 148 // --- double-click 148 149 [_filesTableView setDoubleAction:@selector(open:)]; 150 151 // --- type-ahead 152 [_filesTableView setTypeAhead:YES]; 149 153 150 154 // --- get the sort images … … 957 961 958 962 959 - (id)tableView:(NSTableView *) senderobjectValueForTableColumn:(NSTableColumn *)tableColumn row:(int)row {963 - (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(int)row { 960 964 NSImage *icon; 961 965 NSString *extension, *identifier; … … 1033 1037 1034 1038 return NULL; 1039 } 1040 1041 1042 1043 - (NSString *)tableView:(NSTableView *)tableView stringValueForRow:(int)row { 1044 WCFile *file; 1045 int i; 1046 1047 i = _sortDescending ? [_shownFiles count] - (unsigned int) row - 1 : (unsigned int) row; 1048 file = [_shownFiles objectAtIndex:i]; 1049 1050 return [file name]; 1035 1051 } 1036 1052 WiredClient/trunk/WCMessages.h
r1179 r1308 1 /* $Id: WCMessages.h,v 1. 5 2004/05/16 05:13:27morris Exp $ */1 /* $Id: WCMessages.h,v 1.6 2004/05/22 10:05:18 morris Exp $ */ 2 2 3 3 /* … … 29 29 #import "WCWindowController.h" 30 30 31 @class WCSplitView, WCMessage, WCConnection, WCTextView ;31 @class WCSplitView, WCMessage, WCConnection, WCTextView, WCTableView; 32 32 33 33 @interface WCMessages : WCWindowController { 34 34 IBOutlet WCSplitView *_messageSplitView; 35 IBOutlet NSTableView *_messageListTableView;35 IBOutlet WCTableView *_messageListTableView; 36 36 IBOutlet WCTextView *_messageTextView; 37 37 WiredClient/trunk/WCMessages.m
r1298 r1308 1 /* $Id: WCMessages.m,v 1. 19 2004/05/22 02:18:09morris Exp $ */1 /* $Id: WCMessages.m,v 1.20 2004/05/22 10:05:18 morris Exp $ */ 2 2 3 3 /* … … 38 38 #import "WCSettings.h" 39 39 #import "WCSplitView.h" 40 #import "WCTableView.h" 40 41 #import "WCTextView.h" 41 42 #import "WCToolbar.h" … … 113 114 // --- use a smaller font for the message list 114 115 font = [NSFont systemFontOfSize:[NSFont smallSystemFontSize]]; 115 116 116 [[_nickTableColumn dataCell] setFont:font]; 117 117 [[_timeTableColumn dataCell] setFont:font]; WiredClient/trunk/WCPrivateChat.m
r1298 r1308 1 /* $Id: WCPrivateChat.m,v 1.1 6 2004/05/22 02:18:09morris Exp $ */1 /* $Id: WCPrivateChat.m,v 1.17 2004/05/22 10:05:18 morris Exp $ */ 2 2 3 3 /* … … 36 36 #import "WCSettings.h" 37 37 #import "WCSplitView.h" 38 #import "WCTableView.h" 38 39 #import "WCTextView.h" 39 #import "WCTypeAheadTableView.h"40 40 #import "WCUser.h" 41 41 WiredClient/trunk/WCPublicChat.m
r1298 r1308 1 /* $Id: WCPublicChat.m,v 1.2 8 2004/05/22 02:18:09morris Exp $ */1 /* $Id: WCPublicChat.m,v 1.29 2004/05/22 10:05:18 morris Exp $ */ 2 2 3 3 /* … … 41 41 #import "WCSettings.h" 42 42 #import "WCSplitView.h" 43 #import "WCTableView.h" 43 44 #import "WCTextView.h" 44 45 #import "WCToolbar.h" 45 #import "WCTypeAheadTableView.h"46 46 #import "WCUser.h" 47 47 WiredClient/trunk/WCTableView.h
r1206 r1308 1 /* $Id: WCTableView.h,v 1. 3 2004/05/17 16:46:32morris Exp $ */1 /* $Id: WCTableView.h,v 1.4 2004/05/22 10:05:18 morris Exp $ */ 2 2 3 3 /* … … 29 29 @protocol WCTableViewInfoCopying 30 30 31 - (void) tableViewShouldCopyInfo:(NSTableView *)sender;31 - (void) tableViewShouldCopyInfo:(NSTableView *)sender; 32 32 33 33 @end 34 34 35 35 36 @interface WCTableView : NSTableView 36 @protocol WCTableViewTypingAhead 37 38 - (NSString *) tableView:(NSTableView *)tableView stringValueForRow:(int)row; 37 39 38 40 @end 41 42 43 @interface WCTableView : NSTableView { 44 NSMutableString *_typeAheadString; 45 NSCharacterSet *_typeAheadCharacterSet; 46 BOOL _typeAhead; 47 } 48 49 50 - (void) setTypeAhead:(BOOL)value; 51 - (BOOL) typeAhead; 52 53 @end WiredClient/trunk/WCTableView.m
r1100 r1308 1 /* $Id: WCTableView.m,v 1. 4 2004/03/28 22:14:22morris Exp $ */1 /* $Id: WCTableView.m,v 1.5 2004/05/22 10:05:18 morris Exp $ */ 2 2 3 3 /* … … 27 27 */ 28 28 29 #import "WCFiles.h" 30 #import "WCIconCell.h" 29 31 #import "WCTableView.h" 30 32 31 33 @implementation WCTableView 34 35 - (id)initWithCoder:(NSCoder *)coder { 36 NSMutableCharacterSet *characterSet; 37 38 self = [super initWithCoder:coder]; 39 40 // --- string for type-ahead 41 _typeAheadString = [[NSMutableString alloc] init]; 42 43 // --- character set of legal characters 44 characterSet = [[NSCharacterSet alphanumericCharacterSet] mutableCopy]; 45 [characterSet formUnionWithCharacterSet:[NSCharacterSet punctuationCharacterSet]]; 46 [characterSet formUnionWithCharacterSet:[NSCharacterSet whitespaceCharacterSet]]; 47 _typeAheadCharacterSet = [characterSet copy]; 48 [characterSet release]; 49 50 return self; 51 } 52 53 54 55 - (void)dealloc { 56 [_typeAheadString release]; 57 [_typeAheadCharacterSet release]; 58 59 [super dealloc]; 60 } 61 62 63 64 #pragma mark - 32 65 33 66 - (NSMenu *)menuForEvent:(NSEvent *)event { … … 56 89 if(key == NSEnterCharacter || key == NSCarriageReturnCharacter) 57 90 [super doCommandBySelector:[super doubleAction]]; 91 else if(_typeAhead && [_typeAheadCharacterSet characterIsMember:key]) 92 [self interpretKeyEvents:[NSArray arrayWithObject:event]]; 58 93 else 59 94 [super keyDown:event]; 95 96 } 97 98 99 100 - (void)insertText:(NSString *)string { 101 static NSDate *lastDate; 102 NSString *value; 103 NSDate *date; 104 int i, rows; 105 106 // --- get values 107 rows = [self numberOfRows]; 108 date = [NSDate date]; 109 110 // --- compare with previous time 111 if([date timeIntervalSinceDate:lastDate] < 0.5) 112 [_typeAheadString appendString:string]; 113 else 114 [_typeAheadString setString:string]; 115 116 // --- save this time 117 [lastDate release]; 118 lastDate = [date retain]; 119 120 // --- find the first row that matches 121 for(i = 0; i < rows; i++) { 122 value = [[self dataSource] tableView:self stringValueForRow:i]; 123 124 if([value compare:_typeAheadString options:NSCaseInsensitiveSearch] > NSOrderedAscending) { 125 [self selectRow:i byExtendingSelection:NO]; 126 [self scrollRowToVisible:i]; 127 128 break; 129 } 130 } 131 } 132 133 134 135 - (void)moveLeft:(id)sender { 136 if([[self delegate] respondsToSelector:@selector(back:)]) 137 [[self delegate] back:sender]; 138 } 139 140 141 142 - (void)moveRight:(id)sender { 143 if([[self delegate] respondsToSelector:@selector(forward:)]) 144 [[self delegate] forward:sender]; 60 145 } 61 146 … … 76 161 } 77 162 163 164 165 #pragma mark - 166 167 - (void)setTypeAhead:(BOOL)value { 168 if(![[self delegate] conformsToProtocol:@protocol(WCTableViewTypingAhead)]) 169 _typeAhead = value; 170 } 171 172 173 174 - (BOOL)typeAhead { 175 return _typeAhead; 176 } 177 78 178 @end
