Changeset 5178

Show
Ignore:
Timestamp:
01/18/08 05:53:41 (6 months ago)
Author:
morris
Message:

Use IKImagePicker on 10.5

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • WiredAdditions/trunk/WIImageViewWithImagePicker.h

    r4787 r5178  
    3131        NSSize                                  _maxImageSize; 
    3232         
    33         BOOL                                    _pickerIsAvailable; 
     33        BOOL                                    _10_4_pickerIsAvailable; 
     34        BOOL                                    _10_5_pickerIsAvailable; 
    3435        id                                              _picker; 
    3536} 
  • WiredAdditions/trunk/WIImageViewWithImagePicker.m

    r5002 r5178  
    124124 
    125125 
     126// 
     127//  IKPictureTaker.h 
     128//  ImageKit 
     129// 
     130//  Copyright (c) 2006 Apple Computer, Inc. All rights reserved. 
     131// 
     132 
     133@interface IKPictureTaker : NSPanel { 
     134@private 
     135        void *__strong _ikReserved; 
     136} 
     137 
     138+ (IKPictureTaker *) pictureTaker; 
     139- (NSInteger) runModal; 
     140- (void) beginPictureTakerWithDelegate:(id) delegate didEndSelector:(SEL) didEndSelector contextInfo:(void *) contextInfo;  
     141- (void) beginPictureTakerSheetForWindow:(NSWindow *)aWindow withDelegate:(id) delegate didEndSelector:(SEL) didEndSelector contextInfo:(void *) contextInfo;  
     142- (void) popUpRecentsMenuForView:(NSView *) aView withDelegate:(id) delegate didEndSelector:(SEL) didEndSelector contextInfo:(void *) contextInfo;  
     143- (void) setInputImage:(NSImage *) image; 
     144- (NSImage*) inputImage; 
     145- (NSImage*) outputImage; 
     146- (void) setMirroring:(BOOL)b; 
     147- (BOOL) mirroring; 
     148 
     149@end 
     150 
     151extern NSString *const IKPictureTakerAllowsVideoCaptureKey; 
     152extern NSString *const IKPictureTakerAllowsFileChoosingKey; 
     153extern NSString *const IKPictureTakerShowRecentPictureKey; 
     154extern NSString *const IKPictureTakerUpdateRecentPictureKey; 
     155extern NSString *const IKPictureTakerAllowsEditingKey; 
     156extern NSString *const IKPictureTakerShowEffectsKey; 
     157extern NSString *const IKPictureTakerInformationalTextKey; 
     158extern NSString *const IKPictureTakerImageTransformsKey; 
     159extern NSString *const IKPictureTakerOutputImageMaxSizeKey; 
     160extern NSString *const IKPictureTakerCropAreaSizeKey; 
     161extern NSString *const IKPictureTakerShowAddressBookPictureKey; 
     162extern NSString *const IKPictureTakerShowEmptyPictureKey; 
     163 
     164 
     165 
    126166@interface WIImageViewWithImagePicker(Private) 
    127167 
     
    140180        recentPictureClass = NSClassFromString(@"NSIPRecentPicture"); 
    141181         
    142         _pickerIsAvailable = ([pickerClass respondsToSelector:@selector(sharedImagePickerControllerCreate:withTexturedWindow:)] && 
    143                                                   [pickerClass instancesRespondToSelector:@selector(window)] && 
    144                                                   [pickerClass instancesRespondToSelector:@selector(initAtPoint:inWindow:)] && 
    145                                                   [pickerClass instancesRespondToSelector:@selector(setDelegate:)] && 
    146                                                   [pickerClass instancesRespondToSelector:@selector(selectionChanged)] && 
    147                                                   [recentPictureClass instancesRespondToSelector:@selector(initWithOriginalImage:)] && 
    148                                                   [recentPictureClass instancesRespondToSelector:@selector(setCurrent)] && 
    149                                                   [recentPictureClass respondsToSelector:@selector(_saveChanges)]); 
     182        _10_4_pickerIsAvailable = ([pickerClass respondsToSelector:@selector(sharedImagePickerControllerCreate:withTexturedWindow:)] && 
     183                                                           [pickerClass instancesRespondToSelector:@selector(window)] && 
     184                                                           [pickerClass instancesRespondToSelector:@selector(initAtPoint:inWindow:)] && 
     185                                                           [pickerClass instancesRespondToSelector:@selector(setDelegate:)] && 
     186                                                           [pickerClass instancesRespondToSelector:@selector(selectionChanged)] && 
     187                                                           [recentPictureClass instancesRespondToSelector:@selector(initWithOriginalImage:)] && 
     188                                                           [recentPictureClass instancesRespondToSelector:@selector(setCurrent)] && 
     189                                                           [recentPictureClass respondsToSelector:@selector(_saveChanges)]); 
     190         
     191        _10_5_pickerIsAvailable = (NSClassFromString(@"IKImagePicker") != NULL); 
    150192} 
    151193 
     
    159201        NSPoint                 point; 
    160202         
    161         if(_pickerIsAvailable) { 
     203        if(_10_5_pickerIsAvailable) { 
     204                if(!_picker) 
     205                        _picker = [[NSClassFromString(@"IKImagePicker") pictureTaker] retain]; 
     206                 
     207                [_picker setInputImage:[self image]]; 
     208                [_picker beginPictureTakerWithDelegate:self 
     209                                                                didEndSelector:@selector(pictureTakerDidEnd:returnCode:contextInfo:) 
     210                                                                   contextInfo:NULL]; 
     211        } 
     212        else if(_10_4_pickerIsAvailable) { 
    162213                if(!_picker) { 
    163214                        _picker = [[NSClassFromString(@"NSImagePickerController") sharedImagePickerControllerCreate:YES withTexturedWindow:NO] retain]; 
     
    330381#pragma mark - 
    331382 
     383- (void) pictureTakerDidEnd:(id)picker returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo { 
     384        if(returnCode == NSOKButton) { 
     385                [self setImage:[picker outputImage]]; 
     386                 
     387                [[self target] performSelector:[self action] withObject:self]; 
     388        } 
     389} 
     390 
     391 
     392 
     393#pragma mark - 
     394 
    332395- (void)imagePicker:(id)imagePicker selectedImage:(NSImage *)image { 
    333396        NSIPRecentPicture       *recentPicture; 
  • WiredAdditions/trunk/WiredAdditions.xcodeproj/project.pbxproj

    r5109 r5178  
    183183                A54E10FD0C0799C300EF5FBF /* WIImageViewWithImagePicker.m in Sources */ = {isa = PBXBuildFile; fileRef = A54E10FB0C0799C300EF5FBF /* WIImageViewWithImagePicker.m */; }; 
    184184                A54E11160C079A3900EF5FBF /* AddressBook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A54E11150C079A3900EF5FBF /* AddressBook.framework */; }; 
     185                A5604A060D4069060080EA07 /* Quartz.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A5604A050D4069060080EA07 /* Quartz.framework */; }; 
    185186                A569E7FC0CCBFB740046F90E /* NSBezierPath-WIAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = A569E7FA0CCBFB740046F90E /* NSBezierPath-WIAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; 
    186187                A569E7FD0CCBFB740046F90E /* NSBezierPath-WIAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = A569E7FB0CCBFB740046F90E /* NSBezierPath-WIAdditions.m */; }; 
     
    393394                A54E10FB0C0799C300EF5FBF /* WIImageViewWithImagePicker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WIImageViewWithImagePicker.m; sourceTree = "<group>"; }; 
    394395                A54E11150C079A3900EF5FBF /* AddressBook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AddressBook.framework; path = /System/Library/Frameworks/AddressBook.framework; sourceTree = "<absolute>"; }; 
     396                A5604A050D4069060080EA07 /* Quartz.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quartz.framework; path = /System/Library/Frameworks/Quartz.framework; sourceTree = "<absolute>"; }; 
    395397                A56288F1097ED2BD00F34C4C /* wired */ = {isa = PBXFileReference; lastKnownFileType = folder; path = wired; sourceTree = BUILT_PRODUCTS_DIR; }; 
    396398                A56443710A261F1C00ADF4F5 /* Japanese */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Japanese; path = WiredAdditions/Japanese.lproj/ReleaseNotes.nib; sourceTree = "<group>"; }; 
     
    443445                                8DC2EF570486A6940098B216 /* Cocoa.framework in Frameworks */, 
    444446                                7724739A09DD82E30010335B /* ExceptionHandling.framework in Frameworks */, 
     447                                A5604A060D4069060080EA07 /* Quartz.framework in Frameworks */, 
    445448                        ); 
    446449                        runOnlyForDeploymentPostprocessing = 0; 
     
    463466                        isa = PBXGroup; 
    464467                        children = ( 
     468                                A5604A050D4069060080EA07 /* Quartz.framework */, 
    465469                                774896E40CC8A5BF00E95A83 /* Wired Additions */, 
    466470                                774896E70CC8A5CC00E95A83 /* Wired Networking */,