mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-28 21:20:46 +02:00
synedit: add special colors to draw line numbers on gutter to emulate delphi look (if needed)
git-svn-id: trunk@17464 -
This commit is contained in:
parent
4a42c817e5
commit
6c2ac82789
@ -519,6 +519,7 @@ type
|
|||||||
function GetCaretY : Integer;
|
function GetCaretY : Integer;
|
||||||
function GetHighlightAllColor : TSynSelectedColor;
|
function GetHighlightAllColor : TSynSelectedColor;
|
||||||
function GetIncrementColor : TSynSelectedColor;
|
function GetIncrementColor : TSynSelectedColor;
|
||||||
|
function GetLineNumberColor: TSynSelectedColor;
|
||||||
function GetSelectedColor : TSynSelectedColor;
|
function GetSelectedColor : TSynSelectedColor;
|
||||||
function GetBracketMatchColor : TSynSelectedColor;
|
function GetBracketMatchColor : TSynSelectedColor;
|
||||||
function GetMouseLinkColor : TSynSelectedColor;
|
function GetMouseLinkColor : TSynSelectedColor;
|
||||||
@ -976,6 +977,7 @@ type
|
|||||||
property HighlightAllColor: TSynSelectedColor read GetHighlightAllColor;
|
property HighlightAllColor: TSynSelectedColor read GetHighlightAllColor;
|
||||||
property BracketMatchColor: TSynSelectedColor read GetBracketMatchColor;
|
property BracketMatchColor: TSynSelectedColor read GetBracketMatchColor;
|
||||||
property MouseLinkColor: TSynSelectedColor read GetMouseLinkColor;
|
property MouseLinkColor: TSynSelectedColor read GetMouseLinkColor;
|
||||||
|
property LineNumberColor: TSynSelectedColor read GetLineNumberColor;
|
||||||
//property Color: TSynSelectedColor read GetSelectedColor;
|
//property Color: TSynSelectedColor read GetSelectedColor;
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
property SelectedColor: TSynSelectedColor
|
property SelectedColor: TSynSelectedColor
|
||||||
@ -1117,6 +1119,7 @@ type
|
|||||||
property HighlightAllColor;
|
property HighlightAllColor;
|
||||||
property BracketMatchColor;
|
property BracketMatchColor;
|
||||||
property MouseLinkColor;
|
property MouseLinkColor;
|
||||||
|
property LineNumberColor;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
property SelectionMode;
|
property SelectionMode;
|
||||||
property TabWidth;
|
property TabWidth;
|
||||||
@ -1789,6 +1792,11 @@ begin
|
|||||||
result := fMarkupSelection.MarkupInfoIncr;
|
result := fMarkupSelection.MarkupInfoIncr;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TCustomSynEdit.GetLineNumberColor: TSynSelectedColor;
|
||||||
|
begin
|
||||||
|
Result := fGutter.MarkupInfoLineNumber;
|
||||||
|
end;
|
||||||
|
|
||||||
function TCustomSynEdit.GetSelectedColor : TSynSelectedColor;
|
function TCustomSynEdit.GetSelectedColor : TSynSelectedColor;
|
||||||
begin
|
begin
|
||||||
result := fMarkupSelection.MarkupInfoSeletion;
|
result := fMarkupSelection.MarkupInfoSeletion;
|
||||||
@ -3151,22 +3159,28 @@ begin
|
|||||||
else
|
else
|
||||||
CodeFoldOffset:=0;
|
CodeFoldOffset:=0;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
if fGutter.ShowLineNumbers then begin
|
if fGutter.ShowLineNumbers then
|
||||||
|
begin
|
||||||
fTextDrawer.BeginDrawing(dc);
|
fTextDrawer.BeginDrawing(dc);
|
||||||
try
|
try
|
||||||
fTextDrawer.SetBackColor(fGutter.Color);
|
if FGutter.MarkupInfoLineNumber.Background <> clNone then
|
||||||
fTextDrawer.SetForeColor(Self.Font.Color);
|
fTextDrawer.SetBackColor(FGutter.MarkupInfoLineNumber.Background)
|
||||||
if fGutter.UseFontStyle then
|
|
||||||
fTextDrawer.Style := Font.Style
|
|
||||||
else
|
else
|
||||||
fTextDrawer.Style := [];
|
fTextDrawer.SetBackColor(FGutter.Color);
|
||||||
|
if FGutter.MarkupInfoLineNumber.Foreground <> clNone then
|
||||||
|
fTextDrawer.SetForeColor(FGutter.MarkupInfoLineNumber.Foreground)
|
||||||
|
else
|
||||||
|
fTextDrawer.SetForeColor(Self.Font.Color);
|
||||||
|
fTextDrawer.Style := FGutter.MarkupInfoLineNumber.Style;
|
||||||
// prepare the rect initially
|
// prepare the rect initially
|
||||||
rcLine := AClip;
|
rcLine := AClip;
|
||||||
rcLine.Right := fGutterWidth - 2;
|
rcLine.Right := fGutterWidth - 2;
|
||||||
//rcLine.Right := Max(rcLine.Right, fGutterWidth - 2);
|
//rcLine.Right := Max(rcLine.Right, fGutterWidth - 2);
|
||||||
{$IFDEF SYN_LAZARUS}
|
{$IFDEF SYN_LAZARUS}
|
||||||
rcLine.Bottom := FirstLine * fTextHeight;
|
rcLine.Bottom := FirstLine * fTextHeight;
|
||||||
for i := FirstLine to LastLine do begin
|
rcLine.Left := CodeFoldOffset + fGutter.LeftOffset;
|
||||||
|
for i := FirstLine to LastLine do
|
||||||
|
begin
|
||||||
iLine := fTextView.DisplayNumber[i];
|
iLine := fTextView.DisplayNumber[i];
|
||||||
// next line rect
|
// next line rect
|
||||||
rcLine.Top := rcLine.Bottom;
|
rcLine.Top := rcLine.Bottom;
|
||||||
@ -3179,8 +3193,8 @@ begin
|
|||||||
s := fGutter.FormatLineNumber(iLine, ShowDot);
|
s := fGutter.FormatLineNumber(iLine, ShowDot);
|
||||||
Inc(rcLine.Bottom, fTextHeight);
|
Inc(rcLine.Bottom, fTextHeight);
|
||||||
// erase the background and draw the line number string in one go
|
// erase the background and draw the line number string in one go
|
||||||
fTextDrawer.ExtTextOut(CodeFoldOffset+fGutter.LeftOffset,
|
fTextDrawer.ExtTextOut(rcLine.Left, rcLine.Top, ETO_OPAQUE, rcLine,
|
||||||
rcLine.Top, ETO_OPAQUE,rcLine,PChar(Pointer(S)),Length(S));
|
PChar(Pointer(S)),Length(S));
|
||||||
end;
|
end;
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
rcLine.Bottom := (FirstLine - TopLine) * fTextHeight;
|
rcLine.Bottom := (FirstLine - TopLine) * fTextHeight;
|
||||||
@ -3195,18 +3209,30 @@ begin
|
|||||||
end;
|
end;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
// now erase the remaining area if any
|
// now erase the remaining area if any
|
||||||
if AClip.Bottom > rcLine.Bottom then begin
|
if AClip.Bottom > rcLine.Bottom then
|
||||||
|
begin
|
||||||
rcLine.Top := rcLine.Bottom;
|
rcLine.Top := rcLine.Bottom;
|
||||||
rcLine.Bottom := AClip.Bottom;
|
rcLine.Bottom := AClip.Bottom;
|
||||||
with rcLine do
|
with rcLine do
|
||||||
fTextDrawer.ExtTextOut(Left, Top, ETO_OPAQUE, rcLine, nil, 0);
|
fTextDrawer.ExtTextOut(Left, Top, ETO_OPAQUE, rcLine, nil, 0);
|
||||||
end;
|
end;
|
||||||
|
// restore original style
|
||||||
|
fTextDrawer.SetBackColor(fGutter.Color);
|
||||||
|
fTextDrawer.SetForeColor(Self.Font.Color);
|
||||||
|
if AClip.Left < rcLine.Left then
|
||||||
|
begin
|
||||||
|
rcLine.Right := rcLine.Left;
|
||||||
|
rcLine.Left := AClip.Left;
|
||||||
|
rcLine.Top := AClip.Top;
|
||||||
|
rcLine.Bottom := AClip.Bottom;
|
||||||
|
with rcLine do
|
||||||
|
fTextDrawer.ExtTextOut(Left, Top, ETO_OPAQUE, rcLine, nil, 0);
|
||||||
|
end;
|
||||||
finally
|
finally
|
||||||
fTextDrawer.EndDrawing;
|
fTextDrawer.EndDrawing;
|
||||||
end;
|
end;
|
||||||
end else begin
|
end else
|
||||||
InternalFillRect(dc, AClip);
|
InternalFillRect(dc, AClip);
|
||||||
end;
|
|
||||||
|
|
||||||
//draw the code folding marks
|
//draw the code folding marks
|
||||||
if fGutter.ShowCodeFolding then
|
if fGutter.ShowCodeFolding then
|
||||||
|
@ -95,6 +95,7 @@ type
|
|||||||
FCodeFoldingWidth: integer;
|
FCodeFoldingWidth: integer;
|
||||||
fShowCodeFolding: boolean;
|
fShowCodeFolding: boolean;
|
||||||
FShowOnlyLineNumbersMultiplesOf: integer;
|
FShowOnlyLineNumbersMultiplesOf: integer;
|
||||||
|
FMarkupInfoLineNumber: TSynSelectedColor;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
fColor: TColor;
|
fColor: TColor;
|
||||||
fWidth: integer;
|
fWidth: integer;
|
||||||
@ -107,7 +108,6 @@ type
|
|||||||
fOnChange: TNotifyEvent;
|
fOnChange: TNotifyEvent;
|
||||||
fCursor: TCursor;
|
fCursor: TCursor;
|
||||||
fVisible: boolean;
|
fVisible: boolean;
|
||||||
fUseFontStyle: boolean;
|
|
||||||
fAutoSize: boolean;
|
fAutoSize: boolean;
|
||||||
fAutoSizeDigitCount: integer;
|
fAutoSizeDigitCount: integer;
|
||||||
procedure SetAutoSize(const Value: boolean);
|
procedure SetAutoSize(const Value: boolean);
|
||||||
@ -122,12 +122,13 @@ type
|
|||||||
procedure SetLeftOffset(Value: integer);
|
procedure SetLeftOffset(Value: integer);
|
||||||
procedure SetRightOffset(Value: integer);
|
procedure SetRightOffset(Value: integer);
|
||||||
procedure SetShowLineNumbers(const Value: boolean);
|
procedure SetShowLineNumbers(const Value: boolean);
|
||||||
procedure SetUseFontStyle(Value: boolean);
|
|
||||||
procedure SetVisible(Value: boolean);
|
procedure SetVisible(Value: boolean);
|
||||||
procedure SetWidth(Value: integer);
|
procedure SetWidth(Value: integer);
|
||||||
procedure SetZeroStart(const Value: boolean);
|
procedure SetZeroStart(const Value: boolean);
|
||||||
|
procedure DoChange(Sender: TObject);
|
||||||
public
|
public
|
||||||
constructor Create;
|
constructor Create;
|
||||||
|
destructor Destroy; override;
|
||||||
procedure Assign(Source: TPersistent); override;
|
procedure Assign(Source: TPersistent); override;
|
||||||
procedure AutoSizeDigitCount(LinesCount: integer);
|
procedure AutoSizeDigitCount(LinesCount: integer);
|
||||||
function FormatLineNumber(Line: integer; IsDot: boolean): string;
|
function FormatLineNumber(Line: integer; IsDot: boolean): string;
|
||||||
@ -149,8 +150,6 @@ type
|
|||||||
default 2;
|
default 2;
|
||||||
property ShowLineNumbers: boolean read fShowLineNumbers
|
property ShowLineNumbers: boolean read fShowLineNumbers
|
||||||
write SetShowLineNumbers default FALSE;
|
write SetShowLineNumbers default FALSE;
|
||||||
property UseFontStyle: boolean read fUseFontStyle write SetUseFontStyle
|
|
||||||
default FALSE;
|
|
||||||
property Visible: boolean read fVisible write SetVisible default TRUE;
|
property Visible: boolean read fVisible write SetVisible default TRUE;
|
||||||
property Width: integer read fWidth write SetWidth default 30;
|
property Width: integer read fWidth write SetWidth default 30;
|
||||||
property ZeroStart: boolean read fZeroStart write SetZeroStart default FALSE;
|
property ZeroStart: boolean read fZeroStart write SetZeroStart default FALSE;
|
||||||
@ -164,6 +163,7 @@ type
|
|||||||
default 14;
|
default 14;
|
||||||
property ShowOnlyLineNumbersMultiplesOf: integer read FShowOnlyLineNumbersMultiplesOf
|
property ShowOnlyLineNumbersMultiplesOf: integer read FShowOnlyLineNumbersMultiplesOf
|
||||||
write SetShowOnlyLineNumbersMultiplesOf default 1;
|
write SetShowOnlyLineNumbersMultiplesOf default 1;
|
||||||
|
property MarkupInfoLineNumber: TSynSelectedColor read FMarkupInfoLineNumber;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -387,13 +387,24 @@ begin
|
|||||||
fRightOffset := 2;
|
fRightOffset := 2;
|
||||||
fShowOnlyLineNumbersMultiplesOf := 1;
|
fShowOnlyLineNumbersMultiplesOf := 1;
|
||||||
fCodeFoldingWidth := 14;
|
fCodeFoldingWidth := 14;
|
||||||
|
FMarkupInfoLineNumber := TSynSelectedColor.Create;
|
||||||
|
FMarkupInfoLineNumber.Background := clNone;
|
||||||
|
FMarkupInfoLineNumber.Foreground := clNone;
|
||||||
|
FMarkupInfoLineNumber.OnChange := @DoChange;
|
||||||
|
end;
|
||||||
|
|
||||||
|
destructor TSynGutter.Destroy;
|
||||||
|
begin
|
||||||
|
FMarkupInfoLineNumber.Free;
|
||||||
|
inherited Destroy;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSynGutter.Assign(Source: TPersistent);
|
procedure TSynGutter.Assign(Source: TPersistent);
|
||||||
var
|
var
|
||||||
Src: TSynGutter;
|
Src: TSynGutter;
|
||||||
begin
|
begin
|
||||||
if Assigned(Source) and (Source is TSynGutter) then begin
|
if Assigned(Source) and (Source is TSynGutter) then
|
||||||
|
begin
|
||||||
Src := TSynGutter(Source);
|
Src := TSynGutter(Source);
|
||||||
fColor := Src.fColor;
|
fColor := Src.fColor;
|
||||||
fVisible := Src.fVisible;
|
fVisible := Src.fVisible;
|
||||||
@ -410,8 +421,9 @@ begin
|
|||||||
FCodeFoldingWidth := Src.FCodeFoldingWidth;
|
FCodeFoldingWidth := Src.FCodeFoldingWidth;
|
||||||
fShowCodeFolding := Src.fShowCodeFolding;
|
fShowCodeFolding := Src.fShowCodeFolding;
|
||||||
FShowOnlyLineNumbersMultiplesOf := Src.FShowOnlyLineNumbersMultiplesOf;
|
FShowOnlyLineNumbersMultiplesOf := Src.FShowOnlyLineNumbersMultiplesOf;
|
||||||
|
FMarkupInfoLineNumber.Assign(Src.MarkupInfoLineNumber);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
if Assigned(fOnChange) then fOnChange(Self);
|
DoChange(Self);
|
||||||
end else
|
end else
|
||||||
inherited;
|
inherited;
|
||||||
end;
|
end;
|
||||||
@ -420,12 +432,14 @@ procedure TSynGutter.AutoSizeDigitCount(LinesCount: integer);
|
|||||||
var
|
var
|
||||||
nDigits: integer;
|
nDigits: integer;
|
||||||
begin
|
begin
|
||||||
if fVisible and fAutoSize and fShowLineNumbers then begin
|
if fVisible and fAutoSize and fShowLineNumbers then
|
||||||
|
begin
|
||||||
if fZeroStart then Dec(LinesCount);
|
if fZeroStart then Dec(LinesCount);
|
||||||
nDigits := Max(Length(IntToStr(LinesCount)), fDigitCount);
|
nDigits := Max(Length(IntToStr(LinesCount)), fDigitCount);
|
||||||
if fAutoSizeDigitCount <> nDigits then begin
|
if fAutoSizeDigitCount <> nDigits then
|
||||||
|
begin
|
||||||
fAutoSizeDigitCount := nDigits;
|
fAutoSizeDigitCount := nDigits;
|
||||||
if Assigned(fOnChange) then fOnChange(Self);
|
DoChange(Self);
|
||||||
end;
|
end;
|
||||||
end else
|
end else
|
||||||
fAutoSizeDigitCount := fDigitCount;
|
fAutoSizeDigitCount := fDigitCount;
|
||||||
@ -473,9 +487,10 @@ end;
|
|||||||
|
|
||||||
procedure TSynGutter.SetAutoSize(const Value: boolean);
|
procedure TSynGutter.SetAutoSize(const Value: boolean);
|
||||||
begin
|
begin
|
||||||
if fAutoSize <> Value then begin
|
if fAutoSize <> Value then
|
||||||
|
begin
|
||||||
fAutoSize := Value;
|
fAutoSize := Value;
|
||||||
if Assigned(fOnChange) then fOnChange(Self);
|
DoChange(Self);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -484,111 +499,120 @@ procedure TSynGutter.SetCodeFoldingWidth(const AValue: integer);
|
|||||||
begin
|
begin
|
||||||
if FCodeFoldingWidth=AValue then exit;
|
if FCodeFoldingWidth=AValue then exit;
|
||||||
FCodeFoldingWidth:=AValue;
|
FCodeFoldingWidth:=AValue;
|
||||||
if Assigned(fOnChange) then fOnChange(Self);
|
DoChange(Self);
|
||||||
end;
|
end;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
procedure TSynGutter.SetColor(const Value: TColor);
|
procedure TSynGutter.SetColor(const Value: TColor);
|
||||||
begin
|
begin
|
||||||
if fColor <> Value then begin
|
if fColor <> Value then
|
||||||
|
begin
|
||||||
fColor := Value;
|
fColor := Value;
|
||||||
if Assigned(fOnChange) then fOnChange(Self);
|
DoChange(Self);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSynGutter.SetDigitCount(Value: integer);
|
procedure TSynGutter.SetDigitCount(Value: integer);
|
||||||
begin
|
begin
|
||||||
Value := MinMax(Value, 2, 12);
|
Value := MinMax(Value, 2, 12);
|
||||||
if fDigitCount <> Value then begin
|
if fDigitCount <> Value then
|
||||||
|
begin
|
||||||
fDigitCount := Value;
|
fDigitCount := Value;
|
||||||
fAutoSizeDigitCount := fDigitCount;
|
fAutoSizeDigitCount := fDigitCount;
|
||||||
if Assigned(fOnChange) then fOnChange(Self);
|
DoChange(Self);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSynGutter.SetLeadingZeros(const Value: boolean);
|
procedure TSynGutter.SetLeadingZeros(const Value: boolean);
|
||||||
begin
|
begin
|
||||||
if fLeadingZeros <> Value then begin
|
if fLeadingZeros <> Value then
|
||||||
|
begin
|
||||||
fLeadingZeros := Value;
|
fLeadingZeros := Value;
|
||||||
if Assigned(fOnChange) then fOnChange(Self);
|
DoChange(Self);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSynGutter.SetLeftOffset(Value: integer);
|
procedure TSynGutter.SetLeftOffset(Value: integer);
|
||||||
begin
|
begin
|
||||||
Value := Max(0, Value);
|
Value := Max(0, Value);
|
||||||
if fLeftOffset <> Value then begin
|
if fLeftOffset <> Value then
|
||||||
|
begin
|
||||||
fLeftOffset := Value;
|
fLeftOffset := Value;
|
||||||
if Assigned(fOnChange) then fOnChange(Self);
|
DoChange(Self);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSynGutter.SetRightOffset(Value: integer);
|
procedure TSynGutter.SetRightOffset(Value: integer);
|
||||||
begin
|
begin
|
||||||
Value := Max(0, Value);
|
Value := Max(0, Value);
|
||||||
if fRightOffset <> Value then begin
|
if fRightOffset <> Value then
|
||||||
|
begin
|
||||||
fRightOffset := Value;
|
fRightOffset := Value;
|
||||||
if Assigned(fOnChange) then fOnChange(Self);
|
DoChange(Self);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSynGutter.SetShowOnlyLineNumbersMultiplesOf(const AValue: integer);
|
procedure TSynGutter.SetShowOnlyLineNumbersMultiplesOf(const AValue: integer);
|
||||||
begin
|
begin
|
||||||
if FShowOnlyLineNumbersMultiplesOf <> AValue then begin
|
if FShowOnlyLineNumbersMultiplesOf <> AValue then
|
||||||
|
begin
|
||||||
FShowOnlyLineNumbersMultiplesOf := AValue;
|
FShowOnlyLineNumbersMultiplesOf := AValue;
|
||||||
if Assigned(fOnChange) then fOnChange(Self);
|
DoChange(Self);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSynGutter.SetShowLineNumbers(const Value: boolean);
|
procedure TSynGutter.SetShowLineNumbers(const Value: boolean);
|
||||||
begin
|
begin
|
||||||
if fShowLineNumbers <> Value then begin
|
if fShowLineNumbers <> Value then
|
||||||
|
begin
|
||||||
fShowLineNumbers := Value;
|
fShowLineNumbers := Value;
|
||||||
if Assigned(fOnChange) then fOnChange(Self);
|
DoChange(Self);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSynGutter.SetShowCodeFolding(const Value: boolean);
|
procedure TSynGutter.SetShowCodeFolding(const Value: boolean);
|
||||||
begin
|
begin
|
||||||
if fShowCodeFolding <> Value then begin
|
if fShowCodeFolding <> Value then
|
||||||
|
begin
|
||||||
fShowCodeFolding := Value;
|
fShowCodeFolding := Value;
|
||||||
if Assigned(fOnChange) then fOnChange(Self);
|
DoChange(Self);
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TSynGutter.SetUseFontStyle(Value: boolean);
|
|
||||||
begin
|
|
||||||
if fUseFontStyle <> Value then begin
|
|
||||||
fUseFontStyle := Value;
|
|
||||||
if Assigned(fOnChange) then fOnChange(Self);
|
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSynGutter.SetVisible(Value: boolean);
|
procedure TSynGutter.SetVisible(Value: boolean);
|
||||||
begin
|
begin
|
||||||
if fVisible <> Value then begin
|
if fVisible <> Value then
|
||||||
|
begin
|
||||||
fVisible := Value;
|
fVisible := Value;
|
||||||
if Assigned(fOnChange) then fOnChange(Self);
|
DoChange(Self);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSynGutter.SetWidth(Value: integer);
|
procedure TSynGutter.SetWidth(Value: integer);
|
||||||
begin
|
begin
|
||||||
Value := Max(0, Value);
|
Value := Max(0, Value);
|
||||||
if fWidth <> Value then begin
|
if fWidth <> Value then
|
||||||
|
begin
|
||||||
fWidth := Value;
|
fWidth := Value;
|
||||||
if Assigned(fOnChange) then fOnChange(Self);
|
DoChange(Self);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSynGutter.SetZeroStart(const Value: boolean);
|
procedure TSynGutter.SetZeroStart(const Value: boolean);
|
||||||
begin
|
begin
|
||||||
if fZeroStart <> Value then begin
|
if fZeroStart <> Value then
|
||||||
|
begin
|
||||||
fZeroStart := Value;
|
fZeroStart := Value;
|
||||||
if Assigned(fOnChange) then fOnChange(Self);
|
DoChange(Self);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSynGutter.DoChange(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if Assigned(fOnChange) then
|
||||||
|
fOnChange(Self);
|
||||||
|
end;
|
||||||
|
|
||||||
{ TSynBookMarkOpt }
|
{ TSynBookMarkOpt }
|
||||||
|
|
||||||
constructor TSynBookMarkOpt.Create(AOwner: TComponent);
|
constructor TSynBookMarkOpt.Create(AOwner: TComponent);
|
||||||
|
Loading…
Reference in New Issue
Block a user