475 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
			
		
		
	
	
			475 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
unit formopt;
 | 
						|
 | 
						|
{$mode objfpc}{$H+}
 | 
						|
 | 
						|
interface
 | 
						|
 | 
						|
uses
 | 
						|
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
 | 
						|
  ButtonPanel, Spin, ComCtrls, ATSynEdit, ATSynEdit_CanvasProc;
 | 
						|
 | 
						|
type
 | 
						|
  { TfmOpt }
 | 
						|
 | 
						|
  TfmOpt = class(TForm)
 | 
						|
    bColDown: TButton;
 | 
						|
    bColUp: TButton;
 | 
						|
    ButtonPanel1: TButtonPanel;
 | 
						|
    chkCrBlinkEn: TCheckBox;
 | 
						|
    chkMsNormalSel: TCheckBox;
 | 
						|
    chkMsColumnSel: TCheckBox;
 | 
						|
    chkUnprintArrowDown: TCheckBox;
 | 
						|
    chkShowFullHilite: TCheckBox;
 | 
						|
    chkMsHideCursor: TCheckBox;
 | 
						|
    chkLeftRtSwapAndSel: TCheckBox;
 | 
						|
    chkGutterSep: TCheckBox;
 | 
						|
    chkGutterNumAuto: TCheckBox;
 | 
						|
    chkGutterBm: TCheckBox;
 | 
						|
    chkGutterEmpty: TCheckBox;
 | 
						|
    chkGutterFold: TCheckBox;
 | 
						|
    chkGutterNum: TCheckBox;
 | 
						|
    chkGutterStat: TCheckBox;
 | 
						|
    chkShowFoldLinesAll: TCheckBox;
 | 
						|
    chkBackspUnindent: TCheckBox;
 | 
						|
    chkEnterIndent: TCheckBox;
 | 
						|
    chkMsMenuDown: TCheckBox;
 | 
						|
    chkTabIndent: TCheckBox;
 | 
						|
    chkUnindentKeepAlign: TCheckBox;
 | 
						|
    chkUnprintAsciiRep: TCheckBox;
 | 
						|
    chkShowFoldLines: TCheckBox;
 | 
						|
    chkShowFoldAlways: TCheckBox;
 | 
						|
    chkCrPreferLeft: TCheckBox;
 | 
						|
    chkKeepCol: TCheckBox;
 | 
						|
    chkCurLineMin: TCheckBox;
 | 
						|
    chkScrollHint: TCheckBox;
 | 
						|
    chkPageKeepRel: TCheckBox;
 | 
						|
    chkNavHomeEnd: TCheckBox;
 | 
						|
    chkMsNiceScroll: TCheckBox;
 | 
						|
    chkSaveEol: TCheckBox;
 | 
						|
    chkSaveTrim: TCheckBox;
 | 
						|
    chkShowNum1st: TCheckBox;
 | 
						|
    chkShowNumCr: TCheckBox;
 | 
						|
    chkMapSelBorder: TCheckBox;
 | 
						|
    chkMapSelAlways: TCheckBox;
 | 
						|
    chkShowNumBg: TCheckBox;
 | 
						|
    chkTabSpaces: TCheckBox;
 | 
						|
    chkUndoSv: TCheckBox;
 | 
						|
    chkUndoGr: TCheckBox;
 | 
						|
    chkCutNoSel: TCheckBox;
 | 
						|
    chkDotLn: TCheckBox;
 | 
						|
    chkMsClickNumSel: TCheckBox;
 | 
						|
    chkCrStopUnfocus: TCheckBox;
 | 
						|
    chkEndNonspace: TCheckBox;
 | 
						|
    chkHomeNonspace: TCheckBox;
 | 
						|
    chkLeftRtSwap: TCheckBox;
 | 
						|
    chkNavUpDown: TCheckBox;
 | 
						|
    chkOvrSel: TCheckBox;
 | 
						|
    chkMsRtClickMove: TCheckBox;
 | 
						|
    chkMsDragDrop: TCheckBox;
 | 
						|
    chkCrMul: TCheckBox;
 | 
						|
    chkCrVirt: TCheckBox;
 | 
						|
    chkMsClick2: TCheckBox;
 | 
						|
    chkMsClick2Drag: TCheckBox;
 | 
						|
    chkMsClick3: TCheckBox;
 | 
						|
    chkShowFullSel: TCheckBox;
 | 
						|
    chkCopyNoSel: TCheckBox;
 | 
						|
    chkCurCol: TCheckBox;
 | 
						|
    chkCurLine: TCheckBox;
 | 
						|
    chkLastOnTop: TCheckBox;
 | 
						|
    chkOvrPaste: TCheckBox;
 | 
						|
    chkUnprintEnd: TCheckBox;
 | 
						|
    chkUnprintEndDet: TCheckBox;
 | 
						|
    chkUnprintSpace: TCheckBox;
 | 
						|
    chkUnprintEn: TCheckBox;
 | 
						|
    edMapCharWidth: TSpinEdit;
 | 
						|
    edNumAlign: TComboBox;
 | 
						|
    edIndentKind: TComboBox;
 | 
						|
    edCrShape: TComboBox;
 | 
						|
    edCrShape2: TComboBox;
 | 
						|
    edCrTime: TSpinEdit;
 | 
						|
    edSizeSep: TSpinEdit;
 | 
						|
    edWordChars: TEdit;
 | 
						|
    edIndentSize: TSpinEdit;
 | 
						|
    edPlusSize: TSpinEdit;
 | 
						|
    edNumChar: TEdit;
 | 
						|
    edNumStyle: TComboBox;
 | 
						|
    edPageSize: TComboBox;
 | 
						|
    edRulerFSize: TSpinEdit;
 | 
						|
    edRulerIndent: TSpinEdit;
 | 
						|
    edRulerSize: TSpinEdit;
 | 
						|
    edSizeBm: TSpinEdit;
 | 
						|
    edSizeEmpty: TSpinEdit;
 | 
						|
    edSizeFold: TSpinEdit;
 | 
						|
    edSizeNum1: TSpinEdit;
 | 
						|
    edSizeNum2: TSpinEdit;
 | 
						|
    edSizeNum: TSpinEdit;
 | 
						|
    edSizeState: TSpinEdit;
 | 
						|
    edTabArrowSize: TSpinEdit;
 | 
						|
    edTabArrowPnt: TSpinEdit;
 | 
						|
    edTextHint: TEdit;
 | 
						|
    GroupBox1: TGroupBox;
 | 
						|
    GroupBox2: TGroupBox;
 | 
						|
    groupIndent: TGroupBox;
 | 
						|
    LabChars: TLabel;
 | 
						|
    Label1: TLabel;
 | 
						|
    Label10: TLabel;
 | 
						|
    Label12: TLabel;
 | 
						|
    Label13: TLabel;
 | 
						|
    Label14: TLabel;
 | 
						|
    Label15: TLabel;
 | 
						|
    Label16: TLabel;
 | 
						|
    Label17: TLabel;
 | 
						|
    Label18: TLabel;
 | 
						|
    Label19: TLabel;
 | 
						|
    Label2: TLabel;
 | 
						|
    Label20: TLabel;
 | 
						|
    Label3: TLabel;
 | 
						|
    Label4: TLabel;
 | 
						|
    Label5: TLabel;
 | 
						|
    Label6: TLabel;
 | 
						|
    Label7: TLabel;
 | 
						|
    Label8: TLabel;
 | 
						|
    Label9: TLabel;
 | 
						|
    LabelArr: TLabel;
 | 
						|
    LabelArr1: TLabel;
 | 
						|
    LabelHint: TLabel;
 | 
						|
    ListCol: TListBox;
 | 
						|
    ListShapes: TListBox;
 | 
						|
    PageControl1: TPageControl;
 | 
						|
    edUndo: TSpinEdit;
 | 
						|
    edNumSize: TSpinEdit;
 | 
						|
    TabSheet1: TTabSheet;
 | 
						|
    TabSheet2: TTabSheet;
 | 
						|
    TabSheet3: TTabSheet;
 | 
						|
    TabSheet4: TTabSheet;
 | 
						|
    TabSheet5: TTabSheet;
 | 
						|
    TabSheet6: TTabSheet;
 | 
						|
    TabSheet7: TTabSheet;
 | 
						|
    TabSheet8: TTabSheet;
 | 
						|
    TabSheet9: TTabSheet;
 | 
						|
    procedure bColDownClick(Sender: TObject);
 | 
						|
    procedure bColUpClick(Sender: TObject);
 | 
						|
    procedure FormCreate(Sender: TObject);
 | 
						|
  private
 | 
						|
    { private declarations }
 | 
						|
  public
 | 
						|
    { public declarations }
 | 
						|
    procedure InitShape(ed: TCombobox);
 | 
						|
  end;
 | 
						|
 | 
						|
var
 | 
						|
  fmOpt: TfmOpt;
 | 
						|
 | 
						|
procedure DoConfigEditor(ed: TATSynEdit);
 | 
						|
 | 
						|
 | 
						|
implementation
 | 
						|
 | 
						|
{$R *.lfm}
 | 
						|
 | 
						|
const
 | 
						|
  nameBm = 'bookmk';
 | 
						|
  nameNums = 'nums';
 | 
						|
  nameState = 'states';
 | 
						|
  nameFold = 'fold';
 | 
						|
  nameSep = 'separator';
 | 
						|
 | 
						|
procedure DoConfigEditor(ed: TATSynEdit);
 | 
						|
var
 | 
						|
  i: integer;
 | 
						|
begin
 | 
						|
  with fmOpt do
 | 
						|
  begin
 | 
						|
    with ListCol do
 | 
						|
    begin
 | 
						|
      Items.Clear;
 | 
						|
      for i:= 0 to 4 do
 | 
						|
      begin
 | 
						|
        if i=ed.GutterBandBm then Items.Add(nameBm);
 | 
						|
        if i=ed.GutterBandNum then Items.Add(nameNums);
 | 
						|
        if i=ed.GutterBandState then Items.Add(nameState);
 | 
						|
        if i=ed.GutterBandFold then Items.Add(nameFold);
 | 
						|
        if i=ed.GutterBandSep then Items.Add(nameSep);
 | 
						|
      end;
 | 
						|
      ItemIndex:= 0;
 | 
						|
    end;
 | 
						|
 | 
						|
    //general
 | 
						|
    chkCurLine.Checked:= ed.OptShowCurLine;
 | 
						|
    chkCurLineMin.Checked:= ed.OptShowCurLineMinimal;
 | 
						|
    chkCurCol.Checked:= ed.OptShowCurColumn;
 | 
						|
    chkLastOnTop.Checked:= ed.OptLastLineOnTop;
 | 
						|
    chkShowFullSel.Checked:= ed.OptShowFullSel;
 | 
						|
    chkShowFullHilite.Checked:= ed.OptShowFullHilite;
 | 
						|
    chkCopyNoSel.Checked:= ed.OptCopyLinesIfNoSel;
 | 
						|
    chkCutNoSel.Checked:= ed.OptCutLinesIfNoSel;
 | 
						|
    chkOvrPaste.Checked:= ed.OptOverwriteAllowedOnPaste;
 | 
						|
    chkDotLn.Checked:= ed.OptShowIndentLines;
 | 
						|
    edTextHint.Text:= ed.OptTextHint;
 | 
						|
    edWordChars.Text:= ed.OptWordChars;
 | 
						|
    chkSaveEol.Checked:= ed.OptSavingForceFinalEol;
 | 
						|
    chkSaveTrim.Checked:= ed.OptSavingTrimSpaces;
 | 
						|
    chkScrollHint.Checked:= ed.OptShowScrollHint;
 | 
						|
 | 
						|
    //unprint
 | 
						|
    chkUnprintEn.Checked:= ed.OptUnprintedVisible;
 | 
						|
    chkUnprintSpace.Checked:= ed.OptUnprintedSpaces;
 | 
						|
    chkUnprintEnd.Checked:= ed.OptUnprintedEnds;
 | 
						|
    chkUnprintEndDet.Checked:= ed.OptUnprintedEndsDetails;
 | 
						|
    chkUnprintArrowDown.Checked:= OptUnprintedEndArrowOrDot;
 | 
						|
    chkUnprintAsciiRep.Checked:= ed.OptUnprintedReplaceSpec;
 | 
						|
    edTabArrowSize.Value:= OptUnprintedTabCharLength;
 | 
						|
    edTabArrowPnt.Value:= OptUnprintedTabPointerScale;
 | 
						|
 | 
						|
    //caret
 | 
						|
    chkCrBlinkEn.Checked:= ed.OptCaretBlinkEnabled;
 | 
						|
    edCrTime.Value:= ed.OptCaretBlinkTime;
 | 
						|
    chkCrVirt.Checked:= ed.OptCaretVirtual;
 | 
						|
    chkCrMul.Checked:= ed.OptCaretManyAllowed;
 | 
						|
    chkCrStopUnfocus.Checked:= ed.OptCaretStopUnfocused;
 | 
						|
    chkCrPreferLeft.Checked:= ed.OptCaretPreferLeftSide;
 | 
						|
    edCrShape.ItemIndex:= Ord(ed.OptCaretShape);
 | 
						|
    edCrShape2.ItemIndex:= Ord(ed.OptCaretShapeOvr);
 | 
						|
 | 
						|
    //gutter
 | 
						|
    edNumStyle.ItemIndex:= Ord(ed.OptNumbersStyle);
 | 
						|
    edNumAlign.ItemIndex:= Ord(ed.OptNumbersAlignment);
 | 
						|
    edNumSize.Value:= ed.OptNumbersFontSize;
 | 
						|
    edNumChar.Text:= ed.OptNumbersSkippedChar;
 | 
						|
    edPlusSize.Value:= ed.OptGutterPlusSize;
 | 
						|
    chkShowNum1st.Checked:= ed.OptNumbersShowFirst;
 | 
						|
    chkShowNumCr.Checked:= ed.OptNumbersShowCarets;
 | 
						|
    chkShowNumBg.Checked:= ed.OptShowGutterCaretBG;
 | 
						|
    chkShowFoldAlways.Checked:= ed.OptGutterShowFoldAlways;
 | 
						|
    chkShowFoldLines.Checked:= ed.OptGutterShowFoldLines;
 | 
						|
    chkShowFoldLinesAll.Checked:= ed.OptGutterShowFoldLinesAll;
 | 
						|
    edRulerSize.Value:= ed.OptRulerSize;
 | 
						|
    edRulerFSize.Value:= ed.OptRulerFontSize;
 | 
						|
    edRulerIndent.Value:= ed.OptRulerTextIndent;
 | 
						|
 | 
						|
    chkGutterBm.Checked:= ed.Gutter[ed.GutterBandBm].Visible;
 | 
						|
    chkGutterNum.Checked:= ed.Gutter[ed.GutterBandNum].Visible;
 | 
						|
    chkGutterFold.Checked:= ed.Gutter[ed.GutterBandFold].Visible;
 | 
						|
    chkGutterStat.Checked:= ed.Gutter[ed.GutterBandState].Visible;
 | 
						|
    chkGutterSep.Checked:= ed.Gutter[ed.GutterBandSep].Visible;
 | 
						|
    chkGutterEmpty.Checked:= ed.Gutter[ed.GutterBandEmpty].Visible;
 | 
						|
    edSizeBm.Value:= ed.Gutter[ed.GutterBandBm].Size;
 | 
						|
    edSizeFold.Value:= ed.Gutter[ed.GutterBandFold].Size;
 | 
						|
    edSizeState.Value:= ed.Gutter[ed.GutterBandState].Size;
 | 
						|
    edSizeSep.Value:= ed.Gutter[ed.GutterBandSep].Size;
 | 
						|
    edSizeEmpty.Value:= ed.Gutter[ed.GutterBandEmpty].Size;
 | 
						|
    edSizeNum.Value:= ed.Gutter[ed.GutterBandNum].Size;
 | 
						|
    edSizeNum1.Value:= ed.OptNumbersIndentLeft;
 | 
						|
    edSizeNum2.Value:= ed.OptNumbersIndentRight;
 | 
						|
    chkGutterNumAuto.Checked:= ed.OptNumbersAutosize;
 | 
						|
 | 
						|
    //minimap
 | 
						|
    edMapCharWidth.Value:= ed.OptMinimapCharWidth;
 | 
						|
    chkMapSelBorder.Checked:= ed.OptMinimapShowSelBorder;
 | 
						|
    chkMapSelAlways.Checked:= ed.OptMinimapShowSelAlways;
 | 
						|
 | 
						|
    //key
 | 
						|
    chkTabSpaces.Checked:= ed.OptTabSpaces;
 | 
						|
    chkOvrSel.Checked:= ed.OptOverwriteSel;
 | 
						|
    chkNavUpDown.Checked:= ed.OptKeyUpDownNavigateWrapped;
 | 
						|
    chkNavHomeEnd.Checked:= ed.OptKeyHomeEndNavigateWrapped;
 | 
						|
    chkKeepCol.Checked:= ed.OptKeyUpDownKeepColumn;
 | 
						|
    chkLeftRtSwap.Checked:= ed.OptKeyLeftRightSwapSel;
 | 
						|
    chkLeftRtSwapAndSel.Checked:= ed.OptKeyLeftRightSwapSelAndSelect;
 | 
						|
    chkHomeNonspace.Checked:= ed.OptKeyHomeToNonSpace;
 | 
						|
    chkEndNonspace.Checked:= ed.OptKeyEndToNonSpace;
 | 
						|
    chkTabIndent.Checked:= ed.OptKeyTabIndents;
 | 
						|
    chkEnterIndent.Checked:= ed.OptAutoIndent;
 | 
						|
    chkBackspUnindent.Checked:= ed.OptKeyBackspaceUnindent;
 | 
						|
    edIndentKind.ItemIndex:= Ord(ed.OptAutoIndentKind);
 | 
						|
    edIndentSize.Value:= ed.OptIndentSize;
 | 
						|
    chkUnindentKeepAlign.Checked:= ed.OptIndentKeepsAlign;
 | 
						|
    edPageSize.ItemIndex:= Ord(ed.OptKeyPageUpDownSize);
 | 
						|
    chkPageKeepRel.Checked:= ed.OptKeyPageKeepsRelativePos;
 | 
						|
 | 
						|
    //mouse
 | 
						|
    chkMsNormalSel.Checked:= ed.OptMouseEnableNormalSelection;
 | 
						|
    chkMsColumnSel.Checked:= ed.OptMouseEnableColumnSelection;
 | 
						|
    chkMsClick2.Checked:= ed.OptMouse2ClickSelectsLine;
 | 
						|
    chkMsClick3.Checked:= ed.OptMouse3ClickSelectsLine;
 | 
						|
    chkMsClick2Drag.Checked:= ed.OptMouse2ClickDragSelectsWords;
 | 
						|
    chkMsClickNumSel.Checked:= ed.OptMouseGutterClickSelectsLine;
 | 
						|
    chkMsDragDrop.Checked:= ed.OptMouseDragDrop;
 | 
						|
    chkMsRtClickMove.Checked:= ed.OptMouseRightClickMovesCaret;
 | 
						|
    chkMsNiceScroll.Checked:= ed.OptMouseNiceScroll;
 | 
						|
    chkMsHideCursor.Checked:= ed.OptMouseHideCursorOnType;
 | 
						|
    chkMsMenuDown.Checked:= ed.OptMouseDownForPopup;
 | 
						|
 | 
						|
    //undo
 | 
						|
    edUndo.Value:= ed.OptUndoLimit;
 | 
						|
    chkUndoGr.Checked:= ed.OptUndoGrouped;
 | 
						|
    chkUndoSv.Checked:= ed.OptUndoAfterSave;
 | 
						|
 | 
						|
    if ShowModal=mrOk then
 | 
						|
    begin
 | 
						|
      ed.GutterBandBm:= ListCol.Items.IndexOf(nameBm);
 | 
						|
      ed.GutterBandNum:= ListCol.Items.IndexOf(nameNums);
 | 
						|
      ed.GutterBandState:= ListCol.Items.IndexOf(nameState);
 | 
						|
      ed.GutterBandFold:= ListCol.Items.IndexOf(nameFold);
 | 
						|
      ed.GutterBandSep:= ListCol.Items.IndexOf(nameSep);
 | 
						|
 | 
						|
      //general
 | 
						|
      ed.OptShowCurLine:= chkCurLine.Checked;
 | 
						|
      ed.OptShowCurLineMinimal:= chkCurLineMin.Checked;
 | 
						|
      ed.OptShowCurColumn:= chkCurCol.Checked;
 | 
						|
      ed.OptTextHint:= edTextHint.Text;
 | 
						|
      ed.OptWordChars:= edWordChars.Text;
 | 
						|
      ed.OptOverwriteAllowedOnPaste:= chkOvrPaste.Checked;
 | 
						|
      ed.OptCopyLinesIfNoSel:= chkCopyNoSel.Checked;
 | 
						|
      ed.OptCutLinesIfNoSel:= chkCutNoSel.Checked;
 | 
						|
      ed.OptShowFullSel:= chkShowFullSel.Checked;
 | 
						|
      ed.OptShowFullHilite:= chkShowFullHilite.Checked;
 | 
						|
      ed.OptLastLineOnTop:= chkLastOnTop.Checked;
 | 
						|
      ed.OptShowIndentLines:= chkDotLn.Checked;
 | 
						|
      ed.OptSavingForceFinalEol:= chkSaveEol.Checked;
 | 
						|
      ed.OptSavingTrimSpaces:= chkSaveTrim.Checked;
 | 
						|
      ed.OptShowScrollHint:= chkScrollHint.Checked;
 | 
						|
 | 
						|
      //unprint
 | 
						|
      ed.OptUnprintedVisible:= chkUnprintEn.Checked;
 | 
						|
      ed.OptUnprintedSpaces:= chkUnprintSpace.Checked;
 | 
						|
      ed.OptUnprintedEnds:= chkUnprintEnd.Checked;
 | 
						|
      ed.OptUnprintedEndsDetails:= chkUnprintEndDet.Checked;
 | 
						|
      ed.OptUnprintedReplaceSpec:= chkUnprintAsciiRep.Checked;
 | 
						|
      OptUnprintedTabCharLength:= edTabArrowSize.Value;
 | 
						|
      OptUnprintedTabPointerScale:= edTabArrowPnt.Value;
 | 
						|
      OptUnprintedEndArrowOrDot:= chkUnprintArrowDown.Checked;
 | 
						|
 | 
						|
      //caret
 | 
						|
      ed.OptCaretBlinkEnabled:= chkCrBlinkEn.Checked;
 | 
						|
      ed.OptCaretBlinkTime:= edCrTime.Value;
 | 
						|
      ed.OptCaretShape:= TATSynCaretShape(edCrShape.ItemIndex);
 | 
						|
      ed.OptCaretShapeOvr:= TATSynCaretShape(edCrShape2.ItemIndex);
 | 
						|
      ed.OptCaretVirtual:= chkCrVirt.Checked;
 | 
						|
      ed.OptCaretManyAllowed:= chkCrMul.Checked;
 | 
						|
      ed.OptCaretStopUnfocused:= chkCrStopUnfocus.Checked;
 | 
						|
      ed.OptCaretPreferLeftSide:= chkCrPreferLeft.Checked;
 | 
						|
 | 
						|
      //gutter
 | 
						|
      ed.OptNumbersFontSize:= edNumSize.Value;
 | 
						|
      ed.OptNumbersStyle:= TATSynNumbersStyle(edNumStyle.ItemIndex);
 | 
						|
      ed.OptNumbersAlignment:= TAlignment(edNumAlign.ItemIndex);
 | 
						|
      ed.OptNumbersShowFirst:= chkShowNum1st.Checked;
 | 
						|
      ed.OptNumbersShowCarets:= chkShowNumCr.Checked;
 | 
						|
      ed.OptNumbersSkippedChar:= edNumChar.Text;
 | 
						|
      ed.OptGutterShowFoldAlways:= chkShowFoldAlways.Checked;
 | 
						|
      ed.OptGutterShowFoldLines:= chkShowFoldLines.Checked;
 | 
						|
      ed.OptGutterShowFoldLinesAll:= chkShowFoldLinesAll.Checked;
 | 
						|
      ed.OptGutterPlusSize:= edPlusSize.Value;
 | 
						|
      ed.OptShowGutterCaretBG:= chkShowNumBg.Checked;
 | 
						|
      ed.OptRulerSize:= edRulerSize.Value;
 | 
						|
      ed.OptRulerFontSize:= edRulerFSize.Value;
 | 
						|
      ed.OptRulerTextIndent:= edRulerIndent.Value;
 | 
						|
 | 
						|
      ed.Gutter[ed.GutterBandBm].Visible:= chkGutterBm.Checked;
 | 
						|
      ed.Gutter[ed.GutterBandNum].Visible:= chkGutterNum.Checked;
 | 
						|
      ed.Gutter[ed.GutterBandFold].Visible:= chkGutterFold.Checked;
 | 
						|
      ed.Gutter[ed.GutterBandState].Visible:= chkGutterStat.Checked;
 | 
						|
      ed.Gutter[ed.GutterBandSep].Visible:= chkGutterSep.Checked;
 | 
						|
      ed.Gutter[ed.GutterBandEmpty].Visible:= chkGutterEmpty.Checked;
 | 
						|
      ed.Gutter[ed.GutterBandBm].Size:= edSizeBm.Value;
 | 
						|
      ed.Gutter[ed.GutterBandNum].Size:= edSizeNum.Value;
 | 
						|
      ed.Gutter[ed.GutterBandFold].Size:= edSizeFold.Value;
 | 
						|
      ed.Gutter[ed.GutterBandState].Size:= edSizeState.Value;
 | 
						|
      ed.Gutter[ed.GutterBandSep].Size:= edSizeSep.Value;
 | 
						|
      ed.Gutter[ed.GutterBandEmpty].Size:= edSizeEmpty.Value;
 | 
						|
      ed.OptNumbersAutosize:= chkGutterNumAuto.Checked;
 | 
						|
      ed.OptNumbersIndentLeft:= edSizeNum1.Value;
 | 
						|
      ed.OptNumbersIndentRight:= edSizeNum2.Value;
 | 
						|
 | 
						|
      //minimap
 | 
						|
      ed.OptMinimapCharWidth:= edMapCharWidth.Value;
 | 
						|
      ed.OptMinimapShowSelBorder:= chkMapSelBorder.Checked;
 | 
						|
      ed.OptMinimapShowSelAlways:= chkMapSelAlways.Checked;
 | 
						|
 | 
						|
      //key
 | 
						|
      ed.OptTabSpaces:= chkTabSpaces.Checked;
 | 
						|
      ed.OptOverwriteSel:= chkOvrSel.Checked;
 | 
						|
      ed.OptKeyUpDownKeepColumn:= chkKeepCol.Checked;
 | 
						|
      ed.OptKeyUpDownNavigateWrapped:= chkNavUpDown.Checked;
 | 
						|
      ed.OptKeyHomeEndNavigateWrapped:= chkNavHomeEnd.Checked;
 | 
						|
      ed.OptKeyPageUpDownSize:= TATPageUpDownSize(edPageSize.ItemIndex);
 | 
						|
      ed.OptKeyLeftRightSwapSel:= chkLeftRtSwap.Checked;
 | 
						|
      ed.OptKeyLeftRightSwapSelAndSelect:= chkLeftRtSwapAndSel.Checked;
 | 
						|
      ed.OptKeyHomeToNonSpace:= chkHomeNonspace.Checked;
 | 
						|
      ed.OptKeyEndToNonSpace:= chkEndNonspace.Checked;
 | 
						|
      ed.OptKeyPageKeepsRelativePos:= chkPageKeepRel.Checked;
 | 
						|
      ed.OptKeyTabIndents:= chkTabIndent.Checked;
 | 
						|
      ed.OptAutoIndent:= chkEnterIndent.Checked;
 | 
						|
      ed.OptKeyBackspaceUnindent := chkBackspUnindent.Checked;
 | 
						|
      ed.OptAutoIndentKind:= TATAutoIndentKind(edIndentKind.ItemIndex);
 | 
						|
      ed.OptIndentSize:= edIndentSize.Value;
 | 
						|
      ed.OptIndentKeepsAlign:= chkUnindentKeepAlign.Checked;
 | 
						|
 | 
						|
      //mouse
 | 
						|
      ed.OptMouseEnableNormalSelection:= chkMsNormalSel.Checked;
 | 
						|
      ed.OptMouseEnableColumnSelection:= chkMsColumnSel.Checked;
 | 
						|
      ed.OptMouse2ClickSelectsLine:= chkMsClick2.Checked;
 | 
						|
      ed.OptMouse3ClickSelectsLine:= chkMsClick3.Checked;
 | 
						|
      ed.OptMouse2ClickDragSelectsWords:= chkMsClick2Drag.Checked;
 | 
						|
      ed.OptMouseGutterClickSelectsLine:= chkMsClickNumSel.Checked;
 | 
						|
      ed.OptMouseDragDrop:= chkMsDragDrop.Checked;
 | 
						|
      ed.OptMouseRightClickMovesCaret:= chkMsRtClickMove.Checked;
 | 
						|
      ed.OptMouseNiceScroll:= chkMsNiceScroll.Checked;
 | 
						|
      ed.OptMouseHideCursorOnType:= chkMsHideCursor.Checked;
 | 
						|
      ed.OptMouseDownForPopup:= chkMsMenuDown.Checked;
 | 
						|
 | 
						|
      //undo
 | 
						|
      ed.OptUndoLimit:= edUndo.Value;
 | 
						|
      ed.OptUndoGrouped:= chkUndoGr.Checked;
 | 
						|
      ed.OptUndoAfterSave:= chkUndoSv.Checked;
 | 
						|
 | 
						|
      //apply
 | 
						|
      ed.Gutter.Update;
 | 
						|
      ed.Update;
 | 
						|
    end;
 | 
						|
  end;
 | 
						|
end;
 | 
						|
 | 
						|
 | 
						|
{ TfmOpt }
 | 
						|
 | 
						|
procedure TfmOpt.FormCreate(Sender: TObject);
 | 
						|
begin
 | 
						|
  InitShape(edCrShape);
 | 
						|
  InitShape(edCrShape2);
 | 
						|
end;
 | 
						|
 | 
						|
procedure SwapItems(L: TListbox; n1, n2: integer);
 | 
						|
var
 | 
						|
  s: string;
 | 
						|
begin
 | 
						|
  s:= L.Items[n1];
 | 
						|
  L.Items[n1]:= L.Items[n2];
 | 
						|
  L.Items[n2]:= s;
 | 
						|
  L.ItemIndex:= n2;
 | 
						|
end;
 | 
						|
 | 
						|
procedure TfmOpt.bColUpClick(Sender: TObject);
 | 
						|
begin
 | 
						|
  with ListCol do
 | 
						|
    if ItemIndex>0 then
 | 
						|
      SwapItems(ListCol, ItemIndex, ItemIndex-1);
 | 
						|
end;
 | 
						|
 | 
						|
procedure TfmOpt.bColDownClick(Sender: TObject);
 | 
						|
begin
 | 
						|
  with ListCol do
 | 
						|
    if ItemIndex<Count-1 then
 | 
						|
      SwapItems(ListCol, ItemIndex, ItemIndex+1);
 | 
						|
end;
 | 
						|
 | 
						|
procedure TfmOpt.InitShape(ed: TCombobox);
 | 
						|
begin
 | 
						|
  ed.Items.Clear;
 | 
						|
  ed.Items.AddStrings(ListShapes.Items);
 | 
						|
end;
 | 
						|
 | 
						|
end.
 | 
						|
 |