//

//  MRGraphView.h

//  MyCustomGraphView

//

//  Created by Marco Rotatori on 02/02/10.

//  Copyright 2010 Marco Rotatori. All rights reserved.

//


#import <Cocoa/Cocoa.h>



enum _pointType {

dot = 0,

circle,

square,

rhombus

};



@interface MRGraphView : NSView {

float *values; // l'array che conterrà i valori da rappresentare (asse Y)

int valuesNumber; // il numero di valori

float yStart; // il valore di partenza dell'asse Y

float yIncrement; // il valore di incremento dell'asse Y

float xStart; // il valore di partenza dell'asse X

float xIncrement; // il valore di incremento dell'asse X

float border; // la distanza del grafico dal bordo della view

float yBorder; // la distanza per rappresentare i valori dell'asse Y

float xBorder; // la distanza per rappresentare i valori dell'asse X

float maxY; // il valore massimo visualizzabile nell'asse Y

BOOL straight; // indica se il grafico verrà rappresentato con segmenti retti o sinuosi

BOOL showPoints; // indica se mostrare i punti dei vari valori

int pointType; // il tipo di punto

float pointScale; // la dimensione in scala del punto

NSColor *pointStrokeColor; // il colore della traccia dei punti

NSColor *pointFillColor; // il colore di riempimento dei punti

float pointStrokeWidth; // lo spessore della traccia dei punti

float defaultStrokeWidth; // lo spessore di default per tutte le tracce

NSColor *backgroundColor; // il colore di fondo

NSColor *graphStrokeColor; // il colore della traccia del grafico

float graphStrokeWidth; // lo spessore della traccia del grafico

BOOL showVerticalStrokes; // indica se mostrare le tracce verticali

BOOL showHorizontalStrokes; // indica se mostrare le tracce orizzontali

BOOL showYValues; // indica se mostrare i valori dell'asse Y

BOOL showXValues; // indica se mostrare i valori dell'asse Y

NSString *yTitle; // il titolo dell'asse Y

NSString *xTitle; // il titolo dell'asse X

NSMutableDictionary *fontAttr; // gli attributi della font che useremo per stampare i valori

}


- (void)setValues:(float *)vals length:(int)itemsNumber;

- (void)drawPointAtPoint:(NSPoint)point;


void fillRhombusInRect(CGContextRef context, CGRect rect);

void strokeRhombusInRect(CGContextRef context, CGRect rect);


CGRect CGRectFromNSRect(NSRect nsrect);


@end