- Timestamp:
- 03/02/08 13:51:58 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ICeCoffEE/ICeCoffEE/ICeCoffEEServicePrefController.m
r425 r428 15 15 #import <objc/objc.h> 16 16 #import <ApplicationEnhancer/ApplicationEnhancer.h> 17 #import <QuartzCore/QuartzCore.h> 17 18 18 19 const int ICCF_SERVICE_UNKNOWN = 0; … … 46 47 if (keyEquivalent == nil) return 0; 47 48 NSMutableSet *setOrNil = (NSMutableSet *)[keyEquivalents objectForKey: keyEquivalent]; 48 return (setOrNil == nil) ? nil: [setOrNil count];49 return (setOrNil == nil) ? 0 : [setOrNil count]; 49 50 } 50 51 … … 246 247 [checkBoxCell setImagePosition: NSImageOnly]; 247 248 [checkBoxCell setAllowsMixedState: YES]; 249 248 250 [[serviceOutline tableColumnWithIdentifier: @"show"] setDataCell: checkBoxCell]; 249 251 [checkBoxCell release]; … … 274 276 [keyEquivalents release]; 275 277 [servicesMenu release]; 278 [closedTriangle release]; 279 [selectedClosedTriangle release]; 280 [openTriangle release]; 281 [selectedOpenTriangle release]; 276 282 [super dealloc]; 277 283 } … … 281 287 - (IBAction)showAll:(NSButton *)sender; 282 288 { 283 ICCF_PropagateServiceStateChange(servicesMenu, nil);289 ICCF_PropagateServiceStateChange(servicesMenu, 0); 284 290 [serviceOutline reloadData]; 285 291 } … … 413 419 } 414 420 421 static NSImage *ICCF_InvertedImage(NSImage *image) { 422 NSImage *invertedImage = [[NSImage alloc] initWithSize: [image size]]; 423 NSBitmapImageRep *imageRep = [NSBitmapImageRep imageRepWithData: [image TIFFRepresentation]]; 424 CIImage *source = [[CIImage alloc] initWithBitmapImageRep: imageRep]; 425 CIColor *black = [[CIColor alloc] initWithColor: [NSColor blackColor]]; 426 427 CIFilter *monochromeFilter = [CIFilter filterWithName: @"CIColorMonochrome"]; 428 [monochromeFilter setValue: source forKey: @"inputImage"]; 429 [monochromeFilter setValue: [NSNumber numberWithFloat: 1.0] forKey: @"inputIntensity"]; 430 [monochromeFilter setValue: black forKey: @"inputColor"]; 431 432 CIFilter *invertFilter = [CIFilter filterWithName: @"CIColorInvert"]; 433 [invertFilter setValue: [monochromeFilter valueForKey: @"outputImage"] forKey: @"inputImage"]; 434 435 CIFilter *maskToAlphaFilter = [CIFilter filterWithName: @"CIMaskToAlpha"]; 436 [maskToAlphaFilter setValue: [invertFilter valueForKey: @"outputImage"] forKey: @"inputImage"]; 437 438 [invertedImage lockFocus]; 439 CIContext *context = [CIContext contextWithCGContext: [[NSGraphicsContext currentContext] graphicsPort] 440 options: nil]; 441 CIImage *result = [maskToAlphaFilter valueForKey: @"outputImage"]; 442 [context drawImage: result atPoint: CGPointZero fromRect: [result extent]]; 443 [invertedImage unlockFocus]; 444 445 [source release]; 446 [black release]; 447 448 return invertedImage; 449 } 450 451 - (void)outlineView:(NSOutlineView *)outlineView willDisplayOutlineCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn item:(id)item; 452 { 453 static BOOL isInverted = NO; 454 455 if (closedTriangle == nil) { 456 closedTriangle = [[cell image] retain]; 457 openTriangle = [[cell alternateImage] retain]; 458 selectedClosedTriangle = ICCF_InvertedImage(closedTriangle); 459 selectedOpenTriangle = ICCF_InvertedImage(openTriangle); 460 } 461 462 if (![outlineView isRowSelected: [outlineView rowForItem: item]] || 463 [[outlineView window] firstResponder] != outlineView || ![[outlineView window] isKeyWindow]) { 464 if (!isInverted) 465 return; 466 467 [cell setImage: closedTriangle]; 468 [cell setAlternateImage: openTriangle]; 469 isInverted = NO; 470 return; 471 } 472 473 // not checking for isInverted is intentional - images reset when triangle is flipped 474 [cell setImage: selectedClosedTriangle]; 475 [cell setAlternateImage: selectedOpenTriangle]; 476 isInverted = YES; 477 } 478 415 479 @end 416 480
Note:
See TracChangeset
for help on using the changeset viewer.