Annotation of Examples/DatabaseKit/BarChart/ChartOfMatrix.h, revision 1.1.1.1

1.1       root        1: /* 
                      2:  * BarChart, A simple multi source loadable class.
                      3:  *
                      4:  *     Written by: Joe Freeman 7/92
                      5:  *     
                      6:  *     HSB color sweep stolen from some of Randy Nelson's code
                      7:  *             should use NXEqualColor() for duplicates
                      8:  *
                      9:  */
                     10: /* bar spacing:Each plot is a width of 2N and each gap is a width of 1N
                     11:  *     The total width is m*(2N+N) + N  = 3mN+N = where m is number of bars
                     12:  *     Thus N = width / (3m+1)
                     13:  */
                     14: 
                     15: /* Generated by Interface Builder */
                     16: 
                     17: #import <appkit/appkit.h>
                     18: #import <dbkit/dbkit.h>
                     19: 
                     20: typedef enum _graphType {
                     21:        DRAW_H_BAR      = 0,
                     22:        DRAW_V_BAR      = 1,
                     23:        DRAW_H_LINE     = 2,
                     24:        DRAW_V_LINE     = 3     /* not impl */
                     25:        } graphType;
                     26:        
                     27: 
                     28: @interface ChartOfMatrix:View
                     29: {
                     30:     id dataSrc;                /* only connect in nib if is really matrix */
                     31:     id minField;
                     32:     id maxField;
                     33:     id meanField;
                     34: 
                     35:     float      minSheetSet, maxSheetSet;/* min and max size  if not auto */
                     36:     float      vMargin,hMargin;/* size of top/bottom, right/left margins */
                     37:     struct _COM_Flags {
                     38:        BOOL    autoScale:1;    /*  set vertical on fly or from xxxSheetSet */
                     39:        BOOL    randomBarColors:1;/* random color for the bars */
                     40:        BOOL    drawFrame:1;    /* the black line around the plot */
                     41:        unsigned drawType:3;    /* bars, h, v, line */
                     42:        unsigned dummy:10;
                     43:        } COM_Flags;
                     44:     NXColor    backgroundColor;
                     45:     NXColor    highlightColor;
                     46:     unsigned int       highlightIndex; /* currently selected row */
                     47:     int                numPrototypes;  /* number of prototype bars/ points disp IB */
                     48:     int                borderType;     /* should we bezel */
                     49:     
                     50:     id         mrExpression,mrFetchGroup; /* if getting fed from recordList */
                     51: 
                     52: }
                     53: 
                     54: - initFrame:(NXRect *)r;
                     55: - awake;
                     56: 
                     57: /*============================================================
                     58:  * color dragging support
                     59:  *============================================================*/
                     60: 
                     61: - (NXDragOperation)draggingEntered:(id <NXDraggingInfo>)sender;
                     62: - (BOOL)performDragOperation:(id <NXDraggingInfo>)sender;
                     63: 
                     64: /*============================================================
                     65:  * instance set / query methods
                     66:  *============================================================*/
                     67: 
                     68: - setGraphType:(int)drawCode;
                     69: - (int)graphType;
                     70: 
                     71: /* */
                     72: - takeRandomColorStateFrom:sender;
                     73: - setRandomBarColorEnabled:(BOOL)flag;
                     74: - (BOOL)isRandomBarColorEnabled;
                     75: - takeBackgroundColorFrom:sender;
                     76: - setBackgroundColor:(NXColor)aColor;
                     77: - (NXColor)backgroundColor;
                     78: - takeHighlightColorFrom:sender;
                     79: - setHighlightColor:(NXColor)aColor;
                     80: - (NXColor)highlightColor;
                     81: 
                     82: 
                     83: /* set and query the size for the margins (in points) */
                     84: - takeHMarginFrom:sender;
                     85: - takeVMarginFrom:sender;
                     86: - (float)hMargin;
                     87: - (float)vMargin;
                     88: 
                     89: /* fancy controls */
                     90: - takeFrameStateFrom:sender;
                     91: - (BOOL)frameState;
                     92: - takeNumProtosFrom:sender;
                     93: - (int)numProtos;
                     94: - takeBorderTypeFrom:sender;   /* what type of bezel  gets sender's tag*/
                     95: - (int)borderType;
                     96: 
                     97: - takeAutoScaleStateFrom:sender;
                     98: - setAutoScale:(BOOL)flag;
                     99: - (BOOL)autoScale;
                    100: 
                    101: /* when autoscale is off, set the min and max for the sheet */
                    102: - takeMinValueFrom:sender;
                    103: - takeMaxValueFrom:sender;
                    104: - (double)minValue;
                    105: - (double)maxValue;
                    106: 
                    107: /*============================================================
                    108:  * pasteboard
                    109:  *============================================================*/
                    110: 
                    111: - copy:sender;
                    112: 
                    113: /*============================================================
                    114:  * do real work
                    115:  *============================================================*/
                    116: 
                    117: - (int)numLocations;
                    118: - (float)valueOfLocation:(int)n;
                    119: - calcRect:(NXRect *)r 
                    120:        ofBar:(int)n 
                    121:        insideRect:(NXRect *)boundingRect
                    122:        usingMin:(float)minSheetVal;
                    123: 
                    124: /*============================================================
                    125:  * target action loading
                    126:  *============================================================*/
                    127: 
                    128: - plotFromMatrix:sender;
                    129:        /* we get this when DBModule fetches new batch of values */
                    130:        
                    131: /*============================================================
                    132:  * dbKit feed
                    133:  *============================================================*/
                    134: 
                    135: - associationContentsDidChange:association;
                    136:        /* we get this when values are updated via UI */
                    137: - association:association setValue:(DBValue *)value;
                    138:        /* we get this when the selection changes */
                    139: - associationSelectionDidChange:association;
                    140:        /* we get this when a row is deleted */
                    141: - associationCurrentRecordDidDelete:association;
                    142: 
                    143: 
                    144: /*============================================================
                    145:  * do a selection with the mouse
                    146:  *============================================================*/
                    147:  
                    148: - mouseDown:(NXEvent *)theEvent;
                    149: 
                    150: /*============================================================
                    151:  * archiving for the inspector 
                    152:  *============================================================*/
                    153: 
                    154: - read:(NXTypedStream *)stream;
                    155: - write:(NXTypedStream *)stream;
                    156: 
                    157: /*============================================================
                    158:  * rendering 
                    159:  *============================================================*/
                    160: 
                    161: - calcMin:(float *)rMin andMax:(float *)rMax andMean:(float *)rMean;
                    162: - renderVLines:(NXRect *)r  min:(float )minSheetVal max:(float )maxSheetVal;
                    163: - renderBars:(NXRect *)r min:(float )minSheetVal max:(float )maxSheetVal;
                    164: 
                    165: /*============================================================
                    166:  * rendering 
                    167:  *============================================================*/
                    168: 
                    169: - drawSelf:(NXRect *)r :(int)c;
                    170: 
                    171: @end

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.