type

IChartDrawer = interface

['{6D8E5591-6788-4D2D-9FE6-596D5157C3C3}']

procedure AddToFontOrientation(ADelta: Integer);

procedure ClippingStart(const AClipRect: TRect);

procedure ClippingStart;

procedure ClippingStop;

procedure DrawingBegin(const ABoundingBox: TRect);

procedure DrawingEnd;

procedure DrawLineDepth(AX1, AY1, AX2, AY2, ADepth: Integer);

procedure DrawLineDepth(const AP1, AP2: TPoint; ADepth: Integer);

procedure Ellipse(AX1, AY1, AX2, AY2: Integer);

procedure FillRect(AX1, AY1, AX2, AY2: Integer);

function GetBrushColor: TChartColor;

function GetFontAngle: Double; // in radians

function GetFontColor: TFPColor;

function GetFontName: String;

function GetFontSize: Integer;

function GetFontStyle: TChartFontStyles;

function GetPenColor: TChartColor;

procedure SetDoChartColorToFPColorFunc(AValue: TChartColorToFPColorFunc);

procedure Line(AX1, AY1, AX2, AY2: Integer);

procedure Line(const AP1, AP2: TPoint);

procedure LineTo(AX, AY: Integer);

procedure LineTo(const AP: TPoint);

procedure MoveTo(AX, AY: Integer);

procedure MoveTo(const AP: TPoint);

procedure Polygon(

const APoints: array of TPoint; AStartIndex, ANumPts: Integer);

procedure Polyline(

const APoints: array of TPoint; AStartIndex, ANumPts: Integer);

procedure PrepareSimplePen(AColor: TChartColor);

procedure PutImage(AX, AY: Integer; AImage: TFPCustomImage);

procedure PutPixel(AX, AY: Integer; AColor: TChartColor);

procedure RadialPie(

AX1, AY1, AX2, AY2: Integer;

AStartAngle16Deg, AAngleLength16Deg: Integer);

procedure Rectangle(const ARect: TRect);

procedure Rectangle(AX1, AY1, AX2, AY2: Integer);

procedure ResetFont;

function Scale(ADistance: Integer): Integer;

procedure SetAntialiasingMode(AValue: TChartAntialiasingMode);

procedure SetBrush(ABrush: TFPCustomBrush);

procedure SetBrushColor(AColor: TChartColor);

procedure SetBrushParams(AStyle: TFPBrushStyle; AColor: TChartColor);

procedure SetFont(AValue: TFPCustomFont);

procedure SetGetFontOrientationFunc(AValue: TGetFontOrientationFunc);

procedure SetMonochromeColor(AColor: TChartColor);

procedure SetPen(APen: TFPCustomPen);

procedure SetPenColor(AColor: TChartColor);

procedure SetPenParams(AStyle: TFPPenStyle; AColor: TChartColor; AWidth: Integer = 1);

procedure SetPenWidth(AWidth: Integer);

function GetRightToLeft: Boolean;

procedure SetRightToLeft(AValue: Boolean);

procedure SetTransparency(ATransparency: TChartTransparency);

procedure SetXor(AXor: Boolean);

function TextExtent(const AText: String;

ATextFormat: TChartTextFormat = tfNormal): TPoint;

function TextExtent(AText: TStrings;

ATextFormat: TChartTextFormat = tfNormal): TPoint;

function TextOut: TChartTextOut;

property Brush: TFPCustomBrush write SetBrush;

property BrushColor: TChartColor read GetBrushColor write SetBrushColor;

property Font: TFPCustomFont write SetFont;

property Pen: TFPCustomPen write SetPen;

property DoChartColorToFPColor: TChartColorToFPColorFunc

write SetDoChartColorToFPColorFunc;

property DoGetFontOrientation: TGetFontOrientationFunc

write SetGetFontOrientationFunc;

end;