This is MiscProgressPie.m in view mode; [Download] [Up]
// // MiscProgressPie.m -- a simple view class for displaying a pie // Written and Copyright (c) 1993 by James Heiser. (jheiser@adobe.com) // Rendering code massaged by Don Yacktman. // Version 1.0. All rights reserved. // // OPENSTEP conversion and mods: Todd Anthony Nathan <todd@thoughtful.com> // // 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. // #import "MiscProgressPie.h" @implementation MiscProgressPie - initWithFrame:(NSRect)frameRect { [super initWithFrame:frameRect]; pb = [[self backgroundColor] retain]; // pie color [self setHidden:NO]; return ( self ); } - (void) dealloc { [pb release]; [super dealloc]; return; } - (void) renderBackground { if ( [self isHidden] ) { return; } [super renderBackground]; // Fill in the circle portion (pie background) first ... PSmoveto (NSWidth([self bounds]) / 2.0, NSHeight([self bounds]) / 2.0); PSarc (NSWidth([self bounds]) / 2.0, NSHeight([self bounds]) / 2.0, NSHeight([self bounds]) / 2.0, 0, 360); PSclosepath (); [pb set]; PSfill(); return; } - (void) renderBar { float angle; if ([self isHidden] || (ratio <= 0.0)) { return; } angle = 90.0; if (ratio >= 1.0) { angle = -270.0; } if (ratio < 1.0 && ratio > 0.0) { angle = 90.0 - 360.0 * ratio; } PSmoveto (NSWidth([self bounds]) / 2.0, NSHeight([self bounds]) / 2.0); PSarcn (NSWidth([self bounds]) / 2.0, NSHeight([self bounds]) / 2.0, NSHeight([self bounds]) / 2.0, 90.0, angle); PSclosepath (); [fg set]; PSfill(); return; } - (void) renderBorder { float angle; if ([self isHidden]) return; angle = 90.0; [bd set]; PSarc (([self bounds].size.width / 2), ([self bounds].size.height / 2), ([self bounds].size.height / 2), 0.0, 360.0); PSstroke(); if (ratio >= 1.0) { angle = -270.0; } if ((ratio < 1.0) && (ratio > 0.0)) { angle = 90.0 - 360.0 * ratio; } PSmoveto (NSWidth([self bounds]) / 2.0, NSHeight([self bounds]) / 2.0); PSarcn (NSWidth([self bounds]) / 2.0, NSHeight([self bounds]) / 2.0, NSHeight([self bounds]) / 2.0, 90.0, angle); PSclosepath(); PSstroke(); return; } - (void) setPieBackgroundColor:(NSColor *)newPieBackgroundColor { if ( pb != newPieBackgroundColor ) { id tmp; tmp = newPieBackgroundColor; pb = [newPieBackgroundColor retain]; [tmp release]; } return; } - (NSColor *)pieBackgroundColor { return ( pb ); } - (void) setHidden:(BOOL)aBool { isHidden = aBool; return; } - (BOOL) isHidden { return ( isHidden ); } - (id) initWithCoder:(NSCoder *)aDecoder { [super initWithCoder:aDecoder]; [aDecoder decodeValuesOfObjCTypes:"c", &isHidden]; pb = [[aDecoder decodeObject] retain]; // Brings in the Pie Background Color return ( self ); } - (void) encodeWithCoder:(NSCoder *)aCoder { [super encodeWithCoder:aCoder]; [aCoder encodeValuesOfObjCTypes:"c", &isHidden]; [aCoder encodeObject:pb]; // Save out the Pie Background Color return; } - (NSString *) inspectorClassName { return @"MiscProgressPieInspector"; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.