You've already forked lazarus-ccr
LazBarcodes: Drop parameter ALastLine from TSimpleBarcode.RenderSymbol
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@8215 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -210,6 +210,7 @@ type
|
||||
procedure CalculatePreferredSize(var PreferredWidth, PreferredHeight: Integer;
|
||||
WithThemeSpace: Boolean); override;
|
||||
procedure DrawBarcode(ADrawer: TBasicBarcodeDrawer; AFactor: Double);
|
||||
function GetLastLine: PZintRenderLine;
|
||||
procedure GetTextSize(const AText: String; out AWidth, AHeight: Integer);
|
||||
function InternalGenerate: Integer; override;
|
||||
procedure IntfPaintOnCanvas(const aTargetCanvas: TCanvas; const aRect: TRect); override;
|
||||
@ -217,8 +218,7 @@ type
|
||||
procedure Render(AWidth, AHeight: Integer); virtual;
|
||||
procedure RenderBearerBars(AWidth, AHeight, ABorder: Integer; var ALastLine: PZintRenderline);
|
||||
procedure RenderBox(AWidth, AHeight, ABorder: Integer; var ALastLine: PZintRenderLine);
|
||||
procedure RenderSymbol(xLeft, yTop, ASymbolHeight, {%H-}ATextHeight, AFactor: Integer;
|
||||
var ALastLine: PZintRenderLine); virtual;
|
||||
procedure RenderSymbol(xLeft, yTop, ASymbolHeight, {%H-}ATextHeight, AFactor: Integer); virtual;
|
||||
procedure RenderText(ASymbolWidth, ASymbolStart, ATextPos: Integer); virtual;
|
||||
property AddCheckSum: Boolean read FAddCheckSum write SetAddCheckSum default true;
|
||||
property DisplayCheckSum: Boolean read FDisplayCheckSum write SetDisplayCheckSum default false;
|
||||
@ -352,8 +352,7 @@ type
|
||||
function GetRightText: String;
|
||||
function GetSampleText: String; override;
|
||||
function InternalGenerate: Integer; override;
|
||||
procedure RenderSymbol(xLeft, yTop, AHeight, ATextHeight, AFactor: Integer;
|
||||
var ALastLine: PZintRenderLine); override;
|
||||
procedure RenderSymbol(xLeft, yTop, AHeight, ATextHeight, AFactor: Integer); override;
|
||||
procedure RenderText(ASymbolWidth, ASymbolStart, ATextPos: Integer); override;
|
||||
procedure SetRecommendedSymbolSizeParams; override;
|
||||
function UPC_EAN_Flag: Integer;
|
||||
@ -610,6 +609,7 @@ type
|
||||
TBarcodeMaxiCode = class(TBarcodeSquare)
|
||||
protected
|
||||
function InternalGenerate: Integer; override;
|
||||
procedure RenderSymbol(xLeft, yTop, ASymbolHeight, {%H-}ATextHeight, AFactor: Integer); override;
|
||||
public
|
||||
constructor Create(AOwner: TComponent); override;
|
||||
end;
|
||||
@ -1433,6 +1433,26 @@ begin
|
||||
ADrawer.EndDrawing;
|
||||
end;
|
||||
|
||||
function TSimpleBarcode.GetLastLine: PZintRenderline;
|
||||
var
|
||||
next_line: PZintRenderline;
|
||||
begin
|
||||
Result := nil;
|
||||
if (FSymbol <> nil) and (FSymbol^.rendered <> nil) then
|
||||
begin
|
||||
Result := FSymbol^.rendered^.Lines;
|
||||
if Result <> nil then
|
||||
begin
|
||||
next_line := Result^.next;
|
||||
while next_line <> nil do
|
||||
begin
|
||||
Result := next_line;
|
||||
next_line := Result^.next;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
{ Measures size of the specified text in pixels using the current barcode font. }
|
||||
procedure TSimpleBarCode.GetTextSize(const AText: String; out AWidth, AHeight: Integer);
|
||||
var
|
||||
@ -1587,7 +1607,7 @@ begin
|
||||
end;
|
||||
|
||||
// Render bars and spaces
|
||||
RenderSymbol(x, border, hsymbol, htext, factor, lastline);
|
||||
RenderSymbol(x, border, hsymbol, htext, factor);
|
||||
|
||||
// Render the human-readable text
|
||||
if FShowHumanReadableText then
|
||||
@ -1601,6 +1621,7 @@ begin
|
||||
end;
|
||||
|
||||
// Render the horizontal bearer bars
|
||||
lastline := GetLastLine;
|
||||
if FBearerBarMode <> bbmNone then
|
||||
RenderBearerBars(AWidth, hsymbol, border, lastline);
|
||||
|
||||
@ -1651,8 +1672,7 @@ end;
|
||||
- ASymbolHeight: height of the entire symbol (without text)
|
||||
- ATextHeight: height of the human-readable text. Needed by EAN code bar extensions.
|
||||
- AFactor: current scaling factor with respect to pixels }
|
||||
procedure TSimpleBarcode.RenderSymbol(xLeft, yTop, ASymbolHeight, ATextHeight, AFactor: Integer;
|
||||
var ALastLine: PZintRenderline);
|
||||
procedure TSimpleBarcode.RenderSymbol(xLeft, yTop, ASymbolHeight, ATextHeight, AFactor: Integer);
|
||||
var
|
||||
i: Integer; // general loop variable
|
||||
x, y: Integer; // coordinates of the left/top corner of the currently rendered bar.
|
||||
@ -1661,8 +1681,10 @@ var
|
||||
hrow: Integer; // height of the currently rendered row
|
||||
wblock: Integer; // width of an individual bar or space
|
||||
isBar: Boolean; // flag indication whether the currently rendered feature is a bar or a space
|
||||
line: PZintRenderLine;
|
||||
line, lastline: PZintRenderLine;
|
||||
begin
|
||||
lastLine := GetLastLine;
|
||||
|
||||
// Calculate total row height from the Zint symbol
|
||||
total_row_height := 0;
|
||||
for row := 0 to FSymbol^.rows-1 do
|
||||
@ -1694,7 +1716,7 @@ begin
|
||||
if isBar then
|
||||
begin
|
||||
line := render_plot_create_line(x, y, wblock*AFactor, hrow);
|
||||
render_plot_add_line(FSymbol, line, @ALastLine);
|
||||
render_plot_add_line(FSymbol, line, @lastLine);
|
||||
end;
|
||||
|
||||
// Advance to next block
|
||||
@ -2181,8 +2203,7 @@ end;
|
||||
|
||||
{ Is overridden to handle the bar extensions of most of the UPC/EAN codes, i.e.
|
||||
some bars are drawn longer than the others.}
|
||||
procedure TBarcodeEAN.RenderSymbol(xLeft, yTop, AHeight, ATextHeight, AFactor: Integer;
|
||||
var ALastLine: PZintRenderLine);
|
||||
procedure TBarcodeEAN.RenderSymbol(xLeft, yTop, AHeight, ATextHeight, AFactor: Integer);
|
||||
var
|
||||
i, n: Integer;
|
||||
line: PZintRenderLine;
|
||||
@ -3171,6 +3192,10 @@ begin
|
||||
Move(FText[1], FSymbol^.Primary[0], Length(FText));
|
||||
Result := maxicode(FSymbol, @FText[1], Length(FText));
|
||||
end;
|
||||
|
||||
|
||||
procedure TBarcodeMaxiCode.RenderSymbol(xLeft, yTop, ASymbolHeight, {%H-}ATextHeight, AFactor: Integer);
|
||||
begin
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
|
Reference in New Issue
Block a user