1 unit formopt; 2 3 {$mode objfpc}{$H+} 4 5 interface 6 7 uses 8 Classes, SysUtils, Types, 9 Forms, Controls, Graphics, StdCtrls, Dialogs, 10 ButtonPanel, Spin, ComCtrls, ExtCtrls, 11 FileUtil, 12 ATStringProc, 13 ATSynEdit, 14 ATSynEdit_Options, 15 ATSynEdit_CanvasProc, 16 ATSynEdit_CharSizer; 17 18 type 19 { TfmOpt } 20 21 TfmOpt = class(TForm) 22 bColDown: TButton; 23 bColUp: TButton; 24 ButtonPanel1: TButtonPanel; 25 chkCrRenderText: TCheckBox; 26 chkMapClickDoDrag: TCheckBox; 27 chkUndoForCrt: TCheckBox; 28 chkUndoGrp: TCheckBox; 29 chkUndoAfterSave: TCheckBox; 30 chkUpDownToEdge: TCheckBox; 31 chkCrPrimitiveCol: TCheckBox; 32 chkClickLink: TCheckBox; 33 chkCopyNoSel: TCheckBox; 34 chkCutNoSel: TCheckBox; 35 chkDotLn: TCheckBox; 36 chkPasteOvr: TCheckBox; 37 chkPasteSpread: TCheckBox; 38 chkSaveEol: TCheckBox; 39 chkSaveTrim: TCheckBox; 40 chkSaveTrimEmptyLines: TCheckBox; 41 chkBkspGoPrev: TCheckBox; 42 chkUnprintOnlyBothEnds: TCheckBox; 43 chkUnprintOnlyEnd: TCheckBox; 44 chkCrEmptyNormal: TCheckBox; 45 chkCrBlinkEn: TCheckBox; 46 chkMsNormalSel: TCheckBox; 47 chkMsColumnSel: TCheckBox; 48 chkShowFullHilite: TCheckBox; 49 chkMsHideCursor: TCheckBox; 50 chkLeftRtSwapAndSel: TCheckBox; 51 chkGutterSep: TCheckBox; 52 chkGutterNumAuto: TCheckBox; 53 chkGutterBm: TCheckBox; 54 chkGutterEmpty: TCheckBox; 55 chkGutterFold: TCheckBox; 56 chkGutterNum: TCheckBox; 57 chkGutterStat: TCheckBox; 58 chkShowFoldLinesAll: TCheckBox; 59 chkBackspUnindent: TCheckBox; 60 chkEnterIndent: TCheckBox; 61 chkTabIndent: TCheckBox; 62 chkUnindentKeepAlign: TCheckBox; 63 chkUnprintAsciiRep: TCheckBox; 64 chkShowFoldLines: TCheckBox; 65 chkShowFoldAlways: TCheckBox; 66 chkCrPreferLeft: TCheckBox; 67 chkKeepCol: TCheckBox; 68 chkCurLineMin: TCheckBox; 69 chkScrollHint: TCheckBox; 70 chkPageKeepRel: TCheckBox; 71 chkNavHomeEnd: TCheckBox; 72 chkShowNum1st: TCheckBox; 73 chkShowNumCr: TCheckBox; 74 chkMapSelBorder: TCheckBox; 75 chkMapSelAlways: TCheckBox; 76 chkShowNumBg: TCheckBox; 77 chkTabSpaces: TCheckBox; 78 chkMsClickNumSel: TCheckBox; 79 chkCrStopUnfocus: TCheckBox; 80 chkEndNonspace: TCheckBox; 81 chkHomeNonspace: TCheckBox; 82 chkLeftRtSwap: TCheckBox; 83 chkNavUpDown: TCheckBox; 84 chkOvrSel: TCheckBox; 85 chkMsRtClickMove: TCheckBox; 86 chkMsDragDrop: TCheckBox; 87 chkCrMul: TCheckBox; 88 chkCrVirt: TCheckBox; 89 chkMsClick2Drag: TCheckBox; 90 chkMsClick3: TCheckBox; 91 chkShowFullSel: TCheckBox; 92 chkCurCol: TCheckBox; 93 chkCurLine: TCheckBox; 94 chkLastOnTop: TCheckBox; 95 chkUnprintEnd: TCheckBox; 96 chkUnprintEndDet: TCheckBox; 97 chkUnprintSpace: TCheckBox; 98 chkUnprintEn: TCheckBox; 99 chkZebraActive: TCheckBox; 100 edCrProxi: TSpinEdit; 101 edUnpriEol: TComboBox; 102 comboMsMidClick: TComboBox; 103 ComboMsClick2: TComboBox; 104 comboRulerStyle: TComboBox; 105 edCrHeightNormal: TSpinEdit; 106 edRulerFSize: TSpinEdit; 107 edRulerIndent: TSpinEdit; 108 edRulerSize: TSpinEdit; 109 edMapCharWidth: TSpinEdit; 110 edNumAlign: TComboBox; 111 edIndentKind: TComboBox; 112 edCrTime: TSpinEdit; 113 edSizeSep: TSpinEdit; 114 edNonWordChars: TEdit; 115 edIndentSize: TSpinEdit; 116 edPlusSize: TSpinEdit; 117 edNumChar: TEdit; 118 edNumStyle: TComboBox; 119 edPageSize: TComboBox; 120 edSizeBm: TSpinEdit; 121 edSizeEmpty: TSpinEdit; 122 edSizeFold: TSpinEdit; 123 edSizeNumIndent: TSpinEdit; 124 edSizeNum: TSpinEdit; 125 edSizeState: TSpinEdit; 126 edTabArrowSize: TSpinEdit; 127 edTabArrowPnt: TSpinEdit; 128 edTextHint: TEdit; 129 edUndoLimit: TSpinEdit; 130 edUndoPause: TSpinEdit; 131 edZebraAlpha: TSpinEdit; 132 edZebraStep: TSpinEdit; 133 grpOrderCols: TGroupBox; 134 grpSizeCols: TGroupBox; 135 grpUndo: TGroupBox; 136 grpZebra: TGroupBox; 137 groupIndent: TGroupBox; 138 LabChars: TLabel; 139 Label1: TLabel; 140 Label10: TLabel; 141 Label11: TLabel; 142 Label12: TLabel; 143 Label13: TLabel; 144 Label14: TLabel; 145 Label15: TLabel; 146 Label16: TLabel; 147 Label17: TLabel; 148 Label18: TLabel; 149 Label19: TLabel; 150 Label2: TLabel; 151 Label20: TLabel; 152 Label21: TLabel; 153 Label22: TLabel; 154 Label23: TLabel; 155 Label24: TLabel; 156 Label6: TLabel; 157 LabelZebraAlpha: TLabel; 158 Label3: TLabel; 159 Label4: TLabel; 160 Label5: TLabel; 161 Label7: TLabel; 162 Label8: TLabel; 163 Label9: TLabel; 164 LabelArr: TLabel; 165 LabelArr1: TLabel; 166 LabelHint: TLabel; 167 LabelZebraStep: TLabel; 168 ListCol: TListBox; 169 PageControl1: TPageControl; 170 edCrWidthNormal: TSpinEdit; 171 TabSheet1: TTabSheet; 172 TabSheet10: TTabSheet; 173 TabSheet11: TTabSheet; 174 TabSheet2: TTabSheet; 175 TabSheet3: TTabSheet; 176 TabSheet4: TTabSheet; 177 TabSheet5: TTabSheet; 178 TabSheet6: TTabSheet; 179 TabSheet7: TTabSheet; 180 TabSheet8: TTabSheet; 181 TabSheet9: TTabSheet; 182 procedure bColDownClick(Sender: TObject); 183 procedure bColUpClick(Sender: TObject); 184 procedure FormCreate(Sender: TObject); 185 procedure FormShow(Sender: TObject); 186 procedure TabSheet1ContextPopup(Sender: TObject; MousePos: TPoint; 187 var Handled: Boolean); 188 private 189 { private declarations } 190 public 191 { public declarations } 192 end; 193 194 var 195 fmOpt: TfmOpt; 196 197 procedure DoConfigEditor(ed: TATSynEdit); 198 199 200 implementation 201 202 {$R *.lfm} 203 204 const 205 nameBm = 'bookmk'; 206 nameNums = 'nums'; 207 nameState = 'states'; 208 nameFold = 'fold'; 209 nameSep = 'separator'; 210 211 procedure DoConfigEditor(ed: TATSynEdit); 212 var 213 i: integer; 214 begin 215 with fmOpt do 216 begin 217 with ListCol do 218 begin 219 Items.Clear; 220 for i:= 0 to 4 do 221 begin 222 if i=ed.GutterBandBookmarks then Items.Add(nameBm); 223 if i=ed.GutterBandNumbers then Items.Add(nameNums); 224 if i=ed.GutterBandStates then Items.Add(nameState); 225 if i=ed.GutterBandFolding then Items.Add(nameFold); 226 if i=ed.GutterBandSeparator then Items.Add(nameSep); 227 end; 228 ItemIndex:= 0; 229 end; 230 231 //general 232 chkCurLine.Checked:= ed.OptShowCurLine; 233 chkCurLineMin.Checked:= ed.OptShowCurLineMinimal; 234 chkCurCol.Checked:= ed.OptShowCurColumn; 235 chkLastOnTop.Checked:= ed.OptLastLineOnTop; 236 chkShowFullSel.Checked:= ed.OptShowFullWidthForSelection; 237 chkShowFullHilite.Checked:= ed.OptShowFullWidthForSyntaxHilite; 238 chkCopyNoSel.Checked:= ed.OptCopyLinesIfNoSel; 239 chkCutNoSel.Checked:= ed.OptCutLinesIfNoSel; 240 chkPasteOvr.Checked:= ed.OptOverwriteAllowedOnPaste; 241 chkDotLn.Checked:= ed.OptShowIndentLines; 242 edTextHint.Text:= ed.OptTextHint; 243 edNonWordChars.Text:= UTF8Encode(ed.OptNonWordChars); 244 chkSaveEol.Checked:= ed.OptSavingForceFinalEol; 245 chkSaveTrim.Checked:= ed.OptSavingTrimSpaces; 246 chkSaveTrimEmptyLines.Checked:= ed.OptSavingTrimFinalEmptyLines; 247 chkScrollHint.Checked:= ed.OptShowScrollHint; 248 chkClickLink.Checked:= ed.OptMouseClickOpensURL; 249 chkPasteSpread.Checked:= ed.OptPasteMultilineTextSpreadsToCarets; 250 251 //unprint 252 chkUnprintEn.Checked:= ed.OptUnprintedVisible; 253 chkUnprintSpace.Checked:= ed.OptUnprintedSpaces; 254 chkUnprintEnd.Checked:= ed.OptUnprintedEnds; 255 chkUnprintEndDet.Checked:= ed.OptUnprintedEndsDetails; 256 chkUnprintOnlyBothEnds.Checked:= ed.OptUnprintedSpacesBothEnds; 257 chkUnprintOnlyEnd.Checked:= ed.OptUnprintedSpacesTrailing; 258 edUnpriEol.ItemIndex:= Ord(ATEditorOptions.UnprintedEndSymbol); 259 chkUnprintAsciiRep.Checked:= ATEditorOptions.UnprintedReplaceSpec; 260 edTabArrowSize.Value:= ATEditorOptions.UnprintedTabCharLength; 261 edTabArrowPnt.Value:= ATEditorOptions.UnprintedTabPointerScale; 262 263 //caret 264 chkCrBlinkEn.Checked:= ed.OptCaretBlinkEnabled; 265 edCrTime.Value:= ed.OptCaretBlinkTime; 266 chkCrVirt.Checked:= ed.OptCaretVirtual; 267 chkCrMul.Checked:= ed.OptCaretManyAllowed; 268 chkCrStopUnfocus.Checked:= ed.OptCaretStopUnfocused; 269 chkCrPreferLeft.Checked:= ed.OptCaretPreferLeftSide; 270 chkCrPrimitiveCol.Checked:= ed.OptCaretsPrimitiveColumnSelection; 271 edCrProxi.Value:= ed.OptCaretProximityVert; 272 273 edCrWidthNormal.Value:= ed.CaretShapeNormal.Width; 274 edCrHeightNormal.Value:= ed.CaretShapeNormal.Height; 275 chkCrEmptyNormal.Checked:= ed.CaretShapeNormal.EmptyInside; 276 chkCrRenderText.Checked:= ATEditorOptions.CaretTextOverInvertedRect; 277 278 //gutter 279 edNumStyle.ItemIndex:= Ord(ed.OptNumbersStyle); 280 edNumAlign.ItemIndex:= Ord(ed.OptNumbersAlignment); 281 //edNumSize.Value:= ed.OptNumbersFontSizePercents; 282 edPlusSize.Value:= ed.OptGutterPlusSize; 283 chkShowNum1st.Checked:= ed.OptNumbersShowFirst; 284 chkShowNumCr.Checked:= ed.OptNumbersShowCarets; 285 chkShowNumBg.Checked:= ed.OptShowGutterCaretBG; 286 chkShowFoldAlways.Checked:= ed.OptGutterShowFoldAlways; 287 chkShowFoldLines.Checked:= ed.OptGutterShowFoldLines; 288 chkShowFoldLinesAll.Checked:= ed.OptGutterShowFoldLinesAll; 289 edRulerSize.Value:= ed.OptRulerHeightPercents; 290 edRulerFSize.Value:= ed.OptRulerFontSizePercents; 291 edRulerIndent.Value:= ed.OptRulerTopIndentPercents; 292 comboRulerStyle.ItemIndex:= Ord(ed.OptRulerNumeration); 293 294 chkGutterBm.Checked:= ed.Gutter[ed.GutterBandBookmarks].Visible; 295 chkGutterNum.Checked:= ed.Gutter[ed.GutterBandNumbers].Visible; 296 chkGutterFold.Checked:= ed.Gutter[ed.GutterBandFolding].Visible; 297 chkGutterStat.Checked:= ed.Gutter[ed.GutterBandStates].Visible; 298 chkGutterSep.Checked:= ed.Gutter[ed.GutterBandSeparator].Visible; 299 chkGutterEmpty.Checked:= ed.Gutter[ed.GutterBandEmpty].Visible; 300 edSizeBm.Value:= ed.Gutter[ed.GutterBandBookmarks].Size; 301 edSizeFold.Value:= ed.Gutter[ed.GutterBandFolding].Size; 302 edSizeState.Value:= ed.Gutter[ed.GutterBandStates].Size; 303 edSizeSep.Value:= ed.Gutter[ed.GutterBandSeparator].Size; 304 edSizeEmpty.Value:= ed.Gutter[ed.GutterBandEmpty].Size; 305 edSizeNum.Value:= ed.Gutter[ed.GutterBandNumbers].Size; 306 edSizeNumIndent.Value:= ed.OptNumbersIndentPercents; 307 chkGutterNumAuto.Checked:= ed.OptNumbersAutosize; 308 309 //minimap 310 edMapCharWidth.Value:= ed.OptMinimapCharWidth; 311 chkMapSelBorder.Checked:= ed.OptMinimapShowSelBorder; 312 chkMapSelAlways.Checked:= ed.OptMinimapShowSelAlways; 313 chkMapClickDoDrag.Checked:= ed.OptMinimapDragImmediately; 314 315 //key 316 chkTabSpaces.Checked:= ed.OptTabSpaces; 317 chkOvrSel.Checked:= ed.OptOverwriteSel; 318 chkNavUpDown.Checked:= ed.OptKeyUpDownNavigateWrapped; 319 chkUpDownToEdge.Checked:= ed.OptKeyUpDownAllowToEdge; 320 chkNavHomeEnd.Checked:= ed.OptKeyHomeEndNavigateWrapped; 321 chkKeepCol.Checked:= ed.OptKeyUpDownKeepColumn; 322 chkLeftRtSwap.Checked:= ed.OptKeyLeftRightSwapSel; 323 chkLeftRtSwapAndSel.Checked:= ed.OptKeyLeftRightSwapSelAndSelect; 324 chkHomeNonspace.Checked:= ed.OptKeyHomeToNonSpace; 325 chkEndNonspace.Checked:= ed.OptKeyEndToNonSpace; 326 chkTabIndent.Checked:= ed.OptKeyTabIndents; 327 chkEnterIndent.Checked:= ed.OptAutoIndent; 328 chkBackspUnindent.Checked:= ed.OptKeyBackspaceUnindent; 329 chkBkspGoPrev.Checked:= ed.OptKeyBackspaceGoesToPrevLine; 330 edIndentKind.ItemIndex:= Ord(ed.OptAutoIndentKind); 331 edIndentSize.Value:= ed.OptIndentSize; 332 chkUnindentKeepAlign.Checked:= ed.OptIndentKeepsAlign; 333 edPageSize.ItemIndex:= Ord(ed.OptKeyPageUpDownSize); 334 chkPageKeepRel.Checked:= ed.OptKeyPageKeepsRelativePos; 335 336 //mouse 337 chkMsNormalSel.Checked:= ed.OptMouseEnableNormalSelection; 338 chkMsColumnSel.Checked:= ed.OptMouseEnableColumnSelection; 339 ComboMsClick2.ItemIndex:= Ord(ed.OptMouse2ClickAction); 340 chkMsClick3.Checked:= ed.OptMouse3ClickSelectsLine; 341 chkMsClick2Drag.Checked:= ed.OptMouse2ClickDragSelectsWords; 342 chkMsClickNumSel.Checked:= ed.OptMouseClickNumberSelectsLine; 343 chkMsDragDrop.Checked:= ed.OptMouseDragDrop; 344 chkMsRtClickMove.Checked:= ed.OptMouseRightClickMovesCaret; 345 comboMsMidClick.ItemIndex:= Ord(ed.OptMouseMiddleClickAction); 346 chkMsHideCursor.Checked:= ed.OptMouseHideCursorOnType; 347 348 //undo 349 edUndoLimit.Value:= ed.OptUndoLimit; 350 edUndoPause.Value:= ed.OptUndoPause; 351 chkUndoGrp.Checked:= ed.OptUndoGrouped; 352 chkUndoAfterSave.Checked:= ed.OptUndoAfterSave; 353 chkUndoForCrt.Checked:= ed.OptUndoForCaretJump; 354 355 //zebra 356 chkZebraActive.Checked:= ed.OptZebraActive; 357 edZebraAlpha.Value:= ed.OptZebraAlphaBlend; 358 edZebraStep.Value:= ed.OptZebraStep; 359 360 if ShowModal=mrOk then 361 begin 362 ed.GutterBandBookmarks:= ListCol.Items.IndexOf(nameBm); 363 ed.GutterBandNumbers:= ListCol.Items.IndexOf(nameNums); 364 ed.GutterBandStates:= ListCol.Items.IndexOf(nameState); 365 ed.GutterBandFolding:= ListCol.Items.IndexOf(nameFold); 366 ed.GutterBandSeparator:= ListCol.Items.IndexOf(nameSep); 367 368 //general 369 ed.OptShowCurLine:= chkCurLine.Checked; 370 ed.OptShowCurLineMinimal:= chkCurLineMin.Checked; 371 ed.OptShowCurColumn:= chkCurCol.Checked; 372 ed.OptTextHint:= edTextHint.Text; 373 ed.OptNonWordChars:= UTF8Decode(edNonWordChars.Text); 374 ed.OptOverwriteAllowedOnPaste:= chkPasteOvr.Checked; 375 ed.OptCopyLinesIfNoSel:= chkCopyNoSel.Checked; 376 ed.OptCutLinesIfNoSel:= chkCutNoSel.Checked; 377 ed.OptShowFullWidthForSelection:= chkShowFullSel.Checked; 378 ed.OptShowFullWidthForSyntaxHilite:= chkShowFullHilite.Checked; 379 ed.OptLastLineOnTop:= chkLastOnTop.Checked; 380 ed.OptShowIndentLines:= chkDotLn.Checked; 381 ed.OptSavingForceFinalEol:= chkSaveEol.Checked; 382 ed.OptSavingTrimSpaces:= chkSaveTrim.Checked; 383 ed.OptSavingTrimFinalEmptyLines:= chkSaveTrimEmptyLines.Checked; 384 ed.OptShowScrollHint:= chkScrollHint.Checked; 385 ed.OptMouseClickOpensURL:= chkClickLink.Checked; 386 ed.OptPasteMultilineTextSpreadsToCarets:= chkPasteSpread.Checked; 387 388 //unprint 389 ed.OptUnprintedVisible:= chkUnprintEn.Checked; 390 ed.OptUnprintedSpaces:= chkUnprintSpace.Checked; 391 ed.OptUnprintedEnds:= chkUnprintEnd.Checked; 392 ed.OptUnprintedEndsDetails:= chkUnprintEndDet.Checked; 393 ed.OptUnprintedSpacesBothEnds:= chkUnprintOnlyBothEnds.Checked; 394 ed.OptUnprintedSpacesTrailing:= chkUnprintOnlyEnd.Checked; 395 ATEditorOptions.UnprintedReplaceSpec:= chkUnprintAsciiRep.Checked; 396 ATEditorOptions.UnprintedTabCharLength:= edTabArrowSize.Value; 397 ATEditorOptions.UnprintedTabPointerScale:= edTabArrowPnt.Value; 398 ATEditorOptions.UnprintedEndSymbol:= TATEditorUnptintedEolSymbol(edUnpriEol.ItemIndex); 399 400 //caret 401 ed.OptCaretBlinkEnabled:= chkCrBlinkEn.Checked; 402 ed.OptCaretBlinkTime:= edCrTime.Value; 403 ed.OptCaretVirtual:= chkCrVirt.Checked; 404 ed.OptCaretManyAllowed:= chkCrMul.Checked; 405 ed.OptCaretStopUnfocused:= chkCrStopUnfocus.Checked; 406 ed.OptCaretPreferLeftSide:= chkCrPreferLeft.Checked; 407 ed.OptCaretsPrimitiveColumnSelection:= chkCrPrimitiveCol.Checked; 408 ed.OptCaretProximityVert:= edCrProxi.Value; 409 410 ed.CaretShapeNormal.Width:= edCrWidthNormal.Value; 411 ed.CaretShapeNormal.Height:= edCrHeightNormal.Value; 412 ed.CaretShapeNormal.EmptyInside:= chkCrEmptyNormal.Checked; 413 ATEditorOptions.CaretTextOverInvertedRect:= chkCrRenderText.Checked; 414 415 //gutter 416 //ed.OptNumbersFontSizePercents:= edNumSize.Value; 417 ed.OptNumbersStyle:= TATEditorNumbersStyle(edNumStyle.ItemIndex); 418 ed.OptNumbersAlignment:= TAlignment(edNumAlign.ItemIndex); 419 ed.OptNumbersShowFirst:= chkShowNum1st.Checked; 420 ed.OptNumbersShowCarets:= chkShowNumCr.Checked; 421 ed.OptGutterShowFoldAlways:= chkShowFoldAlways.Checked; 422 ed.OptGutterShowFoldLines:= chkShowFoldLines.Checked; 423 ed.OptGutterShowFoldLinesAll:= chkShowFoldLinesAll.Checked; 424 ed.OptGutterPlusSize:= edPlusSize.Value; 425 ed.OptShowGutterCaretBG:= chkShowNumBg.Checked; 426 ed.OptRulerHeightPercents:= edRulerSize.Value; 427 ed.OptRulerFontSizePercents:= edRulerFSize.Value; 428 ed.OptRulerTopIndentPercents:= edRulerIndent.Value; 429 ed.OptRulerNumeration:= TATEditorRulerNumeration(comboRulerStyle.ItemIndex); 430 431 ed.Gutter[ed.GutterBandBookmarks].Visible:= chkGutterBm.Checked; 432 ed.Gutter[ed.GutterBandNumbers].Visible:= chkGutterNum.Checked; 433 ed.Gutter[ed.GutterBandFolding].Visible:= chkGutterFold.Checked; 434 ed.Gutter[ed.GutterBandStates].Visible:= chkGutterStat.Checked; 435 ed.Gutter[ed.GutterBandSeparator].Visible:= chkGutterSep.Checked; 436 ed.Gutter[ed.GutterBandEmpty].Visible:= chkGutterEmpty.Checked; 437 ed.Gutter[ed.GutterBandBookmarks].Size:= edSizeBm.Value; 438 ed.Gutter[ed.GutterBandNumbers].Size:= edSizeNum.Value; 439 ed.Gutter[ed.GutterBandFolding].Size:= edSizeFold.Value; 440 ed.Gutter[ed.GutterBandStates].Size:= edSizeState.Value; 441 ed.Gutter[ed.GutterBandSeparator].Size:= edSizeSep.Value; 442 ed.Gutter[ed.GutterBandEmpty].Size:= edSizeEmpty.Value; 443 ed.OptNumbersAutosize:= chkGutterNumAuto.Checked; 444 ed.OptNumbersIndentPercents:= edSizeNumIndent.Value; 445 446 //minimap 447 ed.OptMinimapCharWidth:= edMapCharWidth.Value; 448 ed.OptMinimapShowSelBorder:= chkMapSelBorder.Checked; 449 ed.OptMinimapShowSelAlways:= chkMapSelAlways.Checked; 450 ed.OptMinimapDragImmediately:= chkMapClickDoDrag.Checked; 451 452 //key 453 ed.OptTabSpaces:= chkTabSpaces.Checked; 454 ed.OptOverwriteSel:= chkOvrSel.Checked; 455 ed.OptKeyUpDownKeepColumn:= chkKeepCol.Checked; 456 ed.OptKeyUpDownAllowToEdge:= chkUpDownToEdge.Checked; 457 ed.OptKeyUpDownNavigateWrapped:= chkNavUpDown.Checked; 458 ed.OptKeyHomeEndNavigateWrapped:= chkNavHomeEnd.Checked; 459 ed.OptKeyPageUpDownSize:= TATEditorPageDownSize(edPageSize.ItemIndex); 460 ed.OptKeyLeftRightSwapSel:= chkLeftRtSwap.Checked; 461 ed.OptKeyLeftRightSwapSelAndSelect:= chkLeftRtSwapAndSel.Checked; 462 ed.OptKeyHomeToNonSpace:= chkHomeNonspace.Checked; 463 ed.OptKeyEndToNonSpace:= chkEndNonspace.Checked; 464 ed.OptKeyPageKeepsRelativePos:= chkPageKeepRel.Checked; 465 ed.OptKeyTabIndents:= chkTabIndent.Checked; 466 ed.OptAutoIndent:= chkEnterIndent.Checked; 467 ed.OptKeyBackspaceUnindent := chkBackspUnindent.Checked; 468 ed.OptKeyBackspaceGoesToPrevLine:= chkBkspGoPrev.Checked; 469 ed.OptAutoIndentKind:= TATEditorAutoIndentKind(edIndentKind.ItemIndex); 470 ed.OptIndentSize:= edIndentSize.Value; 471 ed.OptIndentKeepsAlign:= chkUnindentKeepAlign.Checked; 472 473 //mouse 474 ed.OptMouseEnableNormalSelection:= chkMsNormalSel.Checked; 475 ed.OptMouseEnableColumnSelection:= chkMsColumnSel.Checked; 476 ed.OptMouse2ClickAction:= TATEditorDoubleClickAction(ComboMsClick2.ItemIndex); 477 ed.OptMouse3ClickSelectsLine:= chkMsClick3.Checked; 478 ed.OptMouse2ClickDragSelectsWords:= chkMsClick2Drag.Checked; 479 ed.OptMouseClickNumberSelectsLine:= chkMsClickNumSel.Checked; 480 ed.OptMouseDragDrop:= chkMsDragDrop.Checked; 481 ed.OptMouseRightClickMovesCaret:= chkMsRtClickMove.Checked; 482 ed.OptMouseMiddleClickAction:= TATEditorMiddleClickAction(comboMsMidClick.ItemIndex); 483 ed.OptMouseHideCursorOnType:= chkMsHideCursor.Checked; 484 485 //undo 486 ed.OptUndoLimit:= edUndoLimit.Value; 487 ed.OptUndoPause:= edUndoPause.Value; 488 ed.OptUndoGrouped:= chkUndoGrp.Checked; 489 ed.OptUndoAfterSave:= chkUndoAfterSave.Checked; 490 ed.OptUndoForCaretJump:= chkUndoForCrt.Checked; 491 492 //zebra 493 ed.OptZebraActive := chkZebraActive.Checked; 494 ed.OptZebraAlphaBlend := edZebraAlpha.Value; 495 ed.OptZebraStep := edZebraStep.Value; 496 497 //apply 498 ed.Gutter.Update; 499 ed.Update; 500 end; 501 end; 502 end; 503 504 505 { TfmOpt } 506 507 procedure TfmOpt.FormCreate(Sender: TObject); 508 begin 509 end; 510 511 procedure TfmOpt.FormShow(Sender: TObject); 512 begin 513 PageControl1.ActivePageIndex:= 0; 514 end; 515 516 procedure TfmOpt.TabSheet1ContextPopup(Sender: TObject; MousePos: TPoint; 517 var Handled: Boolean); 518 begin 519 520 end; 521 522 procedure SwapItems(L: TListbox; n1, n2: integer); 523 var 524 s: string; 525 begin 526 s:= L.Items[n1]; 527 L.Items[n1]:= L.Items[n2]; 528 L.Items[n2]:= s; 529 L.ItemIndex:= n2; 530 end; 531 532 procedure TfmOpt.bColUpClick(Sender: TObject); 533 begin 534 with ListCol do 535 if ItemIndex>0 then 536 SwapItems(ListCol, ItemIndex, ItemIndex-1); 537 end; 538 539 procedure TfmOpt.bColDownClick(Sender: TObject); 540 begin 541 with ListCol do 542 if ItemIndex<Count-1 then 543 SwapItems(ListCol, ItemIndex, ItemIndex+1); 544 end; 545 546 547 end. 548 549