mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-18 02:59:17 +02:00
TAChart: Add InitFonts procedure to TADrawerFPCanvas initialize default font directories. Remove GetDefaultFontName.
(cherry picked from commit 8410f7274b
)
This commit is contained in:
parent
2c9e4125ee
commit
2f4d99f301
@ -7,13 +7,9 @@ uses
|
|||||||
Interfaces, Classes, tachartlazaruspkg { you can add units after this },
|
Interfaces, Classes, tachartlazaruspkg { you can add units after this },
|
||||||
FPCanvas, FPImage, FPImgCanv,
|
FPCanvas, FPImage, FPImgCanv,
|
||||||
TAGraph, TASeries, TADrawerFPCanvas in '../../TADrawerFPCanvas.pas', TADrawerCanvas, TADrawUtils;
|
TAGraph, TASeries, TADrawerFPCanvas in '../../TADrawerFPCanvas.pas', TADrawerCanvas, TADrawUtils;
|
||||||
|
|
||||||
const
|
const
|
||||||
{$IFDEF MSWINDOWS}
|
FONT_NAME = 'LiberationSans-Regular.ttf';
|
||||||
FONT_NAME = 'Arial';
|
|
||||||
{$ENDIF}
|
|
||||||
{$IFDEF UNIX}
|
|
||||||
FONT_NAME = '/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf';
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
var
|
var
|
||||||
chart: TChart;
|
chart: TChart;
|
||||||
@ -22,6 +18,7 @@ var
|
|||||||
c: TFPImageCanvas;
|
c: TFPImageCanvas;
|
||||||
d: IChartDrawer;
|
d: IChartDrawer;
|
||||||
begin
|
begin
|
||||||
|
InitFonts;
|
||||||
chart := TChart.Create(nil);
|
chart := TChart.Create(nil);
|
||||||
chart.Width := 600;
|
chart.Width := 600;
|
||||||
chart.Height := 400;
|
chart.Height := 400;
|
||||||
|
@ -36,7 +36,6 @@ type
|
|||||||
// in horizontal horientation. FMeasureFont is always horizontal.
|
// in horizontal horientation. FMeasureFont is always horizontal.
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
procedure EnsureFont;
|
procedure EnsureFont;
|
||||||
function GetDefaultFontName: String;
|
|
||||||
procedure SetBrush(ABrush: TFPCustomBrush);
|
procedure SetBrush(ABrush: TFPCustomBrush);
|
||||||
procedure SetFont(AFont: TFPCustomFont);
|
procedure SetFont(AFont: TFPCustomFont);
|
||||||
procedure SetPen(APen: TFPCustomPen);
|
procedure SetPen(APen: TFPCustomPen);
|
||||||
@ -83,6 +82,9 @@ type
|
|||||||
procedure SetPenWidth(AWidth: Integer);
|
procedure SetPenWidth(AWidth: Integer);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure InitFonts;
|
||||||
|
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
uses
|
uses
|
||||||
@ -179,11 +181,6 @@ begin
|
|||||||
Result := FPColorToChartColor(FCanvas.Brush.FPColor);
|
Result := FPColorToChartColor(FCanvas.Brush.FPColor);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TFPCanvasDrawer.GetDefaultFontName: String;
|
|
||||||
begin
|
|
||||||
Result := 'arial';
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TFPCanvasDrawer.GetFontAngle: Double;
|
function TFPCanvasDrawer.GetFontAngle: Double;
|
||||||
begin
|
begin
|
||||||
{$IFDEF USE_FTFONT}
|
{$IFDEF USE_FTFONT}
|
||||||
@ -326,10 +323,7 @@ begin
|
|||||||
AssignFPCanvasHelper(FFont, AFont);
|
AssignFPCanvasHelper(FFont, AFont);
|
||||||
AssignFPCanvasHelper(FMeasureFont, AFont);
|
AssignFPCanvasHelper(FMeasureFont, AFont);
|
||||||
// DoCopyProps performs direct variable assignment, so call SetName by hand.
|
// DoCopyProps performs direct variable assignment, so call SetName by hand.
|
||||||
if AFont.Name = 'default' then
|
FFont.Name := AFont.Name;
|
||||||
FFont.Name := GetDefaultFontName
|
|
||||||
else
|
|
||||||
FFont.Name := AFont.Name;
|
|
||||||
if AFont.Size = 0 then
|
if AFont.Size = 0 then
|
||||||
FFont.Size := DEFAULT_FONT_SIZE
|
FFont.Size := DEFAULT_FONT_SIZE
|
||||||
else
|
else
|
||||||
@ -367,9 +361,8 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
function TFPCanvasDrawer.SimpleTextExtent(const AText: String): TPoint;
|
function TFPCanvasDrawer.SimpleTextExtent(const AText: String): TPoint;
|
||||||
var
|
|
||||||
fnt: TFreeTypeFont;
|
|
||||||
begin
|
begin
|
||||||
|
Result := Point(0, 0);
|
||||||
EnsureFont;
|
EnsureFont;
|
||||||
{$IFDEF USE_FTFONT}
|
{$IFDEF USE_FTFONT}
|
||||||
FCanvas.Font := FMeasureFont;
|
FCanvas.Font := FMeasureFont;
|
||||||
@ -407,5 +400,39 @@ begin
|
|||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure InitFonts;
|
||||||
|
begin
|
||||||
|
{$IFDEF USE_FTFONT}
|
||||||
|
InitEngine;
|
||||||
|
|
||||||
|
// Windows: Search path is set automatically
|
||||||
|
|
||||||
|
{$IFDEF LINUX}
|
||||||
|
FontMgr.SearchPath :=
|
||||||
|
'/usr/share/cups/fonts/;' +
|
||||||
|
'/usr/share/fonts/truetype/;' +
|
||||||
|
'/usr/share/fonts/truetype/liberation/;' +
|
||||||
|
'/usr/local/lib/X11/fonts/;' +
|
||||||
|
GetUserDir + '.fonts/';
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$IFDEF LCLCarbon}
|
||||||
|
FontMgr.SearchPath :=
|
||||||
|
'/Library/Fonts/;' +
|
||||||
|
'/System/Library/Fonts/;' +
|
||||||
|
'/Network/Library/Fonts/;' +
|
||||||
|
'~/Library/Fonts/';
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$IFDEF LCLCocoa}
|
||||||
|
FontMgr.SearchPath :=
|
||||||
|
'/Library/Fonts/;' +
|
||||||
|
'/System/Library/Fonts/;' +
|
||||||
|
'/Network/Library/Fonts/;' +
|
||||||
|
'~/Library/Fonts/';
|
||||||
|
{$ENDIF}
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user