mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-03 13:20:13 +02:00
SynEdit: OverviewGutter, improved positions of marks
git-svn-id: trunk@39762 -
This commit is contained in:
parent
054ca147eb
commit
b0a41e34b9
@ -111,6 +111,7 @@ type
|
|||||||
private
|
private
|
||||||
FItemHeight: Integer;
|
FItemHeight: Integer;
|
||||||
FPixelHeight: Integer;
|
FPixelHeight: Integer;
|
||||||
|
FPixelPerLine: Integer;
|
||||||
FTextLineCount: Integer;
|
FTextLineCount: Integer;
|
||||||
function GetLineMarks(Index: Integer): TSynGutterLOvLineMarks;
|
function GetLineMarks(Index: Integer): TSynGutterLOvLineMarks;
|
||||||
procedure PutLineMarks(Index: Integer; const AValue: TSynGutterLOvLineMarks);
|
procedure PutLineMarks(Index: Integer; const AValue: TSynGutterLOvLineMarks);
|
||||||
@ -540,8 +541,18 @@ end;
|
|||||||
|
|
||||||
function TSynGutterLOvLineMarksList.TextLineToPixLine(ATxtLine: Integer): Integer;
|
function TSynGutterLOvLineMarksList.TextLineToPixLine(ATxtLine: Integer): Integer;
|
||||||
begin
|
begin
|
||||||
Result := Int64(ATxtLine - 1) * Int64(Max(1, PixelHeight - ItemHeight + 1)) div TextLineCount - 1;
|
if PixelHeight < 1 then exit(0);
|
||||||
//Result := MulDiv(ATxtLine - 1, Max(1, PixelHeight - ItemHeight + 1), TextLineCount) - 1;
|
|
||||||
|
Result := Int64(ATxtLine - 1) * Int64(PixelHeight) div TextLineCount;
|
||||||
|
|
||||||
|
If FPixelPerLine * 2 < ItemHeight then
|
||||||
|
dec(Result)
|
||||||
|
else
|
||||||
|
if FPixelPerLine > ItemHeight + 2 then
|
||||||
|
inc(Result);
|
||||||
|
|
||||||
|
if Result + ItemHeight > PixelHeight then Result := PixelHeight - ItemHeight;
|
||||||
|
if Result < 0 then Result := 0;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSynGutterLOvLineMarksList.ReBuild(AFromIndex: Integer = -1);
|
procedure TSynGutterLOvLineMarksList.ReBuild(AFromIndex: Integer = -1);
|
||||||
@ -744,6 +755,7 @@ procedure TSynGutterLOvLineMarksList.SetPixelHeight(const AValue: Integer);
|
|||||||
begin
|
begin
|
||||||
if FPixelHeight = AValue then exit;
|
if FPixelHeight = AValue then exit;
|
||||||
FPixelHeight := AValue;
|
FPixelHeight := AValue;
|
||||||
|
FPixelPerLine := FPixelHeight div TextLineCount;
|
||||||
ReBuild;
|
ReBuild;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user