#import <Cocoa/Cocoa.h>
-@interface ITStatusItem : NSStatusItem {
+@class ITStatusItem;
+
+@protocol ITStatusItemMenuProvider
+- (NSMenu *)menuForStatusItem:(ITStatusItem *)statusItem;
+@end
+@interface ITStatusItem : NSStatusItem {
+ id <ITStatusItemMenuProvider> _menuProvider;
}
- (id)initWithStatusBar:(NSStatusBar *)statusBar withLength:(float)length;
- (NSImage *)alternateImage;
- (void)setAlternateImage:(NSImage *)image;
+- (id <ITStatusItemMenuProvider>)menuProvider;
+- (void)setMenuProvider:(id <ITStatusItemMenuProvider>)provider;
+
@end
\ No newline at end of file
[(NSButton *)[self _button] setAlternateImage:image];
}
+- (id <ITStatusItemMenuProvider>)menuProvider {
+ return _menuProvider;
+}
+
+- (void)setMenuProvider:(id <ITStatusItemMenuProvider>)provider {
+ [_menuProvider autorelease];
+ _menuProvider = [provider retain];
+}
+
+- (NSMenu *)menu {
+ if (_menuProvider) {
+ return [_menuProvider menuForStatusItem:self];
+ } else {
+ return [super menu];
+ }
+}
+
@end
\ No newline at end of file