diff --git a/RHStatusItemView.xcodeproj/project.pbxproj b/RHStatusItemView.xcodeproj/project.pbxproj index 9cc1c91..b14eb5b 100644 --- a/RHStatusItemView.xcodeproj/project.pbxproj +++ b/RHStatusItemView.xcodeproj/project.pbxproj @@ -208,7 +208,7 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.7; + MACOSX_DEPLOYMENT_TARGET = 10.8; ONLY_ACTIVE_ARCH = YES; SDKROOT = macosx; }; @@ -230,7 +230,7 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.7; + MACOSX_DEPLOYMENT_TARGET = 10.8; SDKROOT = macosx; }; name = Release; @@ -238,6 +238,8 @@ 131B4ED31627AD6D00CCF430 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CLANG_ENABLE_OBJC_ARC = YES; COMBINE_HIDPI_IMAGES = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; @@ -254,6 +256,8 @@ 131B4ED41627AD6D00CCF430 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CLANG_ENABLE_OBJC_ARC = YES; COMBINE_HIDPI_IMAGES = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; diff --git a/RHStatusItemView.xcodeproj/project.xcworkspace/xcshareddata/RHStatusItemView.xccheckout b/RHStatusItemView.xcodeproj/project.xcworkspace/xcshareddata/RHStatusItemView.xccheckout new file mode 100644 index 0000000..f454ed4 --- /dev/null +++ b/RHStatusItemView.xcodeproj/project.xcworkspace/xcshareddata/RHStatusItemView.xccheckout @@ -0,0 +1,41 @@ + + + + + IDESourceControlProjectFavoriteDictionaryKey + + IDESourceControlProjectIdentifier + F6B5F711-AA9F-469C-BD86-D17EB4822F5A + IDESourceControlProjectName + RHStatusItemView + IDESourceControlProjectOriginsDictionary + + 5AE9B92A-9F83-43F9-BAE0-ECCB2F29E1AF + https://github.com/heardrwt/RHStatusItemView.git + + IDESourceControlProjectPath + RHStatusItemView.xcodeproj/project.xcworkspace + IDESourceControlProjectRelativeInstallPathDictionary + + 5AE9B92A-9F83-43F9-BAE0-ECCB2F29E1AF + ../.. + + IDESourceControlProjectURL + https://github.com/heardrwt/RHStatusItemView.git + IDESourceControlProjectVersion + 110 + IDESourceControlProjectWCCIdentifier + 5AE9B92A-9F83-43F9-BAE0-ECCB2F29E1AF + IDESourceControlProjectWCConfigurations + + + IDESourceControlRepositoryExtensionIdentifierKey + public.vcs.git + IDESourceControlWCCIdentifierKey + 5AE9B92A-9F83-43F9-BAE0-ECCB2F29E1AF + IDESourceControlWCCName + RHStatusItemView + + + + diff --git a/RHStatusItemView.xcodeproj/project.xcworkspace/xcuserdata/jens.xcuserdatad/UserInterfaceState.xcuserstate b/RHStatusItemView.xcodeproj/project.xcworkspace/xcuserdata/jens.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000..994b211 Binary files /dev/null and b/RHStatusItemView.xcodeproj/project.xcworkspace/xcuserdata/jens.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/RHStatusItemView.xcodeproj/project.xcworkspace/xcuserdata/jens.xcuserdatad/WorkspaceSettings.xcsettings b/RHStatusItemView.xcodeproj/project.xcworkspace/xcuserdata/jens.xcuserdatad/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..659c876 --- /dev/null +++ b/RHStatusItemView.xcodeproj/project.xcworkspace/xcuserdata/jens.xcuserdatad/WorkspaceSettings.xcsettings @@ -0,0 +1,10 @@ + + + + + HasAskedToTakeAutomaticSnapshotBeforeSignificantChanges + + SnapshotAutomaticallyBeforeSignificantChanges + + + diff --git a/RHStatusItemView.xcodeproj/xcuserdata/jens.xcuserdatad/xcschemes/RHStatusItemView.xcscheme b/RHStatusItemView.xcodeproj/xcuserdata/jens.xcuserdatad/xcschemes/RHStatusItemView.xcscheme new file mode 100644 index 0000000..b782e57 --- /dev/null +++ b/RHStatusItemView.xcodeproj/xcuserdata/jens.xcuserdatad/xcschemes/RHStatusItemView.xcscheme @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/RHStatusItemView.xcodeproj/xcuserdata/jens.xcuserdatad/xcschemes/xcschememanagement.plist b/RHStatusItemView.xcodeproj/xcuserdata/jens.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..4bc11dd --- /dev/null +++ b/RHStatusItemView.xcodeproj/xcuserdata/jens.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + RHStatusItemView.xcscheme + + orderHint + 0 + + + SuppressBuildableAutocreation + + 131B4EBC1627AD6D00CCF430 + + primary + + + + + diff --git a/RHStatusItemView/RHStatusItemView.h b/RHStatusItemView/RHStatusItemView.h index 429c816..d1f51ee 100644 --- a/RHStatusItemView/RHStatusItemView.h +++ b/RHStatusItemView/RHStatusItemView.h @@ -46,19 +46,17 @@ BOOL _isMenuVisible; } -@property (nonatomic, assign) NSStatusItem *statusItem; //should never be nil +@property (nonatomic) NSStatusItem *statusItem; //should never be nil -@property (nonatomic, retain) NSImage *image; -@property (nonatomic, retain) NSImage *alternateImage; +@property (nonatomic, strong) NSImage *image; +@property (nonatomic, strong) NSImage *alternateImage; // NSControl provides these for us //@property (weak) id target; //@property SEL action; //if no action specified, we will try and pop up menu if set. - -@property SEL rightAction; //if no rightAction specified, we will try and pop up, in order rightMenu, menu. - -@property (nonatomic, retain) NSMenu *menu; -@property (nonatomic, retain) NSMenu *rightMenu; +//@property (strong) NSMenu *menu; +@property (nonatomic) SEL rightAction; //if no rightAction specified, we will try and pop up, in order rightMenu, menu. +@property (nonatomic, strong) NSMenu *rightMenu; -(id)initWithStatusBarItem:(NSStatusItem*)statusItem; //designated initializer diff --git a/RHStatusItemView/RHStatusItemView.m b/RHStatusItemView/RHStatusItemView.m index 02c1446..eae93d7 100644 --- a/RHStatusItemView/RHStatusItemView.m +++ b/RHStatusItemView/RHStatusItemView.m @@ -27,10 +27,6 @@ // THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -static CGFloat RHStatusItemViewImageHPadding = 4.0f; -static CGFloat RHStatusItemViewImageVPadding = 3.0f; - - #import "RHStatusItemView.h" @implementation RHStatusItemView @@ -41,8 +37,6 @@ @implementation RHStatusItemView @synthesize alternateImage=_alternateImage; @synthesize rightAction=_rightAction; - -@synthesize menu=_menu; @synthesize rightMenu=_rightMenu; @@ -64,15 +58,9 @@ -(id)initWithStatusBarItem:(NSStatusItem*)statusItem{ - (void)dealloc{ _statusItem = nil; - [_image release]; _image = nil; - [_alternateImage release]; _alternateImage = nil; - _rightAction = NULL; - [_menu release]; _menu = nil; - [_rightMenu release]; _rightMenu = nil; - [super dealloc]; } @@ -80,12 +68,13 @@ - (void)dealloc{ -(void)setStatusItem:(NSStatusItem *)statusItem{ if (!statusItem) [NSException raise:NSInvalidArgumentException format:@"-[%@ %@] statusItem should not be nil!", NSStringFromClass(self.class), NSStringFromSelector(_cmd)]; _statusItem = statusItem; + _statusItem.highlightMode = YES; + _statusItem.view = self; } -(void)setImage:(NSImage *)image{ if (image != _image){ - [_image release]; - _image = [image retain]; + _image = image; } [self setNeedsDisplay]; @@ -93,8 +82,7 @@ -(void)setImage:(NSImage *)image{ -(void)setAlternateImage:(NSImage *)alternateImage{ if (alternateImage != _alternateImage){ - [_alternateImage release]; - _alternateImage = [alternateImage retain]; + _alternateImage = alternateImage; } [self setNeedsDisplay]; @@ -108,14 +96,15 @@ - (void)drawRect:(NSRect)rect { // Draw status bar background, highlighted if menu is showing [_statusItem drawStatusBarBackgroundInRect:[self bounds] withHighlight:highlighted]; - NSRect imageRect = NSInsetRect(self.bounds, RHStatusItemViewImageHPadding, RHStatusItemViewImageVPadding); - imageRect.origin.y++; //move it up one pix - - if (highlighted){ - [self.alternateImage drawInRect:imageRect fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1]; - } else { - [self.image drawInRect:imageRect fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1]; - } + NSImage *image = self.image; + if (highlighted && self.alternateImage) + image = self.alternateImage; + + [image drawInRect:self.bounds fromRect:NSRectFromCGRect( + CGRectMake( image.size.width / 2 - self.bounds.size.width / 2, + image.size.height / 2 - self.bounds.size.height / 2, + self.bounds.size.width, self.bounds.size.height ) ) + operation:NSCompositeSourceOver fraction:1]; }