-//
-// ITChasingArrowsView.h
-//
-//
-// Created by Doug Brown on Sat May 11 2002.
-// Copyright (c) 2002 iThink Software. All rights reserved.
-//
+/*
+ * ITKit
+ * ITStatusItem
+ * NSStatusItem subclass which reduces suckage
+ *
+ * Original Author : Doug Brown
+ * Responsibility : Matt Judy <mjudy@ithinksw.com>
+ * Responsibility : Joseph Spiros <joseph.spiros@ithinksw.com>
+ *
+ * Copyright (c) 2002 iThink Software.
+ * All Rights Reserved
+ *
+ */
#import <AppKit/AppKit.h>
-@interface ITChasingArrowsView : NSView {
+@interface ITChasingArrowsView : NSView
+{
BOOL running, inForeground;
int curIndex;
NSTimer *timer;
NSArray *images;
}
+
- (IBAction)stop:(id)sender;
- (IBAction)start:(id)sender;
+
@end
-//
-// ITStatusItem.h
-// iThinkAppKit
-//
-// Created by Joseph Spiros on Fri Dec 06 2002.
-// Copyright (c) 2002 iThink Software. All rights reserved.
-//
+/*
+ * ITKit
+ * ITStatusItem
+ * NSStatusItem subclass which reduces suckage
+ *
+ * Original Author : Joseph Spiros <joseph.spiros@ithinksw.com>
+ * Responsibility : Matt Judy <mjudy@ithinksw.com>
+ * Responsibility : Joseph Spiros <joseph.spiros@ithinksw.com>
+ *
+ * Copyright (c) 2002 iThink Software.
+ * All Rights Reserved
+ *
+ */
-#import <AppKit/AppKit.h>
+#import <Cocoa/Cocoa.h>
-@interface ITStatusItem : NSStatusItem {
- NSStatusItem *statusItem;
+@interface ITStatusItem : NSStatusItem
+{
}
-- (NSStatusItem*) statusItem;
+
+- (id)initWithStatusBar:(NSStatusBar*)statusBar withLength:(float)length;
+
- (NSImage*) alternateImage;
- (void) setAlternateImage:(NSImage*)image;
+
@end
-//
-// ITStatusItem.m
-// iThinkAppKit
-//
-// Created by Joseph Spiros on Fri Dec 06 2002.
-// Copyright (c) 2002 iThink Software. All rights reserved.
-//
-
#import "ITStatusItem.h"
+/*************************************************************************/
+#pragma mark -
+#pragma mark EVIL HACKERY
+/*************************************************************************/
+
+// This stuff is actually implemented by the AppKit.
+// We declare it here to cancel out warnings.
+
+@interface NSStatusBarButton : NSButton
+@end
+
+@interface NSStatusItem (HACKHACKHACKHACK)
+- (id) _initInStatusBar:(NSStatusBar*)statusBar
+ withLength:(float)length
+ withPriority:(int)priority;
+- (NSStatusBarButton*) _button;
+@end
+
@implementation ITStatusItem
-- (id)initWithStatusBar:(NSStatusBar*)statusBar withLength:(float)length {
- statusItem = [statusBar statusItemWithLength:length];
+/*************************************************************************/
+#pragma mark -
+#pragma mark INITIALIZATION METHODS
+/*************************************************************************/
+
+- (id)initWithStatusBar:(NSStatusBar*)statusBar withLength:(float)length
+{
+ if ( ( self = [super _initInStatusBar:statusBar
+ withLength:length
+ withPriority:1000] ) ) {
+
+ //Eliminate the fucking shadow...
+ [[[self _button] cell] setType:NSNullCellType];
+
+ //Be something other than a dumbshit about highlighting...
+ [self setHighlightMode:YES];
+ }
+ return self;
}
-- (NSStatusItem*) statusItem {
- return statusItem;
-}
+
+/*************************************************************************/
+#pragma mark -
+#pragma mark ACCESSOR METHODS
+/*************************************************************************/
- (NSImage*) alternateImage {
- return [[statusItem _button] alternateImage];
+ return [[self _button] alternateImage];
}
- (void) setAlternateImage:(NSImage*)image {
- if ([[[[statusItem _button] cell] super] type] != 0) {
- [[[statusItem _button] cell] setType:0];
- }
- [[statusItem _button] setAlternateImage:image];
+ [[self _button] setAlternateImage:image];
}
@end