cairocanvas: less hints

git-svn-id: trunk@40880 -
This commit is contained in:
mattias 2013-04-22 15:36:12 +00:00
parent 52abe423f0
commit e44460c6b1
2 changed files with 20 additions and 13 deletions

View File

@ -54,7 +54,7 @@ type
cr: Pcairo_t; cr: Pcairo_t;
ScaleX, ScaleY, FontScale: Double; ScaleX, ScaleY, FontScale: Double;
procedure DoLineTo(X1,Y1: Integer); override; procedure DoLineTo(X1,Y1: Integer); override;
procedure CreateCairoHandle(BaseHandle: HDC); virtual; procedure CreateCairoHandle({%H-}BaseHandle: HDC); virtual;
procedure DestroyCairoHandle; virtual; procedure DestroyCairoHandle; virtual;
procedure SetHandle(NewHandle: HDC); override; procedure SetHandle(NewHandle: HDC); override;
procedure BeginDoc; override; procedure BeginDoc; override;
@ -77,7 +77,7 @@ type
procedure FillRect(const ARect: TRect); override; procedure FillRect(const ARect: TRect); override;
procedure Rectangle(X1,Y1,X2,Y2: Integer); override; procedure Rectangle(X1,Y1,X2,Y2: Integer); override;
procedure Polyline(Points: PPoint; NumPts: Integer); override; procedure Polyline(Points: PPoint; NumPts: Integer); override;
procedure Polygon(Points: PPoint; NumPts: Integer; Winding: boolean = False); override; procedure Polygon(Points: PPoint; NumPts: Integer; {%H-}Winding: boolean = False); override;
procedure FrameRect(const ARect: TRect); override; procedure FrameRect(const ARect: TRect); override;
procedure Frame(const ARect: TRect); override; procedure Frame(const ARect: TRect); override;
procedure RoundRect(X1, Y1, X2, Y2: Integer; RX, RY: Integer); override; procedure RoundRect(X1, Y1, X2, Y2: Integer; RX, RY: Integer); override;
@ -817,17 +817,19 @@ begin
Changed; Changed;
end; end;
{$ifdef breaklines}
type type
TLine = class TLine = class
Start, EndL: Integer; Start, EndL: Integer;
Width: Double; Width: Double;
end; end;
{$endif}
procedure TCairoPrinterCanvas.TextRect(ARect: TRect; X1, Y1: integer; const Text: string; const Style: TTextStyle); procedure TCairoPrinterCanvas.TextRect(ARect: TRect; X1, Y1: integer; const Text: string; const Style: TTextStyle);
var var
te: cairo_text_extents_t;
s: string; s: string;
{$ifdef breaklines} {$ifdef breaklines}
te: cairo_text_extents_t;
Lines: TList; Lines: TList;
CurLine: TLine; CurLine: TLine;
len: integer; len: integer;
@ -866,13 +868,11 @@ var
{$endif} {$endif}
var var
fe: cairo_font_extents_t;
fd: TFontData; fd: TFontData;
s1, ch: string; s1: string;
i, j: integer; i: integer;
BoxLeft, BoxTop, BoxWidth, BoxHeight: Double; BoxLeft, BoxTop, BoxWidth, BoxHeight: Double;
StartLeft, StartTop: Double; StartLeft, StartTop: Double;
BreakBoxWidth: Double;
x, y: Double; x, y: Double;
r,b: double; r,b: double;
{$ifdef pangocairo} {$ifdef pangocairo}
@ -880,7 +880,12 @@ var
ink,logical: TPangoRectangle; ink,logical: TPangoRectangle;
{$endif} {$endif}
{$ifndef breaklines} {$ifdef breaklines}
fe: cairo_font_extents_t;
BreakBoxWidth: Double;
j: integer;
ch: string;
{$else}
Lines: TStringList; Lines: TStringList;
{$endif} {$endif}
begin begin
@ -897,10 +902,12 @@ begin
StartTop := SY(Y1); StartTop := SY(Y1);
//DebugLn('Box= l=%f t=%f',[BoxLeft,BoxTop]); //DebugLn('Box= l=%f t=%f',[BoxLeft,BoxTop]);
//DebugLn(' x=%f y=%f',[StartLeft,StartTop]); //DebugLn(' x=%f y=%f',[StartLeft,StartTop]);
{$ifdef breaklines}
if Style.Alignment = taLeftJustify then if Style.Alignment = taLeftJustify then
BreakBoxWidth := SX(ARect.Right - X1) BreakBoxWidth := SX(ARect.Right - X1)
else else
BreakBoxWidth := BoxWidth; BreakBoxWidth := BoxWidth;
{$endif}
if Style.Clipping then begin if Style.Clipping then begin
r := BoxWidth+Pen.Width; r := BoxWidth+Pen.Width;

View File

@ -235,14 +235,14 @@ begin
Include(fStatus, csDoc); Include(fStatus, csDoc);
TDocAccess(fCairoCanvas).XDPI:=fXDPI; {%H-}TDocAccess(fCairoCanvas).XDPI:=fXDPI;
TDocAccess(fCairoCanvas).YDPI:=fYDPI; {%H-}TDocAccess(fCairoCanvas).YDPI:=fYDPI;
TDocAccess(fCairoCanvas).BeginDoc; {%H-}TDocAccess(fCairoCanvas).BeginDoc;
end; end;
procedure TCairoFilePrinter.EndDoc; procedure TCairoFilePrinter.EndDoc;
begin begin
TDocAccess(fCairoCanvas).EndDoc; {%H-}TDocAccess(fCairoCanvas).EndDoc;
Exclude(fStatus, csDoc); Exclude(fStatus, csDoc);
fCairoCanvas.Free; fCairoCanvas.Free;
fCairoCanvas:=nil; fCairoCanvas:=nil;
@ -250,7 +250,7 @@ end;
procedure TCairoFilePrinter.NewPage; procedure TCairoFilePrinter.NewPage;
begin begin
TDocAccess(fCairoCanvas).NewPage; {%H-}TDocAccess(fCairoCanvas).NewPage;
end; end;