ftp.nice.ch/pub/next/developer/objc/dbkit/BarChart.92.9.s.tar.gz#/BarChart/ChartOfMatrix.h

This is ChartOfMatrix.h in view mode; [Download] [Up]

/* 
 * BarChart, A simple multi source loadable class.
 *
 *	Written by: Joe Freeman 7/92
 *	
 *	HSB color sweep stolen from some of Randy Nelson's code
 *		should use NXEqualColor() for duplicates
 *
 */
/* bar spacing:Each plot is a width of 2N and each gap is a width of 1N
 *	The total width is m*(2N+N) + N  = 3mN+N = where m is number of bars
 *	Thus N = width / (3m+1)
 */

/* Generated by Interface Builder */

#import <appkit/appkit.h>
#import <dbkit/dbkit.h>

typedef enum _graphType {
	DRAW_H_BAR	= 0,
	DRAW_V_BAR	= 1,
	DRAW_H_LINE	= 2,
	DRAW_V_LINE	= 3	/* not impl */
	} graphType;
	

@interface ChartOfMatrix:View
{
    id	dataSrc;		/* only connect in nib if is really matrix */
    id	minField;
    id	maxField;
    id	meanField;

    float	minSheetSet, maxSheetSet;/* min and max size  if not auto */
    float	vMargin,hMargin;/* size of top/bottom, right/left margins */
    struct _COM_Flags {
    	BOOL	autoScale:1;	/*  set vertical on fly or from xxxSheetSet */
	BOOL	randomBarColors:1;/* random color for the bars */
	BOOL	drawFrame:1;	/* the black line around the plot */
	unsigned drawType:3;	/* bars, h, v, line */
	unsigned dummy:10;
	} COM_Flags;
    NXColor	backgroundColor;
    NXColor	highlightColor;
    unsigned int	highlightIndex;	/* currently selected row */
    int		numPrototypes;	/* number of prototype bars/ points disp IB */
    int		borderType;	/* should we bezel */
    
    id		mrExpression,mrFetchGroup; /* if getting fed from recordList */

}

- initFrame:(NXRect *)r;
- awake;

/*============================================================
 * color dragging support
 *============================================================*/

- (NXDragOperation)draggingEntered:(id <NXDraggingInfo>)sender;
- (BOOL)performDragOperation:(id <NXDraggingInfo>)sender;

/*============================================================
 * instance set / query methods
 *============================================================*/

- setGraphType:(int)drawCode;
- (int)graphType;

/* */
- takeRandomColorStateFrom:sender;
- setRandomBarColorEnabled:(BOOL)flag;
- (BOOL)isRandomBarColorEnabled;
- takeBackgroundColorFrom:sender;
- setBackgroundColor:(NXColor)aColor;
- (NXColor)backgroundColor;
- takeHighlightColorFrom:sender;
- setHighlightColor:(NXColor)aColor;
- (NXColor)highlightColor;


/* set and query the size for the margins (in points) */
- takeHMarginFrom:sender;
- takeVMarginFrom:sender;
- (float)hMargin;
- (float)vMargin;

/* fancy controls */
- takeFrameStateFrom:sender;
- (BOOL)frameState;
- takeNumProtosFrom:sender;
- (int)numProtos;
- takeBorderTypeFrom:sender;	/* what type of bezel  gets sender's tag*/
- (int)borderType;

- takeAutoScaleStateFrom:sender;
- setAutoScale:(BOOL)flag;
- (BOOL)autoScale;

/* when autoscale is off, set the min and max for the sheet */
- takeMinValueFrom:sender;
- takeMaxValueFrom:sender;
- (double)minValue;
- (double)maxValue;

/*============================================================
 * pasteboard
 *============================================================*/

- copy:sender;

/*============================================================
 * do real work
 *============================================================*/

- (int)numLocations;
- (float)valueOfLocation:(int)n;
- calcRect:(NXRect *)r 
	ofBar:(int)n 
	insideRect:(NXRect *)boundingRect
	usingMin:(float)minSheetVal;

/*============================================================
 * target action loading
 *============================================================*/

- plotFromMatrix:sender;
	/* we get this when DBModule fetches new batch of values */
	
/*============================================================
 * dbKit feed
 *============================================================*/

- associationContentsDidChange:association;
	/* we get this when values are updated via UI */
- association:association setValue:(DBValue *)value;
	/* we get this when the selection changes */
- associationSelectionDidChange:association;
	/* we get this when a row is deleted */
- associationCurrentRecordDidDelete:association;


/*============================================================
 * do a selection with the mouse
 *============================================================*/
 
- mouseDown:(NXEvent *)theEvent;

/*============================================================
 * archiving for the inspector 
 *============================================================*/

- read:(NXTypedStream *)stream;
- write:(NXTypedStream *)stream;

/*============================================================
 * rendering 
 *============================================================*/

- calcMin:(float *)rMin andMax:(float *)rMax andMean:(float *)rMean;
- renderVLines:(NXRect *)r  min:(float )minSheetVal max:(float )maxSheetVal;
- renderBars:(NXRect *)r min:(float )minSheetVal max:(float )maxSheetVal;

/*============================================================
 * rendering 
 *============================================================*/

- drawSelf:(NXRect *)r :(int)c;

@end

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.