From 6cd1638f185fe24e29175d16f24351f89d488bcf Mon Sep 17 00:00:00 2001 From: ask Date: Thu, 31 Jan 2013 09:25:00 +0000 Subject: [PATCH] TAChart: Support monochrome mode in svg drawing back-end git-svn-id: trunk@40091 - --- components/tachart/tadrawersvg.pas | 14 ++++++++------ components/tachart/tadrawutils.pas | 9 +++++++++ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/components/tachart/tadrawersvg.pas b/components/tachart/tadrawersvg.pas index dab2fac46e..6af96d2822 100644 --- a/components/tachart/tadrawersvg.pas +++ b/components/tachart/tadrawersvg.pas @@ -277,7 +277,7 @@ end; procedure TSVGDrawer.PrepareSimplePen(AColor: TChartColor); begin - FPen.FPColor := FChartColorToFPColorFunc(AColor); + FPen.FPColor := FChartColorToFPColorFunc(ColorOrMono(AColor)); FPen.Style := psSolid; FPen.Width := 1; end; @@ -323,36 +323,38 @@ end; procedure TSVGDrawer.SetBrush(ABrush: TFPCustomBrush); begin - FBrushColor := ABrush.FPColor; + FBrushColor := FPColorOrMono(ABrush.FPColor); end; procedure TSVGDrawer.SetBrushColor(AColor: TChartColor); begin - FBrushColor := FChartColorToFPColorFunc(AColor); + FBrushColor := FChartColorToFPColorFunc(ColorOrMono(AColor)); end; procedure TSVGDrawer.SetBrushParams( AStyle: TFPBrushStyle; AColor: TChartColor); begin - FBrushColor := FChartColorToFPColorFunc(AColor); + FBrushColor := FChartColorToFPColorFunc(ColorOrMono(AColor)); Unused(AStyle); end; procedure TSVGDrawer.SetFont(AFont: TFPCustomFont); begin FFont := AFont; + if FMonochromeColor <> clTAColor then + FFont.FPColor := FChartColorToFPColorFunc(FMonochromeColor); end; procedure TSVGDrawer.SetPen(APen: TFPCustomPen); begin - FPen.FPColor := APen.FPColor; + FPen.FPColor := FPColorOrMono(APen.FPColor); FPen.Style := APen.Style; FPen.Width := APen.Width; end; procedure TSVGDrawer.SetPenParams(AStyle: TFPPenStyle; AColor: TChartColor); begin - FPen.FPColor := FChartColorToFPColorFunc(AColor); + FPen.FPColor := FChartColorToFPColorFunc(ColorOrMono(AColor)); FPen.Style := AStyle; end; diff --git a/components/tachart/tadrawutils.pas b/components/tachart/tadrawutils.pas index 350138eb07..8001d2759c 100644 --- a/components/tachart/tadrawutils.pas +++ b/components/tachart/tadrawutils.pas @@ -131,6 +131,7 @@ type FTransparency: TChartTransparency; FXor: Boolean; function ColorOrMono(AColor: TChartColor): TChartColor; inline; + function FPColorOrMono(const AColor: TFPColor): TFPColor; inline; function GetFontAngle: Double; virtual; abstract; function SimpleTextExtent(const AText: String): TPoint; virtual; abstract; procedure SimpleTextOut(AX, AY: Integer; const AText: String); virtual; abstract; @@ -327,6 +328,14 @@ begin Polygon([AP1, AP1 + d, AP2 + d, AP2], 0, 4); end; +function TBasicDrawer.FPColorOrMono(const AColor: TFPColor): TFPColor; +begin + if FMonochromeColor = clTAColor then + Result := AColor + else + Result := FChartColorToFPColorFunc(FMonochromeColor); +end; + procedure TBasicDrawer.LineTo(const AP: TPoint); begin LineTo(AP.X, AP.Y)