Issue #1659: create dialog for customizing highlighter colors and style, for use on grid text editor

This commit is contained in:
Ansgar Becker
2022-09-11 13:52:59 +02:00
parent c68dd226aa
commit ddca97c07a
8 changed files with 447 additions and 3 deletions

View File

@ -6,7 +6,7 @@ uses
Windows, Classes, Graphics, Forms, Controls, StdCtrls, VirtualTrees,
ComCtrls, ToolWin, Dialogs, SysUtils, Menus, ExtDlgs,
apphelpers, gnugettext, ActnList, StdActns, extra_controls, System.Actions,
Vcl.ExtCtrls, dbconnection, SynEdit, SynMemo, SynEditHighlighter,
Vcl.ExtCtrls, dbconnection, SynEdit, SynMemo, SynEditHighlighter, customize_highlighter,
SynHighlighterADSP21xx, SynHighlighterAWK, SynHighlighterAsm,
SynHighlighterBaan, SynHighlighterBat, SynHighlighterCAC, SynHighlighterCPM, SynHighlighterCS,
@ -59,6 +59,8 @@ type
Findorreplaceagain1: TMenuItem;
Replacetext1: TMenuItem;
N1: TMenuItem;
ToolButton1: TToolButton;
btnCustomizeHighlighter: TToolButton;
procedure btnApplyClick(Sender: TObject);
procedure btnCancelClick(Sender: TObject);
procedure btnLoadTextClick(Sender: TObject);
@ -73,6 +75,7 @@ type
procedure SelectLinebreaks(Sender: TObject);
procedure TimerMemoChangeTimer(Sender: TObject);
procedure comboHighlighterSelect(Sender: TObject);
procedure btnCustomizeHighlighterClick(Sender: TObject);
private
{ Private declarations }
FModified: Boolean;
@ -83,6 +86,7 @@ type
FTableColumn: TTableColumn;
FHighlighter: TSynCustomHighlighter;
procedure SetModified(NewVal: Boolean);
procedure CustomizeHighlighterChanged(Sender: TObject);
public
function GetText: String;
procedure SetText(text: String);
@ -160,6 +164,27 @@ begin
end;
procedure TfrmTextEditor.btnCustomizeHighlighterClick(Sender: TObject);
var
Dialog: TfrmCustomizeHighlighter;
begin
// let user customize highlighter colors
Dialog := TfrmCustomizeHighlighter.Create(Self);
Dialog.FriendlyLanguageName := MemoText.Highlighter.FriendlyLanguageName;
Dialog.OnChange := CustomizeHighlighterChanged;
Dialog.ShowModal;
Dialog.Free;
end;
procedure TfrmTextEditor.CustomizeHighlighterChanged(Sender: TObject);
var
Dialog: TfrmCustomizeHighlighter;
begin
Dialog := Sender as TfrmCustomizeHighlighter;
comboHighlighter.ItemIndex := comboHighlighter.Items.IndexOf(Dialog.FriendlyLanguageName);
comboHighlighter.OnSelect(comboHighlighter);
end;
procedure TfrmTextEditor.SelectLinebreaks(Sender: TObject);
var
Selected, Item: TMenuItem;
@ -340,6 +365,8 @@ begin
MemoText.Highlighter := FHighlighter;
end;
MemoText.Highlighter.LoadFromFile(AppSettings.DirnameHighlighters + MemoText.Highlighter.LanguageName + '.ini');
MemoText.SelStart := SelStart;
MemoText.SelLength := SelLength;
end;