Changeset 3978
- Timestamp:
- 03/27/06 22:59:24 (3 years ago)
- Files:
-
- WiredAdditions/trunk/NSDate-WIAdditions.m (modified) (2 diffs)
- WiredAdditions/trunk/WIOutlineView.h (modified) (1 diff)
- WiredAdditions/trunk/WIOutlineView.m (modified) (1 diff)
- WiredAdditions/trunk/WISplitView.m (modified) (4 diffs)
- WiredAdditions/trunk/WITableView.h (modified) (1 diff)
- WiredAdditions/trunk/WITableView.m (modified) (1 diff)
- WiredAdditions/trunk/WITableViewManager.m (modified) (16 diffs)
- WiredAdditions/trunk/WIWindowController.m (modified) (5 diffs)
- WiredAdditions/trunk/WiredAdditions.xcodeproj/project.pbxproj (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
WiredAdditions/trunk/NSDate-WIAdditions.m
r3416 r3978 190 190 } 191 191 192 // --- get final format193 192 format = [NSSWF:@"%@, %@", date, time]; 194 193 string = [self descriptionWithCalendarFormat:format … … 251 250 } 252 251 253 // --- get final format254 252 string = [self descriptionWithCalendarFormat:time 255 253 timeZone:NULL WiredAdditions/trunk/WIOutlineView.h
r3970 r3978 33 33 @interface WIOutlineView : NSOutlineView { 34 34 _WITableViewManager *_tableViewManager; 35 36 NSString *_WI_autosaveName; 37 BOOL _WI_autosaveTableColumns; 35 38 } 36 39 WiredAdditions/trunk/WIOutlineView.m
r3970 r3978 170 170 171 171 172 - (void)setAutosaveName:(NSString *)name { 173 [name retain]; 174 [_WI_autosaveName release]; 175 176 _WI_autosaveName = name; 177 } 178 179 180 181 - (NSString *)autosaveName { 182 return _WI_autosaveName; 183 } 184 185 186 172 187 - (void)setAutosaveTableColumns:(BOOL)value { 173 188 [_tableViewManager setAutosaveTableColumns:value]; 174 175 [super setAutosaveTableColumns:value]; 189 190 _WI_autosaveTableColumns = value; 191 } 192 193 194 195 - (BOOL)autosaveTableColumns { 196 return _WI_autosaveTableColumns; 176 197 } 177 198 WiredAdditions/trunk/WISplitView.m
r3438 r3978 27 27 */ 28 28 29 #import <WiredAdditions/NSSplitView-WIAdditions.h> 29 30 #import <WiredAdditions/WISplitView.h> 30 31 … … 55 56 56 57 - (void)_saveSplitViewPosition { 57 NSMutableArray *frames;58 NSString *key;59 int i, subviewCount;60 61 58 if([[self autosaveName] length] > 0) { 62 frames = [NSMutableArray array]; 63 subviewCount = [[self subviews] count]; 64 65 for(i = 0; i < subviewCount; i++) 66 [frames addObject:NSStringFromRect([[[self subviews] objectAtIndex:i] frame])]; 59 [[NSUserDefaults standardUserDefaults] setObject:[self propertiesDictionary] 60 forKey:[NSSWF:@"WISplitView %@ Properties", [self autosaveName]]]; 67 61 68 key = [NSSWF:@"%@ %@ Views", NSStringFromClass([self class]), [self autosaveName]]; 69 [[NSUserDefaults standardUserDefaults] setObject:frames forKey:key]; 62 [[NSUserDefaults standardUserDefaults] synchronize]; 70 63 } 71 64 } … … 74 67 75 68 - (void)_loadSplitViewPosition { 76 NSArray *frames; 77 NSString *key; 78 int i, frameCount, subviewCount; 69 NSDictionary *dictionary; 79 70 80 key = [NSSWF:@"%@ %@ Views", NSStringFromClass([self class]), [self autosaveName]]; 81 frames = [[NSUserDefaults standardUserDefaults] arrayForKey:key]; 82 83 if(frames) { 84 frameCount = [frames count]; 85 subviewCount = [[self subviews] count]; 71 if([[self autosaveName] length] > 0) { 72 dictionary = [[NSUserDefaults standardUserDefaults] dictionaryForKey: 73 [NSSWF:@"WISplitView %@ Properties", [self autosaveName]]]; 86 74 87 for(i = 0; i < subviewCount && i < frameCount; i++) 88 [[[self subviews] objectAtIndex:i] setFrame:NSRectFromString([frames objectAtIndex:i])]; 75 [self setPropertiesFromDictionary:dictionary]; 89 76 } 90 77 } … … 168 155 169 156 170 - (NSString *)autosaveName ;{157 - (NSString *)autosaveName { 171 158 return _autosaveName; 172 159 } WiredAdditions/trunk/WITableView.h
r3970 r3978 33 33 @interface WITableView : NSTableView { 34 34 _WITableViewManager *_tableViewManager; 35 36 NSString *_WI_autosaveName; 37 BOOL _WI_autosaveTableColumns; 35 38 } 36 39 WiredAdditions/trunk/WITableView.m
r3970 r3978 170 170 171 171 172 - (void)setAutosaveName:(NSString *)name { 173 [name retain]; 174 [_WI_autosaveName release]; 175 176 _WI_autosaveName = name; 177 } 178 179 180 181 - (NSString *)autosaveName { 182 return _WI_autosaveName; 183 } 184 185 186 172 187 - (void)setAutosaveTableColumns:(BOOL)value { 173 188 [_tableViewManager setAutosaveTableColumns:value]; 174 189 175 [super setAutosaveTableColumns:value]; 190 _WI_autosaveTableColumns = value; 191 } 192 193 194 195 - (BOOL)autosaveTableColumns { 196 return _WI_autosaveTableColumns; 176 197 } 177 198 WiredAdditions/trunk/WITableViewManager.m
r3970 r3978 47 47 - (void)_setTableColumnIdentifiers:(NSArray *)identifiers; 48 48 - (NSArray *)_tableColumnIdentifiers; 49 - (void)_setTableColumnWidths:(NSDictionary *)widths; 50 - (NSDictionary *)_tableColumnWidths; 49 51 - (NSTableColumn *)_tableColumnWithIdentifier:(NSString *)identifier; 50 52 - (BOOL)_includeTableColumnWithIdentifier:(NSString *)identifier; … … 186 188 187 189 if([_tableView autosaveTableColumns]) 188 [self performSelectorOnce:@selector(_saveTableColumns) afterDelay: 1.0];190 [self performSelectorOnce:@selector(_saveTableColumns) afterDelay:0.1]; 189 191 } 190 192 … … 249 251 250 252 return NULL; 253 } 254 255 256 257 - (void)_setTableColumnWidths:(NSDictionary *)widths { 258 NSEnumerator *enumerator; 259 NSString *identifier; 260 261 if(!widths) 262 return; 263 264 enumerator = [widths keyEnumerator]; 265 266 while((identifier = [enumerator nextObject])) 267 [[self _tableColumnWithIdentifier:identifier] setWidth:[widths doubleForKey:identifier]]; 268 } 269 270 271 272 - (NSDictionary *)_tableColumnWidths { 273 NSMutableDictionary *widths; 274 NSEnumerator *enumerator; 275 NSTableColumn *tableColumn; 276 277 widths = [NSMutableDictionary dictionary]; 278 enumerator = [_allTableColumns objectEnumerator]; 279 280 while((tableColumn = [enumerator nextObject])) 281 [widths setDouble:[tableColumn width] forKey:[tableColumn identifier]]; 282 283 return widths; 251 284 } 252 285 … … 332 365 333 366 - (void)_saveTableColumns { 334 NSString *key; 335 336 key = [NSSWF:@"%@ %@ Columns", NSStringFromClass([_tableView class]), [_tableView autosaveName]]; 337 [[NSUserDefaults standardUserDefaults] setObject:[self _tableColumnIdentifiers] forKey:key]; 367 [[NSUserDefaults standardUserDefaults] setObject:[self _tableColumnIdentifiers] 368 forKey:[NSSWF:@"WITableViewManager %@ Columns", [_tableView autosaveName]]]; 369 370 [[NSUserDefaults standardUserDefaults] setObject:[self _tableColumnWidths] 371 forKey:[NSSWF:@"WITableViewManager %@ Widths", [_tableView autosaveName]]]; 372 373 [[NSUserDefaults standardUserDefaults] synchronize]; 338 374 } 339 375 … … 376 412 [headerView release]; 377 413 } 414 415 [[NSNotificationCenter defaultCenter] 416 addObserver:self 417 selector:@selector(tableViewColumnDidMove:) 418 name:NSTableViewColumnDidMoveNotification 419 object:_tableView]; 420 421 [[NSNotificationCenter defaultCenter] 422 addObserver:self 423 selector:@selector(tableViewColumnDidResize:) 424 name:NSTableViewColumnDidResizeNotification 425 object:_tableView]; 378 426 379 427 return self; … … 389 437 390 438 [super dealloc]; 439 } 440 441 442 443 #pragma mark - 444 445 - (void)tableViewColumnDidMove:(NSNotification *)notification { 446 if([_tableView autosaveTableColumns]) 447 [self performSelectorOnce:@selector(_saveTableColumns) afterDelay:0.1]; 448 } 449 450 451 452 - (void)tableViewColumnDidResize:(NSNotification *)notification { 453 if([_tableView autosaveTableColumns]) 454 [self performSelectorOnce:@selector(_saveTableColumns) afterDelay:0.1]; 391 455 } 392 456 … … 617 681 618 682 if([_tableView autosaveTableColumns]) 619 [self performSelectorOnce:@selector(_saveTableColumns) afterDelay: 1.0];683 [self performSelectorOnce:@selector(_saveTableColumns) afterDelay:0.1]; 620 684 } 621 685 } … … 634 698 635 699 if([_tableView autosaveTableColumns]) 636 [self performSelectorOnce:@selector(_saveTableColumns) afterDelay: 1.0];700 [self performSelectorOnce:@selector(_saveTableColumns) afterDelay:0.1]; 637 701 } 638 702 } … … 647 711 648 712 - (void)setAutosaveTableColumns:(BOOL)value { 649 NSString * key, *identifier;713 NSString *identifier; 650 714 NSArray *columns; 715 NSDictionary *widths; 651 716 NSNumber *sortOrder; 652 717 653 718 if(value) { 654 key = [NSSWF:@"%@ %@ Columns", NSStringFromClass([_tableView class]), [_tableView autosaveName]];655 columns = [[NSUserDefaults standardUserDefaults] arrayForKey:key];719 columns = [[NSUserDefaults standardUserDefaults] arrayForKey: 720 [NSSWF:@"WITableViewManager %@ Columns", [_tableView autosaveName]]]; 656 721 657 722 [self _setTableColumnIdentifiers:columns]; 658 723 659 key = [NSSWF:@"%@ %@ Selected Column", NSStringFromClass([_tableView class]), [_tableView autosaveName]]; 660 identifier = [[NSUserDefaults standardUserDefaults] objectForKey:key]; 661 662 key = [NSSWF:@"%@ %@ Sort Order", NSStringFromClass([_tableView class]), [_tableView autosaveName]]; 663 sortOrder = [[NSUserDefaults standardUserDefaults] objectForKey:key]; 724 widths = [[NSUserDefaults standardUserDefaults] dictionaryForKey: 725 [NSSWF:@"WITableViewManager %@ Widths", [_tableView autosaveName]]]; 726 727 [self _setTableColumnWidths:widths]; 728 729 identifier = [[NSUserDefaults standardUserDefaults] objectForKey: 730 [NSSWF:@"WITableViewManager %@ Selected Column", [_tableView autosaveName]]]; 731 732 sortOrder = [[NSUserDefaults standardUserDefaults] objectForKey: 733 [NSSWF:@"WITableViewManager %@ Sort Order", [_tableView autosaveName]]]; 664 734 665 735 [self _setHighlightedTableColumnIdentifier:identifier sortOrder:sortOrder]; … … 670 740 671 741 - (void)setHighlightedTableColumn:(NSTableColumn *)tableColumn { 672 NSString *key;673 742 NSImage *image; 674 743 … … 683 752 684 753 if([_tableView autosaveTableColumns]) { 685 key = [NSSWF:@"%@ %@ Selected Column", NSStringFromClass([_tableView class]), [_tableView autosaveName]]; 686 [[NSUserDefaults standardUserDefaults] setObject:[tableColumn identifier] forKey:key]; 687 688 key = [NSSWF:@"%@ %@ Sort Order", NSStringFromClass([_tableView class]), [_tableView autosaveName]]; 689 [[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithInt:_sortOrder] forKey:key]; 754 [[NSUserDefaults standardUserDefaults] setObject:[tableColumn identifier] 755 forKey:[NSSWF:@"WITableViewManager %@ Selected Column", [_tableView autosaveName]]]; 756 757 [[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithInt:_sortOrder] 758 forKey:[NSSWF:@"WITableViewManager %@ Sort Order", [_tableView autosaveName]]]; 759 760 [[NSUserDefaults standardUserDefaults] synchronize]; 690 761 } 691 762 … … 699 770 700 771 - (void)setPropertiesFromDictionary:(NSDictionary *)dictionary { 701 NSEnumerator *enumerator; 702 id columns, widths, identifier, sortOrder; 772 id columns, widths, identifier, sortOrder; 703 773 704 774 if([self allowsUserCustomization]) … … 711 781 widths = [dictionary objectForKey:@"_WITableView_widths"]; 712 782 713 if(widths) { 714 enumerator = [widths keyEnumerator]; 715 716 while((identifier = [enumerator nextObject])) 717 [[self _tableColumnWithIdentifier:identifier] setWidth:[widths doubleForKey:identifier]]; 718 } 783 [self _setTableColumnWidths:widths]; 719 784 720 785 identifier = [dictionary objectForKey:@"_WITableView_highlightTableColumn_identifier"]; … … 726 791 727 792 728 729 793 - (NSDictionary *)propertiesDictionary { 730 NSMutableDictionary *dictionary, *widths; 731 NSEnumerator *enumerator; 794 NSMutableDictionary *dictionary; 732 795 NSTableColumn *tableColumn; 733 796 … … 735 798 736 799 [dictionary setObject:[self _tableColumnIdentifiers] forKey:@"_WITableView_columns"]; 800 [dictionary setObject:[self _tableColumnWidths] forKey:@"_WITableView_widths"]; 737 801 [dictionary setInt:_sortOrder forKey:@"_WITableView_sortOrder"]; 738 802 … … 741 805 if(tableColumn) 742 806 [dictionary setObject:[tableColumn identifier] forKey:@"_WITableView_highlightTableColumn_identifier"]; 743 744 widths = [NSMutableDictionary dictionary];745 746 enumerator = [_allTableColumns objectEnumerator];747 748 while((tableColumn = [enumerator nextObject]))749 [widths setDouble:[tableColumn width] forKey:[tableColumn identifier]];750 751 [dictionary setObject:widths forKey:@"_WITableView_widths"];752 807 753 808 return dictionary; WiredAdditions/trunk/WIWindowController.m
r3971 r3978 76 76 77 77 - (void)_WI_windowDidMove:(NSNotification *)notification { 78 NSString *key;79 80 78 if([_WI_windowFrameAutosaveName length] > 0) { 81 79 if([self window] == [_WIWindowController_windows lastObject]) { 82 key = [NSSWF:@"%@ %@ Frame", NSStringFromClass([self class]), _WI_windowFrameAutosaveName]; 83 84 [_WIWindowController_frames setObject:NSStringFromRect([[self window] frame]) forKey:key]; 80 [_WIWindowController_frames setObject:NSStringFromRect([[self window] frame]) 81 forKey:[NSSWF:@"WIWindowController %@ Frame", _WI_windowFrameAutosaveName]]; 85 82 } 86 83 } … … 104 101 105 102 if([_WI_windowFrameAutosaveName length] > 0) { 106 key = [NSSWF:@" %@ %@ Frame", NSStringFromClass([self class]), _WI_windowFrameAutosaveName];103 key = [NSSWF:@"WIWindowController %@ Frame", _WI_windowFrameAutosaveName]; 107 104 frame = [[NSUserDefaults standardUserDefaults] objectForKey:key]; 108 105 size = [[self window] frame].size; … … 134 131 135 132 [[self window] setFrame:rect display:NO]; 133 136 134 [_WIWindowController_windows addObject:[self window]]; 137 135 [_WIWindowController_frames setObject:NSStringFromRect(rect) forKey:key]; … … 147 145 148 146 if([_WI_windowFrameAutosaveName length] > 0) { 149 key = [NSSWF:@"%@ %@ Frame", NSStringFromClass([self class]), _WI_windowFrameAutosaveName];150 147 rect = [[self window] frame]; 151 148 … … 155 152 } 156 153 154 key = [NSSWF:@"WIWindowController %@ Frame", _WI_windowFrameAutosaveName]; 157 155 value = NSStringFromRect(rect); 156 158 157 [[NSUserDefaults standardUserDefaults] setObject:value forKey:key]; 158 [[NSUserDefaults standardUserDefaults] synchronize]; 159 159 160 [_WIWindowController_frames setObject:value forKey:key]; 160 161 } WiredAdditions/trunk/WiredAdditions.xcodeproj/project.pbxproj
r3973 r3978 427 427 A5E4B33007A9752E00BD6812 /* NSImage-Baadge.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "NSImage-Baadge.tiff"; sourceTree = "<group>"; }; 428 428 A5E4B33107A9752E00BD6812 /* NSImage-Baaadge.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "NSImage-Baaadge.tiff"; sourceTree = "<group>"; }; 429 A5E4B39E07A9797200BD6812 /* WIAutoreleasePool Test.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = "WIAutoreleasePool Test.app"; sourceTree = BUILT_PRODUCTS_DIR; };429 A5E4B39E07A9797200BD6812 /* WIAutoreleasePool Test.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "WIAutoreleasePool Test.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 430 430 A5E4B3E407A97A4900BD6812 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; name = Info.plist; path = Tests/WIAutoreleasePool/Info.plist; sourceTree = "<group>"; }; 431 431 A5E4B3EA07A97A5500BD6812 /* main.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; name = main.m; path = Tests/WIAutoreleasePool/main.m; sourceTree = "<group>"; };
