X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fthecheat;a=blobdiff_plain;f=StatusTextField.m;fp=StatusTextField.m;h=fa8f353e587f336175225fc4dee04488bf56117c;hp=0000000000000000000000000000000000000000;hb=d27548f80fe411fda2ee69c74a24eab4292267e9;hpb=e8d51183acdd2410a38dcf8f0efbf7c30cd6c581 diff --git a/StatusTextField.m b/StatusTextField.m new file mode 100644 index 0000000..fa8f353 --- /dev/null +++ b/StatusTextField.m @@ -0,0 +1,132 @@ + +// ********************************************************************** +// The Cheat - A universal game cheater for Mac OS X +// (C) 2003-2005 Chaz McGarvey (BrokenZipper) +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 1, or (at your option) +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +// + +#import "StatusTextField.h" + + +@interface StatusTextField ( Private ) + +- (void)doTimer:(NSTimer *)timer; + +@end + + +@implementation StatusTextField + + +- (id)init +{ + if ( self = [super init] ) { + myTimer = nil; + } + return self; +} + +- (void)dealloc +{ + [myDefaultStatus release]; + [myTimer invalidate]; + [myTimer release]; + + [super dealloc]; +} + + +- (void)setDefaultStatus:(NSString *)message +{ + [self setDefaultStatus:message color:[NSColor blackColor]]; +} + +- (void)setDefaultStatus:(NSString *)message color:(NSColor *)color +{ + if ( !message ) { + message = [NSString stringWithString:@""]; + } + if ( !color ) { + color = [NSColor blackColor]; + } + // save the new values + [message retain]; + [myDefaultStatus release]; + myDefaultStatus = message; + // save the new values + [color retain]; + [myDefaultColor release]; + myDefaultColor = color; + // set the new default if there isn't already a temp showing + if ( !myTimer ) { + [self setStringValue:myDefaultStatus]; + [self setTextColor:myDefaultColor]; + } +} + + +- (void)setTemporaryStatus:(NSString *)message +{ + [self setTemporaryStatus:message color:[NSColor blackColor]]; +} + +- (void)setTemporaryStatus:(NSString *)message color:(NSColor *)color +{ + [self setTemporaryStatus:message color:color duration:4.0]; +} + +- (void)setTemporaryStatus:(NSString *)message duration:(NSTimeInterval)duration +{ + [self setTemporaryStatus:message color:[NSColor blackColor] duration:duration]; +} + +- (void)setTemporaryStatus:(NSString *)message color:(NSColor *)color duration:(NSTimeInterval)duration +{ + // stop any current temporary status + [myTimer invalidate]; + [myTimer release]; + + if ( !message ) { + message = [NSString stringWithString:@""]; + } + if ( !color ) { + color = [NSColor blackColor]; + } + // set the new temporary status + [self setStringValue:message]; + [self setTextColor:color]; + // start the timer + myTimer = [[NSTimer scheduledTimerWithTimeInterval:duration target:self selector:@selector(doTimer:) userInfo:nil repeats:NO] retain]; +} + + +- (void)doTimer:(NSTimer *)timer +{ + // kill the timer + [myTimer release]; + myTimer = nil; + + // set the default status + if ( myDefaultStatus ) { + [self setStringValue:myDefaultStatus]; + } + if ( myDefaultColor ) { + [self setTextColor:myDefaultColor]; + } +} + + +@end