synedit: allow code folding tree color customization

git-svn-id: trunk@18046 -
This commit is contained in:
paul 2009-01-02 13:26:50 +00:00
parent ad86924500
commit 28544c79b9
4 changed files with 34 additions and 9 deletions

View File

@ -471,6 +471,7 @@ type
function GetLineHighlightColor: TSynSelectedColor;
function GetLineNumberColor: TSynSelectedColor;
function GetModifiedLineColor: TSynSelectedColor;
function GetCodeFoldingTreeColor: TSynSelectedColor;
function GetOnGutterClick : TGutterClickEvent;
function GetSelectedColor : TSynSelectedColor;
function GetBracketMatchColor : TSynSelectedColor;
@ -938,6 +939,7 @@ type
property LineNumberColor: TSynSelectedColor read GetLineNumberColor;
property LineHighlightColor: TSynSelectedColor read GetLineHighlightColor;
property ModifiedLineColor: TSynSelectedColor read GetModifiedLineColor;
property CodeFoldingTreeColor: TSynSelectedColor read GetCodeFoldingTreeColor;
property BracketHighlightStyle: TSynEditBracketHighlightStyle
read GetBracketHighlightStyle write SetBracketHighlightStyle;
//property Color: TSynSelectedColor read GetSelectedColor;
@ -1083,6 +1085,7 @@ type
property BracketHighlightStyle;
property BracketMatchColor;
property ModifiedLineColor;
property CodeFoldingTreeColor;
property MouseLinkColor;
property LineNumberColor;
property LineHighlightColor;
@ -4103,6 +4106,11 @@ begin
Result := Point(CaretX, CaretY);
end;
function TCustomSynEdit.GetCodeFoldingTreeColor: TSynSelectedColor;
begin
Result := fGutter.MarkupInfoCodeFoldingTree;
end;
procedure TCustomSynEdit.SetCaretXY(Value: TPoint);
// physical position (screen)
var

View File

@ -157,6 +157,7 @@ type
procedure SetShowOnlyLineNumbersMultiplesOf(const AValue: integer);
function GetMarkupInfoLineNumber: TSynSelectedColor;
function GetMarkupInfoModifiedLine: TSynSelectedColor;
function GetMarkupInfoCodeFoldingTree: TSynSelectedColor;
function GetDigitCount : Integer;
function GetZeroStart : Boolean;
function GetShowOnlyLineNumbersMultiplesOf : Integer;
@ -206,6 +207,7 @@ type
property ZeroStart: boolean read GetZeroStart write SetZeroStart;
property MarkupInfoLineNumber: TSynSelectedColor read GetMarkupInfoLineNumber;
property MarkupInfoModifiedLine: TSynSelectedColor read GetMarkupInfoModifiedLine;
property MarkupInfoCodeFoldingTree: TSynSelectedColor read GetMarkupInfoCodeFoldingTree;
property LeadingZeros: boolean read GetLeadingZeros write SetLeadingZeros
default FALSE;
property DigitCount: integer read GetDigitCount write SetDigitCount
@ -479,6 +481,11 @@ begin
Result := TSynGutterPartBase(FGutterPartList[Index]);
end;
function TSynGutter.GetMarkupInfoCodeFoldingTree: TSynSelectedColor;
begin
Result := TSynGutterCodeFolding(FCodeFoldGutter).MarkupInfoCodeFoldingTree;
end;
procedure TSynGutter.SetLeftOffset(Value: integer);
begin
Value := Max(0, Value);

View File

@ -95,7 +95,7 @@ begin
Canvas.FillRect(AClip);
end;
Canvas.Pen.Width := Width ;
Canvas.Pen.Width := Width;
Canvas.Pen.EndCap:= pecFlat;
rcLine := AClip;

View File

@ -16,7 +16,7 @@ type
private
FEdit: TSynEditBase;
FFoldView: TSynEditFoldedView;
FMarkupInfoCodeFoldingTree: TSynSelectedColor;
public
constructor Create(AOwner : TSynEditBase; AFoldView : TSynEditFoldedView);
@ -25,6 +25,7 @@ type
function RealGutterWidth(CharWidth: integer): integer; override;
procedure DoOnGutterClick(X, Y: integer); override;
public
property MarkupInfoCodeFoldingTree: TSynSelectedColor read FMarkupInfoCodeFoldingTree;
end;
implementation
@ -40,6 +41,12 @@ begin
FEdit := AOwner;
FFoldView := AFoldView;
FMarkupInfoCodeFoldingTree := TSynSelectedColor.Create;
FMarkupInfoCodeFoldingTree.Background := clNone;
FMarkupInfoCodeFoldingTree.Foreground := clDkGray;
FMarkupInfoCodeFoldingTree.FrameColor := clNone;
FMarkupInfoCodeFoldingTree.OnChange := @DoChange;
Width := 14;
end;
@ -64,7 +71,6 @@ procedure TSynGutterCodeFolding.Paint(Canvas : TCanvas; AClip : TRect; FirstLine
var
iLine: integer;
rcLine: TRect;
dc: HDC;
rcCodeFold: TRect;
tmp: TSynEditCodeFoldType;
LineHeight, LineOffset: Integer;
@ -138,15 +144,19 @@ begin
if not Visible then exit;
LineHeight := TSynEdit(FEdit).LineHeight;
LineOffset := 0;
Canvas.Brush.Color := Color;
dc := Canvas.Handle;
{$IFDEF SYN_LAZARUS}
LCLIntf.SetBkColor(dc,Canvas.Brush.Color);
{$ENDIF}
if MarkupInfoCodeFoldingTree.Background <> clNone then
begin
Canvas.Brush.Color := MarkupInfoCodeFoldingTree.Background;
{$IFDEF SYN_LAZARUS}
LCLIntf.SetBkColor(Canvas.Handle, Canvas.Brush.Color);
{$ENDIF}
Canvas.FillRect(AClip);
end;
with Canvas do
begin
Pen.Color := clDkGray;
Pen.Color := MarkupInfoCodeFoldingTree.Foreground;
Pen.Width := 1;
rcLine.Bottom := FirstLine * LineHeight;