HL presets, add clone btn + preset "Mars dark"

This commit is contained in:
Basile Burg 2016-06-22 06:58:18 +02:00
parent 07943f511b
commit 4b69fb4fa9
1 changed files with 76 additions and 4 deletions

View File

@ -59,6 +59,7 @@ type
destructor destroy; override; destructor destroy; override;
procedure assignToOptions; procedure assignToOptions;
procedure assignFromOptions; procedure assignFromOptions;
procedure Assign(Source: TPersistent); override;
end; end;
TCED2SynPresets = class(TWritableLfmTextComponent) TCED2SynPresets = class(TWritableLfmTextComponent)
@ -94,6 +95,7 @@ type
procedure lstBoxSelChange(Sender: TObject); procedure lstBoxSelChange(Sender: TObject);
procedure btnAddClick(sender: TObject); procedure btnAddClick(sender: TObject);
procedure btnDelClick(sender: TObject); procedure btnDelClick(sender: TObject);
procedure btnCloneClick(sender: TObject);
procedure propEdModified(sender: TObject); procedure propEdModified(sender: TObject);
procedure updateList; procedure updateList;
procedure updateEditor; procedure updateEditor;
@ -202,6 +204,25 @@ begin
mouseLink.Assign(EditorOptions.mouseLink); mouseLink.Assign(EditorOptions.mouseLink);
selection.Assign(EditorOptions.selection); selection.Assign(EditorOptions.selection);
end; end;
procedure TCED2SynPreset.Assign(Source: TPersistent);
var
src: TCED2SynPreset;
begin
if Source is TCED2SynPreset then
begin
src := TCED2SynPreset(Source);
background:=src.background;
highlighter.Assign(src.highlighter);
bracketMatch.Assign(src.bracketMatch);
currentLine.Assign(src.currentLine);
folding.Assign(src.folding);
identifierMatch.Assign(src.identifierMatch);
mouseLink.Assign(src.mouseLink);
selection.Assign(src.selection);
end else
inherited;
end;
{$ENDREGION} {$ENDREGION}
{$REGION TCED2SynPresets ------------------------------------------------------} {$REGION TCED2SynPresets ------------------------------------------------------}
@ -409,6 +430,39 @@ begin
selection.Background := 12837345; selection.Background := 12837345;
selection.Foreground := clNone; selection.Foreground := clNone;
end; end;
with fPresets.addPreset do
begin
name := 'Mars dark';
getHl.Enabled := False;
getHl.numbers.Foreground := 7763655;
getHl.symbols.Foreground := 5460961;
getHl.identifiers.Foreground := clCream;
getHl.comments.Foreground := 5095359;
getHl.strings.Foreground := 10790107;
getHl.keywords.Foreground := 4539883;
getHl.ddoc.Foreground := 10540501;
getHl.inlineAsm.Foreground := 12303291;
getHl.special.Foreground := 2631874;
getHl.errors.Foreground := clCream;
getHl.attributes.Foreground := 2631874;
background := 5263440;
bracketMatch.Background := 9276865;
bracketMatch.Foreground := clNone;
currentLine.Background := 4013373;
currentLine.Foreground := clNone;
folding.Background := clNone;
folding.Foreground := clNone;
folding.FrameColor := clBlack;
identifierMatch.Background := 6381928;
identifierMatch.Foreground := clNone;
identifierMatch.BackPriority := 10;
mouseLink.Background := clNone;
mouseLink.Foreground := clNone;
mouseLink.FrameColor := clRed;
mouseLink.FrameEdges := sfeBottom;
selection.Background := 12837345;
selection.Foreground := clNone;
end;
end; end;
// TODO-cd2synpresets: add more presets // TODO-cd2synpresets: add more presets
// //
@ -454,22 +508,28 @@ begin
// //
btn := TBitBtn.Create(self); btn := TBitBtn.Create(self);
btn.Parent := pnl; btn.Parent := pnl;
btn.Width:= 26; btn.Width:= 28;
btn.Align:= alRight; btn.Align:= alRight;
btn.BorderSpacing.Around:=2;
btn.OnClick:=@btnAddClick; btn.OnClick:=@btnAddClick;
btn.Hint:='add preset'; btn.Hint:='add preset';
AssignPng(btn, 'DOCUMENT_ADD'); AssignPng(btn, 'DOCUMENT_ADD');
// //
btn := TBitBtn.Create(self); btn := TBitBtn.Create(self);
btn.Parent := pnl; btn.Parent := pnl;
btn.Width:= 26; btn.Width:= 28;
btn.Align:= alRight; btn.Align:= alRight;
btn.BorderSpacing.Around:=2;
btn.OnClick:=@btnDelClick; btn.OnClick:=@btnDelClick;
btn.Hint:='delete preset'; btn.Hint:='delete preset';
AssignPng(btn, 'DOCUMENT_DELETE'); AssignPng(btn, 'DOCUMENT_DELETE');
// //
btn := TBitBtn.Create(self);
btn.Parent := pnl;
btn.Width:= 28;
btn.Align:= alRight;
btn.OnClick:=@btnCloneClick;
btn.Hint:='clone preset';
AssignPng(btn, 'DOCUMENT_PLUS');
//
fPropEd := TTIPropertyGrid.Create(self); fPropEd := TTIPropertyGrid.Create(self);
fPropEd.Parent := self; fPropEd.Parent := self;
fPropEd.Align:= alClient; fPropEd.Align:= alClient;
@ -555,6 +615,18 @@ begin
lstBoxSelChange(nil); lstBoxSelChange(nil);
end; end;
procedure TCED2SynPresetsLoaderForm.btnCloneClick(sender: TObject);
var
old: TCED2SynPreset;
begin
if fList.ItemIndex = -1 then
exit;
old := fPresets[fList.ItemIndex];
btnAddClick(nil);
fPresets[fList.ItemIndex].Assign(old);
updateEditor;
end;
procedure TCED2SynPresetsLoaderForm.propEdModified(sender: TObject); procedure TCED2SynPresetsLoaderForm.propEdModified(sender: TObject);
begin begin
updateEditor; updateEditor;