This is MiscProgressBar.m in view mode; [Download] [Up]
// // MiscProgressBar.h -- a simple view class for displaying progress bar // Written and Copyright (c) 1993 by James Heiser. (jheiser@adobe.com) // Version 1.0. All rights reserved. // // This notice may not be removed from this source code. // // This object is included in the MiscKit by permission from the author // and its use is governed by the MiscKit license, found in the file // "LICENSE.rtf" in the MiscKit distribution. Please refer to that file // for a list of all applicable permissions and restrictions. // // Added two methoods -setTicsVisible: (BOOL) and -isTicsVisible: // Allows the user to select whether ticmarks are Visible or not. // James Heiser Sat Sep 25 13:59:15 GMT-0800 1993 // // Added two methoods -setTicsOverBar:(BOOL) and -isTicsOverBar // Allows the user to select whether ticmarks are drawn above or // below progress bar. // Don Yacktman Mon Oct 18 22:58:52 MDT 1993 // // Added two methoods -setTickColor:(NXColor) and -tickColor // Allows user to set color of ticmarks. // Don Yacktman Mon Oct 18 22:58:52 MDT 1993 #import "MiscProgressBar.h" #define MISC_DEFALUT_TICKS 24 // number of ticks to show + 1 // (so 24 divisions between 0-1 ratio) #define MISC_DEFAULT_EMPHASIS 3 // every nth tick is longer... @implementation MiscProgressBar - initWithFrame:(NSRect)frameRect { [super initWithFrame:frameRect]; isTicsVisible = YES; isTicsOverBar = NO; numTicks = MISC_DEFALUT_TICKS; emphasis = MISC_DEFAULT_EMPHASIS; tc = [NSColor darkGrayColor]; return self; } - (NSColor *)tickColor { return tc; } - setTickColor:(NSColor *)color { tc = color; return self; } - renderTicks { if (isTicsVisible == YES) { int linecount; [tc set]; for (linecount = 1; linecount <= numTicks; ++linecount) { int xcoord = ([self bounds].size.width / numTicks) * linecount; PSnewpath(); PSmoveto(xcoord, 0); if (linecount % emphasis) PSlineto(xcoord, (int)([self bounds].size.height / 4)); else PSlineto(xcoord, (int)([self bounds].size.height / 2)); PSstroke(); } } return self; } - renderBar { if (isTicsOverBar) { [super renderBar]; [self renderTicks]; } else { [self renderTicks]; [super renderBar]; } return self; } - setTicsVisible:(BOOL)aBool { isTicsVisible = aBool; [self display]; return self; } - (BOOL)isTicsVisible { return isTicsVisible; } - setTicsOverBar:(BOOL)aBool { isTicsOverBar = aBool; [self display]; return self; } - (BOOL)isTicsOverBar { return isTicsOverBar; } - setNumTicks:(int)anInt { numTicks = MAX(anInt + 1, 1); [self display]; return self; } - (int)numTicks { return (numTicks - 1); } - setEmphasis:(int)anInt { emphasis = MAX(anInt, 1); [self display]; return self; } - (int)emphasis { return emphasis; } - (id)initWithCoder:(NSCoder *)aDecoder { [super initWithCoder:aDecoder]; [aDecoder decodeValuesOfObjCTypes:"ccii", &isTicsVisible, &isTicsOverBar, &numTicks, &emphasis]; tc = [[aDecoder decodeObject] retain]; return self; } - (void)encodeWithCoder:(NSCoder *)aCoder { [super encodeWithCoder:aCoder]; [aCoder encodeValuesOfObjCTypes:"ccii", &isTicsVisible, &isTicsOverBar, &numTicks, &emphasis]; [aCoder encodeObject:tc]; } - (NSString *)inspectorClassName { return @"MiscProgressBarInspector"; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.