Implement preference option to adjust tab width in SynMemos. Fixes issue #857.

This commit is contained in:
Ansgar Becker
2009-11-24 19:34:48 +00:00
parent e5771ad084
commit 0c83491ed5
4 changed files with 46 additions and 11 deletions

View File

@ -56,6 +56,8 @@ const
DEFAULT_FONTNAME = 'Courier New'; DEFAULT_FONTNAME = 'Courier New';
REGNAME_FONTSIZE = 'FontSize'; REGNAME_FONTSIZE = 'FontSize';
DEFAULT_FONTSIZE = 9; DEFAULT_FONTSIZE = 9;
REGNAME_TABWIDTH = 'TabWidth';
DEFAULT_TABWIDTH = 3;
REGNAME_DATAFONTNAME = 'DataFontName'; REGNAME_DATAFONTNAME = 'DataFontName';
DEFAULT_DATAFONTNAME = 'Tahoma'; DEFAULT_DATAFONTNAME = 'Tahoma';
REGNAME_DATAFONTSIZE = 'DataFontSize'; REGNAME_DATAFONTSIZE = 'DataFontSize';

View File

@ -8812,7 +8812,7 @@ var
Editors: TObjectList; Editors: TObjectList;
BaseEditor, Editor: TSynMemo; BaseEditor, Editor: TSynMemo;
FontName: String; FontName: String;
FontSize: Integer; FontSize, TabWidth: Integer;
KeyStroke: TSynEditKeyStroke; KeyStroke: TSynEditKeyStroke;
ActiveLineColor: TColor; ActiveLineColor: TColor;
Attri: TSynHighlighterAttributes; Attri: TSynHighlighterAttributes;
@ -8844,6 +8844,7 @@ begin
FontName := GetRegValue(REGNAME_FONTNAME, DEFAULT_FONTNAME); FontName := GetRegValue(REGNAME_FONTNAME, DEFAULT_FONTNAME);
FontSize := GetRegValue(REGNAME_FONTSIZE, DEFAULT_FONTSIZE); FontSize := GetRegValue(REGNAME_FONTSIZE, DEFAULT_FONTSIZE);
TabWidth := GetRegValue(REGNAME_TABWIDTH, DEFAULT_TABWIDTH);
ActiveLineColor := StringToColor(GetRegValue(REGNAME_SQLCOLACTIVELINE, ColorToString(DEFAULT_SQLCOLACTIVELINE))); ActiveLineColor := StringToColor(GetRegValue(REGNAME_SQLCOLACTIVELINE, ColorToString(DEFAULT_SQLCOLACTIVELINE)));
for i:=0 to Editors.Count-1 do begin for i:=0 to Editors.Count-1 do begin
Editor := Editors[i] as TSynMemo; Editor := Editors[i] as TSynMemo;
@ -8853,7 +8854,7 @@ begin
Editor.Gutter.Font.Size := FontSize; Editor.Gutter.Font.Size := FontSize;
Editor.ActiveLineColor := ActiveLineColor; Editor.ActiveLineColor := ActiveLineColor;
Editor.Options := BaseEditor.Options; Editor.Options := BaseEditor.Options;
Editor.TabWidth := BaseEditor.TabWidth; Editor.TabWidth := TabWidth;
Editor.MaxScrollWidth := BaseEditor.MaxScrollWidth; Editor.MaxScrollWidth := BaseEditor.MaxScrollWidth;
// Shortcuts // Shortcuts
if Editor = BaseEditor then for j:=0 to Editor.Keystrokes.Count-1 do begin if Editor = BaseEditor then for j:=0 to Editor.Keystrokes.Count-1 do begin

View File

@ -206,22 +206,22 @@ object optionsform: Toptionsform
object grpSQLFont: TGroupBox object grpSQLFont: TGroupBox
Left = 1 Left = 1
Top = 1 Top = 1
Width = 397 Width = 288
Height = 56 Height = 56
Anchors = [akLeft, akTop, akRight, akBottom] Anchors = [akLeft, akTop, akRight, akBottom]
Caption = 'Editor font' Caption = 'Editor font'
TabOrder = 0 TabOrder = 0
object lblSQLFontSize: TLabel object lblSQLFontSize: TLabel
Left = 248 Left = 263
Top = 26 Top = 26
Width = 23 Width = 10
Height = 13 Height = 13
Caption = 'Size:' Caption = 'pt'
end end
object comboSQLFontName: TComboBox object comboSQLFontName: TComboBox
Left = 16 Left = 16
Top = 23 Top = 23
Width = 193 Width = 181
Height = 21 Height = 21
Style = csDropDownList Style = csDropDownList
ItemHeight = 13 ItemHeight = 13
@ -229,7 +229,7 @@ object optionsform: Toptionsform
OnChange = SQLFontChange OnChange = SQLFontChange
end end
object editSQLFontSize: TEdit object editSQLFontSize: TEdit
Left = 294 Left = 200
Top = 23 Top = 23
Width = 41 Width = 41
Height = 21 Height = 21
@ -238,7 +238,7 @@ object optionsform: Toptionsform
OnExit = SQLFontChange OnExit = SQLFontChange
end end
object updownSQLFontSize: TUpDown object updownSQLFontSize: TUpDown
Left = 335 Left = 241
Top = 23 Top = 23
Width = 16 Width = 16
Height = 21 Height = 21
@ -366,6 +366,32 @@ object optionsform: Toptionsform
OnChange = SQLFontChange OnChange = SQLFontChange
end end
end end
object grpSQLTabWidth: TGroupBox
Left = 295
Top = 1
Width = 102
Height = 56
Caption = 'Tab width'
TabOrder = 3
object editSQLTabWidth: TEdit
Left = 14
Top = 23
Width = 43
Height = 21
TabOrder = 0
Text = '0'
OnExit = SQLFontChange
end
object updownSQLTabWidth: TUpDown
Left = 57
Top = 23
Width = 16
Height = 21
Associate = editSQLTabWidth
TabOrder = 1
OnClick = updownSQLFontSizeClick
end
end
end end
object tabData: TTabSheet object tabData: TTabSheet
BorderWidth = 5 BorderWidth = 5

View File

@ -115,6 +115,9 @@ type
lblShortcutHint: TLabel; lblShortcutHint: TLabel;
Shortcut2: TSynHotKey; Shortcut2: TSynHotKey;
lblShortcut2: TLabel; lblShortcut2: TLabel;
grpSQLTabWidth: TGroupBox;
editSQLTabWidth: TEdit;
updownSQLTabWidth: TUpDown;
procedure FormShow(Sender: TObject); procedure FormShow(Sender: TObject);
procedure Modified(Sender: TObject); procedure Modified(Sender: TObject);
procedure Apply(Sender: TObject); procedure Apply(Sender: TObject);
@ -204,6 +207,7 @@ begin
MainReg.WriteBool(REGNAME_RESTORELASTUSEDDB, chkRestoreLastDB.Checked); MainReg.WriteBool(REGNAME_RESTORELASTUSEDDB, chkRestoreLastDB.Checked);
MainReg.WriteString(REGNAME_FONTNAME, comboSQLFontName.Text); MainReg.WriteString(REGNAME_FONTNAME, comboSQLFontName.Text);
MainReg.WriteInteger(REGNAME_FONTSIZE, updownSQLFontSize.Position); MainReg.WriteInteger(REGNAME_FONTSIZE, updownSQLFontSize.Position);
MainReg.WriteInteger(REGNAME_TABWIDTH, updownSQLTabWidth.Position);
MainReg.WriteInteger(REGNAME_LOGSQLNUM, updownLogLines.Position); MainReg.WriteInteger(REGNAME_LOGSQLNUM, updownLogLines.Position);
MainReg.WriteInteger(REGNAME_LOGSQLWIDTH, updownLogSnip.Position); MainReg.WriteInteger(REGNAME_LOGSQLWIDTH, updownLogSnip.Position);
for i:=0 to SynSQLSynSQLSample.AttrCount - 1 do begin for i:=0 to SynSQLSynSQLSample.AttrCount - 1 do begin
@ -332,12 +336,12 @@ begin
InheritFont(Font); InheritFont(Font);
EnumFontFamilies(Canvas.Handle, nil, @EnumFixedProc, LPARAM(Pointer(comboSQLFontName.Items))); EnumFontFamilies(Canvas.Handle, nil, @EnumFixedProc, LPARAM(Pointer(comboSQLFontName.Items)));
SynMemoSQLSample.Text := 'SELECT DATE_SUB(NOW(), INTERVAL 1 DAY),' + CRLF + SynMemoSQLSample.Text := 'SELECT DATE_SUB(NOW(), INTERVAL 1 DAY),' + CRLF +
' ''String literal'' AS lit' + CRLF + #9'''String literal'' AS lit' + CRLF +
'FROM tableA AS ta -- A comment' + CRLF + 'FROM tableA AS ta -- A comment' + CRLF +
'WHERE `columnA` IS NULL; # More comment' + CRLF + 'WHERE `columnA` IS NULL; # More comment' + CRLF +
CRLF + CRLF +
'CREATE TABLE /*!32312 IF NOT EXISTS*/ tableB' + CRLF + 'CREATE TABLE /*!32312 IF NOT EXISTS*/ tableB' + CRLF +
' (id INT, name VARCHAR(30) DEFAULT "standard")'; #9'(id INT, name VARCHAR(30) DEFAULT "standard")';
SynSQLSynSQLSample.TableNames.CommaText := 'tableA,tableB'; SynSQLSynSQLSample.TableNames.CommaText := 'tableA,tableB';
for i:=0 to SynSQLSynSQLSample.AttrCount - 1 do for i:=0 to SynSQLSynSQLSample.AttrCount - 1 do
comboSQLColElement.Items.Add(SynSQLSynSQLSample.Attribute[i].FriendlyName); comboSQLColElement.Items.Add(SynSQLSynSQLSample.Attribute[i].FriendlyName);
@ -390,6 +394,7 @@ begin
Mainform.SetupSynEditors; Mainform.SetupSynEditors;
comboSQLFontName.ItemIndex := comboSQLFontName.Items.IndexOf(SynMemoSQLSample.Font.Name); comboSQLFontName.ItemIndex := comboSQLFontName.Items.IndexOf(SynMemoSQLSample.Font.Name);
updownSQLFontSize.Position := SynMemoSQLSample.Font.Size; updownSQLFontSize.Position := SynMemoSQLSample.Font.Size;
updownSQLTabWidth.Position := SynMemoSQLSample.TabWidth;
comboSQLColElementChange(Sender); comboSQLColElementChange(Sender);
// Data-Appearance: // Data-Appearance:
@ -430,6 +435,7 @@ var
begin begin
SynMemoSQLSample.Font.Name := comboSQLFontName.Items[comboSQLFontName.ItemIndex]; SynMemoSQLSample.Font.Name := comboSQLFontName.Items[comboSQLFontName.ItemIndex];
SynMemoSQLSample.Font.Size := updownSQLFontSize.Position; SynMemoSQLSample.Font.Size := updownSQLFontSize.Position;
SynMemoSQLSample.TabWidth := updownSQLTabWidth.Position;
AttriIdx := comboSQLColElement.ItemIndex; AttriIdx := comboSQLColElement.ItemIndex;
Foreground := cboxSQLColForeground.Selected; Foreground := cboxSQLColForeground.Selected;
Background := cboxSQLColBackground.Selected; Background := cboxSQLColBackground.Selected;