From f007970067ee7bcf0d2093be83bab9556c08a013 Mon Sep 17 00:00:00 2001 From: marc Date: Mon, 12 Nov 2007 01:33:08 +0000 Subject: [PATCH] + Added proposed implementation of new optionsdialogs layout by Ciprian Mustiata This implementation isn't complete and for some unknown reason in all except the projectoptionsdialog, the notebook refuses to get parented in the OptionsAreaPanel The new dialogs can be disabled by defining DisableNewDialogs (or by editing ide.inc) git-svn-id: trunk@12830 - --- .gitattributes | 15 + ide/compileroptionsdlg_new.lfm | 1547 +++++++++++++++++++++++++++ ide/compileroptionsdlg_new.lrs | 582 +++++++++++ ide/compileroptionsdlg_new.pp | 1652 +++++++++++++++++++++++++++++ ide/editoroptions_new.lfm | 1728 ++++++++++++++++++++++++++++++ ide/editoroptions_new.lrs | 516 +++++++++ ide/editoroptions_new.pp | 1801 ++++++++++++++++++++++++++++++++ ide/environmentopts_new.lfm | 1749 +++++++++++++++++++++++++++++++ ide/environmentopts_new.lrs | 623 +++++++++++ ide/environmentopts_new.pp | 1449 +++++++++++++++++++++++++ ide/include/ide.inc | 4 + ide/lazarus.lpi | 2 +- ide/main.pp | 201 +++- ide/mainbar.pas | 12 + ide/mainbase.pas | 14 + ide/optionseditorbase.lfm | 217 ++++ ide/optionseditorbase.lrs | 197 ++++ ide/optionseditorbase.pas | 466 +++++++++ ide/projectopts_new.lfm | 844 +++++++++++++++ ide/projectopts_new.lrs | 280 +++++ ide/projectopts_new.pp | 894 ++++++++++++++++ 21 files changed, 14791 insertions(+), 2 deletions(-) create mode 100644 ide/compileroptionsdlg_new.lfm create mode 100644 ide/compileroptionsdlg_new.lrs create mode 100644 ide/compileroptionsdlg_new.pp create mode 100644 ide/editoroptions_new.lfm create mode 100644 ide/editoroptions_new.lrs create mode 100644 ide/editoroptions_new.pp create mode 100644 ide/environmentopts_new.lfm create mode 100644 ide/environmentopts_new.lrs create mode 100644 ide/environmentopts_new.pp create mode 100644 ide/optionseditorbase.lfm create mode 100644 ide/optionseditorbase.lrs create mode 100644 ide/optionseditorbase.pas create mode 100644 ide/projectopts_new.lfm create mode 100644 ide/projectopts_new.lrs create mode 100644 ide/projectopts_new.pp diff --git a/.gitattributes b/.gitattributes index 876c65ba99..fb3e8b917d 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1774,6 +1774,9 @@ ide/compileroptions.pp svneol=native#text/pascal ide/compileroptionsdlg.lfm -text ide/compileroptionsdlg.lrs -text ide/compileroptionsdlg.pp svneol=native#text/pascal +ide/compileroptionsdlg_new.lfm -text +ide/compileroptionsdlg_new.lrs -text +ide/compileroptionsdlg_new.pp svneol=native#text/pascal ide/componentpalette.pas svneol=native#text/pascal ide/condef.lfm svneol=native#text/plain ide/condef.lrs svneol=native#text/pascal @@ -1795,12 +1798,18 @@ ide/editdefinetree.pas svneol=native#text/pascal ide/editoroptions.lfm svneol=native#text/plain ide/editoroptions.lrs svneol=native#text/pascal ide/editoroptions.pp svneol=native#text/pascal +ide/editoroptions_new.lfm svneol=native#text/plain +ide/editoroptions_new.lrs svneol=native#text/pascal +ide/editoroptions_new.pp svneol=native#text/pascal ide/encloseselectiondlg.lfm svneol=native#text/plain ide/encloseselectiondlg.lrs svneol=native#text/pascal ide/encloseselectiondlg.pas svneol=native#text/pascal ide/environmentopts.lfm svneol=native#text/plain ide/environmentopts.lrs svneol=native#text/plain ide/environmentopts.pp svneol=native#text/pascal +ide/environmentopts_new.lfm svneol=native#text/plain +ide/environmentopts_new.lrs svneol=native#text/plain +ide/environmentopts_new.pp svneol=native#text/pascal ide/extractprocdlg.lfm svneol=native#text/plain ide/extractprocdlg.lrs svneol=native#text/pascal ide/extractprocdlg.pas svneol=native#text/pascal @@ -1911,6 +1920,9 @@ ide/newdialog.lrs svneol=native#text/plain ide/newdialog.pas svneol=native#text/pascal ide/newprojectdlg.pp svneol=native#text/pascal ide/objectlists.pas svneol=native#text/pascal +ide/optionseditorbase.lfm svneol=native#text/pascal +ide/optionseditorbase.lrs svneol=native#text/pascal +ide/optionseditorbase.pas svneol=native#text/pascal ide/outputfilter.pas svneol=native#text/pascal ide/patheditordlg.pas svneol=native#text/pascal ide/procedurelist.lfm svneol=native#text/plain @@ -1927,6 +1939,9 @@ ide/projectinspector.pas svneol=native#text/pascal ide/projectopts.lfm svneol=native#text/plain ide/projectopts.lrs svneol=native#text/pascal ide/projectopts.pp svneol=native#text/pascal +ide/projectopts_new.lfm svneol=native#text/plain +ide/projectopts_new.lrs svneol=native#text/pascal +ide/projectopts_new.pp svneol=native#text/pascal ide/publishmodule.pas svneol=native#text/pascal ide/publishprojectdlg.lfm svneol=native#text/plain ide/publishprojectdlg.lrs svneol=native#text/pascal diff --git a/ide/compileroptionsdlg_new.lfm b/ide/compileroptionsdlg_new.lfm new file mode 100644 index 0000000000..ad07a0048f --- /dev/null +++ b/ide/compileroptionsdlg_new.lfm @@ -0,0 +1,1547 @@ +inherited frmCompilerOptions: TfrmCompilerOptions + Left = 440 + Height = 528 + Top = 357 + Width = 669 + HorzScrollBar.Page = 668 + VertScrollBar.Page = 527 + ActiveControl = btnShowOptions + BorderIcons = [biSystemMenu] + Caption = 'frmCompilerOptions' + ClientHeight = 528 + ClientWidth = 669 + Constraints.MinWidth = 600 + OnClose = frmCompilerOptionsClose + OnResize = FormResize + Position = poScreenCenter + inherited BottomPanel: TPanel + Top = 478 + Width = 669 + ClientWidth = 669 + TabOrder = 3 + inherited OKCancelPanel: TPanel + Left = 482 + inherited btnCancel: TBitBtn + end + inherited btnOK: TBitBtn + Left = 7 + OnClick = btnTestClicked + end + end + inherited HelpButton: TBitBtn + end + end + inherited CategoriesPanel: TPanel + Width = 669 + ClientWidth = 669 + TabOrder = 4 + inherited SectionTitleLabel: TLabel + end + inherited SearchLabel: TLabel + end + inherited ClearFilterButton: TBitBtn + end + inherited FilterEdit: TEdit + end + end + inherited SectionsTreePanel: TPanel + Height = 398 + ClientHeight = 398 + TabOrder = 1 + inherited SectionList: TListBox + Height = 398 + end + end + inherited MainSplitter: TSplitter + Height = 398 + end + inherited OptionsAreaPanel: TPanel + Height = 398 + Width = 514 + ClientHeight = 398 + ClientWidth = 514 + TabOrder = 2 + object Notebook: TNotebook + AnchorSideBottom.Control = BtnPanel + Height = 398 + Width = 514 + Align = alClient + PageIndex = 1 + ShowTabs = False + TabOrder = 0 + object PathPage: TPage + Caption = 'PathPage' + ClientWidth = 514 + ClientHeight = 398 + object lblOtherUnits: TLabel + Left = 6 + Height = 13 + Top = 6 + Width = 502 + Align = alTop + BorderSpacing.Left = 6 + BorderSpacing.Top = 6 + BorderSpacing.Right = 6 + Caption = 'lblOtherUnits' + ParentColor = False + end + object lblIncludeFiles: TLabel + AnchorSideLeft.Control = PathPage + AnchorSideTop.Control = edtOtherUnits + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 13 + Top = 48 + Width = 82 + BorderSpacing.Left = 6 + BorderSpacing.Top = 6 + BorderSpacing.Right = 6 + Caption = 'lblIncludeFiles' + ParentColor = False + end + object lblOtherSources: TLabel + AnchorSideLeft.Control = PathPage + AnchorSideTop.Control = edtIncludeFiles + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 13 + Top = 90 + Width = 91 + BorderSpacing.Left = 6 + BorderSpacing.Top = 6 + BorderSpacing.Right = 6 + Caption = 'lblOtherSources' + ParentColor = False + end + object lblLibraries: TLabel + AnchorSideLeft.Control = PathPage + AnchorSideTop.Control = edtOtherSources + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 13 + Top = 132 + Width = 62 + BorderSpacing.Left = 6 + BorderSpacing.Top = 6 + BorderSpacing.Right = 6 + Caption = 'lblLibraries' + ParentColor = False + end + object lblUnitOutputDir: TLabel + AnchorSideLeft.Control = PathPage + AnchorSideTop.Control = edtLibraries + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 13 + Top = 174 + Width = 88 + BorderSpacing.Left = 6 + BorderSpacing.Top = 6 + BorderSpacing.Right = 6 + Caption = 'lblUnitOutputDir' + ParentColor = False + end + object lblDebugPath: TLabel + AnchorSideLeft.Control = PathPage + AnchorSideTop.Control = edtUnitOutputDir + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 13 + Top = 216 + Width = 76 + BorderSpacing.Left = 6 + BorderSpacing.Top = 6 + BorderSpacing.Right = 6 + Caption = 'lblDebugPath' + ParentColor = False + end + object LCLWidgetTypeLabel: TLabel + AnchorSideLeft.Control = PathPage + AnchorSideTop.Control = edtDebugPath + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 13 + Top = 264 + Width = 121 + BorderSpacing.Top = 6 + BorderSpacing.Around = 6 + Caption = 'LCLWidgetTypeLabel' + ParentColor = False + end + object edtOtherUnits: TEdit + AnchorSideLeft.Control = PathPage + AnchorSideTop.Control = lblOtherUnits + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = PathPage + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 23 + Top = 19 + Width = 653 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Left = 6 + BorderSpacing.Right = 6 + BorderSpacing.Bottom = 6 + TabOrder = 0 + Text = 'edtOtherUnits' + end + object edtIncludeFiles: TEdit + AnchorSideLeft.Control = PathPage + AnchorSideTop.Control = lblIncludeFiles + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = PathPage + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 23 + Top = 61 + Width = 653 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Left = 6 + BorderSpacing.Right = 6 + BorderSpacing.Bottom = 6 + TabOrder = 1 + Text = 'edtIncludeFiles' + end + object edtOtherSources: TEdit + AnchorSideLeft.Control = PathPage + AnchorSideTop.Control = lblOtherSources + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = PathPage + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 23 + Top = 103 + Width = 653 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Left = 6 + BorderSpacing.Right = 6 + BorderSpacing.Bottom = 6 + TabOrder = 2 + Text = 'edtOtherSources' + end + object edtLibraries: TEdit + AnchorSideLeft.Control = PathPage + AnchorSideTop.Control = lblLibraries + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = PathPage + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 23 + Top = 145 + Width = 653 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Left = 6 + BorderSpacing.Right = 6 + BorderSpacing.Bottom = 6 + TabOrder = 3 + Text = 'edtLibraries' + end + object edtUnitOutputDir: TEdit + AnchorSideLeft.Control = PathPage + AnchorSideTop.Control = lblUnitOutputDir + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = PathPage + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 23 + Top = 187 + Width = 653 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Left = 6 + BorderSpacing.Right = 6 + BorderSpacing.Bottom = 6 + TabOrder = 4 + Text = 'edtUnitOutputDir' + end + object edtDebugPath: TEdit + AnchorSideLeft.Control = PathPage + AnchorSideTop.Control = lblDebugPath + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = PathPage + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 23 + Top = 229 + Width = 653 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Left = 6 + BorderSpacing.Right = 6 + BorderSpacing.Bottom = 6 + TabOrder = 5 + Text = 'edtDebugPath' + end + object LCLWidgetTypeComboBox: TComboBox + AnchorSideLeft.Control = LCLWidgetTypeLabel + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = LCLWidgetTypeLabel + AnchorSideTop.Side = asrCenter + Left = 133 + Height = 21 + Top = 260 + Width = 171 + AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] + BorderSpacing.Left = 6 + MaxLength = 0 + TabOrder = 6 + Text = 'LCLWidgetTypeComboBox' + end + end + object ParsingPage: TPage + Caption = 'ParsingPage' + ClientWidth = 514 + ClientHeight = 398 + object grpAsmStyle: TRadioGroup + Left = 6 + Height = 40 + Top = 6 + Width = 502 + Align = alTop + AutoFill = True + BorderSpacing.Around = 6 + Caption = 'grpAsmStyle' + ChildSizing.LeftRightSpacing = 6 + ChildSizing.TopBottomSpacing = 6 + ChildSizing.EnlargeHorizontal = crsHomogenousChildResize + ChildSizing.EnlargeVertical = crsHomogenousChildResize + ChildSizing.ShrinkHorizontal = crsScaleChilds + ChildSizing.ShrinkVertical = crsScaleChilds + ChildSizing.Layout = cclLeftToRightThenTopToBottom + ChildSizing.ControlsPerLine = 3 + Columns = 3 + TabOrder = 0 + end + object grpSyntaxOptions: TCheckGroup + Left = 6 + Height = 258 + Top = 52 + Width = 502 + Align = alTop + AutoFill = True + BorderSpacing.Around = 6 + Caption = 'grpSyntaxOptions' + ChildSizing.LeftRightSpacing = 6 + ChildSizing.TopBottomSpacing = 6 + ChildSizing.EnlargeHorizontal = crsHomogenousChildResize + ChildSizing.EnlargeVertical = crsHomogenousChildResize + ChildSizing.ShrinkHorizontal = crsScaleChilds + ChildSizing.ShrinkVertical = crsScaleChilds + ChildSizing.Layout = cclLeftToRightThenTopToBottom + ChildSizing.ControlsPerLine = 1 + TabOrder = 1 + end + end + object CodeGenPage: TPage + Caption = 'CodeGenPage' + ClientWidth = 514 + ClientHeight = 398 + object grpSmartLinkUnit: TGroupBox + AnchorSideLeft.Control = grpChecks + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = CodeGenPage + AnchorSideRight.Control = CodeGenPage + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Side = asrBottom + Left = 174 + Height = 53 + Top = 6 + Width = 485 + Anchors = [akTop, akLeft, akRight] + AutoSize = True + BorderSpacing.Left = 6 + BorderSpacing.Top = 6 + BorderSpacing.Right = 6 + Caption = 'grpSmartLinkUnit' + ClientHeight = 53 + ClientWidth = 485 + TabOrder = 0 + object chkSmartLinkUnit: TCheckBox + Left = 6 + Height = 22 + Top = 6 + Width = 473 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'chkSmartLinkUnit' + TabOrder = 0 + end + end + object grpChecks: TGroupBox + AnchorSideLeft.Control = CodeGenPage + AnchorSideTop.Control = CodeGenPage + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 137 + Top = 6 + Width = 162 + AutoSize = True + BorderSpacing.Around = 6 + Caption = 'grpChecks' + ClientHeight = 137 + ClientWidth = 162 + TabOrder = 1 + object chkChecksIO: TCheckBox + Left = 6 + Height = 22 + Top = 34 + Width = 150 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'chkChecksIO' + TabOrder = 0 + end + object chkChecksRange: TCheckBox + Left = 6 + Height = 22 + Top = 90 + Width = 150 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'chkChecksRange' + TabOrder = 1 + end + object chkChecksOverflow: TCheckBox + Left = 6 + Height = 22 + Top = 62 + Width = 150 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'chkChecksOverflow' + TabOrder = 2 + end + object chkChecksStack: TCheckBox + Left = 6 + Height = 22 + Top = 6 + Width = 150 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'chkChecksStack' + TabOrder = 3 + end + end + object grpHeapSize: TGroupBox + AnchorSideLeft.Control = grpChecks + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = grpSmartLinkUnit + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = CodeGenPage + AnchorSideRight.Side = asrBottom + Left = 174 + Height = 54 + Top = 65 + Width = 485 + Anchors = [akTop, akLeft, akRight] + AutoSize = True + BorderSpacing.Around = 6 + Caption = 'grpHeapSize' + ClientHeight = 54 + ClientWidth = 485 + TabOrder = 2 + object edtHeapSize: TEdit + Left = 6 + Height = 23 + Top = 6 + Width = 473 + Align = alTop + BorderSpacing.Around = 6 + TabOrder = 0 + Text = 'edtHeapSize' + end + end + object grpGenerate: TGroupBox + AnchorSideLeft.Control = CodeGenPage + AnchorSideTop.Control = grpChecks + AnchorSideTop.Side = asrBottom + AnchorSideBottom.Control = grpTargetPlatform + AnchorSideBottom.Side = asrBottom + Left = 6 + Height = 118 + Top = 149 + Width = 136 + Anchors = [akTop, akLeft, akBottom] + AutoSize = True + BorderSpacing.Left = 6 + BorderSpacing.Top = 6 + BorderSpacing.Right = 6 + Caption = 'grpGenerate' + ClientHeight = 118 + ClientWidth = 136 + TabOrder = 3 + object radGenNormal: TRadioButton + Left = 6 + Height = 22 + Top = 6 + Width = 124 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'radGenNormal' + Checked = True + State = cbChecked + TabOrder = 0 + end + object radGenFaster: TRadioButton + Left = 6 + Height = 22 + Top = 34 + Width = 124 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'radGenFaster' + TabOrder = 1 + end + object radGenSmaller: TRadioButton + Left = 6 + Height = 22 + Top = 62 + Width = 124 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'radGenSmaller' + TabOrder = 2 + end + end + object grpTargetPlatform: TGroupBox + AnchorSideLeft.Control = grpGenerate + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = grpChecks + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = CodeGenPage + AnchorSideRight.Side = asrBottom + Left = 148 + Height = 118 + Top = 149 + Width = 511 + Anchors = [akTop, akLeft, akRight] + AutoSize = True + BorderSpacing.Around = 6 + Caption = 'grpTargetPlatform' + ClientHeight = 118 + ClientWidth = 511 + TabOrder = 4 + object lblTargetOS: TLabel + AnchorSideLeft.Control = grpTargetPlatform + AnchorSideTop.Control = grpTargetPlatform + Left = 6 + Height = 20 + Top = 6 + Width = 73 + BorderSpacing.Around = 6 + Caption = 'lblTargetOS' + ParentColor = False + end + object lblTargetCPU: TLabel + AnchorSideLeft.Control = grpTargetPlatform + AnchorSideTop.Control = TargetOSComboBox + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 20 + Top = 33 + Width = 81 + BorderSpacing.Around = 6 + Caption = 'lblTargetCPU' + ParentColor = False + end + object lblTargeti386Proc: TLabel + AnchorSideLeft.Control = grpTargetPlatform + AnchorSideTop.Control = TargetCPUComboBox + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 20 + Top = 60 + Width = 108 + BorderSpacing.Around = 6 + Caption = 'lblTargeti386Proc' + ParentColor = False + end + object TargetOSComboBox: TComboBox + AnchorSideLeft.Control = lblTargetOS + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = grpTargetPlatform + AnchorSideRight.Control = grpTargetPlatform + AnchorSideRight.Side = asrBottom + Left = 91 + Height = 21 + Top = 6 + Width = 414 + Anchors = [akTop, akLeft, akRight] + AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] + BorderSpacing.Left = 6 + BorderSpacing.Around = 6 + MaxLength = 0 + TabOrder = 0 + Text = 'TargetOSComboBox' + end + object TargetCPUComboBox: TComboBox + AnchorSideLeft.Control = lblTargetCPU + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = TargetOSComboBox + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = grpTargetPlatform + AnchorSideRight.Side = asrBottom + Left = 99 + Height = 21 + Top = 33 + Width = 406 + Anchors = [akTop, akLeft, akRight] + AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] + BorderSpacing.Left = 6 + BorderSpacing.Around = 6 + MaxLength = 0 + TabOrder = 1 + Text = 'TargetCPUComboBox' + end + object Targeti386ProcComboBox: TComboBox + AnchorSideLeft.Control = lblTargeti386Proc + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = TargetCPUComboBox + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = grpTargetPlatform + AnchorSideRight.Side = asrBottom + Left = 126 + Height = 21 + Top = 60 + Width = 379 + Anchors = [akTop, akLeft, akRight] + AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] + BorderSpacing.Left = 6 + BorderSpacing.Around = 6 + MaxLength = 0 + TabOrder = 2 + Text = 'Targeti386ProcComboBox' + end + end + object grpOptimizations: TGroupBox + AnchorSideLeft.Control = CodeGenPage + AnchorSideTop.Control = grpGenerate + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = CodeGenPage + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Control = CodeGenPage + AnchorSideBottom.Side = asrBottom + Left = 6 + Height = 170 + Top = 273 + Width = 653 + Anchors = [akTop, akLeft, akRight, akBottom] + BorderSpacing.Around = 6 + Caption = 'grpOptimizations' + ClientHeight = 170 + ClientWidth = 653 + TabOrder = 5 + OnResize = grpOptimizationsResize + object radOptLevelNone: TRadioButton + AnchorSideLeft.Control = grpOptimizations + AnchorSideTop.Control = grpOptimizations + Left = 6 + Height = 22 + Top = 6 + Width = 135 + BorderSpacing.Around = 6 + Caption = 'radOptLevelNone' + Checked = True + State = cbChecked + TabOrder = 0 + end + object radOptLevel1: TRadioButton + AnchorSideLeft.Control = grpOptimizations + AnchorSideTop.Control = radOptLevelNone + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 22 + Top = 34 + Width = 109 + BorderSpacing.Around = 6 + Caption = 'radOptLevel1' + TabOrder = 1 + end + object radOptLevel2: TRadioButton + AnchorSideLeft.Control = grpOptimizations + AnchorSideTop.Control = radOptLevel1 + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 22 + Top = 62 + Width = 109 + BorderSpacing.Around = 6 + Caption = 'radOptLevel2' + TabOrder = 2 + end + object radOptLevel3: TRadioButton + AnchorSideLeft.Control = grpOptimizations + AnchorSideTop.Control = radOptLevel2 + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 22 + Top = 90 + Width = 109 + BorderSpacing.Around = 6 + Caption = 'radOptLevel3' + TabOrder = 3 + end + object chkOptVarsInReg: TCheckBox + AnchorSideTop.Control = grpOptimizations + Left = 205 + Height = 22 + Top = 6 + Width = 131 + BorderSpacing.Around = 6 + Caption = 'chkOptVarsInReg' + TabOrder = 4 + end + object chkOptUncertain: TCheckBox + AnchorSideTop.Control = chkOptVarsInReg + AnchorSideTop.Side = asrBottom + Left = 205 + Height = 22 + Top = 34 + Width = 131 + BorderSpacing.Around = 6 + Caption = 'chkOptUncertain' + TabOrder = 5 + end + end + end + object LinkingPage: TPage + Caption = 'LinkingPage' + ClientWidth = 514 + ClientHeight = 398 + object grpLinkLibraries: TGroupBox + Left = 6 + Height = 53 + Top = 233 + Width = 502 + Align = alTop + AutoSize = True + BorderSpacing.Around = 6 + Caption = 'grpLinkLibraries' + ClientHeight = 53 + ClientWidth = 502 + TabOrder = 0 + object chkLinkSmart: TCheckBox + Left = 6 + Height = 22 + Top = 6 + Width = 490 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'chkLinkSmart' + TabOrder = 0 + end + end + object TargetSpecificsGrpBox: TGroupBox + Left = 6 + Height = 53 + Top = 292 + Width = 502 + Align = alTop + AutoSize = True + BorderSpacing.Around = 6 + Caption = 'TargetSpecificsGrpBox' + ClientHeight = 53 + ClientWidth = 502 + TabOrder = 1 + object chkWin32GraphicApp: TCheckBox + Left = 6 + Height = 22 + Top = 6 + Width = 490 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'chkWin32GraphicApp' + TabOrder = 0 + end + end + object grpOptions: TGroupBox + Left = 6 + Height = 82 + Top = 351 + Width = 502 + Align = alTop + AutoSize = True + BorderSpacing.Around = 6 + Caption = 'grpOptions' + ClientHeight = 82 + ClientWidth = 502 + TabOrder = 2 + object chkOptionsLinkOpt: TCheckBox + Left = 6 + Height = 22 + Top = 6 + Width = 490 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'chkOptionsLinkOpt' + TabOrder = 0 + end + object edtOptionsLinkOpt: TEdit + Left = 6 + Height = 23 + Top = 34 + Width = 490 + Align = alTop + BorderSpacing.Around = 6 + TabOrder = 1 + Text = 'edtOptionsLinkOpt' + end + end + object grpDebugging: TGroupBox + Left = 6 + Height = 221 + Top = 6 + Width = 502 + Align = alTop + AutoSize = True + BorderSpacing.Around = 6 + Caption = 'grpDebugging' + ClientHeight = 221 + ClientWidth = 502 + TabOrder = 3 + object chkDebugGDB: TCheckBox + Left = 6 + Height = 22 + Top = 6 + Width = 490 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'chkDebugGDB' + TabOrder = 0 + end + object chkDebugDBX: TCheckBox + Left = 6 + Height = 22 + Top = 34 + Width = 490 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'chkDebugDBX' + TabOrder = 1 + end + object chkUseLineInfoUnit: TCheckBox + Left = 6 + Height = 22 + Top = 62 + Width = 490 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'chkUseLineInfoUnit' + TabOrder = 2 + end + object chkUseHeaptrc: TCheckBox + Left = 6 + Height = 22 + Top = 90 + Width = 490 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'chkUseHeaptrc' + TabOrder = 3 + end + object chkUseValgrind: TCheckBox + Left = 6 + Height = 22 + Top = 118 + Width = 490 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'chkUseValgrind' + TabOrder = 4 + end + object chkGenGProfCode: TCheckBox + Left = 6 + Height = 22 + Top = 146 + Width = 490 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'chkGenGProfCode' + TabOrder = 5 + end + object chkSymbolsStrip: TCheckBox + Left = 6 + Height = 22 + Top = 174 + Width = 490 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'chkSymbolsStrip' + TabOrder = 6 + end + end + end + object MsgPage: TPage + Caption = 'MsgPage' + ClientWidth = 514 + ClientHeight = 398 + object grpVerbosity: TCheckGroup + Left = 6 + Height = 196 + Top = 6 + Width = 502 + Align = alTop + AutoFill = True + BorderSpacing.Around = 6 + Caption = 'grpVerbosity' + ChildSizing.LeftRightSpacing = 6 + ChildSizing.TopBottomSpacing = 6 + ChildSizing.EnlargeHorizontal = crsHomogenousChildResize + ChildSizing.EnlargeVertical = crsHomogenousChildResize + ChildSizing.ShrinkHorizontal = crsScaleChilds + ChildSizing.ShrinkVertical = crsScaleChilds + ChildSizing.Layout = cclLeftToRightThenTopToBottom + ChildSizing.ControlsPerLine = 2 + Columns = 2 + TabOrder = 0 + end + object grpErrorCnt: TGroupBox + Left = 6 + Height = 54 + Top = 208 + Width = 502 + Align = alTop + AutoSize = True + BorderSpacing.Around = 6 + Caption = 'grpErrorCnt' + ClientHeight = 54 + ClientWidth = 502 + TabOrder = 1 + object edtErrorCnt: TEdit + Left = 6 + Height = 23 + Top = 6 + Width = 490 + Align = alTop + BorderSpacing.Around = 6 + TabOrder = 0 + Text = 'edtErrorCnt' + end + end + end + object OtherPage: TPage + Caption = 'OtherPage' + ClientWidth = 514 + ClientHeight = 398 + object grpConfigFile: TGroupBox + Left = 6 + Height = 110 + Top = 6 + Width = 502 + Align = alTop + AutoSize = True + BorderSpacing.Around = 6 + Caption = 'grpConfigFile' + ClientHeight = 110 + ClientWidth = 502 + TabOrder = 0 + object chkConfigFile: TCheckBox + Left = 6 + Height = 22 + Top = 6 + Width = 490 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'chkConfigFile' + TabOrder = 0 + end + object chkCustomConfigFile: TCheckBox + Left = 6 + Height = 22 + Top = 34 + Width = 490 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'chkCustomConfigFile' + OnClick = chkCustomConfigFileClick + TabOrder = 1 + end + object edtConfigPath: TEdit + Left = 6 + Height = 23 + Top = 62 + Width = 490 + Align = alTop + BorderSpacing.Around = 6 + TabOrder = 2 + Text = 'edtConfigPath' + end + end + object grpCustomOptions: TGroupBox + Left = 6 + Height = 270 + Top = 122 + Width = 502 + Align = alClient + BorderSpacing.Around = 6 + Caption = 'grpCustomOptions' + ClientHeight = 270 + ClientWidth = 502 + TabOrder = 1 + object memCustomOptions: TMemo + Left = 6 + Height = 258 + Top = 6 + Width = 490 + Align = alClient + BorderSpacing.Around = 6 + TabOrder = 0 + end + end + end + object InheritedPage: TPage + Caption = 'InheritedPage' + ClientWidth = 514 + ClientHeight = 398 + object InhNoteLabel: TLabel + Left = 6 + Height = 20 + Top = 6 + Width = 502 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'InhNoteLabel' + ParentColor = False + end + object InhTreeView: TTreeView + Left = 6 + Height = 247 + Top = 32 + Width = 502 + Align = alTop + BorderSpacing.Left = 6 + BorderSpacing.Right = 6 + DefaultItemHeight = 19 + TabOrder = 0 + OnSelectionChanged = InhTreeViewSelectionChanged + end + object InhItemMemo: TMemo + Left = 6 + Height = 108 + Top = 284 + Width = 502 + Align = alClient + BorderSpacing.Left = 6 + BorderSpacing.Right = 6 + BorderSpacing.Bottom = 6 + ReadOnly = True + ScrollBars = ssAutoVertical + TabOrder = 1 + end + object InhSplitter: TSplitter + Cursor = crVSplit + Height = 5 + Top = 279 + Width = 514 + Align = alTop + ResizeAnchor = akTop + end + end + object CompilationPage: TPage + Caption = 'CompilationPage' + ClientWidth = 514 + ClientHeight = 398 + object chkCreateMakefile: TCheckBox + Left = 6 + Height = 20 + Top = 6 + Width = 502 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'chkCreateMakefile' + TabOrder = 0 + end + object ExecuteAfterGroupBox: TGroupBox + Left = 6 + Height = 104 + Top = 225 + Width = 502 + Align = alTop + AutoSize = True + BorderSpacing.Around = 6 + Caption = 'ExecuteAfterGroupBox' + ClientHeight = 104 + ClientWidth = 502 + TabOrder = 1 + object lblRunIfExecAfter: TLabel + AnchorSideLeft.Control = ExecuteAfterGroupBox + AnchorSideTop.Control = ExecuteAfterGroupBox + Left = 6 + Height = 13 + Top = 6 + Width = 96 + BorderSpacing.Around = 6 + Caption = 'lblRunIfExecAfter' + ParentColor = False + end + object ExecuteAfterCommandLabel: TLabel + AnchorSideLeft.Control = ExecuteAfterGroupBox + AnchorSideTop.Control = lblRunIfExecAfter + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 13 + Top = 25 + Width = 158 + BorderSpacing.Around = 6 + Caption = 'ExecuteAfterCommandLabel' + ParentColor = False + end + object chkExecAfterCompile: TCheckBox + AnchorSideLeft.Control = lblRunIfExecAfter + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = ExecuteAfterGroupBox + Left = 132 + Height = 20 + Top = 6 + Width = 146 + BorderSpacing.Left = 24 + BorderSpacing.Around = 6 + Caption = 'chkExecAfterCompile' + TabOrder = 0 + end + object chkExecAfterBuild: TCheckBox + AnchorSideLeft.Control = chkExecAfterCompile + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = ExecuteAfterGroupBox + Left = 308 + Height = 20 + Top = 6 + Width = 129 + BorderSpacing.Left = 24 + BorderSpacing.Around = 6 + Caption = 'chkExecAfterBuild' + TabOrder = 1 + end + object chkExecAfterRun: TCheckBox + AnchorSideLeft.Control = chkExecAfterBuild + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = ExecuteAfterGroupBox + Left = 467 + Height = 20 + Top = 6 + Width = 123 + BorderSpacing.Left = 24 + BorderSpacing.Around = 6 + Caption = 'chkExecAfterRun' + TabOrder = 2 + end + object ExecuteAfterCommandEdit: TEdit + AnchorSideLeft.Control = ExecuteAfterCommandLabel + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = lblRunIfExecAfter + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = ExecuteAfterGroupBox + AnchorSideRight.Side = asrBottom + Left = 182 + Height = 23 + Top = 25 + Width = 314 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Left = 12 + BorderSpacing.Around = 6 + TabOrder = 3 + Text = 'ExecuteAfterCommandEdit' + end + object ExecuteAfterScanFPCCheckBox: TCheckBox + AnchorSideLeft.Control = ExecuteAfterScanMakeCheckBox + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = ExecuteAfterCommandEdit + AnchorSideTop.Side = asrBottom + Left = 251 + Height = 20 + Top = 54 + Width = 209 + BorderSpacing.Left = 24 + BorderSpacing.Around = 6 + Caption = 'ExecuteAfterScanFPCCheckBox' + TabOrder = 4 + end + object ExecuteAfterScanMakeCheckBox: TCheckBox + AnchorSideLeft.Control = ExecuteAfterGroupBox + AnchorSideTop.Control = ExecuteAfterCommandEdit + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 20 + Top = 54 + Width = 215 + BorderSpacing.Around = 6 + Caption = 'ExecuteAfterScanMakeCheckBox' + TabOrder = 5 + end + object ExecuteAfterShowAllCheckBox: TCheckBox + AnchorSideLeft.Control = ExecuteAfterScanFPCCheckBox + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = ExecuteAfterCommandEdit + AnchorSideTop.Side = asrBottom + Left = 490 + Height = 20 + Top = 54 + Width = 201 + BorderSpacing.Left = 24 + BorderSpacing.Around = 6 + Caption = 'ExecuteAfterShowAllCheckBox' + TabOrder = 6 + end + end + object grpCompiler: TGroupBox + Left = 6 + Height = 77 + Top = 142 + Width = 502 + Align = alTop + AutoSize = True + BorderSpacing.Around = 6 + Caption = 'grpCompiler' + ClientHeight = 77 + ClientWidth = 502 + TabOrder = 2 + object lblRunIfCompiler: TLabel + AnchorSideLeft.Control = grpCompiler + AnchorSideTop.Control = grpCompiler + Left = 6 + Height = 13 + Top = 6 + Width = 91 + BorderSpacing.Around = 6 + Caption = 'lblRunIfCompiler' + ParentColor = False + end + object lblCompiler: TLabel + AnchorSideLeft.Control = grpCompiler + AnchorSideTop.Control = lblRunIfCompiler + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 13 + Top = 25 + Width = 63 + BorderSpacing.Left = 6 + BorderSpacing.Top = 6 + BorderSpacing.Right = 6 + BorderSpacing.Bottom = 6 + Caption = 'lblCompiler' + ParentColor = False + end + object chkCompilerCompile: TCheckBox + AnchorSideLeft.Control = lblRunIfCompiler + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = grpCompiler + Left = 127 + Height = 20 + Top = 6 + Width = 141 + BorderSpacing.Left = 30 + BorderSpacing.Top = 6 + Caption = 'chkCompilerCompile' + TabOrder = 0 + end + object chkCompilerBuild: TCheckBox + AnchorSideLeft.Control = chkCompilerCompile + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = grpCompiler + Left = 298 + Height = 20 + Top = 6 + Width = 124 + BorderSpacing.Left = 24 + BorderSpacing.Around = 6 + Caption = 'chkCompilerBuild' + TabOrder = 1 + end + object chkCompilerRun: TCheckBox + AnchorSideLeft.Control = chkCompilerBuild + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = grpCompiler + Left = 452 + Height = 20 + Top = 6 + Width = 118 + BorderSpacing.Left = 24 + BorderSpacing.Around = 6 + Caption = 'chkCompilerRun' + TabOrder = 2 + end + object edtCompiler: TEdit + AnchorSideLeft.Control = lblCompiler + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = lblCompiler + AnchorSideTop.Side = asrCenter + AnchorSideRight.Control = grpCompiler + AnchorSideRight.Side = asrBottom + Left = 87 + Height = 23 + Top = 20 + Width = 409 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Left = 12 + BorderSpacing.Around = 6 + TabOrder = 3 + Text = 'edtCompiler' + end + end + object ExecuteBeforeGroupBox: TGroupBox + Left = 6 + Height = 104 + Top = 32 + Width = 502 + Align = alTop + AutoSize = True + BorderSpacing.Around = 6 + Caption = 'ExecuteBeforeGroupBox' + ClientHeight = 104 + ClientWidth = 502 + TabOrder = 3 + object lblRunIfExecBefore: TLabel + AnchorSideLeft.Control = ExecuteBeforeGroupBox + AnchorSideTop.Control = ExecuteBeforeGroupBox + Left = 6 + Height = 13 + Top = 6 + Width = 106 + BorderSpacing.Around = 6 + Caption = 'lblRunIfExecBefore' + ParentColor = False + end + object ExecuteBeforeCommandLabel: TLabel + AnchorSideLeft.Control = ExecuteBeforeGroupBox + AnchorSideTop.Control = lblRunIfExecBefore + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 13 + Top = 25 + Width = 168 + BorderSpacing.Around = 6 + Caption = 'ExecuteBeforeCommandLabel' + ParentColor = False + end + object chkExecBeforeCompile: TCheckBox + AnchorSideLeft.Control = lblRunIfExecBefore + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = ExecuteBeforeGroupBox + Left = 142 + Height = 20 + Top = 6 + Width = 156 + BorderSpacing.Left = 24 + BorderSpacing.Around = 6 + Caption = 'chkExecBeforeCompile' + TabOrder = 0 + end + object chkExecBeforeBuild: TCheckBox + AnchorSideLeft.Control = chkExecBeforeCompile + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = ExecuteBeforeGroupBox + Left = 328 + Height = 20 + Top = 6 + Width = 139 + BorderSpacing.Left = 24 + BorderSpacing.Around = 6 + Caption = 'chkExecBeforeBuild' + TabOrder = 1 + end + object chkExecBeforeRun: TCheckBox + AnchorSideLeft.Control = chkExecBeforeBuild + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = ExecuteBeforeGroupBox + Left = 497 + Height = 20 + Top = 6 + Width = 133 + BorderSpacing.Left = 24 + BorderSpacing.Around = 6 + Caption = 'chkExecBeforeRun' + TabOrder = 2 + end + object ExecuteBeforeCommandEdit: TEdit + AnchorSideLeft.Control = ExecuteBeforeCommandLabel + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = lblRunIfExecBefore + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = ExecuteBeforeGroupBox + AnchorSideRight.Side = asrBottom + Left = 192 + Height = 23 + Top = 25 + Width = 304 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Left = 12 + BorderSpacing.Around = 6 + TabOrder = 3 + Text = 'ExecuteBeforeCommandEdit' + end + object ExecuteBeforeScanFPCCheckBox: TCheckBox + AnchorSideLeft.Control = ExecuteBeforeScanMakeCheckBox + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = ExecuteBeforeCommandEdit + AnchorSideTop.Side = asrBottom + Left = 261 + Height = 20 + Top = 54 + Width = 219 + BorderSpacing.Left = 24 + BorderSpacing.Around = 6 + Caption = 'ExecuteBeforeScanFPCCheckBox' + TabOrder = 4 + end + object ExecuteBeforeScanMakeCheckBox: TCheckBox + AnchorSideLeft.Control = ExecuteBeforeGroupBox + AnchorSideTop.Control = ExecuteBeforeCommandEdit + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 20 + Top = 54 + Width = 225 + BorderSpacing.Around = 6 + Caption = 'ExecuteBeforeScanMakeCheckBox' + TabOrder = 5 + end + object ExecuteBeforeShowAllCheckBox: TCheckBox + AnchorSideLeft.Control = ExecuteBeforeScanFPCCheckBox + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = ExecuteBeforeCommandEdit + AnchorSideTop.Side = asrBottom + Left = 510 + Height = 20 + Top = 54 + Width = 211 + BorderSpacing.Left = 24 + BorderSpacing.Around = 6 + Caption = 'ExecuteBeforeShowAllCheckBox' + TabOrder = 6 + end + end + end + end + end + object BtnPanel: TPanel + Height = 40 + Top = 438 + Width = 669 + Align = alBottom + AutoSize = True + BevelOuter = bvNone + ClientHeight = 40 + ClientWidth = 669 + TabOrder = 0 + object btnShowOptions: TBitBtn + AnchorSideBottom.Side = asrBottom + Left = 361 + Height = 28 + Top = 6 + Width = 116 + Align = alRight + AutoSize = True + BorderSpacing.Around = 6 + Caption = 'btnShowOptions' + Constraints.MinHeight = 25 + Constraints.MinWidth = 75 + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000064000000640000000000000000000000045FCDFF045F + CDFF045FCDFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007BC4E8FF85A5 + BCFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00045FCDFF3795 + F7FF3795F7FF045FCDFFE1E3E2FFB9BBBAFFB9BBBAFF7BC4E8FF7BC4E8FF85A5 + BCFF85A5BCFFE1E3E2FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00045FCDFF3795 + F7FF3795F7FF3795F7FF045FCDFFB9BBBAFF7BC4E8FF7BC4E8FF7BC4E8FF85A5 + BCFF85A5BCFF85A5BCFFB9BBBAFFE1E3E2FFFFFFFF00FFFFFF00FFFFFF00045F + CDFF3795F7FF3795F7FF3795F7FF045FCDFF7BC4E8FF7BC4E8FFAEE4FDFFAEE4 + FDFF85A5BCFF85A5BCFFB9BBBAFFB9BBBAFFFFFFFF00FFFFFF00FFFFFF00E1E3 + E2FF045FCDFF3795F7FF045FCDFF000000FF000000FF6A6A6AFFAAE4FBFFAEE4 + FDFFAEE4FDFF85A5BCFFE1E3E2FFB9BBBAFFE1E3E2FFFFFFFF00FFFFFF00B9BB + BAFFB9BBBAFF045FCDFF000000FFD5D5D5FFBBBBBBFF000000FF000000FF0000 + 00FFAEE4FDFFAEE4FDFFFFFFFF00B9BBBAFFB9BBBAFFFFFFFF00FFFFFF00B9BB + BAFFC08C86FFCD938AFF000000FFCBCBCBFFD2D2D2FFC9C9C9FFD2D2D2FFC6C6 + C6FF000000FFECF5FC5FFFFFFF00E1E3E2FFB9BBBAFFFFFFFF00FFFFFF00B980 + 78FFD3938CFFD39B95FF6A6A6AFF000000FFD6D6D6FF000000FF000000FFC0C0 + C0FF000000FFFFFFFF00FFFFFF00FFFFFF00B9BBBAFFFFFFFF00AE8077FFCD93 + 8BFFD7A5A0FFDCAFABFFE2BBB7FF000000FFE6E6E6FF000000FFF9F9FA000000 + 00FF6A6A6AFF8085ADFFFFFFFF00FFFFFF00B9BBBAFFFFFFFF00B7807AFFD79B + 95FFDAB1ACFFE9CAC5FFE3C5BFFF000000FFE1E1E1FFD2D2D2FF000000FFFFFF + FF008085ADFF8085ADFF7594F3FF92A3E0FFB9BBBAFFFFFFFF00C59B96FFD19B + 94FFDAB4ADFFEED6CDFFE2C2BAFF6A6A6AFF000000FF000000FF6A6A6AFF8085 + ADFF8085ADFF8085ADFF7594F3FF7594F3FFB3BEE1FFFFFFFF00FFFFFF00CC9B + 97FFD6A39DFFDCAEAAFFDAADA8FFD1A59FFFFFFFFF00FFFFFF00BFBFCFFF8085 + ADFF8085ADFF7080BEFF7594F3FF7594F3FF7594F3FFFFFFFF00FFFFFF00FFFF + FF00B9BBBAFFD4ACAAFFD5AEADFFFFFFFF00FEFEFD00FFFFFF00FFFFFF008085 + ADFF8085ADFF7480CCFF7594F3FF7594F3FF9EA7DAFFFFFFFF00FFFFFF00FFFF + FF00FFFFFF00B9BBBAFFB9BBBAFFBDBFBEFFE1E3E2FFFFFFFF00FFFFFF00AAAA + C1FF8085ADFF7587D6FF7193F3FF95A4E0FFFEFEFE00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00E1E3E2FFB9BBBAFFB9BBBAFFB9BBBAFFB9BBBAFFB9BB + BAFF8083B0FF758CDEFF7594F3FFFEFEFE00FAFAFC00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FEFE + FE00A5AACAFF8092DAFFFEFEFE00F7F7FB00FEFEFE00FFFFFF00 + } + NumGlyphs = 0 + OnClick = ButtonShowOptionsClicked + TabOrder = 0 + end + object btnCheck: TBitBtn + AnchorSideBottom.Side = asrBottom + Left = 483 + Height = 28 + Top = 6 + Width = 75 + Align = alRight + AutoSize = True + BorderSpacing.Around = 6 + Caption = '&Yes' + Constraints.MinHeight = 25 + Constraints.MinWidth = 75 + Default = True + Kind = bkYes + NumGlyphs = 0 + OnClick = btnTestClicked + TabOrder = 1 + end + object btnLoadSave: TBitBtn + AnchorSideBottom.Side = asrBottom + Left = 564 + Height = 28 + Top = 6 + Width = 99 + Align = alRight + AutoSize = True + BorderSpacing.Around = 6 + Caption = 'btnLoadSave' + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000064000000640000000000000000000000BA6A368FB969 + 35B5B86935EEB76835FFB56835FFB46734FFB26634FFB06533FFAE6433FFAC63 + 32FFAA6232FFA96132FFA86031FFA76031FEA66031F1A86131C4BA6A35DEEBC6 + ADFFEAC5ADFFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFB + F8FFFEFBF8FFFEFBF8FFFEFBF8FFC89A7CFFC79879FFA76031EDBA6B37FEEDCA + B3FFE0A27AFFFEFAF7FF62C088FF62C088FF62C088FF62C088FF62C088FF62C0 + 88FF62C088FF62C088FFFDF9F6FFCA8D65FFC99B7CFFA76031FEBB6C38FFEECC + B6FFE1A27AFFFEFAF7FFBFDCC2FFBFDCC2FFBFDCC2FFBFDCC2FFBFDCC2FFBFDC + C2FFBFDCC2FFBFDCC2FFFDF9F6FFCD9068FFCC9E81FFA86132FFBB6B38FFEFCE + B8FFE1A279FFFEFAF7FF62C088FF62C088FF62C088FF62C088FF62C088FF62C0 + 88FF62C088FF62C088FFFDF9F6FFCF936AFFCEA384FFAA6132FFBA6A36FFEFD0 + BBFFE2A27AFFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFB + F8FFFEFBF8FFFEFBF8FFFEFBF8FFD3966DFFD2A78AFFAB6232FFBB6A36FFF0D2 + BEFFE2A37AFFE2A37AFFE1A37AFFE2A37BFFE1A37BFFE0A178FFDE9F77FFDD9F + 76FFDC9D74FFD99B72FFD89971FFD69970FFD5AB8EFFAD6333FFBB6A36FFF2D5 + C2FFE3A37AFFE3A37AFFE2A37BFFE2A37BFFE2A47BFFE1A279FFE0A178FFDEA0 + 77FFDE9E75FFDC9D74FFDA9B73FFD99B73FFDAB095FFAF6433FFBB6A36FFF2D8 + C5FFE3A47BFFE3A37AFFE3A47AFFE2A47BFFE2A37BFFE1A37BFFE1A279FFDFA0 + 77FFDE9F76FFDD9E74FFDB9C72FFDC9D74FFDDB59AFFB16534FFBB6B36FFF4D9 + C7FFE6A67DFFC88C64FFC98D65FFC98E67FFCB926CFFCB926DFFCA9069FFC88C + 65FFC88C64FFC88C64FFC88C64FFDA9C74FFE1BA9FFFB36634FFBB6B36FEF4DC + C9FFE7A77DFFF9ECE1FFF9ECE1FFF9EDE3FFFCF4EEFFFDFAF7FFFDF7F3FFFAED + E5FFF7E7DBFFF7E5D9FFF6E5D8FFDEA077FFE4BEA4FFB46734FFBC6B36FAF5DD + CCFFE7A87EFFFAF0E8FFFAF0E8FFC98D66FFFAF0E9FFFDF8F3FFFEFAF8FFFCF4 + EFFFF9E9DFFFF7E7DBFFF7E5D9FFE0A278FFE7C2A9FFB66835FFBC6B36F0F6DF + D0FFE8A87EFFFCF6F1FFFCF6F1FFC88C64FFFAF1E9FFFBF4EEFFFDFAF7FFFDF9 + F6FFFAF0E8FFF8E8DDFFF7E6DBFFE1A37AFFEFD5C3FFB76935FEBC6B36D8F6DF + D1FFE9AA80FFFEFAF6FFFDFAF6FFC88C64FFFBF3EEFFFBF1EAFFFCF6F2FFFEFB + F8FFFCF6F1FFF9ECE2FFF8E7DBFFEED0BAFFECD0BDFFBB703EF8BC6B369BF6E0 + D1FFF7E0D1FFFEFBF8FFFEFBF7FFFDF9F6FFFCF5F0FFFAF0EAFFFBF2EDFFFDF9 + F6FFFDFAF7FFFBF1EBFFF8E9DFFEECD0BDFBC9895EECB5693563BC6B3671BC6B + 3690BC6B36CCBC6B36EEBC6B36FABB6B36FEBB6B36FFBB6A36FFBB6A36FFBC6C + 39FFBD6E3BFFBB6D3AFFBB6B38EFBB703ECBB6693554FFFFFF00 + } + NumGlyphs = 0 + OnClick = ButtonLoadSaveClick + ParentShowHint = False + ShowHint = True + TabOrder = 2 + end + end +end diff --git a/ide/compileroptionsdlg_new.lrs b/ide/compileroptionsdlg_new.lrs new file mode 100644 index 0000000000..84eb0d0634 --- /dev/null +++ b/ide/compileroptionsdlg_new.lrs @@ -0,0 +1,582 @@ +{ This is an automatically generated lazarus resource file } + +LazarusResources.Add('TfrmCompilerOptions','FORMDATA',[ + 'TPF0'#241#19'TfrmCompilerOptions'#18'frmCompilerOptions'#4'Left'#3#184#1#6'H' + +'eight'#3#16#2#3'Top'#3'e'#1#5'Width'#3#157#2#18'HorzScrollBar.Page'#3#156#2 + +#18'VertScrollBar.Page'#3#15#2#13'ActiveControl'#7#14'btnShowOptions'#11'Bor' + +'derIcons'#11#12'biSystemMenu'#0#7'Caption'#6#18'frmCompilerOptions'#12'Clie' + +'ntHeight'#3#16#2#11'ClientWidth'#3#157#2#20'Constraints.MinWidth'#3'X'#2#7 + +'OnClose'#7#23'frmCompilerOptionsClose'#8'OnResize'#7#10'FormResize'#8'Posit' + +'ion'#7#14'poScreenCenter'#0#241#6'TPanel'#11'BottomPanel'#3'Top'#3#222#1#5 + +'Width'#3#157#2#11'ClientWidth'#3#157#2#8'TabOrder'#2#3#0#241#6'TPanel'#13'O' + +'KCancelPanel'#4'Left'#3#226#1#0#241#7'TBitBtn'#9'btnCancel'#0#0#241#7'TBitB' + +'tn'#5'btnOK'#4'Left'#2#7#7'OnClick'#7#14'btnTestClicked'#0#0#0#241#7'TBitBt' + +'n'#10'HelpButton'#0#0#0#241#6'TPanel'#15'CategoriesPanel'#5'Width'#3#157#2 + +#11'ClientWidth'#3#157#2#8'TabOrder'#2#4#0#241#6'TLabel'#17'SectionTitleLabe' + +'l'#0#0#241#6'TLabel'#11'SearchLabel'#0#0#241#7'TBitBtn'#17'ClearFilterButto' + +'n'#0#0#241#5'TEdit'#10'FilterEdit'#0#0#0#241#6'TPanel'#17'SectionsTreePanel' + +#6'Height'#3#142#1#12'ClientHeight'#3#142#1#8'TabOrder'#2#1#0#241#8'TListBox' + +#11'SectionList'#6'Height'#3#142#1#0#0#0#241#9'TSplitter'#12'MainSplitter'#6 + +'Height'#3#142#1#0#0#241#6'TPanel'#16'OptionsAreaPanel'#6'Height'#3#142#1#5 + +'Width'#3#2#2#12'ClientHeight'#3#142#1#11'ClientWidth'#3#2#2#8'TabOrder'#2#2 + +#0#9'TNotebook'#8'Notebook'#24'AnchorSideBottom.Control'#7#8'BtnPanel'#6'Hei' + +'ght'#3#142#1#5'Width'#3#2#2#5'Align'#7#8'alClient'#9'PageIndex'#2#1#8'ShowT' + +'abs'#8#8'TabOrder'#2#0#0#5'TPage'#8'PathPage'#7'Caption'#6#8'PathPage'#11'C' + +'lientWidth'#3#2#2#12'ClientHeight'#3#142#1#0#6'TLabel'#13'lblOtherUnits'#4 + +'Left'#2#6#6'Height'#2#13#3'Top'#2#6#5'Width'#3#246#1#5'Align'#7#5'alTop'#18 + +'BorderSpacing.Left'#2#6#17'BorderSpacing.Top'#2#6#19'BorderSpacing.Right'#2 + +#6#7'Caption'#6#13'lblOtherUnits'#11'ParentColor'#8#0#0#6'TLabel'#15'lblIncl' + +'udeFiles'#22'AnchorSideLeft.Control'#7#8'PathPage'#21'AnchorSideTop.Control' + +#7#13'edtOtherUnits'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Hei' + +'ght'#2#13#3'Top'#2'0'#5'Width'#2'R'#18'BorderSpacing.Left'#2#6#17'BorderSpa' + +'cing.Top'#2#6#19'BorderSpacing.Right'#2#6#7'Caption'#6#15'lblIncludeFiles' + +#11'ParentColor'#8#0#0#6'TLabel'#15'lblOtherSources'#22'AnchorSideLeft.Contr' + +'ol'#7#8'PathPage'#21'AnchorSideTop.Control'#7#15'edtIncludeFiles'#18'Anchor' + +'SideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#13#3'Top'#2'Z'#5'Width' + +#2'['#18'BorderSpacing.Left'#2#6#17'BorderSpacing.Top'#2#6#19'BorderSpacing.' + +'Right'#2#6#7'Caption'#6#15'lblOtherSources'#11'ParentColor'#8#0#0#6'TLabel' + +#12'lblLibraries'#22'AnchorSideLeft.Control'#7#8'PathPage'#21'AnchorSideTop.' + +'Control'#7#15'edtOtherSources'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left' + +#2#6#6'Height'#2#13#3'Top'#3#132#0#5'Width'#2'>'#18'BorderSpacing.Left'#2#6 + +#17'BorderSpacing.Top'#2#6#19'BorderSpacing.Right'#2#6#7'Caption'#6#12'lblLi' + +'braries'#11'ParentColor'#8#0#0#6'TLabel'#16'lblUnitOutputDir'#22'AnchorSide' + +'Left.Control'#7#8'PathPage'#21'AnchorSideTop.Control'#7#12'edtLibraries'#18 + +'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#13#3'Top'#3#174#0 + +#5'Width'#2'X'#18'BorderSpacing.Left'#2#6#17'BorderSpacing.Top'#2#6#19'Borde' + +'rSpacing.Right'#2#6#7'Caption'#6#16'lblUnitOutputDir'#11'ParentColor'#8#0#0 + +#6'TLabel'#12'lblDebugPath'#22'AnchorSideLeft.Control'#7#8'PathPage'#21'Anch' + +'orSideTop.Control'#7#16'edtUnitOutputDir'#18'AnchorSideTop.Side'#7#9'asrBot' + +'tom'#4'Left'#2#6#6'Height'#2#13#3'Top'#3#216#0#5'Width'#2'L'#18'BorderSpaci' + +'ng.Left'#2#6#17'BorderSpacing.Top'#2#6#19'BorderSpacing.Right'#2#6#7'Captio' + +'n'#6#12'lblDebugPath'#11'ParentColor'#8#0#0#6'TLabel'#18'LCLWidgetTypeLabel' + +#22'AnchorSideLeft.Control'#7#8'PathPage'#21'AnchorSideTop.Control'#7#12'edt' + +'DebugPath'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#13 + +#3'Top'#3#8#1#5'Width'#2'y'#17'BorderSpacing.Top'#2#6#20'BorderSpacing.Aroun' + +'d'#2#6#7'Caption'#6#18'LCLWidgetTypeLabel'#11'ParentColor'#8#0#0#5'TEdit'#13 + +'edtOtherUnits'#22'AnchorSideLeft.Control'#7#8'PathPage'#21'AnchorSideTop.Co' + +'ntrol'#7#13'lblOtherUnits'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorS' + +'ideRight.Control'#7#8'PathPage'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'L' + +'eft'#2#6#6'Height'#2#23#3'Top'#2#19#5'Width'#3#141#2#7'Anchors'#11#5'akTop' + +#6'akLeft'#7'akRight'#0#18'BorderSpacing.Left'#2#6#19'BorderSpacing.Right'#2 + +#6#20'BorderSpacing.Bottom'#2#6#8'TabOrder'#2#0#4'Text'#6#13'edtOtherUnits'#0 + +#0#5'TEdit'#15'edtIncludeFiles'#22'AnchorSideLeft.Control'#7#8'PathPage'#21 + +'AnchorSideTop.Control'#7#15'lblIncludeFiles'#18'AnchorSideTop.Side'#7#9'asr' + +'Bottom'#23'AnchorSideRight.Control'#7#8'PathPage'#20'AnchorSideRight.Side'#7 + +#9'asrBottom'#4'Left'#2#6#6'Height'#2#23#3'Top'#2'='#5'Width'#3#141#2#7'Anch' + +'ors'#11#5'akTop'#6'akLeft'#7'akRight'#0#18'BorderSpacing.Left'#2#6#19'Borde' + +'rSpacing.Right'#2#6#20'BorderSpacing.Bottom'#2#6#8'TabOrder'#2#1#4'Text'#6 + ,#15'edtIncludeFiles'#0#0#5'TEdit'#15'edtOtherSources'#22'AnchorSideLeft.Cont' + +'rol'#7#8'PathPage'#21'AnchorSideTop.Control'#7#15'lblOtherSources'#18'Ancho' + +'rSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#8'PathPage'#20 + +'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#23#3'Top'#2'g' + +#5'Width'#3#141#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#18'BorderSpa' + +'cing.Left'#2#6#19'BorderSpacing.Right'#2#6#20'BorderSpacing.Bottom'#2#6#8'T' + +'abOrder'#2#2#4'Text'#6#15'edtOtherSources'#0#0#5'TEdit'#12'edtLibraries'#22 + +'AnchorSideLeft.Control'#7#8'PathPage'#21'AnchorSideTop.Control'#7#12'lblLib' + +'raries'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7 + +#8'PathPage'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2 + +#23#3'Top'#3#145#0#5'Width'#3#141#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRig' + +'ht'#0#18'BorderSpacing.Left'#2#6#19'BorderSpacing.Right'#2#6#20'BorderSpaci' + +'ng.Bottom'#2#6#8'TabOrder'#2#3#4'Text'#6#12'edtLibraries'#0#0#5'TEdit'#16'e' + +'dtUnitOutputDir'#22'AnchorSideLeft.Control'#7#8'PathPage'#21'AnchorSideTop.' + +'Control'#7#16'lblUnitOutputDir'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'An' + +'chorSideRight.Control'#7#8'PathPage'#20'AnchorSideRight.Side'#7#9'asrBottom' + +#4'Left'#2#6#6'Height'#2#23#3'Top'#3#187#0#5'Width'#3#141#2#7'Anchors'#11#5 + +'akTop'#6'akLeft'#7'akRight'#0#18'BorderSpacing.Left'#2#6#19'BorderSpacing.R' + +'ight'#2#6#20'BorderSpacing.Bottom'#2#6#8'TabOrder'#2#4#4'Text'#6#16'edtUnit' + +'OutputDir'#0#0#5'TEdit'#12'edtDebugPath'#22'AnchorSideLeft.Control'#7#8'Pat' + +'hPage'#21'AnchorSideTop.Control'#7#12'lblDebugPath'#18'AnchorSideTop.Side'#7 + +#9'asrBottom'#23'AnchorSideRight.Control'#7#8'PathPage'#20'AnchorSideRight.S' + +'ide'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#23#3'Top'#3#229#0#5'Width'#3#141 + +#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#18'BorderSpacing.Left'#2#6 + +#19'BorderSpacing.Right'#2#6#20'BorderSpacing.Bottom'#2#6#8'TabOrder'#2#5#4 + +'Text'#6#12'edtDebugPath'#0#0#9'TComboBox'#21'LCLWidgetTypeComboBox'#22'Anch' + +'orSideLeft.Control'#7#18'LCLWidgetTypeLabel'#19'AnchorSideLeft.Side'#7#9'as' + +'rBottom'#21'AnchorSideTop.Control'#7#18'LCLWidgetTypeLabel'#18'AnchorSideTo' + +'p.Side'#7#9'asrCenter'#4'Left'#3#133#0#6'Height'#2#21#3'Top'#3#4#1#5'Width' + +#3#171#0#16'AutoCompleteText'#11#22'cbactEndOfLineComplete'#20'cbactSearchAs' + +'cending'#0#18'BorderSpacing.Left'#2#6#9'MaxLength'#2#0#8'TabOrder'#2#6#4'Te' + +'xt'#6#21'LCLWidgetTypeComboBox'#0#0#0#5'TPage'#11'ParsingPage'#7'Caption'#6 + +#11'ParsingPage'#11'ClientWidth'#3#2#2#12'ClientHeight'#3#142#1#0#11'TRadioG' + +'roup'#11'grpAsmStyle'#4'Left'#2#6#6'Height'#2'('#3'Top'#2#6#5'Width'#3#246#1 + +#5'Align'#7#5'alTop'#8'AutoFill'#9#20'BorderSpacing.Around'#2#6#7'Caption'#6 + +#11'grpAsmStyle'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBott' + +'omSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildRes' + +'ize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildResize'#28'Chil' + +'dSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertica' + +'l'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopTo' + +'Bottom'#27'ChildSizing.ControlsPerLine'#2#3#7'Columns'#2#3#8'TabOrder'#2#0#0 + +#0#11'TCheckGroup'#16'grpSyntaxOptions'#4'Left'#2#6#6'Height'#3#2#1#3'Top'#2 + +'4'#5'Width'#3#246#1#5'Align'#7#5'alTop'#8'AutoFill'#9#20'BorderSpacing.Arou' + +'nd'#2#6#7'Caption'#6#16'grpSyntaxOptions'#28'ChildSizing.LeftRightSpacing'#2 + +#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7 + +#24'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomoge' + +'nousChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'C' + +'hildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29 + +'cclLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#8'TabOrd' + +'er'#2#1#0#0#0#5'TPage'#11'CodeGenPage'#7'Caption'#6#11'CodeGenPage'#11'Clie' + +'ntWidth'#3#2#2#12'ClientHeight'#3#142#1#0#9'TGroupBox'#16'grpSmartLinkUnit' + +#22'AnchorSideLeft.Control'#7#9'grpChecks'#19'AnchorSideLeft.Side'#7#9'asrBo' + +'ttom'#21'AnchorSideTop.Control'#7#11'CodeGenPage'#23'AnchorSideRight.Contro' + +'l'#7#11'CodeGenPage'#20'AnchorSideRight.Side'#7#9'asrBottom'#21'AnchorSideB' + +'ottom.Side'#7#9'asrBottom'#4'Left'#3#174#0#6'Height'#2'5'#3'Top'#2#6#5'Widt' + +'h'#3#229#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoSize'#9#18'B' + +'orderSpacing.Left'#2#6#17'BorderSpacing.Top'#2#6#19'BorderSpacing.Right'#2#6 + +#7'Caption'#6#16'grpSmartLinkUnit'#12'ClientHeight'#2'5'#11'ClientWidth'#3 + +#229#1#8'TabOrder'#2#0#0#9'TCheckBox'#16'chkSmartLinkUnit'#4'Left'#2#6#6'Hei' + +'ght'#2#22#3'Top'#2#6#5'Width'#3#217#1#5'Align'#7#5'alTop'#20'BorderSpacing.' + +'Around'#2#6#7'Caption'#6#16'chkSmartLinkUnit'#8'TabOrder'#2#0#0#0#0#9'TGrou' + +'pBox'#9'grpChecks'#22'AnchorSideLeft.Control'#7#11'CodeGenPage'#21'AnchorSi' + +'deTop.Control'#7#11'CodeGenPage'#20'AnchorSideRight.Side'#7#9'asrBottom'#4 + +'Left'#2#6#6'Height'#3#137#0#3'Top'#2#6#5'Width'#3#162#0#8'AutoSize'#9#20'Bo' + ,'rderSpacing.Around'#2#6#7'Caption'#6#9'grpChecks'#12'ClientHeight'#3#137#0 + +#11'ClientWidth'#3#162#0#8'TabOrder'#2#1#0#9'TCheckBox'#11'chkChecksIO'#4'Le' + +'ft'#2#6#6'Height'#2#22#3'Top'#2'"'#5'Width'#3#150#0#5'Align'#7#5'alTop'#20 + +'BorderSpacing.Around'#2#6#7'Caption'#6#11'chkChecksIO'#8'TabOrder'#2#0#0#0#9 + +'TCheckBox'#14'chkChecksRange'#4'Left'#2#6#6'Height'#2#22#3'Top'#2'Z'#5'Widt' + +'h'#3#150#0#5'Align'#7#5'alTop'#20'BorderSpacing.Around'#2#6#7'Caption'#6#14 + +'chkChecksRange'#8'TabOrder'#2#1#0#0#9'TCheckBox'#17'chkChecksOverflow'#4'Le' + +'ft'#2#6#6'Height'#2#22#3'Top'#2'>'#5'Width'#3#150#0#5'Align'#7#5'alTop'#20 + +'BorderSpacing.Around'#2#6#7'Caption'#6#17'chkChecksOverflow'#8'TabOrder'#2#2 + +#0#0#9'TCheckBox'#14'chkChecksStack'#4'Left'#2#6#6'Height'#2#22#3'Top'#2#6#5 + +'Width'#3#150#0#5'Align'#7#5'alTop'#20'BorderSpacing.Around'#2#6#7'Caption'#6 + +#14'chkChecksStack'#8'TabOrder'#2#3#0#0#0#9'TGroupBox'#11'grpHeapSize'#22'An' + +'chorSideLeft.Control'#7#9'grpChecks'#19'AnchorSideLeft.Side'#7#9'asrBottom' + +#21'AnchorSideTop.Control'#7#16'grpSmartLinkUnit'#18'AnchorSideTop.Side'#7#9 + +'asrBottom'#23'AnchorSideRight.Control'#7#11'CodeGenPage'#20'AnchorSideRight' + +'.Side'#7#9'asrBottom'#4'Left'#3#174#0#6'Height'#2'6'#3'Top'#2'A'#5'Width'#3 + +#229#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoSize'#9#20'Border' + +'Spacing.Around'#2#6#7'Caption'#6#11'grpHeapSize'#12'ClientHeight'#2'6'#11'C' + +'lientWidth'#3#229#1#8'TabOrder'#2#2#0#5'TEdit'#11'edtHeapSize'#4'Left'#2#6#6 + +'Height'#2#23#3'Top'#2#6#5'Width'#3#217#1#5'Align'#7#5'alTop'#20'BorderSpaci' + +'ng.Around'#2#6#8'TabOrder'#2#0#4'Text'#6#11'edtHeapSize'#0#0#0#9'TGroupBox' + +#11'grpGenerate'#22'AnchorSideLeft.Control'#7#11'CodeGenPage'#21'AnchorSideT' + +'op.Control'#7#9'grpChecks'#18'AnchorSideTop.Side'#7#9'asrBottom'#24'AnchorS' + +'ideBottom.Control'#7#17'grpTargetPlatform'#21'AnchorSideBottom.Side'#7#9'as' + +'rBottom'#4'Left'#2#6#6'Height'#2'v'#3'Top'#3#149#0#5'Width'#3#136#0#7'Ancho' + +'rs'#11#5'akTop'#6'akLeft'#8'akBottom'#0#8'AutoSize'#9#18'BorderSpacing.Left' + +#2#6#17'BorderSpacing.Top'#2#6#19'BorderSpacing.Right'#2#6#7'Caption'#6#11'g' + +'rpGenerate'#12'ClientHeight'#2'v'#11'ClientWidth'#3#136#0#8'TabOrder'#2#3#0 + +#12'TRadioButton'#12'radGenNormal'#4'Left'#2#6#6'Height'#2#22#3'Top'#2#6#5'W' + +'idth'#2'|'#5'Align'#7#5'alTop'#20'BorderSpacing.Around'#2#6#7'Caption'#6#12 + +'radGenNormal'#7'Checked'#9#5'State'#7#9'cbChecked'#8'TabOrder'#2#0#0#0#12'T' + +'RadioButton'#12'radGenFaster'#4'Left'#2#6#6'Height'#2#22#3'Top'#2'"'#5'Widt' + +'h'#2'|'#5'Align'#7#5'alTop'#20'BorderSpacing.Around'#2#6#7'Caption'#6#12'ra' + +'dGenFaster'#8'TabOrder'#2#1#0#0#12'TRadioButton'#13'radGenSmaller'#4'Left'#2 + +#6#6'Height'#2#22#3'Top'#2'>'#5'Width'#2'|'#5'Align'#7#5'alTop'#20'BorderSpa' + +'cing.Around'#2#6#7'Caption'#6#13'radGenSmaller'#8'TabOrder'#2#2#0#0#0#9'TGr' + +'oupBox'#17'grpTargetPlatform'#22'AnchorSideLeft.Control'#7#11'grpGenerate' + +#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#9'grpChe' + +'cks'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#11 + +'CodeGenPage'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#148#0#6'Heig' + +'ht'#2'v'#3'Top'#3#149#0#5'Width'#3#255#1#7'Anchors'#11#5'akTop'#6'akLeft'#7 + +'akRight'#0#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#7'Caption'#6#17'grpTa' + +'rgetPlatform'#12'ClientHeight'#2'v'#11'ClientWidth'#3#255#1#8'TabOrder'#2#4 + +#0#6'TLabel'#11'lblTargetOS'#22'AnchorSideLeft.Control'#7#17'grpTargetPlatfo' + +'rm'#21'AnchorSideTop.Control'#7#17'grpTargetPlatform'#4'Left'#2#6#6'Height' + +#2#20#3'Top'#2#6#5'Width'#2'I'#20'BorderSpacing.Around'#2#6#7'Caption'#6#11 + +'lblTargetOS'#11'ParentColor'#8#0#0#6'TLabel'#12'lblTargetCPU'#22'AnchorSide' + +'Left.Control'#7#17'grpTargetPlatform'#21'AnchorSideTop.Control'#7#16'Target' + +'OSComboBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#20 + +#3'Top'#2'!'#5'Width'#2'Q'#20'BorderSpacing.Around'#2#6#7'Caption'#6#12'lblT' + +'argetCPU'#11'ParentColor'#8#0#0#6'TLabel'#17'lblTargeti386Proc'#22'AnchorSi' + +'deLeft.Control'#7#17'grpTargetPlatform'#21'AnchorSideTop.Control'#7#17'Targ' + +'etCPUComboBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2 + +#20#3'Top'#2'<'#5'Width'#2'l'#20'BorderSpacing.Around'#2#6#7'Caption'#6#17'l' + +'blTargeti386Proc'#11'ParentColor'#8#0#0#9'TComboBox'#16'TargetOSComboBox'#22 + +'AnchorSideLeft.Control'#7#11'lblTargetOS'#19'AnchorSideLeft.Side'#7#9'asrBo' + +'ttom'#21'AnchorSideTop.Control'#7#17'grpTargetPlatform'#23'AnchorSideRight.' + +'Control'#7#17'grpTargetPlatform'#20'AnchorSideRight.Side'#7#9'asrBottom'#4 + +'Left'#2'['#6'Height'#2#21#3'Top'#2#6#5'Width'#3#158#1#7'Anchors'#11#5'akTop' + +#6'akLeft'#7'akRight'#0#16'AutoCompleteText'#11#22'cbactEndOfLineComplete'#20 + +'cbactSearchAscending'#0#18'BorderSpacing.Left'#2#6#20'BorderSpacing.Around' + +#2#6#9'MaxLength'#2#0#8'TabOrder'#2#0#4'Text'#6#16'TargetOSComboBox'#0#0#9'T' + +'ComboBox'#17'TargetCPUComboBox'#22'AnchorSideLeft.Control'#7#12'lblTargetCP' + +'U'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#16'Ta' + ,'rgetOSComboBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Co' + +'ntrol'#7#17'grpTargetPlatform'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Le' + +'ft'#2'c'#6'Height'#2#21#3'Top'#2'!'#5'Width'#3#150#1#7'Anchors'#11#5'akTop' + +#6'akLeft'#7'akRight'#0#16'AutoCompleteText'#11#22'cbactEndOfLineComplete'#20 + +'cbactSearchAscending'#0#18'BorderSpacing.Left'#2#6#20'BorderSpacing.Around' + +#2#6#9'MaxLength'#2#0#8'TabOrder'#2#1#4'Text'#6#17'TargetCPUComboBox'#0#0#9 + +'TComboBox'#22'Targeti386ProcComboBox'#22'AnchorSideLeft.Control'#7#17'lblTa' + +'rgeti386Proc'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Contr' + +'ol'#7#17'TargetCPUComboBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'Anchor' + +'SideRight.Control'#7#17'grpTargetPlatform'#20'AnchorSideRight.Side'#7#9'asr' + +'Bottom'#4'Left'#2'~'#6'Height'#2#21#3'Top'#2'<'#5'Width'#3'{'#1#7'Anchors' + +#11#5'akTop'#6'akLeft'#7'akRight'#0#16'AutoCompleteText'#11#22'cbactEndOfLin' + +'eComplete'#20'cbactSearchAscending'#0#18'BorderSpacing.Left'#2#6#20'BorderS' + +'pacing.Around'#2#6#9'MaxLength'#2#0#8'TabOrder'#2#2#4'Text'#6#22'Targeti386' + +'ProcComboBox'#0#0#0#9'TGroupBox'#16'grpOptimizations'#22'AnchorSideLeft.Con' + +'trol'#7#11'CodeGenPage'#21'AnchorSideTop.Control'#7#11'grpGenerate'#18'Anch' + +'orSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#11'CodeGenPage' + +#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#11'C' + +'odeGenPage'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#3 + +#170#0#3'Top'#3#17#1#5'Width'#3#141#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akR' + +'ight'#8'akBottom'#0#20'BorderSpacing.Around'#2#6#7'Caption'#6#16'grpOptimiz' + +'ations'#12'ClientHeight'#3#170#0#11'ClientWidth'#3#141#2#8'TabOrder'#2#5#8 + +'OnResize'#7#22'grpOptimizationsResize'#0#12'TRadioButton'#15'radOptLevelNon' + +'e'#22'AnchorSideLeft.Control'#7#16'grpOptimizations'#21'AnchorSideTop.Contr' + +'ol'#7#16'grpOptimizations'#4'Left'#2#6#6'Height'#2#22#3'Top'#2#6#5'Width'#3 + +#135#0#20'BorderSpacing.Around'#2#6#7'Caption'#6#15'radOptLevelNone'#7'Check' + +'ed'#9#5'State'#7#9'cbChecked'#8'TabOrder'#2#0#0#0#12'TRadioButton'#12'radOp' + +'tLevel1'#22'AnchorSideLeft.Control'#7#16'grpOptimizations'#21'AnchorSideTop' + +'.Control'#7#15'radOptLevelNone'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Lef' + +'t'#2#6#6'Height'#2#22#3'Top'#2'"'#5'Width'#2'm'#20'BorderSpacing.Around'#2#6 + +#7'Caption'#6#12'radOptLevel1'#8'TabOrder'#2#1#0#0#12'TRadioButton'#12'radOp' + +'tLevel2'#22'AnchorSideLeft.Control'#7#16'grpOptimizations'#21'AnchorSideTop' + +'.Control'#7#12'radOptLevel1'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2 + +#6#6'Height'#2#22#3'Top'#2'>'#5'Width'#2'm'#20'BorderSpacing.Around'#2#6#7'C' + +'aption'#6#12'radOptLevel2'#8'TabOrder'#2#2#0#0#12'TRadioButton'#12'radOptLe' + +'vel3'#22'AnchorSideLeft.Control'#7#16'grpOptimizations'#21'AnchorSideTop.Co' + +'ntrol'#7#12'radOptLevel2'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6 + +#6'Height'#2#22#3'Top'#2'Z'#5'Width'#2'm'#20'BorderSpacing.Around'#2#6#7'Cap' + +'tion'#6#12'radOptLevel3'#8'TabOrder'#2#3#0#0#9'TCheckBox'#15'chkOptVarsInRe' + +'g'#21'AnchorSideTop.Control'#7#16'grpOptimizations'#4'Left'#3#205#0#6'Heigh' + +'t'#2#22#3'Top'#2#6#5'Width'#3#131#0#20'BorderSpacing.Around'#2#6#7'Caption' + +#6#15'chkOptVarsInReg'#8'TabOrder'#2#4#0#0#9'TCheckBox'#15'chkOptUncertain' + +#21'AnchorSideTop.Control'#7#15'chkOptVarsInReg'#18'AnchorSideTop.Side'#7#9 + +'asrBottom'#4'Left'#3#205#0#6'Height'#2#22#3'Top'#2'"'#5'Width'#3#131#0#20'B' + +'orderSpacing.Around'#2#6#7'Caption'#6#15'chkOptUncertain'#8'TabOrder'#2#5#0 + +#0#0#0#5'TPage'#11'LinkingPage'#7'Caption'#6#11'LinkingPage'#11'ClientWidth' + +#3#2#2#12'ClientHeight'#3#142#1#0#9'TGroupBox'#16'grpLinkLibraries'#4'Left'#2 + +#6#6'Height'#2'5'#3'Top'#3#233#0#5'Width'#3#246#1#5'Align'#7#5'alTop'#8'Auto' + +'Size'#9#20'BorderSpacing.Around'#2#6#7'Caption'#6#16'grpLinkLibraries'#12'C' + +'lientHeight'#2'5'#11'ClientWidth'#3#246#1#8'TabOrder'#2#0#0#9'TCheckBox'#12 + +'chkLinkSmart'#4'Left'#2#6#6'Height'#2#22#3'Top'#2#6#5'Width'#3#234#1#5'Alig' + +'n'#7#5'alTop'#20'BorderSpacing.Around'#2#6#7'Caption'#6#12'chkLinkSmart'#8 + +'TabOrder'#2#0#0#0#0#9'TGroupBox'#21'TargetSpecificsGrpBox'#4'Left'#2#6#6'He' + +'ight'#2'5'#3'Top'#3'$'#1#5'Width'#3#246#1#5'Align'#7#5'alTop'#8'AutoSize'#9 + +#20'BorderSpacing.Around'#2#6#7'Caption'#6#21'TargetSpecificsGrpBox'#12'Clie' + +'ntHeight'#2'5'#11'ClientWidth'#3#246#1#8'TabOrder'#2#1#0#9'TCheckBox'#18'ch' + +'kWin32GraphicApp'#4'Left'#2#6#6'Height'#2#22#3'Top'#2#6#5'Width'#3#234#1#5 + +'Align'#7#5'alTop'#20'BorderSpacing.Around'#2#6#7'Caption'#6#18'chkWin32Grap' + +'hicApp'#8'TabOrder'#2#0#0#0#0#9'TGroupBox'#10'grpOptions'#4'Left'#2#6#6'Hei' + +'ght'#2'R'#3'Top'#3'_'#1#5'Width'#3#246#1#5'Align'#7#5'alTop'#8'AutoSize'#9 + +#20'BorderSpacing.Around'#2#6#7'Caption'#6#10'grpOptions'#12'ClientHeight'#2 + +'R'#11'ClientWidth'#3#246#1#8'TabOrder'#2#2#0#9'TCheckBox'#17'chkOptionsLink' + +'Opt'#4'Left'#2#6#6'Height'#2#22#3'Top'#2#6#5'Width'#3#234#1#5'Align'#7#5'al' + +'Top'#20'BorderSpacing.Around'#2#6#7'Caption'#6#17'chkOptionsLinkOpt'#8'TabO' + ,'rder'#2#0#0#0#5'TEdit'#17'edtOptionsLinkOpt'#4'Left'#2#6#6'Height'#2#23#3'T' + +'op'#2'"'#5'Width'#3#234#1#5'Align'#7#5'alTop'#20'BorderSpacing.Around'#2#6#8 + +'TabOrder'#2#1#4'Text'#6#17'edtOptionsLinkOpt'#0#0#0#9'TGroupBox'#12'grpDebu' + +'gging'#4'Left'#2#6#6'Height'#3#221#0#3'Top'#2#6#5'Width'#3#246#1#5'Align'#7 + +#5'alTop'#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#7'Caption'#6#12'grpDebu' + +'gging'#12'ClientHeight'#3#221#0#11'ClientWidth'#3#246#1#8'TabOrder'#2#3#0#9 + +'TCheckBox'#11'chkDebugGDB'#4'Left'#2#6#6'Height'#2#22#3'Top'#2#6#5'Width'#3 + +#234#1#5'Align'#7#5'alTop'#20'BorderSpacing.Around'#2#6#7'Caption'#6#11'chkD' + +'ebugGDB'#8'TabOrder'#2#0#0#0#9'TCheckBox'#11'chkDebugDBX'#4'Left'#2#6#6'Hei' + +'ght'#2#22#3'Top'#2'"'#5'Width'#3#234#1#5'Align'#7#5'alTop'#20'BorderSpacing' + +'.Around'#2#6#7'Caption'#6#11'chkDebugDBX'#8'TabOrder'#2#1#0#0#9'TCheckBox' + +#18'chkUseLineInfoUnit'#4'Left'#2#6#6'Height'#2#22#3'Top'#2'>'#5'Width'#3#234 + +#1#5'Align'#7#5'alTop'#20'BorderSpacing.Around'#2#6#7'Caption'#6#18'chkUseLi' + +'neInfoUnit'#8'TabOrder'#2#2#0#0#9'TCheckBox'#13'chkUseHeaptrc'#4'Left'#2#6#6 + +'Height'#2#22#3'Top'#2'Z'#5'Width'#3#234#1#5'Align'#7#5'alTop'#20'BorderSpac' + +'ing.Around'#2#6#7'Caption'#6#13'chkUseHeaptrc'#8'TabOrder'#2#3#0#0#9'TCheck' + +'Box'#14'chkUseValgrind'#4'Left'#2#6#6'Height'#2#22#3'Top'#2'v'#5'Width'#3 + +#234#1#5'Align'#7#5'alTop'#20'BorderSpacing.Around'#2#6#7'Caption'#6#14'chkU' + +'seValgrind'#8'TabOrder'#2#4#0#0#9'TCheckBox'#15'chkGenGProfCode'#4'Left'#2#6 + +#6'Height'#2#22#3'Top'#3#146#0#5'Width'#3#234#1#5'Align'#7#5'alTop'#20'Borde' + +'rSpacing.Around'#2#6#7'Caption'#6#15'chkGenGProfCode'#8'TabOrder'#2#5#0#0#9 + +'TCheckBox'#15'chkSymbolsStrip'#4'Left'#2#6#6'Height'#2#22#3'Top'#3#174#0#5 + +'Width'#3#234#1#5'Align'#7#5'alTop'#20'BorderSpacing.Around'#2#6#7'Caption'#6 + +#15'chkSymbolsStrip'#8'TabOrder'#2#6#0#0#0#0#5'TPage'#7'MsgPage'#7'Caption'#6 + +#7'MsgPage'#11'ClientWidth'#3#2#2#12'ClientHeight'#3#142#1#0#11'TCheckGroup' + +#12'grpVerbosity'#4'Left'#2#6#6'Height'#3#196#0#3'Top'#2#6#5'Width'#3#246#1#5 + +'Align'#7#5'alTop'#8'AutoFill'#9#20'BorderSpacing.Around'#2#6#7'Caption'#6#12 + +'grpVerbosity'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottom' + +'Spacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildResiz' + +'e'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildResize'#28'ChildS' + +'izing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical' + +#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBot' + +'tom'#27'ChildSizing.ControlsPerLine'#2#2#7'Columns'#2#2#8'TabOrder'#2#0#0#0 + +#9'TGroupBox'#11'grpErrorCnt'#4'Left'#2#6#6'Height'#2'6'#3'Top'#3#208#0#5'Wi' + +'dth'#3#246#1#5'Align'#7#5'alTop'#8'AutoSize'#9#20'BorderSpacing.Around'#2#6 + +#7'Caption'#6#11'grpErrorCnt'#12'ClientHeight'#2'6'#11'ClientWidth'#3#246#1#8 + +'TabOrder'#2#1#0#5'TEdit'#11'edtErrorCnt'#4'Left'#2#6#6'Height'#2#23#3'Top'#2 + +#6#5'Width'#3#234#1#5'Align'#7#5'alTop'#20'BorderSpacing.Around'#2#6#8'TabOr' + +'der'#2#0#4'Text'#6#11'edtErrorCnt'#0#0#0#0#5'TPage'#9'OtherPage'#7'Caption' + +#6#9'OtherPage'#11'ClientWidth'#3#2#2#12'ClientHeight'#3#142#1#0#9'TGroupBox' + +#13'grpConfigFile'#4'Left'#2#6#6'Height'#2'n'#3'Top'#2#6#5'Width'#3#246#1#5 + +'Align'#7#5'alTop'#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#7'Caption'#6#13 + +'grpConfigFile'#12'ClientHeight'#2'n'#11'ClientWidth'#3#246#1#8'TabOrder'#2#0 + +#0#9'TCheckBox'#13'chkConfigFile'#4'Left'#2#6#6'Height'#2#22#3'Top'#2#6#5'Wi' + +'dth'#3#234#1#5'Align'#7#5'alTop'#20'BorderSpacing.Around'#2#6#7'Caption'#6 + +#13'chkConfigFile'#8'TabOrder'#2#0#0#0#9'TCheckBox'#19'chkCustomConfigFile'#4 + +'Left'#2#6#6'Height'#2#22#3'Top'#2'"'#5'Width'#3#234#1#5'Align'#7#5'alTop'#20 + +'BorderSpacing.Around'#2#6#7'Caption'#6#19'chkCustomConfigFile'#7'OnClick'#7 + +#24'chkCustomConfigFileClick'#8'TabOrder'#2#1#0#0#5'TEdit'#13'edtConfigPath' + +#4'Left'#2#6#6'Height'#2#23#3'Top'#2'>'#5'Width'#3#234#1#5'Align'#7#5'alTop' + +#20'BorderSpacing.Around'#2#6#8'TabOrder'#2#2#4'Text'#6#13'edtConfigPath'#0#0 + +#0#9'TGroupBox'#16'grpCustomOptions'#4'Left'#2#6#6'Height'#3#14#1#3'Top'#2'z' + +#5'Width'#3#246#1#5'Align'#7#8'alClient'#20'BorderSpacing.Around'#2#6#7'Capt' + +'ion'#6#16'grpCustomOptions'#12'ClientHeight'#3#14#1#11'ClientWidth'#3#246#1 + +#8'TabOrder'#2#1#0#5'TMemo'#16'memCustomOptions'#4'Left'#2#6#6'Height'#3#2#1 + +#3'Top'#2#6#5'Width'#3#234#1#5'Align'#7#8'alClient'#20'BorderSpacing.Around' + +#2#6#8'TabOrder'#2#0#0#0#0#0#5'TPage'#13'InheritedPage'#7'Caption'#6#13'Inhe' + +'ritedPage'#11'ClientWidth'#3#2#2#12'ClientHeight'#3#142#1#0#6'TLabel'#12'In' + +'hNoteLabel'#4'Left'#2#6#6'Height'#2#20#3'Top'#2#6#5'Width'#3#246#1#5'Align' + +#7#5'alTop'#20'BorderSpacing.Around'#2#6#7'Caption'#6#12'InhNoteLabel'#11'Pa' + +'rentColor'#8#0#0#9'TTreeView'#11'InhTreeView'#4'Left'#2#6#6'Height'#3#247#0 + +#3'Top'#2' '#5'Width'#3#246#1#5'Align'#7#5'alTop'#18'BorderSpacing.Left'#2#6 + +#19'BorderSpacing.Right'#2#6#17'DefaultItemHeight'#2#19#8'TabOrder'#2#0#18'O' + +'nSelectionChanged'#7#27'InhTreeViewSelectionChanged'#0#0#5'TMemo'#11'InhIte' + ,'mMemo'#4'Left'#2#6#6'Height'#2'l'#3'Top'#3#28#1#5'Width'#3#246#1#5'Align'#7 + +#8'alClient'#18'BorderSpacing.Left'#2#6#19'BorderSpacing.Right'#2#6#20'Borde' + +'rSpacing.Bottom'#2#6#8'ReadOnly'#9#10'ScrollBars'#7#14'ssAutoVertical'#8'Ta' + +'bOrder'#2#1#0#0#9'TSplitter'#11'InhSplitter'#6'Cursor'#7#8'crVSplit'#6'Heig' + +'ht'#2#5#3'Top'#3#23#1#5'Width'#3#2#2#5'Align'#7#5'alTop'#12'ResizeAnchor'#7 + +#5'akTop'#0#0#0#5'TPage'#15'CompilationPage'#7'Caption'#6#15'CompilationPage' + +#11'ClientWidth'#3#2#2#12'ClientHeight'#3#142#1#0#9'TCheckBox'#17'chkCreateM' + +'akefile'#4'Left'#2#6#6'Height'#2#20#3'Top'#2#6#5'Width'#3#246#1#5'Align'#7#5 + +'alTop'#20'BorderSpacing.Around'#2#6#7'Caption'#6#17'chkCreateMakefile'#8'Ta' + +'bOrder'#2#0#0#0#9'TGroupBox'#20'ExecuteAfterGroupBox'#4'Left'#2#6#6'Height' + +#2'h'#3'Top'#3#225#0#5'Width'#3#246#1#5'Align'#7#5'alTop'#8'AutoSize'#9#20'B' + +'orderSpacing.Around'#2#6#7'Caption'#6#20'ExecuteAfterGroupBox'#12'ClientHei' + +'ght'#2'h'#11'ClientWidth'#3#246#1#8'TabOrder'#2#1#0#6'TLabel'#17'lblRunIfEx' + +'ecAfter'#22'AnchorSideLeft.Control'#7#20'ExecuteAfterGroupBox'#21'AnchorSid' + +'eTop.Control'#7#20'ExecuteAfterGroupBox'#4'Left'#2#6#6'Height'#2#13#3'Top'#2 + +#6#5'Width'#2'`'#20'BorderSpacing.Around'#2#6#7'Caption'#6#17'lblRunIfExecAf' + +'ter'#11'ParentColor'#8#0#0#6'TLabel'#24'ExecuteAfterCommandLabel'#22'Anchor' + +'SideLeft.Control'#7#20'ExecuteAfterGroupBox'#21'AnchorSideTop.Control'#7#17 + +'lblRunIfExecAfter'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Heig' + +'ht'#2#13#3'Top'#2#25#5'Width'#3#158#0#20'BorderSpacing.Around'#2#6#7'Captio' + +'n'#6#24'ExecuteAfterCommandLabel'#11'ParentColor'#8#0#0#9'TCheckBox'#19'chk' + +'ExecAfterCompile'#22'AnchorSideLeft.Control'#7#17'lblRunIfExecAfter'#19'Anc' + +'horSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#20'ExecuteAfte' + +'rGroupBox'#4'Left'#3#132#0#6'Height'#2#20#3'Top'#2#6#5'Width'#3#146#0#18'Bo' + +'rderSpacing.Left'#2#24#20'BorderSpacing.Around'#2#6#7'Caption'#6#19'chkExec' + +'AfterCompile'#8'TabOrder'#2#0#0#0#9'TCheckBox'#17'chkExecAfterBuild'#22'Anc' + +'horSideLeft.Control'#7#19'chkExecAfterCompile'#19'AnchorSideLeft.Side'#7#9 + +'asrBottom'#21'AnchorSideTop.Control'#7#20'ExecuteAfterGroupBox'#4'Left'#3'4' + +#1#6'Height'#2#20#3'Top'#2#6#5'Width'#3#129#0#18'BorderSpacing.Left'#2#24#20 + +'BorderSpacing.Around'#2#6#7'Caption'#6#17'chkExecAfterBuild'#8'TabOrder'#2#1 + +#0#0#9'TCheckBox'#15'chkExecAfterRun'#22'AnchorSideLeft.Control'#7#17'chkExe' + +'cAfterBuild'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Contro' + +'l'#7#20'ExecuteAfterGroupBox'#4'Left'#3#211#1#6'Height'#2#20#3'Top'#2#6#5'W' + +'idth'#2'{'#18'BorderSpacing.Left'#2#24#20'BorderSpacing.Around'#2#6#7'Capti' + +'on'#6#15'chkExecAfterRun'#8'TabOrder'#2#2#0#0#5'TEdit'#23'ExecuteAfterComma' + +'ndEdit'#22'AnchorSideLeft.Control'#7#24'ExecuteAfterCommandLabel'#19'Anchor' + +'SideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#17'lblRunIfExecAf' + +'ter'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#20 + +'ExecuteAfterGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#182 + +#0#6'Height'#2#23#3'Top'#2#25#5'Width'#3':'#1#7'Anchors'#11#5'akTop'#6'akLef' + +'t'#7'akRight'#0#18'BorderSpacing.Left'#2#12#20'BorderSpacing.Around'#2#6#8 + +'TabOrder'#2#3#4'Text'#6#23'ExecuteAfterCommandEdit'#0#0#9'TCheckBox'#27'Exe' + +'cuteAfterScanFPCCheckBox'#22'AnchorSideLeft.Control'#7#28'ExecuteAfterScanM' + +'akeCheckBox'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Contro' + +'l'#7#23'ExecuteAfterCommandEdit'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Le' + +'ft'#3#251#0#6'Height'#2#20#3'Top'#2'6'#5'Width'#3#209#0#18'BorderSpacing.Le' + +'ft'#2#24#20'BorderSpacing.Around'#2#6#7'Caption'#6#27'ExecuteAfterScanFPCCh' + +'eckBox'#8'TabOrder'#2#4#0#0#9'TCheckBox'#28'ExecuteAfterScanMakeCheckBox'#22 + +'AnchorSideLeft.Control'#7#20'ExecuteAfterGroupBox'#21'AnchorSideTop.Control' + +#7#23'ExecuteAfterCommandEdit'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left' + +#2#6#6'Height'#2#20#3'Top'#2'6'#5'Width'#3#215#0#20'BorderSpacing.Around'#2#6 + +#7'Caption'#6#28'ExecuteAfterScanMakeCheckBox'#8'TabOrder'#2#5#0#0#9'TCheckB' + +'ox'#27'ExecuteAfterShowAllCheckBox'#22'AnchorSideLeft.Control'#7#27'Execute' + +'AfterScanFPCCheckBox'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideT' + +'op.Control'#7#23'ExecuteAfterCommandEdit'#18'AnchorSideTop.Side'#7#9'asrBot' + +'tom'#4'Left'#3#234#1#6'Height'#2#20#3'Top'#2'6'#5'Width'#3#201#0#18'BorderS' + +'pacing.Left'#2#24#20'BorderSpacing.Around'#2#6#7'Caption'#6#27'ExecuteAfter' + +'ShowAllCheckBox'#8'TabOrder'#2#6#0#0#0#9'TGroupBox'#11'grpCompiler'#4'Left' + +#2#6#6'Height'#2'M'#3'Top'#3#142#0#5'Width'#3#246#1#5'Align'#7#5'alTop'#8'Au' + +'toSize'#9#20'BorderSpacing.Around'#2#6#7'Caption'#6#11'grpCompiler'#12'Clie' + +'ntHeight'#2'M'#11'ClientWidth'#3#246#1#8'TabOrder'#2#2#0#6'TLabel'#16'lblRu' + +'nIfCompiler'#22'AnchorSideLeft.Control'#7#11'grpCompiler'#21'AnchorSideTop.' + +'Control'#7#11'grpCompiler'#4'Left'#2#6#6'Height'#2#13#3'Top'#2#6#5'Width'#2 + +'['#20'BorderSpacing.Around'#2#6#7'Caption'#6#16'lblRunIfCompiler'#11'Parent' + ,'Color'#8#0#0#6'TLabel'#11'lblCompiler'#22'AnchorSideLeft.Control'#7#11'grpC' + +'ompiler'#21'AnchorSideTop.Control'#7#16'lblRunIfCompiler'#18'AnchorSideTop.' + +'Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#13#3'Top'#2#25#5'Width'#2'?'#18 + +'BorderSpacing.Left'#2#6#17'BorderSpacing.Top'#2#6#19'BorderSpacing.Right'#2 + +#6#20'BorderSpacing.Bottom'#2#6#7'Caption'#6#11'lblCompiler'#11'ParentColor' + +#8#0#0#9'TCheckBox'#18'chkCompilerCompile'#22'AnchorSideLeft.Control'#7#16'l' + +'blRunIfCompiler'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Co' + +'ntrol'#7#11'grpCompiler'#4'Left'#2''#6'Height'#2#20#3'Top'#2#6#5'Width'#3 + +#141#0#18'BorderSpacing.Left'#2#30#17'BorderSpacing.Top'#2#6#7'Caption'#6#18 + +'chkCompilerCompile'#8'TabOrder'#2#0#0#0#9'TCheckBox'#16'chkCompilerBuild'#22 + +'AnchorSideLeft.Control'#7#18'chkCompilerCompile'#19'AnchorSideLeft.Side'#7#9 + +'asrBottom'#21'AnchorSideTop.Control'#7#11'grpCompiler'#4'Left'#3'*'#1#6'Hei' + +'ght'#2#20#3'Top'#2#6#5'Width'#2'|'#18'BorderSpacing.Left'#2#24#20'BorderSpa' + +'cing.Around'#2#6#7'Caption'#6#16'chkCompilerBuild'#8'TabOrder'#2#1#0#0#9'TC' + +'heckBox'#14'chkCompilerRun'#22'AnchorSideLeft.Control'#7#16'chkCompilerBuil' + +'d'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#11'gr' + +'pCompiler'#4'Left'#3#196#1#6'Height'#2#20#3'Top'#2#6#5'Width'#2'v'#18'Borde' + +'rSpacing.Left'#2#24#20'BorderSpacing.Around'#2#6#7'Caption'#6#14'chkCompile' + +'rRun'#8'TabOrder'#2#2#0#0#5'TEdit'#11'edtCompiler'#22'AnchorSideLeft.Contro' + +'l'#7#11'lblCompiler'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTo' + +'p.Control'#7#11'lblCompiler'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'Ancho' + +'rSideRight.Control'#7#11'grpCompiler'#20'AnchorSideRight.Side'#7#9'asrBotto' + +'m'#4'Left'#2'W'#6'Height'#2#23#3'Top'#2#20#5'Width'#3#153#1#7'Anchors'#11#5 + +'akTop'#6'akLeft'#7'akRight'#0#18'BorderSpacing.Left'#2#12#20'BorderSpacing.' + +'Around'#2#6#8'TabOrder'#2#3#4'Text'#6#11'edtCompiler'#0#0#0#9'TGroupBox'#21 + +'ExecuteBeforeGroupBox'#4'Left'#2#6#6'Height'#2'h'#3'Top'#2' '#5'Width'#3#246 + +#1#5'Align'#7#5'alTop'#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#7'Caption' + +#6#21'ExecuteBeforeGroupBox'#12'ClientHeight'#2'h'#11'ClientWidth'#3#246#1#8 + +'TabOrder'#2#3#0#6'TLabel'#18'lblRunIfExecBefore'#22'AnchorSideLeft.Control' + +#7#21'ExecuteBeforeGroupBox'#21'AnchorSideTop.Control'#7#21'ExecuteBeforeGro' + +'upBox'#4'Left'#2#6#6'Height'#2#13#3'Top'#2#6#5'Width'#2'j'#20'BorderSpacing' + +'.Around'#2#6#7'Caption'#6#18'lblRunIfExecBefore'#11'ParentColor'#8#0#0#6'TL' + +'abel'#25'ExecuteBeforeCommandLabel'#22'AnchorSideLeft.Control'#7#21'Execute' + +'BeforeGroupBox'#21'AnchorSideTop.Control'#7#18'lblRunIfExecBefore'#18'Ancho' + +'rSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#13#3'Top'#2#25#5'Widt' + +'h'#3#168#0#20'BorderSpacing.Around'#2#6#7'Caption'#6#25'ExecuteBeforeComman' + +'dLabel'#11'ParentColor'#8#0#0#9'TCheckBox'#20'chkExecBeforeCompile'#22'Anch' + +'orSideLeft.Control'#7#18'lblRunIfExecBefore'#19'AnchorSideLeft.Side'#7#9'as' + +'rBottom'#21'AnchorSideTop.Control'#7#21'ExecuteBeforeGroupBox'#4'Left'#3#142 + +#0#6'Height'#2#20#3'Top'#2#6#5'Width'#3#156#0#18'BorderSpacing.Left'#2#24#20 + +'BorderSpacing.Around'#2#6#7'Caption'#6#20'chkExecBeforeCompile'#8'TabOrder' + +#2#0#0#0#9'TCheckBox'#18'chkExecBeforeBuild'#22'AnchorSideLeft.Control'#7#20 + +'chkExecBeforeCompile'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideT' + +'op.Control'#7#21'ExecuteBeforeGroupBox'#4'Left'#3'H'#1#6'Height'#2#20#3'Top' + +#2#6#5'Width'#3#139#0#18'BorderSpacing.Left'#2#24#20'BorderSpacing.Around'#2 + +#6#7'Caption'#6#18'chkExecBeforeBuild'#8'TabOrder'#2#1#0#0#9'TCheckBox'#16'c' + +'hkExecBeforeRun'#22'AnchorSideLeft.Control'#7#18'chkExecBeforeBuild'#19'Anc' + +'horSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#21'ExecuteBefo' + +'reGroupBox'#4'Left'#3#241#1#6'Height'#2#20#3'Top'#2#6#5'Width'#3#133#0#18'B' + +'orderSpacing.Left'#2#24#20'BorderSpacing.Around'#2#6#7'Caption'#6#16'chkExe' + +'cBeforeRun'#8'TabOrder'#2#2#0#0#5'TEdit'#24'ExecuteBeforeCommandEdit'#22'An' + +'chorSideLeft.Control'#7#25'ExecuteBeforeCommandLabel'#19'AnchorSideLeft.Sid' + +'e'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#18'lblRunIfExecBefore'#18'Anc' + +'horSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#21'ExecuteBef' + +'oreGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#192#0#6'Heig' + +'ht'#2#23#3'Top'#2#25#5'Width'#3'0'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akR' + +'ight'#0#18'BorderSpacing.Left'#2#12#20'BorderSpacing.Around'#2#6#8'TabOrder' + +#2#3#4'Text'#6#24'ExecuteBeforeCommandEdit'#0#0#9'TCheckBox'#28'ExecuteBefor' + +'eScanFPCCheckBox'#22'AnchorSideLeft.Control'#7#29'ExecuteBeforeScanMakeChec' + +'kBox'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#24 + +'ExecuteBeforeCommandEdit'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3#5 + +#1#6'Height'#2#20#3'Top'#2'6'#5'Width'#3#219#0#18'BorderSpacing.Left'#2#24#20 + +'BorderSpacing.Around'#2#6#7'Caption'#6#28'ExecuteBeforeScanFPCCheckBox'#8'T' + +'abOrder'#2#4#0#0#9'TCheckBox'#29'ExecuteBeforeScanMakeCheckBox'#22'AnchorSi' + ,'deLeft.Control'#7#21'ExecuteBeforeGroupBox'#21'AnchorSideTop.Control'#7#24 + +'ExecuteBeforeCommandEdit'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6 + +#6'Height'#2#20#3'Top'#2'6'#5'Width'#3#225#0#20'BorderSpacing.Around'#2#6#7 + +'Caption'#6#29'ExecuteBeforeScanMakeCheckBox'#8'TabOrder'#2#5#0#0#9'TCheckBo' + +'x'#28'ExecuteBeforeShowAllCheckBox'#22'AnchorSideLeft.Control'#7#28'Execute' + +'BeforeScanFPCCheckBox'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSide' + +'Top.Control'#7#24'ExecuteBeforeCommandEdit'#18'AnchorSideTop.Side'#7#9'asrB' + +'ottom'#4'Left'#3#254#1#6'Height'#2#20#3'Top'#2'6'#5'Width'#3#211#0#18'Borde' + +'rSpacing.Left'#2#24#20'BorderSpacing.Around'#2#6#7'Caption'#6#28'ExecuteBef' + +'oreShowAllCheckBox'#8'TabOrder'#2#6#0#0#0#0#0#0#6'TPanel'#8'BtnPanel'#6'Hei' + +'ght'#2'('#3'Top'#3#182#1#5'Width'#3#157#2#5'Align'#7#8'alBottom'#8'AutoSize' + +#9#10'BevelOuter'#7#6'bvNone'#12'ClientHeight'#2'('#11'ClientWidth'#3#157#2#8 + +'TabOrder'#2#0#0#7'TBitBtn'#14'btnShowOptions'#21'AnchorSideBottom.Side'#7#9 + +'asrBottom'#4'Left'#3'i'#1#6'Height'#2#28#3'Top'#2#6#5'Width'#2't'#5'Align'#7 + +#7'alRight'#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#7'Caption'#6#14'btnSh' + +'owOptions'#21'Constraints.MinHeight'#2#25#20'Constraints.MinWidth'#2'K'#10 + +'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0 + +#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#4'_' + +#205#255#4'_'#205#255#4'_'#205#255#255#255#255#0#255#255#255#0#255#255#255#0 + +#255#255#255#0#255#255#255#0'{'#196#232#255#133#165#188#255#255#255#255#0#255 + +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#4'_'#205 + +#255'7'#149#247#255'7'#149#247#255#4'_'#205#255#225#227#226#255#185#187#186 + +#255#185#187#186#255'{'#196#232#255'{'#196#232#255#133#165#188#255#133#165 + +#188#255#225#227#226#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255 + +#255#0#4'_'#205#255'7'#149#247#255'7'#149#247#255'7'#149#247#255#4'_'#205#255 + +#185#187#186#255'{'#196#232#255'{'#196#232#255'{'#196#232#255#133#165#188#255 + +#133#165#188#255#133#165#188#255#185#187#186#255#225#227#226#255#255#255#255 + +#0#255#255#255#0#255#255#255#0#4'_'#205#255'7'#149#247#255'7'#149#247#255'7' + +#149#247#255#4'_'#205#255'{'#196#232#255'{'#196#232#255#174#228#253#255#174 + +#228#253#255#133#165#188#255#133#165#188#255#185#187#186#255#185#187#186#255 + +#255#255#255#0#255#255#255#0#255#255#255#0#225#227#226#255#4'_'#205#255'7' + +#149#247#255#4'_'#205#255#0#0#0#255#0#0#0#255'jjj'#255#170#228#251#255#174 + +#228#253#255#174#228#253#255#133#165#188#255#225#227#226#255#185#187#186#255 + +#225#227#226#255#255#255#255#0#255#255#255#0#185#187#186#255#185#187#186#255 + +#4'_'#205#255#0#0#0#255#213#213#213#255#187#187#187#255#0#0#0#255#0#0#0#255#0 + +#0#0#255#174#228#253#255#174#228#253#255#255#255#255#0#185#187#186#255#185 + +#187#186#255#255#255#255#0#255#255#255#0#185#187#186#255#192#140#134#255#205 + +#147#138#255#0#0#0#255#203#203#203#255#210#210#210#255#201#201#201#255#210 + +#210#210#255#198#198#198#255#0#0#0#255#236#245#252'_'#255#255#255#0#225#227 + +#226#255#185#187#186#255#255#255#255#0#255#255#255#0#185#128'x'#255#211#147 + +#140#255#211#155#149#255'jjj'#255#0#0#0#255#214#214#214#255#0#0#0#255#0#0#0 + +#255#192#192#192#255#0#0#0#255#255#255#255#0#255#255#255#0#255#255#255#0#185 + +#187#186#255#255#255#255#0#174#128'w'#255#205#147#139#255#215#165#160#255#220 + +#175#171#255#226#187#183#255#0#0#0#255#230#230#230#255#0#0#0#255#249#249#250 + +#0#0#0#0#255'jjj'#255#128#133#173#255#255#255#255#0#255#255#255#0#185#187#186 + +#255#255#255#255#0#183#128'z'#255#215#155#149#255#218#177#172#255#233#202#197 + +#255#227#197#191#255#0#0#0#255#225#225#225#255#210#210#210#255#0#0#0#255#255 + +#255#255#0#128#133#173#255#128#133#173#255'u'#148#243#255#146#163#224#255#185 + +#187#186#255#255#255#255#0#197#155#150#255#209#155#148#255#218#180#173#255 + +#238#214#205#255#226#194#186#255'jjj'#255#0#0#0#255#0#0#0#255'jjj'#255#128 + +#133#173#255#128#133#173#255#128#133#173#255'u'#148#243#255'u'#148#243#255 + +#179#190#225#255#255#255#255#0#255#255#255#0#204#155#151#255#214#163#157#255 + +#220#174#170#255#218#173#168#255#209#165#159#255#255#255#255#0#255#255#255#0 + +#191#191#207#255#128#133#173#255#128#133#173#255'p'#128#190#255'u'#148#243 + +#255'u'#148#243#255'u'#148#243#255#255#255#255#0#255#255#255#0#255#255#255#0 + +#185#187#186#255#212#172#170#255#213#174#173#255#255#255#255#0#254#254#253#0 + +#255#255#255#0#255#255#255#0#128#133#173#255#128#133#173#255't'#128#204#255 + +'u'#148#243#255'u'#148#243#255#158#167#218#255#255#255#255#0#255#255#255#0 + +#255#255#255#0#255#255#255#0#185#187#186#255#185#187#186#255#189#191#190#255 + +#225#227#226#255#255#255#255#0#255#255#255#0#170#170#193#255#128#133#173#255 + +'u'#135#214#255'q'#147#243#255#149#164#224#255#254#254#254#0#255#255#255#0 + +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#225#227#226#255#185 + +#187#186#255#185#187#186#255#185#187#186#255#185#187#186#255#185#187#186#255 + +#128#131#176#255'u'#140#222#255'u'#148#243#255#254#254#254#0#250#250#252#0 + ,#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 + +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#254#254 + +#254#0#165#170#202#255#128#146#218#255#254#254#254#0#247#247#251#0#254#254 + +#254#0#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#24'ButtonShowOptionsClick' + +'ed'#8'TabOrder'#2#0#0#0#7'TBitBtn'#8'btnCheck'#21'AnchorSideBottom.Side'#7#9 + +'asrBottom'#4'Left'#3#227#1#6'Height'#2#28#3'Top'#2#6#5'Width'#2'K'#5'Align' + +#7#7'alRight'#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#7'Caption'#6#4'&Yes' + +#21'Constraints.MinHeight'#2#25#20'Constraints.MinWidth'#2'K'#7'Default'#9#4 + +'Kind'#7#5'bkYes'#9'NumGlyphs'#2#0#7'OnClick'#7#14'btnTestClicked'#8'TabOrde' + +'r'#2#1#0#0#7'TBitBtn'#11'btnLoadSave'#21'AnchorSideBottom.Side'#7#9'asrBott' + +'om'#4'Left'#3'4'#2#6'Height'#2#28#3'Top'#2#6#5'Width'#2'c'#5'Align'#7#7'alR' + +'ight'#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#7'Caption'#6#11'btnLoadSav' + +'e'#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0 + +#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0 + +#186'j6'#143#185'i5'#181#184'i5'#238#183'h5'#255#181'h5'#255#180'g4'#255#178 + +'f4'#255#176'e3'#255#174'd3'#255#172'c2'#255#170'b2'#255#169'a2'#255#168'`1' + +#255#167'`1'#254#166'`1'#241#168'a1'#196#186'j5'#222#235#198#173#255#234#197 + +#173#255#254#251#248#255#254#251#248#255#254#251#248#255#254#251#248#255#254 + +#251#248#255#254#251#248#255#254#251#248#255#254#251#248#255#254#251#248#255 + +#254#251#248#255#200#154'|'#255#199#152'y'#255#167'`1'#237#186'k7'#254#237 + +#202#179#255#224#162'z'#255#254#250#247#255'b'#192#136#255'b'#192#136#255'b' + +#192#136#255'b'#192#136#255'b'#192#136#255'b'#192#136#255'b'#192#136#255'b' + +#192#136#255#253#249#246#255#202#141'e'#255#201#155'|'#255#167'`1'#254#187'l' + +'8'#255#238#204#182#255#225#162'z'#255#254#250#247#255#191#220#194#255#191 + +#220#194#255#191#220#194#255#191#220#194#255#191#220#194#255#191#220#194#255 + +#191#220#194#255#191#220#194#255#253#249#246#255#205#144'h'#255#204#158#129 + +#255#168'a2'#255#187'k8'#255#239#206#184#255#225#162'y'#255#254#250#247#255 + +'b'#192#136#255'b'#192#136#255'b'#192#136#255'b'#192#136#255'b'#192#136#255 + +'b'#192#136#255'b'#192#136#255'b'#192#136#255#253#249#246#255#207#147'j'#255 + +#206#163#132#255#170'a2'#255#186'j6'#255#239#208#187#255#226#162'z'#255#254 + +#251#248#255#254#251#248#255#254#251#248#255#254#251#248#255#254#251#248#255 + +#254#251#248#255#254#251#248#255#254#251#248#255#254#251#248#255#254#251#248 + +#255#211#150'm'#255#210#167#138#255#171'b2'#255#187'j6'#255#240#210#190#255 + +#226#163'z'#255#226#163'z'#255#225#163'z'#255#226#163'{'#255#225#163'{'#255 + +#224#161'x'#255#222#159'w'#255#221#159'v'#255#220#157't'#255#217#155'r'#255 + +#216#153'q'#255#214#153'p'#255#213#171#142#255#173'c3'#255#187'j6'#255#242 + +#213#194#255#227#163'z'#255#227#163'z'#255#226#163'{'#255#226#163'{'#255#226 + +#164'{'#255#225#162'y'#255#224#161'x'#255#222#160'w'#255#222#158'u'#255#220 + +#157't'#255#218#155's'#255#217#155's'#255#218#176#149#255#175'd3'#255#187'j6' + +#255#242#216#197#255#227#164'{'#255#227#163'z'#255#227#164'z'#255#226#164'{' + +#255#226#163'{'#255#225#163'{'#255#225#162'y'#255#223#160'w'#255#222#159'v' + +#255#221#158't'#255#219#156'r'#255#220#157't'#255#221#181#154#255#177'e4'#255 + +#187'k6'#255#244#217#199#255#230#166'}'#255#200#140'd'#255#201#141'e'#255#201 + +#142'g'#255#203#146'l'#255#203#146'm'#255#202#144'i'#255#200#140'e'#255#200 + +#140'd'#255#200#140'd'#255#200#140'd'#255#218#156't'#255#225#186#159#255#179 + +'f4'#255#187'k6'#254#244#220#201#255#231#167'}'#255#249#236#225#255#249#236 + +#225#255#249#237#227#255#252#244#238#255#253#250#247#255#253#247#243#255#250 + +#237#229#255#247#231#219#255#247#229#217#255#246#229#216#255#222#160'w'#255 + +#228#190#164#255#180'g4'#255#188'k6'#250#245#221#204#255#231#168'~'#255#250 + +#240#232#255#250#240#232#255#201#141'f'#255#250#240#233#255#253#248#243#255 + +#254#250#248#255#252#244#239#255#249#233#223#255#247#231#219#255#247#229#217 + +#255#224#162'x'#255#231#194#169#255#182'h5'#255#188'k6'#240#246#223#208#255 + +#232#168'~'#255#252#246#241#255#252#246#241#255#200#140'd'#255#250#241#233 + +#255#251#244#238#255#253#250#247#255#253#249#246#255#250#240#232#255#248#232 + +#221#255#247#230#219#255#225#163'z'#255#239#213#195#255#183'i5'#254#188'k6' + +#216#246#223#209#255#233#170#128#255#254#250#246#255#253#250#246#255#200#140 + +'d'#255#251#243#238#255#251#241#234#255#252#246#242#255#254#251#248#255#252 + +#246#241#255#249#236#226#255#248#231#219#255#238#208#186#255#236#208#189#255 + +#187'p>'#248#188'k6'#155#246#224#209#255#247#224#209#255#254#251#248#255#254 + +#251#247#255#253#249#246#255#252#245#240#255#250#240#234#255#251#242#237#255 + +#253#249#246#255#253#250#247#255#251#241#235#255#248#233#223#254#236#208#189 + +#251#201#137'^'#236#181'i5c'#188'k6q'#188'k6'#144#188'k6'#204#188'k6'#238#188 + +'k6'#250#187'k6'#254#187'k6'#255#187'j6'#255#187'j6'#255#188'l9'#255#189'n;' + +#255#187'm:'#255#187'k8'#239#187'p>'#203#182'i5T'#255#255#255#0#9'NumGlyphs' + ,#2#0#7'OnClick'#7#19'ButtonLoadSaveClick'#14'ParentShowHint'#8#8'ShowHint'#9 + +#8'TabOrder'#2#2#0#0#0#0 +]); diff --git a/ide/compileroptionsdlg_new.pp b/ide/compileroptionsdlg_new.pp new file mode 100644 index 0000000000..b4d4f580cb --- /dev/null +++ b/ide/compileroptionsdlg_new.pp @@ -0,0 +1,1652 @@ +{ /*************************************************************************** + compileroptionsdlg.pp - Lazarus IDE unit + --------------------------------------- + Compiler options form sets the switches for the project + file for the FPC compiler. + + + Initial Revision : Sat May 10 23:15:32 CST 1999 + + + ***************************************************************************/ + + *************************************************************************** + * * + * This source is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This code is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * General Public License for more details. * + * * + * A copy of the GNU General Public License is available on the World * + * Wide Web at . You can also * + * obtain it by writing to the Free Software Foundation, * + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + * * + *************************************************************************** +} + +unit CompilerOptionsDlg_new; + +{$mode objfpc}{$H+} + +interface + +uses + Forms, Classes, Math, LCLProc, SysUtils, InterfaceBase, + ComCtrls, Buttons, StdCtrls, ExtCtrls, + Graphics, LResources, FileUtil, Dialogs, Controls, GraphType, + ProjectIntf, IDEWindowIntf, IDEContextHelpEdit, + PathEditorDlg, LazarusIDEStrConsts, IDEOptionDefs, LazConf, IDEProcs, + IDEImagesIntf, CompilerOptions, ShowCompilerOpts, Project, PackageDefs, + OptionsEditorBase; + +type + { Compiler options form } + + TCheckCompileOptionsMsgLvl = ( + ccomlHints, + ccomlWarning, + ccomlErrors, + ccomlNone + ); + + { TfrmCompilerOptions } + + TfrmCompilerOptions = class(TOptionsEditorForm) + Notebook: TNotebook; + BtnPanel: TPanel; + + { Search Paths Controls } + PathPage: TPage; + + lblOtherUnits: TLabel; + edtOtherUnits: TEdit; + OtherUnitsPathEditBtn: TPathEditorButton; + + lblIncludeFiles: TLabel; + edtIncludeFiles: TEdit; + IncludeFilesPathEditBtn: TPathEditorButton; + + lblOtherSources: TLabel; + edtOtherSources: TEdit; + OtherSourcesPathEditBtn: TPathEditorButton; + + lblLibraries: TLabel; + edtLibraries: TEdit; + LibrariesPathEditBtn: TPathEditorButton; + + lblUnitOutputDir: TLabel; + edtUnitOutputDir: TEdit; + btnUnitOutputDir: TButton; + + lblDebugPath: TLabel; + edtDebugPath: TEdit; + DebugPathEditBtn: TPathEditorButton; + + LCLWidgetTypeLabel: TLabel; + LCLWidgetTypeComboBox: TComboBox; + + { Parsing Controls } + ParsingPage: TPage; + grpAsmStyle: TRadioGroup; + grpSyntaxOptions: TCheckGroup; + + { Code Generation Controls } + CodeGenPage: TPage; + + grpSmartLinkUnit: TGroupBox; + chkSmartLinkUnit: TCheckBox; + + grpChecks: TGroupBox; + chkChecksIO: TCheckBox; + chkChecksRange: TCheckBox; + chkChecksOverflow: TCheckBox; + chkChecksStack: TCheckBox; + + grpHeapSize: TGroupBox; + edtHeapSize: TEdit; + + grpGenerate: TGroupBox; + radGenNormal: TRadioButton; + radGenFaster: TRadioButton; + radGenSmaller: TRadioButton; + + grpTargetPlatform: TGroupBox; + lblTargetOS : TLabel; + TargetOSComboBox: TComboBox; + lblTargetCPU : TLabel; + TargetCPUComboBox: TComboBox; + lblTargeti386Proc : TLabel; + Targeti386ProcComboBox: TComboBox; + + grpOptimizations: TGroupBox; + chkOptVarsInReg: TCheckBox; + chkOptUncertain: TCheckBox; + radOptLevelNone: TRadioButton; + radOptLevel1: TRadioButton; + radOptLevel2: TRadioButton; + radOptLevel3: TRadioButton; + + { Linking Controls } + LinkingPage: TPage; + grpDebugging: TGroupBox; + chkDebugGDB: TCheckBox; + chkDebugDBX: TCheckBox; + chkUseLineInfoUnit: TCheckBox; + chkUseHeaptrc: TCheckBox; + chkUseValgrind: TCheckBox; + chkGenGProfCode: TCheckBox; + chkSymbolsStrip: TCheckBox; + + grpLinkLibraries: TGroupBox; + chkLinkSmart: TCheckBox; + + grpOptions: TGroupBox; + chkOptionsLinkOpt: TCheckBox; + edtOptionsLinkOpt: TEdit; + + TargetSpecificsGrpBox: TGroupBox; + chkWin32GraphicApp: TCheckBox; + + { Messages Controls } + MsgPage: TPage; + grpVerbosity: TCheckGroup; + grpErrorCnt: TGroupBox; + edtErrorCnt: TEdit; + + { 'Other' Controls } + OtherPage: TPage; + grpConfigFile: TGroupBox; + chkConfigFile: TCheckBox; + chkCustomConfigFile: TCheckBox; + edtConfigPath: TEdit; + grpCustomOptions: TGroupBox; + memCustomOptions: TMemo; + + { Inherited Options } + InheritedPage: TPage; + InhSplitter: TSplitter; + InhNoteLabel: TLabel; + InhTreeView: TTreeView; + InhItemMemo: TMemo; + + { Compilation } + CompilationPage: TPage; + + chkCreateMakefile: TCheckBox; + + ExecuteBeforeGroupBox: TGroupBox; + lblRunIfExecBefore: TLabel; + chkExecBeforeCompile: TCheckBox; + chkExecBeforeBuild: TCheckBox; + chkExecBeforeRun: TCheckBox; + ExecuteBeforeCommandLabel: TLabel; + ExecuteBeforeCommandEdit: TEdit; + ExecuteBeforeScanFPCCheckBox: TCheckBox; + ExecuteBeforeScanMakeCheckBox: TCheckBox; + ExecuteBeforeShowAllCheckBox: TCheckBox; + + grpCompiler: TGroupBox; + lblRunIfCompiler: TLabel; + chkCompilerCompile: TCheckBox; + chkCompilerBuild: TCheckBox; + chkCompilerRun: TCheckBox; + lblCompiler: TLabel; + edtCompiler: TEdit; + btnCompiler: TButton; + + ExecuteAfterGroupBox: TGroupBox; + lblRunIfExecAfter: TLabel; + chkExecAfterCompile: TCheckBox; + chkExecAfterBuild: TCheckBox; + chkExecAfterRun: TCheckBox; + ExecuteAfterCommandLabel: TLabel; + ExecuteAfterCommandEdit: TEdit; + ExecuteAfterScanFPCCheckBox: TCheckBox; + ExecuteAfterScanMakeCheckBox: TCheckBox; + ExecuteAfterShowAllCheckBox: TCheckBox; + + { Buttons } + btnShowOptions: TBitBtn; + btnCheck: TBitBtn; + btnLoadSave: TBitBtn; + + procedure ButtonOKClicked(Sender: TObject); + procedure btnTestClicked(Sender: TObject); + procedure ButtonLoadSaveClick(Sender: TObject); + procedure ButtonShowOptionsClicked(Sender: TObject); + procedure FileBrowseBtnClick(Sender: TObject); + procedure FormResize(Sender: TObject); + procedure HelpButtonClick(Sender: TObject); + procedure InhTreeViewSelectionChanged(Sender: TObject); + procedure chkCustomConfigFileClick(Sender: TObject); + procedure PathEditBtnClick(Sender: TObject); + procedure PathEditBtnExecuted(Sender: TObject); + procedure frmCompilerOptionsClose(Sender: TObject; var CloseAction: TCloseAction); + procedure grpOptimizationsResize(Sender: TObject); + private + procedure SetupSearchPathsTab(Page: integer); + procedure SetupParsingTab(Page: integer); + procedure SetupCodeGenerationTab(Page: integer); + procedure SetupLinkingTab(Page: integer); + procedure SetupMessagesTab(Page: integer); + procedure SetupOtherTab(Page: integer); + procedure SetupInheritedTab(Page: integer); + procedure SetupCompilationTab(Page: integer); + procedure SetupButtonBar; + private + FOnImExportCompilerOptions: TNotifyEvent; + FOnTest: TNotifyEvent; + FReadOnly: boolean; + ImageIndexPackage: integer; + ImageIndexRequired: integer; + ImageIndexInherited: integer; + InheritedChildDatas: TList; // list of PInheritedNodeData + procedure SetReadOnly(const AValue: boolean); + procedure UpdateInheritedTab; + procedure ClearInheritedTree; + public + CompilerOpts: TBaseCompilerOptions; + + constructor Create(TheOwner: TComponent); override; + destructor Destroy; override; + + procedure GetCompilerOptions; + procedure GetCompilerOptions(SrcCompilerOptions: TBaseCompilerOptions); + function PutCompilerOptions(CheckAndWarn: TCheckCompileOptionsMsgLvl): boolean; + function PutCompilerOptions(CheckAndWarn: TCheckCompileOptionsMsgLvl; + DestCompilerOptions: TBaseCompilerOptions): boolean; + public + property ReadOnly: boolean read FReadOnly write SetReadOnly; + property OnTest: TNotifyEvent read FOnTest write FOnTest; + property OnImExportCompilerOptions: TNotifyEvent + read FOnImExportCompilerOptions write FOnImExportCompilerOptions; + end; + +implementation + +type + TInheritedNodeData = record + FullText: string; + Option: TInheritedCompilerOption; + end; + PInheritedNodeData = ^TInheritedNodeData; + +{------------------------------------------------------------------------------ + TfrmCompilerOptions Constructor +------------------------------------------------------------------------------} +constructor TfrmCompilerOptions.Create(TheOwner: TComponent); +var + Page: integer; + I: Integer; + Title: String; +begin + DisableAlign; + try + inherited Create(TheOwner); + Caption := dlgCompilerOptions; + + IDEDialogLayoutList.ApplyLayout(Self,550,450); + + ImageIndexPackage := IDEImages.LoadImage(16, 'pkg_package'); + ImageIndexRequired := IDEImages.LoadImage(16, 'pkg_required'); + ImageIndexInherited := IDEImages.LoadImage(16, 'pkg_inherited'); + + Notebook.PageIndex:=0; + Page:=0; + + SetupSearchPathsTab(Page); + inc(Page); + SetupParsingTab(Page); + inc(Page); + SetupCodeGenerationTab(Page); + inc(Page); + SetupLinkingTab(Page); + inc(Page); + SetupMessagesTab(Page); + inc(Page); + SetupOtherTab(Page); + inc(Page); + SetupInheritedTab(Page); + inc(Page); + SetupCompilationTab(Page); + inc(Page); + SetupButtonBar; + + //Indexing items + for i:= 0 to Notebook.PageCount-1 do + begin + Title:=Notebook.Pages[i]; + ScanControlTextsForIndex(Title, Notebook.Page[i]); + end + finally + EnableAlign; + end; +end; + +{------------------------------------------------------------------------------ + TfrmCompilerOptions Destructor +------------------------------------------------------------------------------} +destructor TfrmCompilerOptions.Destroy; +begin + ClearInheritedTree; + inherited Destroy; +end; + +procedure TfrmCompilerOptions.GetCompilerOptions; +begin + GetCompilerOptions(nil); +end; + +{------------------------------------------------------------------------------} +{ TfrmCompilerOptions ButtonOKClicked } +{------------------------------------------------------------------------------} +procedure TfrmCompilerOptions.ButtonOKClicked(Sender: TObject); +begin + // Accept any changes + Assert(False, 'Trace:Accept compiler options changes'); + + { Save the options and hide the dialog } + if not PutCompilerOptions(ccomlErrors) then exit; + ModalResult:=mrOk; +end; + +{------------------------------------------------------------------------------ + TfrmCompilerOptions ButtonCheckClicked +------------------------------------------------------------------------------} +procedure TfrmCompilerOptions.btnTestClicked(Sender: TObject); +begin + // Apply any changes and test + if not PutCompilerOptions(ccomlHints) then exit; + if Assigned(OnTest) then begin + btnCheck.Enabled:=false; + try + OnTest(CompilerOpts); + finally + btnCheck.Enabled:=true; + end; + end; +end; + +{------------------------------------------------------------------------------ + TfrmCompilerOptions ButtonShowOptionsClicked + This function is for testing the MakeOptionsString function only. Remove + this function and its button when the function is working correctly. +------------------------------------------------------------------------------} +procedure TfrmCompilerOptions.ButtonShowOptionsClicked(Sender: TObject); +begin + // Test MakeOptionsString function + if not PutCompilerOptions(ccomlWarning) then exit; + ShowCompilerOptionsDialog(CompilerOpts); +end; + +procedure TfrmCompilerOptions.FileBrowseBtnClick(Sender: TObject); +var + OpenDialog: TOpenDialog; + DefaultFilename: String; + NewFilename: String; +begin + if Sender=btnCompiler then + OpenDialog:=TOpenDialog.Create(Self) + else + OpenDialog:=TSelectDirectoryDialog.Create(Self); + try + if Sender=btnCompiler then begin + OpenDialog.Title:=Format(lisBrowseForCompiler, [GetDefaultCompilerFilename + ]); + DefaultFilename:=FindDefaultCompilerPath; + OpenDialog.Options:=OpenDialog.Options+[ofFileMustExist]; + end else if Sender=btnUnitOutputDir then begin + OpenDialog.Title:=lisUnitOutputDirectory; + DefaultFilename:=''; + OpenDialog.Options:=OpenDialog.Options+[ofPathMustExist]; + end else + exit; + OpenDialog.Filename:=ExtractFilename(DefaultFilename); + if DefaultFilename<>'' then + OpenDialog.InitialDir:=ExtractFilePath(DefaultFilename); + if OpenDialog.Execute then begin + NewFilename:=TrimFilename(OpenDialog.Filename); + if CompilerOpts<>nil then + NewFilename:=CompilerOpts.ShortenPath(NewFilename,false); + if Sender=btnCompiler then begin + edtCompiler.Text:=OpenDialog.Filename; + end else if Sender=btnUnitOutputDir then begin + edtUnitOutputDir.Text:=OpenDialog.Filename; + end; + end; + finally + OpenDialog.Free; + end; +end; + +procedure TfrmCompilerOptions.FormResize(Sender: TObject); +begin +end; + +procedure TfrmCompilerOptions.HelpButtonClick(Sender: TObject); +begin + ShowContextHelpForIDE(Self); +end; + +procedure TfrmCompilerOptions.InhTreeViewSelectionChanged(Sender: TObject); +var + ANode: TTreeNode; + ChildData: PInheritedNodeData; + sl: TStrings; +begin + ANode:=InhTreeView.Selected; + if (ANode=nil) or (ANode.Data=nil) then begin + InhItemMemo.Lines.Text:=lisSelectANode; + end else begin + ChildData:=PInheritedNodeData(ANode.Data); + if ChildData^.Option in icoAllSearchPaths then begin + sl:=SplitString(ChildData^.FullText,';'); + InhItemMemo.Lines.Assign(sl); + sl.Free; + end else + InhItemMemo.Lines.Text:=ChildData^.FullText; + end; +end; + +procedure TfrmCompilerOptions.ButtonLoadSaveClick(Sender: TObject); +begin + if Assigned(OnImExportCompilerOptions) then + OnImExportCompilerOptions(Self); +end; + +{------------------------------------------------------------------------------ + TfrmCompilerOptions GetCompilerOptions +------------------------------------------------------------------------------} +procedure TfrmCompilerOptions.GetCompilerOptions( + SrcCompilerOptions: TBaseCompilerOptions); +var + i: integer; + LCLPlatform: TLCLPlatform; + EnabledLinkerOpts: Boolean; + Options: TBaseCompilerOptions; +begin + if SrcCompilerOptions<>nil then + Options:=SrcCompilerOptions + else + Options:=CompilerOpts; + DisableAlign; + try + EnabledLinkerOpts:=Options.NeedsLinkerOpts; + + { Get the compiler options and apply them to the dialog } + + // paths + edtOtherUnits.Text := Options.OtherUnitFiles; + edtIncludeFiles.Text := Options.IncludePath; + edtLibraries.Text := Options.Libraries; + lblLibraries.Enabled:=EnabledLinkerOpts; + edtOtherSources.Text := Options.SrcPath; + edtUnitOutputDir.Text := Options.UnitOutputDirectory; + edtDebugPath.Text := Options.DebugPath; + + LCLPlatform := DirNameToLCLPlatform(Options.LCLWidgetType); + if CompareText(Options.LCLWidgetType,LCLPlatformDirNames[LCLPlatform])=0 then + LCLWidgetTypeComboBox.ItemIndex := ord(LCLPlatform)+1 + else + LCLWidgetTypeComboBox.ItemIndex := 0; + + // parsing + if (Options.AssemblerStyle in [1,2,3]) then + grpAsmStyle.ItemIndex:=Options.AssemblerStyle + else + grpAsmStyle.ItemIndex:=0; + + with grpSyntaxOptions do + begin + Checked[0] := Options.Delphi2Extensions; + Checked[1] := Options.CStyleOperators; + Checked[2] := Options.IncludeAssertionCode; + Checked[3] := Options.AllowLabel; + Checked[4] := Options.CPPInline; + Checked[5] := Options.CStyleMacros; + Checked[6] := Options.TPCompatible; + Checked[7] := Options.InitConstructor; + Checked[8] := Options.StaticKeyword; + Checked[9] := Options.DelphiCompat; + Checked[10] := Options.UseAnsiStrings; + Checked[11] := Options.GPCCompat; + end; + + // code generation + chkSmartLinkUnit.Checked := Options.SmartLinkUnit; + + chkChecksIO.Checked := Options.IOChecks; + chkChecksRange.Checked := Options.RangeChecks; + chkChecksOverflow.Checked := Options.OverflowChecks; + chkChecksStack.Checked := Options.StackChecks; + + grpHeapSize.Enabled:=EnabledLinkerOpts; + edtHeapSize.Text := IntToStr(Options.HeapSize); + + case Options.Generate of + cgcNormalCode: radGenNormal.Checked := true; + cgcFasterCode: radGenFaster.Checked := true; + cgcSmallerCode: radGenSmaller.Checked := true; + end; + + i:=TargetOSComboBox.Items.IndexOf(Options.TargetOS); + if i<0 then i:=0; // 0 is default + TargetOSComboBox.ItemIndex:=i; + TargetOSComboBox.Text:=Options.TargetOS; + i:=TargetCPUComboBox.Items.IndexOf(Options.TargetCPU); + if i<0 then i:=0; // 0 is default + TargetCPUComboBox.ItemIndex:=i; + TargetCPUComboBox.Text:=Options.TargetCPU; + + case Options.TargetProcessor of + 1..3: Targeti386ProcComboBox.ItemIndex:=Options.TargetProcessor; + else + Targeti386ProcComboBox.ItemIndex := 0; + end; + + chkOptVarsInReg.Checked := Options.VariablesInRegisters; + chkOptUncertain.Checked := Options.UncertainOptimizations; + + case Options.OptimizationLevel of + 1: radOptLevel1.Checked := true; + 2: radOptLevel2.Checked := true; + 3: radOptLevel3.Checked := true; + else + radOptLevelNone.Checked := true; + end; + + // linking + chkDebugGDB.Checked := Options.GenerateDebugInfo; + chkDebugDBX.Checked := Options.GenerateDebugDBX; + chkUseLineInfoUnit.Checked := Options.UseLineInfoUnit; + chkUseHeaptrc.Checked := Options.UseHeaptrc; + chkUseValgrind.Checked := Options.UseValgrind; + chkGenGProfCode.Checked := Options.GenGProfCode; + chkSymbolsStrip.Checked := Options.StripSymbols; + chkSymbolsStrip.Enabled:=EnabledLinkerOpts; + + chkLinkSmart.Checked := Options.LinkSmart; + grpLinkLibraries.Enabled:=EnabledLinkerOpts; + + chkOptionsLinkOpt.Checked := Options.PassLinkerOptions; + edtOptionsLinkOpt.Text := Options.LinkerOptions; + chkWin32GraphicApp.Checked := Options.Win32GraphicApp; + chkWin32GraphicApp.Enabled:=EnabledLinkerOpts; + grpOptions.Enabled:=EnabledLinkerOpts; + + // messages + with grpVerbosity do + begin + Checked[0] := Options.ShowErrors; + Checked[1] := Options.ShowHintsForSenderNotUsed; + Checked[2] := Options.ShowWarn; + Checked[3] := Options.ShowDebugInfo; + Checked[4] := Options.ShowNotes; + Checked[5] := Options.ShowUsedFiles; + Checked[6] := Options.ShowHints; + Checked[7] := Options.ShowTriedFiles; + Checked[8] := Options.ShowGenInfo; + Checked[9] := Options.ShowDefMacros; + Checked[10] := Options.ShowLineNum; + Checked[11] := Options.ShowCompProc; + Checked[12] := Options.ShowAllProcsOnError; + Checked[13] := Options.ShowCond; + Checked[14] := Options.ShowAll; + Checked[15] := Options.ShowExecInfo; + Checked[16] := Options.ShowSummary; + Checked[17] := Options.ShowNothing; + Checked[18] := Options.ShowHintsForUnusedUnitsInMainSrc; + Checked[19] := Options.WriteFPCLogo; + end; + + // other + chkConfigFile.Checked := not Options.DontUseConfigFile; + chkCustomConfigFile.Checked := Options.CustomConfigFile; + edtConfigPath.Enabled := chkCustomConfigFile.Checked; + edtConfigPath.Text := Options.ConfigFilePath; + memCustomOptions.Text := Options.CustomOptions; + + edtErrorCnt.Text := IntToStr(Options.StopAfterErrCount); + + // inherited tab + UpdateInheritedTab; + + // compilation + chkCreateMakefile.Checked:=Options.CreateMakefileOnBuild; + + ExecuteBeforeCommandEdit.Text:=Options.ExecuteBefore.Command; + ExecuteBeforeScanFPCCheckBox.Checked:=Options.ExecuteBefore.ScanForFPCMessages; + ExecuteBeforeScanMakeCheckBox.Checked:= + Options.ExecuteBefore.ScanForMakeMessages; + ExecuteBeforeShowAllCheckBox.Checked:=Options.ExecuteBefore.ShowAllMessages; + if Options.ExecuteBefore is TProjectCompilationToolOptions + then with TProjectCompilationToolOptions(Options.ExecuteBefore) do begin + chkExecBeforeCompile.Checked := crCompile in CompileReasons; + chkExecBeforeBuild.Checked := crBuild in CompileReasons; + chkExecBeforeRun.Checked := crRun in CompileReasons; + lblRunIfExecBefore.Visible := True; + chkExecBeforeCompile.Visible := True; + chkExecBeforeBuild.Visible := True; + chkExecBeforeRun.Visible := True; + end + else begin + lblRunIfExecBefore.Visible := False; + chkExecBeforeCompile.Visible := False; + chkExecBeforeBuild.Visible := False; + chkExecBeforeRun.Visible := False; + end; + + edtCompiler.Text := Options.CompilerPath; + if Options is TProjectCompilerOptions + then with TProjectCompilerOptions(Options) do begin + lblRunIfCompiler.Visible := True; + chkCompilerCompile.AnchorToNeighbour(akLeft,30,lblRunIfCompiler); + chkCompilerCompile.Checked := crCompile in CompileReasons; + chkCompilerBuild.Checked := crBuild in CompileReasons; + chkCompilerRun.Checked := crRun in CompileReasons; + chkCompilerCompile.Caption := lisCOCallOnCompile; + chkCompilerCompile.Visible := True; + chkCompilerBuild.Visible := True; + chkCompilerRun.Visible := True; + lblCompiler.AnchorToNeighbour(akTop,6,lblRunIfCompiler); + end + else if Options is TPkgCompilerOptions + then begin + lblRunIfCompiler.Visible := False; + chkCompilerCompile.AnchorParallel(akTop,6,chkCompilerCompile.Parent); + chkCompilerCompile.AnchorParallel(akLeft,6,chkCompilerCompile.Parent); + chkCompilerCompile.Visible := True; + chkCompilerCompile.Caption := lisCOSkipCallingCompiler; + chkCompilerCompile.Checked := TPkgCompilerOptions(Options).SkipCompiler; + chkCompilerBuild.Visible := False; + chkCompilerRun.Visible := False; + lblCompiler.AnchorToNeighbour(akTop,6,chkCompilerCompile); + end + else begin + lblRunIfCompiler.Visible := False; + chkCompilerCompile.Visible := False; + chkCompilerBuild.Visible := False; + chkCompilerRun.Visible := False; + lblCompiler.AnchorParallel(akTop,6,lblCompiler.Parent); + end; + + ExecuteAfterCommandEdit.Text:=Options.ExecuteAfter.Command; + ExecuteAfterScanFPCCheckBox.Checked:=Options.ExecuteAfter.ScanForFPCMessages; + ExecuteAfterScanMakeCheckBox.Checked:=Options.ExecuteAfter.ScanForMakeMessages; + ExecuteAfterShowAllCheckBox.Checked:=Options.ExecuteAfter.ShowAllMessages; + if Options.ExecuteAfter is TProjectCompilationToolOptions + then with TProjectCompilationToolOptions(Options.ExecuteAfter) do begin + chkExecAfterCompile.Checked := crCompile in CompileReasons; + chkExecAfterBuild.Checked := crBuild in CompileReasons; + chkExecAfterRun.Checked := crRun in CompileReasons; + lblRunIfExecAfter.Visible := True; + chkExecAfterCompile.Visible := True; + chkExecAfterBuild.Visible := True; + chkExecAfterRun.Visible := True; + end + else begin + lblRunIfExecAfter.Visible := False; + chkExecAfterCompile.Visible := False; + chkExecAfterBuild.Visible := False; + chkExecAfterRun.Visible := False; + end; + finally + EnableAlign; + end; +end; + +{------------------------------------------------------------------------------ + TfrmCompilerOptions PutCompilerOptions +------------------------------------------------------------------------------} +function TfrmCompilerOptions.PutCompilerOptions( + CheckAndWarn: TCheckCompileOptionsMsgLvl; + DestCompilerOptions: TBaseCompilerOptions): boolean; + + function MakeCompileReasons(const ACompile, ABuild, ARun: TCheckBox): TCompileReasons; + begin + Result := []; + if ACompile.Checked then Include(Result, crCompile); + if ABuild.Checked then Include(Result, crBuild); + if ARun.Checked then Include(Result, crRun); + end; + + function CheckSearchPath(const Context, ExpandedPath: string): boolean; + var + CurPath: String; + p: Integer; + begin + Result:=false; + if ord(CheckAndWarn)<=ord(ccomlHints) then begin + if System.Pos('*',ExpandedPath)>0 then begin + if MessageDlg('Warning','The '+Context+' contains a star * character.'#13 + +'Lazarus uses this as normal character and does not expand them as file mask.', + mtWarning,[mbOk,mbCancel],0) <> mrOk then exit; + end; + p:=0; + repeat + //DebugLn(['CheckSearchPath ',ExpandedPath,' ',p,' ',length(ExpandedPath)]); + CurPath:=GetNextDirectoryInSearchPath(ExpandedPath,p); + if CurPath<>'' then begin + if not DirPathExistsCached(CurPath) then begin + if MessageDlg('Warning','The '+Context+' contains a not existing directory:'#13 + +CurPath, + mtWarning,[mbIgnore,mbCancel],0) <> mrIgnore then exit; + end; + end; + until p>length(ExpandedPath); + end; + Result:=true; + end; + +var + code: LongInt; + hs: LongInt; + i: integer; + OldCompOpts: TBaseCompilerOptions; + NewTargetOS, + NewTargetCPU: String; + Options: TBaseCompilerOptions; + NewDontUseConfigFile: Boolean; + NewCustomConfigFile: Boolean; + NewConfigFilePath: String; + AdditionalConfig: String; +begin + Result:=true; + + // Put the compiler options from the dialog into the TCompilerOptions class + if DestCompilerOptions<>nil then + Options:=DestCompilerOptions + else + Options:=CompilerOpts; + if ReadOnly and (Options=CompilerOpts) then exit; + + NewDontUseConfigFile:=not chkConfigFile.Checked; + NewCustomConfigFile:=chkCustomConfigFile.Checked; + NewConfigFilePath:=edtConfigPath.Text; + + if ord(CheckAndWarn)<=ord(ccomlWarning) then begin + if ((NewDontUseConfigFile<>Options.DontUseConfigFile) + or (NewCustomConfigFile<>Options.CustomConfigFile) + or (NewConfigFilePath<>Options.ConfigFilePath)) + and (not NewDontUseConfigFile) and NewCustomConfigFile + then begin + // config file options changed + // and both additional and standard config files are used + AdditionalConfig:=ExtractFilename(edtConfigPath.Text); + if (CompareFileNames(AdditionalConfig,'fpc.cfg')=0) + or (CompareFileNames(AdditionalConfig,'ppc386.cfg')=0) + then begin + if MessageDlg(lisCOAmbiguousAdditionalCompilerConfigFile, + Format(lisCOClickOKIfAreSureToDoThat, [BreakString( + lisCOWarningTheAdditionalCompilerConfigFileHasTheSameNa, + 60, 0), #13#13]), + mtWarning,[mbOk,mbCancel],0)<>mrOk + then begin + Result:=false; + exit; + end; + end; + end; + end; + + OldCompOpts := TBaseCompilerOptionsClass(Options.ClassType).Create(nil); + OldCompOpts.Assign(Options); + + // paths + Options.IncludePath := edtIncludeFiles.Text; + if not CheckSearchPath('include search path',Options.GetIncludePath(false)) then + exit(false); + Options.Libraries := edtLibraries.Text; + if not CheckSearchPath('library search path',Options.GetLibraryPath(false)) then + exit(false); + Options.OtherUnitFiles := edtOtherUnits.Text; + if not CheckSearchPath('unit search path',Options.GetUnitPath(false)) then + exit(false); + Options.SrcPath := edtOtherSources.Text; + if not CheckSearchPath('source search path',Options.GetSrcPath(false)) then + exit(false); + Options.UnitOutputDirectory := edtUnitOutputDir.Text; + Options.DebugPath := edtDebugPath.Text; + if not CheckSearchPath('debugger search path', + Options.GetParsedPath(pcosDebugPath,icoNone,false)) + then + exit(false); + + i:=LCLWidgetTypeComboBox.Itemindex; + if i<=0 then + Options.LCLWidgetType:='' + else + Options.LCLWidgetType:= LCLPlatformDirNames[TLCLPlatform(i-1)]; + + // parsing; + Options.AssemblerStyle := grpAsmStyle.ItemIndex; + + with grpSyntaxOptions do + begin + Options.Delphi2Extensions := Checked[0]; + Options.CStyleOperators := Checked[1]; + Options.IncludeAssertionCode := Checked[2]; + Options.AllowLabel := Checked[3]; + Options.CPPInline := Checked[4]; + Options.CStyleMacros := Checked[5]; + Options.TPCompatible := Checked[6]; + Options.InitConstructor := Checked[7]; + Options.StaticKeyword := Checked[8]; + Options.DelphiCompat := Checked[9]; + Options.UseAnsiStrings := Checked[10]; + Options.GPCCompat := Checked[11]; + end; + + // code generation + Options.SmartLinkUnit := chkSmartLinkUnit.Checked; + + Options.IOChecks := chkChecksIO.Checked; + Options.RangeChecks := chkChecksRange.Checked; + Options.OverflowChecks := chkChecksOverflow.Checked; + Options.StackChecks := chkChecksStack.Checked; + + Val(edtHeapSize.Text, hs, code); + if (code <> 0) then + Options.HeapSize := 0 + else + Options.HeapSize := hs; + + if (radGenFaster.Checked) then + Options.Generate := cgcFasterCode + else if (radGenSmaller.Checked) then + Options.Generate := cgcSmallerCode + else + Options.Generate := cgcNormalCode; + + NewTargetOS:=TargetOSComboBox.Text; + if TargetOSComboBox.Items.IndexOf(NewTargetOS)<=0 then + NewTargetOS:=''; + Options.TargetOS:=NewTargetOS; + + NewTargetCPU:=TargetCPUComboBox.Text; + if TargetCPUComboBox.Items.IndexOf(NewTargetCPU)<=0 then + NewTargetCPU:=''; + Options.TargetCPU:=NewTargetCPU; + + Options.TargetProcessor := Targeti386ProcComboBox.ItemIndex; + Options.VariablesInRegisters := chkOptVarsInReg.Checked; + Options.UncertainOptimizations := chkOptUncertain.Checked; + + if (radOptLevel1.Checked) then + Options.OptimizationLevel := 1 + else if (radOptLevel2.Checked) then + Options.OptimizationLevel := 2 + else if (radOptLevel3.Checked) then + Options.OptimizationLevel := 3 + else + Options.OptimizationLevel := 0; + + // linking + Options.GenerateDebugInfo := chkDebugGDB.Checked; + Options.GenerateDebugDBX := chkDebugDBX.Checked; + Options.UseLineInfoUnit := chkUseLineInfoUnit.Checked; + Options.UseHeaptrc := chkUseHeaptrc.Checked; + Options.UseValgrind := chkUseValgrind.Checked; + Options.GenGProfCode := chkGenGProfCode.Checked; + Options.StripSymbols := chkSymbolsStrip.Checked; + + Options.PassLinkerOptions := chkOptionsLinkOpt.Checked; + Options.LinkerOptions := edtOptionsLinkOpt.Text; + Options.Win32GraphicApp := chkWin32GraphicApp.Checked; + Options.LinkSmart := chkLinkSmart.Checked; + + // messages + with grpVerbosity do + begin + Options.ShowErrors := Checked[0]; + Options.ShowHintsForSenderNotUsed := Checked[1]; + Options.ShowWarn := Checked[2]; + Options.ShowDebugInfo := Checked[3]; + Options.ShowNotes := Checked[4]; + Options.ShowUsedFiles := Checked[5]; + Options.ShowHints := Checked[6]; + Options.ShowTriedFiles := Checked[7]; + Options.ShowGenInfo := Checked[8]; + Options.ShowDefMacros := Checked[9]; + Options.ShowLineNum := Checked[10]; + Options.ShowCompProc := Checked[11]; + Options.ShowAllProcsOnError := Checked[12]; + Options.ShowCond := Checked[13]; + Options.ShowAll := Checked[14]; + Options.ShowExecInfo := Checked[15]; + Options.ShowSummary := Checked[16]; + Options.ShowNothing := Checked[17]; + Options.ShowHintsForUnusedUnitsInMainSrc := Checked[18]; + Options.WriteFPCLogo := Checked[19]; + end; + + // other + Options.DontUseConfigFile := not chkConfigFile.Checked; + Options.CustomConfigFile := chkCustomConfigFile.Checked; + Options.ConfigFilePath := edtConfigPath.Text; + Options.CustomOptions := memCustomOptions.Text; + + Options.StopAfterErrCount := StrToIntDef(edtErrorCnt.Text,1); + + // compilation + Options.CreateMakefileOnBuild := chkCreateMakefile.Checked; + + Options.ExecuteBefore.Command := ExecuteBeforeCommandEdit.Text; + Options.ExecuteBefore.ScanForFPCMessages := + ExecuteBeforeScanFPCCheckBox.Checked; + Options.ExecuteBefore.ScanForMakeMessages := + ExecuteBeforeScanMakeCheckBox.Checked; + Options.ExecuteBefore.ShowAllMessages:=ExecuteBeforeShowAllCheckBox.Checked; + if Options.ExecuteBefore is TProjectCompilationToolOptions + then begin + TProjectCompilationToolOptions(Options.ExecuteBefore).CompileReasons := + MakeCompileReasons( + chkExecBeforeCompile, + chkExecBeforeBuild, + chkExecBeforeRun + ); + end; + + Options.CompilerPath := edtCompiler.Text; + if Options is TProjectCompilerOptions + then begin + TProjectCompilerOptions(Options).CompileReasons := MakeCompileReasons( + chkCompilerCompile, + chkCompilerBuild, + chkCompilerRun + ); + end + else if Options is TPkgCompilerOptions + then begin + TPkgCompilerOptions(Options).SkipCompiler := chkCompilerCompile.Checked; + end; + + Options.ExecuteAfter.Command := ExecuteAfterCommandEdit.Text; + Options.ExecuteAfter.ScanForFPCMessages := + ExecuteAfterScanFPCCheckBox.Checked; + Options.ExecuteAfter.ScanForMakeMessages := + ExecuteAfterScanMakeCheckBox.Checked; + Options.ExecuteAfter.ShowAllMessages:=ExecuteAfterShowAllCheckBox.Checked; + if Options.ExecuteAfter is TProjectCompilationToolOptions + then begin + TProjectCompilationToolOptions(Options.ExecuteAfter).CompileReasons := + MakeCompileReasons( + chkExecAfterCompile, + chkExecAfterBuild, + chkExecAfterRun + ); + end; + + // check for change and save + if not OldCompOpts.IsEqual(Options) then begin + Options.Modified:=true; + IncreaseCompilerParseStamp; + end; + OldCompOpts.Free; +end; + +function TfrmCompilerOptions.PutCompilerOptions( + CheckAndWarn: TCheckCompileOptionsMsgLvl): boolean; +begin + Result:=PutCompilerOptions(CheckAndWarn,nil); +end; + +procedure TfrmCompilerOptions.UpdateInheritedTab; +var + OptionsList: TFPList; + i: Integer; + AncestorOptions: TAdditionalCompilerOptions; + AncestorNode: TTreeNode; + + procedure AddChildNode(const NewNodeName, Value: string; + Option: TInheritedCompilerOption); + var + VisibleValue: String; + ChildNode: TTreeNode; + ChildData: PInheritedNodeData; + begin + if Value='' then exit; + New(ChildData); + ChildData^.FullText:=Value; + ChildData^.Option:=Option; + if InheritedChildDatas=nil then InheritedChildDatas:=TList.Create; + InheritedChildDatas.Add(ChildData); + + if length(Value)>100 then + VisibleValue:=copy(Value,1,100)+'[...]' + else + VisibleValue:=Value; + ChildNode:=InhTreeView.Items.AddChildObject(AncestorNode, + NewNodeName+' = "'+VisibleValue+'"',ChildData); + ChildNode.ImageIndex:=ImageIndexRequired; + ChildNode.SelectedIndex:=ChildNode.ImageIndex; + end; + +begin + OptionsList:=nil; + CompilerOpts.GetInheritedCompilerOptions(OptionsList); + InhTreeView.BeginUpdate; + ClearInheritedTree; + if OptionsList<>nil then begin + // add All node + AncestorNode:=InhTreeView.Items.Add(nil,'All inherited options'); + AncestorNode.ImageIndex:=ImageIndexInherited; + AncestorNode.SelectedIndex:=AncestorNode.ImageIndex; + with CompilerOpts do begin + AddChildNode('unit path', + GetInheritedOption(icoUnitPath,true),icoUnitPath); + AddChildNode('include path', + GetInheritedOption(icoIncludePath,true),icoIncludePath); + AddChildNode('object path', + GetInheritedOption(icoObjectPath,true),icoObjectPath); + AddChildNode('library path', + GetInheritedOption(icoLibraryPath,true),icoLibraryPath); + AddChildNode('linker options',GetInheritedOption(icoLinkerOptions,true), + icoLinkerOptions); + AddChildNode('custom options',GetInheritedOption(icoCustomOptions,true), + icoCustomOptions); + end; + AncestorNode.Expanded:=true; + // add detail nodes + for i:=0 to OptionsList.Count-1 do begin + AncestorOptions:=TAdditionalCompilerOptions(OptionsList[i]); + AncestorNode:=InhTreeView.Items.Add(nil,''); + AncestorNode.Text:=AncestorOptions.GetOwnerName; + AncestorNode.ImageIndex:=ImageIndexPackage; + AncestorNode.SelectedIndex:=AncestorNode.ImageIndex; + with AncestorOptions.ParsedOpts do begin + AddChildNode(lisunitPath, + CreateRelativeSearchPath(GetParsedValue(pcosUnitPath), + CompilerOpts.BaseDirectory), + icoUnitPath); + AddChildNode(lisincludePath, + CreateRelativeSearchPath(GetParsedValue(pcosIncludePath), + CompilerOpts.BaseDirectory), + icoIncludePath); + AddChildNode(lisobjectPath, + CreateRelativeSearchPath(GetParsedValue(pcosObjectPath), + CompilerOpts.BaseDirectory), + icoObjectPath); + AddChildNode(lislibraryPath, + CreateRelativeSearchPath(GetParsedValue(pcosLibraryPath), + CompilerOpts.BaseDirectory), + icoLibraryPath); + AddChildNode(lislinkerOptions, GetParsedValue(pcosLinkerOptions), + icoLinkerOptions); + AddChildNode(liscustomOptions, GetParsedValue(pcosCustomOptions), + icoCustomOptions); + end; + AncestorNode.Expanded:=true; + end; + OptionsList.Free; + end else begin + InhTreeView.Items.Add(nil, lisNoCompilerOptionsInherited); + end; + InhTreeView.EndUpdate; +end; + +procedure TfrmCompilerOptions.ClearInheritedTree; +var + i: Integer; + ChildData: PInheritedNodeData; +begin + InhTreeView.BeginUpdate; + // dispose all child data + if InheritedChildDatas<>nil then begin + for i:=0 to InheritedChildDatas.Count-1 do begin + ChildData:=PInheritedNodeData(InheritedChildDatas[i]); + Dispose(ChildData); + end; + InheritedChildDatas.Free; + InheritedChildDatas:=nil; + end; + InhTreeView.Items.Clear; + InhTreeView.EndUpdate; +end; + +{------------------------------------------------------------------------------ + TfrmCompilerOptions SetupParsingTab +------------------------------------------------------------------------------} +procedure TfrmCompilerOptions.SetupParsingTab(Page: integer); +begin + Notebook.Page[Page].Caption:= dlgCOParsing; + + // Setup the Parsing Tab + with grpAsmStyle do begin + Caption := dlgCOAsmStyle+' (-R)'; + + with Items do begin + BeginUpdate; + Add(dlgAssemblerDefault); + Add('Intel'); + Add('AT&&T'); + EndUpdate; + end; + end; + + with grpSyntaxOptions do begin + AutoSize:=true; + Caption := dlgSyntaxOptions; + + Items.Add(dlgDelphi2Ext+' (-S2)'); + Items.Add(dlgCOCOps+' (-Sc)'); + Items.Add(dlgAssertCode+' (-Sa)'); + Items.Add(dlgLabelGoto+' (-Sg)'); + Items.Add(dlgCppInline+' (-Si)'); + Items.Add(dlgCMacro+' (-Sm)'); + Items.Add(dlgBP7Cptb+' (-So)'); + Items.Add(dlgInitDoneOnly+' (-Ss)'); + Items.Add(dlgStaticKeyword+' (-St)'); + Items.Add(dlgDeplhiComp+' (-Sd)'); + Items.Add(dlgCOAnsiStr+' (-Sh)'); + Items.Add(dlgGPCComp+' (-Sp)'); + end; +end; + + +{------------------------------------------------------------------------------ + TfrmCompilerOptions SetupCodeGenerationTab +------------------------------------------------------------------------------} +procedure TfrmCompilerOptions.SetupCodeGenerationTab(Page: integer); +begin + // Setup the Code Generation Tab + NoteBook.Page[Page].Caption:= dlgCodeGeneration; + + grpSmartLinkUnit.Caption := dlgCOUnitStyle; + chkSmartLinkUnit.Caption := dlgCOSmartLinkable + ' (-CX)'; + + grpChecks.Caption := dlgCOChecks; + chkChecksIO.Caption := 'I/O (-Ci)'; + chkChecksRange.Caption := dlgCORange+' (-Cr)'; + chkChecksOverflow.Caption := dlgCOOverflow+' (-Co)'; + chkChecksStack.Caption := dlgCOStack+' (-Ct)'; + + grpHeapSize.Caption := dlgHeapSize +' (-Ch):'; + edtHeapSize.Text := ''; + + grpGenerate.Caption := dlgCOGenerate; + radGenNormal.Caption := dlgCONormal+' (none)'; + radGenFaster.Caption := dlgCOFast+' (-OG)'; + radGenSmaller.Caption := dlgCOSmaller+' (-Og)'; + + grpTargetPlatform.Caption := dlgTargetPlatform; + lblTargetOS.Caption := dlgTargetOS+' (-T)'; + + with TargetOSComboBox do + begin + with Items do begin + Add('('+rsiwpDefault+')'); + Add('Darwin'); + Add('FreeBSD'); + Add('Linux'); + Add('NetBSD'); + Add('OpenBSD'); + Add('Solaris'); + Add('Win32'); + Add('Win64'); + Add('WinCE'); + //Add('go32v2'); + //Add('os2'); + //Add('beos'); + //Add('qnx'); + //Add('netware'); + //Add('wdosx'); + //Add('emx'); + //Add('watcom'); + //Add('netwlibc'); + //Add('amiga'); + //Add('atari'); + //Add('palmos'); + //Add('macos'); + //Add('morphos'); + end; + ItemIndex:=0; + end; + + lblTargetCPU.Caption :=dlgTargetCPU+' (-P)'; + + with TargetCPUComboBox do begin + with Items do begin + Add('('+rsiwpDefault+')'); + Add('arm'); + Add('i386'); + Add('m68k'); + Add('powerpc'); + Add('sparc'); + Add('x86_64'); + end; + ItemIndex:=0; + end; + + lblTargeti386Proc.Caption := dlgTargetProc; + + with Targeti386ProcComboBox do begin + with Items do begin + Add('('+rsiwpDefault+')'); + Add('386/486 (-Op1)'); + Add('Pentium/Pentium MMX (-Op2)'); + Add('Pentium Pro/Pentium II/C6x86/K6 (-Op3)'); + end; + ItemIndex:=0; + end; + + grpOptimizations.Caption := dlgOptimiz; + radOptLevelNone.Caption := dlgLevelNoneOpt+' (none)'; + radOptLevel1.Caption := dlgLevel1Opt+' (-O1)'; + radOptLevel2.Caption := dlgLevel2Opt+' (-O2)'; + radOptLevel3.Caption := dlgLevel3Opt+' (-O3)'; + chkOptVarsInReg.Caption := dlgCOKeepVarsReg+' (-Or)'; + chkOptUncertain.Caption := dlgUncertOpt+' (-Ou)'; +end; + +{------------------------------------------------------------------------------ + TfrmCompilerOptions SetupLinkingTab +------------------------------------------------------------------------------} +procedure TfrmCompilerOptions.SetupLinkingTab(Page: integer); +begin + NoteBook.Page[Page].Caption:= dlgCOLinking; + + // Setup the Linking Tab + with grpDebugging do begin + AutoSize:=true; + Caption := dlgCODebugging; + end; + + chkDebugGDB.Caption := dlgCOGDB+' (-g)'; + chkDebugDBX.Caption := dlgCODBX+' (-gd)'; + chkUseLineInfoUnit.Caption := dlgLNumsBct+' (-gl)'; + chkUseHeaptrc.Caption := dlgCOHeaptrc+' (-gh)'; + chkUseValgrind.Caption := dlgCOValgrind+' (-gv)'; + chkGenGProfCode.Caption := dlgGPROF+' (-pg)'; + chkSymbolsStrip.Caption := dlgCOStrip+' (-Xs)'; + + grpLinkLibraries.Caption := dlgLinkLibraries; + chkLinkSmart.Caption := dlgLinkSmart+' (-XX)'; + + TargetSpecificsGrpBox.Caption := lisCOTargetOSSpecificOptions; + chkWin32GraphicApp.Caption := dlgWin32GUIApp+' (-WG)'; + + grpOptions.Caption := dlgCOOpts+' (-k)'; + chkOptionsLinkOpt.Caption := dlgPassOptsLinker; + edtOptionsLinkOpt.Text := ''; +end; + +{------------------------------------------------------------------------------ + TfrmCompilerOptions SetupMessagesTab +------------------------------------------------------------------------------} +procedure TfrmCompilerOptions.SetupMessagesTab(Page: integer); +begin + // Setup the Messages Tab + NoteBook.Page[Page].Caption:= dlgCOMessages; + + with grpVerbosity do begin + Caption := dlgVerbosity; + AutoSize:=true; + + Items.Add(dlgCOShowErr+' (-ve)'); + Items.Add(dlgHintsParameterSenderNotUsed+' (none)'); + Items.Add(dlgShowWarnings+' (-vw)'); + Items.Add(dlgShowDebugInfo+' (-vd)'); + Items.Add(dlgShowNotes+' (-vn)'); + Items.Add(dlgShowUsedFiles+' (-vu)'); + Items.Add(dlgShowHint+' (-vh)'); + Items.Add(dlgShowTriedFiles+' (-vt)'); + Items.Add(dlgShowGeneralInfo+' (-vi)'); + Items.Add(dlgShowDefinedMacros+' (-vm)'); + Items.Add(dlgShowCompilingLineNumbers+' (-vl)'); + Items.Add(dlgShowCompiledProcedures+' (-vp)'); + Items.Add(dlgShowProcsError+' (-vb)'); + Items.Add(dlgShowConditionals+' (-vc)'); + Items.Add(dlgShowEverything+' (-va)'); + Items.Add(dlgShowExecutableInfo+' (-vx)'); + Items.Add(dlgShowSummary+' (none)'); + Items.Add(dlgShowNothing+' (-v0)'); + Items.Add(dlgHintsUnused+' (none)'); + Items.Add(dlgWriteFPCLogo+' (-l)'); + end; + + grpErrorCnt.Caption := dlgStopAfterNrErr+' (-Se)'; + edtErrorCnt.Text := ''; +end; + +procedure TfrmCompilerOptions.SetupOtherTab(Page: integer); +begin + NoteBook.Page[Page].Caption:= dlgCOOther; + + grpConfigFile.Caption := dlgConfigFiles; + chkConfigFile.Caption := dlgUseFpcCfg+' (If not checked: -n)'; + chkCustomConfigFile.Caption := dlgUseCustomConfig+' (@)'; + edtConfigPath.Text := ''; + + grpCustomOptions.Caption:=lisCustomOptions2; +end; + +{------------------------------------------------------------------------------ + procedure TfrmCompilerOptions.SetupInheritedTab(Page: integer); +------------------------------------------------------------------------------} +procedure TfrmCompilerOptions.SetupInheritedTab(Page: integer); +begin + NoteBook.Page[Page].Caption:= dlgCOInherited; + + InhNoteLabel.Caption:=lisAdditionalCompilerOptionsInheritedFromPackages; + + with InhTreeView do begin + Options:=Options+[tvoReadOnly, tvoRightClickSelect, tvoShowRoot, + tvoKeepCollapsedNodes]; + Images := IDEImages.Images_16; + end; + + InhItemMemo.Text:=lisSelectANode; +end; + +procedure TfrmCompilerOptions.SetupCompilationTab(Page: integer); +// the real edit width is calculated in the groupbox resize +// here the controls are given initial sizes to avoid jumpy controls + +begin + NoteBook.Page[Page].Caption:= dlgCOCompilation; + + chkCreateMakefile.Caption := dlgCOCreateMakefile; + + ExecuteAfterGroupBox.Caption := lisCOExecuteBefore; + chkExecBeforeBuild.Caption := lisCOCallOnBuild; + chkExecBeforeCompile.Caption := lisCOCallOnCompile; + chkExecBeforeRun.Caption := lisCOCallOnRun; + ExecuteBeforeCommandEdit.Text:=''; + ExecuteBeforeCommandLabel.Caption:=lisCOCommand; + ExecuteBeforeScanFPCCheckBox.Caption := lisCOScanForFPCMessages; + ExecuteBeforeScanMakeCheckBox.Caption := lisCOScanForMakeMessages; + ExecuteBeforeShowAllCheckBox.Caption := lisCOShowAllMessages; + lblRunIfExecBefore.Caption := lisCOCallOn; + + grpCompiler.Caption := lisCompiler; + chkCompilerBuild.Caption := lisCOCallOnBuild; + chkCompilerBuild.Checked := True; + chkCompilerCompile.Caption := lisCOCallOnCompile; + chkCompilerCompile.Checked := True; + chkCompilerRun.Caption := lisCOCallOnRun; + chkCompilerRun.Checked := True; + edtCompiler.Text:=''; + lblCompiler.Caption:=lisCOCommand; + lblRunIfCompiler.Caption := lisCOCallOn; + + ExecuteBeforeGroupBox.Caption := lisCOExecuteAfter; + chkExecAfterBuild.Caption := lisCOCallOnBuild; + chkExecAfterCompile.Caption := lisCOCallOnCompile; + chkExecAfterRun.Caption := lisCOCallOnRun; + ExecuteAfterCommandEdit.Text:=''; + ExecuteAfterCommandLabel.Caption:=lisCOCommand; + ExecuteAfterScanFPCCheckBox.Caption := lisCOScanForFPCMessages; + ExecuteAfterScanMakeCheckBox.Caption := lisCOScanForMakeMessages; + ExecuteAfterShowAllCheckBox.Caption := lisCOShowAllMessages; + lblRunIfExecAfter.Caption := lisCOCallOn; +end; + +{------------------------------------------------------------------------------ + TfrmCompilerOptions SetupSearchPathsTab +------------------------------------------------------------------------------} +procedure TfrmCompilerOptions.SetupSearchPathsTab(Page: integer); +var + LCLInterface: TLCLPlatform; +begin + // Setup the Search Paths Tab + NoteBook.Page[Page].Caption:= dlgSearchPaths; + + lblOtherUnits.Caption := dlgOtherUnitFiles; + OtherUnitsPathEditBtn:=TPathEditorButton.Create(Self); + with OtherUnitsPathEditBtn do begin + Name:='OtherUnitsPathEditBtn'; + Caption:='...'; + Anchors:=[akRight,akTop,akBottom]; + AnchorParallel(akTop,0,edtOtherUnits); + AnchorParallel(akBottom,0,edtOtherUnits); + AnchorParallel(akRight,6,PathPage); + AutoSize:=true; + OnClick:=@PathEditBtnClick; + OnExecuted:=@PathEditBtnExecuted; + Parent:=PathPage; + Constraints.MinHeight:= 25; + end; + edtOtherUnits.AnchorToNeighbour(akRight,0,OtherUnitsPathEditBtn); + + {------------------------------------------------------------} + + lblIncludeFiles.Caption := dlgCOIncFiles; + IncludeFilesPathEditBtn:=TPathEditorButton.Create(Self); + with IncludeFilesPathEditBtn do begin + Name:='IncludeFilesPathEditBtn'; + Anchors:=[akRight,akTop,akBottom]; + AnchorParallel(akTop,0,edtIncludeFiles); + AnchorParallel(akBottom,0,edtIncludeFiles); + AnchorParallel(akRight,6,PathPage); + AutoSize:=true; + Caption:='...'; + OnClick:=@PathEditBtnClick; + OnExecuted:=@PathEditBtnExecuted; + Parent:=PathPage; + Constraints.MinHeight:= 25; + end; + edtIncludeFiles.AnchorToNeighbour(akRight,0,IncludeFilesPathEditBtn); + + {------------------------------------------------------------} + + lblOtherSources.Caption := dlgCOSources; + OtherSourcesPathEditBtn:=TPathEditorButton.Create(Self); + with OtherSourcesPathEditBtn do begin + Name:='OtherSourcesPathEditBtn'; + Anchors:=[akRight,akTop,akBottom]; + AnchorParallel(akTop,0,edtOtherSources); + AnchorParallel(akBottom,0,edtOtherSources); + AnchorParallel(akRight,6,PathPage); + AutoSize:=true; + Caption:='...'; + OnClick:=@PathEditBtnClick; + OnExecuted:=@PathEditBtnExecuted; + Parent:=PathPage; + Constraints.MinHeight:= 25; + end; + edtOtherSources.AnchorToNeighbour(akRight,0,OtherSourcesPathEditBtn); + + {------------------------------------------------------------} + + lblLibraries.Caption := dlgCOLibraries; + LibrariesPathEditBtn:=TPathEditorButton.Create(Self); + with LibrariesPathEditBtn do begin + Name:='LibrariesPathEditBtn'; + Anchors:=[akRight,akTop,akBottom]; + AnchorParallel(akTop,0,edtLibraries); + AnchorParallel(akBottom,0,edtLibraries); + AnchorParallel(akRight,6,PathPage); + AutoSize:=true; + Caption:='...'; + OnClick:=@PathEditBtnClick; + OnExecuted:=@PathEditBtnExecuted; + Parent:=PathPage; + Constraints.MinHeight:= 25; + end; + edtLibraries.AnchorToNeighbour(akRight,0,LibrariesPathEditBtn); + + {------------------------------------------------------------} + + lblUnitOutputDir.Caption := dlgUnitOutp; + btnUnitOutputDir:=TButton.Create(Self); + with btnUnitOutputDir do begin + Name:='btnUnitOutputDir'; + Anchors:=[akRight,akTop,akBottom]; + AnchorParallel(akTop,0,edtUnitOutputDir); + AnchorParallel(akBottom,0,edtUnitOutputDir); + AnchorParallel(akRight,6,PathPage); + AutoSize:=true; + Caption:='...'; + OnClick:=@FileBrowseBtnClick; + Parent:=PathPage; + Constraints.MinHeight:= 25; + end; + edtUnitOutputDir.AnchorToNeighbour(akRight,0,btnUnitOutputDir); + + {------------------------------------------------------------} + + lblDebugPath.Caption := dlgCODebugPath; + DebugPathEditBtn:=TPathEditorButton.Create(Self); + with DebugPathEditBtn do begin + Name:='DebugPathEditBtn'; + Anchors:=[akRight,akTop,akBottom]; + AnchorParallel(akTop,0,edtDebugPath); + AnchorParallel(akBottom,0,edtDebugPath); + AnchorParallel(akRight,6,PathPage); + AutoSize:=true; + Caption:='...'; + OnClick:=@PathEditBtnClick; + OnExecuted:=@PathEditBtnExecuted; + Parent:=PathPage; + Constraints.MinHeight:= 25; + end; + edtDebugPath.AnchorToNeighbour(akRight,0,DebugPathEditBtn); + + {------------------------------------------------------------} + + LCLWidgetTypeLabel.Caption:=Format(lisCOVarious, [lisLCLWidgetType]); + with LCLWidgetTypeComboBox do begin + with Items do begin + BeginUpdate; + Add(Format(lisCOdefault, + [LCLPlatformDisplayNames[GetDefaultLCLWidgetType]])); + for LCLInterface:=Low(TLCLPlatform) to High(TLCLPlatform) do begin + Items.Add(LCLPlatformDisplayNames[LCLInterface]); + end; + EndUpdate; + end; + ItemIndex:=1; + Constraints.MinWidth:=150; + // MG: does not work in win32 intf: AutoSize:=True; + end; +end; + +{------------------------------------------------------------------------------ + TfrmCompilerOptions SetupButtonBar +------------------------------------------------------------------------------} +procedure TfrmCompilerOptions.SetupButtonBar; +begin + // Setup the Button Bar + btnOK.Caption := lisOkBtn; + btnCancel.Caption := dlgCancel; + CancelControl:=btnCancel; + btnShowOptions.Caption := dlgCOShowOptions; + btnCheck.Caption := lisCompTest; + btnLoadSave.Hint := dlgCOLoadSave; + btnLoadSave.Caption := '...'; +end; + +procedure TfrmCompilerOptions.chkCustomConfigFileClick(Sender: TObject); +begin + edtConfigPath.Enabled:=chkCustomConfigFile.Checked; +end; + +procedure TfrmCompilerOptions.PathEditBtnClick(Sender: TObject); +var AButton: TPathEditorButton; + OldPath, Templates: string; +begin + if Sender is TPathEditorButton then begin + AButton:=TPathEditorButton(Sender); + if AButton=OtherUnitsPathEditBtn then begin + OldPath:=edtOtherUnits.Text; + Templates:=SetDirSeparators( + '$(LazarusDir)/lcl/units/$(TargetCPU)-$(TargetOS)' + +';$(LazarusDir)/lcl/units/$(TargetCPU)-$(TargetOS)/$(LCLWidgetType)' + +';$(LazarusDir)/components/codetools/units/$(TargetCPU)-$(TargetOS)' + +';$(LazarusDir)/components/custom' + +';$(LazarusDir)/packager/units/$(TargetCPU)-$(TargetOS)' + ); + end else + if AButton=IncludeFilesPathEditBtn then begin + OldPath:=edtIncludeFiles.Text; + Templates:='include'; + end else + if AButton=OtherSourcesPathEditBtn then begin + OldPath:=edtOtherSources.Text; + Templates:=SetDirSeparators( + '$(LazarusDir)/lcl' + +';$(LazarusDir)/lcl/interfaces/$(LCLWidgetType)' + +';$(LazarusDir)/components/synedit' + +';$(LazarusDir)/components/codetools' + ); + end else + if AButton=LibrariesPathEditBtn then begin + OldPath:=edtLibraries.Text; + Templates:=SetDirSeparators('/usr/X11R6/lib;/sw/lib'); + end else + if AButton=DebugPathEditBtn then begin + OldPath:=edtDebugPath.Text; + Templates:=SetDirSeparators( + '$(LazarusDir)/lcl/include' + +';$(LazarusDir)/lcl/interfaces/$(LCLWidgetType)' + +';$(LazarusDir)/include' + ); + end else + exit; + AButton.CurrentPathEditor.Path:=OldPath; + AButton.CurrentPathEditor.Templates:=SetDirSeparators(Templates); + end; +end; + +procedure TfrmCompilerOptions.PathEditBtnExecuted(Sender: TObject); +var AButton: TPathEditorButton; + NewPath: string; +begin + if Sender is TPathEditorButton then begin + AButton:=TPathEditorButton(Sender); + if AButton.CurrentPathEditor.ModalResult<>mrOk then exit; + NewPath:=AButton.CurrentPathEditor.Path; + if CompilerOpts<>nil then + NewPath:=CompilerOpts.ShortenPath(NewPath,false); + if AButton=OtherUnitsPathEditBtn then begin + edtOtherUnits.Text:=NewPath; + end else + if AButton=IncludeFilesPathEditBtn then begin + edtIncludeFiles.Text:=NewPath; + end else + if AButton=OtherSourcesPathEditBtn then begin + edtOtherSources.Text:=NewPath; + end else + if AButton=LibrariesPathEditBtn then begin + edtLibraries.Text:=NewPath; + end else + if AButton=DebugPathEditBtn then begin + edtDebugPath.Text:=NewPath; + end; + end; +end; + +procedure TfrmCompilerOptions.frmCompilerOptionsClose(Sender: TObject; + var CloseAction: TCloseAction); +begin + IDEDialogLayoutList.SaveLayout(Self); +end; + +procedure TfrmCompilerOptions.grpOptimizationsResize(Sender: TObject); +var + x: Integer; +begin + x:=radOptLevel1.Left+Max(radOptLevel1.Width,radOptLevel2.Width)+6; + chkOptVarsInReg.Left:=x; + chkOptUncertain.Left:=x; +end; + +procedure TfrmCompilerOptions.SetReadOnly(const AValue: boolean); +begin + if FReadOnly=AValue then exit; + FReadOnly:=AValue; + btnOk.Enabled:=not FReadOnly; + btnCheck.Enabled:=not FReadOnly; +end; + +initialization + {$I compileroptionsdlg_new.lrs} + +end. diff --git a/ide/editoroptions_new.lfm b/ide/editoroptions_new.lfm new file mode 100644 index 0000000000..f0626f6d3f --- /dev/null +++ b/ide/editoroptions_new.lfm @@ -0,0 +1,1728 @@ +inherited EditorOptionsForm: TEditorOptionsForm + Left = 406 + Height = 606 + Top = 141 + Width = 747 + HorzScrollBar.Page = 746 + VertScrollBar.Page = 605 + ActiveControl = OkButton + Caption = 'EditorOptionsForm' + ClientHeight = 606 + ClientWidth = 747 + Constraints.MinWidth = 400 + Position = poScreenCenter + inherited BottomPanel: TPanel + Top = 556 + Width = 747 + ClientWidth = 747 + TabOrder = 3 + inherited OKCancelPanel: TPanel + Left = 560 + inherited btnCancel: TBitBtn + end + inherited btnOK: TBitBtn + end + end + inherited HelpButton: TBitBtn + end + end + inherited CategoriesPanel: TPanel + Width = 747 + ClientWidth = 747 + TabOrder = 4 + inherited SectionTitleLabel: TLabel + end + inherited SearchLabel: TLabel + Left = 423 + end + inherited ClearFilterButton: TBitBtn + Left = 703 + end + inherited FilterEdit: TEdit + Left = 520 + end + end + inherited SectionsTreePanel: TPanel + Height = 478 + ClientHeight = 478 + TabOrder = 1 + inherited SectionList: TListBox + Height = 478 + end + end + inherited MainSplitter: TSplitter + Height = 478 + end + inherited OptionsAreaPanel: TPanel + Height = 478 + Width = 592 + ClientHeight = 478 + ClientWidth = 592 + TabOrder = 2 + object Notebook: TNotebook + AnchorSideBottom.Control = BtnPanel + Height = 472 + Width = 592 + Align = alClient + BorderSpacing.Bottom = 6 + PageIndex = 3 + ShowTabs = False + TabOrder = 0 + object GeneralPage: TPage + Caption = 'GeneralPage' + ClientWidth = 592 + ClientHeight = 472 + object BlockIndentLabel: TLabel + AnchorSideLeft.Control = BlockIndentComboBox + AnchorSideLeft.Side = asrBottom + AnchorSideBottom.Control = BlockIndentComboBox + AnchorSideBottom.Side = asrCenter + Left = 112 + Height = 13 + Top = 373 + Width = 97 + Anchors = [akLeft, akBottom] + BorderSpacing.Around = 6 + Caption = 'BlockIndentLabel' + ParentColor = False + end + object UndoLimitLabel: TLabel + AnchorSideLeft.Control = UndoLimitComboBox + AnchorSideLeft.Side = asrBottom + AnchorSideBottom.Control = UndoLimitComboBox + AnchorSideBottom.Side = asrCenter + Left = 112 + Height = 13 + Top = 400 + Width = 86 + Anchors = [akLeft, akBottom] + BorderSpacing.Around = 6 + Caption = 'UndoLimitLabel' + ParentColor = False + end + object TabWidthsLabel: TLabel + AnchorSideLeft.Control = TabWidthsComboBox + AnchorSideLeft.Side = asrBottom + AnchorSideBottom.Control = TabWidthsComboBox + AnchorSideBottom.Side = asrCenter + Left = 112 + Height = 13 + Top = 427 + Width = 90 + Anchors = [akLeft, akBottom] + BorderSpacing.Around = 6 + Caption = 'TabWidthsLabel' + ParentColor = False + end + object EditorOptionsGroupBox: TCheckGroup + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Control = BlockIndentLabel + Left = 6 + Height = 355 + Top = 6 + Width = 580 + Align = alTop + Anchors = [akTop, akLeft, akRight, akBottom] + AutoFill = True + BorderSpacing.Bottom = 6 + BorderSpacing.Around = 6 + Caption = 'EditorOptionsGroupBox' + ChildSizing.LeftRightSpacing = 6 + ChildSizing.TopBottomSpacing = 6 + ChildSizing.EnlargeHorizontal = crsHomogenousChildResize + ChildSizing.EnlargeVertical = crsHomogenousChildResize + ChildSizing.ShrinkHorizontal = crsScaleChilds + ChildSizing.ShrinkVertical = crsScaleChilds + ChildSizing.Layout = cclTopToBottomThenLeftToRight + ChildSizing.ControlsPerLine = 1 + ColumnLayout = clVerticalThenHorizontal + Columns = 2 + OnItemClick = GeneralCheckBoxOnChange + TabOrder = 0 + end + object BlockIndentComboBox: TComboBox + AnchorSideBottom.Control = UndoLimitComboBox + Left = 6 + Height = 21 + Top = 370 + Width = 100 + Anchors = [akLeft, akBottom] + AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] + BorderSpacing.Around = 6 + Items.Strings = ( + '1' + '2' + '4' + '8' + ) + MaxLength = 0 + OnChange = ComboBoxOnChange + OnExit = ComboBoxOnExit + OnKeyDown = ComboBoxOnKeyDown + TabOrder = 1 + end + object UndoLimitComboBox: TComboBox + AnchorSideBottom.Control = TabWidthsComboBox + Left = 6 + Height = 21 + Top = 397 + Width = 100 + Anchors = [akLeft, akBottom] + AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] + BorderSpacing.Around = 6 + Items.Strings = ( + '32767' + '4096' + '512' + ) + MaxLength = 0 + OnChange = ComboBoxOnChange + OnExit = ComboBoxOnExit + OnKeyDown = ComboBoxOnKeyDown + TabOrder = 2 + end + object TabWidthsComboBox: TComboBox + AnchorSideBottom.Control = GeneralPage + AnchorSideBottom.Side = asrBottom + Left = 6 + Height = 21 + Top = 424 + Width = 100 + Anchors = [akLeft, akBottom] + AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] + BorderSpacing.Around = 6 + Items.Strings = ( + '1' + '2' + '4' + '8' + ) + MaxLength = 0 + OnChange = ComboBoxOnChange + OnExit = ComboBoxOnExit + OnKeyDown = ComboBoxOnKeyDown + TabOrder = 3 + end + end + object DisplayPage: TPage + Caption = 'DisplayPage' + ClientWidth = 592 + ClientHeight = 472 + object MarginAndGutterGroupBox: TGroupBox + Left = 6 + Height = 128 + Top = 6 + Width = 580 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'MarginAndGutterGroupBox' + ClientHeight = 128 + ClientWidth = 580 + TabOrder = 0 + object RightMarginLabel: TLabel + Left = 358 + Height = 13 + Top = 10 + Width = 99 + Caption = 'RightMarginLabel' + ParentColor = False + end + object RightMarginColorButton: TColorButton + Left = 246 + Height = 21 + Top = 36 + Width = 100 + BorderWidth = 2 + ButtonColorSize = 16 + Color = clBtnFace + OnColorChanged = RightMarginColorButtonColorChanged + end + object GutterColorButton: TColorButton + Left = 246 + Height = 21 + Top = 84 + Width = 100 + BorderWidth = 2 + ButtonColorSize = 16 + Color = clBtnFace + OnColorChanged = ColorButtonColorChanged + end + object RightMarginColorLabel: TLabel + Left = 358 + Height = 13 + Top = 34 + Width = 129 + Caption = 'RightMarginColorLabel' + ParentColor = False + end + object GutterWidthLabel: TLabel + Left = 358 + Height = 13 + Top = 60 + Width = 96 + Caption = 'GutterWidthLabel' + ParentColor = False + end + object GutterColorLabel: TLabel + Left = 358 + Height = 13 + Top = 82 + Width = 95 + Caption = 'GutterColorLabel' + ParentColor = False + end + object VisibleRightMarginCheckBox: TCheckBox + Left = 6 + Height = 20 + Top = 8 + Width = 189 + Caption = 'VisibleRightMarginCheckBox' + OnChange = GeneralCheckBoxOnChange + TabOrder = 0 + end + object VisibleGutterCheckBox: TCheckBox + Left = 6 + Height = 20 + Top = 32 + Width = 155 + Caption = 'VisibleGutterCheckBox' + OnChange = GeneralCheckBoxOnChange + TabOrder = 1 + end + object ShowLineNumbersCheckBox: TCheckBox + Left = 6 + Height = 20 + Top = 56 + Width = 188 + Caption = 'ShowLineNumbersCheckBox' + OnChange = GeneralCheckBoxOnChange + TabOrder = 2 + end + object RightMarginComboBox: TComboBox + Left = 246 + Height = 21 + Top = 8 + Width = 100 + AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] + Items.Strings = ( + '80' + '78' + '76' + ) + MaxLength = 0 + OnChange = ComboBoxOnChange + OnExit = ComboBoxOnExit + OnKeyDown = ComboBoxOnKeyDown + TabOrder = 3 + end + object GutterWidthComboBox: TComboBox + Left = 246 + Height = 21 + Top = 58 + Width = 100 + AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] + Items.Strings = ( + '40' + '35' + '30' + '25' + '20' + ) + MaxLength = 0 + OnChange = ComboBoxOnChange + OnExit = ComboBoxOnExit + OnKeyDown = ComboBoxOnKeyDown + TabOrder = 4 + end + end + object EditorFontGroupBox: TGroupBox + Left = 6 + Height = 136 + Top = 140 + Width = 580 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'EditorFontGroupBox' + ClientHeight = 136 + ClientWidth = 580 + TabOrder = 1 + object EditorFontLabel: TLabel + Left = 6 + Height = 13 + Top = 6 + Width = 568 + Align = alTop + BorderSpacing.Left = 6 + BorderSpacing.Top = 6 + BorderSpacing.Right = 6 + Caption = 'EditorFontLabel' + ParentColor = False + end + object EditorFontHeightLabel: TLabel + Left = 116 + Height = 13 + Top = 60 + Width = 572 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Around = 6 + Caption = 'EditorFontHeightLabel' + ParentColor = False + end + object ExtraLineSpacingLabel: TLabel + Left = 116 + Height = 13 + Top = 90 + Width = 572 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Around = 6 + Caption = 'ExtraLineSpacingLabel' + ParentColor = False + end + object EditorFontComboBox: TComboBox + AnchorSideRight.Control = EditorFontButton + Left = 6 + Height = 21 + Top = 29 + Width = 511 + Anchors = [akTop, akLeft, akRight] + AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] + BorderSpacing.Around = 6 + MaxLength = 0 + OnEditingDone = EditorFontComboBoxEditingDone + TabOrder = 0 + Text = 'EditorFontComboBox' + end + object EditorFontButton: TButton + Left = 523 + Height = 25 + Top = 29 + Width = 25 + Anchors = [akTop, akRight] + Caption = '...' + OnClick = EditorFontButtonClick + TabOrder = 1 + end + object EditorFontHeightComboBox: TComboBox + Left = 6 + Height = 21 + Top = 58 + Width = 100 + AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] + Items.Strings = ( + '10' + '11' + '12' + '13' + '14' + '15' + '16' + '17' + '18' + ) + MaxLength = 0 + OnChange = ComboBoxOnChange + OnExit = ComboBoxOnExit + OnKeyDown = ComboBoxOnKeyDown + TabOrder = 2 + end + object ExtraLineSpacingComboBox: TComboBox + Left = 6 + Height = 21 + Top = 88 + Width = 100 + AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] + Items.Strings = ( + '0' + '1' + '2' + ) + MaxLength = 0 + OnChange = ComboBoxOnChange + OnExit = ComboBoxOnExit + OnKeyDown = ComboBoxOnKeyDown + TabOrder = 3 + end + end + object DisplayPreview: TSynEdit + Left = 6 + Height = 188 + Top = 278 + Width = 580 + Align = alBottom + BorderSpacing.Around = 6 + Anchors = [akTop, akLeft, akRight, akBottom] + Font.Height = -16 + Font.Name = 'courier' + ParentColor = False + TabOrder = 2 + Gutter.CodeFoldingWidth = 14 + Keystrokes = < + item + Command = 3 + ShortCut = 38 + end + item + Command = 103 + ShortCut = 8230 + end + item + Command = 211 + ShortCut = 16422 + end + item + Command = 4 + ShortCut = 40 + end + item + Command = 104 + ShortCut = 8232 + end + item + Command = 212 + ShortCut = 16424 + end + item + Command = 1 + ShortCut = 37 + end + item + Command = 101 + ShortCut = 8229 + end + item + Command = 5 + ShortCut = 16421 + end + item + Command = 105 + ShortCut = 24613 + end + item + Command = 2 + ShortCut = 39 + end + item + Command = 102 + ShortCut = 8231 + end + item + Command = 6 + ShortCut = 16423 + end + item + Command = 106 + ShortCut = 24615 + end + item + Command = 10 + ShortCut = 34 + end + item + Command = 110 + ShortCut = 8226 + end + item + Command = 14 + ShortCut = 16418 + end + item + Command = 114 + ShortCut = 24610 + end + item + Command = 9 + ShortCut = 33 + end + item + Command = 109 + ShortCut = 8225 + end + item + Command = 13 + ShortCut = 16417 + end + item + Command = 113 + ShortCut = 24609 + end + item + Command = 7 + ShortCut = 36 + end + item + Command = 107 + ShortCut = 8228 + end + item + Command = 15 + ShortCut = 16420 + end + item + Command = 115 + ShortCut = 24612 + end + item + Command = 8 + ShortCut = 35 + end + item + Command = 108 + ShortCut = 8227 + end + item + Command = 16 + ShortCut = 16419 + end + item + Command = 116 + ShortCut = 24611 + end + item + Command = 223 + ShortCut = 45 + end + item + Command = 201 + ShortCut = 16429 + end + item + Command = 604 + ShortCut = 8237 + end + item + Command = 502 + ShortCut = 46 + end + item + Command = 603 + ShortCut = 8238 + end + item + Command = 501 + ShortCut = 8 + end + item + Command = 501 + ShortCut = 8200 + end + item + Command = 504 + ShortCut = 16392 + end + item + Command = 601 + ShortCut = 32776 + end + item + Command = 602 + ShortCut = 40968 + end + item + Command = 509 + ShortCut = 13 + end + item + Command = 199 + ShortCut = 16449 + end + item + Command = 201 + ShortCut = 16451 + end + item + Command = 610 + ShortCut = 24649 + end + item + Command = 509 + ShortCut = 16461 + end + item + Command = 510 + ShortCut = 16462 + end + item + Command = 503 + ShortCut = 16468 + end + item + Command = 611 + ShortCut = 24661 + end + item + Command = 604 + ShortCut = 16470 + end + item + Command = 603 + ShortCut = 16472 + end + item + Command = 507 + ShortCut = 16473 + end + item + Command = 506 + ShortCut = 24665 + end + item + Command = 601 + ShortCut = 16474 + end + item + Command = 602 + ShortCut = 24666 + end + item + Command = 301 + ShortCut = 16432 + end + item + Command = 302 + ShortCut = 16433 + end + item + Command = 303 + ShortCut = 16434 + end + item + Command = 304 + ShortCut = 16435 + end + item + Command = 305 + ShortCut = 16436 + end + item + Command = 306 + ShortCut = 16437 + end + item + Command = 307 + ShortCut = 16438 + end + item + Command = 308 + ShortCut = 16439 + end + item + Command = 309 + ShortCut = 16440 + end + item + Command = 310 + ShortCut = 16441 + end + item + Command = 351 + ShortCut = 24624 + end + item + Command = 352 + ShortCut = 24625 + end + item + Command = 353 + ShortCut = 24626 + end + item + Command = 354 + ShortCut = 24627 + end + item + Command = 355 + ShortCut = 24628 + end + item + Command = 356 + ShortCut = 24629 + end + item + Command = 357 + ShortCut = 24630 + end + item + Command = 358 + ShortCut = 24631 + end + item + Command = 359 + ShortCut = 24632 + end + item + Command = 360 + ShortCut = 24633 + end + item + Command = 231 + ShortCut = 24654 + end + item + Command = 232 + ShortCut = 24643 + end + item + Command = 233 + ShortCut = 24652 + end + item + Command = 612 + ShortCut = 9 + end + item + Command = 613 + ShortCut = 8201 + end + item + Command = 250 + ShortCut = 24642 + end> + Lines.Strings = ( + 'DisplayPreview' + ) + ReadOnly = True + OnSpecialLineColors = OnSpecialLineColors + end + end + object KeymappingPage: TPage + Caption = 'KeymappingPage' + ClientWidth = 592 + ClientHeight = 472 + object KeyMappingHelpLabel: TLabel + Left = 6 + Height = 13 + Top = 68 + Width = 580 + Align = alTop + BorderSpacing.Left = 6 + BorderSpacing.Top = 6 + BorderSpacing.Right = 6 + Caption = 'KeyMappingHelpLabel' + ParentColor = False + end + object KeyMappingChooseSchemeButton: TButton + Left = 6 + Height = 25 + Top = 6 + Width = 580 + Align = alTop + BorderSpacing.Left = 6 + BorderSpacing.Top = 6 + BorderSpacing.Right = 6 + Caption = 'KeyMappingChooseSchemeButton' + OnClick = KeyMappingChooseSchemeButtonClick + TabOrder = 0 + end + object KeyMappingConsistencyCheckButton: TButton + Left = 6 + Height = 25 + Top = 37 + Width = 580 + Align = alTop + BorderSpacing.Left = 6 + BorderSpacing.Top = 6 + BorderSpacing.Right = 6 + Caption = 'KeyMappingConsistencyCheckButton' + OnClick = KeyMappingConsistencyCheckButtonClick + TabOrder = 1 + end + object KeyMappingTreeView: TTreeView + Left = 6 + Height = 379 + Top = 87 + Width = 580 + Align = alClient + BorderSpacing.Around = 6 + DefaultItemHeight = 23 + Images = ImageList + ReadOnly = True + RowSelect = True + TabOrder = 2 + OnMouseUp = KeyMappingTreeViewMouseUp + Options = [tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoRowSelect, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoShowSeparators, tvoToolTips] + end + end + object ColorPage: TPage + Caption = 'ColorPage' + ClientWidth = 592 + ClientHeight = 472 + object LanguageLabel: TLabel + Left = 214 + Height = 13 + Top = 12 + Width = 88 + Caption = 'LanguageLabel' + ParentColor = False + end + object ColorSchemeLabel: TLabel + Left = 214 + Height = 13 + Top = 36 + Width = 107 + Caption = 'ColorSchemeLabel' + ParentColor = False + end + object FileExtensionsLabel: TLabel + Left = 214 + Height = 13 + Top = 60 + Width = 113 + Caption = 'FileExtensionsLabel' + ParentColor = False + end + object ColorElementLabel: TLabel + Left = 4 + Height = 13 + Top = 90 + Width = 106 + Caption = 'ColorElementLabel' + ParentColor = False + end + object LanguageComboBox: TComboBox + Left = 3 + Height = 21 + Top = 10 + Width = 200 + AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] + MaxLength = 0 + OnChange = ComboBoxOnChange + OnExit = ComboBoxOnExit + OnKeyDown = ComboBoxOnKeyDown + TabOrder = 0 + Text = 'LanguageComboBox' + end + object ColorSchemeComboBox: TComboBox + Left = 3 + Height = 21 + Top = 34 + Width = 200 + AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] + MaxLength = 0 + OnChange = ComboBoxOnChange + OnExit = ComboBoxOnExit + OnKeyDown = ComboBoxOnKeyDown + TabOrder = 1 + Text = 'ColorSchemeComboBox' + end + object FileExtensionsComboBox: TComboBox + Left = 3 + Height = 21 + Top = 58 + Width = 200 + AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] + Items.Strings = ( + 'pp;pas;inc;lpr;lrs;dpr;dpk' + 'pp;pas;inc;lpr;lrs' + 'pp;pas;inc' + ) + MaxLength = 0 + OnChange = ComboBoxOnChange + OnExit = ComboBoxOnExit + OnKeyDown = ComboBoxOnKeyDown + TabOrder = 2 + end + object ColorPreview: TSynEdit + Left = 4 + Height = 126 + Top = 342 + Width = 584 + Align = alBottom + BorderSpacing.Around = 4 + Anchors = [akTop, akLeft, akRight, akBottom] + Font.Height = -16 + Font.Name = 'courier' + ParentColor = False + TabOrder = 3 + OnMouseDown = ColorPreviewMouseUp + Gutter.CodeFoldingWidth = 14 + Keystrokes = < + item + Command = 3 + ShortCut = 38 + end + item + Command = 103 + ShortCut = 8230 + end + item + Command = 211 + ShortCut = 16422 + end + item + Command = 4 + ShortCut = 40 + end + item + Command = 104 + ShortCut = 8232 + end + item + Command = 212 + ShortCut = 16424 + end + item + Command = 1 + ShortCut = 37 + end + item + Command = 101 + ShortCut = 8229 + end + item + Command = 5 + ShortCut = 16421 + end + item + Command = 105 + ShortCut = 24613 + end + item + Command = 2 + ShortCut = 39 + end + item + Command = 102 + ShortCut = 8231 + end + item + Command = 6 + ShortCut = 16423 + end + item + Command = 106 + ShortCut = 24615 + end + item + Command = 10 + ShortCut = 34 + end + item + Command = 110 + ShortCut = 8226 + end + item + Command = 14 + ShortCut = 16418 + end + item + Command = 114 + ShortCut = 24610 + end + item + Command = 9 + ShortCut = 33 + end + item + Command = 109 + ShortCut = 8225 + end + item + Command = 13 + ShortCut = 16417 + end + item + Command = 113 + ShortCut = 24609 + end + item + Command = 7 + ShortCut = 36 + end + item + Command = 107 + ShortCut = 8228 + end + item + Command = 15 + ShortCut = 16420 + end + item + Command = 115 + ShortCut = 24612 + end + item + Command = 8 + ShortCut = 35 + end + item + Command = 108 + ShortCut = 8227 + end + item + Command = 16 + ShortCut = 16419 + end + item + Command = 116 + ShortCut = 24611 + end + item + Command = 223 + ShortCut = 45 + end + item + Command = 201 + ShortCut = 16429 + end + item + Command = 604 + ShortCut = 8237 + end + item + Command = 502 + ShortCut = 46 + end + item + Command = 603 + ShortCut = 8238 + end + item + Command = 501 + ShortCut = 8 + end + item + Command = 501 + ShortCut = 8200 + end + item + Command = 504 + ShortCut = 16392 + end + item + Command = 601 + ShortCut = 32776 + end + item + Command = 602 + ShortCut = 40968 + end + item + Command = 509 + ShortCut = 13 + end + item + Command = 199 + ShortCut = 16449 + end + item + Command = 201 + ShortCut = 16451 + end + item + Command = 610 + ShortCut = 24649 + end + item + Command = 509 + ShortCut = 16461 + end + item + Command = 510 + ShortCut = 16462 + end + item + Command = 503 + ShortCut = 16468 + end + item + Command = 611 + ShortCut = 24661 + end + item + Command = 604 + ShortCut = 16470 + end + item + Command = 603 + ShortCut = 16472 + end + item + Command = 507 + ShortCut = 16473 + end + item + Command = 506 + ShortCut = 24665 + end + item + Command = 601 + ShortCut = 16474 + end + item + Command = 602 + ShortCut = 24666 + end + item + Command = 301 + ShortCut = 16432 + end + item + Command = 302 + ShortCut = 16433 + end + item + Command = 303 + ShortCut = 16434 + end + item + Command = 304 + ShortCut = 16435 + end + item + Command = 305 + ShortCut = 16436 + end + item + Command = 306 + ShortCut = 16437 + end + item + Command = 307 + ShortCut = 16438 + end + item + Command = 308 + ShortCut = 16439 + end + item + Command = 309 + ShortCut = 16440 + end + item + Command = 310 + ShortCut = 16441 + end + item + Command = 351 + ShortCut = 24624 + end + item + Command = 352 + ShortCut = 24625 + end + item + Command = 353 + ShortCut = 24626 + end + item + Command = 354 + ShortCut = 24627 + end + item + Command = 355 + ShortCut = 24628 + end + item + Command = 356 + ShortCut = 24629 + end + item + Command = 357 + ShortCut = 24630 + end + item + Command = 358 + ShortCut = 24631 + end + item + Command = 359 + ShortCut = 24632 + end + item + Command = 360 + ShortCut = 24633 + end + item + Command = 231 + ShortCut = 24654 + end + item + Command = 232 + ShortCut = 24643 + end + item + Command = 233 + ShortCut = 24652 + end + item + Command = 612 + ShortCut = 9 + end + item + Command = 613 + ShortCut = 8201 + end + item + Command = 250 + ShortCut = 24642 + end> + Lines.Strings = ( + 'ColorPreview' + ) + ReadOnly = True + OnSpecialLineColors = OnSpecialLineColors + end + object ColorElementListBox: TListBox + Left = 3 + Height = 226 + Top = 108 + Width = 200 + OnSelectionChange = ColorElementListBoxSelectionChange + TabOrder = 4 + TopIndex = -1 + end + object SetAttributeToDefaultButton: TButton + AnchorSideRight.Control = ColorPage + AnchorSideRight.Side = asrBottom + Left = 212 + Height = 25 + Top = 90 + Width = 374 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Around = 6 + Caption = 'SetAttributeToDefaultButton' + OnClick = SetAttributeToDefaultButtonClick + TabOrder = 5 + end + object SetAllAttributesToDefaultButton: TButton + AnchorSideRight.Control = ColorPage + AnchorSideRight.Side = asrBottom + Left = 212 + Height = 25 + Top = 122 + Width = 374 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Around = 6 + Caption = 'SetAllAttributesToDefaultButton' + OnClick = SetAllAttributesToDefaultButtonClick + TabOrder = 6 + end + object TextAttributesGroupBox: TGroupBox + AnchorSideRight.Control = ColorPage + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Control = ColorPreview + Left = 212 + Height = 182 + Top = 154 + Width = 374 + Anchors = [akTop, akLeft, akRight, akBottom] + BorderSpacing.Around = 6 + Caption = 'Attributes' + ClientHeight = 165 + ClientWidth = 370 + TabOrder = 7 + object ForeGroundLabel: TLabel + Left = 8 + Height = 13 + Width = 99 + Caption = 'ForeGroundLabel' + ParentColor = False + end + object ForegroundColorButton: TColorButton + AnchorSideTop.Control = ForeGroundLabel + AnchorSideTop.Side = asrBottom + Left = 8 + Height = 21 + Top = 15 + Width = 75 + BorderSpacing.Top = 2 + BorderWidth = 2 + ButtonColorSize = 16 + Color = clBtnFace + OnColorChanged = ColorButtonColorChanged + end + object BackGroundColorButton: TColorButton + AnchorSideTop.Control = BackGroundLabel + AnchorSideTop.Side = asrBottom + Left = 8 + Height = 21 + Top = 56 + Width = 75 + BorderSpacing.Top = 2 + BorderWidth = 2 + ButtonColorSize = 16 + Color = clBtnFace + OnColorChanged = ColorButtonColorChanged + end + object BackGroundLabel: TLabel + AnchorSideTop.Control = ForeGroundLabel + AnchorSideTop.Side = asrBottom + Left = 8 + Height = 13 + Top = 41 + Width = 101 + BorderSpacing.Top = 28 + Caption = 'BackGroundLabel' + ParentColor = False + end + object ForeGroundUseDefaultCheckBox: TCheckBox + AnchorSideTop.Control = ForeGroundLabel + AnchorSideTop.Side = asrBottom + Left = 94 + Height = 20 + Top = 15 + Width = 219 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Top = 2 + Caption = 'ForeGroundUseDefaultCheckBox' + OnChange = GeneralCheckBoxOnChange + TabOrder = 0 + end + object BackGroundUseDefaultCheckBox: TCheckBox + AnchorSideTop.Control = BackGroundLabel + AnchorSideTop.Side = asrBottom + Left = 94 + Height = 20 + Top = 54 + Width = 219 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Right = 2 + Caption = 'BackGroundUseDefaultCheckBox' + OnChange = GeneralCheckBoxOnChange + TabOrder = 1 + end + object TextBoldCheckBox: TCheckBox + Left = 6 + Height = 20 + Top = 87 + Width = 358 + Align = alBottom + BorderSpacing.Around = 6 + Caption = 'TextBoldCheckBox' + OnChange = GeneralCheckBoxOnChange + TabOrder = 2 + end + object TextItalicCheckBox: TCheckBox + Left = 6 + Height = 20 + Top = 113 + Width = 358 + Align = alBottom + BorderSpacing.Around = 6 + Caption = 'TextItalicCheckBox' + OnChange = GeneralCheckBoxOnChange + TabOrder = 3 + end + object TextUnderlineCheckBox: TCheckBox + Left = 6 + Height = 20 + Top = 139 + Width = 358 + Align = alBottom + BorderSpacing.Around = 6 + Caption = 'TextUnderlineCheckBox' + OnChange = GeneralCheckBoxOnChange + TabOrder = 4 + end + end + end + object CodetoolsPage: TPage + Caption = 'CodetoolsPage' + ClientWidth = 592 + ClientHeight = 472 + object AutomaticFeaturesGroupBox: TGroupBox + Left = 6 + Height = 460 + Top = 6 + Width = 580 + Align = alClient + BorderSpacing.Around = 6 + Caption = 'AutomaticFeaturesGroupBox' + ClientHeight = 460 + ClientWidth = 580 + TabOrder = 0 + object AutoDelayLabel: TLabel + Left = 6 + Height = 20 + Top = 188 + Width = 568 + Align = alTop + BorderSpacing.Top = 24 + BorderSpacing.Around = 6 + Caption = 'AutoDelayLabel' + ParentColor = False + end + object AutoDelayMinLabel: TLabel + AnchorSideTop.Control = AutoDelayTrackBar + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 20 + Top = 160 + Width = 123 + BorderSpacing.Top = 2 + Caption = 'AutoDelayMinLabel' + ParentColor = False + end + object AutoDelayMaxLabel: TLabel + AnchorSideTop.Control = AutoDelayTrackBar + AnchorSideTop.Side = asrBottom + Left = 427 + Height = 20 + Top = 160 + Width = 127 + Alignment = taRightJustify + Anchors = [akTop, akRight] + BorderSpacing.Top = 2 + Caption = 'AutoDelayMaxLabel' + ParentColor = False + end + object AutoIdentifierCompletionCheckBox: TCheckBox + Left = 6 + Height = 22 + Top = 6 + Width = 568 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'AutoIdentifierCompletionCheckBox' + TabOrder = 0 + end + object AutoCodeParametersCheckBox: TCheckBox + Left = 6 + Height = 22 + Top = 62 + Width = 568 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'AutoCodeParametersCheckBox' + Enabled = False + TabOrder = 1 + end + object AutoToolTipExprEvalCheckBox: TCheckBox + Left = 6 + Height = 22 + Top = 90 + Width = 568 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'AutoToolTipExprEvalCheckBox' + TabOrder = 2 + end + object AutoToolTipSymbToolsCheckBox: TCheckBox + Left = 6 + Height = 22 + Top = 34 + Width = 568 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'AutoToolTipSymbToolsCheckBox' + TabOrder = 3 + end + object AutoDelayTrackBar: TTrackBar + Left = 6 + Height = 40 + Top = 118 + Width = 568 + Frequency = 250 + Max = 4000 + Min = 500 + Position = 500 + ScalePos = trTop + Align = alTop + BorderSpacing.Left = 6 + BorderSpacing.Top = 6 + BorderSpacing.Right = 6 + TabOrder = 4 + end + end + end + object CodeFolding: TPage + Caption = 'CodeFolding' + ClientWidth = 592 + ClientHeight = 472 + object lblDividerDrawLevel: TLabel + Left = 6 + Height = 20 + Top = 71 + Width = 124 + Caption = 'lblDividerDrawLevel' + ParentColor = False + end + object Bevel1: TBevel + Left = 6 + Height = 2 + Top = 49 + Width = 464 + Anchors = [akTop, akLeft, akRight] + end + object chkCodeFoldingEnabled: TCheckBox + Left = 6 + Height = 22 + Top = 23 + Width = 175 + Caption = 'chkCodeFoldingEnabled' + OnChange = chkCodeFoldingEnabledChange + TabOrder = 0 + end + object edDividerDrawLevel: TSpinEdit + Left = 211 + Height = 23 + Top = 66 + Width = 50 + MaxValue = 10 + MinValue = 1 + TabOrder = 1 + Value = 1 + end + end + end + end + object BtnPanel: TPanel + Height = 38 + Top = 518 + Width = 747 + Align = alBottom + AutoSize = True + BevelOuter = bvNone + ClientHeight = 38 + ClientWidth = 747 + TabOrder = 0 + object OkButton: TButton + AnchorSideBottom.Side = asrBottom + Left = 579 + Height = 26 + Top = 6 + Width = 75 + Align = alRight + AutoSize = True + BorderSpacing.Around = 6 + Caption = 'OkButton' + Constraints.MinWidth = 75 + OnClick = OkButtonClick + TabOrder = 0 + end + object CancelButton: TButton + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Side = asrBottom + Left = 660 + Height = 26 + Top = 6 + Width = 81 + Align = alRight + AutoSize = True + BorderSpacing.Around = 6 + Caption = 'CancelButton' + Constraints.MinWidth = 75 + OnClick = CancelButtonClick + TabOrder = 1 + end + end + object ImageList: TImageList + Height = 21 + Width = 21 + left = 360 + top = 48 + Bitmap = { + 4C69020000001500000015000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000484E4BFF8B918DFFA8AE + AAFFC2C7C3FFD1D6D2FFA1A4A1FF000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000007A8580FFB0BAB5FF8D9390FF999C9AFF939493FFBCC0BCFFE5EA + E6FFAEB2B0FF4B4E4EFF00000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000AAB1ADFFA8B1ADFFBDC4 + C0FF8C908DFF8B8D8BFF979A97FFE4E7E4FF929795FF424946FF3A403EFF0000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000787A78FFE7E9E7FFD0D2D1FFACB0ADFFB4B8B6FFB9BDBAFFCFD3 + CFFF7C807EFF4D5652FF474F4CFF363D3BFF4A504EFF959B97FFA5ACA8FFCBCF + CBFFC1C5C0FFA7AAA7FF00000000000000000000000000000000BBBCBBFFF0F2 + F0FFEFF0EEFFE3E5E3FFCACDCAFFBDC0BDFF939894FF6B7571FF596360FF464E + 4BFF78817DFFB0B9B5FF949895FFA8AAA9FFD3D5D3FFCCD0CCFFE6EAE6FF9EA4 + A0FF000000000000000000000000DADCDAFFBBBEBCFFA2A6A3FFB4BBB6FFB3B8 + B4FFA7AAA7FF8C918DFF66726CFF5B635FFF9BA39EFFA7B0ABFFC6CDCAFF8E90 + 8FFF9A9C9BFF9D9F9DFFDADDDAFF8A8F8CFF464D4AFF00000000000000000000 + 00005C615EFF959E99FF747976FF6B6D6BFFE4E8E4FFDADDDAFFDEE2DEFFAFB4 + B0FF717673FFEAEDEAFFD0D3D1FFA5ABA8FFA7ACA8FFD3D9D4FFD8DDD9FF7074 + 71FF505854FF484F4CFF00000000000000008C9791FFAAB7B0FF8C928EFFD0D5 + D1FF767977FF7C7F7CFFB9BCB9FFBDBFBDFF474C4BFF646765FFF3F5F3FFEBEC + EBFFEAEDEAFFE5E7E5FFADB0ADFF838885FF6E7874FF5B6460FF49534EFF0000 + 00007A7D7AFFD2D6D3FFABB2AEFFB0B8B3FFCED3D0FFB8BCB8FFE1E5E1FF9FA4 + A0FF4B514EFF49514DFF484F4CFFE4E6E4FFE7E8E7FFE2E5E2FFDEE3DEFFDDE2 + DDFFA4ABA6FF707A75FF5E6864FF4C5752FF00000000B3B7B3FFEFF2EFFFF1F2 + F1FFD4D7D4FFBBBEBBFFADB1AEFF919793FF5F6864FF57615CFF464F4BFF414B + 47FFBABDBBFFE4E7E4FFDEE2DEFFDCE1DCFFDCE1DCFFA3ABA6FF6F7A75FF616B + 66FF454E4AFF00000000DCDFDCFFEFF0EFFFE9E9E9FFE2E5E2FFE2E7E2FFD7DC + D7FF9BA39EFF6F7975FF5B6561FF49544FFF414B46FF00000000949794FFD5D9 + D5FFDFE4DFFFDCE1DDFF9CA7A1FF6E7974FF4C5450FF0000000000000000BDBF + BDFFEBEEEBFFE5E7E5FFDFE3DFFFDCE1DCFFDADEDAFF9DA4A0FF6E7874FF5E67 + 63FF48524DFF000000000000000000000000000000008D908DFFADB0ADFF7980 + 7CFF3B413EFF000000000000000000000000000000006D6F6DFFD2D6D2FFDDE2 + DDFFDCE1DCFFDAE0DBFF99A49EFF6E7A74FF5B645FFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000008B8E8BFFD0D3D0FFD5D9D6FF8D97 + 92FF545E5AFF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000616262FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000C0C0C0FFCCCCCCFFCACACAFFCACACAFFC9C9C9FFC8C8C8FFC7C7 + C7FFC6C6C6FFC5C5C5FFC1C1C1FFBABABAFFB8B8B8FFB4B4B4FFADADADFFA0A0 + A0FF0000000000000000000000000000000000000000A0A0A0FFF6F6F6FFF6F6 + F6FFEEEEEEFFE6E6E6FFE6E6E6FFE6E6E6FFE7E7E7FFE8E8E8FFE6E6E6FFE5E5 + E5FFE4E4E4FFE2E2E2FFDEDEDEFFCCCCCCFFB8B8B8FF797979FF000000000000 + 00000000000000000000A5A5A5FFF9F9F9FFF6F6F6FFD9D9D9FFD7D7D7FFDBDB + DBFFDEDEDEFFE1E1E1FFE4E4E4FFE6E6E6FFE9E9E9FFEBEBEBFFEDEDEDFFEFEF + EFFFCDCDCDFFB2B2B2FF747474FF00000000000000000000000000000000A4A4 + A4FFF7F7F7FFF5F5F5FFD8D8D8FFDADADAFFDEDEDEFFE1E1E1FFE4E4E4FFE6E6 + E6FFE9E9E9FFEBEBEBFFEDEDEDFFEFEFEFFFF1F1F1FFCBCBCBFFA8A8A8FF6F6F + 6FFF00000000000000000000000000000000A2A2A2FFF3F3F3FFF3F3F3FFDADA + DAFFDDDDDDFFE0E0E0FFE3E3E3FFE6E6E6FFE8E8E8FFE9E9E9FFB9B9B9FFD9D9 + D9FFF1F1F1FFF3F3F3FFC6C6C6FF9E9E9EFF6D6D6DFF00000000000000000000 + 000000000000A1A1A1FFEFEFEFFFF1F1F1FFDEDEDEFFE0E0E0FFE3E3E3FFE5E5 + E5FFE8E8E8FFEAEAEAFFE1E1E1FF8D8D8DFFE9E9E9FFF2F2F2FFF4F4F4FFC6C6 + C6FF9D9D9DFF6B6B6BFF00000000000000000000000000000000A1A1A1FFEDED + EDFFF0F0F0FFE0E0E0FFE2E2E2FFE5E5E5FFE7E7E7FFEAEAEAFFE5E5E5FFB1B1 + B1FF9E9E9EFFC8C8C8FFF3F3F3FFF5F5F5FFC3C3C3FF949494FF696969FF0000 + 0000000000000000000000000000A0A0A0FFEDEDEDFFF0F0F0FFE3E3E3FFE5E5 + E5FFE7E7E7FFEAEAEAFFECECECFF939393FF898989FFADADADFF636363FFD9D9 + D9FFF6F6F6FFBFBFBFFF8B8B8BFF656565FF0000000000000000000000000000 + 0000A0A0A0FFECECECFFF0F0F0FFE5E5E5FFE6E6E6FFE9E9E9FFEBEBEBFFEEEE + EEFFDDDDDDFFDBDBDBFFC4C4C4FF616161FFD1D1D1FFF7F7F7FFBCBCBCFF8484 + 84FF606060FF00000000000000000000000000000000A0A0A0FFEBEBEBFFF0F0 + F0FFE7E7E7FFE9E9E9FFEBEBEBFFEDEDEDFFF0F0F0FF979797FF6E6E6EFF9696 + 96FF626262FFD2D2D2FFF8F8F8FFBABABAFF7F7F7FFF5D5D5DFF000000000000 + 000000000000000000009F9F9FFFE8E8E8FFEFEFEFFFE9E9E9FFEBEBEBFFEDED + EDFFEFEFEFFFF1F1F1FF555555FFDDDDDDFFD8D8D8FF5D5D5DFFD1D1D1FFF9F9 + F9FFB8B8B8FF7B7B7BFF5C5C5CFF000000000000000000000000000000009E9E + 9EFFE5E5E5FFECECECFFEBEBEBFFEDEDEDFFEFEFEFFFF1F1F1FFF2F2F2FFA5A5 + A5FF7C7C7CFF8E8E8EFF909090FFCACACAFFFAFAFAFFB6B6B6FF787878FF5A5A + 5AFF000000000000000000000000000000009C9C9CFFDFDFDFFFE8E8E8FFEEEE + EEFFEFEFEFFFF0F0F0FFF2F2F2FFF4F4F4FFF5F5F5FFECECECFFF5F5F5FFF9F9 + F9FFFAFAFAFFFBFBFBFFAEAEAEFF737373FF565656FF00000000000000000000 + 0000000000009A9A9AFFD5D5D5FFE2E2E2FFDBDBDBFFC7C7C7FFBBBBBBFFB9B9 + B9FFB9B9B9FFB7B7B7FFB4B4B4FFB2B2B2FFB1B1B1FFB1B1B1FFAAAAAAFF7B7B + 7BFF6B6B6BFF545454FF00000000000000000000000000000000959595FFCDCD + CDFFC0C0C0FF777777FF484848FF454545FF474747FF4B4B4BFF4F4F4FFF5050 + 50FF4C4C4CFF474747FF484848FF4E4E4EFF565656FF6C6C6CFF515151FF0000 + 0000000000000000000000000000818181FF9C9C9CFF5C5C5CFF3E3E3EFF4242 + 42FF404040FF424242FF434343FF464646FF484848FF454545FF434343FF4343 + 43FF454545FF494949FF555555FF4C4C4CFF0000000000000000000000000000 + 00000000000000000000292929FF232323FF232323FF222222FF222222FF2222 + 22FF222222FF222222FF222222FF222222FF222222FF222222FF222222FF2424 + 24FF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000 + } + end +end diff --git a/ide/editoroptions_new.lrs b/ide/editoroptions_new.lrs new file mode 100644 index 0000000000..a74c2e12d8 --- /dev/null +++ b/ide/editoroptions_new.lrs @@ -0,0 +1,516 @@ +{ This is an automatically generated lazarus resource file } + +LazarusResources.Add('TEditorOptionsForm','FORMDATA',[ + 'TPF0'#241#18'TEditorOptionsForm'#17'EditorOptionsForm'#4'Left'#3#150#1#6'Hei' + +'ght'#3'^'#2#3'Top'#3#141#0#5'Width'#3#235#2#18'HorzScrollBar.Page'#3#234#2 + +#18'VertScrollBar.Page'#3']'#2#13'ActiveControl'#7#8'OkButton'#7'Caption'#6 + +#17'EditorOptionsForm'#12'ClientHeight'#3'^'#2#11'ClientWidth'#3#235#2#20'Co' + +'nstraints.MinWidth'#3#144#1#8'Position'#7#14'poScreenCenter'#0#241#6'TPanel' + +#11'BottomPanel'#3'Top'#3','#2#5'Width'#3#235#2#11'ClientWidth'#3#235#2#8'Ta' + +'bOrder'#2#3#0#241#6'TPanel'#13'OKCancelPanel'#4'Left'#3'0'#2#0#241#7'TBitBt' + +'n'#9'btnCancel'#0#0#241#7'TBitBtn'#5'btnOK'#0#0#0#241#7'TBitBtn'#10'HelpBut' + +'ton'#0#0#0#241#6'TPanel'#15'CategoriesPanel'#5'Width'#3#235#2#11'ClientWidt' + +'h'#3#235#2#8'TabOrder'#2#4#0#241#6'TLabel'#17'SectionTitleLabel'#0#0#241#6 + +'TLabel'#11'SearchLabel'#4'Left'#3#167#1#0#0#241#7'TBitBtn'#17'ClearFilterBu' + +'tton'#4'Left'#3#191#2#0#0#241#5'TEdit'#10'FilterEdit'#4'Left'#3#8#2#0#0#0 + +#241#6'TPanel'#17'SectionsTreePanel'#6'Height'#3#222#1#12'ClientHeight'#3#222 + +#1#8'TabOrder'#2#1#0#241#8'TListBox'#11'SectionList'#6'Height'#3#222#1#0#0#0 + +#241#9'TSplitter'#12'MainSplitter'#6'Height'#3#222#1#0#0#241#6'TPanel'#16'Op' + +'tionsAreaPanel'#6'Height'#3#222#1#5'Width'#3'P'#2#12'ClientHeight'#3#222#1 + +#11'ClientWidth'#3'P'#2#8'TabOrder'#2#2#0#9'TNotebook'#8'Notebook'#24'Anchor' + +'SideBottom.Control'#7#8'BtnPanel'#6'Height'#3#216#1#5'Width'#3'P'#2#5'Align' + +#7#8'alClient'#20'BorderSpacing.Bottom'#2#6#9'PageIndex'#2#3#8'ShowTabs'#8#8 + +'TabOrder'#2#0#0#5'TPage'#11'GeneralPage'#7'Caption'#6#11'GeneralPage'#11'Cl' + +'ientWidth'#3'P'#2#12'ClientHeight'#3#216#1#0#6'TLabel'#16'BlockIndentLabel' + +#22'AnchorSideLeft.Control'#7#19'BlockIndentComboBox'#19'AnchorSideLeft.Side' + +#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#19'BlockIndentComboBox'#21'An' + +'chorSideBottom.Side'#7#9'asrCenter'#4'Left'#2'p'#6'Height'#2#13#3'Top'#3'u' + +#1#5'Width'#2'a'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#20'BorderSpacing.Arou' + +'nd'#2#6#7'Caption'#6#16'BlockIndentLabel'#11'ParentColor'#8#0#0#6'TLabel'#14 + +'UndoLimitLabel'#22'AnchorSideLeft.Control'#7#17'UndoLimitComboBox'#19'Ancho' + +'rSideLeft.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#17'UndoLimitC' + +'omboBox'#21'AnchorSideBottom.Side'#7#9'asrCenter'#4'Left'#2'p'#6'Height'#2 + +#13#3'Top'#3#144#1#5'Width'#2'V'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#20'Bo' + +'rderSpacing.Around'#2#6#7'Caption'#6#14'UndoLimitLabel'#11'ParentColor'#8#0 + +#0#6'TLabel'#14'TabWidthsLabel'#22'AnchorSideLeft.Control'#7#17'TabWidthsCom' + +'boBox'#19'AnchorSideLeft.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7 + +#17'TabWidthsComboBox'#21'AnchorSideBottom.Side'#7#9'asrCenter'#4'Left'#2'p' + +#6'Height'#2#13#3'Top'#3#171#1#5'Width'#2'Z'#7'Anchors'#11#6'akLeft'#8'akBot' + +'tom'#0#20'BorderSpacing.Around'#2#6#7'Caption'#6#14'TabWidthsLabel'#11'Pare' + +'ntColor'#8#0#0#11'TCheckGroup'#21'EditorOptionsGroupBox'#20'AnchorSideRight' + +'.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#16'BlockIndentLabel'#4 + +'Left'#2#6#6'Height'#3'c'#1#3'Top'#2#6#5'Width'#3'D'#2#5'Align'#7#5'alTop'#7 + +'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#8'AutoFill'#9#20'Bo' + +'rderSpacing.Bottom'#2#6#20'BorderSpacing.Around'#2#6#7'Caption'#6#21'Editor' + +'OptionsGroupBox'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBot' + +'tomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildRe' + +'size'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildResize'#28'Chi' + +'ldSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertic' + +'al'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclTopToBottomThenLeft' + +'ToRight'#27'ChildSizing.ControlsPerLine'#2#1#12'ColumnLayout'#7#24'clVertic' + +'alThenHorizontal'#7'Columns'#2#2#11'OnItemClick'#7#23'GeneralCheckBoxOnChan' + +'ge'#8'TabOrder'#2#0#0#0#9'TComboBox'#19'BlockIndentComboBox'#24'AnchorSideB' + +'ottom.Control'#7#17'UndoLimitComboBox'#4'Left'#2#6#6'Height'#2#21#3'Top'#3 + +'r'#1#5'Width'#2'd'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#16'AutoCompleteTex' + +'t'#11#22'cbactEndOfLineComplete'#20'cbactSearchAscending'#0#20'BorderSpacin' + +'g.Around'#2#6#13'Items.Strings'#1#6#1'1'#6#1'2'#6#1'4'#6#1'8'#0#9'MaxLength' + +#2#0#8'OnChange'#7#16'ComboBoxOnChange'#6'OnExit'#7#14'ComboBoxOnExit'#9'OnK' + +'eyDown'#7#17'ComboBoxOnKeyDown'#8'TabOrder'#2#1#0#0#9'TComboBox'#17'UndoLim' + +'itComboBox'#24'AnchorSideBottom.Control'#7#17'TabWidthsComboBox'#4'Left'#2#6 + +#6'Height'#2#21#3'Top'#3#141#1#5'Width'#2'd'#7'Anchors'#11#6'akLeft'#8'akBot' + +'tom'#0#16'AutoCompleteText'#11#22'cbactEndOfLineComplete'#20'cbactSearchAsc' + +'ending'#0#20'BorderSpacing.Around'#2#6#13'Items.Strings'#1#6#5'32767'#6#4'4' + +'096'#6#3'512'#0#9'MaxLength'#2#0#8'OnChange'#7#16'ComboBoxOnChange'#6'OnExi' + +'t'#7#14'ComboBoxOnExit'#9'OnKeyDown'#7#17'ComboBoxOnKeyDown'#8'TabOrder'#2#2 + +#0#0#9'TComboBox'#17'TabWidthsComboBox'#24'AnchorSideBottom.Control'#7#11'Ge' + +'neralPage'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2 + +#21#3'Top'#3#168#1#5'Width'#2'd'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#16'Au' + ,'toCompleteText'#11#22'cbactEndOfLineComplete'#20'cbactSearchAscending'#0#20 + +'BorderSpacing.Around'#2#6#13'Items.Strings'#1#6#1'1'#6#1'2'#6#1'4'#6#1'8'#0 + +#9'MaxLength'#2#0#8'OnChange'#7#16'ComboBoxOnChange'#6'OnExit'#7#14'ComboBox' + +'OnExit'#9'OnKeyDown'#7#17'ComboBoxOnKeyDown'#8'TabOrder'#2#3#0#0#0#5'TPage' + +#11'DisplayPage'#7'Caption'#6#11'DisplayPage'#11'ClientWidth'#3'P'#2#12'Clie' + +'ntHeight'#3#216#1#0#9'TGroupBox'#23'MarginAndGutterGroupBox'#4'Left'#2#6#6 + +'Height'#3#128#0#3'Top'#2#6#5'Width'#3'D'#2#5'Align'#7#5'alTop'#20'BorderSpa' + +'cing.Around'#2#6#7'Caption'#6#23'MarginAndGutterGroupBox'#12'ClientHeight'#3 + +#128#0#11'ClientWidth'#3'D'#2#8'TabOrder'#2#0#0#6'TLabel'#16'RightMarginLabe' + +'l'#4'Left'#3'f'#1#6'Height'#2#13#3'Top'#2#10#5'Width'#2'c'#7'Caption'#6#16 + +'RightMarginLabel'#11'ParentColor'#8#0#0#12'TColorButton'#22'RightMarginColo' + +'rButton'#4'Left'#3#246#0#6'Height'#2#21#3'Top'#2'$'#5'Width'#2'd'#11'Border' + +'Width'#2#2#15'ButtonColorSize'#2#16#5'Color'#7#9'clBtnFace'#14'OnColorChang' + +'ed'#7'"RightMarginColorButtonColorChanged'#0#0#12'TColorButton'#17'GutterCo' + +'lorButton'#4'Left'#3#246#0#6'Height'#2#21#3'Top'#2'T'#5'Width'#2'd'#11'Bord' + +'erWidth'#2#2#15'ButtonColorSize'#2#16#5'Color'#7#9'clBtnFace'#14'OnColorCha' + +'nged'#7#23'ColorButtonColorChanged'#0#0#6'TLabel'#21'RightMarginColorLabel' + +#4'Left'#3'f'#1#6'Height'#2#13#3'Top'#2'"'#5'Width'#3#129#0#7'Caption'#6#21 + +'RightMarginColorLabel'#11'ParentColor'#8#0#0#6'TLabel'#16'GutterWidthLabel' + +#4'Left'#3'f'#1#6'Height'#2#13#3'Top'#2'<'#5'Width'#2'`'#7'Caption'#6#16'Gut' + +'terWidthLabel'#11'ParentColor'#8#0#0#6'TLabel'#16'GutterColorLabel'#4'Left' + +#3'f'#1#6'Height'#2#13#3'Top'#2'R'#5'Width'#2'_'#7'Caption'#6#16'GutterColor' + +'Label'#11'ParentColor'#8#0#0#9'TCheckBox'#26'VisibleRightMarginCheckBox'#4 + +'Left'#2#6#6'Height'#2#20#3'Top'#2#8#5'Width'#3#189#0#7'Caption'#6#26'Visibl' + +'eRightMarginCheckBox'#8'OnChange'#7#23'GeneralCheckBoxOnChange'#8'TabOrder' + +#2#0#0#0#9'TCheckBox'#21'VisibleGutterCheckBox'#4'Left'#2#6#6'Height'#2#20#3 + +'Top'#2' '#5'Width'#3#155#0#7'Caption'#6#21'VisibleGutterCheckBox'#8'OnChang' + +'e'#7#23'GeneralCheckBoxOnChange'#8'TabOrder'#2#1#0#0#9'TCheckBox'#23'ShowLi' + +'neNumbersCheckBox'#4'Left'#2#6#6'Height'#2#20#3'Top'#2'8'#5'Width'#3#188#0#7 + +'Caption'#6#23'ShowLineNumbersCheckBox'#8'OnChange'#7#23'GeneralCheckBoxOnCh' + +'ange'#8'TabOrder'#2#2#0#0#9'TComboBox'#19'RightMarginComboBox'#4'Left'#3#246 + +#0#6'Height'#2#21#3'Top'#2#8#5'Width'#2'd'#16'AutoCompleteText'#11#22'cbactE' + +'ndOfLineComplete'#20'cbactSearchAscending'#0#13'Items.Strings'#1#6#2'80'#6#2 + +'78'#6#2'76'#0#9'MaxLength'#2#0#8'OnChange'#7#16'ComboBoxOnChange'#6'OnExit' + +#7#14'ComboBoxOnExit'#9'OnKeyDown'#7#17'ComboBoxOnKeyDown'#8'TabOrder'#2#3#0 + +#0#9'TComboBox'#19'GutterWidthComboBox'#4'Left'#3#246#0#6'Height'#2#21#3'Top' + +#2':'#5'Width'#2'd'#16'AutoCompleteText'#11#22'cbactEndOfLineComplete'#20'cb' + +'actSearchAscending'#0#13'Items.Strings'#1#6#2'40'#6#2'35'#6#2'30'#6#2'25'#6 + +#2'20'#0#9'MaxLength'#2#0#8'OnChange'#7#16'ComboBoxOnChange'#6'OnExit'#7#14 + +'ComboBoxOnExit'#9'OnKeyDown'#7#17'ComboBoxOnKeyDown'#8'TabOrder'#2#4#0#0#0#9 + +'TGroupBox'#18'EditorFontGroupBox'#4'Left'#2#6#6'Height'#3#136#0#3'Top'#3#140 + +#0#5'Width'#3'D'#2#5'Align'#7#5'alTop'#20'BorderSpacing.Around'#2#6#7'Captio' + +'n'#6#18'EditorFontGroupBox'#12'ClientHeight'#3#136#0#11'ClientWidth'#3'D'#2 + +#8'TabOrder'#2#1#0#6'TLabel'#15'EditorFontLabel'#4'Left'#2#6#6'Height'#2#13#3 + +'Top'#2#6#5'Width'#3'8'#2#5'Align'#7#5'alTop'#18'BorderSpacing.Left'#2#6#17 + +'BorderSpacing.Top'#2#6#19'BorderSpacing.Right'#2#6#7'Caption'#6#15'EditorFo' + +'ntLabel'#11'ParentColor'#8#0#0#6'TLabel'#21'EditorFontHeightLabel'#4'Left'#2 + +'t'#6'Height'#2#13#3'Top'#2'<'#5'Width'#3'<'#2#7'Anchors'#11#5'akTop'#6'akLe' + +'ft'#7'akRight'#0#20'BorderSpacing.Around'#2#6#7'Caption'#6#21'EditorFontHei' + +'ghtLabel'#11'ParentColor'#8#0#0#6'TLabel'#21'ExtraLineSpacingLabel'#4'Left' + +#2't'#6'Height'#2#13#3'Top'#2'Z'#5'Width'#3'<'#2#7'Anchors'#11#5'akTop'#6'ak' + +'Left'#7'akRight'#0#20'BorderSpacing.Around'#2#6#7'Caption'#6#21'ExtraLineSp' + +'acingLabel'#11'ParentColor'#8#0#0#9'TComboBox'#18'EditorFontComboBox'#23'An' + +'chorSideRight.Control'#7#16'EditorFontButton'#4'Left'#2#6#6'Height'#2#21#3 + +'Top'#2#29#5'Width'#3#255#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#16 + +'AutoCompleteText'#11#22'cbactEndOfLineComplete'#20'cbactSearchAscending'#0 + +#20'BorderSpacing.Around'#2#6#9'MaxLength'#2#0#13'OnEditingDone'#7#29'Editor' + +'FontComboBoxEditingDone'#8'TabOrder'#2#0#4'Text'#6#18'EditorFontComboBox'#0 + +#0#7'TButton'#16'EditorFontButton'#4'Left'#3#11#2#6'Height'#2#25#3'Top'#2#29 + +#5'Width'#2#25#7'Anchors'#11#5'akTop'#7'akRight'#0#7'Caption'#6#3'...'#7'OnC' + +'lick'#7#21'EditorFontButtonClick'#8'TabOrder'#2#1#0#0#9'TComboBox'#24'Edito' + +'rFontHeightComboBox'#4'Left'#2#6#6'Height'#2#21#3'Top'#2':'#5'Width'#2'd'#16 + +'AutoCompleteText'#11#22'cbactEndOfLineComplete'#20'cbactSearchAscending'#0 + +#13'Items.Strings'#1#6#2'10'#6#2'11'#6#2'12'#6#2'13'#6#2'14'#6#2'15'#6#2'16' + ,#6#2'17'#6#2'18'#0#9'MaxLength'#2#0#8'OnChange'#7#16'ComboBoxOnChange'#6'OnE' + +'xit'#7#14'ComboBoxOnExit'#9'OnKeyDown'#7#17'ComboBoxOnKeyDown'#8'TabOrder'#2 + +#2#0#0#9'TComboBox'#24'ExtraLineSpacingComboBox'#4'Left'#2#6#6'Height'#2#21#3 + +'Top'#2'X'#5'Width'#2'd'#16'AutoCompleteText'#11#22'cbactEndOfLineComplete' + +#20'cbactSearchAscending'#0#13'Items.Strings'#1#6#1'0'#6#1'1'#6#1'2'#0#9'Max' + +'Length'#2#0#8'OnChange'#7#16'ComboBoxOnChange'#6'OnExit'#7#14'ComboBoxOnExi' + +'t'#9'OnKeyDown'#7#17'ComboBoxOnKeyDown'#8'TabOrder'#2#3#0#0#0#8'TSynEdit'#14 + +'DisplayPreview'#4'Left'#2#6#6'Height'#3#188#0#3'Top'#3#22#1#5'Width'#3'D'#2 + +#5'Align'#7#8'alBottom'#20'BorderSpacing.Around'#2#6#7'Anchors'#11#5'akTop'#6 + +'akLeft'#7'akRight'#8'akBottom'#0#11'Font.Height'#2#240#9'Font.Name'#6#7'cou' + +'rier'#11'ParentColor'#8#8'TabOrder'#2#2#23'Gutter.CodeFoldingWidth'#2#14#10 + +'Keystrokes'#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'Shor' + +'tCut'#3'& '#0#1#7'Command'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'S' + +'hortCut'#2'('#0#1#7'Command'#2'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8 + +'ShortCut'#3'(@'#0#1#7'Command'#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'S' + +'hortCut'#3'% '#0#1#7'Command'#2#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'S' + +'hortCut'#3'%`'#0#1#7'Command'#2#2#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8'S' + +'hortCut'#3''' '#0#1#7'Command'#2#6#8'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8 + +'ShortCut'#3'''`'#0#1#7'Command'#2#10#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8 + +'ShortCut'#3'" '#0#1#7'Command'#2#14#8'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8 + +'ShortCut'#3'"`'#0#1#7'Command'#2#9#8'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'S' + +'hortCut'#3'! '#0#1#7'Command'#2#13#8'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8 + +'ShortCut'#3'!`'#0#1#7'Command'#2#7#8'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'S' + +'hortCut'#3'$ '#0#1#7'Command'#2#15#8'ShortCut'#3'$@'#0#1#7'Command'#2's'#8 + +'ShortCut'#3'$`'#0#1#7'Command'#2#8#8'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'S' + +'hortCut'#3'# '#0#1#7'Command'#2#16#8'ShortCut'#3'#@'#0#1#7'Command'#2't'#8 + +'ShortCut'#3'#`'#0#1#7'Command'#3#223#0#8'ShortCut'#2'-'#0#1#7'Command'#3#201 + +#0#8'ShortCut'#3'-@'#0#1#7'Command'#3'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3 + +#246#1#8'ShortCut'#2'.'#0#1#7'Command'#3'['#2#8'ShortCut'#3'. '#0#1#7'Comman' + +'d'#3#245#1#8'ShortCut'#2#8#0#1#7'Command'#3#245#1#8'ShortCut'#3#8' '#0#1#7 + +'Command'#3#248#1#8'ShortCut'#3#8'@'#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8 + +#128#0#0#0#1#7'Command'#3'Z'#2#8'ShortCut'#4#8#160#0#0#0#1#7'Command'#3#253#1 + +#8'ShortCut'#2#13#0#1#7'Command'#3#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3 + +#201#0#8'ShortCut'#3'C@'#0#1#7'Command'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Comma' + +'nd'#3#253#1#8'ShortCut'#3'M@'#0#1#7'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7 + +'Command'#3#247#1#8'ShortCut'#3'T@'#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0 + +#1#7'Command'#3'\'#2#8'ShortCut'#3'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X' + +'@'#0#1#7'Command'#3#251#1#8'ShortCut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortC' + +'ut'#3'Y`'#0#1#7'Command'#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'S' + +'hortCut'#3'Z`'#0#1#7'Command'#3'-'#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1 + +#8'ShortCut'#3'1@'#0#1#7'Command'#3'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3 + +'0'#1#8'ShortCut'#3'3@'#0#1#7'Command'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Comman' + +'d'#3'2'#1#8'ShortCut'#3'5@'#0#1#7'Command'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'C' + +'ommand'#3'4'#1#8'ShortCut'#3'7@'#0#1#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1 + +#7'Command'#3'6'#1#8'ShortCut'#3'9@'#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`' + +#0#1#7'Command'#3'`'#1#8'ShortCut'#3'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3 + +'2`'#0#1#7'Command'#3'b'#1#8'ShortCut'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCu' + +'t'#3'4`'#0#1#7'Command'#3'd'#1#8'ShortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'Sh' + +'ortCut'#3'6`'#0#1#7'Command'#3'f'#1#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1 + +#8'ShortCut'#3'8`'#0#1#7'Command'#3'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3 + +#231#0#8'ShortCut'#3'N`'#0#1#7'Command'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Comm' + +'and'#3#233#0#8'ShortCut'#3'L`'#0#1#7'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7 + +'Command'#3'e'#2#8'ShortCut'#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`' + +#0#0#13'Lines.Strings'#1#6#14'DisplayPreview'#0#8'ReadOnly'#9#19'OnSpecialLi' + +'neColors'#7#19'OnSpecialLineColors'#0#0#0#5'TPage'#14'KeymappingPage'#7'Cap' + +'tion'#6#14'KeymappingPage'#11'ClientWidth'#3'P'#2#12'ClientHeight'#3#216#1#0 + +#6'TLabel'#19'KeyMappingHelpLabel'#4'Left'#2#6#6'Height'#2#13#3'Top'#2'D'#5 + +'Width'#3'D'#2#5'Align'#7#5'alTop'#18'BorderSpacing.Left'#2#6#17'BorderSpaci' + +'ng.Top'#2#6#19'BorderSpacing.Right'#2#6#7'Caption'#6#19'KeyMappingHelpLabel' + +#11'ParentColor'#8#0#0#7'TButton'#28'KeyMappingChooseSchemeButton'#4'Left'#2 + +#6#6'Height'#2#25#3'Top'#2#6#5'Width'#3'D'#2#5'Align'#7#5'alTop'#18'BorderSp' + +'acing.Left'#2#6#17'BorderSpacing.Top'#2#6#19'BorderSpacing.Right'#2#6#7'Cap' + +'tion'#6#28'KeyMappingChooseSchemeButton'#7'OnClick'#7'!KeyMappingChooseSche' + +'meButtonClick'#8'TabOrder'#2#0#0#0#7'TButton KeyMappingConsistencyCheckButt' + ,'on'#4'Left'#2#6#6'Height'#2#25#3'Top'#2'%'#5'Width'#3'D'#2#5'Align'#7#5'alT' + +'op'#18'BorderSpacing.Left'#2#6#17'BorderSpacing.Top'#2#6#19'BorderSpacing.R' + +'ight'#2#6#7'Caption'#6' KeyMappingConsistencyCheckButton'#7'OnClick'#7'%Key' + +'MappingConsistencyCheckButtonClick'#8'TabOrder'#2#1#0#0#9'TTreeView'#18'Key' + +'MappingTreeView'#4'Left'#2#6#6'Height'#3'{'#1#3'Top'#2'W'#5'Width'#3'D'#2#5 + +'Align'#7#8'alClient'#20'BorderSpacing.Around'#2#6#17'DefaultItemHeight'#2#23 + +#6'Images'#7#9'ImageList'#8'ReadOnly'#9#9'RowSelect'#9#8'TabOrder'#2#2#9'OnM' + +'ouseUp'#7#25'KeyMappingTreeViewMouseUp'#7'Options'#11#17'tvoAutoItemHeight' + +#16'tvoHideSelection'#21'tvoKeepCollapsedNodes'#11'tvoReadOnly'#12'tvoRowSel' + +'ect'#14'tvoShowButtons'#12'tvoShowLines'#11'tvoShowRoot'#17'tvoShowSeparato' + +'rs'#11'tvoToolTips'#0#0#0#0#5'TPage'#9'ColorPage'#7'Caption'#6#9'ColorPage' + +#11'ClientWidth'#3'P'#2#12'ClientHeight'#3#216#1#0#6'TLabel'#13'LanguageLabe' + +'l'#4'Left'#3#214#0#6'Height'#2#13#3'Top'#2#12#5'Width'#2'X'#7'Caption'#6#13 + +'LanguageLabel'#11'ParentColor'#8#0#0#6'TLabel'#16'ColorSchemeLabel'#4'Left' + +#3#214#0#6'Height'#2#13#3'Top'#2'$'#5'Width'#2'k'#7'Caption'#6#16'ColorSchem' + +'eLabel'#11'ParentColor'#8#0#0#6'TLabel'#19'FileExtensionsLabel'#4'Left'#3 + +#214#0#6'Height'#2#13#3'Top'#2'<'#5'Width'#2'q'#7'Caption'#6#19'FileExtensio' + +'nsLabel'#11'ParentColor'#8#0#0#6'TLabel'#17'ColorElementLabel'#4'Left'#2#4#6 + +'Height'#2#13#3'Top'#2'Z'#5'Width'#2'j'#7'Caption'#6#17'ColorElementLabel'#11 + +'ParentColor'#8#0#0#9'TComboBox'#16'LanguageComboBox'#4'Left'#2#3#6'Height'#2 + +#21#3'Top'#2#10#5'Width'#3#200#0#16'AutoCompleteText'#11#22'cbactEndOfLineCo' + +'mplete'#20'cbactSearchAscending'#0#9'MaxLength'#2#0#8'OnChange'#7#16'ComboB' + +'oxOnChange'#6'OnExit'#7#14'ComboBoxOnExit'#9'OnKeyDown'#7#17'ComboBoxOnKeyD' + +'own'#8'TabOrder'#2#0#4'Text'#6#16'LanguageComboBox'#0#0#9'TComboBox'#19'Col' + +'orSchemeComboBox'#4'Left'#2#3#6'Height'#2#21#3'Top'#2'"'#5'Width'#3#200#0#16 + +'AutoCompleteText'#11#22'cbactEndOfLineComplete'#20'cbactSearchAscending'#0#9 + +'MaxLength'#2#0#8'OnChange'#7#16'ComboBoxOnChange'#6'OnExit'#7#14'ComboBoxOn' + +'Exit'#9'OnKeyDown'#7#17'ComboBoxOnKeyDown'#8'TabOrder'#2#1#4'Text'#6#19'Col' + +'orSchemeComboBox'#0#0#9'TComboBox'#22'FileExtensionsComboBox'#4'Left'#2#3#6 + +'Height'#2#21#3'Top'#2':'#5'Width'#3#200#0#16'AutoCompleteText'#11#22'cbactE' + +'ndOfLineComplete'#20'cbactSearchAscending'#0#13'Items.Strings'#1#6#26'pp;pa' + +'s;inc;lpr;lrs;dpr;dpk'#6#18'pp;pas;inc;lpr;lrs'#6#10'pp;pas;inc'#0#9'MaxLen' + +'gth'#2#0#8'OnChange'#7#16'ComboBoxOnChange'#6'OnExit'#7#14'ComboBoxOnExit'#9 + +'OnKeyDown'#7#17'ComboBoxOnKeyDown'#8'TabOrder'#2#2#0#0#8'TSynEdit'#12'Color' + +'Preview'#4'Left'#2#4#6'Height'#2'~'#3'Top'#3'V'#1#5'Width'#3'H'#2#5'Align'#7 + +#8'alBottom'#20'BorderSpacing.Around'#2#4#7'Anchors'#11#5'akTop'#6'akLeft'#7 + +'akRight'#8'akBottom'#0#11'Font.Height'#2#240#9'Font.Name'#6#7'courier'#11'P' + +'arentColor'#8#8'TabOrder'#2#3#11'OnMouseDown'#7#19'ColorPreviewMouseUp'#23 + +'Gutter.CodeFoldingWidth'#2#14#10'Keystrokes'#14#1#7'Command'#2#3#8'ShortCut' + +#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7'Command'#3#211#0#8'ShortCu' + +'t'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7'Command'#2'h'#8'ShortCut' + +#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'#0#1#7'Command'#2#1#8'ShortCu' + +'t'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0#1#7'Command'#2#5#8'ShortCut' + +#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7'Command'#2#2#8'ShortCut'#2 + +''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1#7'Command'#2#6#8'ShortCut'#3 + +'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3'''`'#0#1#7'Command'#2#10#8'ShortCut' + +#2'"'#0#1#7'Command'#2'n'#8'ShortCut'#3'" '#0#1#7'Command'#2#14#8'ShortCut'#3 + +'"@'#0#1#7'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7'Command'#2#9#8'ShortCut'#2 + +'!'#0#1#7'Command'#2'm'#8'ShortCut'#3'! '#0#1#7'Command'#2#13#8'ShortCut'#3 + +'!@'#0#1#7'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7'Command'#2#7#8'ShortCut'#2 + +'$'#0#1#7'Command'#2'k'#8'ShortCut'#3'$ '#0#1#7'Command'#2#15#8'ShortCut'#3 + +'$@'#0#1#7'Command'#2's'#8'ShortCut'#3'$`'#0#1#7'Command'#2#8#8'ShortCut'#2 + +'#'#0#1#7'Command'#2'l'#8'ShortCut'#3'# '#0#1#7'Command'#2#16#8'ShortCut'#3 + +'#@'#0#1#7'Command'#2't'#8'ShortCut'#3'#`'#0#1#7'Command'#3#223#0#8'ShortCut' + +#2'-'#0#1#7'Command'#3#201#0#8'ShortCut'#3'-@'#0#1#7'Command'#3'\'#2#8'Short' + +'Cut'#3'- '#0#1#7'Command'#3#246#1#8'ShortCut'#2'.'#0#1#7'Command'#3'['#2#8 + +'ShortCut'#3'. '#0#1#7'Command'#3#245#1#8'ShortCut'#2#8#0#1#7'Command'#3#245 + +#1#8'ShortCut'#3#8' '#0#1#7'Command'#3#248#1#8'ShortCut'#3#8'@'#0#1#7'Comman' + +'d'#3'Y'#2#8'ShortCut'#4#8#128#0#0#0#1#7'Command'#3'Z'#2#8'ShortCut'#4#8#160 + +#0#0#0#1#7'Command'#3#253#1#8'ShortCut'#2#13#0#1#7'Command'#3#199#0#8'ShortC' + +'ut'#3'A@'#0#1#7'Command'#3#201#0#8'ShortCut'#3'C@'#0#1#7'Command'#3'b'#2#8 + +'ShortCut'#3'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3'M@'#0#1#7'Command'#3 + +#254#1#8'ShortCut'#3'N@'#0#1#7'Command'#3#247#1#8'ShortCut'#3'T@'#0#1#7'Comm' + +'and'#3'c'#2#8'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8'ShortCut'#3'V@'#0#1#7 + ,'Command'#3'['#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251#1#8'ShortCut'#3'Y@'#0 + +#1#7'Command'#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'#3'Y'#2#8'ShortCut'#3 + +'Z@'#0#1#7'Command'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Command'#3'-'#1#8'ShortCu' + +'t'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7'Command'#3'/'#1#8'Sh' + +'ortCut'#3'2@'#0#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0#1#7'Command'#3'1'#1 + +#8'ShortCut'#3'4@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5@'#0#1#7'Command'#3 + +'3'#1#8'ShortCut'#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'#3'7@'#0#1#7'Comman' + +'d'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Command'#3'6'#1#8'ShortCut'#3'9@'#0#1#7'C' + +'ommand'#3'_'#1#8'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8'ShortCut'#3'1`'#0#1 + +#7'Command'#3'a'#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'#1#8'ShortCut'#3'3`' + +#0#1#7'Command'#3'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3'd'#1#8'ShortCut'#3 + +'5`'#0#1#7'Command'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Command'#3'f'#1#8'ShortCu' + +'t'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'Command'#3'h'#1#8'Sh' + +'ortCut'#3'9`'#0#1#7'Command'#3#231#0#8'ShortCut'#3'N`'#0#1#7'Command'#3#232 + +#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233#0#8'ShortCut'#3'L`'#0#1#7'Command' + +#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'#3#9' '#0#1#7'Comma' + +'nd'#3#250#0#8'ShortCut'#3'B`'#0#0#13'Lines.Strings'#1#6#12'ColorPreview'#0#8 + +'ReadOnly'#9#19'OnSpecialLineColors'#7#19'OnSpecialLineColors'#0#0#8'TListBo' + +'x'#19'ColorElementListBox'#4'Left'#2#3#6'Height'#3#226#0#3'Top'#2'l'#5'Widt' + +'h'#3#200#0#17'OnSelectionChange'#7'"ColorElementListBoxSelectionChange'#8'T' + +'abOrder'#2#4#8'TopIndex'#2#255#0#0#7'TButton'#27'SetAttributeToDefaultButto' + +'n'#23'AnchorSideRight.Control'#7#9'ColorPage'#20'AnchorSideRight.Side'#7#9 + +'asrBottom'#4'Left'#3#212#0#6'Height'#2#25#3'Top'#2'Z'#5'Width'#3'v'#1#7'Anc' + +'hors'#11#5'akTop'#6'akLeft'#7'akRight'#0#20'BorderSpacing.Around'#2#6#7'Cap' + +'tion'#6#27'SetAttributeToDefaultButton'#7'OnClick'#7' SetAttributeToDefault' + +'ButtonClick'#8'TabOrder'#2#5#0#0#7'TButton'#31'SetAllAttributesToDefaultBut' + +'ton'#23'AnchorSideRight.Control'#7#9'ColorPage'#20'AnchorSideRight.Side'#7#9 + +'asrBottom'#4'Left'#3#212#0#6'Height'#2#25#3'Top'#2'z'#5'Width'#3'v'#1#7'Anc' + +'hors'#11#5'akTop'#6'akLeft'#7'akRight'#0#20'BorderSpacing.Around'#2#6#7'Cap' + +'tion'#6#31'SetAllAttributesToDefaultButton'#7'OnClick'#7'$SetAllAttributesT' + +'oDefaultButtonClick'#8'TabOrder'#2#6#0#0#9'TGroupBox'#22'TextAttributesGrou' + +'pBox'#23'AnchorSideRight.Control'#7#9'ColorPage'#20'AnchorSideRight.Side'#7 + +#9'asrBottom'#24'AnchorSideBottom.Control'#7#12'ColorPreview'#4'Left'#3#212#0 + +#6'Height'#3#182#0#3'Top'#3#154#0#5'Width'#3'v'#1#7'Anchors'#11#5'akTop'#6'a' + +'kLeft'#7'akRight'#8'akBottom'#0#20'BorderSpacing.Around'#2#6#7'Caption'#6#10 + +'Attributes'#12'ClientHeight'#3#165#0#11'ClientWidth'#3'r'#1#8'TabOrder'#2#7 + +#0#6'TLabel'#15'ForeGroundLabel'#4'Left'#2#8#6'Height'#2#13#5'Width'#2'c'#7 + +'Caption'#6#15'ForeGroundLabel'#11'ParentColor'#8#0#0#12'TColorButton'#21'Fo' + +'regroundColorButton'#21'AnchorSideTop.Control'#7#15'ForeGroundLabel'#18'Anc' + +'horSideTop.Side'#7#9'asrBottom'#4'Left'#2#8#6'Height'#2#21#3'Top'#2#15#5'Wi' + +'dth'#2'K'#17'BorderSpacing.Top'#2#2#11'BorderWidth'#2#2#15'ButtonColorSize' + +#2#16#5'Color'#7#9'clBtnFace'#14'OnColorChanged'#7#23'ColorButtonColorChange' + +'d'#0#0#12'TColorButton'#21'BackGroundColorButton'#21'AnchorSideTop.Control' + +#7#15'BackGroundLabel'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#8#6'H' + +'eight'#2#21#3'Top'#2'8'#5'Width'#2'K'#17'BorderSpacing.Top'#2#2#11'BorderWi' + +'dth'#2#2#15'ButtonColorSize'#2#16#5'Color'#7#9'clBtnFace'#14'OnColorChanged' + +#7#23'ColorButtonColorChanged'#0#0#6'TLabel'#15'BackGroundLabel'#21'AnchorSi' + +'deTop.Control'#7#15'ForeGroundLabel'#18'AnchorSideTop.Side'#7#9'asrBottom'#4 + +'Left'#2#8#6'Height'#2#13#3'Top'#2')'#5'Width'#2'e'#17'BorderSpacing.Top'#2 + +#28#7'Caption'#6#15'BackGroundLabel'#11'ParentColor'#8#0#0#9'TCheckBox'#28'F' + +'oreGroundUseDefaultCheckBox'#21'AnchorSideTop.Control'#7#15'ForeGroundLabel' + +#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2'^'#6'Height'#2#20#3'Top'#2 + +#15#5'Width'#3#219#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#17'Border' + +'Spacing.Top'#2#2#7'Caption'#6#28'ForeGroundUseDefaultCheckBox'#8'OnChange'#7 + +#23'GeneralCheckBoxOnChange'#8'TabOrder'#2#0#0#0#9'TCheckBox'#28'BackGroundU' + +'seDefaultCheckBox'#21'AnchorSideTop.Control'#7#15'BackGroundLabel'#18'Ancho' + +'rSideTop.Side'#7#9'asrBottom'#4'Left'#2'^'#6'Height'#2#20#3'Top'#2'6'#5'Wid' + +'th'#3#219#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#19'BorderSpacing.' + +'Right'#2#2#7'Caption'#6#28'BackGroundUseDefaultCheckBox'#8'OnChange'#7#23'G' + +'eneralCheckBoxOnChange'#8'TabOrder'#2#1#0#0#9'TCheckBox'#16'TextBoldCheckBo' + +'x'#4'Left'#2#6#6'Height'#2#20#3'Top'#2'W'#5'Width'#3'f'#1#5'Align'#7#8'alBo' + +'ttom'#20'BorderSpacing.Around'#2#6#7'Caption'#6#16'TextBoldCheckBox'#8'OnCh' + +'ange'#7#23'GeneralCheckBoxOnChange'#8'TabOrder'#2#2#0#0#9'TCheckBox'#18'Tex' + +'tItalicCheckBox'#4'Left'#2#6#6'Height'#2#20#3'Top'#2'q'#5'Width'#3'f'#1#5'A' + ,'lign'#7#8'alBottom'#20'BorderSpacing.Around'#2#6#7'Caption'#6#18'TextItalic' + +'CheckBox'#8'OnChange'#7#23'GeneralCheckBoxOnChange'#8'TabOrder'#2#3#0#0#9'T' + +'CheckBox'#21'TextUnderlineCheckBox'#4'Left'#2#6#6'Height'#2#20#3'Top'#3#139 + +#0#5'Width'#3'f'#1#5'Align'#7#8'alBottom'#20'BorderSpacing.Around'#2#6#7'Cap' + +'tion'#6#21'TextUnderlineCheckBox'#8'OnChange'#7#23'GeneralCheckBoxOnChange' + +#8'TabOrder'#2#4#0#0#0#0#5'TPage'#13'CodetoolsPage'#7'Caption'#6#13'Codetool' + +'sPage'#11'ClientWidth'#3'P'#2#12'ClientHeight'#3#216#1#0#9'TGroupBox'#25'Au' + +'tomaticFeaturesGroupBox'#4'Left'#2#6#6'Height'#3#204#1#3'Top'#2#6#5'Width'#3 + +'D'#2#5'Align'#7#8'alClient'#20'BorderSpacing.Around'#2#6#7'Caption'#6#25'Au' + +'tomaticFeaturesGroupBox'#12'ClientHeight'#3#204#1#11'ClientWidth'#3'D'#2#8 + +'TabOrder'#2#0#0#6'TLabel'#14'AutoDelayLabel'#4'Left'#2#6#6'Height'#2#20#3'T' + +'op'#3#188#0#5'Width'#3'8'#2#5'Align'#7#5'alTop'#17'BorderSpacing.Top'#2#24 + +#20'BorderSpacing.Around'#2#6#7'Caption'#6#14'AutoDelayLabel'#11'ParentColor' + +#8#0#0#6'TLabel'#17'AutoDelayMinLabel'#21'AnchorSideTop.Control'#7#17'AutoDe' + +'layTrackBar'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2 + +#20#3'Top'#3#160#0#5'Width'#2'{'#17'BorderSpacing.Top'#2#2#7'Caption'#6#17'A' + +'utoDelayMinLabel'#11'ParentColor'#8#0#0#6'TLabel'#17'AutoDelayMaxLabel'#21 + +'AnchorSideTop.Control'#7#17'AutoDelayTrackBar'#18'AnchorSideTop.Side'#7#9'a' + +'srBottom'#4'Left'#3#171#1#6'Height'#2#20#3'Top'#3#160#0#5'Width'#2''#9'Ali' + +'gnment'#7#14'taRightJustify'#7'Anchors'#11#5'akTop'#7'akRight'#0#17'BorderS' + +'pacing.Top'#2#2#7'Caption'#6#17'AutoDelayMaxLabel'#11'ParentColor'#8#0#0#9 + +'TCheckBox AutoIdentifierCompletionCheckBox'#4'Left'#2#6#6'Height'#2#22#3'To' + +'p'#2#6#5'Width'#3'8'#2#5'Align'#7#5'alTop'#20'BorderSpacing.Around'#2#6#7'C' + +'aption'#6' AutoIdentifierCompletionCheckBox'#8'TabOrder'#2#0#0#0#9'TCheckBo' + +'x'#26'AutoCodeParametersCheckBox'#4'Left'#2#6#6'Height'#2#22#3'Top'#2'>'#5 + +'Width'#3'8'#2#5'Align'#7#5'alTop'#20'BorderSpacing.Around'#2#6#7'Caption'#6 + +#26'AutoCodeParametersCheckBox'#7'Enabled'#8#8'TabOrder'#2#1#0#0#9'TCheckBox' + +#27'AutoToolTipExprEvalCheckBox'#4'Left'#2#6#6'Height'#2#22#3'Top'#2'Z'#5'Wi' + +'dth'#3'8'#2#5'Align'#7#5'alTop'#20'BorderSpacing.Around'#2#6#7'Caption'#6#27 + +'AutoToolTipExprEvalCheckBox'#8'TabOrder'#2#2#0#0#9'TCheckBox'#28'AutoToolTi' + +'pSymbToolsCheckBox'#4'Left'#2#6#6'Height'#2#22#3'Top'#2'"'#5'Width'#3'8'#2#5 + +'Align'#7#5'alTop'#20'BorderSpacing.Around'#2#6#7'Caption'#6#28'AutoToolTipS' + +'ymbToolsCheckBox'#8'TabOrder'#2#3#0#0#9'TTrackBar'#17'AutoDelayTrackBar'#4 + +'Left'#2#6#6'Height'#2'('#3'Top'#2'v'#5'Width'#3'8'#2#9'Frequency'#3#250#0#3 + +'Max'#3#160#15#3'Min'#3#244#1#8'Position'#3#244#1#8'ScalePos'#7#5'trTop'#5'A' + +'lign'#7#5'alTop'#18'BorderSpacing.Left'#2#6#17'BorderSpacing.Top'#2#6#19'Bo' + +'rderSpacing.Right'#2#6#8'TabOrder'#2#4#0#0#0#0#5'TPage'#11'CodeFolding'#7'C' + +'aption'#6#11'CodeFolding'#11'ClientWidth'#3'P'#2#12'ClientHeight'#3#216#1#0 + +#6'TLabel'#19'lblDividerDrawLevel'#4'Left'#2#6#6'Height'#2#20#3'Top'#2'G'#5 + +'Width'#2'|'#7'Caption'#6#19'lblDividerDrawLevel'#11'ParentColor'#8#0#0#6'TB' + +'evel'#6'Bevel1'#4'Left'#2#6#6'Height'#2#2#3'Top'#2'1'#5'Width'#3#208#1#7'An' + +'chors'#11#5'akTop'#6'akLeft'#7'akRight'#0#0#0#9'TCheckBox'#21'chkCodeFoldin' + +'gEnabled'#4'Left'#2#6#6'Height'#2#22#3'Top'#2#23#5'Width'#3#175#0#7'Caption' + +#6#21'chkCodeFoldingEnabled'#8'OnChange'#7#27'chkCodeFoldingEnabledChange'#8 + +'TabOrder'#2#0#0#0#9'TSpinEdit'#18'edDividerDrawLevel'#4'Left'#3#211#0#6'Hei' + +'ght'#2#23#3'Top'#2'B'#5'Width'#2'2'#8'MaxValue'#2#10#8'MinValue'#2#1#8'TabO' + +'rder'#2#1#5'Value'#2#1#0#0#0#0#0#6'TPanel'#8'BtnPanel'#6'Height'#2'&'#3'Top' + +#3#6#2#5'Width'#3#235#2#5'Align'#7#8'alBottom'#8'AutoSize'#9#10'BevelOuter'#7 + +#6'bvNone'#12'ClientHeight'#2'&'#11'ClientWidth'#3#235#2#8'TabOrder'#2#0#0#7 + +'TButton'#8'OkButton'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3'C'#2 + +#6'Height'#2#26#3'Top'#2#6#5'Width'#2'K'#5'Align'#7#7'alRight'#8'AutoSize'#9 + +#20'BorderSpacing.Around'#2#6#7'Caption'#6#8'OkButton'#20'Constraints.MinWid' + +'th'#2'K'#7'OnClick'#7#13'OkButtonClick'#8'TabOrder'#2#0#0#0#7'TButton'#12'C' + +'ancelButton'#20'AnchorSideRight.Side'#7#9'asrBottom'#21'AnchorSideBottom.Si' + +'de'#7#9'asrBottom'#4'Left'#3#148#2#6'Height'#2#26#3'Top'#2#6#5'Width'#2'Q'#5 + +'Align'#7#7'alRight'#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#7'Caption'#6 + +#12'CancelButton'#20'Constraints.MinWidth'#2'K'#7'OnClick'#7#17'CancelButton' + +'Click'#8'TabOrder'#2#1#0#0#0#10'TImageList'#9'ImageList'#6'Height'#2#21#5'W' + +'idth'#2#21#4'left'#3'h'#1#3'top'#2'0'#6'Bitmap'#10#214#13#0#0'Li'#2#0#0#0#21 + +#0#0#0#21#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + ,#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'HNK'#255#139#145#141#255 + +#168#174#170#255#194#199#195#255#209#214#210#255#161#164#161#255#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0'z'#133#128#255#176#186#181#255#141#147#144#255#153 + +#156#154#255#147#148#147#255#188#192#188#255#229#234#230#255#174#178#176#255 + +'KNN'#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#170#177#173#255#168#177#173#255#189#196#192#255#140#144 + +#141#255#139#141#139#255#151#154#151#255#228#231#228#255#146#151#149#255'BIF' + +#255':@>'#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0'xzx'#255#231#233#231#255#208#210#209#255#172#176#173#255#180 + +#184#182#255#185#189#186#255#207#211#207#255'|'#128'~'#255'MVR'#255'GOL'#255 + +'6=;'#255'JPN'#255#149#155#151#255#165#172#168#255#203#207#203#255#193#197 + +#192#255#167#170#167#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#187#188#187#255#240 + +#242#240#255#239#240#238#255#227#229#227#255#202#205#202#255#189#192#189#255 + +#147#152#148#255'kuq'#255'Yc`'#255'FNK'#255'x'#129'}'#255#176#185#181#255#148 + +#152#149#255#168#170#169#255#211#213#211#255#204#208#204#255#230#234#230#255 + +#158#164#160#255#0#0#0#0#0#0#0#0#0#0#0#0#218#220#218#255#187#190#188#255#162 + +#166#163#255#180#187#182#255#179#184#180#255#167#170#167#255#140#145#141#255 + +'frl'#255'[c_'#255#155#163#158#255#167#176#171#255#198#205#202#255#142#144 + +#143#255#154#156#155#255#157#159#157#255#218#221#218#255#138#143#140#255'FMJ' + +#255#0#0#0#0#0#0#0#0#0#0#0#0'\a^'#255#149#158#153#255'tyv'#255'kmk'#255#228 + +#232#228#255#218#221#218#255#222#226#222#255#175#180#176#255'qvs'#255#234#237 + +#234#255#208#211#209#255#165#171#168#255#167#172#168#255#211#217#212#255#216 + +#221#217#255'ptq'#255'PXT'#255'HOL'#255#0#0#0#0#0#0#0#0#140#151#145#255#170 + +#183#176#255#140#146#142#255#208#213#209#255'vyw'#255'||'#255#185#188#185 + +#255#189#191#189#255'GLK'#255'dge'#255#243#245#243#255#235#236#235#255#234 + +#237#234#255#229#231#229#255#173#176#173#255#131#136#133#255'nxt'#255'[d`' + +#255'ISN'#255#0#0#0#0'z}z'#255#210#214#211#255#171#178#174#255#176#184#179 + +#255#206#211#208#255#184#188#184#255#225#229#225#255#159#164#160#255'KQN'#255 + +'IQM'#255'HOL'#255#228#230#228#255#231#232#231#255#226#229#226#255#222#227 + +#222#255#221#226#221#255#164#171#166#255'pzu'#255'^hd'#255'LWR'#255#0#0#0#0 + +#179#183#179#255#239#242#239#255#241#242#241#255#212#215#212#255#187#190#187 + +#255#173#177#174#255#145#151#147#255'_hd'#255'Wa\'#255'FOK'#255'AKG'#255#186 + +#189#187#255#228#231#228#255#222#226#222#255#220#225#220#255#220#225#220#255 + +#163#171#166#255'ozu'#255'akf'#255'ENJ'#255#0#0#0#0#220#223#220#255#239#240 + +#239#255#233#233#233#255#226#229#226#255#226#231#226#255#215#220#215#255#155 + +#163#158#255'oyu'#255'[ea'#255'ITO'#255'AKF'#255#0#0#0#0#148#151#148#255#213 + +#217#213#255#223#228#223#255#220#225#221#255#156#167#161#255'nyt'#255'LTP' + +#255#0#0#0#0#0#0#0#0#189#191#189#255#235#238#235#255#229#231#229#255#223#227 + +#223#255#220#225#220#255#218#222#218#255#157#164#160#255'nxt'#255'^gc'#255'H' + +'RM'#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#141#144#141#255#173#176#173#255'y' + +#128'|'#255';A>'#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'mom'#255#210#214#210#255 + +#221#226#221#255#220#225#220#255#218#224#219#255#153#164#158#255'nzt'#255'[d' + +'_'#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#139#142#139#255#208#211 + +#208#255#213#217#214#255#141#151#146#255'T^Z'#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'abb'#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#192#192#192#255#204#204#204#255#202#202#202#255#202#202 + +#202#255#201#201#201#255#200#200#200#255#199#199#199#255#198#198#198#255#197 + ,#197#197#255#193#193#193#255#186#186#186#255#184#184#184#255#180#180#180#255 + +#173#173#173#255#160#160#160#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#160 + +#160#160#255#246#246#246#255#246#246#246#255#238#238#238#255#230#230#230#255 + +#230#230#230#255#230#230#230#255#231#231#231#255#232#232#232#255#230#230#230 + +#255#229#229#229#255#228#228#228#255#226#226#226#255#222#222#222#255#204#204 + +#204#255#184#184#184#255'yyy'#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#165#165#165 + +#255#249#249#249#255#246#246#246#255#217#217#217#255#215#215#215#255#219#219 + +#219#255#222#222#222#255#225#225#225#255#228#228#228#255#230#230#230#255#233 + +#233#233#255#235#235#235#255#237#237#237#255#239#239#239#255#205#205#205#255 + +#178#178#178#255'ttt'#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#164#164#164#255#247 + +#247#247#255#245#245#245#255#216#216#216#255#218#218#218#255#222#222#222#255 + +#225#225#225#255#228#228#228#255#230#230#230#255#233#233#233#255#235#235#235 + +#255#237#237#237#255#239#239#239#255#241#241#241#255#203#203#203#255#168#168 + +#168#255'ooo'#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#162#162#162#255#243#243#243 + +#255#243#243#243#255#218#218#218#255#221#221#221#255#224#224#224#255#227#227 + +#227#255#230#230#230#255#232#232#232#255#233#233#233#255#185#185#185#255#217 + +#217#217#255#241#241#241#255#243#243#243#255#198#198#198#255#158#158#158#255 + +'mmm'#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#161#161#161#255#239#239#239#255#241 + +#241#241#255#222#222#222#255#224#224#224#255#227#227#227#255#229#229#229#255 + +#232#232#232#255#234#234#234#255#225#225#225#255#141#141#141#255#233#233#233 + +#255#242#242#242#255#244#244#244#255#198#198#198#255#157#157#157#255'kkk'#255 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#161#161#161#255#237#237#237#255#240#240#240 + +#255#224#224#224#255#226#226#226#255#229#229#229#255#231#231#231#255#234#234 + +#234#255#229#229#229#255#177#177#177#255#158#158#158#255#200#200#200#255#243 + +#243#243#255#245#245#245#255#195#195#195#255#148#148#148#255'iii'#255#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#160#160#160#255#237#237#237#255#240#240#240#255#227 + +#227#227#255#229#229#229#255#231#231#231#255#234#234#234#255#236#236#236#255 + +#147#147#147#255#137#137#137#255#173#173#173#255'ccc'#255#217#217#217#255#246 + +#246#246#255#191#191#191#255#139#139#139#255'eee'#255#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#160#160#160#255#236#236#236#255#240#240#240#255#229#229#229#255#230 + +#230#230#255#233#233#233#255#235#235#235#255#238#238#238#255#221#221#221#255 + +#219#219#219#255#196#196#196#255'aaa'#255#209#209#209#255#247#247#247#255#188 + +#188#188#255#132#132#132#255'```'#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#160#160 + +#160#255#235#235#235#255#240#240#240#255#231#231#231#255#233#233#233#255#235 + +#235#235#255#237#237#237#255#240#240#240#255#151#151#151#255'nnn'#255#150#150 + +#150#255'bbb'#255#210#210#210#255#248#248#248#255#186#186#186#255''#255']' + +']]'#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#159#159#159#255#232#232#232#255#239 + +#239#239#255#233#233#233#255#235#235#235#255#237#237#237#255#239#239#239#255 + +#241#241#241#255'UUU'#255#221#221#221#255#216#216#216#255']]]'#255#209#209 + +#209#255#249#249#249#255#184#184#184#255'{{{'#255'\\\'#255#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#158#158#158#255#229#229#229#255#236#236#236#255#235#235#235 + +#255#237#237#237#255#239#239#239#255#241#241#241#255#242#242#242#255#165#165 + +#165#255'|||'#255#142#142#142#255#144#144#144#255#202#202#202#255#250#250#250 + +#255#182#182#182#255'xxx'#255'ZZZ'#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#156 + +#156#156#255#223#223#223#255#232#232#232#255#238#238#238#255#239#239#239#255 + +#240#240#240#255#242#242#242#255#244#244#244#255#245#245#245#255#236#236#236 + +#255#245#245#245#255#249#249#249#255#250#250#250#255#251#251#251#255#174#174 + +#174#255'sss'#255'VVV'#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#154#154#154#255 + +#213#213#213#255#226#226#226#255#219#219#219#255#199#199#199#255#187#187#187 + +#255#185#185#185#255#185#185#185#255#183#183#183#255#180#180#180#255#178#178 + +#178#255#177#177#177#255#177#177#177#255#170#170#170#255'{{{'#255'kkk'#255'T' + +'TT'#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#149#149#149#255#205#205#205#255#192 + +#192#192#255'www'#255'HHH'#255'EEE'#255'GGG'#255'KKK'#255'OOO'#255'PPP'#255 + +'LLL'#255'GGG'#255'HHH'#255'NNN'#255'VVV'#255'lll'#255'QQQ'#255#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#129#129#129#255#156#156#156#255'\\\'#255'>>>'#255'BBB'#255 + +'@@@'#255'BBB'#255'CCC'#255'FFF'#255'HHH'#255'EEE'#255'CCC'#255'CCC'#255'EEE' + +#255'III'#255'UUU'#255'LLL'#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0')))'#255'###'#255'###'#255'"""'#255'"""'#255'"""'#255'"""'#255'"""'#255'"' + +'""'#255'"""'#255'"""'#255'"""'#255'"""'#255'$$$'#255#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +]); diff --git a/ide/editoroptions_new.pp b/ide/editoroptions_new.pp new file mode 100644 index 0000000000..215189c37c --- /dev/null +++ b/ide/editoroptions_new.pp @@ -0,0 +1,1801 @@ +{ $Id$ } +{ + *************************************************************************** + * * + * This source is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This code is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * General Public License for more details. * + * * + * A copy of the GNU General Public License is available on the World * + * Wide Web at . You can also * + * obtain it by writing to the Free Software Foundation, * + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + * * + *************************************************************************** + + Author: Mattias Gaertner + + Abstract: + Editor options container and editor options dialog. + The editor options are stored in XML format in the + ~/.lazarus/editoroptions.xml file. + Currently only for TSynEdit. +} +unit EditorOptions_new; + +{$mode objfpc}{$H+} + +interface + +uses + // RTL, FCL + Classes, Math, SysUtils, + // LCL + Buttons, ComCtrls, Controls, Dialogs, ExtCtrls, FileCtrl, Forms, Graphics, + GraphType, LCLIntf, LCLProc, LCLType, LResources, StdCtrls, + // synedit + SynEdit, SynEditAutoComplete, SynEditHighlighter, SynEditKeyCmds, + SynHighlighterCPP, SynHighlighterHTML, SynHighlighterJava, SynHighlighterLFM, + SynHighlighterPas, SynHighlighterPerl, SynHighlighterPHP, SynHighlighterSQL, + SynHighlighterPython, SynHighlighterUNIXShellScript, SynHighlighterXML, + // codetools + Laz_XMLCfg, + // IDEIntf + IDECommands, IDEWindowIntf, SrcEditorIntf, + // IDE + LazarusIDEStrConsts, IDEOptionDefs, IDEProcs, InputHistory, KeyMapping, + KeymapSchemeDlg, LazConf, Spin, + //PreferencesDialog + OptionsEditorBase, + // uses EditorOptions too for common declarations + EditorOptions + ; + +type + + { TEditorOptionsForm } + + TEditorOptionsForm = class(TOptionsEditorForm) + ForeGroundLabel: TLabel; + BackGroundLabel: TLabel; + EditorOptionsGroupBox: TCheckGroup; + + Notebook: TNotebook; + ImageList: TImageList; + + // general options + GeneralPage: TPage; + DisplayPage: TPage; + KeymappingPage: TPage; + ColorPage: TPage; + CodetoolsPage: TPage; + BlockIndentComboBox: TComboBox; + BlockIndentLabel: TLabel; + CodeFolding: TPage; + BtnPanel: TPanel; + UndoLimitComboBox: TComboBox; + UndoLimitLabel: TLabel; + TabWidthsComboBox: TComboBox; + TabWidthsLabel: TLabel; + + // Display options + MarginAndGutterGroupBox: TGroupBox; + VisibleRightMarginCheckBox: TCheckBox; + VisibleGutterCheckBox: TCheckBox; + ShowLineNumbersCheckBox: TCheckBox; + GutterColorButton: TColorButton; + GutterColorLabel: TLabel; + GutterWidthComboBox: TComboBox; + GutterWidthLabel: TLabel; + RightMarginComboBox: TComboBox; + RightMarginLabel: TLabel; + RightMarginColorButton: TColorButton; + RightMarginColorLabel: TLabel; + EditorFontGroupBox: TGroupBox; + EditorFontComboBox: TComboBox; + EditorFontButton: TButton; + EditorFontLabel: TLabel; + EditorFontHeightLabel: TLabel; + EditorFontHeightComboBox: TComboBox; + ExtraLineSpacingLabel: TLabel; + ExtraLineSpacingComboBox: TComboBox; + DisplayPreview: TPreviewEditor; + + // Key Mappings + KeyMappingChooseSchemeButton: TButton; + KeyMappingHelpLabel: TLabel; + KeyMappingTreeView: TTreeView; + KeyMappingConsistencyCheckButton: TButton; + + // Color options + LanguageComboBox: TComboBox; + LanguageLabel: TLabel; + FileExtensionsComboBox: TComboBox; + FileExtensionsLabel: TLabel; + ColorSchemeComboBox: TComboBox; + ColorSchemeLabel: TLabel; + ColorElementLabel: TLabel; + ColorElementListBox: TListBox; + TextAttributesGroupBox: TGroupBox; + TextBoldCheckBox: TCheckBox; + TextItalicCheckBox: TCheckBox; + TextUnderlineCheckBox: TCheckBox; + ForeGroundGroupBox: TGroupBox; + ForeGroundColorButton: TColorButton; + ForeGroundUseDefaultCheckBox: TCheckBox; + BackGroundGroupBox: TGroupBox; + BackGroundColorButton: TColorButton; + BackGroundUseDefaultCheckBox: TCheckBox; + SetAttributeToDefaultButton: TButton; + SetAllAttributesToDefaultButton: TButton; + ColorPreview: TPreviewEditor; + + // Code Tools options + AutomaticFeaturesGroupBox: TGroupBox; + AutoIdentifierCompletionCheckBox: TCheckBox; + AutoCodeParametersCheckBox: TCheckBox; + AutoToolTipExprEvalCheckBox: TCheckBox; + AutoToolTipSymbToolsCheckBox: TCheckBox; + AutoDelayLabel: TLabel; + AutoDelayTrackBar: TTrackBar; + AutoDelayMinLabel: TLabel; + AutoDelayMaxLabel: TLabel; + + // Code Folding + Bevel1: TBevel; + chkCodeFoldingEnabled: TCheckBox; + lblDividerDrawLevel: TLabel; + edDividerDrawLevel: TSpinEdit; + + // buttons at bottom + OkButton: TButton; + CancelButton: TButton; + + // general + procedure GeneralCheckBoxOnChange(Sender: TObject; Index: integer); + procedure ComboBoxOnChange(Sender: TObject); + procedure ComboBoxOnExit(Sender: TObject); + procedure ComboBoxOnKeyDown(Sender: TObject; + var Key: Word; Shift: TShiftState); + procedure ColorButtonColorChanged(Sender: TObject); + + // display + procedure FontDialogApplyClicked(Sender: TObject); + procedure EditorFontComboBoxEditingDone(Sender: TObject); + procedure EditorFontButtonClick(Sender: TObject); + procedure RightMarginColorButtonColorChanged(Sender: TObject); + + // key mapping + procedure KeyMappingChooseSchemeButtonClick(Sender: TObject); + procedure KeyMappingTreeViewMouseUp(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); + procedure KeyMappingConsistencyCheckButtonClick(Sender: TObject); + + // color + procedure ColorElementListBoxSelectionChange(Sender: TObject; User: Boolean); + procedure ColorPreviewMouseUp(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure OnSpecialLineColors(Sender: TObject; Line: Integer; + var Special: Boolean; var FG, BG: TColor); + procedure SetAttributeToDefaultButtonClick(Sender: TObject); + procedure SetAllAttributesToDefaultButtonClick(Sender: TObject); + + // code tools + + // Code Folding + procedure chkCodeFoldingEnabledChange(Sender: TObject); + + // buttons at bottom + procedure OkButtonClick(Sender: TObject); + procedure CancelButtonClick(Sender: TObject); + private + FormCreating: Boolean; + PreviewSyn: TCustomSyn; + PreviewEdits: array[1..2] of TPreviewEditor; + CurLanguageID: Integer; + // current index in EditorOpts.EditOptHighlighterList + CurHighlightElement: TSynHighlightElement; + UpdatingColor: Boolean; + fHighlighterList: TStringList; // list of "ColorScheme" Data=TCustomSyn + fColorSchemes: TStringList; // list of LanguageName=ColorScheme + fFileExtensions: TStringList; // list of LanguageName=FileExtensions + EditingKeyMap: TKeyCommandRelationList; + + procedure SetComboBoxText(AComboBox: TComboBox; const AText: String); + procedure FontDialogNameToFont(FontDialogName: String; AFont: TFont); + procedure InvalidatePreviews; + procedure SetPreviewSynInAllPreviews; + procedure SetupButtonBar; + + // general + procedure SetupGeneralPage(Page: Integer); + + // display + procedure SetupDisplayPage(Page: Integer); + + // keymapping + procedure SetupKeyMappingsPage(Page: Integer); + function KeyMappingRelationToString(Index: Integer): String; + function KeyMappingRelationToString(KeyRelation: + TKeyCommandRelation): String; + procedure FillKeyMappingTreeView; + + // color + procedure SetupColorPage(Page: Integer); + procedure ShowCurAttribute; + procedure FindCurHighlightElement; + function GetHighlighter(SynClass: TCustomSynClass; + const ColorScheme: String; CreateIfNotExists: Boolean): TCustomSyn; + procedure ClearHighlighters; + procedure SaveAllHighlighters; + procedure FillColorElementListBox; + function GetCurColorScheme(const LanguageName: String): String; + procedure SetCurColorScheme(const LanguageName, ColorScheme: String); + procedure SaveAllColorSchemes; + function GetCurFileExtensions(const LanguageName: String): String; + procedure SetCurFileExtensions(const LanguageName, FileExtensions: String); + procedure SaveAllFileExtensions; + procedure SetColorElementsToDefaults(OnlySelected: Boolean); + + // code tools + procedure SetupCodeToolsPage(Page: Integer); + + // Code Folding + procedure SetupCodeFoldingPage(Page: integer); + public + constructor Create(TheOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + + +const + ValidAttribChars = ['a'..'z', 'A'..'Z', '_', '0'..'9']; + + DefaultColorScheme = 'Default'; + + +function CheckGroupItemChecked(CheckGroup: TCheckGroup; + const Caption: string): Boolean; +begin + Result:=CheckGroup.Checked[CheckGroup.Items.IndexOf(Caption)]; +end; + + +function StrToValidXMLName(const s: String): String; +var + i: Integer; +begin + Result := s; + // replace invalid characters + for i := 1 to length(Result) do + if (not (Result[i] in ValidAttribChars)) then + Result[i] := '_'; +end; + +procedure CopyHiLightAttributeValues(Src, Dest: TSynHighlightElement); +begin + Dest.Background := Src.Background; + Dest.Foreground := Src.Foreground; + Dest.Style := Src.Style; +end; + +{ TEditorOptionsForm } + +constructor TEditorOptionsForm.Create(TheOwner: TComponent); +var + a: Integer; + s: String; + i: Integer; + Title: string; +begin + inherited Create(TheOwner); + FormCreating := True; + Caption := lismenueditoroptions; + + IDEDialogLayoutList.ApplyLayout(Self, 480, 480); + + NoteBook.PageIndex := 0; + + SetupGeneralPage(0); + SetupDisplayPage(1); + SetupKeyMappingsPage(2); + SetupColorPage(3); + SetupCodeToolsPage(4); + SetupCodeFoldingPage(5); + SetupButtonBar; + + UpdatingColor := False; + CurHighlightElement := Nil; + + // create a temporary copy of the keymap for editing + EditingKeyMap := TKeyCommandRelationList.Create; + EditingKeyMap.Assign(EditorOpts.KeyMap); + + // initialize previews + for a := Low(PreviewEdits) to High(PreviewEdits) do + PreviewEdits[a] := Nil; + s := GetCurColorScheme(TPreviewPasSyn.GetLanguageName); + PreviewSyn := GetHighlighter(TPreviewPasSyn, s, True); + CurLanguageID := EditorOpts.HighlighterList.FindByClass( + TCustomSynClass(PreviewSyn.ClassType)); + + PreviewEdits[1] := DisplayPreview; + PreviewEdits[2] := ColorPreview; + for a := Low(PreviewEdits) to High(PreviewEdits) do + if PreviewEdits[a] <> Nil then + with PreviewEdits[a] do + begin + if EditorOpts.UseSyntaxHighlight then + Highlighter := PreviewSyn; + EditorOpts.GetSynEditSettings(PreviewEdits[a]); + EditingKeyMap.AssignTo(PreviewEdits[a].KeyStrokes, + TSourceEditorWindowInterface); + if a <> 3 then + begin + Lines.Text := EditorOpts.HighlighterList[CurLanguageID].SampleSource; + PreviewEdits[a].Options := + PreviewEdits[a].Options + [eoNoCaret, + eoNoSelection] - [eoBracketHighlight]; + end; + end; + + // general options + + // display options + + // key mappings + FillKeyMappingTreeView; + + // color options + LanguageComboBox.Text := PreviewSyn.LanguageName; + SetComboBoxText(LanguageComboBox, LanguageComboBox.Text); + ColorSchemeComboBox.Text := GetCurColorScheme(PreviewSyn.LanguageName); + SetComboBoxText(ColorSchemeComboBox, ColorSchemeComboBox.Text); + FillColorElementListBox; + FindCurHighlightElement; + ShowCurAttribute; + + // code Tools options + + NoteBook.PageIndex := 0; + FormCreating := False; + //Indexing item + for i:= 0 to NoteBook.PageCount-1 do + begin + Title:=NoteBook.Pages[i]; + ScanControlTextsForIndex(Title, NoteBook.Page[i]); + end +end; + +destructor TEditorOptionsForm.Destroy; +begin + ClearHighlighters; + fColorSchemes.Free; + fFileExtensions.Free; + EditingKeyMap.Free; + inherited Destroy; +end; + + +// general + +procedure TEditorOptionsForm.GeneralCheckBoxOnChange(Sender: TObject; Index: integer); +var + a: Integer; + NewColor: TColor; + i: LongInt; + + procedure SetOption(const CheckBoxName: String; AnOption: TSynEditorOption); + var + a: Integer; + i: LongInt; + begin + i:=EditorOptionsGroupBox.Items.IndexOf(CheckBoxName); + if i<0 then begin + DebugLn(['TEditorOptionsForm.GeneralCheckBoxOnChange.SetOption i<0']); + exit; + end; + for a := Low(PreviewEdits) to High(PreviewEdits) do + if PreviewEdits[a] <> Nil then + if EditorOptionsGroupBox.Checked[i] then + PreviewEdits[a].Options := PreviewEdits[a].Options + [AnOption] + else + PreviewEdits[a].Options := PreviewEdits[a].Options - [AnOption]; + end; + + procedure SetOption2(const CheckBoxName: String; AnOption: TSynEditorOption2); + var + a: Integer; + i: LongInt; + begin + i:=EditorOptionsGroupBox.Items.IndexOf(CheckBoxName); + if i<0 then exit; + for a := Low(PreviewEdits) to High(PreviewEdits) do + if PreviewEdits[a] <> Nil then + if EditorOptionsGroupBox.Checked[i] then + PreviewEdits[a].Options2 := PreviewEdits[a].Options2 + [AnOption] + else + PreviewEdits[a].Options2 := PreviewEdits[a].Options2 - [AnOption]; + end; + + // GeneralCheckBoxOnChange +begin + if FormCreating then + exit; + // general + SetOption(dlgAltSetClMode, eoAltSetsColumnMode); + SetOption(dlgAutoIdent, eoAutoIndent); + // not for Preview: SetOption(dlgBracHighlight,eoBracketHighlight); + SetOption(dlgDoubleClickLine, eoDoubleClickSelectsLine); + SetOption(dlgDragDropEd, eoDragDropEditing); + SetOption(dlgDropFiles, eoDropFiles); + SetOption(dlgGroupUndo, eoGroupUndo); + SetOption(dlgHomeKeyJumpsToNearestStart, eoEnhanceHomeKey); + SetOption(dlgHalfPageScroll, eoHalfPageScroll); + SetOption(dlgKeepCaretX, eoKeepCaretX); + SetOption(dlgPersistentCaret, eoPersistentCaret); + SetOption(dlgRightMouseMovesCursor, eoRightMouseMovesCursor); + // not for Preview: SetOption('NoSelectionCheckBox',eoNoSelection); + SetOption(dlgScrollByOneLess, eoScrollByOneLess); + SetOption(dlgScrollPastEndFile, eoScrollPastEoF); + SetOption(dlgScrollPastEndLine, eoScrollPastEoL); + SetOption(dlgShowScrollHint, eoShowScrollHint); + SetOption(dlgSmartTabs, eoSmartTabs); + SetOption(dlgTabsToSpaces, eoTabsToSpaces); + SetOption(dlgTabIndent, eoTabIndent); + SetOption(dlgTrimTrailingSpaces, eoTrimTrailingSpaces); + + SetOption2(dlgCaretSkipsSelection, eoCaretSkipsSelection); + SetOption2(dlgAlwaysVisibleCaret, eoAlwaysVisibleCaret); + + for a := Low(PreviewEdits) to High(PreviewEdits) do + if PreviewEdits[a] <> Nil then + begin + // general + i:=EditorOptionsGroupBox.Items.IndexOf(dlgUseSyntaxHighlight); + if EditorOptionsGroupBox.Checked[i] then + PreviewEdits[a].Highlighter := PreviewSyn + else + PreviewEdits[a].Highlighter := Nil; + // display + if (a in [1, 2]) then + PreviewEdits[a].Gutter.Visible := VisibleGutterCheckBox.Checked; + PreviewEdits[a].Gutter.ShowLineNumbers := ShowLineNumbersCheckBox.Checked; + PreviewEdits[a].RightEdgeColor:=RightMarginColorButton.ButtonColor; + if VisibleRightMarginCheckBox.Checked then + PreviewEdits[a].RightEdge:=StrToIntDef(RightMarginComboBox.Text,80) + else + PreviewEdits[a].RightEdge:=0; + end; + if CurHighlightElement <> Nil then + begin + if Sender = ForeGroundUseDefaultCheckBox then + if UpdatingColor = False then + begin + UpdatingColor := True; + if not ForeGroundUseDefaultCheckBox.Checked then + NewColor := ForeGroundColorButton.ButtonColor + else + NewColor := clNone; + ForeGroundColorButton.Visible := not + ForeGroundUseDefaultCheckBox.Checked; + if NewColor <> CurHighlightElement.Foreground then + begin + CurHighlightElement.Foreground := NewColor; + InvalidatePreviews; + end; + UpdatingColor := False; + end; + if Sender = BackGroundUseDefaultCheckBox then + if UpdatingColor = False then + begin + if not BackGroundUseDefaultCheckBox.Checked then + NewColor := BackGroundColorButton.ButtonColor + else + NewColor := clNone; + BackGroundColorButton.Visible := not + BackGroundUseDefaultCheckBox.Checked; + if NewColor <> CurHighlightElement.Background then + begin + CurHighlightElement.Background := NewColor; + InvalidatePreviews; + end; + end; + if Sender = TextBoldCheckBox then + if TextBoldCheckBox.Checked xor (fsBold in CurHighlightElement.Style) then + begin + if TextBoldCheckBox.Checked then + CurHighlightElement.Style := CurHighlightElement.Style + [fsBold] + else + CurHighlightElement.Style := CurHighlightElement.Style - [fsBold]; + InvalidatePreviews; + end; + if Sender = TextItalicCheckBox then + if TextItalicCheckBox.Checked then + begin + if not (fsItalic in CurHighlightElement.Style) then + begin + CurHighlightElement.Style := CurHighlightElement.Style + [fsItalic]; + InvalidatePreviews; + end; + end + else + if (fsItalic in CurHighlightElement.Style) then + begin + CurHighlightElement.Style := CurHighlightElement.Style - [fsItalic]; + InvalidatePreviews; + end; + if Sender = TextUnderlineCheckBox then + if TextUnderlineCheckBox.Checked then + begin + if not (fsUnderline in CurHighlightElement.Style) then + begin + CurHighlightElement.Style := CurHighlightElement.Style + [fsUnderline]; + InvalidatePreviews; + end; + end + else + if (fsUnderline in CurHighlightElement.Style) then + begin + CurHighlightElement.Style := CurHighlightElement.Style - [fsUnderline]; + InvalidatePreviews; + end; + end; +end; + +procedure TEditorOptionsForm.chkCodeFoldingEnabledChange(Sender: TObject); +begin + lblDividerDrawLevel.Enabled := chkCodeFoldingEnabled.Checked; + edDividerDrawLevel.Enabled := chkCodeFoldingEnabled.Checked; +end; + +procedure TEditorOptionsForm.EditorFontComboBoxEditingDone(Sender: TObject); +var + i: Integer; +begin + for i := Low(PreviewEdits) to High(PreviewEdits) do + if PreviewEdits[i] <> Nil then + PreviewEdits[i].Font.Name:=EditorFontComboBox.Text; +end; + +procedure TEditorOptionsForm.ColorButtonColorChanged(Sender: TObject); +var + a: Integer; +begin + if FormCreating then + exit; + if Sender = ForeGroundColorButton then + begin + if (CurHighlightElement = Nil) or UpdatingColor then + exit; + if not ForeGroundUseDefaultCheckBox.Checked then + begin + CurHighlightElement.Foreground := ForeGroundColorButton.ButtonColor; + InvalidatePreviews; + end; + end; + if Sender = BackGroundColorButton then + begin + if (CurHighlightElement = Nil) or UpdatingColor then + exit; + if not BackGroundUseDefaultCheckBox.Checked then + begin + CurHighlightElement.Background := BackGroundColorButton.ButtonColor; + InvalidatePreviews; + end; + end; + if Sender = GutterColorButton then + for a := Low(PreviewEdits) to High(PreviewEdits) do + if PreviewEdits[a] <> Nil then + begin + PreviewEdits[a].Gutter.Color := GutterColorButton.ButtonColor; + PreviewEdits[a].Invalidate; + end; +end; + +procedure TEditorOptionsForm.FontDialogNameToFont(FontDialogName: String; + AFont: TFont); +var + TmpFont: TFont; + p, p2, index: Integer; + s: shortstring; +begin + TmpFont := TFont.Create; + TmpFont.Assign(AFont); + try + p := 1; + p2 := 0; + index := 1; + while (p <= length(FontDialogName)) do + begin + if (FontDialogName[p] = '-') then + begin + s := copy(FontDialogName, p2 + 1, p - p2 - 1); + p2 := p; + case Index of + 3: + TmpFont.Name := s; + //8:TmpFont.Height:=StrToIntDef(s,TmpFont.Height); + end; + inc(Index); + end; + inc(p); + end; + AFont.Assign(TmpFont); + finally + TmpFont.Free; + end; +end; + +procedure TEditorOptionsForm.FontDialogApplyClicked(Sender: TObject); +var + a: Integer; +begin + for a := Low(PreviewEdits) to High(PreviewEdits) do + if PreviewEdits[a] <> Nil then + PreviewEdits[a].Font.Assign(TFontDialog(Sender).Font); + EditorFontComboBox.Text := DisplayPreview.Font.Name; + SetComboBoxText(EditorFontHeightComboBox, + IntToStr(DisplayPreview.Font.Height)); +end; + +procedure TEditorOptionsForm.EditorFontButtonClick(Sender: TObject); +var + FontDialog: TFontDialog; +begin + FontDialog := TFontDialog.Create(Nil); + try + with FontDialog do + begin + Font.Name := EditorFontComboBox.Text; + Font.Height := StrToIntDef(EditorFontHeightComboBox.Text, PreviewEdits[1].Font.Height); + Options := Options + [fdApplyButton]; + OnApplyClicked := @FontDialogApplyClicked; + if Execute then + FontDialogApplyClicked(FontDialog); + end; + finally + FontDialog.Free; + end; +end; + +procedure TEditorOptionsForm.KeyMappingChooseSchemeButtonClick( + Sender: TObject); +var + NewScheme: String; +begin + if ShowChooseKeySchemeDialog(NewScheme) <> mrOk then + exit; + EditingKeyMap.LoadScheme(NewScheme); + FillKeyMappingTreeView; +end; + +procedure TEditorOptionsForm.ComboBoxOnExit(Sender: TObject); +var + NewVal, a: Integer; + Box: TComboBox; +begin + if FormCreating then + exit; + Box := TComboBox(Sender); + if PreviewEdits[1] <> Nil then + if Sender = BlockIndentComboBox then + begin + NewVal := StrToIntDef(BlockIndentComboBox.Text, + PreviewEdits[1].BlockIndent); + SetComboBoxText(BlockIndentComboBox, IntToStr(NewVal)); + for a := Low(PreviewEdits) to High(PreviewEdits) do + if PreviewEdits[a] <> Nil then + PreviewEdits[a].BlockIndent := NewVal; + end + else + if Sender = TabWidthsComboBox then + begin + NewVal := StrToIntDef(TabWidthsComboBox.Text, + PreviewEdits[1].TabWidth); + SetComboBoxText(TabWidthsComboBox, IntToStr(NewVal)); + for a := Low(PreviewEdits) to High(PreviewEdits) do + if PreviewEdits[a] <> Nil then + PreviewEdits[a].TabWidth := NewVal; + end + // display + else + if Sender = EditorFontHeightComboBox then + begin + NewVal := StrToIntDef(EditorFontHeightComboBox.Text, + PreviewEdits[1].Font.Height); + if (NewVal < 0) then + if (NewVal > -6) then + NewVal := -6; + if (NewVal >= 0) then + if (NewVal < 6) then + NewVal := 6; + if (NewVal > 40) then + NewVal := 40; + if (NewVal < -40) then + NewVal := -40; + SetComboBoxText(EditorFontHeightComboBox, IntToStr(NewVal)); + for a := Low(PreviewEdits) to High(PreviewEdits) do + if PreviewEdits[a] <> Nil then + PreviewEdits[a].Font.Height := NewVal; + end + else + if Sender = ExtraLineSpacingComboBox then + begin + NewVal := StrToIntDef(ExtraLineSpacingComboBox.Text, + PreviewEdits[1].ExtraLineSpacing); + SetComboBoxText(ExtraLineSpacingComboBox, IntToStr(NewVal)); + for a := Low(PreviewEdits) to High(PreviewEdits) do + if PreviewEdits[a] <> Nil then + PreviewEdits[a].ExtraLineSpacing := NewVal; + end + else + if Sender = GutterWidthComboBox then + begin + NewVal := StrToIntDef(GutterWidthComboBox.Text, + PreviewEdits[1].Gutter.Width); + SetComboBoxText(GutterWidthComboBox, IntToStr(NewVal)); + for a := Low(PreviewEdits) to High(PreviewEdits) do + if PreviewEdits[a] <> Nil then + PreviewEdits[a].Gutter.Width := NewVal; + end + else + if Sender = RightMarginComboBox then + begin + NewVal := StrToIntDef(RightMarginComboBox.Text,PreviewEdits[1].RightEdge); + SetComboBoxText(RightMarginComboBox, IntToStr(NewVal)); + for a := Low(PreviewEdits) to High(PreviewEdits) do + if PreviewEdits[a] <> Nil then begin + if VisibleRightMarginCheckBox.Checked then + PreviewEdits[a].RightEdge := NewVal + else + PreviewEdits[a].RightEdge := 0; + end; + end + // color + else + if Sender = ColorSchemeComboBox then + begin + if Box.Items.IndexOf(Box.Text) < 0 then + SetComboBoxText(Box, GetCurColorScheme(PreviewSyn.LanguageName)) + // unknown color scheme -> switch back + else + if Box.Text <> GetCurColorScheme(PreviewSyn.LanguageName) then + begin + SetCurColorScheme(PreviewSyn.LanguageName, Box.Text); + SetComboBoxText(Box, Box.Text); + PreviewSyn := GetHighlighter(TCustomSynClass(PreviewSyn.ClassType), + Box.Text, True); + SetPreviewSynInAllPreviews; + FillColorElementListBox; + FindCurHighlightElement; + end// change the colorscheme + ; + end + else + if Sender = FileExtensionsComboBox then + begin + //DebugLn(['TEditorOptionsForm.ComboBoxOnExit Box.Text="',Box.Text,'" Old="',GetCurFileExtensions(PreviewSyn.LanguageName),'" PreviewSyn.LanguageName=',PreviewSyn.LanguageName]); + if Box.Text <> GetCurFileExtensions(PreviewSyn.LanguageName) then + begin + SetCurFileExtensions(PreviewSyn.LanguageName, Box.Text); + SetComboBoxText(Box, Box.Text); + end; + //DebugLn(['TEditorOptionsForm.ComboBoxOnExit Box.Text="',Box.Text,'" Now="',GetCurFileExtensions(PreviewSyn.LanguageName),'" PreviewSyn.LanguageName=',PreviewSyn.LanguageName]); + end + else + if Sender = LanguageComboBox then + if Box.Items.IndexOf(Box.Text) < 0 then + SetComboBoxText(Box, PreviewSyn.LanguageName)// unknown language -> switch back + else + if Box.Text <> PreviewSyn.LanguageName then + begin + NewVal := EditorOpts.HighlighterList.FindByName(Box.Text); + if NewVal >= 0 then + begin + SetComboBoxText(Box, Box.Text); + CurLanguageID := NewVal; + PreviewSyn := GetHighlighter( + EditorOpts.HighlighterList[CurLanguageID].SynClass, + GetCurColorScheme( + EditorOpts.HighlighterList[ + CurLanguageID].SynClass.GetLanguageName) + , True); + SetComboBoxText(ColorSchemeComboBox, + GetCurColorScheme(PreviewSyn.LanguageName)); + SetComboBoxText(FileExtensionsComboBox, + GetCurFileExtensions(PreviewSyn.LanguageName)); + for a := Low(PreviewEdits) to High(PreviewEdits) do + if a <> 3 then + PreviewEdits[a].Lines.Text := + EditorOpts.HighlighterList[CurLanguageID].SampleSource; + SetPreviewSynInAllPreviews; + FillColorElementListBox; + FindCurHighlightElement; + end; + end// change language + // general + ; +end; + +procedure TEditorOptionsForm.ComboBoxOnKeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); +begin + if (ssCtrl in Shift) and (Key = VK_S) then + ComboBoxOnExit(Sender); +end; + +procedure TEditorOptionsForm.ComboBoxOnChange(Sender: TObject); +var + ComboBox: TComboBox; +begin + ComboBox := TComboBox(Sender); + if ComboBox.Items.IndexOf(ComboBox.Text) >= 0 then + ComboBoxOnExit(Sender); +end; + +procedure TEditorOptionsForm.FindCurHighlightElement; +var + a, i: Integer; + Old: TSynHighlightElement; +begin + Old := CurHighlightElement; + CurHighlightElement := Nil; + a := ColorElementListBox.ItemIndex; + if (a >= 0) then + begin + i := PreviewSyn.AttrCount - 1; + while (i >= 0) do + begin + if ColorElementListBox.Items[a] = PreviewSyn.Attribute[i].Name then + begin + CurHighlightElement := PreviewSyn.Attribute[i]; + break; + end; + dec(i); + end; + end; + if Old <> CurHighlightElement then + ShowCurAttribute; +end; + +procedure TEditorOptionsForm.InvalidatePreviews; +var + a: Integer; +begin + for a := Low(PreviewEdits) to High(PreviewEdits) do + if PreviewEdits[a] <> Nil then + PreviewEdits[a].Invalidate; +end; + +procedure TEditorOptionsForm.SetPreviewSynInAllPreviews; +var + a: Integer; +begin + for a := Low(PreviewEdits) to High(PreviewEdits) do + if PreviewEdits[a] <> Nil then + if EditorOpts.UseSyntaxHighlight then + PreviewEdits[a].Highlighter := PreviewSyn + else + PreviewEdits[a].Highlighter := Nil; +end; + +procedure TEditorOptionsForm.ShowCurAttribute; +begin + if (CurHighlightElement = Nil) or UpdatingColor then + exit; + UpdatingColor := True; + TextBoldCheckBox.Checked := fsBold in CurHighlightElement.Style; + TextItalicCheckBox.Checked := fsItalic in CurHighlightElement.Style; + TextUnderlineCheckBox.Checked := fsUnderline in CurHighlightElement.Style; + if CurHighlightElement.Foreground = clNone then + ForeGroundUseDefaultCheckBox.Checked := True + else + begin + ForeGroundUseDefaultCheckBox.Checked := False; + ForeGroundColorButton.ButtonColor := CurHighlightElement.Foreground; + end; + ForeGroundColorButton.Visible := not ForeGroundUseDefaultCheckBox.Checked; + if CurHighlightElement.Background = clNone then + BackGroundUseDefaultCheckBox.Checked := True + else + begin + BackGroundUseDefaultCheckBox.Checked := False; + BackGroundColorButton.ButtonColor := CurHighlightElement.Background; + end; + BackGroundColorButton.Visible := not BackGroundUseDefaultCheckBox.Checked; + UpdatingColor := False; +end; + +procedure TEditorOptionsForm.KeyMappingTreeViewMouseUp(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +var + i: Integer; + ARelation: TKeyCommandRelation; + ANode: TTreeNode; +begin + ANode := KeyMappingTreeView.GetNodeAt(X, Y); + if (ANode <> Nil) and (ANode.Data <> Nil) and + (TObject(ANode.Data) is TKeyCommandRelation) then + begin + ARelation := TKeyCommandRelation(ANode.Data); + i := EditingKeyMap.IndexOf(ARelation); + if (i >= 0) and (ShowKeyMappingEditForm(i, EditingKeyMap) = mrOk) then + begin + FillKeyMappingTreeView; + for i := Low(PreviewEdits) to High(PreviewEdits) do + if PreviewEdits[i] <> Nil then + EditingKeyMap.AssignTo(PreviewEdits[i].KeyStrokes, + TSourceEditorWindowInterface); + end; + end; +end; + +type + TKeyMapErrorsForm = class(TForm) + ListBox: TListBox; + BackButton: TButton; + procedure BackButtonClick(Sender: TObject); + public + constructor Create(AnOwner: TComponent); override; + end; + +constructor TKeyMapErrorsForm.Create(AnOwner: TComponent); +begin + inherited Create(AnOwner); + if LazarusResources.Find(ClassName) = Nil then + begin + SetBounds((Screen.Width - 410) div 2, (Screen.Height - 260) div 2, 400, 250); + Caption := dlgKeyMappingErrors; + + ListBox := TListBox.Create(Self); + with ListBox do + begin + Name := 'ListBox'; + Parent := Self; + Left := 0; + Top := 0; + Width := Self.ClientWidth - 4; + Height := Self.ClientHeight - 50; + end; + + BackButton := TButton.Create(Self); + with BackButton do + begin + Name := 'BackButton'; + Parent := Self; + Width := 60; + Height := 25; + Caption := dlgEdBack; + Left := ((Self.ClientWidth - 4) - Width) div 2; + Top := Self.ClientHeight - 38; + OnClick := @BackButtonClick; + end; + end; +end; + +procedure TKeyMapErrorsForm.BackButtonClick(Sender: TObject); +begin + ModalResult := mrOk; +end; + +procedure TEditorOptionsForm.KeyMappingConsistencyCheckButtonClick( + Sender: TObject); +var + Protocol: TStringList; + ErrorCount, Index1, Index2: Integer; + ACaption, AText: String; + KeyMapErrorsForm: TKeyMapErrorsForm; +begin + Protocol := TStringList.Create; + try + ErrorCount := FindKeymapConflicts(EditingKeyMap, Protocol, Index1, Index2); + if ErrorCount > 0 then + begin + KeyMapErrorsForm := TKeyMapErrorsForm.Create(Nil); + try + KeyMapErrorsForm.ListBox.Items.Assign(Protocol); + KeyMapErrorsForm.ShowModal; + finally + KeyMapErrorsForm.Free; + end; + end + else + begin + ACaption := dlgReport; + AText := dlgEdNoErr; + MessageDlg(ACaption, AText, mtInformation, [mbOk], 0); + end; + finally + Protocol.Free; + end; +end; + +procedure TEditorOptionsForm.ColorElementListBoxSelectionChange( + Sender: TObject; + User: Boolean); +begin + FindCurHighlightElement; +end; + +procedure TEditorOptionsForm.FillColorElementListBox; +var + i: Integer; +begin + with ColorElementListBox.Items do + begin + BeginUpdate; + Clear; + + for i := 0 to PreviewSyn.AttrCount - 1 do + if PreviewSyn.Attribute[i].Name <> '' then + Add(PreviewSyn.Attribute[i].Name); + EndUpdate; + end; + + CurHighlightElement := Nil; + if ColorElementListBox.Items.Count > 0 then + ColorElementListBox.Selected[0] := True; + FindCurHighlightElement; +end; + +procedure TEditorOptionsForm.ColorPreviewMouseUp(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +var + NewIndex: Integer; + Token: String; + Attri: TSynHighlightElement; + MouseXY, XY: TPoint; + AddAttr: TAdditionalHilightAttribute; +begin + MouseXY := Point(X, Y); + XY := ColorPreview.PixelsToRowColumn(MouseXY); + NewIndex := -1; + if CurLanguageID >= 0 then + begin + AddAttr := EditorOpts.HighlighterList[ + CurLanguageID].SampleLineToAddAttr(XY.Y); + if AddAttr <> ahaNone then + NewIndex := ColorElementListBox.Items.IndexOf( + AdditionalHighlightAttributes[AddAttr]); + end; + if NewIndex < 0 then + begin + ColorPreview.GetHighlighterAttriAtRowCol(XY, Token, Attri); + if Attri = Nil then + Attri := PreviewSyn.WhitespaceAttribute; + if Attri <> Nil then + NewIndex := ColorElementListBox.Items.IndexOf(Attri.Name); + end; + if NewIndex >= 0 then + begin + ColorElementListBox.ItemIndex := NewIndex; + FindCurHighlightElement; + end; +end; + +procedure TEditorOptionsForm.OnSpecialLineColors(Sender: TObject; + Line: Integer; var Special: Boolean; var FG, BG: TColor); +var + e: TSynHighlightElement; + AddAttr: TAdditionalHilightAttribute; + i: Integer; +begin + if CurLanguageID >= 0 then + begin + AddAttr := EditorOpts.HighlighterList[CurLanguageID].SampleLineToAddAttr(Line); + if AddAttr <> ahaNone then + begin + i := PreviewSyn.AttrCount - 1; + while (i >= 0) do + begin + e := PreviewSyn.Attribute[i]; + if e.Name = '' then + continue; + if e.Name = AdditionalHighlightAttributes[AddAttr] then + begin + Special := (e.ForeGround <> clNone) or (e.BackGround <> clNone); + if e.ForeGround <> clNone then + FG := e.ForeGround; + if e.BackGround <> clNone then + BG := e.BackGround; + exit; + end; + dec(i); + end; + end; + end; +end; + +procedure TEditorOptionsForm.RightMarginColorButtonColorChanged(Sender: TObject + ); +var + a: Integer; +begin + for a := Low(PreviewEdits) to High(PreviewEdits) do + if PreviewEdits[a] <> Nil then + PreviewEdits[a].RightEdgeColor:=RightMarginColorButton.ButtonColor; +end; + +procedure TEditorOptionsForm.SetAttributeToDefaultButtonClick(Sender: TObject); +begin + SetColorElementsToDefaults(True); +end; + +procedure TEditorOptionsForm.SetAllAttributesToDefaultButtonClick( + Sender: TObject); +begin + SetColorElementsToDefaults(False); +end; + +procedure TEditorOptionsForm.SetColorElementsToDefaults(OnlySelected: Boolean); +var + DefaultSyn: TCustomSyn; + PascalSyn: TPreviewPasSyn; + i, j: Integer; + CurSynClass: TCustomSynClass; +begin + PascalSyn := TPreviewPasSyn(GetHighlighter(TPreviewPasSyn, + ColorSchemeComboBox.Text, True)); + CurSynClass := TCustomSynClass(PreviewSyn.ClassType); + DefaultSyn := CurSynClass.Create(Nil); + try + EditorOpts.AddSpecialHilightAttribsToHighlighter(DefaultSyn); + EditorOpts.ReadDefaultsForHighlighterSettings(DefaultSyn, + ColorSchemeComboBox.Text, PascalSyn); + for i := 0 to DefaultSyn.AttrCount - 1 do + begin + if DefaultSyn.Attribute[i].Name = '' then + continue; + if OnlySelected then + begin + if (DefaultSyn.Attribute[i].Name = CurHighlightElement.Name) then + CopyHiLightAttributeValues(DefaultSyn.Attribute[i], + CurHighlightElement); + end + else + for j := 0 to PreviewSyn.AttrCount - 1 do + if PreviewSyn.Attribute[j].Name = DefaultSyn.Attribute[i].Name then + CopyHiLightAttributeValues(DefaultSyn.Attribute[i], + PreviewSyn.Attribute[j]); + end; + finally + DefaultSyn.Free; + end; + ShowCurAttribute; +end; + +function TEditorOptionsForm.GetCurColorScheme( + const LanguageName: String): String; +begin + if fColorSchemes = Nil then + Result := '' + else + Result := fColorSchemes.Values[LanguageName]; + if Result = '' then + Result := EditorOpts.ReadColorScheme(LanguageName); +end; + +procedure TEditorOptionsForm.SetCurColorScheme( + const LanguageName, ColorScheme: String); +begin + if fColorSchemes = Nil then + fColorSchemes := TStringList.Create; + fColorSchemes.Values[LanguageName] := ColorScheme; +end; + +procedure TEditorOptionsForm.SaveAllColorSchemes; +var + i: Integer; +begin + if fColorSchemes = Nil then + exit; + for i := 0 to fColorSchemes.Count - 1 do + EditorOpts.WriteColorScheme(fColorSchemes.Names[i], + fColorSchemes.Values[fColorSchemes.Names[i]]); +end; + +function TEditorOptionsForm.GetCurFileExtensions( + const LanguageName: String): String; +var + i: Integer; +begin + if fFileExtensions = Nil then + Result := '' + else + Result := fFileExtensions.Values[LanguageName]; + if Result = '' then + begin + i := EditorOpts.HighlighterList.FindByName(LanguageName); + if i >= 0 then + Result := EditorOpts.HighlighterList[i].FileExtensions; + end; +end; + +procedure TEditorOptionsForm.SetCurFileExtensions( + const LanguageName, FileExtensions: String); +begin + if fFileExtensions = Nil then + fFileExtensions := TStringList.Create; + fFileExtensions.Values[LanguageName] := FileExtensions; + //DebugLn(['TEditorOptionsForm.SetCurFileExtensions ',LanguageName,'=',FileExtensions]); +end; + +procedure TEditorOptionsForm.SaveAllFileExtensions; +var + i, j: Integer; +begin + if fFileExtensions = Nil then + exit; + for i := 0 to fFileExtensions.Count - 1 do + begin + j := EditorOpts.HighlighterList.FindByName(fFileExtensions.Names[i]); + if j >= 0 then begin + EditorOpts.HighlighterList[j].FileExtensions := + fFileExtensions.ValueFromIndex[i]; + //DebugLn(['TEditorOptionsForm.SaveAllFileExtensions ',fFileExtensions.Names[i],'=',fFileExtensions.ValueFromIndex[i],' -> ',EditorOpts.HighlighterList[j].FileExtensions]); + end; + end; +end; + +function TEditorOptionsForm.GetHighlighter(SynClass: TCustomSynClass; + const ColorScheme: String; CreateIfNotExists: Boolean): TCustomSyn; +var + i: Integer; +begin + if fHighlighterList = Nil then + fHighlighterList := TStringList.Create; + for i := 0 to fHighlighterList.Count - 1 do + if (fHighlighterList[i] = ColorScheme) and + (TCustomSynClass(TCustomSyn(fHighlighterList.Objects[i]).ClassType) = + SynClass) then + begin + Result := TCustomSyn(fHighlighterList.Objects[i]); + exit; + end; + if CreateIfNotExists then + begin + Result := SynClass.Create(Nil); + EditorOpts.AddSpecialHilightAttribsToHighlighter(Result); + fHighlighterList.AddObject(ColorScheme, Result); + EditorOpts.ReadHighlighterSettings(Result, ColorScheme); + end; +end; + +procedure TEditorOptionsForm.ClearHighlighters; +var + i: Integer; +begin + if fHighlighterList = Nil then + exit; + for i := 0 to fHighlighterList.Count - 1 do + TCustomSyn(fHighlighterList.Objects[i]).Free; + fHighlighterList.Free; +end; + +procedure TEditorOptionsForm.SaveAllHighlighters; +var + i: Integer; + Syn: TCustomSyn; +begin + if fHighlighterList = Nil then + exit; + for i := 0 to fHighlighterList.Count - 1 do + begin + Syn := TCustomSyn(fHighlighterList.Objects[i]); + EditorOpts.WriteHighlighterSettings(Syn, fHighlighterList[i]); + end; +end; + +// keymapping ------------------------------------------------------------------ + +function TEditorOptionsForm.KeyMappingRelationToString(Index: Integer): String; +begin + Result := KeyMappingRelationToString(EditingKeyMap.Relations[Index]); +end; + +function TEditorOptionsForm.KeyMappingRelationToString( + KeyRelation: TKeyCommandRelation): String; +var + s: String; +begin + with KeyRelation do + begin + Result := copy(LocalizedName, 1, 40); + if length(Result) < 40 then + begin + SetLength(s, (40 - length(Result))); + FillChar(s[1], length(s), ' '); + end + else + s := ''; + Result := Result + s; + if (ShortcutA.Key1 = VK_UNKNOWN) and (ShortcutB.Key1 = VK_UNKNOWN) then + Result := Result + lisNone2 + else + if (ShortcutA.Key1 = VK_UNKNOWN) then + Result := Result + KeyAndShiftStateToEditorKeyString(ShortcutB) + else + if (ShortcutB.Key1 = VK_UNKNOWN) then + Result := Result + KeyAndShiftStateToEditorKeyString(ShortcutA) + else + Result := Result + KeyAndShiftStateToEditorKeyString(ShortcutA) + + ' '+lisOr+' ' + + KeyAndShiftStateToEditorKeyString(ShortcutB); + end; +end; + +procedure TEditorOptionsForm.FillKeyMappingTreeView; +var + i, j: Integer; + NewCategoryNode, NewKeyNode: TTreeNode; + CurCategory: TIDECommandCategory; + CurKeyRelation: TKeyCommandRelation; +begin + with KeyMappingTreeView do + begin + BeginUpdate; + for i := 0 to EditingKeyMap.CategoryCount - 1 do + begin + CurCategory := EditingKeyMap.Categories[i]; + if Items.TopLvlCount > i then + begin + NewCategoryNode := Items.TopLvlItems[i]; + NewCategoryNode.Text := CurCategory.Description; + NewCategoryNode.Data := CurCategory; + end + else + NewCategoryNode := Items.AddObject(Nil, CurCategory.Description, CurCategory); + NewCategoryNode.ImageIndex := 0; + NewCategoryNode.SelectedIndex := NewCategoryNode.ImageIndex; + for j := 0 to CurCategory.Count - 1 do + begin + CurKeyRelation := TKeyCommandRelation(CurCategory[j]); + if NewCategoryNode.Count > j then + begin + NewKeyNode := NewCategoryNode.Items[j]; + NewKeyNode.Text := KeyMappingRelationToString(CurKeyRelation); + NewKeyNode.Data := CurKeyRelation; + end + else + NewKeyNode := Items.AddChildObject(NewCategoryNode, + KeyMappingRelationToString(CurKeyRelation), CurKeyRelation); + NewKeyNode.ImageIndex := 1; + NewKeyNode.SelectedIndex := NewKeyNode.ImageIndex; + end; + while NewCategoryNode.Count > CurCategory.Count do + NewCategoryNode[NewCategoryNode.Count - 1].Delete; + end; + while Items.TopLvlCount > EditingKeyMap.CategoryCount do + Items.TopLvlItems[Items.TopLvlCount - 1].Delete; + EndUpdate; + end; +end; + +// useful functions + +procedure TEditorOptionsForm.SetComboBoxText(AComboBox: TComboBox; + const AText: String); +var + a: Integer; +begin + a := AComboBox.Items.IndexOf(AText); + if a >= 0 then begin + AComboBox.ItemIndex := a; + end else + begin + AComboBox.Items.Add(AText); + AComboBox.ItemIndex := AComboBox.Items.IndexOf(AText); + end; +end; + +procedure TEditorOptionsForm.SetupGeneralPage(Page: Integer); +begin + NoteBook.Page[Page].Caption := lisMenuInsertGeneral; + + EditorOptionsGroupBox.Caption := lismenueditoroptions; + + with EditorOptionsGroupBox do + begin + // selections + Items.Add(dlgAltSetClMode); + Items.Add(dlgAutoIdent); + // visual effects + Items.Add(dlgBracHighlight); + Items.Add(dlgShowGutterHints); + Items.Add(dlgShowScrollHint); + Items.Add(dlgUseSyntaxHighlight); + // drag&drop + Items.Add(dlgDragDropEd); + Items.Add(dlgDropFiles); + // caret + scrolling + key navigation + Items.Add(dlgHalfPageScroll); + Items.Add(dlgKeepCaretX); + Items.Add(dlgPersistentCaret); + Items.Add(dlgCaretSkipsSelection); + Items.Add(dlgRightMouseMovesCursor); + Items.Add(dlgScrollByOneLess); + Items.Add(dlgScrollPastEndFile); + Items.Add(dlgScrollPastEndLine); + Items.Add(dlgHomeKeyJumpsToNearestStart); + Items.Add(dlgAlwaysVisibleCaret); + // tabs + Items.Add(dlgSmartTabs); + Items.Add(dlgTabsToSpaces); + Items.Add(dlgTabIndent); + // spaces + Items.Add(dlgTrimTrailingSpaces); + // undo + Items.Add(dlgUndoAfterSave); + Items.Add(dlgGroupUndo); + // mouse + Items.Add(dlgDoubleClickLine); + Items.Add(dlgMouseLinks); + Items.Add(dlgCloseButtonsNotebook); + // copying + Items.Add(dlgFindTextatCursor); + Items.Add(dlgCopyWordAtCursorOnCopyNone); + + Checked[Items.IndexOf(dlgAltSetClMode)] := eoAltSetsColumnMode in + EditorOpts.SynEditOptions; + Checked[Items.IndexOf(dlgAutoIdent)] := eoAutoIndent in EditorOpts.SynEditOptions; + Checked[Items.IndexOf(dlgBracHighlight)] := + eoBracketHighlight in EditorOpts.SynEditOptions; + Checked[Items.IndexOf(dlgDragDropEd)] := + eoDragDropEditing in EditorOpts.SynEditOptions; + Checked[Items.IndexOf(dlgDropFiles)] := eoDropFiles in EditorOpts.SynEditOptions; + //TODO CheckEnabledByName[dlgDropFiles] := False; + Checked[Items.IndexOf(dlgGroupUndo)] := eoGroupUndo in EditorOpts.SynEditOptions; + Checked[Items.IndexOf(dlgHalfPageScroll)] := + eoHalfPageScroll in EditorOpts.SynEditOptions; + Checked[Items.IndexOf(dlgKeepCaretX)] := eoKeepCaretX in EditorOpts.SynEditOptions; + Checked[Items.IndexOf(dlgPersistentCaret)] := + eoPersistentCaret in EditorOpts.SynEditOptions; + Checked[Items.IndexOf(dlgRightMouseMovesCursor)] := + eoRightMouseMovesCursor in EditorOpts.SynEditOptions; + Checked[Items.IndexOf(dlgScrollByOneLess)] := + eoScrollByOneLess in EditorOpts.SynEditOptions; + Checked[Items.IndexOf(dlgScrollPastEndFile)] := + eoScrollPastEoF in EditorOpts.SynEditOptions; + Checked[Items.IndexOf(dlgMouseLinks)] := EditorOpts.CtrlMouseLinks; + Checked[Items.IndexOf(dlgShowGutterHints)] := EditorOpts.ShowGutterHints; + Checked[Items.IndexOf(dlgScrollPastEndLine)] := + eoScrollPastEoL in EditorOpts.SynEditOptions; + Checked[Items.IndexOf(dlgCloseButtonsNotebook)] := EditorOpts.ShowTabCloseButtons; + Checked[Items.IndexOf(dlgShowScrollHint)] := + eoShowScrollHint in EditorOpts.SynEditOptions; + Checked[Items.IndexOf(dlgSmartTabs)] := eoSmartTabs in EditorOpts.SynEditOptions; + //DebugLn(['TEditorOptionsForm.SetupGeneralPage ',Checked[Items.IndexOf(dlgSmartTabs)],' ',Items.IndexOf(dlgSmartTabs),' ',eoSmartTabs in EditorOpts.SynEditOptions]); + Checked[Items.IndexOf(dlgTabsToSpaces)] := + eoTabsToSpaces in EditorOpts.SynEditOptions; + Checked[Items.IndexOf(dlgTabIndent)] := eoTabIndent in EditorOpts.SynEditOptions; + Checked[Items.IndexOf(dlgTrimTrailingSpaces)] := + eoTrimTrailingSpaces in EditorOpts.SynEditOptions; + Checked[Items.IndexOf(dlgUndoAfterSave)] := EditorOpts.UndoAfterSave; + Checked[Items.IndexOf(dlgDoubleClickLine)] := + eoDoubleClickSelectsLine in EditorOpts.SynEditOptions; + Checked[Items.IndexOf(dlgFindTextatCursor)] := EditorOpts.FindTextAtCursor; + Checked[Items.IndexOf(dlgUseSyntaxHighlight)] := EditorOpts.UseSyntaxHighlight; + Checked[Items.IndexOf(dlgCopyWordAtCursorOnCopyNone)] := + EditorOpts.CopyWordAtCursorOnCopyNone; + Checked[Items.IndexOf(dlgHomeKeyJumpsToNearestStart)] := + eoEnhanceHomeKey in EditorOpts.SynEditOptions; + Checked[Items.IndexOf(dlgCaretSkipsSelection)] := + eoCaretSkipsSelection in EditorOpts.SynEditOptions2; + Checked[Items.IndexOf(dlgAlwaysVisibleCaret)] := + eoAlwaysVisibleCaret in EditorOpts.SynEditOptions2; + end; + + with BlockIndentComboBox do + SetComboBoxText(BlockIndentComboBox, IntToStr(EditorOpts.BlockIndent)); + + BlockIndentLabel.Caption := dlgBlockIndent; + + with UndoLimitComboBox do + SetComboBoxText(UndoLimitComboBox, IntToStr(EditorOpts.UndoLimit)); + + UndoLimitLabel.Caption := dlgUndoLimit; + + with TabWidthsComboBox do + SetComboBoxText(TabWidthsComboBox, IntToStr(EditorOpts.TabWidth)); + + TabWidthsLabel.Caption := dlgTabWidths; +end; + +procedure TEditorOptionsForm.SetupDisplayPage(Page: Integer); +begin + NoteBook.Page[Page].Caption := dlgEdDisplay; + + MarginAndGutterGroupBox.Caption := dlgMarginGutter; + + with VisibleRightMarginCheckBox do + begin + Caption := dlgVisibleRightMargin; + Checked := EditorOpts.VisibleRightMargin; + end; + + with VisibleGutterCheckBox do + begin + Caption := dlgVisibleGutter; + Checked := EditorOpts.VisibleGutter; + end; + + with ShowLineNumbersCheckBox do + begin + Caption := dlgShowLineNumbers; + Checked := EditorOpts.ShowLineNumbers; + end; + + RightMarginLabel.Caption := dlgRightMargin; + + VisibleRightMarginCheckBox.Checked:=EditorOpts.VisibleRightMargin; + with RightMarginComboBox do + SetComboBoxText(RightMarginComboBox, IntToStr(EditorOpts.RightMargin)); + + RightMarginColorLabel.Caption := dlgRightMarginColor; + + RightMarginColorButton.ButtonColor := EditorOpts.RightMarginColor; + + GutterWidthLabel.Caption := dlgGutterWidth; + + with GutterWidthComboBox do + SetComboBoxText(GutterWidthComboBox, IntToStr(EditorOpts.GutterWidth)); + + GutterColorLabel.Caption := dlgGutterColor; + + GutterColorButton.ButtonColor := EditorOpts.GutterColor; + + EditorFontGroupBox.Caption := dlgDefaultEditorFont; + + with EditorFontComboBox do + SetComboBoxText(EditorFontComboBox, EditorOpts.EditorFont); + + EditorFontLabel.Caption := dlgEditorFont; + + with EditorFontHeightComboBox do + SetComboBoxText(EditorFontHeightComboBox + , IntToStr(EditorOpts.EditorFontHeight)); + + EditorFontHeightLabel.Caption := dlgEditorFontHeight; + + with ExtraLineSpacingComboBox do + SetComboBoxText(ExtraLineSpacingComboBox + , IntToStr(EditorOpts.ExtraLineSpacing)); + + ExtraLineSpacingLabel.Caption := dlgExtraLineSpacing; +end; + +procedure TEditorOptionsForm.SetupKeyMappingsPage(Page: Integer); +begin + NoteBook.Page[Page].Caption := dlgKeyMapping; + + KeyMappingChooseSchemeButton.Caption := lisEdOptsChooseScheme; + + KeyMappingConsistencyCheckButton.Caption := dlgCheckConsistency; + + KeyMappingHelpLabel.Caption := dlgEdHintCommand; +end; + +procedure TEditorOptionsForm.SetupColorPage(Page: Integer); +var + a: Integer; +begin + NoteBook.Page[Page].Caption := dlgEdColor; + + LanguageLabel.Caption := dlgLang; + + with LanguageComboBox do + with Items do + begin + BeginUpdate; + for a := 0 to EditorOpts.HighlighterList.Count - 1 do + Add(EditorOpts.HighlighterList[a].SynClass.GetLanguageName); + //for a:=0 to EditorOpts.HighlighterList.Count-1 do + // writeln('TEditorOptionsForm.SetupColorPage ',a,' ',EditorOpts.HighlighterList[a].SynClass.GetLanguageName + // ,' ',EditorOpts.HighlighterList[a].SynClass.ClassName); + EndUpdate; + end; + + ColorSchemeLabel.Caption := dlgClrScheme; + + with ColorSchemeComboBox do + begin + with Items do + begin + BeginUpdate; + // ToDo: fill also with custom color schemes + Add(DefaultColorScheme); + Add('Delphi'); + Add('Pascal Classic'); + Add('Twilight'); + Add('Ocean'); + EndUpdate; + end; + Text := DefaultColorScheme; + end; + + FileExtensionsLabel.Caption := dlgFileExts; + + with FileExtensionsComboBox do + if CurLanguageID >= 0 then + SetComboBoxText(FileExtensionsComboBox, + EditorOpts.HighlighterList[CurLanguageID].FileExtensions); + + ColorElementLabel.Caption := dlgEdElement; + + SetAttributeToDefaultButton.Caption := dlgSetElementDefault; + + SetAllAttributesToDefaultButton.Caption := dlgSetAllElementDefault; + + ForeGroundLabel.Caption := dlgForecolor; + + ForeGroundUseDefaultCheckBox.Caption := dlgEdUseDefColor; + + BackGroundLabel.Caption := dlgBackColor; + + BackgroundColorButton.Color := clBlue; + + BackGroundUseDefaultCheckBox.Caption := dlgEdUseDefColor; + + TextAttributesGroupBox.Caption := dlgTextAttributes; + + TextBoldCheckBox.Caption := dlgEdBold; + + TextItalicCheckBox.Caption := dlgEdItal; + + TextUnderlineCheckBox.Caption := dlgEdUnder; +end; + +procedure TEditorOptionsForm.SetupCodeToolsPage(Page: Integer); +begin + NoteBook.Page[Page].Caption := dlgCodeToolsTab; + + AutomaticFeaturesGroupBox.Caption := lisAutomaticFeatures; + + with AutoIdentifierCompletionCheckBox do + begin + Caption := dlgEdIdComlet; + Checked := EditorOpts.AutoIdentifierCompletion; + end; + + with AutoCodeParametersCheckBox do + begin + Caption := dlgEdCodeParams; + Checked := EditorOpts.AutoCodeParameters; + end; + + with AutoToolTipExprEvalCheckBox do + begin + Caption := dlgTooltipEval; + Checked := EditorOpts.AutoToolTipExprEval; + end; + + with AutoToolTipSymbToolsCheckBox do + begin + Caption := dlgTooltipTools; + Checked := EditorOpts.AutoToolTipSymbTools; + end; + + AutoDelayLabel.Caption := dlgEdDelay; + AutoDelayTrackBar.Position := EditorOpts.AutoDelayInMSec; + AutoDelayMinLabel.Caption := '0.5 ' + DlgTimeSecondUnit; + AutoDelayMaxLabel.Caption := '4.0 ' + dlgTimeSecondUnit; +end; + +procedure TEditorOptionsForm.SetupCodeFoldingPage(Page: integer); +begin + NoteBook.Page[Page].Caption := dlgUseCodeFolding; + chkCodeFoldingEnabled.Caption := dlgUseCodeFolding; + lblDividerDrawLevel.Caption := dlgCFDividerDrawLevel + ':'; + + chkCodeFoldingEnabled.Checked := EditorOpts.UseCodeFolding; + edDividerDrawLevel.Value := EditorOpts.CFDividerDrawLevel; +end; + +procedure TEditorOptionsForm.SetupButtonBar; +begin + CancelButton.Caption := dlgCancel; + + CancelControl := CancelButton; + + OkButton.Caption := lisOk; +end; + +procedure TEditorOptionsForm.OkButtonClick(Sender: TObject); +var + SynOptions: TSynEditorOptions; + i: Integer; +begin + IDEDialogLayoutList.SaveLayout(Self); + + // save all values + EditorOpts.KeyMap.Assign(EditingKeyMap); + SynOptions := PreviewEdits[1].Options - [eoNoSelection, eoNoCaret]; + if CheckGroupItemChecked(EditorOptionsGroupBox,dlgBracHighlight) then + Include(SynOptions, eoBracketHighlight) + else + Exclude(SynOptions, eoBracketHighlight); + PreviewEdits[1].Options := SynOptions; + EditorOpts.SetSynEditSettings(PreviewEdits[1]); + PreviewEdits[1].Options := + SynOptions - [eoBracketHighlight] + + [eoNoCaret, eoNoSelection]; + + // general + EditorOpts.ShowTabCloseButtons := + CheckGroupItemChecked(EditorOptionsGroupBox,dlgCloseButtonsNotebook); + EditorOpts.UndoAfterSave := + CheckGroupItemChecked(EditorOptionsGroupBox,dlgUndoAfterSave); + EditorOpts.CopyWordAtCursorOnCopyNone := + CheckGroupItemChecked(EditorOptionsGroupBox,dlgCopyWordAtCursorOnCopyNone); + EditorOpts.ShowGutterHints := + CheckGroupItemChecked(EditorOptionsGroupBox,dlgShowGutterHints); + EditorOpts.FindTextAtCursor := + CheckGroupItemChecked(EditorOptionsGroupBox,dlgFindTextatCursor); + EditorOpts.UseSyntaxHighlight := + CheckGroupItemChecked(EditorOptionsGroupBox,dlgUseSyntaxHighlight); + EditorOpts.CtrlMouseLinks := + CheckGroupItemChecked(EditorOptionsGroupBox,dlgMouseLinks); + i := StrToIntDef(UndoLimitComboBox.Text, 32767); + if i < 1 then + i := 1; + if i > 32767 then + i := 32767; + EditorOpts.UndoLimit := i; + i := StrToIntDef(TabWidthsComboBox.Text, 2); + if i < 1 then + i := 1; + if i > 20 then + i := 20; + EditorOpts.TabWidth := i; + i := StrToIntDef(BlockIndentComboBox.Text, 2); + if i < 1 then + i := 1; + if i > 20 then + i := 20; + EditorOpts.BlockIndent := i; + + + // color + SaveAllFileExtensions; + SaveAllColorSchemes; + SaveAllHighlighters; + + // code Tools + EditorOpts.AutoIdentifierCompletion := + AutoIdentifierCompletionCheckBox.Checked; + EditorOpts.AutoCodeParameters := AutoCodeParametersCheckBox.Checked; + EditorOpts.AutoToolTipExprEval := AutoToolTipExprEvalCheckBox.Checked; + EditorOpts.AutoToolTipSymbTools := AutoToolTipSymbToolsCheckBox.Checked; + EditorOpts.AutoDelayInMSec := AutoDelayTrackBar.Position; + + // Code Folding + EditorOpts.UseCodeFolding := chkCodeFoldingEnabled.Checked; + EditorOpts.CFDividerDrawLevel := edDividerDrawLevel.Value; + + EditorOpts.Save; + ModalResult := mrOk; +end; + +procedure TEditorOptionsForm.CancelButtonClick(Sender: TObject); +begin + IDEDialogLayoutList.SaveLayout(Self); + EditorOpts.Load; + ModalResult := mrCancel; +end; + +//============================================================================= + +initialization + {$I editoroptions_new.lrs} + {$I lazarus_dci.lrs} + +end. diff --git a/ide/environmentopts_new.lfm b/ide/environmentopts_new.lfm new file mode 100644 index 0000000000..e7cd59ce8c --- /dev/null +++ b/ide/environmentopts_new.lfm @@ -0,0 +1,1749 @@ +inherited EnvironmentOptionsDialog: TEnvironmentOptionsDialog + Left = 299 + Height = 547 + Top = 169 + Width = 768 + HorzScrollBar.Page = 767 + VertScrollBar.Page = 546 + ActiveControl = OkButton + Caption = 'EnvironmentOptionsDialog' + ClientHeight = 547 + ClientWidth = 768 + Position = poScreenCenter + inherited BottomPanel: TPanel + Top = 497 + Width = 768 + ClientWidth = 768 + TabOrder = 3 + inherited OKCancelPanel: TPanel + Left = 581 + inherited btnCancel: TBitBtn + Cancel = False + end + inherited btnOK: TBitBtn + end + end + inherited HelpButton: TBitBtn + end + end + inherited CategoriesPanel: TPanel + Width = 768 + ClientWidth = 768 + TabOrder = 4 + inherited SectionTitleLabel: TLabel + end + inherited SearchLabel: TLabel + Left = 445 + end + inherited ClearFilterButton: TBitBtn + Left = 725 + end + inherited FilterEdit: TEdit + Left = 542 + end + end + inherited SectionsTreePanel: TPanel + Height = 419 + ClientHeight = 419 + TabOrder = 1 + inherited SectionList: TListBox + Height = 419 + end + end + inherited MainSplitter: TSplitter + Height = 419 + end + inherited OptionsAreaPanel: TPanel + Height = 419 + Width = 613 + ClientHeight = 419 + ClientWidth = 613 + TabOrder = 2 + object Notebook: TNotebook + AnchorSideBottom.Control = EODBtnPanel + Height = 419 + Width = 613 + Align = alClient + OnChangeBounds = NotebookChangeBounds + PageIndex = 1 + ShowTabs = False + TabOrder = 0 + object FilesPage: TPage + Caption = 'FilesPage' + ClientWidth = 613 + ClientHeight = 419 + object MaxRecentOpenFilesLabel: TLabel + Left = 6 + Height = 13 + Top = 10 + Width = 153 + Caption = 'MaxRecentOpenFilesLabel' + ParentColor = False + end + object MaxRecentProjectFilesLabel: TLabel + Left = 6 + Height = 13 + Top = 58 + Width = 161 + Caption = 'MaxRecentProjectFilesLabel' + ParentColor = False + end + object MaxRecentOpenFilesComboBox: TComboBox + AnchorSideRight.Control = FilesPage + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 21 + Top = 26 + Width = 597 + Anchors = [akTop, akLeft, akRight] + AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] + BorderSpacing.Right = 6 + Items.Strings = ( + '5' + '10' + '15' + '20' + '25' + '30' + ) + MaxLength = 0 + TabOrder = 0 + end + object MaxRecentProjectFilesComboBox: TComboBox + AnchorSideRight.Control = FilesPage + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 21 + Top = 74 + Width = 597 + Anchors = [akTop, akLeft, akRight] + AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] + BorderSpacing.Right = 6 + Items.Strings = ( + '5' + '10' + '15' + '20' + '25' + '30' + ) + MaxLength = 0 + TabOrder = 1 + end + object OpenLastProjectAtStartCheckBox: TCheckBox + AnchorSideRight.Control = FilesPage + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 20 + Top = 106 + Width = 597 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Right = 6 + Caption = 'OpenLastProjectAtStartCheckBox' + TabOrder = 2 + end + object LazarusDirGroupBox: TGroupBox + AnchorSideRight.Control = FilesPage + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 54 + Top = 142 + Width = 597 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Right = 6 + Caption = 'LazarusDirGroupBox' + ClientHeight = 54 + ClientWidth = 597 + TabOrder = 3 + object LazarusDirComboBox: TComboBox + AnchorSideLeft.Control = LazarusDirGroupBox + AnchorSideRight.Control = LazarusDirButton + Left = 6 + Height = 21 + Top = 3 + Width = 560 + Anchors = [akTop, akLeft, akRight] + AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] + BorderSpacing.Left = 6 + MaxLength = 0 + TabOrder = 0 + Text = 'LazarusDirComboBox' + end + object LazarusDirButton: TButton + AnchorSideLeft.Control = LazarusDirGroupBox + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = LazarusDirComboBox + AnchorSideRight.Control = LazarusDirGroupBox + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Control = LazarusDirComboBox + AnchorSideBottom.Side = asrBottom + Left = 566 + Height = 21 + Top = 3 + Width = 25 + Anchors = [akTop, akRight, akBottom] + BorderSpacing.Right = 6 + Caption = '...' + OnClick = DirectoriesButtonClick + TabOrder = 1 + end + end + object CompilerPathGroupBox: TGroupBox + AnchorSideRight.Control = FilesPage + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 54 + Top = 197 + Width = 597 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Right = 6 + Caption = 'CompilerPathGroupBox' + ClientHeight = 54 + ClientWidth = 597 + TabOrder = 4 + object CompilerPathComboBox: TComboBox + AnchorSideLeft.Control = CompilerPathGroupBox + AnchorSideRight.Control = CompilerPathButton + Left = 6 + Height = 21 + Top = 3 + Width = 560 + Anchors = [akTop, akLeft, akRight] + AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] + BorderSpacing.Left = 6 + MaxLength = 0 + TabOrder = 0 + Text = 'CompilerPathComboBox' + end + object CompilerPathButton: TButton + AnchorSideTop.Control = CompilerPathComboBox + AnchorSideRight.Control = CompilerPathGroupBox + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Control = CompilerPathComboBox + AnchorSideBottom.Side = asrBottom + Left = 566 + Height = 21 + Top = 3 + Width = 25 + Anchors = [akTop, akRight, akBottom] + BorderSpacing.Right = 6 + Caption = '...' + OnClick = FilesButtonClick + TabOrder = 1 + end + end + object FPCSourceDirGroupBox: TGroupBox + AnchorSideRight.Control = FilesPage + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 54 + Top = 252 + Width = 597 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Right = 6 + Caption = 'FPCSourceDirGroupBox' + ClientHeight = 54 + ClientWidth = 597 + TabOrder = 5 + object FPCSourceDirComboBox: TComboBox + AnchorSideLeft.Control = FPCSourceDirGroupBox + AnchorSideRight.Control = FPCSourceDirButton + Left = 6 + Height = 21 + Top = 3 + Width = 560 + Anchors = [akTop, akLeft, akRight] + AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] + BorderSpacing.Left = 6 + MaxLength = 0 + TabOrder = 0 + Text = 'FPCSourceDirComboBox' + end + object FPCSourceDirButton: TButton + AnchorSideTop.Control = FPCSourceDirComboBox + AnchorSideRight.Control = FPCSourceDirGroupBox + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Control = FPCSourceDirComboBox + AnchorSideBottom.Side = asrBottom + Left = 566 + Height = 21 + Top = 3 + Width = 25 + Anchors = [akTop, akRight, akBottom] + BorderSpacing.Right = 6 + Caption = '...' + OnClick = DirectoriesButtonClick + TabOrder = 1 + end + end + object MakePathGroupBox: TGroupBox + AnchorSideRight.Control = FilesPage + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 54 + Top = 307 + Width = 597 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Right = 6 + Caption = 'MakePathGroupBox' + ClientHeight = 54 + ClientWidth = 597 + TabOrder = 6 + object MakePathComboBox: TComboBox + AnchorSideLeft.Control = MakePathGroupBox + AnchorSideRight.Control = MakePathButton + Left = 6 + Height = 21 + Top = 3 + Width = 560 + Anchors = [akTop, akLeft, akRight] + AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] + BorderSpacing.Left = 6 + MaxLength = 0 + TabOrder = 0 + Text = 'MakePathComboBox' + end + object MakePathButton: TButton + AnchorSideTop.Control = MakePathComboBox + AnchorSideRight.Control = MakePathGroupBox + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Control = MakePathComboBox + AnchorSideBottom.Side = asrBottom + Left = 566 + Height = 21 + Top = 3 + Width = 25 + Anchors = [akTop, akRight, akBottom] + BorderSpacing.Right = 6 + Caption = '...' + OnClick = FilesButtonClick + TabOrder = 1 + end + end + object TestBuildDirGroupBox: TGroupBox + AnchorSideRight.Control = FilesPage + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 54 + Top = 362 + Width = 597 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Right = 6 + Caption = 'TestBuildDirGroupBox' + ClientHeight = 54 + ClientWidth = 597 + TabOrder = 7 + object TestBuildDirComboBox: TComboBox + AnchorSideLeft.Control = TestBuildDirGroupBox + AnchorSideRight.Control = TestBuildDirButton + Left = 6 + Height = 21 + Top = 3 + Width = 560 + Anchors = [akTop, akLeft, akRight] + AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] + BorderSpacing.Left = 6 + MaxLength = 0 + TabOrder = 0 + Text = 'TestBuildDirComboBox' + end + object TestBuildDirButton: TButton + AnchorSideTop.Control = TestBuildDirComboBox + AnchorSideRight.Control = TestBuildDirGroupBox + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Control = TestBuildDirComboBox + AnchorSideBottom.Side = asrBottom + Left = 566 + Height = 21 + Top = 3 + Width = 25 + Anchors = [akTop, akRight, akBottom] + BorderSpacing.Right = 6 + Caption = '...' + OnClick = DirectoriesButtonClick + TabOrder = 1 + end + end + end + object DesktopPage: TPage + Caption = 'DesktopPage' + ClientWidth = 613 + ClientHeight = 419 + object LanguageGroupBox: TGroupBox + AnchorSideRight.Control = DesktopPage + AnchorSideRight.Side = asrBottom + Left = 4 + Height = 56 + Top = 10 + Width = 603 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Right = 6 + Caption = 'LanguageGroupBox' + ClientHeight = 39 + ClientWidth = 599 + TabOrder = 0 + object LanguageComboBox: TComboBox + AnchorSideLeft.Control = LanguageGroupBox + AnchorSideRight.Control = LanguageGroupBox + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 21 + Top = 8 + Width = 587 + Anchors = [akTop, akLeft, akRight] + AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] + BorderSpacing.Around = 6 + MaxLength = 0 + Style = csDropDownList + TabOrder = 0 + end + end + object CheckDiskChangesWithLoadingCheckBox: TCheckBox + Left = 6 + Height = 20 + Top = 320 + Width = 263 + Caption = 'CheckDiskChangesWithLoadingCheckBox' + TabOrder = 1 + end + object ShowHintsForComponentPaletteCheckBox: TCheckBox + Left = 6 + Height = 20 + Top = 342 + Width = 263 + Caption = 'ShowHintsForComponentPaletteCheckBox' + TabOrder = 2 + end + object AutoSaveGroupBox: TGroupBox + AnchorSideRight.Control = DesktopPage + AnchorSideRight.Side = asrBottom + Left = 4 + Height = 136 + Top = 74 + Width = 603 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Right = 6 + Caption = 'AutoSaveGroupBox' + ClientHeight = 119 + ClientWidth = 599 + TabOrder = 6 + object AutoSaveIntervalInSecsLabel: TLabel + Left = 6 + Height = 13 + Top = 67 + Width = 520 + Anchors = [akTop, akLeft, akRight] + Caption = 'AutoSaveIntervalInSecsLabel' + Enabled = False + ParentColor = False + end + object AutoSaveEditorFilesCheckBox: TCheckBox + Left = 6 + Height = 20 + Top = 4 + Width = 529 + Anchors = [akTop, akLeft, akRight] + Caption = 'AutoSaveEditorFilesCheckBox' + Enabled = False + TabOrder = 0 + end + object AutoSaveProjectCheckBox: TCheckBox + Left = 6 + Height = 20 + Top = 30 + Width = 529 + Anchors = [akTop, akLeft, akRight] + Caption = 'AutoSaveProjectCheckBox' + Enabled = False + TabOrder = 1 + end + object AutoSaveIntervalInSecsComboBox: TComboBox + AnchorSideLeft.Control = AutoSaveGroupBox + AnchorSideRight.Control = AutoSaveGroupBox + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 21 + Top = 87 + Width = 587 + Anchors = [akTop, akLeft, akRight] + AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] + BorderSpacing.Around = 6 + Enabled = False + Items.Strings = ( + '1200' + '600' + '300' + '120' + ) + MaxLength = 0 + TabOrder = 2 + end + end + object DesktopFilesGroupBox: TGroupBox + AnchorSideRight.Control = DesktopPage + AnchorSideRight.Side = asrBottom + Left = 4 + Height = 97 + Top = 218 + Width = 603 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Right = 6 + Caption = 'DesktopFilesGroupBox' + ClientHeight = 80 + ClientWidth = 599 + TabOrder = 3 + object SaveDesktopSettingsToFileButton: TButton + AnchorSideLeft.Control = DesktopFilesGroupBox + AnchorSideRight.Control = DesktopFilesGroupBox + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 25 + Top = 8 + Width = 587 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Around = 6 + Caption = 'SaveDesktopSettingsToFileButton' + OnClick = SaveDesktopSettingsToFileButtonClick + TabOrder = 0 + end + object LoadDesktopSettingsFromFileButton: TButton + AnchorSideLeft.Control = DesktopFilesGroupBox + AnchorSideRight.Control = DesktopFilesGroupBox + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 25 + Top = 43 + Width = 587 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Around = 6 + Caption = 'LoadDesktopSettingsFromFileButton' + OnClick = LoadDesktopSettingsFromFileButtonClick + TabOrder = 1 + end + end + object ShowHintsForMainSpeedButtonsCheckBox: TCheckBox + Left = 6 + Height = 20 + Top = 362 + Width = 267 + Caption = 'ShowHintsForMainSpeedButtonsCheckBox' + TabOrder = 4 + end + object MsgViewDblClickJumpsCheckBox: TCheckBox + Left = 6 + Height = 20 + Top = 382 + Width = 219 + Caption = 'MsgViewDblClickJumpsCheckBox' + TabOrder = 5 + end + end + object WindowsPage: TPage + Caption = 'WindowsPage' + ClientWidth = 613 + ClientHeight = 419 + object MinimizeAllOnMinimizeMainCheckBox: TCheckBox + AnchorSideRight.Control = WindowsPage + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 22 + Top = 10 + Width = 526 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Right = 6 + Caption = 'MinimizeAllOnMinimizeMainCheckBox' + Enabled = False + TabOrder = 0 + end + object HideIDEOnRunCheckBox: TCheckBox + AnchorSideRight.Control = WindowsPage + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 22 + Top = 34 + Width = 526 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Right = 6 + Caption = 'HideIDEOnRunCheckBox' + TabOrder = 1 + end + object WindowPositionsGroupBox: TGroupBox + AnchorSideRight.Control = WindowsPage + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 320 + Top = 68 + Width = 526 + Anchors = [akTop, akLeft, akRight, akBottom] + BorderSpacing.Right = 6 + Caption = 'WindowPositionsGroupBox' + ClientHeight = 320 + ClientWidth = 526 + TabOrder = 2 + object WindowPositionsListBox: TListBox + AnchorSideLeft.Control = WindowPositionsGroupBox + AnchorSideRight.Control = WindowPositionsGroupBox + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 100 + Top = 6 + Width = 514 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Around = 6 + OnMouseUp = WindowPositionsListBoxMouseUp + TabOrder = 0 + TopIndex = -1 + end + end + end + object FormEditorPage: TPage + Caption = 'FormEditorPage' + ClientWidth = 613 + ClientHeight = 419 + OnResize = FormEditorPageResize + object GridGroupBox: TGroupBox + Left = 6 + Height = 212 + Top = 6 + Width = 337 + BorderSpacing.Around = 6 + Caption = 'GridGroupBox' + ClientHeight = 212 + ClientWidth = 337 + TabOrder = 0 + object GridColorLabel: TLabel + AnchorSideLeft.Control = GridGroupBox + AnchorSideTop.Control = GridSizeYLabel + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 13 + Top = 120 + Width = 85 + BorderSpacing.Top = 4 + BorderSpacing.Around = 6 + Caption = 'GridColorLabel' + ParentColor = False + end + object GridSizeXLabel: TLabel + AnchorSideLeft.Control = GridGroupBox + AnchorSideTop.Control = SnapToGridCheckBox + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 13 + Top = 74 + Width = 88 + BorderSpacing.Around = 6 + Caption = 'GridSizeXLabel' + ParentColor = False + end + object GridSizeYLabel: TLabel + AnchorSideLeft.Control = GridGroupBox + AnchorSideTop.Control = GridSizeXLabel + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 13 + Top = 97 + Width = 88 + BorderSpacing.Top = 4 + BorderSpacing.Around = 6 + Caption = 'GridSizeYLabel' + ParentColor = False + end + object GridColorButton: TColorButton + AnchorSideLeft.Control = GridColorLabel + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = GridColorLabel + AnchorSideTop.Side = asrCenter + Left = 97 + Height = 23 + Top = 115 + Width = 50 + BorderWidth = 2 + ButtonColorSize = 16 + Color = clBtnFace + end + object SnapToGridCheckBox: TCheckBox + AnchorSideLeft.Control = GridGroupBox + AnchorSideTop.Control = ShowBorderSpaceCheckBox + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = GridGroupBox + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 20 + Top = 48 + Width = 325 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Left = 6 + BorderSpacing.Top = 4 + BorderSpacing.Right = 6 + Caption = 'SnapToGridCheckBox' + TabOrder = 1 + end + object ShowGridCheckBox: TCheckBox + AnchorSideLeft.Control = GridGroupBox + Left = 6 + Height = 20 + Width = 138 + BorderSpacing.Left = 6 + Caption = 'ShowGridCheckBox' + TabOrder = 0 + end + object GridSizeXComboBox: TComboBox + AnchorSideLeft.Control = GridSizeXLabel + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = GridSizeXLabel + AnchorSideTop.Side = asrCenter + Left = 100 + Height = 21 + Top = 70 + Width = 100 + AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] + Items.Strings = ( + '2' + '5' + '8' + '10' + '12' + '15' + '20' + '25' + '30' + ) + MaxLength = 0 + ParentShowHint = False + ShowHint = True + TabOrder = 2 + end + object GridSizeYComboBox: TComboBox + AnchorSideLeft.Control = GridSizeYLabel + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = GridSizeYLabel + AnchorSideTop.Side = asrCenter + Left = 100 + Height = 21 + Top = 93 + Width = 100 + AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] + Items.Strings = ( + '2' + '5' + '8' + '10' + '12' + '15' + '20' + '25' + '30' + ) + MaxLength = 0 + ParentShowHint = False + ShowHint = True + TabOrder = 3 + end + object ShowBorderSpaceCheckBox: TCheckBox + AnchorSideLeft.Control = GridGroupBox + AnchorSideTop.Control = ShowGridCheckBox + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 20 + Top = 24 + Width = 188 + BorderSpacing.Left = 6 + BorderSpacing.Top = 4 + Caption = 'ShowBorderSpaceCheckBox' + TabOrder = 4 + end + end + object GuideLinesGroupBox: TGroupBox + AnchorSideLeft.Control = FormEditMiscGroupBox + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = RubberbandGroupBox + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = FormEditorPage + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Control = FormEditorPage + AnchorSideBottom.Side = asrBottom + Left = 349 + Height = 224 + Top = 224 + Width = 183 + Anchors = [akTop, akLeft, akRight, akBottom] + BorderSpacing.Around = 6 + Caption = 'GuideLinesGroupBox' + ClientHeight = 224 + ClientWidth = 183 + TabOrder = 1 + object GuideLineColorLeftTopButton: TColorButton + AnchorSideTop.Control = GuideLineColorLeftTopLabel + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 23 + Top = 93 + Width = 50 + BorderWidth = 2 + ButtonColorSize = 16 + Color = clBtnFace + end + object GuideLineColorRightBottomButton: TColorButton + AnchorSideTop.Control = GuideLineColorRightBottomLabel + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 23 + Top = 141 + Width = 50 + BorderWidth = 2 + ButtonColorSize = 16 + Color = clBtnFace + end + object GuideLineColorLeftTopLabel: TLabel + AnchorSideLeft.Control = GuideLinesGroupBox + AnchorSideRight.Control = GuideLinesGroupBox + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 13 + Top = 74 + Width = 171 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Around = 6 + Caption = 'GuideLineColorLeftTopLabel' + ParentColor = False + end + object GuideLineColorRightBottomLabel: TLabel + AnchorSideLeft.Control = GuideLinesGroupBox + AnchorSideTop.Control = GuideLineColorLeftTopButton + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = GuideLinesGroupBox + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 13 + Top = 122 + Width = 171 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Around = 6 + Caption = 'GuideLineColorRightBottomLabel' + ParentColor = False + end + object ShowGuideLinesCheckBox: TCheckBox + AnchorSideLeft.Control = GuideLinesGroupBox + AnchorSideRight.Control = GuideLinesGroupBox + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 20 + Width = 171 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Around = 6 + Caption = 'ShowGuideLinesCheckBox' + TabOrder = 0 + end + object SnapToGuideLinesCheckBox: TCheckBox + AnchorSideLeft.Control = GuideLinesGroupBox + AnchorSideTop.Control = ShowGuideLinesCheckBox + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = GuideLinesGroupBox + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 20 + Top = 26 + Width = 171 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Around = 6 + Caption = 'SnapToGuideLinesCheckBox' + TabOrder = 1 + end + end + object FormEditMiscGroupBox: TGroupBox + AnchorSideTop.Control = GridGroupBox + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = FormEditorPage + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Control = FormEditorPage + AnchorSideBottom.Side = asrBottom + Left = 6 + Height = 224 + Top = 224 + Width = 337 + Anchors = [akTop, akLeft, akBottom] + BorderSpacing.Around = 6 + Caption = 'FormEditMiscGroupBox' + ClientHeight = 224 + ClientWidth = 337 + TabOrder = 2 + object GrabberColorButton: TColorButton + AnchorSideLeft.Control = GrabberColorLabel + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = GrabberColorLabel + AnchorSideTop.Side = asrCenter + Left = 119 + Height = 23 + Top = 97 + Width = 50 + BorderWidth = 2 + ButtonColorSize = 16 + Color = clBtnFace + end + object MarkerColorButton: TColorButton + AnchorSideLeft.Control = MarkerColorLabel + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = MarkerColorLabel + AnchorSideTop.Side = asrCenter + Left = 113 + Height = 23 + Top = 120 + Width = 50 + BorderWidth = 2 + ButtonColorSize = 16 + Color = clBtnFace + end + object GrabberColorLabel: TLabel + AnchorSideLeft.Control = FormEditMiscGroupBox + AnchorSideTop.Control = RightClickSelectsCheckBox + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 13 + Top = 102 + Width = 107 + BorderSpacing.Top = 4 + BorderSpacing.Around = 6 + Caption = 'GrabberColorLabel' + ParentColor = False + end + object MarkerColorLabel: TLabel + AnchorSideLeft.Control = FormEditMiscGroupBox + AnchorSideTop.Control = GrabberColorLabel + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 13 + Top = 125 + Width = 101 + BorderSpacing.Top = 4 + BorderSpacing.Around = 6 + Caption = 'MarkerColorLabel' + ParentColor = False + end + object ShowComponentCaptionsCheckBox: TCheckBox + AnchorSideLeft.Control = FormEditMiscGroupBox + AnchorSideRight.Control = FormEditMiscGroupBox + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 20 + Width = 325 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Left = 6 + BorderSpacing.Right = 6 + Caption = 'ShowComponentCaptionsCheckBox' + TabOrder = 0 + end + object ShowEditorHintsCheckBox: TCheckBox + AnchorSideLeft.Control = FormEditMiscGroupBox + AnchorSideTop.Control = ShowComponentCaptionsCheckBox + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = FormEditMiscGroupBox + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 20 + Top = 24 + Width = 325 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Left = 6 + BorderSpacing.Top = 4 + BorderSpacing.Right = 6 + Caption = 'ShowEditorHintsCheckBox' + TabOrder = 1 + end + object AutoCreateFormsOnOpenCheckBox: TCheckBox + AnchorSideLeft.Control = FormEditMiscGroupBox + AnchorSideTop.Control = ShowEditorHintsCheckBox + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = FormEditMiscGroupBox + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 20 + Top = 48 + Width = 325 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Left = 6 + BorderSpacing.Top = 4 + BorderSpacing.Right = 6 + Caption = 'AutoCreateFormsOnOpenCheckBox' + TabOrder = 2 + end + object RightClickSelectsCheckBox: TCheckBox + AnchorSideLeft.Control = FormEditMiscGroupBox + AnchorSideTop.Control = AutoCreateFormsOnOpenCheckBox + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = FormEditMiscGroupBox + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 20 + Top = 72 + Width = 331 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Left = 6 + BorderSpacing.Top = 4 + Caption = 'RightClickSelectsCheckBox' + TabOrder = 3 + end + object DesignerPaintLazyCheckBox: TCheckBox + AnchorSideLeft.Control = FormEditMiscGroupBox + AnchorSideTop.Control = MarkerColorLabel + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = FormEditMiscGroupBox + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 20 + Top = 148 + Width = 325 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Top = 4 + BorderSpacing.Around = 6 + Caption = 'DesignerPaintLazyCheckBox' + ParentShowHint = False + ShowHint = True + TabOrder = 4 + end + end + object RubberbandGroupBox: TGroupBox + AnchorSideLeft.Control = GridGroupBox + AnchorSideLeft.Side = asrBottom + AnchorSideRight.Control = FormEditorPage + AnchorSideRight.Side = asrBottom + Left = 349 + Height = 212 + Top = 6 + Width = 183 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Around = 6 + Caption = 'RubberbandGroupBox' + ClientHeight = 212 + ClientWidth = 183 + Color = clBtnFace + ParentColor = False + TabOrder = 3 + object RubberbandSelectColorButton: TColorButton + AnchorSideLeft.Control = RubberbandSelectColorLabel + AnchorSideTop.Control = RubberbandSelectColorLabel + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 23 + Top = 25 + Width = 50 + BorderWidth = 2 + ButtonColorSize = 16 + Color = clBtnFace + end + object RubberbandCreateColorButton: TColorButton + AnchorSideLeft.Control = RubberbandCreateColorLabel + AnchorSideTop.Control = RubberbandCreateColorLabel + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 23 + Top = 73 + Width = 50 + BorderWidth = 2 + ButtonColorSize = 16 + Color = clBtnFace + end + object RubberbandSelectColorLabel: TLabel + AnchorSideLeft.Control = RubberbandGroupBox + AnchorSideTop.Control = RubberbandGroupBox + AnchorSideRight.Control = RubberbandGroupBox + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 13 + Top = 6 + Width = 171 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Around = 6 + Caption = 'RubberbandSelectColorLabel' + ParentColor = False + end + object RubberbandCreateColorLabel: TLabel + AnchorSideLeft.Control = RubberbandGroupBox + AnchorSideTop.Control = RubberbandSelectColorButton + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = RubberbandGroupBox + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 13 + Top = 54 + Width = 171 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Around = 6 + Caption = 'RubberbandCreateColorLabel' + ParentColor = False + end + object RubberbandSelectsGrandChildsCheckBox: TCheckBox + AnchorSideLeft.Control = RubberbandGroupBox + AnchorSideTop.Control = RubberbandCreateColorButton + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = RubberbandGroupBox + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 20 + Top = 102 + Width = 171 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Around = 6 + Caption = 'RubberbandSelectsGrandChildsCheckBox' + TabOrder = 0 + end + end + end + object ObjectInspectorPage: TPage + Caption = 'ObjectInspectorPage' + ClientWidth = 613 + ClientHeight = 419 + object ObjectInspectorColorsGroupBox: TGroupBox + AnchorSideRight.Control = ObjectInspectorPage + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 176 + Top = 7 + Width = 522 + Anchors = [akTop, akLeft, akRight] + AutoSize = True + BorderSpacing.Left = 5 + BorderSpacing.Top = 5 + BorderSpacing.Right = 6 + Caption = 'ObjectInspectorColorsGroupBox' + ChildSizing.LeftRightSpacing = 6 + ChildSizing.TopBottomSpacing = 6 + ChildSizing.HorizontalSpacing = 2 + ChildSizing.VerticalSpacing = 2 + ClientHeight = 176 + ClientWidth = 522 + TabOrder = 0 + object OIBackgroundColorButton: TColorButton + Left = 6 + Height = 23 + Top = 6 + Width = 50 + BorderWidth = 2 + ButtonColorSize = 16 + Color = clBtnFace + end + object OISubPropsColorButton: TColorButton + Left = 6 + Height = 23 + Top = 30 + Width = 50 + BorderWidth = 2 + ButtonColorSize = 16 + Color = clBtnFace + end + object OIReferencesColorButton: TColorButton + Left = 6 + Height = 23 + Top = 54 + Width = 50 + BorderWidth = 2 + ButtonColorSize = 16 + Color = clBtnFace + end + object OIValueColorButton: TColorButton + Left = 6 + Height = 23 + Top = 78 + Width = 50 + BorderWidth = 2 + ButtonColorSize = 16 + Color = clBtnFace + end + object OIDefaultValueColorButton: TColorButton + Left = 6 + Height = 23 + Top = 102 + Width = 50 + BorderWidth = 2 + ButtonColorSize = 16 + Color = clBtnFace + end + object OIPropNameColorButton: TColorButton + Left = 6 + Height = 23 + Top = 126 + Width = 50 + BorderWidth = 2 + ButtonColorSize = 16 + Color = clBtnFace + end + object OIBackgroundColorLabel: TLabel + Left = 65 + Height = 16 + Top = 12 + Width = 430 + Anchors = [akTop, akLeft, akRight] + Caption = 'OIBackgroundColorLabel' + ParentColor = False + end + object OISubPropsColorLabel: TLabel + Left = 65 + Height = 16 + Top = 36 + Width = 430 + Anchors = [akTop, akLeft, akRight] + Caption = 'OISubPropsColorLabel' + ParentColor = False + end + object OIReferencesColorLabel: TLabel + Left = 65 + Height = 16 + Top = 60 + Width = 430 + Anchors = [akTop, akLeft, akRight] + Caption = 'OIReferencesColorLabel' + ParentColor = False + end + object OIValueColorLabel: TLabel + Left = 65 + Height = 16 + Top = 84 + Width = 430 + Anchors = [akTop, akLeft, akRight] + Caption = 'OIValueColorLabel' + ParentColor = False + end + object OIDefaultValueColorLabel: TLabel + Left = 65 + Height = 16 + Top = 108 + Width = 430 + Anchors = [akTop, akLeft, akRight] + Caption = 'OIDefaultValueColorLabel' + ParentColor = False + end + object OIPropNameColorLabel: TLabel + Left = 65 + Height = 16 + Top = 132 + Width = 430 + Anchors = [akTop, akLeft, akRight] + Caption = 'OIPropNameColorLabel' + ParentColor = False + end + end + object OIMiscGroupBox: TGroupBox + AnchorSideRight.Control = ObjectInspectorPage + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 105 + Top = 186 + Width = 522 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Right = 6 + Caption = 'OIMiscGroupBox' + ClientHeight = 105 + ClientWidth = 522 + TabOrder = 1 + object OIDefaultItemHeightLabel: TLabel + Left = 6 + Height = 16 + Top = 6 + Width = 454 + Anchors = [akTop, akLeft, akRight] + Caption = 'OIDefaultItemHeightLabel' + ParentColor = False + end + object OIShowHintCheckBox: TCheckBox + Left = 6 + Height = 21 + Top = 55 + Width = 454 + Anchors = [akTop, akLeft, akRight] + Caption = 'OIShowHintCheckBox' + TabOrder = 0 + end + object OIDefaultItemHeightSpinEdit: TSpinEdit + Left = 6 + Height = 25 + Top = 24 + Width = 69 + TabOrder = 1 + Value = 1 + end + end + end + object BackupPage: TPage + Caption = 'BackupPage' + ClientWidth = 613 + ClientHeight = 419 + object BackupHelpLabel: TLabel + AnchorSideRight.Control = BackupPage + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 13 + Top = 7 + Width = 522 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Right = 6 + Caption = 'BackupHelpLabel' + ParentColor = False + end + object BackupProjectGroupBox: TGroupBox + AnchorSideRight.Control = BackupPage + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 140 + Top = 34 + Width = 522 + Anchors = [akTop, akLeft, akRight] + AutoSize = True + BorderSpacing.Right = 6 + Caption = 'BackupProjectGroupBox' + ClientHeight = 140 + ClientWidth = 522 + TabOrder = 0 + object BakProjAddExtLabel: TLabel + AnchorSideLeft.Control = BakProjAddExtComboBox + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = BakProjAddExtComboBox + AnchorSideTop.Side = asrCenter + AnchorSideRight.Control = BackupProjectGroupBox + AnchorSideRight.Side = asrBottom + Left = 112 + Height = 13 + Top = 46 + Width = 404 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Around = 6 + Caption = 'BakProjAddExtLabel' + ParentColor = False + end + object BakProjMaxCounterLabel: TLabel + AnchorSideLeft.Control = BakProjMaxCounterComboBox + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = BakProjMaxCounterComboBox + AnchorSideTop.Side = asrCenter + AnchorSideRight.Control = BackupProjectGroupBox + AnchorSideRight.Side = asrBottom + Left = 112 + Height = 13 + Top = 73 + Width = 404 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Around = 6 + Caption = 'BakProjMaxCounterLabel' + ParentColor = False + end + object BakProjSubDirLabel: TLabel + AnchorSideLeft.Control = BakProjSubDirComboBox + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = BakProjSubDirComboBox + AnchorSideTop.Side = asrCenter + AnchorSideRight.Control = BackupProjectGroupBox + AnchorSideRight.Side = asrBottom + Left = 112 + Height = 13 + Top = 100 + Width = 404 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Around = 6 + Caption = 'BakProjSubDirLabel' + ParentColor = False + end + object BakProjTypeRadioGroup: TRadioGroup + AnchorSideRight.Control = BackupProjectGroupBox + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 30 + Top = 6 + Width = 510 + Anchors = [akTop, akLeft, akRight] + AutoFill = True + AutoSize = True + BorderSpacing.Around = 6 + Caption = 'BakProjTypeRadioGroup' + ChildSizing.LeftRightSpacing = 6 + ChildSizing.TopBottomSpacing = 6 + ChildSizing.EnlargeHorizontal = crsHomogenousChildResize + ChildSizing.EnlargeVertical = crsHomogenousChildResize + ChildSizing.ShrinkHorizontal = crsScaleChilds + ChildSizing.ShrinkVertical = crsScaleChilds + ChildSizing.Layout = cclLeftToRightThenTopToBottom + ChildSizing.ControlsPerLine = 2 + Columns = 2 + Constraints.MinHeight = 30 + OnClick = BakTypeRadioGroupClick + TabOrder = 0 + end + object BakProjAddExtComboBox: TComboBox + AnchorSideTop.Control = BakProjTypeRadioGroup + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 21 + Top = 42 + Width = 100 + AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] + BorderSpacing.Around = 6 + MaxLength = 0 + TabOrder = 1 + Text = 'BakProjAddExtComboBox' + end + object BakProjMaxCounterComboBox: TComboBox + AnchorSideTop.Control = BakProjAddExtComboBox + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 21 + Top = 69 + Width = 100 + AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] + BorderSpacing.Around = 6 + MaxLength = 0 + TabOrder = 2 + Text = 'BakProjMaxCounterComboBox' + end + object BakProjSubDirComboBox: TComboBox + AnchorSideTop.Control = BakProjMaxCounterComboBox + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 21 + Top = 96 + Width = 100 + AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] + BorderSpacing.Around = 6 + MaxLength = 0 + TabOrder = 3 + Text = 'BakProjSubDirComboBox' + end + end + object BackupOtherGroupBox: TGroupBox + AnchorSideTop.Control = BackupProjectGroupBox + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = BackupPage + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 140 + Top = 180 + Width = 522 + Anchors = [akTop, akLeft, akRight] + AutoSize = True + BorderSpacing.Around = 6 + Caption = 'BackupOtherGroupBox' + ClientHeight = 140 + ClientWidth = 522 + TabOrder = 1 + object BakOtherAddExtLabel: TLabel + AnchorSideLeft.Control = BakOtherAddExtComboBox + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = BakOtherAddExtComboBox + AnchorSideTop.Side = asrCenter + AnchorSideRight.Control = BackupOtherGroupBox + AnchorSideRight.Side = asrBottom + Left = 112 + Height = 13 + Top = 46 + Width = 404 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Around = 6 + Caption = 'BakOtherAddExtLabel' + ParentColor = False + end + object BakOtherMaxCounterLabel: TLabel + AnchorSideLeft.Control = BakOtherMaxCounterComboBox + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = BakOtherMaxCounterComboBox + AnchorSideTop.Side = asrCenter + AnchorSideRight.Control = BackupOtherGroupBox + AnchorSideRight.Side = asrBottom + Left = 112 + Height = 13 + Top = 73 + Width = 404 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Around = 6 + Caption = 'BakOtherMaxCounterLabel' + ParentColor = False + end + object BakOtherSubDirLabel: TLabel + AnchorSideLeft.Control = BakOtherSubDirComboBox + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = BakOtherSubDirComboBox + AnchorSideTop.Side = asrCenter + AnchorSideRight.Control = BackupOtherGroupBox + AnchorSideRight.Side = asrBottom + Left = 112 + Height = 13 + Top = 100 + Width = 404 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Around = 6 + Caption = 'BakOtherSubDirLabel' + ParentColor = False + end + object BakOtherTypeRadioGroup: TRadioGroup + AnchorSideRight.Control = BackupOtherGroupBox + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 30 + Top = 6 + Width = 510 + Anchors = [akTop, akLeft, akRight] + AutoFill = True + AutoSize = True + BorderSpacing.Around = 6 + Caption = 'BakOtherTypeRadioGroup' + ChildSizing.LeftRightSpacing = 6 + ChildSizing.TopBottomSpacing = 6 + ChildSizing.EnlargeHorizontal = crsHomogenousChildResize + ChildSizing.EnlargeVertical = crsHomogenousChildResize + ChildSizing.ShrinkHorizontal = crsScaleChilds + ChildSizing.ShrinkVertical = crsScaleChilds + ChildSizing.Layout = cclLeftToRightThenTopToBottom + ChildSizing.ControlsPerLine = 2 + Columns = 2 + Constraints.MinHeight = 30 + OnClick = BakTypeRadioGroupClick + TabOrder = 0 + end + object BakOtherAddExtComboBox: TComboBox + AnchorSideTop.Control = BakOtherTypeRadioGroup + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 21 + Top = 42 + Width = 100 + AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] + BorderSpacing.Around = 6 + MaxLength = 0 + TabOrder = 1 + Text = 'BakOtherAddExtComboBox' + end + object BakOtherMaxCounterComboBox: TComboBox + AnchorSideTop.Control = BakOtherAddExtComboBox + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 21 + Top = 69 + Width = 100 + AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] + BorderSpacing.Around = 6 + MaxLength = 0 + TabOrder = 2 + Text = 'BakOtherMaxCounterComboBox' + end + object BakOtherSubDirComboBox: TComboBox + AnchorSideTop.Control = BakOtherMaxCounterComboBox + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 21 + Top = 96 + Width = 100 + AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] + BorderSpacing.Around = 6 + MaxLength = 0 + TabOrder = 3 + Text = 'BakOtherSubDirComboBox' + end + end + end + object NamingPage: TPage + Caption = 'NamingPage' + ClientWidth = 613 + ClientHeight = 419 + object PascalFileExtRadiogroup: TRadioGroup + AnchorSideRight.Control = NamingPage + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 47 + Top = 6 + Width = 601 + Align = alTop + AutoFill = True + BorderSpacing.Around = 6 + Caption = 'PascalFileExtRadiogroup' + ChildSizing.LeftRightSpacing = 6 + ChildSizing.TopBottomSpacing = 6 + ChildSizing.EnlargeHorizontal = crsHomogenousChildResize + ChildSizing.EnlargeVertical = crsHomogenousChildResize + ChildSizing.ShrinkHorizontal = crsScaleChilds + ChildSizing.ShrinkVertical = crsScaleChilds + ChildSizing.Layout = cclLeftToRightThenTopToBottom + ChildSizing.ControlsPerLine = 2 + Columns = 2 + TabOrder = 0 + end + object CharcaseFileActionRadioGroup: TRadioGroup + AnchorSideRight.Control = NamingPage + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 85 + Top = 165 + Width = 601 + Align = alTop + AutoFill = True + BorderSpacing.Around = 6 + Caption = 'CharcaseFileActionRadioGroup' + ChildSizing.LeftRightSpacing = 6 + ChildSizing.TopBottomSpacing = 6 + ChildSizing.EnlargeHorizontal = crsHomogenousChildResize + ChildSizing.EnlargeVertical = crsHomogenousChildResize + ChildSizing.ShrinkHorizontal = crsScaleChilds + ChildSizing.ShrinkVertical = crsScaleChilds + ChildSizing.Layout = cclLeftToRightThenTopToBottom + ChildSizing.ControlsPerLine = 2 + Columns = 2 + TabOrder = 1 + end + object AmbiguousFileActionRadioGroup: TRadioGroup + AnchorSideRight.Control = NamingPage + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 100 + Top = 59 + Width = 601 + Align = alTop + AutoFill = True + BorderSpacing.Around = 6 + Caption = 'AmbiguousFileActionRadioGroup' + ChildSizing.LeftRightSpacing = 6 + ChildSizing.TopBottomSpacing = 6 + ChildSizing.EnlargeHorizontal = crsHomogenousChildResize + ChildSizing.EnlargeVertical = crsHomogenousChildResize + ChildSizing.ShrinkHorizontal = crsScaleChilds + ChildSizing.ShrinkVertical = crsScaleChilds + ChildSizing.Layout = cclLeftToRightThenTopToBottom + ChildSizing.ControlsPerLine = 2 + Columns = 2 + TabOrder = 2 + end + end + object LazDocPage: TPage + Caption = 'LazDocPage' + ClientWidth = 613 + ClientHeight = 419 + object LazDocPathsGroupBox: TGroupBox + AnchorSideRight.Control = LazDocPage + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 205 + Top = 6 + Width = 601 + Align = alTop + AutoSize = True + BorderSpacing.Around = 6 + Caption = 'LazDocPathsGroupBox' + ClientHeight = 205 + ClientWidth = 601 + TabOrder = 0 + object LazDocListBox: TListBox + Left = 6 + Height = 108 + Top = 6 + Width = 589 + Align = alTop + BorderSpacing.Around = 6 + TabOrder = 0 + TopIndex = -1 + end + object LazDocAddPathButton: TButton + AnchorSideLeft.Control = LazDocPathsGroupBox + AnchorSideTop.Control = LazDocListBox + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 31 + Top = 120 + Width = 163 + AutoSize = True + BorderSpacing.Around = 6 + Caption = 'LazDocAddPathButton' + OnClick = LazDocAddPathButtonClick + TabOrder = 1 + end + object LazDocDeletePathButton: TButton + AnchorSideLeft.Control = LazDocAddPathButton + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = LazDocAddPathButton + Left = 179 + Height = 31 + Top = 120 + Width = 180 + AutoSize = True + BorderSpacing.Left = 10 + Caption = 'LazDocDeletePathButton' + OnClick = LazDocDeletePathButtonClick + TabOrder = 2 + end + object LazDocBrowseButton: TButton + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = LazDocPathEdit + AnchorSideRight.Control = LazDocPathsGroupBox + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Control = LazDocPathEdit + AnchorSideBottom.Side = asrBottom + Left = 571 + Height = 23 + Top = 157 + Width = 24 + Anchors = [akTop, akRight, akBottom] + BorderSpacing.Right = 6 + Caption = '...' + OnClick = LazDocBrowseButtonClick + TabOrder = 3 + end + object LazDocPathEdit: TEdit + AnchorSideLeft.Control = LazDocPathsGroupBox + AnchorSideTop.Control = LazDocAddPathButton + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = LazDocBrowseButton + Left = 6 + Height = 23 + Top = 157 + Width = 565 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Left = 6 + BorderSpacing.Top = 6 + BorderSpacing.Bottom = 6 + TabOrder = 4 + Text = 'LazDocPathEdit' + end + end + end + end + end + object EODBtnPanel: TPanel + Height = 38 + Top = 459 + Width = 768 + Align = alBottom + AutoSize = True + BevelOuter = bvNone + ClientHeight = 38 + ClientWidth = 768 + TabOrder = 0 + object OkButton: TButton + AnchorSideBottom.Side = asrBottom + Left = 600 + Height = 26 + Top = 6 + Width = 75 + Align = alRight + AutoSize = True + BorderSpacing.Around = 6 + Caption = 'Ok' + Constraints.MinWidth = 75 + Default = True + OnClick = OkButtonClick + TabOrder = 0 + end + object CancelButton: TButton + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Side = asrBottom + Left = 681 + Height = 26 + Top = 6 + Width = 81 + Align = alRight + AutoSize = True + BorderSpacing.Around = 6 + Caption = 'CancelButton' + Constraints.MinWidth = 75 + OnClick = CancelButtonClick + TabOrder = 1 + end + end + object SelectDirectoryDialog: TSelectDirectoryDialog + Title = 'Select Directory' + FilterIndex = 0 + left = 256 + end +end diff --git a/ide/environmentopts_new.lrs b/ide/environmentopts_new.lrs new file mode 100644 index 0000000000..693590207c --- /dev/null +++ b/ide/environmentopts_new.lrs @@ -0,0 +1,623 @@ +{ This is an automatically generated lazarus resource file } + +LazarusResources.Add('TEnvironmentOptionsDialog','FORMDATA',[ + 'TPF0'#241#25'TEnvironmentOptionsDialog'#24'EnvironmentOptionsDialog'#4'Left' + +#3'+'#1#6'Height'#3'#'#2#3'Top'#3#169#0#5'Width'#3#0#3#18'HorzScrollBar.Page' + +#3#255#2#18'VertScrollBar.Page'#3'"'#2#13'ActiveControl'#7#8'OkButton'#7'Cap' + +'tion'#6#24'EnvironmentOptionsDialog'#12'ClientHeight'#3'#'#2#11'ClientWidth' + +#3#0#3#8'Position'#7#14'poScreenCenter'#0#241#6'TPanel'#11'BottomPanel'#3'To' + +'p'#3#241#1#5'Width'#3#0#3#11'ClientWidth'#3#0#3#8'TabOrder'#2#3#0#241#6'TPa' + +'nel'#13'OKCancelPanel'#4'Left'#3'E'#2#0#241#7'TBitBtn'#9'btnCancel'#6'Cance' + +'l'#8#0#0#241#7'TBitBtn'#5'btnOK'#0#0#0#241#7'TBitBtn'#10'HelpButton'#0#0#0 + +#241#6'TPanel'#15'CategoriesPanel'#5'Width'#3#0#3#11'ClientWidth'#3#0#3#8'Ta' + +'bOrder'#2#4#0#241#6'TLabel'#17'SectionTitleLabel'#0#0#241#6'TLabel'#11'Sear' + +'chLabel'#4'Left'#3#189#1#0#0#241#7'TBitBtn'#17'ClearFilterButton'#4'Left'#3 + +#213#2#0#0#241#5'TEdit'#10'FilterEdit'#4'Left'#3#30#2#0#0#0#241#6'TPanel'#17 + +'SectionsTreePanel'#6'Height'#3#163#1#12'ClientHeight'#3#163#1#8'TabOrder'#2 + +#1#0#241#8'TListBox'#11'SectionList'#6'Height'#3#163#1#0#0#0#241#9'TSplitter' + +#12'MainSplitter'#6'Height'#3#163#1#0#0#241#6'TPanel'#16'OptionsAreaPanel'#6 + +'Height'#3#163#1#5'Width'#3'e'#2#12'ClientHeight'#3#163#1#11'ClientWidth'#3 + +'e'#2#8'TabOrder'#2#2#0#9'TNotebook'#8'Notebook'#24'AnchorSideBottom.Control' + +#7#11'EODBtnPanel'#6'Height'#3#163#1#5'Width'#3'e'#2#5'Align'#7#8'alClient' + +#14'OnChangeBounds'#7#20'NotebookChangeBounds'#9'PageIndex'#2#1#8'ShowTabs'#8 + +#8'TabOrder'#2#0#0#5'TPage'#9'FilesPage'#7'Caption'#6#9'FilesPage'#11'Client' + +'Width'#3'e'#2#12'ClientHeight'#3#163#1#0#6'TLabel'#23'MaxRecentOpenFilesLab' + +'el'#4'Left'#2#6#6'Height'#2#13#3'Top'#2#10#5'Width'#3#153#0#7'Caption'#6#23 + +'MaxRecentOpenFilesLabel'#11'ParentColor'#8#0#0#6'TLabel'#26'MaxRecentProjec' + +'tFilesLabel'#4'Left'#2#6#6'Height'#2#13#3'Top'#2':'#5'Width'#3#161#0#7'Capt' + +'ion'#6#26'MaxRecentProjectFilesLabel'#11'ParentColor'#8#0#0#9'TComboBox'#26 + +'MaxRecentOpenFilesComboBox'#23'AnchorSideRight.Control'#7#9'FilesPage'#20'A' + +'nchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#21#3'Top'#2#26#5 + +'Width'#3'U'#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#16'AutoComplete' + +'Text'#11#22'cbactEndOfLineComplete'#20'cbactSearchAscending'#0#19'BorderSpa' + +'cing.Right'#2#6#13'Items.Strings'#1#6#1'5'#6#2'10'#6#2'15'#6#2'20'#6#2'25'#6 + +#2'30'#0#9'MaxLength'#2#0#8'TabOrder'#2#0#0#0#9'TComboBox'#29'MaxRecentProje' + +'ctFilesComboBox'#23'AnchorSideRight.Control'#7#9'FilesPage'#20'AnchorSideRi' + +'ght.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#21#3'Top'#2'J'#5'Width'#3 + +'U'#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#16'AutoCompleteText'#11 + +#22'cbactEndOfLineComplete'#20'cbactSearchAscending'#0#19'BorderSpacing.Righ' + +'t'#2#6#13'Items.Strings'#1#6#1'5'#6#2'10'#6#2'15'#6#2'20'#6#2'25'#6#2'30'#0 + +#9'MaxLength'#2#0#8'TabOrder'#2#1#0#0#9'TCheckBox'#30'OpenLastProjectAtStart' + +'CheckBox'#23'AnchorSideRight.Control'#7#9'FilesPage'#20'AnchorSideRight.Sid' + +'e'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#20#3'Top'#2'j'#5'Width'#3'U'#2#7 + +'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#19'BorderSpacing.Right'#2#6#7'C' + +'aption'#6#30'OpenLastProjectAtStartCheckBox'#8'TabOrder'#2#2#0#0#9'TGroupBo' + +'x'#18'LazarusDirGroupBox'#23'AnchorSideRight.Control'#7#9'FilesPage'#20'Anc' + +'horSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2'6'#3'Top'#3#142#0 + +#5'Width'#3'U'#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#19'BorderSpac' + +'ing.Right'#2#6#7'Caption'#6#18'LazarusDirGroupBox'#12'ClientHeight'#2'6'#11 + +'ClientWidth'#3'U'#2#8'TabOrder'#2#3#0#9'TComboBox'#18'LazarusDirComboBox'#22 + +'AnchorSideLeft.Control'#7#18'LazarusDirGroupBox'#23'AnchorSideRight.Control' + +#7#16'LazarusDirButton'#4'Left'#2#6#6'Height'#2#21#3'Top'#2#3#5'Width'#3'0'#2 + +#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#16'AutoCompleteText'#11#22'cb' + +'actEndOfLineComplete'#20'cbactSearchAscending'#0#18'BorderSpacing.Left'#2#6 + +#9'MaxLength'#2#0#8'TabOrder'#2#0#4'Text'#6#18'LazarusDirComboBox'#0#0#7'TBu' + +'tton'#16'LazarusDirButton'#22'AnchorSideLeft.Control'#7#18'LazarusDirGroupB' + +'ox'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#18'L' + +'azarusDirComboBox'#23'AnchorSideRight.Control'#7#18'LazarusDirGroupBox'#20 + +'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#18'Laza' + +'rusDirComboBox'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3'6'#2#6'H' + +'eight'#2#21#3'Top'#2#3#5'Width'#2#25#7'Anchors'#11#5'akTop'#7'akRight'#8'ak' + +'Bottom'#0#19'BorderSpacing.Right'#2#6#7'Caption'#6#3'...'#7'OnClick'#7#22'D' + +'irectoriesButtonClick'#8'TabOrder'#2#1#0#0#0#9'TGroupBox'#20'CompilerPathGr' + +'oupBox'#23'AnchorSideRight.Control'#7#9'FilesPage'#20'AnchorSideRight.Side' + +#7#9'asrBottom'#4'Left'#2#6#6'Height'#2'6'#3'Top'#3#197#0#5'Width'#3'U'#2#7 + +'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#19'BorderSpacing.Right'#2#6#7'C' + +'aption'#6#20'CompilerPathGroupBox'#12'ClientHeight'#2'6'#11'ClientWidth'#3 + +'U'#2#8'TabOrder'#2#4#0#9'TComboBox'#20'CompilerPathComboBox'#22'AnchorSideL' + ,'eft.Control'#7#20'CompilerPathGroupBox'#23'AnchorSideRight.Control'#7#18'Co' + +'mpilerPathButton'#4'Left'#2#6#6'Height'#2#21#3'Top'#2#3#5'Width'#3'0'#2#7'A' + +'nchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#16'AutoCompleteText'#11#22'cbact' + +'EndOfLineComplete'#20'cbactSearchAscending'#0#18'BorderSpacing.Left'#2#6#9 + +'MaxLength'#2#0#8'TabOrder'#2#0#4'Text'#6#20'CompilerPathComboBox'#0#0#7'TBu' + +'tton'#18'CompilerPathButton'#21'AnchorSideTop.Control'#7#20'CompilerPathCom' + +'boBox'#23'AnchorSideRight.Control'#7#20'CompilerPathGroupBox'#20'AnchorSide' + +'Right.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#20'CompilerPathCo' + +'mboBox'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3'6'#2#6'Height'#2 + +#21#3'Top'#2#3#5'Width'#2#25#7'Anchors'#11#5'akTop'#7'akRight'#8'akBottom'#0 + +#19'BorderSpacing.Right'#2#6#7'Caption'#6#3'...'#7'OnClick'#7#16'FilesButton' + +'Click'#8'TabOrder'#2#1#0#0#0#9'TGroupBox'#20'FPCSourceDirGroupBox'#23'Ancho' + +'rSideRight.Control'#7#9'FilesPage'#20'AnchorSideRight.Side'#7#9'asrBottom'#4 + +'Left'#2#6#6'Height'#2'6'#3'Top'#3#252#0#5'Width'#3'U'#2#7'Anchors'#11#5'akT' + +'op'#6'akLeft'#7'akRight'#0#19'BorderSpacing.Right'#2#6#7'Caption'#6#20'FPCS' + +'ourceDirGroupBox'#12'ClientHeight'#2'6'#11'ClientWidth'#3'U'#2#8'TabOrder'#2 + +#5#0#9'TComboBox'#20'FPCSourceDirComboBox'#22'AnchorSideLeft.Control'#7#20'F' + +'PCSourceDirGroupBox'#23'AnchorSideRight.Control'#7#18'FPCSourceDirButton'#4 + +'Left'#2#6#6'Height'#2#21#3'Top'#2#3#5'Width'#3'0'#2#7'Anchors'#11#5'akTop'#6 + +'akLeft'#7'akRight'#0#16'AutoCompleteText'#11#22'cbactEndOfLineComplete'#20 + +'cbactSearchAscending'#0#18'BorderSpacing.Left'#2#6#9'MaxLength'#2#0#8'TabOr' + +'der'#2#0#4'Text'#6#20'FPCSourceDirComboBox'#0#0#7'TButton'#18'FPCSourceDirB' + +'utton'#21'AnchorSideTop.Control'#7#20'FPCSourceDirComboBox'#23'AnchorSideRi' + +'ght.Control'#7#20'FPCSourceDirGroupBox'#20'AnchorSideRight.Side'#7#9'asrBot' + +'tom'#24'AnchorSideBottom.Control'#7#20'FPCSourceDirComboBox'#21'AnchorSideB' + +'ottom.Side'#7#9'asrBottom'#4'Left'#3'6'#2#6'Height'#2#21#3'Top'#2#3#5'Width' + +#2#25#7'Anchors'#11#5'akTop'#7'akRight'#8'akBottom'#0#19'BorderSpacing.Right' + +#2#6#7'Caption'#6#3'...'#7'OnClick'#7#22'DirectoriesButtonClick'#8'TabOrder' + +#2#1#0#0#0#9'TGroupBox'#16'MakePathGroupBox'#23'AnchorSideRight.Control'#7#9 + +'FilesPage'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2 + +'6'#3'Top'#3'3'#1#5'Width'#3'U'#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight' + +#0#19'BorderSpacing.Right'#2#6#7'Caption'#6#16'MakePathGroupBox'#12'ClientHe' + +'ight'#2'6'#11'ClientWidth'#3'U'#2#8'TabOrder'#2#6#0#9'TComboBox'#16'MakePat' + +'hComboBox'#22'AnchorSideLeft.Control'#7#16'MakePathGroupBox'#23'AnchorSideR' + +'ight.Control'#7#14'MakePathButton'#4'Left'#2#6#6'Height'#2#21#3'Top'#2#3#5 + +'Width'#3'0'#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#16'AutoComplete' + +'Text'#11#22'cbactEndOfLineComplete'#20'cbactSearchAscending'#0#18'BorderSpa' + +'cing.Left'#2#6#9'MaxLength'#2#0#8'TabOrder'#2#0#4'Text'#6#16'MakePathComboB' + +'ox'#0#0#7'TButton'#14'MakePathButton'#21'AnchorSideTop.Control'#7#16'MakePa' + +'thComboBox'#23'AnchorSideRight.Control'#7#16'MakePathGroupBox'#20'AnchorSid' + +'eRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#16'MakePathCombo' + +'Box'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3'6'#2#6'Height'#2#21 + +#3'Top'#2#3#5'Width'#2#25#7'Anchors'#11#5'akTop'#7'akRight'#8'akBottom'#0#19 + +'BorderSpacing.Right'#2#6#7'Caption'#6#3'...'#7'OnClick'#7#16'FilesButtonCli' + +'ck'#8'TabOrder'#2#1#0#0#0#9'TGroupBox'#20'TestBuildDirGroupBox'#23'AnchorSi' + +'deRight.Control'#7#9'FilesPage'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'L' + +'eft'#2#6#6'Height'#2'6'#3'Top'#3'j'#1#5'Width'#3'U'#2#7'Anchors'#11#5'akTop' + +#6'akLeft'#7'akRight'#0#19'BorderSpacing.Right'#2#6#7'Caption'#6#20'TestBuil' + +'dDirGroupBox'#12'ClientHeight'#2'6'#11'ClientWidth'#3'U'#2#8'TabOrder'#2#7#0 + +#9'TComboBox'#20'TestBuildDirComboBox'#22'AnchorSideLeft.Control'#7#20'TestB' + +'uildDirGroupBox'#23'AnchorSideRight.Control'#7#18'TestBuildDirButton'#4'Lef' + +'t'#2#6#6'Height'#2#21#3'Top'#2#3#5'Width'#3'0'#2#7'Anchors'#11#5'akTop'#6'a' + +'kLeft'#7'akRight'#0#16'AutoCompleteText'#11#22'cbactEndOfLineComplete'#20'c' + +'bactSearchAscending'#0#18'BorderSpacing.Left'#2#6#9'MaxLength'#2#0#8'TabOrd' + +'er'#2#0#4'Text'#6#20'TestBuildDirComboBox'#0#0#7'TButton'#18'TestBuildDirBu' + +'tton'#21'AnchorSideTop.Control'#7#20'TestBuildDirComboBox'#23'AnchorSideRig' + +'ht.Control'#7#20'TestBuildDirGroupBox'#20'AnchorSideRight.Side'#7#9'asrBott' + +'om'#24'AnchorSideBottom.Control'#7#20'TestBuildDirComboBox'#21'AnchorSideBo' + +'ttom.Side'#7#9'asrBottom'#4'Left'#3'6'#2#6'Height'#2#21#3'Top'#2#3#5'Width' + +#2#25#7'Anchors'#11#5'akTop'#7'akRight'#8'akBottom'#0#19'BorderSpacing.Right' + +#2#6#7'Caption'#6#3'...'#7'OnClick'#7#22'DirectoriesButtonClick'#8'TabOrder' + +#2#1#0#0#0#0#5'TPage'#11'DesktopPage'#7'Caption'#6#11'DesktopPage'#11'Client' + +'Width'#3'e'#2#12'ClientHeight'#3#163#1#0#9'TGroupBox'#16'LanguageGroupBox' + +#23'AnchorSideRight.Control'#7#11'DesktopPage'#20'AnchorSideRight.Side'#7#9 + ,'asrBottom'#4'Left'#2#4#6'Height'#2'8'#3'Top'#2#10#5'Width'#3'['#2#7'Anchors' + +#11#5'akTop'#6'akLeft'#7'akRight'#0#19'BorderSpacing.Right'#2#6#7'Caption'#6 + +#16'LanguageGroupBox'#12'ClientHeight'#2''''#11'ClientWidth'#3'W'#2#8'TabOrd' + +'er'#2#0#0#9'TComboBox'#16'LanguageComboBox'#22'AnchorSideLeft.Control'#7#16 + +'LanguageGroupBox'#23'AnchorSideRight.Control'#7#16'LanguageGroupBox'#20'Anc' + +'horSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#21#3'Top'#2#8#5'W' + +'idth'#3'K'#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#16'AutoCompleteT' + +'ext'#11#22'cbactEndOfLineComplete'#20'cbactSearchAscending'#0#20'BorderSpac' + +'ing.Around'#2#6#9'MaxLength'#2#0#5'Style'#7#14'csDropDownList'#8'TabOrder'#2 + +#0#0#0#0#9'TCheckBox#CheckDiskChangesWithLoadingCheckBox'#4'Left'#2#6#6'Heig' + +'ht'#2#20#3'Top'#3'@'#1#5'Width'#3#7#1#7'Caption'#6'#CheckDiskChangesWithLoa' + +'dingCheckBox'#8'TabOrder'#2#1#0#0#9'TCheckBox$ShowHintsForComponentPaletteC' + +'heckBox'#4'Left'#2#6#6'Height'#2#20#3'Top'#3'V'#1#5'Width'#3#7#1#7'Caption' + +#6'$ShowHintsForComponentPaletteCheckBox'#8'TabOrder'#2#2#0#0#9'TGroupBox'#16 + +'AutoSaveGroupBox'#23'AnchorSideRight.Control'#7#11'DesktopPage'#20'AnchorSi' + +'deRight.Side'#7#9'asrBottom'#4'Left'#2#4#6'Height'#3#136#0#3'Top'#2'J'#5'Wi' + +'dth'#3'['#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#19'BorderSpacing.' + +'Right'#2#6#7'Caption'#6#16'AutoSaveGroupBox'#12'ClientHeight'#2'w'#11'Clien' + +'tWidth'#3'W'#2#8'TabOrder'#2#6#0#6'TLabel'#27'AutoSaveIntervalInSecsLabel'#4 + +'Left'#2#6#6'Height'#2#13#3'Top'#2'C'#5'Width'#3#8#2#7'Anchors'#11#5'akTop'#6 + +'akLeft'#7'akRight'#0#7'Caption'#6#27'AutoSaveIntervalInSecsLabel'#7'Enabled' + +#8#11'ParentColor'#8#0#0#9'TCheckBox'#27'AutoSaveEditorFilesCheckBox'#4'Left' + +#2#6#6'Height'#2#20#3'Top'#2#4#5'Width'#3#17#2#7'Anchors'#11#5'akTop'#6'akLe' + +'ft'#7'akRight'#0#7'Caption'#6#27'AutoSaveEditorFilesCheckBox'#7'Enabled'#8#8 + +'TabOrder'#2#0#0#0#9'TCheckBox'#23'AutoSaveProjectCheckBox'#4'Left'#2#6#6'He' + +'ight'#2#20#3'Top'#2#30#5'Width'#3#17#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'a' + +'kRight'#0#7'Caption'#6#23'AutoSaveProjectCheckBox'#7'Enabled'#8#8'TabOrder' + +#2#1#0#0#9'TComboBox'#30'AutoSaveIntervalInSecsComboBox'#22'AnchorSideLeft.C' + +'ontrol'#7#16'AutoSaveGroupBox'#23'AnchorSideRight.Control'#7#16'AutoSaveGro' + +'upBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#21#3 + +'Top'#2'W'#5'Width'#3'K'#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#16 + +'AutoCompleteText'#11#22'cbactEndOfLineComplete'#20'cbactSearchAscending'#0 + +#20'BorderSpacing.Around'#2#6#7'Enabled'#8#13'Items.Strings'#1#6#4'1200'#6#3 + +'600'#6#3'300'#6#3'120'#0#9'MaxLength'#2#0#8'TabOrder'#2#2#0#0#0#9'TGroupBox' + +#20'DesktopFilesGroupBox'#23'AnchorSideRight.Control'#7#11'DesktopPage'#20'A' + +'nchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#4#6'Height'#2'a'#3'Top'#3#218 + +#0#5'Width'#3'['#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#19'BorderSp' + +'acing.Right'#2#6#7'Caption'#6#20'DesktopFilesGroupBox'#12'ClientHeight'#2'P' + +#11'ClientWidth'#3'W'#2#8'TabOrder'#2#3#0#7'TButton'#31'SaveDesktopSettingsT' + +'oFileButton'#22'AnchorSideLeft.Control'#7#20'DesktopFilesGroupBox'#23'Ancho' + +'rSideRight.Control'#7#20'DesktopFilesGroupBox'#20'AnchorSideRight.Side'#7#9 + +'asrBottom'#4'Left'#2#6#6'Height'#2#25#3'Top'#2#8#5'Width'#3'K'#2#7'Anchors' + +#11#5'akTop'#6'akLeft'#7'akRight'#0#20'BorderSpacing.Around'#2#6#7'Caption'#6 + +#31'SaveDesktopSettingsToFileButton'#7'OnClick'#7'$SaveDesktopSettingsToFile' + +'ButtonClick'#8'TabOrder'#2#0#0#0#7'TButton!LoadDesktopSettingsFromFileButto' + +'n'#22'AnchorSideLeft.Control'#7#20'DesktopFilesGroupBox'#23'AnchorSideRight' + +'.Control'#7#20'DesktopFilesGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom' + +#4'Left'#2#6#6'Height'#2#25#3'Top'#2'+'#5'Width'#3'K'#2#7'Anchors'#11#5'akTo' + +'p'#6'akLeft'#7'akRight'#0#20'BorderSpacing.Around'#2#6#7'Caption'#6'!LoadDe' + +'sktopSettingsFromFileButton'#7'OnClick'#7'&LoadDesktopSettingsFromFileButto' + +'nClick'#8'TabOrder'#2#1#0#0#0#9'TCheckBox$ShowHintsForMainSpeedButtonsCheck' + +'Box'#4'Left'#2#6#6'Height'#2#20#3'Top'#3'j'#1#5'Width'#3#11#1#7'Caption'#6 + +'$ShowHintsForMainSpeedButtonsCheckBox'#8'TabOrder'#2#4#0#0#9'TCheckBox'#28 + +'MsgViewDblClickJumpsCheckBox'#4'Left'#2#6#6'Height'#2#20#3'Top'#3'~'#1#5'Wi' + +'dth'#3#219#0#7'Caption'#6#28'MsgViewDblClickJumpsCheckBox'#8'TabOrder'#2#5#0 + +#0#0#5'TPage'#11'WindowsPage'#7'Caption'#6#11'WindowsPage'#11'ClientWidth'#3 + +'e'#2#12'ClientHeight'#3#163#1#0#9'TCheckBox!MinimizeAllOnMinimizeMainCheckB' + +'ox'#23'AnchorSideRight.Control'#7#11'WindowsPage'#20'AnchorSideRight.Side'#7 + +#9'asrBottom'#4'Left'#2#6#6'Height'#2#22#3'Top'#2#10#5'Width'#3#14#2#7'Ancho' + +'rs'#11#5'akTop'#6'akLeft'#7'akRight'#0#19'BorderSpacing.Right'#2#6#7'Captio' + +'n'#6'!MinimizeAllOnMinimizeMainCheckBox'#7'Enabled'#8#8'TabOrder'#2#0#0#0#9 + +'TCheckBox'#20'HideIDEOnRunCheckBox'#23'AnchorSideRight.Control'#7#11'Window' + +'sPage'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#22#3 + +'Top'#2'"'#5'Width'#3#14#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#19 + ,'BorderSpacing.Right'#2#6#7'Caption'#6#20'HideIDEOnRunCheckBox'#8'TabOrder'#2 + +#1#0#0#9'TGroupBox'#23'WindowPositionsGroupBox'#23'AnchorSideRight.Control'#7 + +#11'WindowsPage'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Heigh' + +'t'#3'@'#1#3'Top'#2'D'#5'Width'#3#14#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'ak' + +'Right'#8'akBottom'#0#19'BorderSpacing.Right'#2#6#7'Caption'#6#23'WindowPosi' + +'tionsGroupBox'#12'ClientHeight'#3'@'#1#11'ClientWidth'#3#14#2#8'TabOrder'#2 + +#2#0#8'TListBox'#22'WindowPositionsListBox'#22'AnchorSideLeft.Control'#7#23 + +'WindowPositionsGroupBox'#23'AnchorSideRight.Control'#7#23'WindowPositionsGr' + +'oupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2'd'#3 + +'Top'#2#6#5'Width'#3#2#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#20'Bo' + +'rderSpacing.Around'#2#6#9'OnMouseUp'#7#29'WindowPositionsListBoxMouseUp'#8 + +'TabOrder'#2#0#8'TopIndex'#2#255#0#0#0#0#5'TPage'#14'FormEditorPage'#7'Capti' + +'on'#6#14'FormEditorPage'#11'ClientWidth'#3'e'#2#12'ClientHeight'#3#163#1#8 + +'OnResize'#7#20'FormEditorPageResize'#0#9'TGroupBox'#12'GridGroupBox'#4'Left' + +#2#6#6'Height'#3#212#0#3'Top'#2#6#5'Width'#3'Q'#1#20'BorderSpacing.Around'#2 + +#6#7'Caption'#6#12'GridGroupBox'#12'ClientHeight'#3#212#0#11'ClientWidth'#3 + +'Q'#1#8'TabOrder'#2#0#0#6'TLabel'#14'GridColorLabel'#22'AnchorSideLeft.Contr' + +'ol'#7#12'GridGroupBox'#21'AnchorSideTop.Control'#7#14'GridSizeYLabel'#18'An' + +'chorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#13#3'Top'#2'x'#5'W' + +'idth'#2'U'#17'BorderSpacing.Top'#2#4#20'BorderSpacing.Around'#2#6#7'Caption' + +#6#14'GridColorLabel'#11'ParentColor'#8#0#0#6'TLabel'#14'GridSizeXLabel'#22 + +'AnchorSideLeft.Control'#7#12'GridGroupBox'#21'AnchorSideTop.Control'#7#18'S' + +'napToGridCheckBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Heig' + +'ht'#2#13#3'Top'#2'J'#5'Width'#2'X'#20'BorderSpacing.Around'#2#6#7'Caption'#6 + +#14'GridSizeXLabel'#11'ParentColor'#8#0#0#6'TLabel'#14'GridSizeYLabel'#22'An' + +'chorSideLeft.Control'#7#12'GridGroupBox'#21'AnchorSideTop.Control'#7#14'Gri' + +'dSizeXLabel'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2 + +#13#3'Top'#2'a'#5'Width'#2'X'#17'BorderSpacing.Top'#2#4#20'BorderSpacing.Aro' + +'und'#2#6#7'Caption'#6#14'GridSizeYLabel'#11'ParentColor'#8#0#0#12'TColorBut' + +'ton'#15'GridColorButton'#22'AnchorSideLeft.Control'#7#14'GridColorLabel'#19 + +'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#14'GridColo' + +'rLabel'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#2'a'#6'Height'#2#23#3 + +'Top'#2's'#5'Width'#2'2'#11'BorderWidth'#2#2#15'ButtonColorSize'#2#16#5'Colo' + +'r'#7#9'clBtnFace'#0#0#9'TCheckBox'#18'SnapToGridCheckBox'#22'AnchorSideLeft' + +'.Control'#7#12'GridGroupBox'#21'AnchorSideTop.Control'#7#23'ShowBorderSpace' + +'CheckBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control' + +#7#12'GridGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'He' + +'ight'#2#20#3'Top'#2'0'#5'Width'#3'E'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'a' + +'kRight'#0#18'BorderSpacing.Left'#2#6#17'BorderSpacing.Top'#2#4#19'BorderSpa' + +'cing.Right'#2#6#7'Caption'#6#18'SnapToGridCheckBox'#8'TabOrder'#2#1#0#0#9'T' + +'CheckBox'#16'ShowGridCheckBox'#22'AnchorSideLeft.Control'#7#12'GridGroupBox' + +#4'Left'#2#6#6'Height'#2#20#5'Width'#3#138#0#18'BorderSpacing.Left'#2#6#7'Ca' + +'ption'#6#16'ShowGridCheckBox'#8'TabOrder'#2#0#0#0#9'TComboBox'#17'GridSizeX' + +'ComboBox'#22'AnchorSideLeft.Control'#7#14'GridSizeXLabel'#19'AnchorSideLeft' + +'.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#14'GridSizeXLabel'#18'Anc' + +'horSideTop.Side'#7#9'asrCenter'#4'Left'#2'd'#6'Height'#2#21#3'Top'#2'F'#5'W' + +'idth'#2'd'#16'AutoCompleteText'#11#22'cbactEndOfLineComplete'#20'cbactSearc' + +'hAscending'#0#13'Items.Strings'#1#6#1'2'#6#1'5'#6#1'8'#6#2'10'#6#2'12'#6#2 + +'15'#6#2'20'#6#2'25'#6#2'30'#0#9'MaxLength'#2#0#14'ParentShowHint'#8#8'ShowH' + +'int'#9#8'TabOrder'#2#2#0#0#9'TComboBox'#17'GridSizeYComboBox'#22'AnchorSide' + +'Left.Control'#7#14'GridSizeYLabel'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21 + +'AnchorSideTop.Control'#7#14'GridSizeYLabel'#18'AnchorSideTop.Side'#7#9'asrC' + +'enter'#4'Left'#2'd'#6'Height'#2#21#3'Top'#2']'#5'Width'#2'd'#16'AutoComplet' + +'eText'#11#22'cbactEndOfLineComplete'#20'cbactSearchAscending'#0#13'Items.St' + +'rings'#1#6#1'2'#6#1'5'#6#1'8'#6#2'10'#6#2'12'#6#2'15'#6#2'20'#6#2'25'#6#2'3' + +'0'#0#9'MaxLength'#2#0#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#3#0#0 + +#9'TCheckBox'#23'ShowBorderSpaceCheckBox'#22'AnchorSideLeft.Control'#7#12'Gr' + +'idGroupBox'#21'AnchorSideTop.Control'#7#16'ShowGridCheckBox'#18'AnchorSideT' + +'op.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#20#3'Top'#2#24#5'Width'#3 + +#188#0#18'BorderSpacing.Left'#2#6#17'BorderSpacing.Top'#2#4#7'Caption'#6#23 + +'ShowBorderSpaceCheckBox'#8'TabOrder'#2#4#0#0#0#9'TGroupBox'#18'GuideLinesGr' + +'oupBox'#22'AnchorSideLeft.Control'#7#20'FormEditMiscGroupBox'#19'AnchorSide' + +'Left.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#18'RubberbandGroupBox' + +#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#14'Form' + ,'EditorPage'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Con' + +'trol'#7#14'FormEditorPage'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left' + +#3']'#1#6'Height'#3#224#0#3'Top'#3#224#0#5'Width'#3#183#0#7'Anchors'#11#5'ak' + +'Top'#6'akLeft'#7'akRight'#8'akBottom'#0#20'BorderSpacing.Around'#2#6#7'Capt' + +'ion'#6#18'GuideLinesGroupBox'#12'ClientHeight'#3#224#0#11'ClientWidth'#3#183 + +#0#8'TabOrder'#2#1#0#12'TColorButton'#27'GuideLineColorLeftTopButton'#21'Anc' + +'horSideTop.Control'#7#26'GuideLineColorLeftTopLabel'#18'AnchorSideTop.Side' + +#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#23#3'Top'#2']'#5'Width'#2'2'#11'Bord' + +'erWidth'#2#2#15'ButtonColorSize'#2#16#5'Color'#7#9'clBtnFace'#0#0#12'TColor' + +'Button'#31'GuideLineColorRightBottomButton'#21'AnchorSideTop.Control'#7#30 + +'GuideLineColorRightBottomLabel'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Lef' + +'t'#2#6#6'Height'#2#23#3'Top'#3#141#0#5'Width'#2'2'#11'BorderWidth'#2#2#15'B' + +'uttonColorSize'#2#16#5'Color'#7#9'clBtnFace'#0#0#6'TLabel'#26'GuideLineColo' + +'rLeftTopLabel'#22'AnchorSideLeft.Control'#7#18'GuideLinesGroupBox'#23'Ancho' + +'rSideRight.Control'#7#18'GuideLinesGroupBox'#20'AnchorSideRight.Side'#7#9'a' + +'srBottom'#4'Left'#2#6#6'Height'#2#13#3'Top'#2'J'#5'Width'#3#171#0#7'Anchors' + +#11#5'akTop'#6'akLeft'#7'akRight'#0#20'BorderSpacing.Around'#2#6#7'Caption'#6 + +#26'GuideLineColorLeftTopLabel'#11'ParentColor'#8#0#0#6'TLabel'#30'GuideLine' + +'ColorRightBottomLabel'#22'AnchorSideLeft.Control'#7#18'GuideLinesGroupBox' + +#21'AnchorSideTop.Control'#7#27'GuideLineColorLeftTopButton'#18'AnchorSideTo' + +'p.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#18'GuideLinesGroupBox' + +#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#13#3'Top'#2 + +'z'#5'Width'#3#171#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#20'Border' + +'Spacing.Around'#2#6#7'Caption'#6#30'GuideLineColorRightBottomLabel'#11'Pare' + +'ntColor'#8#0#0#9'TCheckBox'#22'ShowGuideLinesCheckBox'#22'AnchorSideLeft.Co' + +'ntrol'#7#18'GuideLinesGroupBox'#23'AnchorSideRight.Control'#7#18'GuideLines' + +'GroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#20 + +#5'Width'#3#171#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#20'BorderSpa' + +'cing.Around'#2#6#7'Caption'#6#22'ShowGuideLinesCheckBox'#8'TabOrder'#2#0#0#0 + +#9'TCheckBox'#24'SnapToGuideLinesCheckBox'#22'AnchorSideLeft.Control'#7#18'G' + +'uideLinesGroupBox'#21'AnchorSideTop.Control'#7#22'ShowGuideLinesCheckBox'#18 + +'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#18'GuideLi' + +'nesGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2 + +#20#3'Top'#2#26#5'Width'#3#171#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight' + +#0#20'BorderSpacing.Around'#2#6#7'Caption'#6#24'SnapToGuideLinesCheckBox'#8 + +'TabOrder'#2#1#0#0#0#9'TGroupBox'#20'FormEditMiscGroupBox'#21'AnchorSideTop.' + +'Control'#7#12'GridGroupBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'Anchor' + +'SideRight.Control'#7#14'FormEditorPage'#20'AnchorSideRight.Side'#7#9'asrBot' + +'tom'#24'AnchorSideBottom.Control'#7#14'FormEditorPage'#21'AnchorSideBottom.' + +'Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#3#224#0#3'Top'#3#224#0#5'Width'#3 + +'Q'#1#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBottom'#0#20'BorderSpacing.Around' + +#2#6#7'Caption'#6#20'FormEditMiscGroupBox'#12'ClientHeight'#3#224#0#11'Clien' + +'tWidth'#3'Q'#1#8'TabOrder'#2#2#0#12'TColorButton'#18'GrabberColorButton'#22 + +'AnchorSideLeft.Control'#7#17'GrabberColorLabel'#19'AnchorSideLeft.Side'#7#9 + +'asrBottom'#21'AnchorSideTop.Control'#7#17'GrabberColorLabel'#18'AnchorSideT' + +'op.Side'#7#9'asrCenter'#4'Left'#2'w'#6'Height'#2#23#3'Top'#2'a'#5'Width'#2 + +'2'#11'BorderWidth'#2#2#15'ButtonColorSize'#2#16#5'Color'#7#9'clBtnFace'#0#0 + +#12'TColorButton'#17'MarkerColorButton'#22'AnchorSideLeft.Control'#7#16'Mark' + +'erColorLabel'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Contr' + +'ol'#7#16'MarkerColorLabel'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#2 + +'q'#6'Height'#2#23#3'Top'#2'x'#5'Width'#2'2'#11'BorderWidth'#2#2#15'ButtonCo' + +'lorSize'#2#16#5'Color'#7#9'clBtnFace'#0#0#6'TLabel'#17'GrabberColorLabel'#22 + +'AnchorSideLeft.Control'#7#20'FormEditMiscGroupBox'#21'AnchorSideTop.Control' + +#7#25'RightClickSelectsCheckBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Lef' + +'t'#2#6#6'Height'#2#13#3'Top'#2'f'#5'Width'#2'k'#17'BorderSpacing.Top'#2#4#20 + +'BorderSpacing.Around'#2#6#7'Caption'#6#17'GrabberColorLabel'#11'ParentColor' + +#8#0#0#6'TLabel'#16'MarkerColorLabel'#22'AnchorSideLeft.Control'#7#20'FormEd' + +'itMiscGroupBox'#21'AnchorSideTop.Control'#7#17'GrabberColorLabel'#18'Anchor' + +'SideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#13#3'Top'#2'}'#5'Width' + +#2'e'#17'BorderSpacing.Top'#2#4#20'BorderSpacing.Around'#2#6#7'Caption'#6#16 + +'MarkerColorLabel'#11'ParentColor'#8#0#0#9'TCheckBox'#29'ShowComponentCaptio' + +'nsCheckBox'#22'AnchorSideLeft.Control'#7#20'FormEditMiscGroupBox'#23'Anchor' + +'SideRight.Control'#7#20'FormEditMiscGroupBox'#20'AnchorSideRight.Side'#7#9 + +'asrBottom'#4'Left'#2#6#6'Height'#2#20#5'Width'#3'E'#1#7'Anchors'#11#5'akTop' + ,#6'akLeft'#7'akRight'#0#18'BorderSpacing.Left'#2#6#19'BorderSpacing.Right'#2 + +#6#7'Caption'#6#29'ShowComponentCaptionsCheckBox'#8'TabOrder'#2#0#0#0#9'TChe' + +'ckBox'#23'ShowEditorHintsCheckBox'#22'AnchorSideLeft.Control'#7#20'FormEdit' + +'MiscGroupBox'#21'AnchorSideTop.Control'#7#29'ShowComponentCaptionsCheckBox' + +#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#20'Form' + +'EditMiscGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Hei' + +'ght'#2#20#3'Top'#2#24#5'Width'#3'E'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'ak' + +'Right'#0#18'BorderSpacing.Left'#2#6#17'BorderSpacing.Top'#2#4#19'BorderSpac' + +'ing.Right'#2#6#7'Caption'#6#23'ShowEditorHintsCheckBox'#8'TabOrder'#2#1#0#0 + +#9'TCheckBox'#29'AutoCreateFormsOnOpenCheckBox'#22'AnchorSideLeft.Control'#7 + +#20'FormEditMiscGroupBox'#21'AnchorSideTop.Control'#7#23'ShowEditorHintsChec' + +'kBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#20 + +'FormEditMiscGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6 + +'Height'#2#20#3'Top'#2'0'#5'Width'#3'E'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7 + +'akRight'#0#18'BorderSpacing.Left'#2#6#17'BorderSpacing.Top'#2#4#19'BorderSp' + +'acing.Right'#2#6#7'Caption'#6#29'AutoCreateFormsOnOpenCheckBox'#8'TabOrder' + +#2#2#0#0#9'TCheckBox'#25'RightClickSelectsCheckBox'#22'AnchorSideLeft.Contro' + +'l'#7#20'FormEditMiscGroupBox'#21'AnchorSideTop.Control'#7#29'AutoCreateForm' + +'sOnOpenCheckBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.C' + +'ontrol'#7#20'FormEditMiscGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4 + +'Left'#2#6#6'Height'#2#20#3'Top'#2'H'#5'Width'#3'K'#1#7'Anchors'#11#5'akTop' + +#6'akLeft'#7'akRight'#0#18'BorderSpacing.Left'#2#6#17'BorderSpacing.Top'#2#4 + +#7'Caption'#6#25'RightClickSelectsCheckBox'#8'TabOrder'#2#3#0#0#9'TCheckBox' + +#25'DesignerPaintLazyCheckBox'#22'AnchorSideLeft.Control'#7#20'FormEditMiscG' + +'roupBox'#21'AnchorSideTop.Control'#7#16'MarkerColorLabel'#18'AnchorSideTop.' + +'Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#20'FormEditMiscGroupBox' + +#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#20#3'Top'#3 + +#148#0#5'Width'#3'E'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#17'Bord' + +'erSpacing.Top'#2#4#20'BorderSpacing.Around'#2#6#7'Caption'#6#25'DesignerPai' + +'ntLazyCheckBox'#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#4#0#0#0#9 + +'TGroupBox'#18'RubberbandGroupBox'#22'AnchorSideLeft.Control'#7#12'GridGroup' + +'Box'#19'AnchorSideLeft.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#14 + +'FormEditorPage'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3']'#1#6'He' + +'ight'#3#212#0#3'Top'#2#6#5'Width'#3#183#0#7'Anchors'#11#5'akTop'#6'akLeft'#7 + +'akRight'#0#20'BorderSpacing.Around'#2#6#7'Caption'#6#18'RubberbandGroupBox' + +#12'ClientHeight'#3#212#0#11'ClientWidth'#3#183#0#5'Color'#7#9'clBtnFace'#11 + +'ParentColor'#8#8'TabOrder'#2#3#0#12'TColorButton'#27'RubberbandSelectColorB' + +'utton'#22'AnchorSideLeft.Control'#7#26'RubberbandSelectColorLabel'#21'Ancho' + +'rSideTop.Control'#7#26'RubberbandSelectColorLabel'#18'AnchorSideTop.Side'#7 + +#9'asrBottom'#4'Left'#2#6#6'Height'#2#23#3'Top'#2#25#5'Width'#2'2'#11'Border' + +'Width'#2#2#15'ButtonColorSize'#2#16#5'Color'#7#9'clBtnFace'#0#0#12'TColorBu' + +'tton'#27'RubberbandCreateColorButton'#22'AnchorSideLeft.Control'#7#26'Rubbe' + +'rbandCreateColorLabel'#21'AnchorSideTop.Control'#7#26'RubberbandCreateColor' + +'Label'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#23#3'T' + +'op'#2'I'#5'Width'#2'2'#11'BorderWidth'#2#2#15'ButtonColorSize'#2#16#5'Color' + +#7#9'clBtnFace'#0#0#6'TLabel'#26'RubberbandSelectColorLabel'#22'AnchorSideLe' + +'ft.Control'#7#18'RubberbandGroupBox'#21'AnchorSideTop.Control'#7#18'Rubberb' + +'andGroupBox'#23'AnchorSideRight.Control'#7#18'RubberbandGroupBox'#20'Anchor' + +'SideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#13#3'Top'#2#6#5'Widt' + +'h'#3#171#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#20'BorderSpacing.A' + +'round'#2#6#7'Caption'#6#26'RubberbandSelectColorLabel'#11'ParentColor'#8#0#0 + +#6'TLabel'#26'RubberbandCreateColorLabel'#22'AnchorSideLeft.Control'#7#18'Ru' + +'bberbandGroupBox'#21'AnchorSideTop.Control'#7#27'RubberbandSelectColorButto' + +'n'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#18'R' + +'ubberbandGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'He' + +'ight'#2#13#3'Top'#2'6'#5'Width'#3#171#0#7'Anchors'#11#5'akTop'#6'akLeft'#7 + +'akRight'#0#20'BorderSpacing.Around'#2#6#7'Caption'#6#26'RubberbandCreateCol' + +'orLabel'#11'ParentColor'#8#0#0#9'TCheckBox$RubberbandSelectsGrandChildsChec' + +'kBox'#22'AnchorSideLeft.Control'#7#18'RubberbandGroupBox'#21'AnchorSideTop.' + +'Control'#7#27'RubberbandCreateColorButton'#18'AnchorSideTop.Side'#7#9'asrBo' + +'ttom'#23'AnchorSideRight.Control'#7#18'RubberbandGroupBox'#20'AnchorSideRig' + +'ht.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#20#3'Top'#2'f'#5'Width'#3 + +#171#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#20'BorderSpacing.Around' + +#2#6#7'Caption'#6'$RubberbandSelectsGrandChildsCheckBox'#8'TabOrder'#2#0#0#0 + ,#0#0#5'TPage'#19'ObjectInspectorPage'#7'Caption'#6#19'ObjectInspectorPage'#11 + +'ClientWidth'#3'e'#2#12'ClientHeight'#3#163#1#0#9'TGroupBox'#29'ObjectInspec' + +'torColorsGroupBox'#23'AnchorSideRight.Control'#7#19'ObjectInspectorPage'#20 + +'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#3#176#0#3'Top'#2 + +#7#5'Width'#3#10#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoSize' + +#9#18'BorderSpacing.Left'#2#5#17'BorderSpacing.Top'#2#5#19'BorderSpacing.Rig' + +'ht'#2#6#7'Caption'#6#29'ObjectInspectorColorsGroupBox'#28'ChildSizing.LeftR' + +'ightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.Horizo' + +'ntalSpacing'#2#2#27'ChildSizing.VerticalSpacing'#2#2#12'ClientHeight'#3#176 + +#0#11'ClientWidth'#3#10#2#8'TabOrder'#2#0#0#12'TColorButton'#23'OIBackground' + +'ColorButton'#4'Left'#2#6#6'Height'#2#23#3'Top'#2#6#5'Width'#2'2'#11'BorderW' + +'idth'#2#2#15'ButtonColorSize'#2#16#5'Color'#7#9'clBtnFace'#0#0#12'TColorBut' + +'ton'#21'OISubPropsColorButton'#4'Left'#2#6#6'Height'#2#23#3'Top'#2#30#5'Wid' + +'th'#2'2'#11'BorderWidth'#2#2#15'ButtonColorSize'#2#16#5'Color'#7#9'clBtnFac' + +'e'#0#0#12'TColorButton'#23'OIReferencesColorButton'#4'Left'#2#6#6'Height'#2 + +#23#3'Top'#2'6'#5'Width'#2'2'#11'BorderWidth'#2#2#15'ButtonColorSize'#2#16#5 + +'Color'#7#9'clBtnFace'#0#0#12'TColorButton'#18'OIValueColorButton'#4'Left'#2 + +#6#6'Height'#2#23#3'Top'#2'N'#5'Width'#2'2'#11'BorderWidth'#2#2#15'ButtonCol' + +'orSize'#2#16#5'Color'#7#9'clBtnFace'#0#0#12'TColorButton'#25'OIDefaultValue' + +'ColorButton'#4'Left'#2#6#6'Height'#2#23#3'Top'#2'f'#5'Width'#2'2'#11'Border' + +'Width'#2#2#15'ButtonColorSize'#2#16#5'Color'#7#9'clBtnFace'#0#0#12'TColorBu' + +'tton'#21'OIPropNameColorButton'#4'Left'#2#6#6'Height'#2#23#3'Top'#2'~'#5'Wi' + +'dth'#2'2'#11'BorderWidth'#2#2#15'ButtonColorSize'#2#16#5'Color'#7#9'clBtnFa' + +'ce'#0#0#6'TLabel'#22'OIBackgroundColorLabel'#4'Left'#2'A'#6'Height'#2#16#3 + +'Top'#2#12#5'Width'#3#174#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#7 + +'Caption'#6#22'OIBackgroundColorLabel'#11'ParentColor'#8#0#0#6'TLabel'#20'OI' + +'SubPropsColorLabel'#4'Left'#2'A'#6'Height'#2#16#3'Top'#2'$'#5'Width'#3#174#1 + +#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#7'Caption'#6#20'OISubPropsCol' + +'orLabel'#11'ParentColor'#8#0#0#6'TLabel'#22'OIReferencesColorLabel'#4'Left' + +#2'A'#6'Height'#2#16#3'Top'#2'<'#5'Width'#3#174#1#7'Anchors'#11#5'akTop'#6'a' + +'kLeft'#7'akRight'#0#7'Caption'#6#22'OIReferencesColorLabel'#11'ParentColor' + +#8#0#0#6'TLabel'#17'OIValueColorLabel'#4'Left'#2'A'#6'Height'#2#16#3'Top'#2 + +'T'#5'Width'#3#174#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#7'Caption' + +#6#17'OIValueColorLabel'#11'ParentColor'#8#0#0#6'TLabel'#24'OIDefaultValueCo' + +'lorLabel'#4'Left'#2'A'#6'Height'#2#16#3'Top'#2'l'#5'Width'#3#174#1#7'Anchor' + +'s'#11#5'akTop'#6'akLeft'#7'akRight'#0#7'Caption'#6#24'OIDefaultValueColorLa' + +'bel'#11'ParentColor'#8#0#0#6'TLabel'#20'OIPropNameColorLabel'#4'Left'#2'A'#6 + +'Height'#2#16#3'Top'#3#132#0#5'Width'#3#174#1#7'Anchors'#11#5'akTop'#6'akLef' + +'t'#7'akRight'#0#7'Caption'#6#20'OIPropNameColorLabel'#11'ParentColor'#8#0#0 + +#0#9'TGroupBox'#14'OIMiscGroupBox'#23'AnchorSideRight.Control'#7#19'ObjectIn' + +'spectorPage'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2 + +'i'#3'Top'#3#186#0#5'Width'#3#10#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRigh' + +'t'#0#19'BorderSpacing.Right'#2#6#7'Caption'#6#14'OIMiscGroupBox'#12'ClientH' + +'eight'#2'i'#11'ClientWidth'#3#10#2#8'TabOrder'#2#1#0#6'TLabel'#24'OIDefault' + +'ItemHeightLabel'#4'Left'#2#6#6'Height'#2#16#3'Top'#2#6#5'Width'#3#198#1#7'A' + +'nchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#7'Caption'#6#24'OIDefaultItemHei' + +'ghtLabel'#11'ParentColor'#8#0#0#9'TCheckBox'#18'OIShowHintCheckBox'#4'Left' + +#2#6#6'Height'#2#21#3'Top'#2'7'#5'Width'#3#198#1#7'Anchors'#11#5'akTop'#6'ak' + +'Left'#7'akRight'#0#7'Caption'#6#18'OIShowHintCheckBox'#8'TabOrder'#2#0#0#0#9 + +'TSpinEdit'#27'OIDefaultItemHeightSpinEdit'#4'Left'#2#6#6'Height'#2#25#3'Top' + +#2#24#5'Width'#2'E'#8'TabOrder'#2#1#5'Value'#2#1#0#0#0#0#5'TPage'#10'BackupP' + +'age'#7'Caption'#6#10'BackupPage'#11'ClientWidth'#3'e'#2#12'ClientHeight'#3 + +#163#1#0#6'TLabel'#15'BackupHelpLabel'#23'AnchorSideRight.Control'#7#10'Back' + +'upPage'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#13#3 + +'Top'#2#7#5'Width'#3#10#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#19'B' + +'orderSpacing.Right'#2#6#7'Caption'#6#15'BackupHelpLabel'#11'ParentColor'#8#0 + +#0#9'TGroupBox'#21'BackupProjectGroupBox'#23'AnchorSideRight.Control'#7#10'B' + +'ackupPage'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#3 + +#140#0#3'Top'#2'"'#5'Width'#3#10#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRigh' + +'t'#0#8'AutoSize'#9#19'BorderSpacing.Right'#2#6#7'Caption'#6#21'BackupProjec' + +'tGroupBox'#12'ClientHeight'#3#140#0#11'ClientWidth'#3#10#2#8'TabOrder'#2#0#0 + +#6'TLabel'#18'BakProjAddExtLabel'#22'AnchorSideLeft.Control'#7#21'BakProjAdd' + +'ExtComboBox'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Contro' + +'l'#7#21'BakProjAddExtComboBox'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'Anc' + ,'horSideRight.Control'#7#21'BackupProjectGroupBox'#20'AnchorSideRight.Side'#7 + +#9'asrBottom'#4'Left'#2'p'#6'Height'#2#13#3'Top'#2'.'#5'Width'#3#148#1#7'Anc' + +'hors'#11#5'akTop'#6'akLeft'#7'akRight'#0#20'BorderSpacing.Around'#2#6#7'Cap' + +'tion'#6#18'BakProjAddExtLabel'#11'ParentColor'#8#0#0#6'TLabel'#22'BakProjMa' + +'xCounterLabel'#22'AnchorSideLeft.Control'#7#25'BakProjMaxCounterComboBox'#19 + +'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#25'BakProjM' + +'axCounterComboBox'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight' + +'.Control'#7#21'BackupProjectGroupBox'#20'AnchorSideRight.Side'#7#9'asrBotto' + +'m'#4'Left'#2'p'#6'Height'#2#13#3'Top'#2'I'#5'Width'#3#148#1#7'Anchors'#11#5 + +'akTop'#6'akLeft'#7'akRight'#0#20'BorderSpacing.Around'#2#6#7'Caption'#6#22 + +'BakProjMaxCounterLabel'#11'ParentColor'#8#0#0#6'TLabel'#18'BakProjSubDirLab' + +'el'#22'AnchorSideLeft.Control'#7#21'BakProjSubDirComboBox'#19'AnchorSideLef' + +'t.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#21'BakProjSubDirComboBox' + +#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Control'#7#21'Back' + +'upProjectGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2'p'#6'H' + +'eight'#2#13#3'Top'#2'd'#5'Width'#3#148#1#7'Anchors'#11#5'akTop'#6'akLeft'#7 + +'akRight'#0#20'BorderSpacing.Around'#2#6#7'Caption'#6#18'BakProjSubDirLabel' + +#11'ParentColor'#8#0#0#11'TRadioGroup'#21'BakProjTypeRadioGroup'#23'AnchorSi' + +'deRight.Control'#7#21'BackupProjectGroupBox'#20'AnchorSideRight.Side'#7#9'a' + +'srBottom'#4'Left'#2#6#6'Height'#2#30#3'Top'#2#6#5'Width'#3#254#1#7'Anchors' + +#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoFill'#9#8'AutoSize'#9#20'BorderSpa' + +'cing.Around'#2#6#7'Caption'#6#21'BakProjTypeRadioGroup'#28'ChildSizing.Left' + +'RightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.Enlar' + +'geHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertical' + +#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsSca' + +'leChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizin' + +'g.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLin' + +'e'#2#2#7'Columns'#2#2#21'Constraints.MinHeight'#2#30#7'OnClick'#7#22'BakTyp' + +'eRadioGroupClick'#8'TabOrder'#2#0#0#0#9'TComboBox'#21'BakProjAddExtComboBox' + +#21'AnchorSideTop.Control'#7#21'BakProjTypeRadioGroup'#18'AnchorSideTop.Side' + +#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#21#3'Top'#2'*'#5'Width'#2'd'#16'Auto' + +'CompleteText'#11#22'cbactEndOfLineComplete'#20'cbactSearchAscending'#0#20'B' + +'orderSpacing.Around'#2#6#9'MaxLength'#2#0#8'TabOrder'#2#1#4'Text'#6#21'BakP' + +'rojAddExtComboBox'#0#0#9'TComboBox'#25'BakProjMaxCounterComboBox'#21'Anchor' + +'SideTop.Control'#7#21'BakProjAddExtComboBox'#18'AnchorSideTop.Side'#7#9'asr' + +'Bottom'#4'Left'#2#6#6'Height'#2#21#3'Top'#2'E'#5'Width'#2'd'#16'AutoComplet' + +'eText'#11#22'cbactEndOfLineComplete'#20'cbactSearchAscending'#0#20'BorderSp' + +'acing.Around'#2#6#9'MaxLength'#2#0#8'TabOrder'#2#2#4'Text'#6#25'BakProjMaxC' + +'ounterComboBox'#0#0#9'TComboBox'#21'BakProjSubDirComboBox'#21'AnchorSideTop' + +'.Control'#7#25'BakProjMaxCounterComboBox'#18'AnchorSideTop.Side'#7#9'asrBot' + +'tom'#4'Left'#2#6#6'Height'#2#21#3'Top'#2'`'#5'Width'#2'd'#16'AutoCompleteTe' + +'xt'#11#22'cbactEndOfLineComplete'#20'cbactSearchAscending'#0#20'BorderSpaci' + +'ng.Around'#2#6#9'MaxLength'#2#0#8'TabOrder'#2#3#4'Text'#6#21'BakProjSubDirC' + +'omboBox'#0#0#0#9'TGroupBox'#19'BackupOtherGroupBox'#21'AnchorSideTop.Contro' + +'l'#7#21'BackupProjectGroupBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'Anc' + +'horSideRight.Control'#7#10'BackupPage'#20'AnchorSideRight.Side'#7#9'asrBott' + +'om'#4'Left'#2#6#6'Height'#3#140#0#3'Top'#3#180#0#5'Width'#3#10#2#7'Anchors' + +#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoSize'#9#20'BorderSpacing.Around'#2 + +#6#7'Caption'#6#19'BackupOtherGroupBox'#12'ClientHeight'#3#140#0#11'ClientWi' + +'dth'#3#10#2#8'TabOrder'#2#1#0#6'TLabel'#19'BakOtherAddExtLabel'#22'AnchorSi' + +'deLeft.Control'#7#22'BakOtherAddExtComboBox'#19'AnchorSideLeft.Side'#7#9'as' + +'rBottom'#21'AnchorSideTop.Control'#7#22'BakOtherAddExtComboBox'#18'AnchorSi' + +'deTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Control'#7#19'BackupOtherGrou' + +'pBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2'p'#6'Height'#2#13#3 + +'Top'#2'.'#5'Width'#3#148#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#20 + +'BorderSpacing.Around'#2#6#7'Caption'#6#19'BakOtherAddExtLabel'#11'ParentCol' + +'or'#8#0#0#6'TLabel'#23'BakOtherMaxCounterLabel'#22'AnchorSideLeft.Control'#7 + +#26'BakOtherMaxCounterComboBox'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'An' + +'chorSideTop.Control'#7#26'BakOtherMaxCounterComboBox'#18'AnchorSideTop.Side' + +#7#9'asrCenter'#23'AnchorSideRight.Control'#7#19'BackupOtherGroupBox'#20'Anc' + +'horSideRight.Side'#7#9'asrBottom'#4'Left'#2'p'#6'Height'#2#13#3'Top'#2'I'#5 + +'Width'#3#148#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#20'BorderSpaci' + +'ng.Around'#2#6#7'Caption'#6#23'BakOtherMaxCounterLabel'#11'ParentColor'#8#0 + +#0#6'TLabel'#19'BakOtherSubDirLabel'#22'AnchorSideLeft.Control'#7#22'BakOthe' + ,'rSubDirComboBox'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Co' + +'ntrol'#7#22'BakOtherSubDirComboBox'#18'AnchorSideTop.Side'#7#9'asrCenter'#23 + +'AnchorSideRight.Control'#7#19'BackupOtherGroupBox'#20'AnchorSideRight.Side' + +#7#9'asrBottom'#4'Left'#2'p'#6'Height'#2#13#3'Top'#2'd'#5'Width'#3#148#1#7'A' + +'nchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#20'BorderSpacing.Around'#2#6#7'C' + +'aption'#6#19'BakOtherSubDirLabel'#11'ParentColor'#8#0#0#11'TRadioGroup'#22 + +'BakOtherTypeRadioGroup'#23'AnchorSideRight.Control'#7#19'BackupOtherGroupBo' + +'x'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#30#3'Top' + +#2#6#5'Width'#3#254#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoFi' + +'ll'#9#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#7'Caption'#6#22'BakOtherTy' + +'peRadioGroup'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottom' + +'Spacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildResiz' + +'e'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildResize'#28'ChildS' + +'izing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical' + +#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBot' + +'tom'#27'ChildSizing.ControlsPerLine'#2#2#7'Columns'#2#2#21'Constraints.MinH' + +'eight'#2#30#7'OnClick'#7#22'BakTypeRadioGroupClick'#8'TabOrder'#2#0#0#0#9'T' + +'ComboBox'#22'BakOtherAddExtComboBox'#21'AnchorSideTop.Control'#7#22'BakOthe' + +'rTypeRadioGroup'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height' + +#2#21#3'Top'#2'*'#5'Width'#2'd'#16'AutoCompleteText'#11#22'cbactEndOfLineCom' + +'plete'#20'cbactSearchAscending'#0#20'BorderSpacing.Around'#2#6#9'MaxLength' + +#2#0#8'TabOrder'#2#1#4'Text'#6#22'BakOtherAddExtComboBox'#0#0#9'TComboBox'#26 + +'BakOtherMaxCounterComboBox'#21'AnchorSideTop.Control'#7#22'BakOtherAddExtCo' + +'mboBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#21#3 + +'Top'#2'E'#5'Width'#2'd'#16'AutoCompleteText'#11#22'cbactEndOfLineComplete' + +#20'cbactSearchAscending'#0#20'BorderSpacing.Around'#2#6#9'MaxLength'#2#0#8 + +'TabOrder'#2#2#4'Text'#6#26'BakOtherMaxCounterComboBox'#0#0#9'TComboBox'#22 + +'BakOtherSubDirComboBox'#21'AnchorSideTop.Control'#7#26'BakOtherMaxCounterCo' + +'mboBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#21#3 + +'Top'#2'`'#5'Width'#2'd'#16'AutoCompleteText'#11#22'cbactEndOfLineComplete' + +#20'cbactSearchAscending'#0#20'BorderSpacing.Around'#2#6#9'MaxLength'#2#0#8 + +'TabOrder'#2#3#4'Text'#6#22'BakOtherSubDirComboBox'#0#0#0#0#5'TPage'#10'Nami' + +'ngPage'#7'Caption'#6#10'NamingPage'#11'ClientWidth'#3'e'#2#12'ClientHeight' + +#3#163#1#0#11'TRadioGroup'#23'PascalFileExtRadiogroup'#23'AnchorSideRight.Co' + +'ntrol'#7#10'NamingPage'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#6 + +#6'Height'#2'/'#3'Top'#2#6#5'Width'#3'Y'#2#5'Align'#7#5'alTop'#8'AutoFill'#9 + +#20'BorderSpacing.Around'#2#6#7'Caption'#6#23'PascalFileExtRadiogroup'#28'Ch' + +'ildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'Chi' + +'ldSizing.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSizing.E' + +'nlargeVertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkHorizon' + +'tal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChild' + +'s'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizin' + +'g.ControlsPerLine'#2#2#7'Columns'#2#2#8'TabOrder'#2#0#0#0#11'TRadioGroup'#28 + +'CharcaseFileActionRadioGroup'#23'AnchorSideRight.Control'#7#10'NamingPage' + +#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2'U'#3'Top'#3 + +#165#0#5'Width'#3'Y'#2#5'Align'#7#5'alTop'#8'AutoFill'#9#20'BorderSpacing.Ar' + +'ound'#2#6#7'Caption'#6#28'CharcaseFileActionRadioGroup'#28'ChildSizing.Left' + +'RightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.Enlar' + +'geHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertical' + +#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsSca' + +'leChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizin' + +'g.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLin' + +'e'#2#2#7'Columns'#2#2#8'TabOrder'#2#1#0#0#11'TRadioGroup'#29'AmbiguousFileA' + +'ctionRadioGroup'#23'AnchorSideRight.Control'#7#10'NamingPage'#20'AnchorSide' + +'Right.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2'd'#3'Top'#2';'#5'Width'#3 + +'Y'#2#5'Align'#7#5'alTop'#8'AutoFill'#9#20'BorderSpacing.Around'#2#6#7'Capti' + +'on'#6#29'AmbiguousFileActionRadioGroup'#28'ChildSizing.LeftRightSpacing'#2#6 + +#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24 + +'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenou' + +'sChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'Chil' + +'dSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cc' + +'lLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#2#7'Columns' + +#2#2#8'TabOrder'#2#2#0#0#0#5'TPage'#10'LazDocPage'#7'Caption'#6#10'LazDocPag' + +'e'#11'ClientWidth'#3'e'#2#12'ClientHeight'#3#163#1#0#9'TGroupBox'#19'LazDoc' + ,'PathsGroupBox'#23'AnchorSideRight.Control'#7#10'LazDocPage'#20'AnchorSideRi' + +'ght.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#3#205#0#3'Top'#2#6#5'Width'#3 + +'Y'#2#5'Align'#7#5'alTop'#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#7'Capti' + +'on'#6#19'LazDocPathsGroupBox'#12'ClientHeight'#3#205#0#11'ClientWidth'#3'Y' + +#2#8'TabOrder'#2#0#0#8'TListBox'#13'LazDocListBox'#4'Left'#2#6#6'Height'#2'l' + +#3'Top'#2#6#5'Width'#3'M'#2#5'Align'#7#5'alTop'#20'BorderSpacing.Around'#2#6 + +#8'TabOrder'#2#0#8'TopIndex'#2#255#0#0#7'TButton'#19'LazDocAddPathButton'#22 + +'AnchorSideLeft.Control'#7#19'LazDocPathsGroupBox'#21'AnchorSideTop.Control' + +#7#13'LazDocListBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Hei' + +'ght'#2#31#3'Top'#2'x'#5'Width'#3#163#0#8'AutoSize'#9#20'BorderSpacing.Aroun' + +'d'#2#6#7'Caption'#6#19'LazDocAddPathButton'#7'OnClick'#7#24'LazDocAddPathBu' + +'ttonClick'#8'TabOrder'#2#1#0#0#7'TButton'#22'LazDocDeletePathButton'#22'Anc' + +'horSideLeft.Control'#7#19'LazDocAddPathButton'#19'AnchorSideLeft.Side'#7#9 + +'asrBottom'#21'AnchorSideTop.Control'#7#19'LazDocAddPathButton'#4'Left'#3#179 + +#0#6'Height'#2#31#3'Top'#2'x'#5'Width'#3#180#0#8'AutoSize'#9#18'BorderSpacin' + +'g.Left'#2#10#7'Caption'#6#22'LazDocDeletePathButton'#7'OnClick'#7#27'LazDoc' + +'DeletePathButtonClick'#8'TabOrder'#2#2#0#0#7'TButton'#18'LazDocBrowseButton' + +#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#14'LazDo' + +'cPathEdit'#23'AnchorSideRight.Control'#7#19'LazDocPathsGroupBox'#20'AnchorS' + +'ideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#14'LazDocPathE' + +'dit'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3';'#2#6'Height'#2#23 + +#3'Top'#3#157#0#5'Width'#2#24#7'Anchors'#11#5'akTop'#7'akRight'#8'akBottom'#0 + +#19'BorderSpacing.Right'#2#6#7'Caption'#6#3'...'#7'OnClick'#7#23'LazDocBrows' + +'eButtonClick'#8'TabOrder'#2#3#0#0#5'TEdit'#14'LazDocPathEdit'#22'AnchorSide' + +'Left.Control'#7#19'LazDocPathsGroupBox'#21'AnchorSideTop.Control'#7#19'LazD' + +'ocAddPathButton'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.C' + +'ontrol'#7#18'LazDocBrowseButton'#4'Left'#2#6#6'Height'#2#23#3'Top'#3#157#0#5 + +'Width'#3'5'#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#18'BorderSpacin' + +'g.Left'#2#6#17'BorderSpacing.Top'#2#6#20'BorderSpacing.Bottom'#2#6#8'TabOrd' + +'er'#2#4#4'Text'#6#14'LazDocPathEdit'#0#0#0#0#0#0#6'TPanel'#11'EODBtnPanel'#6 + +'Height'#2'&'#3'Top'#3#203#1#5'Width'#3#0#3#5'Align'#7#8'alBottom'#8'AutoSiz' + +'e'#9#10'BevelOuter'#7#6'bvNone'#12'ClientHeight'#2'&'#11'ClientWidth'#3#0#3 + +#8'TabOrder'#2#0#0#7'TButton'#8'OkButton'#21'AnchorSideBottom.Side'#7#9'asrB' + +'ottom'#4'Left'#3'X'#2#6'Height'#2#26#3'Top'#2#6#5'Width'#2'K'#5'Align'#7#7 + +'alRight'#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#7'Caption'#6#2'Ok'#20'C' + +'onstraints.MinWidth'#2'K'#7'Default'#9#7'OnClick'#7#13'OkButtonClick'#8'Tab' + +'Order'#2#0#0#0#7'TButton'#12'CancelButton'#20'AnchorSideRight.Side'#7#9'asr' + +'Bottom'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#169#2#6'Height'#2 + +#26#3'Top'#2#6#5'Width'#2'Q'#5'Align'#7#7'alRight'#8'AutoSize'#9#20'BorderSp' + +'acing.Around'#2#6#7'Caption'#6#12'CancelButton'#20'Constraints.MinWidth'#2 + +'K'#7'OnClick'#7#17'CancelButtonClick'#8'TabOrder'#2#1#0#0#0#22'TSelectDirec' + +'toryDialog'#21'SelectDirectoryDialog'#5'Title'#6#16'Select Directory'#11'Fi' + +'lterIndex'#2#0#4'left'#3#0#1#0#0#0 +]); diff --git a/ide/environmentopts_new.pp b/ide/environmentopts_new.pp new file mode 100644 index 0000000000..391fd0597b --- /dev/null +++ b/ide/environmentopts_new.pp @@ -0,0 +1,1449 @@ +{ + *************************************************************************** + * * + * This source is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This code is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * General Public License for more details. * + * * + * A copy of the GNU General Public License is available on the World * + * Wide Web at . You can also * + * obtain it by writing to the Free Software Foundation, * + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + * * + *************************************************************************** + + Author: Mattias Gaertner + + Abstract: + This unit defines a dialog for the lazarus environment options and a class to + store the options in a xml file. + + ToDo: split this into two units - the dialog and the options. +} +unit EnvironmentOpts_new; + +{$mode objfpc}{$H+} + +interface + +uses +{$IFDEF IDE_MEM_CHECK} + MemCheck, +{$ENDIF} + Classes, SysUtils, FPCAdds, LCLProc, Forms, Controls, Buttons, GraphType, + Graphics, ExtCtrls, StdCtrls, Spin, FileUtil, LResources, Dialogs, + Laz_XMLCfg, + ObjectInspector, IDEWindowIntf, + LazarusIDEStrConsts, TransferMacros, LazConf, ExtToolDialog, IDEProcs, + IDEOptionDefs, InputHistory, EditorOptions, IDETranslations, + OptionsEditorBase, + // uses EnvironmentOpts too for common declarations + EnvironmentOpts; + + + { TEnvironmentOptionsDialog } +type + TEnvironmentOptionsDialog = class(TOptionsEditorForm) + NoteBook: TNoteBook; + FilesPage: TPage; + DesktopPage: TPage; + EODBtnPanel: TPanel; + WindowsPage: TPage; + FormEditorPage: TPage; + ObjectInspectorPage: TPage; + BackupPage: TPage; + NamingPage: TPage; + LazDocPage: TPage; + SelectDirectoryDialog: TSelectDirectoryDialog; + + // lazdoc settings + LazDocBrowseButton: TButton; + LazDocPathEdit: TEdit; + LazDocDeletePathButton: TButton; + LazDocAddPathButton: TButton; + LazDocPathsGroupBox: TGroupBox; + LazDocListBox: TListBox; + + // language + LanguageGroupBox: TGroupBox; + LanguageComboBox: TComboBox; + AutoSaveGroupBox: TGroupBox; + AutoSaveEditorFilesCheckBox: TCheckBox; + AutoSaveProjectCheckBox: TCheckBox; + AutoSaveIntervalInSecsLabel: TLabel; + AutoSaveIntervalInSecsComboBox: TComboBox; + + // desktop files + DesktopFilesGroupBox: TGroupBox; + SaveDesktopSettingsToFileButton: TButton; + LoadDesktopSettingsFromFileButton: TButton; + + // hints + CheckDiskChangesWithLoadingCheckBox: TCheckBox; + ShowHintsForComponentPaletteCheckBox: TCheckBox; + ShowHintsForMainSpeedButtonsCheckBox: TCheckBox; + + // messages view + MsgViewDblClickJumpsCheckBox: TCheckBox; + + // window layout + WindowPositionsGroupBox: TGroupBox; + WindowPositionsListBox: TListBox; + WindowPositionsBox: TIDEWindowSetupLayoutComponent; + MinimizeAllOnMinimizeMainCheckBox: TCheckBox; + HideIDEOnRunCheckBox: TCheckBox; + + // designer + GridGroupBox: TGroupBox; + ShowGridCheckBox: TCheckBox; + ShowBorderSpaceCheckBox: TCheckBox; + GridColorLabel: TLabel; + GridColorButton: TColorButton; + SnapToGridCheckBox: TCheckBox; + GridSizeXLabel: TLabel; + GridSizeXComboBox: TComboBox; + GridSizeYLabel: TLabel; + GridSizeYComboBox: TComboBox; + GuideLinesGroupBox: TGroupBox; + ShowGuideLinesCheckBox: TCheckBox; + SnapToGuideLinesCheckBox: TCheckBox; + GuideLineColorLeftTopLabel: TLabel; + GuideLineColorLeftTopButton: TColorButton; + GuideLineColorRightBottomLabel: TLabel; + GuideLineColorRightBottomButton: TColorButton; + FormEditMiscGroupBox: TGroupBox; + ShowComponentCaptionsCheckBox: TCheckBox; + ShowEditorHintsCheckBox: TCheckBox; + AutoCreateFormsOnOpenCheckBox: TCheckBox; + RightClickSelectsCheckBox: TCheckBox; + GrabberColorLabel: TLabel; + GrabberColorButton: TColorButton; + MarkerColorLabel: TLabel; + MarkerColorButton: TColorButton; + RubberbandGroupBox: TGroupBox; + RubberbandSelectColorLabel: TLabel; + RubberbandSelectColorButton: TColorButton; + RubberbandCreateColorLabel: TLabel; + RubberbandCreateColorButton: TColorButton; + RubberbandSelectsGrandChildsCheckBox: TCheckBox; + DesignerPaintLazyCheckBox: TCheckBox; + + // object inspector + ObjectInspectorColorsGroupBox: TGroupBox; + OIBackgroundColorLabel: TLabel; + OIBackgroundColorButton: TColorButton; + + OISubPropsColorLabel: TLabel; + OISubPropsColorButton: TColorButton; + OIReferencesColorLabel: TLabel; + OIReferencesColorButton: TColorButton; + OIValueColorLabel: TLabel; + OIValueColorButton: TColorButton; + OIDefaultValueColorLabel: TLabel; + OIDefaultValueColorButton: TColorButton; + OIPropNameColorLabel: TLabel; + OIPropNameColorButton: TColorButton; + + OIMiscGroupBox: TGroupBox; + OIDefaultItemHeightSpinEdit: TSpinEdit; + OIDefaultItemHeightLabel: TLabel; + OIShowHintCheckBox: TCheckBox; + + // Files + MaxRecentOpenFilesLabel: TLabel; + MaxRecentOpenFilesComboBox: TComboBox; + MaxRecentProjectFilesLabel: TLabel; + MaxRecentProjectFilesComboBox: TComboBox; + OpenLastProjectAtStartCheckBox: TCheckBox; + LazarusDirGroupBox: TGroupBox; + LazarusDirComboBox: TComboBox; + LazarusDirButton: TButton; + CompilerPathGroupBox: TGroupBox; + CompilerPathComboBox: TComboBox; + CompilerPathButton: TButton; + FPCSourceDirGroupBox: TGroupBox; + FPCSourceDirComboBox: TComboBox; + FPCSourceDirButton: TButton; + MakePathGroupBox: TGroupBox; + MakePathComboBox: TComboBox; + MakePathButton: TButton; + TestBuildDirGroupBox: TGroupBox; + TestBuildDirComboBox: TComboBox; + TestBuildDirButton: TButton; + + // backup + BackupHelpLabel: TLabel; + BackupProjectGroupBox: TGroupBox; + BakProjTypeRadioGroup: TRadioGroup; + BakProjAddExtLabel: TLabel; + BakProjAddExtComboBox: TComboBox; + BakProjMaxCounterLabel: TLabel; + BakProjMaxCounterComboBox: TComboBox; + BakProjSubDirLabel: TLabel; + BakProjSubDirComboBox: TComboBox; + BackupOtherGroupBox: TGroupBox; + BakOtherTypeRadioGroup: TRadioGroup; + BakOtherAddExtLabel: TLabel; + BakOtherAddExtComboBox: TComboBox; + BakOtherMaxCounterLabel: TLabel; + BakOtherMaxCounterComboBox: TComboBox; + BakOtherSubDirLabel: TLabel; + BakOtherSubDirComboBox: TComboBox; + + // naming conventions + PascalFileExtRadiogroup: TRadioGroup; + CharCaseFileActionRadioGroup: TRadioGroup; + AmbiguousFileActionRadioGroup: TRadioGroup; + + // buttons at bottom + OkButton: TButton; + CancelButton: TButton; + + procedure BakTypeRadioGroupClick(Sender: TObject); + procedure FilesButtonClick(Sender: TObject); + procedure DirectoriesButtonClick(Sender: TObject); + procedure FormEditorPageResize(Sender: TObject); + procedure LazDocAddPathButtonClick(Sender: TObject); + procedure LazDocBrowseButtonClick(Sender: TObject); + procedure LazDocDeletePathButtonClick(Sender: TObject); + procedure NotebookChangeBounds(Sender: TObject); + procedure OkButtonClick(Sender: TObject); + procedure CancelButtonClick(Sender: TObject); + procedure SaveDesktopSettingsToFileButtonClick(Sender: TObject); + procedure LoadDesktopSettingsFromFileButtonClick(Sender: TObject); + procedure WindowPositionsListBoxMouseUp(Sender:TObject; + Button:TMouseButton; Shift:TShiftState; X,Y:integer); + private + FOnLoadEnvironmentSettings: TOnLoadEnvironmentSettings; + FOnSaveEnvironmentSettings: TOnSaveEnvironmentSettings; + FLayouts: TIDEWindowLayoutList; + FOldLazarusDir: string; + FOldCompilerFilename: string; + FOldFPCSourceDir: string; + FOldMakeFilename: string; + FOldTestDir: string; + + procedure SetCategoryPage(const AValue: TEnvOptsDialogPage); + procedure SetupFilesPage(Page: integer); + procedure SetupDesktopPage(Page: integer); + procedure SetupWindowsPage(Page: integer); + procedure SetupFormEditorPage(Page: integer); + procedure SetupObjectInspectorPage(Page: integer); + procedure SetupBackupPage(Page: integer); + procedure SetupNamingPage(Page: integer); + procedure SetupLazDocPage(Page: integer); + procedure SetWindowPositionsItem(Index: integer); + function CheckValues: boolean; + function CheckLazarusDir: boolean; + function IsFPCSourceDir: boolean; + function CheckTestDir: boolean; + published + property OnSaveEnvironmentSettings: TOnSaveEnvironmentSettings + read FOnSaveEnvironmentSettings write FOnSaveEnvironmentSettings; + property OnLoadEnvironmentSettings: TOnLoadEnvironmentSettings + read FOnLoadEnvironmentSettings write FOnLoadEnvironmentSettings; + property CategoryPage: TEnvOptsDialogPage write SetCategoryPage; + public + procedure ReadSettings(AnEnvironmentOptions: TEnvironmentOptions); + procedure WriteSettings(AnEnvironmentOptions: TEnvironmentOptions); + constructor Create(TheOwner: TComponent); override; + destructor Destroy; override; + end; + + +var + EnvironmentOptions: TEnvironmentOptions; + +function DebuggerNameToType(const s: string): TDebuggerType; +function PascalExtToType(const Ext: string): TPascalExtType; +function AmbiguousFileActionNameToType(const Action: string): TAmbiguousFileAction; +function CharCaseFileActionNameToType(const Action: string): TCharCaseFileAction; + +function CheckFileChanged(const OldFilename, NewFilename: string): boolean; +function CheckExecutable(const OldFilename, NewFilename: string; + const ErrorCaption, ErrorMsg: string): boolean; +function CheckDirPathExists(const Dir, + ErrorCaption, ErrorMsg: string): TModalResult; +function SimpleDirectoryCheck(const OldDir, NewDir, + NotFoundErrMsg: string; var StopChecking: boolean): boolean; + +procedure SetComboBoxText(AComboBox:TComboBox; const AText:AnsiString); +procedure SetComboBoxText(AComboBox:TComboBox; const AText:AnsiString; + MaxCount: integer); + +const + DefaultLazDocPath = '$(LazarusDir)/docs/xml/lcl'; + +implementation + + +const MaxComboBoxCount: integer = 20; + + +function DebuggerNameToType(const s: string): TDebuggerType; +begin + for Result:=Low(TDebuggerType) to High(TDebuggerType) do + if CompareText(DebuggerName[Result],s)=0 then exit; + Result:=dtNone; +end; + +function PascalExtToType(const Ext: string): TPascalExtType; +begin + if Ext<>'' then + for Result:=Low(TPascalExtType) to High(TPascalExtType) do + if CompareFilenames(Ext,PascalExtension[Result])=0 then exit; + Result:=petNone; +end; + +function AmbiguousFileActionNameToType( + const Action: string): TAmbiguousFileAction; +begin + for Result:=Low(TAmbiguousFileAction) to High(TAmbiguousFileAction) do begin + if CompareText(AmbiguousFileActionNames[Result],Action)=0 then + exit; + end; + Result:=afaAsk; +end; + +function CharCaseFileActionNameToType( + const Action: string): TCharCaseFileAction; +begin + for Result:=Low(TCharCaseFileAction) to High(TCharCaseFileAction) do begin + if CompareText(CharCaseFileActionNames[Result],Action)=0 then + exit; + end; + Result:=ccfaAutoRename; +end; + + +function CheckFileChanged(const OldFilename, + NewFilename: string): boolean; +begin + Result:=(NewFilename<>OldFilename) and (NewFilename<>''); +end; + +function CheckExecutable(const OldFilename, + NewFilename: string; const ErrorCaption, ErrorMsg: string): boolean; +begin + Result:=true; + if not CheckFileChanged(OldFilename,NewFilename) then exit; + if (not FileIsExecutable(NewFilename)) then begin + if MessageDlg(ErrorCaption,Format(ErrorMsg,[NewFilename]), + mtWarning,[mbIgnore,mbCancel],0)=mrCancel + then begin + Result:=false; + end; + end; +end; + +function CheckDirPathExists(const Dir, + ErrorCaption, ErrorMsg: string): TModalResult; +begin + if not DirPathExists(Dir) then begin + Result:=MessageDlg(ErrorCaption,Format(ErrorMsg,[Dir]),mtWarning, + [mbIgnore,mbCancel],0); + end else + Result:=mrOk; +end; + +function SimpleDirectoryCheck(const OldDir, NewDir, + NotFoundErrMsg: string; var StopChecking: boolean): boolean; +var + SubResult: TModalResult; +begin + StopChecking:=true; + if not CheckFileChanged(OldDir,NewDir) then begin + Result:=true; + exit; + end; + SubResult:=CheckDirPathExists(NewDir,lisEnvOptDlgDirectoryNotFound, + NotFoundErrMsg); + if SubResult=mrIgnore then begin + Result:=true; + exit; + end; + if SubResult=mrCancel then begin + Result:=false; + exit; + end; + StopChecking:=false; + Result:=true; +end; + +procedure SetComboBoxText(AComboBox:TComboBox; const AText: String); +var a:integer; +begin + a:=AComboBox.Items.IndexOf(AText); + if a>=0 then + AComboBox.ItemIndex:=a + else begin + AComboBox.Items.Add(AText); + AComboBox.ItemIndex:=AComboBox.Items.IndexOf(AText); + end; + AComboBox.Text:=AText; +end; + +procedure SetComboBoxText(AComboBox:TComboBox; const AText: String; + MaxCount: integer); +var a:integer; +begin + a:=AComboBox.Items.IndexOf(AText); + if a>=0 then + AComboBox.ItemIndex:=a + else begin + AComboBox.Items.Insert(0,AText); + AComboBox.ItemIndex:=AComboBox.Items.IndexOf(AText); + if MaxCount<2 then MaxCount:=2; + while AComboBox.Items.Count>MaxCount do + AComboBox.Items.Delete(AComboBox.Items.Count-1); + end; + AComboBox.Text:=AText; +end; + + +const + EnvOptsConfFileName='environmentoptions.xml'; + BakMaxCounterInfiniteTxt = 'infinite'; + +{ TEnvironmentOptionsDialog } + +constructor TEnvironmentOptionsDialog.Create(TheOwner: TComponent); +var + Title: string; + i: Integer; +begin + inherited Create(TheOwner); + IDEDialogLayoutList.ApplyLayout(Self,Width,Height); + Caption:=lisMenuGeneralOptions; + + NoteBook.PageIndex:=0; + + SetupFilesPage(0); + SetupDesktopPage(1); + SetupWindowsPage(2); + SetupFormEditorPage(3); + SetupObjectInspectorPage(4); + SetupBackupPage(5); + SetupNamingPage(6); + SetupLazDocPage(7); + + CancelButton.Caption:=dlgCancel; + CancelControl:=CancelButton; + + //Indexing item + for i:= 0 to NoteBook.PageCount-1 do + begin + Title:=NoteBook.Pages[i]; + ScanControlTextsForIndex(Title, NoteBook.Page[i]); + end +end; + +destructor TEnvironmentOptionsDialog.Destroy; +begin + inherited Destroy; +end; + +procedure TEnvironmentOptionsDialog.SetupDesktopPage(Page: integer); +var + i: Integer; + LangID: String; +begin + NoteBook.Page[Page].Caption := dlgDesktop; + + // language + LanguageGroupBox.Caption:=dlgEnvLanguage; + + with LanguageComboBox.Items do begin + BeginUpdate; + for i:=0 to LazarusTranslations.Count-1 do begin + LangID:=LazarusTranslations[i].ID; + if LangID='' then + //No [] if automatic + Add(GetLazarusLanguageLocalizedName(LangID)) + else + Add(GetLazarusLanguageLocalizedName(LangID)+' ['+LangID+']'); + end; + EndUpdate; + end; + + // auto save + AutoSaveGroupBox.Caption:=dlgAutoSave; + AutoSaveEditorFilesCheckBox.Caption:=dlgEdFiles; + AutoSaveProjectCheckBox.Caption:=dlgEnvProject; + AutoSaveIntervalInSecsLabel.Caption:=dlgIntvInSec; + + // desktop files + DesktopFilesGroupBox.Caption:=dlgDesktopFiles; + SaveDesktopSettingsToFileButton.Caption:=dlgSaveDFile; + LoadDesktopSettingsFromFileButton.Caption:=dlgLoadDFile; + + // hints + CheckDiskChangesWithLoadingCheckBox.Caption:=lisCheckChangesOnDiskWithLoading; + ShowHintsForComponentPaletteCheckBox.Caption:=dlgPalHints; + ShowHintsForMainSpeedButtonsCheckBox.Caption:=dlgSpBHints; + + // messages view + MsgViewDblClickJumpsCheckBox.Caption:=lisEnvDoubleClickOnMessagesJumpsOtherwiseSingleClick; +end; + +procedure TEnvironmentOptionsDialog.SetupWindowsPage(Page: integer); +begin + NoteBook.Page[Page].Caption := dlgWindows; + + // windows + MinimizeAllOnMinimizeMainCheckBox.Caption:=dlgMinimizeAllOnMinimizeMain; + HideIDEOnRunCheckBox.Caption:=dlgHideIDEOnRun; + + // Window Positions + WindowPositionsGroupBox.Caption:=dlgWinPos; + with WindowPositionsListBox.Items do begin + BeginUpdate; + Add(dlgMainMenu); + Add(dlgSrcEdit); + Add(dlgMsgs); + Add(dlgObjInsp); + Add(lisMenuProjectInspector); + Add(lisCodeExplorer); + Add(lisMenuPackageGraph); + Add(dlgUnitDepCaption); + Add(lisMenuLazDoc); + EndUpdate; + end; + WindowPositionsBox:=TIDEWindowSetupLayoutComponent.Create(Self); + with WindowPositionsBox do begin + Name:='WindowPositionsBox'; + Parent:=WindowPositionsGroupBox; + BorderSpacing.Around:=6; + Align:=alBottom; + AnchorToNeighbour(akTop,6,WindowPositionsListBox); + end; +end; + +procedure TEnvironmentOptionsDialog.SetupBackupPage(Page: integer); +begin + NoteBook.Page[Page].Caption := dlgEnvBckup; + + BackupHelpLabel.Caption:=dlgEnvBackupHelpNote; + + BackupProjectGroupBox.Caption:=dlgProjFiles; + + with BakProjTypeRadioGroup do begin + Caption:=dlgEnvType; + with Items do begin + BeginUpdate; + Add(lisNoBackupFiles); + Add(dlgSmbFront); + Add(dlgSmbBehind); + Add(dlgSmbCounter); + Add(dlgCustomExt); + Add(dlgBckUpSubDir); + EndUpdate; + end; + end; + + BakProjAddExtLabel.Caption:=dlgEdCustomExt; + + with BakProjAddExtComboBox.Items do begin + BeginUpdate; + Clear; + Add('bak'); + Add('old'); + EndUpdate; + end; + + BakProjMaxCounterLabel.Caption:=dlgMaxCntr; + + with BakProjMaxCounterComboBox.Items do begin + BeginUpdate; + Clear; + Add('1'); + Add('2'); + Add('3'); + Add('5'); + Add('9'); + Add(BakMaxCounterInfiniteTxt); + EndUpdate; + end; + + BakProjSubDirLabel.Caption:=dlgEdBSubDir; + + BakProjSubDirComboBox.Text:=''; + with BakProjSubDirComboBox.Items do begin + BeginUpdate; + Clear; + Add(dlgBakNoSubDirectory); + Add('backup'); + EndUpdate; + end; + + BackupOtherGroupBox.Caption:=dlgEnvOtherFiles; + + with BakOtherTypeRadioGroup do begin + Caption:=dlgEnvType; + with Items do begin + BeginUpdate; + Add(lisNoBackupFiles); + Add(dlgSmbFront); + Add(dlgSmbBehind); + Add(dlgSmbCounter); + Add(dlgCustomExt); + Add(dlgBckUpSubDir); + EndUpdate; + end; + end; + + BakOtherAddExtLabel.Caption:=dlgEdCustomExt; + + with BakOtherAddExtComboBox.Items do begin + BeginUpdate; + Add('bak'); + Add('old'); + EndUpdate; + end; + + BakOtherMaxCounterLabel.Caption:=dlgMaxCntr; + + with BakOtherMaxCounterComboBox.Items do begin + BeginUpdate; + Clear; + Add('1'); + Add('2'); + Add('3'); + Add('5'); + Add('9'); + Add(BakMaxCounterInfiniteTxt); + EndUpdate; + end; + + BakOtherSubDirLabel.Caption:=dlgEdBSubDir; + + with BakOtherSubDirComboBox.Items do begin + BeginUpdate; + Clear; + Add(dlgBakNoSubDirectory); + Add('backup'); + EndUpdate; + end; +end; + +procedure TEnvironmentOptionsDialog.SetupFilesPage(Page: integer); +begin + NoteBook.Page[Page].Caption := dlgEnvFiles; + + MaxRecentOpenFilesLabel.Caption:=dlgMaxRecentFiles; + + MaxRecentProjectFilesLabel.Caption:=dlgMaxRecentProjs; + + OpenLastProjectAtStartCheckBox.Caption:=dlgQOpenLastPrj; + + LazarusDirGroupBox.Caption:=dlgLazarusDir; + + with LazarusDirComboBox.Items do begin + BeginUpdate; + Add(ProgramDirectory); + EndUpdate; + end; + + CompilerPathGroupBox.Caption:=Format(dlgFpcPath,[GetDefaultCompilerFilename]); + + with CompilerPathComboBox do begin + Items.BeginUpdate; + GetDefaultCompilerFilenames(Items); + Items.EndUpdate; + end; + + FPCSourceDirGroupBox.Caption:=dlgFpcSrcPath; + + MakePathGroupBox.Caption:=dlgMakePath; + + with MakePathComboBox.Items do begin + BeginUpdate; + Add('/usr/bin/make'); + EndUpdate; + end; + + TestBuildDirGroupBox.Caption:=dlgTestPrjDir; + + with TestBuildDirComboBox.Items do begin + BeginUpdate; + Add('/tmp'); + Add('/var/tmp'); + Add('c:/tmp'); + Add('c:/windows/temp'); + EndUpdate; + end; +end; + +procedure TEnvironmentOptionsDialog.SetCategoryPage( + const AValue: TEnvOptsDialogPage); +var + p: Integer; +begin + case AValue of + eodpFiles: p:=0; + eodpLanguage, eodpAutoSave, eodpDesktop, eodpMainHints, + eodpWindowPositions: p:=2; + eodpFormEditor: p:=3; + eodpObjectInspector: p:=4; + eodpBackup: p:=5; + eodpNaming: p:=6; + end; + Notebook.PageIndex:=p; +end; + +procedure TEnvironmentOptionsDialog.SetupFormEditorPage(Page: integer); + + procedure SetupGridGroupBox; + begin + ShowBorderSpaceCheckBox.Caption:=dlgQShowBorderSpacing; + ShowGridCheckBox.Caption:=dlgQShowGrid; + GridColorLabel.Caption:=dlgGridColor; + SnapToGridCheckBox.Caption:=dlgQSnapToGrid; + GridSizeXComboBox.Hint:=dlgGridXHint; + GridSizeXLabel.Caption:=dlgGridX; + GridSizeYComboBox.Hint:=dlgGridYHint; + GridSizeYLabel.Caption:=dlgGridY; + end; + + procedure SetupGuideLinesGroupBox; + begin + ShowGuideLinesCheckBox.Caption:=dlgGuideLines; + SnapToGuideLinesCheckBox.Caption:=dlgSnapGuideLines; + GuideLineColorLeftTopLabel.Caption:=dlgLeftTopClr; + GuideLineColorRightBottomLabel.Caption:=dlgRightBottomClr; + end; + + procedure SetupMiscGroupBox; + begin + ShowComponentCaptionsCheckBox.Caption:=dlgShowCaps; + ShowEditorHintsCheckBox.Caption:=dlgShowEdrHints; + AutoCreateFormsOnOpenCheckBox.Caption:=dlgAutoForm; + RightClickSelectsCheckBox.Caption:=dlgRightClickSelects; + GrabberColorLabel.Caption:=dlgGrabberColor; + MarkerColorLabel.Caption:=dlgMarkerColor; + + with DesignerPaintLazyCheckBox do begin + Caption:=lisFEPaintDesignerItemsOnIdle; + Hint:=lisFEPaintDesignerItemsOnIdleReduceOverheadForSlowCompu; + end; + end; + + procedure SetupRubberbandBox; + begin + RubberbandSelectColorLabel.Caption:=dlgRuberbandSelectionColor; + RubberbandCreateColorLabel.Caption:=dlgRuberbandCreationColor; + RubberbandSelectsGrandChildsCheckBox.Caption:=dlgRubberbandSelectsGrandChilds; + end; + +begin + // EnvironmentOptionsDialog editor page + NoteBook.Page[Page].Caption := dlgFrmEditor; + + GridGroupBox.Caption:=dlgEnvGrid; + + SetupGridGroupBox; + + GuideLinesGroupBox.Caption:=dlgEnvLGuideLines; + + SetupGuideLinesGroupBox; + + RubberbandGroupBox.Caption:=dlgRubberBandGroup; + + SetupRubberbandBox; + + FormEditMiscGroupBox.Caption:=dlgEnvMisc; + + SetupMiscGroupBox; +end; + +procedure TEnvironmentOptionsDialog.SetupNamingPage(Page: integer); +var + pe: TPascalExtType; +begin + NoteBook.Page[Page].Caption := dlgNaming; + + with PascalFileExtRadiogroup do begin + Caption:=dlgPasExt; + with Items do begin + BeginUpdate; + for pe:=Low(TPascalExtType) to High(TPascalExtType) do + if pe<>petNone then + Add(PascalExtension[pe]); + EndUpdate; + end; + PascalFileExtRadiogroup.Columns:=PascalFileExtRadiogroup.Items.Count; + end; + + with CharcaseFileActionRadioGroup do begin + Caption:=dlgCharCaseFileAct; + with Items do begin + BeginUpdate; + Add(dlgEnvAsk); + Add(dlgAutoRen); + Add(dlgnoAutomaticRenaming); + EndUpdate; + end; + end; + + with AmbiguousFileActionRadioGroup do begin + Caption:=dlgAmbigFileAct; + with Items do begin + BeginUpdate; + Add(dlgEnvAsk); + Add(dlgAutoDel); + Add(dlgAutoRen); + Add(dlgAmbigWarn); + Add(dlgIgnoreVerb); + EndUpdate; + end; + end; +end; + +procedure TEnvironmentOptionsDialog.SetupLazDocPage(Page: integer); +begin + NoteBook.Page[Page].Caption := lisLazDoc; + + LazDocPathsGroupBox.Caption := lisLazDocPathsGroupBox; + LazDocAddPathButton.Caption := lisLazDocAddPathButton; + LazDocDeletePathButton.Caption := lisLazDocDeletePathButton; + + LazDocPathEdit.Clear; +end; + +procedure TEnvironmentOptionsDialog.BakTypeRadioGroupClick(Sender: TObject); +var i: integer; +begin + i:=TRadioGroup(Sender).ItemIndex; + if Sender=BakProjTypeRadioGroup then begin + BakProjAddExtComboBox.Enabled:=(i=4); + BakProjAddExtLabel.Enabled:=BakProjAddExtComboBox.Enabled; + BakProjMaxCounterComboBox.Enabled:=(i=3); + BakProjMaxCounterLabel.EnableD:=BakProjMaxCounterComboBox.Enabled; + end else begin + BakOtherAddExtComboBox.Enabled:=(i=4); + BakOtherAddExtLabel.Enabled:=BakOtherAddExtComboBox.Enabled; + BakOtherMaxCounterComboBox.Enabled:=(i=3); + BakOtherMaxCounterLabel.EnableD:=BakOtherMaxCounterComboBox.Enabled; + end; +end; + +procedure TEnvironmentOptionsDialog.FilesButtonClick(Sender: TObject); +var + OpenDialog: TOpenDialog; + AFilename: string; +begin + OpenDialog:=TOpenDialog.Create(nil); + try + InputHistories.ApplyFileDialogSettings(OpenDialog); + OpenDialog.Options:=OpenDialog.Options+[ofPathMustExist]; + // set title + if Sender=CompilerPathButton then + OpenDialog.Title:= + Format(lisChooseCompilerPath,[GetDefaultCompilerFilename]) + else if Sender=MakePathButton then + OpenDialog.Title:=lisChooseMakePath + else + exit; + + if OpenDialog.Execute then begin + AFilename:=CleanAndExpandFilename(OpenDialog.Filename); + + if Sender=CompilerPathButton then begin + // check compiler filename + SetComboBoxText(CompilerPathComboBox,AFilename); + CheckExecutable(FOldCompilerFilename,CompilerPathComboBox.Text, + lisEnvOptDlgInvalidCompilerFilename, + lisEnvOptDlgInvalidCompilerFilenameMsg); + end else if Sender=MakePathButton then begin + //check make filename + SetComboBoxText(MakePathComboBox,AFilename); + CheckExecutable(FOldMakeFilename,MakePathComboBox.Text, + lisEnvOptDlgInvalidMakeFilename, + lisEnvOptDlgInvalidMakeFilenameMsg); + end; + end; + InputHistories.StoreFileDialogSettings(OpenDialog); + finally + OpenDialog.Free; + end; +end; + +procedure TEnvironmentOptionsDialog.DirectoriesButtonClick(Sender: TObject); +var + OpenDialog: TSelectDirectoryDialog; + ADirectoryName: string; +begin + OpenDialog:=TSelectDirectoryDialog.Create(nil); + try + InputHistories.ApplyFileDialogSettings(OpenDialog); + OpenDialog.Options:=OpenDialog.Options+[ofPathMustExist]; + // set title + if Sender=LazarusDirButton then + OpenDialog.Title:=lisChooseLazarusSourceDirectory + else if Sender=FPCSourceDirButton then + OpenDialog.Title:=lisChooseFPCSourceDir + else if Sender=TestBuildDirButton then + OpenDialog.Title:=lisChooseTestBuildDir + else + exit; + + if OpenDialog.Execute then begin + ADirectoryName:=CleanAndExpandDirectory(OpenDialog.Filename); + + if Sender=LazarusDirButton then begin + // check lazarus directory + SetComboBoxText(LazarusDirComboBox,ADirectoryName); + CheckLazarusDir; + end else if Sender=FPCSourceDirButton then begin + // check fpc source directory + SetComboBoxText(FPCSourceDirComboBox,ADirectoryName); + IsFPCSourceDir; + end else if Sender=TestBuildDirButton then begin + // check test directory + SetComboBoxText(TestBuildDirComboBox,ADirectoryName); + CheckTestDir; + end; + + end; + InputHistories.StoreFileDialogSettings(OpenDialog); + finally + OpenDialog.Free; + end; +end; + +procedure TEnvironmentOptionsDialog.FormEditorPageResize(Sender: TObject); +var + w: Integer; +begin + w:=((FormEditorPage.ClientWidth-3*5)*5) div 10; + GridGroupBox.Width:=w; + FormEditMiscGroupBox.Width:=GridGroupBox.Width; +end; + +procedure TEnvironmentOptionsDialog.LazDocAddPathButtonClick(Sender: TObject); +begin + if LazDocPathEdit.Text <> '' then + LazDocListBox.Items.Add(LazDocPathEdit.Text); +end; + +procedure TEnvironmentOptionsDialog.LazDocBrowseButtonClick(Sender: TObject); +begin + if SelectDirectoryDialog.Execute then + LazDocPathEdit.Text := SelectDirectoryDialog.FileName; +end; + +procedure TEnvironmentOptionsDialog.LazDocDeletePathButtonClick(Sender: TObject + ); +begin + LazDocListBox.Items.Delete(LazDocListBox.ItemIndex); +end; + +procedure TEnvironmentOptionsDialog.NotebookChangeBounds(Sender: TObject); +begin + +end; + +procedure TEnvironmentOptionsDialog.OkButtonClick(Sender: TObject); +begin + if not CheckValues then exit; + IDEDialogLayoutList.SaveLayout(Self); + ModalResult:=mrOk; +end; + +procedure TEnvironmentOptionsDialog.CancelButtonClick(Sender: TObject); +begin + IDEDialogLayoutList.SaveLayout(Self); + ModalResult:=mrCancel; +end; + +procedure TEnvironmentOptionsDialog.SaveDesktopSettingsToFileButtonClick( + Sender: TObject); +var AnEnvironmentOptions: TEnvironmentOptions; + SaveDialog: TSaveDialog; +begin + debugln('TEnvironmentOptionsDialog.SaveDesktopSettingsToFileButtonClick A'); + SaveDialog:=TSaveDialog.Create(nil); + try + try + InputHistories.ApplyFileDialogSettings(SaveDialog); + SaveDialog.Filter:=lisLazarusDesktopSettings+' (*.lds)|*.lds' + +'|'+lisXMLFiles+' (*.xml)|*.xml' + +'|'+dlgAllFiles+' (*.*)|' + GetAllFilesMask; + if SaveDialog.Execute then begin + AnEnvironmentOptions:=TEnvironmentOptions.Create; + try + WriteSettings(AnEnvironmentOptions); + AnEnvironmentOptions.Filename:=SaveDialog.Filename; + if Assigned(OnSaveEnvironmentSettings) then + OnSaveEnvironmentSettings(Self,AnEnvironmentOptions); + AnEnvironmentOptions.Save(true); + finally + AnEnvironmentOptions.Free; + end; + end; + InputHistories.StoreFileDialogSettings(SaveDialog); + except + on E: Exception do begin + DebugLn('ERROR: [TEnvironmentOptionsDialog.SaveDesktopSettingsToFileButtonClick] ',E.Message); + end; + end; + finally + SaveDialog.Free; + end; +end; + +procedure TEnvironmentOptionsDialog.LoadDesktopSettingsFromFileButtonClick( + Sender: TObject); +var AnEnvironmentOptions: TEnvironmentOptions; + OpenDialog: TOpenDialog; +begin + debugln('TEnvironmentOptionsDialog.LoadDesktopSettingsFromFileButtonClick A'); + OpenDialog:=TOpenDialog.Create(nil); + try + try + InputHistories.ApplyFileDialogSettings(OpenDialog); + OpenDialog.Filter:=lisLazarusDesktopSettings+' (*.lds)|*.lds' + +'|'+lisXMLFiles+' (*.xml)|*.xml' + +'|'+dlgAllFiles+' (*.*)|' + GetAllFilesMask; + if OpenDialog.Execute then begin + AnEnvironmentOptions:=TEnvironmentOptions.Create; + try + AnEnvironmentOptions.Filename:=OpenDialog.Filename; + AnEnvironmentOptions.Load(true); + if Assigned(OnLoadEnvironmentSettings) then + OnLoadEnvironmentSettings(Self,AnEnvironmentOptions); + ReadSettings(AnEnvironmentOptions); + finally + AnEnvironmentOptions.Free; + end; + end; + InputHistories.StoreFileDialogSettings(OpenDialog); + except + // ToDo + DebugLn('ERROR: [TEnvironmentOptionsDialog.SaveDesktopSettingsToFileButtonClick]'); + end; + finally + OpenDialog.Free; + end; +end; + +procedure TEnvironmentOptionsDialog.ReadSettings( + AnEnvironmentOptions: TEnvironmentOptions); +var i: integer; +begin + with AnEnvironmentOptions do begin + // language + LanguageComboBox.ItemIndex:=LazarusTranslations.IndexOf(LanguageID); + //debugln('TEnvironmentOptionsDialog.ReadSettings LanguageComboBox.ItemIndex=',dbgs(LanguageComboBox.ItemIndex),' LanguageID="',LanguageID,'"'); + + // auto save + AutoSaveEditorFilesCheckBox.Checked:=AutoSaveEditorFiles; + AutoSaveProjectCheckBox.Checked:=AutoSaveProject; + SetComboBoxText(AutoSaveIntervalInSecsComboBox + ,IntToStr(AutoSaveIntervalInSecs)); + + // desktop + FLayouts:=IDEWindowLayoutList; + SetWindowPositionsItem(0); + + // object inspector + OIBackgroundColorButton.ButtonColor:= + ObjectInspectorOptions.GridBackgroundColor; + OISubPropsColorButton.ButtonColor:= + ObjectInspectorOptions.SubPropertiesColor; + OIReferencesColorButton.ButtonColor:= + ObjectInspectorOptions.ReferencesColor; + OIValueColorButton.ButtonColor:= + ObjectInspectorOptions.ValueColor; + OIDefaultValueColorButton.ButtonColor:= + ObjectInspectorOptions.DefaultValueColor; + OIPropNameColorButton.ButtonColor:= + ObjectInspectorOptions.PropertyNameColor; + + OIDefaultItemHeightSpinEdit.Value:=ObjectInspectorOptions.DefaultItemHeight; + OIShowHintCheckBox.Checked := ObjectInspectorOptions.ShowHints; + + // window minimizing and hiding + MinimizeAllOnMinimizeMainCheckBox.Checked:=MinimizeAllOnMinimizeMain; + HideIDEOnRunCheckBox.Checked:=HideIDEOnRun; + + // hints + CheckDiskChangesWithLoadingCheckBox.Checked:= + CheckDiskChangesWithLoading; + ShowHintsForComponentPaletteCheckBox.Checked:= + ShowHintsForComponentPalette; + ShowHintsForMainSpeedButtonsCheckBox.Checked:= + ShowHintsForMainSpeedButtons; + + // messages view + MsgViewDblClickJumpsCheckBox.Checked:=MsgViewDblClickJumps; + + // EnvironmentOptionsDialog editor + ShowBorderSpaceCheckBox.Checked:=ShowBorderSpacing; + ShowGridCheckBox.Checked:=ShowGrid; + GridColorButton.ButtonColor:=GridColor; + SnapToGridCheckBox.Checked:=SnapToGrid; + SetComboBoxText(GridSizeXComboBox,IntToStr(GridSizeX)); + SetComboBoxText(GridSizeYComboBox,IntToStr(GridSizeY)); + ShowGuideLinesCheckBox.Checked:=ShowGuideLines; + SnapToGuideLinesCheckBox.Checked:=SnapToGuideLines; + GuideLineColorLeftTopButton.ButtonColor:=GuideLineColorLeftTop; + GuideLineColorRightBottomButton.ButtonColor:=GuideLineColorRightBottom; + ShowComponentCaptionsCheckBox.Checked:=ShowComponentCaptions; + ShowEditorHintsCheckBox.Checked:=ShowEditorHints; + AutoCreateFormsOnOpenCheckBox.Checked:=AutoCreateFormsOnOpen; + RightClickSelectsCheckBox.Checked:=RightClickSelects; + GrabberColorButton.ButtonColor:=GrabberColor; + MarkerColorButton.ButtonColor:=MarkerColor; + RubberbandSelectColorButton.ButtonColor:=RubberbandSelectionColor; + RubberbandCreateColorButton.ButtonColor:=RubberbandCreationColor; + RubberbandSelectsGrandChildsCheckBox.Checked:=RubberbandSelectsGrandChilds; + DesignerPaintLazyCheckBox.Checked:=DesignerPaintLazy; + + // files + LazarusDirComboBox.Items.Assign(LazarusDirHistory); + FOldLazarusDir:=LazarusDirectory; + SetComboBoxText(LazarusDirComboBox,LazarusDirectory,MaxComboBoxCount); + CompilerPathComboBox.Items.Assign(CompilerFileHistory); + FOldCompilerFilename:=CompilerFilename; + SetComboBoxText(CompilerPathComboBox,CompilerFilename,MaxComboBoxCount); + FPCSourceDirComboBox.Items.Assign(FPCSourceDirHistory); + FOldFPCSourceDir:=FPCSourceDirectory; + SetComboBoxText(FPCSourceDirComboBox,FPCSourceDirectory,MaxComboBoxCount); + MakePathComboBox.Items.Assign(MakeFileHistory); + FOldMakeFilename:=MakeFilename; + SetComboBoxText(MakePathComboBox,MakeFilename,MaxComboBoxCount); + TestBuildDirComboBox.Items.Assign(TestBuildDirHistory); + FOldTestDir:=TestBuildDirectory; + SetComboBoxText(TestBuildDirComboBox,TestBuildDirectory,MaxComboBoxCount); + + // recent files and directories + SetComboBoxText(MaxRecentOpenFilesComboBox,IntToStr(MaxRecentOpenFiles)); + SetComboBoxText(MaxRecentProjectFilesComboBox,IntToStr(MaxRecentProjectFiles)); + OpenLastProjectAtStartCheckBox.Checked:=OpenLastProjectAtStart; + + // backup + with BackupInfoProjectFiles do begin + case BackupType of + bakNone: BakProjTypeRadioGroup.ItemIndex:=0; + bakSymbolInFront: BakProjTypeRadioGroup.ItemIndex:=1; + bakSymbolBehind: BakProjTypeRadioGroup.ItemIndex:=2; + bakCounter: BakProjTypeRadioGroup.ItemIndex:=3; + bakUserDefinedAddExt: BakProjTypeRadioGroup.ItemIndex:=4; + bakSameName: BakProjTypeRadioGroup.ItemIndex:=5; + end; + SetComboBoxText(BakProjAddExtComboBox,AdditionalExtension); + if MaxCounter<=0 then + SetComboBoxText(BakProjMaxCounterComboBox,BakMaxCounterInfiniteTxt) + else + SetComboBoxText(BakProjMaxCounterComboBox,IntToStr(MaxCounter)); + if SubDirectory<>'' then + SetComboBoxText(BakProjSubDirComboBox,SubDirectory) + else + SetComboBoxText(BakProjSubDirComboBox,dlgBakNoSubDirectory); + end; + BakTypeRadioGroupClick(BakProjTypeRadioGroup); + with BackupInfoOtherFiles do begin + case BackupType of + bakNone: BakOtherTypeRadioGroup.ItemIndex:=0; + bakSymbolInFront: BakOtherTypeRadioGroup.ItemIndex:=1; + bakSymbolBehind: BakOtherTypeRadioGroup.ItemIndex:=2; + bakCounter: BakOtherTypeRadioGroup.ItemIndex:=3; + bakUserDefinedAddExt: BakOtherTypeRadioGroup.ItemIndex:=4; + bakSameName: BakOtherTypeRadioGroup.ItemIndex:=5; + end; + SetComboBoxText(BakOtherAddExtComboBox,AdditionalExtension); + if MaxCounter<=0 then + SetComboBoxText(BakOtherMaxCounterComboBox,BakMaxCounterInfiniteTxt) + else + SetComboBoxText(BakOtherMaxCounterComboBox,IntToStr(MaxCounter)); + if SubDirectory<>'' then + SetComboBoxText(BakOtherSubDirComboBox,SubDirectory) + else + SetComboBoxText(BakOtherSubDirComboBox,dlgBakNoSubDirectory); + end; + BakTypeRadioGroupClick(BakOtherTypeRadioGroup); + + // naming + for i:=0 to PascalFileExtRadiogroup.Items.Count-1 do + if PascalFileExtRadiogroup.Items[i]=PascalExtension[PascalFileExtension] + then PascalFileExtRadiogroup.ItemIndex:=i; + + CharCaseFileActionRadioGroup.ItemIndex := ord(CharCaseFileAction); + AmbiguousFileActionRadioGroup.ItemIndex := ord(AmbiguousFileAction); + + //lazdoc + SplitString(LazDocPaths,';',LazDocListBox.Items); + end; +end; + +procedure TEnvironmentOptionsDialog.WriteSettings( + AnEnvironmentOptions: TEnvironmentOptions); +begin + with AnEnvironmentOptions do begin + // language + if (LanguageComboBox.ItemIndex>=0) + and (LanguageComboBox.ItemIndex=0 then + PascalFileExtension:=PascalExtToType( + PascalFileExtRadiogroup.Items[PascalFileExtRadiogroup.ItemIndex]) + else + PascalFileExtension:=petPAS; + + //lazdoc + LazDocPaths:=StringListToText(LazDocListBox.Items,';',true); + + CharcaseFileAction := TCharCaseFileAction(CharcaseFileActionRadioGroup.ItemIndex); + AmbiguousFileAction := TAmbiguousFileAction(AmbiguousFileActionRadioGroup.ItemIndex); + end; +end; + +procedure TEnvironmentOptionsDialog.SetupObjectInspectorPage(Page: integer); +begin + NoteBook.Page[Page].Caption := dlgObjInsp; + + // object inspector + ObjectInspectorColorsGroupBox.Caption:=dlgEnvColors; + OIBackgroundColorLabel.Caption:=dlgBackColor; + OISubPropsColorLabel.Caption:=dlgSubPropkColor; + OIReferencesColorLabel.Caption:=dlgReferenceColor; + OIValueColorLabel.Caption:=dlgValueColor; + OIDefaultValueColorLabel.Caption:=dlgDefValueColor; + OIPropNameColorLabel.Caption:=dlgPropNameColor; + OIMiscGroupBox.Caption:=dlgOIMiscellaneous; + OIDefaultItemHeightLabel.Caption:=dlgOIItemHeight; + OIShowHintCheckBox.Caption := lisShowHintsInObjectInspector; +end; + +procedure TEnvironmentOptionsDialog.WindowPositionsListBoxMouseUp( + Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: integer); +begin + SetWindowPositionsItem(WindowPositionsListBox.ItemIndex); +end; + +procedure TEnvironmentOptionsDialog.SetWindowPositionsItem(Index: integer); +begin + if WindowPositionsBox.Layout<>nil then + WindowPositionsBox.Save; + WindowPositionsListBox.ItemIndex:=Index; + case Index of + 0: WindowPositionsBox.Layout:=FLayouts.ItemByEnum(nmiwMainIDEName); + 1: WindowPositionsBox.Layout:=FLayouts.ItemByEnum(nmiwSourceNoteBookName); + 2: WindowPositionsBox.Layout:=FLayouts.ItemByEnum(nmiwMessagesViewName); + 3: WindowPositionsBox.Layout:=FLayouts.ItemByFormID(DefaultObjectInspectorName); + 4: WindowPositionsBox.Layout:=FLayouts.ItemByEnum(nmiwProjectInspector); + 5: WindowPositionsBox.Layout:=FLayouts.ItemByEnum(nmiwCodeExplorerName); + 6: WindowPositionsBox.Layout:=FLayouts.ItemByEnum(nmiwPkgGraphExplorer); + 7: WindowPositionsBox.Layout:=FLayouts.ItemByEnum(nmiwUnitDependenciesName); + 8: WindowPositionsBox.Layout:=FLayouts.ItemByEnum(nmiwLazDocName); + end; + if Index>=0 then + WindowPositionsBox.Caption:=WindowPositionsListBox.Items[Index]; +end; + +function TEnvironmentOptionsDialog.CheckLazarusDir: boolean; +var + NewLazarusDir: string; + StopChecking: boolean; +begin + NewLazarusDir:=LazarusDirComboBox.Text; + Result:=SimpleDirectoryCheck(FOldLazarusDir,NewLazarusDir, + lisEnvOptDlgLazarusDirNotFoundMsg,StopChecking); + if (not Result) or StopChecking then exit; + + // lazarus directory specific tests + NewLazarusDir:=AppendPathDelim(NewLazarusDir); + if not CheckLazarusDirectory(NewLazarusDir) + then begin + Result:=(MessageDlg(Format(lisEnvOptDlgInvalidLazarusDir,[NewLazarusDir]), + mtWarning,[mbIgnore,mbCancel],0)=mrIgnore); + exit; + end; + Result:=true; +end; + +function TEnvironmentOptionsDialog.IsFPCSourceDir: boolean; +var + NewFPCSrcDir: string; + StopChecking: boolean; +begin + NewFPCSrcDir:=FPCSourceDirComboBox.Text; + Result:=SimpleDirectoryCheck(FOldFPCSourceDir,NewFPCSrcDir, + lisEnvOptDlgFPCSrcDirNotFoundMsg,StopChecking); + if (not Result) or StopChecking then exit; + + // FPC source directory specific tests + if not CheckFPCSourceDir(NewFPCSrcDir) then begin + Result:=(MessageDlg(Format(lisEnvOptDlgInvalidFPCSrcDir,[NewFPCSrcDir]), + mtWarning,[mbIgnore,mbCancel],0)=mrIgnore); + exit; + end; + Result:=true; +end; + +function TEnvironmentOptionsDialog.CheckTestDir: boolean; +var + NewTestDir: string; + StopChecking: boolean; +begin + NewTestDir:=TestBuildDirComboBox.Text; + Result:=SimpleDirectoryCheck(FOldTestDir,NewTestDir, + lisEnvOptDlgTestDirNotFoundMsg,StopChecking); + if (not Result) or StopChecking then exit; +end; + +function TEnvironmentOptionsDialog.CheckValues: boolean; +begin + Result:=false; + // check lazarus directory + if not CheckLazarusDir then exit; + // check compiler filename + if not CheckExecutable(FOldCompilerFilename,CompilerPathComboBox.Text, + lisEnvOptDlgInvalidCompilerFilename,lisEnvOptDlgInvalidCompilerFilenameMsg) + then exit; + // check fpc source directory + if not IsFPCSourceDir then exit; + // check make filename + if not CheckExecutable(FOldMakeFilename,MakePathComboBox.Text, + lisEnvOptDlgInvalidMakeFilename,lisEnvOptDlgInvalidMakeFilenameMsg) + then exit; + // check test directory + if not CheckTestDir then exit; + + Result:=true; +end; + +initialization + {$I environmentopts_new.lrs} + +end. + diff --git a/ide/include/ide.inc b/ide/include/ide.inc index 9a3da73ea0..932e7af5a5 100644 --- a/ide/include/ide.inc +++ b/ide/include/ide.inc @@ -26,5 +26,9 @@ { $DEFINE IDE_DEBUG} +{$ifndef DisableNewDialogs} +{$define EnableNewDialogs} +{$endif} + // end. diff --git a/ide/lazarus.lpi b/ide/lazarus.lpi index 93519dc226..03e087004e 100644 --- a/ide/lazarus.lpi +++ b/ide/lazarus.lpi @@ -2,7 +2,7 @@ - + diff --git a/ide/main.pp b/ide/main.pp index 46a37ee6ab..b50241b2ee 100644 --- a/ide/main.pp +++ b/ide/main.pp @@ -83,6 +83,12 @@ uses AllIDEIntf, BaseIDEIntf, ObjectInspector, PropEdits, MacroIntf, IDECommands, SrcEditorIntf, NewItemIntf, IDEExternToolIntf, IDEMsgIntf, PackageIntf, ProjectIntf, MenuIntf, LazIDEIntf, IDEDialogs, + + {$ifdef EnableNewDialogs} + // some dialog units really need to get splitted up so structures and dialog + // are separated. To avoid conflicts the new units are declared first + ProjectOpts_new, CompilerOptionsDlg_new, EditorOptions_new, EnvironmentOpts_new, + {$endif} // protocol IDEProtocol, // compile @@ -251,6 +257,14 @@ type procedure mnuViewProjectSourceClicked(Sender: TObject); procedure mnuViewProjectTodosClicked(Sender: TObject); procedure mnuProjectOptionsClicked(Sender: TObject); + {$ifdef EnableNewDialogs} + procedure mnuProjectOptionsClicked_new(Sender: TObject); + {$endif} + procedure mnuProjectCompilerSettingsClicked(Sender: TObject); + {$ifdef EnableNewDialogs} + procedure mnuProjectCompilerSettingsClicked_new(Sender: TObject); + {$endif} + // run menu procedure mnuBuildProjectClicked(Sender: TObject); @@ -264,7 +278,6 @@ type procedure mnuRunToCursorProjectClicked(Sender: TObject); procedure mnuStopProjectClicked(Sender: TObject); procedure mnuRunParametersClicked(Sender: TObject); - procedure mnuProjectCompilerSettingsClicked(Sender: TObject); procedure mnuBuildFileClicked(Sender: TObject); procedure mnuRunFileClicked(Sender: TObject); procedure mnuConfigBuildFileClicked(Sender: TObject); @@ -290,7 +303,13 @@ type // environment menu procedure mnuEnvGeneralOptionsClicked(Sender: TObject); + {$ifdef EnableNewDialogs} + procedure mnuEnvGeneralOptionsClicked_new(Sender: TObject); + {$endif} procedure mnuEnvEditorOptionsClicked(Sender: TObject); + {$ifdef EnableNewDialogs} + procedure mnuEnvEditorOptionsClicked_new(Sender: TObject); + {$endif} procedure mnuEnvCodeTemplatesClicked(Sender: TObject); procedure mnuEnvCodeToolsOptionsClicked(Sender: TObject); procedure mnuEnvCodeToolsDefinesEditorClicked(Sender: TObject); @@ -2065,7 +2084,13 @@ begin itmProjectPublish.OnClick := @mnuPublishProjectClicked; itmProjectInspector.OnClick := @mnuProjectInspectorClicked; itmProjectOptions.OnClick := @mnuProjectOptionsClicked; + {$ifdef EnableNewDialogs} + itmProjectOptions_new.OnClick := @mnuProjectOptionsClicked_new; + {$endif} itmProjectCompilerOptions.OnClick := @mnuProjectCompilerSettingsClicked; + {$ifdef EnableNewDialogs} + itmProjectCompilerOptions_new.OnClick := @mnuEnvGeneralOptionsClicked_new; + {$endif} itmProjectAddTo.OnClick := @mnuAddToProjectClicked; itmProjectRemoveFrom.OnClick := @mnuRemoveFromProjectClicked; itmProjectViewSource.OnClick := @mnuViewProjectSourceClicked; @@ -2125,7 +2150,13 @@ begin inherited SetupEnvironmentMenu; with MainIDEBar do begin itmEnvGeneralOptions.OnClick := @mnuEnvGeneralOptionsClicked; + {$ifdef EnableNewDialogs} + itmEnvGeneralOptions_new.OnClick := @mnuEnvGeneralOptionsClicked_new; + {$endif} itmEnvEditorOptions.OnClick := @mnuEnvEditorOptionsClicked; + {$ifdef EnableNewDialogs} + itmEnvEditorOptions_new.OnClick := @mnuEnvEditorOptionsClicked_new; + {$endif} itmEnvCodeTemplates.OnClick := @mnuEnvCodeTemplatesClicked; itmEnvCodeToolsOptions.OnClick := @mnuEnvCodeToolsOptionsClicked; itmEnvCodeToolsDefinesEditor.OnClick := @mnuEnvCodeToolsDefinesEditorClicked; @@ -3252,6 +3283,19 @@ begin end; end; +{$ifdef EnableNewDialogs} +procedure TMainIDE.mnuProjectOptionsClicked_new(Sender: TObject); +var + ActiveSrcEdit: TSourceEditor; + ActiveUnitInfo: TUnitInfo; +begin + BeginCodeTool(ActiveSrcEdit, ActiveUnitInfo, []); + if projectopts_new.ShowProjectOptionsDialog(Project1)=mrOk then begin + + end; +end; +{$endif} + function TMainIDE.UpdateProjectPOFile(AProject: TProject): TModalResult; var Files: TStringList; @@ -3390,6 +3434,34 @@ begin end; end; +{$ifdef EnableNewDialogs} +procedure TMainIDE.mnuProjectCompilerSettingsClicked_new(Sender: TObject); +var + frmCompilerOptions: CompilerOptionsDlg_new.TfrmCompilerOptions; + NewCaption: String; +begin + frmCompilerOptions:=CompilerOptionsDlg_new.TfrmCompilerOptions.Create(nil); + try + NewCaption:=Project1.Title; + if NewCaption='' then + NewCaption:=ExtractFilenameOnly(Project1.ProjectInfoFile); + frmCompilerOptions.Caption:=Format(lisCompilerOptionsForProject, [NewCaption + ]); + frmCompilerOptions.CompilerOpts:=Project1.CompilerOptions; + frmCompilerOptions.GetCompilerOptions; + frmCompilerOptions.OnTest:=@OnCompilerOptionsDialogTest; + frmCompilerOptions.OnImExportCompilerOptions:=@OnCompilerOptionsImExport; + if frmCompilerOptions.ShowModal=mrOk then begin + MainBuildBoss.RescanCompilerDefines(true); + Project1.DefineTemplates.AllChanged; + IncreaseCompilerGraphStamp; + end; + finally + frmCompilerOptions.Free; + end; +end; +{$endif} + procedure TMainIDE.mnuBuildFileClicked(Sender: TObject); begin DoBuildFile; @@ -3635,6 +3707,113 @@ begin DoShowEnvGeneralOptions(eodpFiles); end; +{$ifdef EnableNewDialogs} +procedure TMainIDE.mnuEnvGeneralOptionsClicked_new(Sender: TObject); + // I really saw no way to add something temporary to show the temp new dialog + // so I copied the whole routine. This shouldn't be long here anyway (MWE) + +var + EnvironmentOptionsDialog: EnvironmentOpts_new.TEnvironmentOptionsDialog; + MacroValueChanged, FPCSrcDirChanged, FPCCompilerChanged: boolean; + OldCompilerFilename: string; + OldLanguage: String; + + procedure ChangeMacroValue(const MacroName, NewValue: string); + begin + with CodeToolBoss.GlobalValues do begin + if Variables[ExternalMacroStart+MacroName]=NewValue then exit; + FPCSrcDirChanged:=FPCSrcDirChanged or (Macroname='FPCSrcDir'); + Variables[ExternalMacroStart+MacroName]:=NewValue; + end; + MacroValueChanged:=true; + end; + + procedure UpdateDesigners; + var + AForm: TCustomForm; + AnUnitInfo: TUnitInfo; + ADesigner: TDesigner; + begin + AnUnitInfo:=Project1.FirstUnitWithComponent; + while AnUnitInfo<>nil do begin + if (AnUnitInfo.Component<>nil) + then begin + AForm:=FormEditor1.GetDesignerForm(AnUnitInfo.Component); + ADesigner:=TDesigner(AForm.Designer); + if ADesigner<>nil then begin + ADesigner.ShowEditorHints:=EnvironmentOptions.ShowEditorHints; + ADesigner.ShowComponentCaptionHints:= + EnvironmentOptions.ShowComponentCaptions; + end; + end; + AnUnitInfo:=AnUnitInfo.NextUnitWithComponent; + end; + InvalidateAllDesignerForms; + end; + + procedure UpdateObjectInspector; + begin + EnvironmentOptions.ObjectInspectorOptions.AssignTo(ObjectInspector1); + end; + +begin + EnvironmentOptionsDialog:=EnvironmentOpts_new.TEnvironmentOptionsDialog.Create(nil); + try + EnvironmentOptionsDialog.CategoryPage:=eodpFiles; + // update EnvironmentOptions (save current window positions) + SaveDesktopSettings(EnvironmentOptions); + with EnvironmentOptionsDialog do begin + OnLoadEnvironmentSettings:=@Self.OnLoadEnvironmentSettings; + OnSaveEnvironmentSettings:=@Self.OnSaveEnvironmentSettings; + // load settings from EnvironmentOptions to EnvironmentOptionsDialog + ReadSettings(EnvironmentOptions); + end; + if EnvironmentOptionsDialog.ShowModal=mrOk then begin + // invalidate cached substituted macros + IncreaseCompilerParseStamp; + + // load settings from EnvironmentOptionsDialog to EnvironmentOptions + OldCompilerFilename:=EnvironmentOptions.CompilerFilename; + OldLanguage:=EnvironmentOptions.LanguageID; + EnvironmentOptionsDialog.WriteSettings(EnvironmentOptions); + + UpdateDefaultPascalFileExtensions; + + //DebugLn(['TMainIDE.DoShowEnvGeneralOptions OldLanguage=',OldLanguage,' EnvironmentOptions.LanguageID=',EnvironmentOptions.LanguageID]); + if OldLanguage<>EnvironmentOptions.LanguageID then begin + TranslateResourceStrings(EnvironmentOptions.LazarusDirectory, + EnvironmentOptions.LanguageID); + PkgBoss.TranslateResourceStrings; + end; + + // set global variables + UpdateEnglishErrorMsgFilename; + MacroValueChanged:=false; + FPCSrcDirChanged:=false; + FPCCompilerChanged:= + OldCompilerFilename<>EnvironmentOptions.CompilerFilename; + ChangeMacroValue('LazarusDir',EnvironmentOptions.LazarusDirectory); + ChangeMacroValue('FPCSrcDir',EnvironmentOptions.FPCSourceDirectory); + + if MacroValueChanged then CodeToolBoss.DefineTree.ClearCache; + if FPCCompilerChanged or FPCSrcDirChanged then begin + MainBuildBoss.RescanCompilerDefines(false); + end; + + // save to disk + EnvironmentOptions.Save(false); + + // update environment + UpdateDesigners; + UpdateObjectInspector; + SetupHints; + end; + finally + EnvironmentOptionsDialog.Free; + end; +end; +{$endif} + //------------------------------------------------------------------------------ procedure TMainIDE.SaveDesktopSettings( @@ -3807,6 +3986,26 @@ Begin end; End; +{$ifdef EnableNewDialogs} +procedure TMainIDE.mnuEnvEditorOptionsClicked_new(Sender: TObject); +var + EditorOptionsForm: EditorOptions_new.TEditorOptionsForm; +begin + EditorOptionsForm:=EditorOptions_new.TEditorOptionsForm.Create(nil); + try + Project1.UpdateCustomHighlighter; + if EditorOptionsForm.ShowModal=mrOk + then begin + Project1.UpdateSyntaxHighlighter; + SourceNotebook.ReloadEditorOptions; + ReloadMenuShortCuts; + end; + finally + EditorOptionsForm.Free; + end; +end; +{$endif} + procedure TMainIDE.mnuEnvCodeTemplatesClicked(Sender: TObject); begin if ShowCodeTemplateDialog=mrOk then diff --git a/ide/mainbar.pas b/ide/mainbar.pas index 5db90e9538..af793ec890 100644 --- a/ide/mainbar.pas +++ b/ide/mainbar.pas @@ -217,7 +217,13 @@ type //itmProjectWindowSection: TIDEMenuSection; itmProjectInspector: TIDEMenuCommand; itmProjectOptions: TIDEMenuCommand; + {$ifdef EnableNewDialogs} + itmProjectOptions_new: TIDEMenuCommand; + {$endif} itmProjectCompilerOptions: TIDEMenuCommand; + {$ifdef EnableNewDialogs} + itmProjectCompilerOptions_new: TIDEMenuCommand; + {$endif} itmProjectViewToDos: TIDEMenuCommand; //itmProjectAddRemoveSection: TIDEMenuSection; itmProjectAddTo: TIDEMenuCommand; @@ -292,7 +298,13 @@ type //mnuEnvironment: TIDEMenuSection; //itmOptionsDialogs: TIDEMenuSection; itmEnvGeneralOptions: TIDEMenuCommand; + {$ifdef EnableNewDialogs} + itmEnvGeneralOptions_new: TIDEMenuCommand; + {$endif} itmEnvEditorOptions: TIDEMenuCommand; + {$ifdef EnableNewDialogs} + itmEnvEditorOptions_new: TIDEMenuCommand; + {$endif} itmEnvCodeTemplates: TIDEMenuCommand; itmEnvDebuggerOptions: TIDEMenuCommand; itmEnvCodeToolsOptions: TIDEMenuCommand; diff --git a/ide/mainbase.pas b/ide/mainbase.pas index 56078a1c2b..1e9e225c9b 100644 --- a/ide/mainbase.pas +++ b/ide/mainbase.pas @@ -572,7 +572,13 @@ begin CreateMenuItem(ParentMI,itmProjectInspector,'itmProjectInspector',lisMenuProjectInspector,'menu_project_inspector'); CreateMenuItem(ParentMI,itmProjectOptions,'itmProjectOptions',lisMenuProjectOptions,'menu_project_options'); + {$ifdef EnableNewDialogs} + CreateMenuItem(ParentMI,itmProjectOptions_new,'itmProjectOptions_new',lisMenuProjectOptions+' (new)','menu_project_options'); + {$endif} CreateMenuItem(ParentMI,itmProjectCompilerOptions,'itmProjectCompilerOptions',lisMenuCompilerOptions,'menu_compiler_options'); + {$ifdef EnableNewDialogs} + CreateMenuItem(ParentMI,itmProjectCompilerOptions_new,'itmProjectCompilerOptions_new',lisMenuCompilerOptions+' (new)','menu_compiler_options'); + {$endif} CreateMenuItem(ParentMI,itmProjectViewToDos,'itmProjectViewToDos',lisMenuViewProjectTodos, 'menu_project_todo'); CreateMenuSeparatorSection(mnuProject,itmProjectAddRemoveSection,'itmProjectAddRemoveSection'); @@ -708,8 +714,16 @@ begin CreateMenuItem(ParentMI,itmEnvGeneralOptions,'itmEnvGeneralOptions', lisMenuGeneralOptions,'menu_environment_options'); + {$ifdef EnableNewDialogs} + CreateMenuItem(ParentMI,itmEnvGeneralOptions_new,'itmEnvGeneralOptions_new', + lisMenuGeneralOptions+' (new)','menu_environment_options'); + {$endif} CreateMenuItem(ParentMI,itmEnvEditorOptions,'itmEnvEditorOptions', lisMenuEditorOptions,'menu_editor_options'); + {$ifdef EnableNewDialogs} + CreateMenuItem(ParentMI,itmEnvEditorOptions_new,'itmEnvEditorOptions_new', + lisMenuEditorOptions+' (new)','menu_editor_options'); + {$endif} CreateMenuItem(ParentMI,itmEnvCodeTemplates,'itmEnvCodeTemplates', lisMenuEditCodeTemplates,''); CreateMenuItem(ParentMI,itmEnvDebuggerOptions,'itmEnvDebuggerOptions', diff --git a/ide/optionseditorbase.lfm b/ide/optionseditorbase.lfm new file mode 100644 index 0000000000..16d8c3eafa --- /dev/null +++ b/ide/optionseditorbase.lfm @@ -0,0 +1,217 @@ +object OptionsEditorForm: TOptionsEditorForm + Left = 487 + Height = 571 + Top = 317 + Width = 668 + HorzScrollBar.Page = 667 + VertScrollBar.Page = 570 + ActiveControl = btnCancel + Caption = 'OptionsEditorForm' + ClientHeight = 571 + ClientWidth = 668 + Constraints.MinHeight = 500 + Constraints.MinWidth = 500 + OnActivate = FormActivate + object BottomPanel: TPanel + Height = 50 + Top = 521 + Width = 668 + Align = alBottom + BevelOuter = bvNone + ClientHeight = 50 + ClientWidth = 668 + Constraints.MinWidth = 500 + TabOrder = 0 + object OKCancelPanel: TPanel + Left = 481 + Height = 50 + Width = 187 + Align = alRight + BevelOuter = bvNone + ClientHeight = 50 + ClientWidth = 187 + TabOrder = 0 + object btnCancel: TBitBtn + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Side = asrBottom + Left = 96 + Height = 26 + Top = 13 + Width = 75 + AutoSize = True + BorderSpacing.Around = 6 + Cancel = True + Caption = 'Cancel' + Constraints.MinHeight = 25 + Constraints.MinWidth = 75 + Kind = bkCancel + ModalResult = 2 + NumGlyphs = 0 + OnClick = btnCancelClick + TabOrder = 0 + end + object btnOK: TBitBtn + AnchorSideBottom.Side = asrBottom + Left = 8 + Height = 28 + Top = 13 + Width = 75 + AutoSize = True + BorderSpacing.Around = 6 + Caption = '&OK' + Constraints.MinHeight = 25 + Constraints.MinWidth = 75 + Kind = bkOK + NumGlyphs = 0 + OnClick = btnOKClick + TabOrder = 1 + end + end + object HelpButton: TBitBtn + AnchorSideBottom.Side = asrBottom + Left = 16 + Height = 28 + Top = 14 + Width = 75 + AutoSize = True + BorderSpacing.Around = 6 + Caption = '&Help' + Constraints.MinHeight = 25 + Constraints.MinWidth = 75 + Kind = bkHelp + NumGlyphs = 0 + OnClick = HelpButtonClick + TabOrder = 1 + end + end + object CategoriesPanel: TPanel + Height = 40 + Width = 668 + Align = alTop + BevelOuter = bvNone + ClientHeight = 40 + ClientWidth = 668 + Color = clBtnShadow + Font.Color = clMenuText + ParentColor = False + TabOrder = 1 + object SectionTitleLabel: TLabel + Height = 40 + Width = 224 + Align = alLeft + Caption = 'SectionTitleLabel' + Font.Color = clInactiveBorder + Font.Height = -27 + Font.Style = [fsBold] + Layout = tlCenter + ParentColor = False + end + object SearchLabel: TLabel + Left = 344 + Height = 22 + Top = 8 + Width = 93 + Alignment = taRightJustify + Anchors = [akTop, akRight] + AutoSize = False + Caption = '&Search:' + Layout = tlCenter + ParentColor = False + OnClick = SearchLabelClick + end + object ClearFilterButton: TBitBtn + Left = 624 + Height = 23 + Top = 8 + Width = 37 + Anchors = [akTop, akRight] + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000064000000640000000000000000000000FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF003F3DED413B38EB08FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00211FE3081E1CE241FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF004A47F0414F4CF2FF403EEDFD3C39EB08FFFFFF00FFFFFF00FFFFFF00FFFF + FF002725E5082422E4FC312FEAFF1F1DE241FFFFFF00FFFFFF00FFFFFF005451 + F3415856F5FF6361FAFF5855F6FF413FEDFC3D3AEC08FFFFFF00FFFFFF00302D + E7082C2AE6FC413FF1FF4C4AF6FF312FEAFF1F1DE241FFFFFF00FFFFFF005956 + F52B5B58F6FF6562FAFF7170FFFF5956F6FF4240EEFC3E3BEC083937EB083532 + E9FC4745F2FF6362FFFF4A48F4FF2F2DE9FF2220E32BFFFFFF00FFFFFF00FFFF + FF005A57F52B5B59F6FF6663FAFF7471FFFF5A58F6FF4341EEFC3E3CECFD504D + F4FF6867FFFF504EF5FF3634EBFF2A27E52BFFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF005B58F62B5C5AF6FF6764FAFF7472FFFF7370FFFF706EFFFF6E6C + FFFF5755F7FF3F3DEEFF3230E82BFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF005C59F62B5D5BF7FF7976FFFF5956FFFF5754FFFF7270 + FFFF4846F0FF3C39EB2BFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00615EF8085D5AF6FD7D79FFFF5E5BFFFF5B58FFFF7674 + FFFF4643EFFD413FED08FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF006967FB086663F9FC706DFBFF807EFFFF7E7BFFFF7C79FFFF7977 + FFFF5E5CF7FF4744EFFC4240EE08FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00716EFD086E6BFCFC7774FDFF8682FFFF7673FCFF6462F8FF605DF7FF6D6A + FAFF7B79FFFF605DF7FF4845EFFC4341EE08FFFFFF00FFFFFF00FFFFFF007673 + FF087471FEFD7D7AFEFF8A87FFFF7C79FDFF6C69FBFF6361F92B5F5CF72B615E + F8FF6E6CFAFF7D7AFFFF615FF7FF4946F0FC4441EE05FFFFFF00FFFFFF007774 + FF1F7A77FFFF817EFFFF817EFEFF7471FDFF6C69FB2BFFFFFF00FFFFFF00605D + F72B625FF8FF6F6DFBFF7E7CFFFF625FF8FF4A47F06F4542EE02FFFFFF00FFFF + FF007774FF1F7A77FFFF7976FEFF726FFD2BFFFFFF00FFFFFF00FFFFFF00FFFF + FF00615EF82B6461F8FF6A68F9FF5451F3A84F4DF229FFFFFF00FFFFFF00FFFF + FF00FFFFFF007774FF1F7774FF2BFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00625FF82B5D5BF76F5956F53EFFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF006360F80AFFFFFF00FFFFFF00FFFFFF00 + } + NumGlyphs = 0 + OnClick = ClearFilterButtonClick + TabOrder = 0 + Visible = False + end + object FilterEdit: TEdit + Left = 441 + Height = 23 + Top = 7 + Width = 184 + Anchors = [akTop, akRight] + Font.Color = clGrayText + OnChange = FilterEditChange + OnEnter = FilterEditEnter + OnExit = FilterEditExit + TabOrder = 1 + Text = 'text to filter...' + end + end + object SectionsTreePanel: TPanel + Height = 481 + Top = 40 + Width = 150 + Align = alLeft + BevelOuter = bvNone + ClientHeight = 481 + ClientWidth = 150 + TabOrder = 2 + object SectionList: TListBox + Height = 481 + Width = 150 + Align = alClient + OnSelectionChange = SectionListSelectionChange + TabOrder = 0 + TopIndex = -1 + end + end + object MainSplitter: TSplitter + Left = 150 + Height = 481 + Top = 40 + Width = 5 + end + object OptionsAreaPanel: TPanel + Left = 155 + Height = 481 + Top = 40 + Width = 513 + Align = alClient + BevelOuter = bvNone + Font.Color = clCaptionText + TabOrder = 3 + end +end diff --git a/ide/optionseditorbase.lrs b/ide/optionseditorbase.lrs new file mode 100644 index 0000000000..22fa32bd67 --- /dev/null +++ b/ide/optionseditorbase.lrs @@ -0,0 +1,197 @@ +{ This is an automatically generated lazarus resource file } + +LazarusResources.Add('TOptionsEditorForm','FORMDATA',[ + 'TPF0'#18'TOptionsEditorForm'#17'OptionsEditorForm'#4'Left'#3#231#1#6'Height' + +#3';'#2#3'Top'#3'='#1#5'Width'#3#156#2#18'HorzScrollBar.Page'#3#155#2#18'Ver' + +'tScrollBar.Page'#3':'#2#13'ActiveControl'#7#9'btnCancel'#7'Caption'#6#17'Op' + +'tionsEditorForm'#12'ClientHeight'#3';'#2#11'ClientWidth'#3#156#2#21'Constra' + +'ints.MinHeight'#3#244#1#20'Constraints.MinWidth'#3#244#1#10'OnActivate'#7#12 + +'FormActivate'#0#6'TPanel'#11'BottomPanel'#6'Height'#2'2'#3'Top'#3#9#2#5'Wid' + +'th'#3#156#2#5'Align'#7#8'alBottom'#12'ClientHeight'#2'2'#11'ClientWidth'#3 + +#156#2#20'Constraints.MinWidth'#3#244#1#8'TabOrder'#2#0#0#6'TPanel'#13'OKCan' + +'celPanel'#4'Left'#3#224#1#6'Height'#2'0'#3'Top'#2#1#5'Width'#3#187#0#5'Alig' + +'n'#7#7'alRight'#10'BevelOuter'#7#6'bvNone'#12'ClientHeight'#2'0'#11'ClientW' + +'idth'#3#187#0#8'TabOrder'#2#0#0#7'TBitBtn'#9'btnCancel'#20'AnchorSideRight.' + +'Side'#7#9'asrBottom'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2'`'#6 + +'Height'#2#26#3'Top'#2#13#5'Width'#2'N'#8'AutoSize'#9#20'BorderSpacing.Aroun' + +'d'#2#6#6'Cancel'#9#7'Caption'#6#6'Cancel'#21'Constraints.MinHeight'#2#25#20 + +'Constraints.MinWidth'#2'K'#4'Kind'#7#8'bkCancel'#11'ModalResult'#2#2#9'NumG' + +'lyphs'#2#0#7'OnClick'#7#14'btnCancelClick'#8'TabOrder'#2#0#0#0#7'TBitBtn'#5 + +'btnOK'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#8#6'Height'#2#26#3 + +'Top'#2#13#5'Width'#2'K'#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#7'Captio' + +'n'#6#3'&OK'#21'Constraints.MinHeight'#2#25#20'Constraints.MinWidth'#2'K'#4 + +'Kind'#7#4'bkOK'#9'NumGlyphs'#2#0#7'OnClick'#7#10'btnOKClick'#8'TabOrder'#2#1 + +#0#0#0#7'TBitBtn'#10'HelpButton'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4 + +'Left'#2#16#6'Height'#2#26#3'Top'#2#14#5'Width'#2'K'#8'AutoSize'#9#20'Border' + +'Spacing.Around'#2#6#7'Caption'#6#5'&Help'#21'Constraints.MinHeight'#2#25#20 + +'Constraints.MinWidth'#2'K'#4'Kind'#7#6'bkHelp'#9'NumGlyphs'#2#0#7'OnClick'#7 + +#15'HelpButtonClick'#8'TabOrder'#2#1#0#0#0#6'TPanel'#15'CategoriesPanel'#6'H' + +'eight'#2'('#5'Width'#3#156#2#5'Align'#7#5'alTop'#12'ClientHeight'#2'('#11'C' + +'lientWidth'#3#156#2#5'Color'#7#11'clBtnShadow'#10'Font.Color'#7#10'clMenuTe' + +'xt'#11'ParentColor'#8#8'TabOrder'#2#1#0#6'TLabel'#17'SectionTitleLabel'#4'L' + +'eft'#2#1#6'Height'#2'&'#3'Top'#2#1#5'Width'#3#223#0#5'Align'#7#6'alLeft'#7 + +'Caption'#6#17'SectionTitleLabel'#10'Font.Color'#7#16'clInactiveBorder'#11'F' + +'ont.Height'#2#229#10'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8#0#0#6'TPa' + +'nel'#11'FilterPanel'#4'Left'#3#140#1#6'Height'#2'&'#3'Top'#2#1#5'Width'#3#15 + +#1#5'Align'#7#7'alRight'#10'BevelOuter'#7#6'bvNone'#12'ClientHeight'#2'&'#11 + +'ClientWidth'#3#15#1#8'TabOrder'#2#0#0#6'TLabel'#11'SearchLabel'#6'Height'#2 + +#21#3'Top'#2#14#5'Width'#3#15#1#8'AutoSize'#8#7'Caption'#6#8'&Search:'#10'Fo' + +'nt.Color'#7#16'clInactiveBorder'#11'ParentColor'#8#7'OnClick'#7#16'SearchLa' + +'belClick'#0#0#7'TBitBtn'#17'ClearFilterButton'#4'Left'#3#229#0#6'Height'#2 + +#23#3'Top'#2#7#5'Width'#2'%'#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0 + +#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0 + +'d'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 + +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 + +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 + +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'?='#237'A' + +';8'#235#8#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 + +#255#0#255#255#255#0'!'#31#227#8#30#28#226'A'#255#255#255#0#255#255#255#0#255 + +#255#255#0#255#255#255#0#255#255#255#0'JG'#240'AOL'#242#255'@>'#237#253'<9' + +#235#8#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'''%'#229#8'$"' + +#228#252'1/'#234#255#31#29#226'A'#255#255#255#0#255#255#255#0#255#255#255#0 + +'TQ'#243'AXV'#245#255'ca'#250#255'XU'#246#255'A?'#237#252'=:'#236#8#255#255 + +#255#0#255#255#255#0'0-'#231#8',*'#230#252'A?'#241#255'LJ'#246#255'1/'#234 + +#255#31#29#226'A'#255#255#255#0#255#255#255#0'YV'#245'+[X'#246#255'eb'#250 + +#255'qp'#255#255'YV'#246#255'B@'#238#252'>;'#236#8'97'#235#8'52'#233#252'GE' + +#242#255'cb'#255#255'JH'#244#255'/-'#233#255'" '#227'+'#255#255#255#0#255#255 + +#255#0#255#255#255#0'ZW'#245'+[Y'#246#255'fc'#250#255'tq'#255#255'ZX'#246#255 + +'CA'#238#252'><'#236#253'PM'#244#255'hg'#255#255'PN'#245#255'64'#235#255'*''' + +#229'+'#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 + +'[X'#246'+\Z'#246#255'gd'#250#255'tr'#255#255'sp'#255#255'pn'#255#255'nl'#255 + +#255'WU'#247#255'?='#238#255'20'#232'+'#255#255#255#0#255#255#255#0#255#255 + +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'\Y'#246'+][' + +#247#255'yv'#255#255'YV'#255#255'WT'#255#255'rp'#255#255'HF'#240#255'<9'#235 + +'+'#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 + +#255#255#0#255#255#255#0#255#255#255#0'a^'#248#8']Z'#246#253'}y'#255#255'^[' + +#255#255'[X'#255#255'vt'#255#255'FC'#239#253'A?'#237#8#255#255#255#0#255#255 + +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 + ,'ig'#251#8'fc'#249#252'pm'#251#255#128'~'#255#255'~{'#255#255'|y'#255#255'yw' + +#255#255'^\'#247#255'GD'#239#252'B@'#238#8#255#255#255#0#255#255#255#0#255 + +#255#255#0#255#255#255#0#255#255#255#0'qn'#253#8'nk'#252#252'wt'#253#255#134 + +#130#255#255'vs'#252#255'db'#248#255'`]'#247#255'mj'#250#255'{y'#255#255'`]' + +#247#255'HE'#239#252'CA'#238#8#255#255#255#0#255#255#255#0#255#255#255#0'vs' + +#255#8'tq'#254#253'}z'#254#255#138#135#255#255'|y'#253#255'li'#251#255'ca' + +#249'+_\'#247'+a^'#248#255'nl'#250#255'}z'#255#255'a_'#247#255'IF'#240#252'D' + +'A'#238#5#255#255#255#0#255#255#255#0'wt'#255#31'zw'#255#255#129'~'#255#255 + +#129'~'#254#255'tq'#253#255'li'#251'+'#255#255#255#0#255#255#255#0'`]'#247'+' + +'b_'#248#255'om'#251#255'~|'#255#255'b_'#248#255'JG'#240'oEB'#238#2#255#255 + +#255#0#255#255#255#0'wt'#255#31'zw'#255#255'yv'#254#255'ro'#253'+'#255#255 + +#255#0#255#255#255#0#255#255#255#0#255#255#255#0'a^'#248'+da'#248#255'jh'#249 + +#255'TQ'#243#168'OM'#242')'#255#255#255#0#255#255#255#0#255#255#255#0#255#255 + +#255#0'wt'#255#31'wt'#255'+'#255#255#255#0#255#255#255#0#255#255#255#0#255 + +#255#255#0#255#255#255#0#255#255#255#0'b_'#248'+]['#247'oYV'#245'>'#255#255 + +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 + +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 + +#255#255#0#255#255#255#0#255#255#255#0'c`'#248#10#255#255#255#0#255#255#255#0 + +#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#22'ClearFilterButtonClick'#8'Ta' + +'bOrder'#2#0#7'Visible'#8#0#0#5'TEdit'#10'FilterEdit'#4'Left'#2','#6'Height' + +#2#23#3'Top'#2#7#5'Width'#3#184#0#10'Font.Color'#7#10'clGrayText'#8'OnChange' + +#7#16'FilterEditChange'#7'OnEnter'#7#15'FilterEditEnter'#6'OnExit'#7#14'Filt' + +'erEditExit'#8'TabOrder'#2#1#4'Text'#6#17'text to filter...'#0#0#0#0#6'TPane' + +'l'#17'SectionsTreePanel'#6'Height'#3#225#1#3'Top'#2'('#5'Width'#3#150#0#5'A' + +'lign'#7#6'alLeft'#12'ClientHeight'#3#225#1#11'ClientWidth'#3#150#0#8'TabOrd' + +'er'#2#2#0#8'TListBox'#11'SectionList'#4'Left'#2#1#6'Height'#3#223#1#3'Top'#2 + +#1#5'Width'#3#148#0#5'Align'#7#8'alClient'#17'OnSelectionChange'#7#26'Sectio' + +'nListSelectionChange'#8'TabOrder'#2#0#0#0#0#9'TSplitter'#12'MainSplitter'#4 + +'Left'#3#150#0#6'Height'#3#225#1#3'Top'#2'('#5'Width'#2#5#0#0#6'TPanel'#16'O' + +'ptionsAreaPanel'#4'Left'#3#155#0#6'Height'#3#225#1#3'Top'#2'('#5'Width'#3#1 + +#2#5'Align'#7#8'alClient'#10'Font.Color'#7#13'clCaptionText'#8'TabOrder'#2#3 + +#0#0#0 +]); +LazarusResources.Add('TOptionsEditorForm','FORMDATA',[ + 'TPF0'#18'TOptionsEditorForm'#17'OptionsEditorForm'#4'Left'#3'T'#1#6'Height'#3 + +';'#2#3'Top'#3#216#0#5'Width'#3#156#2#18'HorzScrollBar.Page'#3#155#2#18'Vert' + +'ScrollBar.Page'#3':'#2#13'ActiveControl'#7#9'btnCancel'#7'Caption'#6#17'Opt' + +'ionsEditorForm'#12'ClientHeight'#3';'#2#11'ClientWidth'#3#156#2#21'Constrai' + +'nts.MinHeight'#3#244#1#20'Constraints.MinWidth'#3#244#1#10'OnActivate'#7#12 + +'FormActivate'#0#6'TPanel'#11'BottomPanel'#6'Height'#2'2'#3'Top'#3#9#2#5'Wid' + +'th'#3#156#2#5'Align'#7#8'alBottom'#12'ClientHeight'#2'2'#11'ClientWidth'#3 + +#156#2#20'Constraints.MinWidth'#3#244#1#8'TabOrder'#2#0#0#6'TPanel'#13'OKCan' + +'celPanel'#4'Left'#3#224#1#6'Height'#2'0'#3'Top'#2#1#5'Width'#3#187#0#5'Alig' + +'n'#7#7'alRight'#10'BevelOuter'#7#6'bvNone'#12'ClientHeight'#2'0'#11'ClientW' + +'idth'#3#187#0#8'TabOrder'#2#0#0#7'TBitBtn'#9'btnCancel'#20'AnchorSideRight.' + +'Side'#7#9'asrBottom'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2'`'#6 + +'Height'#2#28#3'Top'#2#13#5'Width'#2'P'#8'AutoSize'#9#20'BorderSpacing.Aroun' + +'d'#2#6#6'Cancel'#9#7'Caption'#6#6'Cancel'#21'Constraints.MinHeight'#2#25#20 + +'Constraints.MinWidth'#2'K'#4'Kind'#7#8'bkCancel'#11'ModalResult'#2#2#9'NumG' + +'lyphs'#2#0#7'OnClick'#7#14'btnCancelClick'#8'TabOrder'#2#0#0#0#7'TBitBtn'#5 + +'btnOK'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#8#6'Height'#2#28#3 + +'Top'#2#13#5'Width'#2'K'#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#7'Captio' + +'n'#6#3'&OK'#21'Constraints.MinHeight'#2#25#20'Constraints.MinWidth'#2'K'#4 + +'Kind'#7#4'bkOK'#9'NumGlyphs'#2#0#7'OnClick'#7#10'btnOKClick'#8'TabOrder'#2#1 + +#0#0#0#7'TBitBtn'#10'HelpButton'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4 + +'Left'#2#16#6'Height'#2#28#3'Top'#2#14#5'Width'#2'K'#8'AutoSize'#9#20'Border' + +'Spacing.Around'#2#6#7'Caption'#6#5'&Help'#21'Constraints.MinHeight'#2#25#20 + +'Constraints.MinWidth'#2'K'#4'Kind'#7#6'bkHelp'#9'NumGlyphs'#2#0#7'OnClick'#7 + +#15'HelpButtonClick'#8'TabOrder'#2#1#0#0#0#6'TPanel'#15'CategoriesPanel'#6'H' + +'eight'#2'('#5'Width'#3#156#2#5'Align'#7#5'alTop'#12'ClientHeight'#2'('#11'C' + +'lientWidth'#3#156#2#5'Color'#7#7'clBlack'#10'Font.Color'#4'lW'#134#0#11'Par' + +'entColor'#8#8'TabOrder'#2#1#0#6'TLabel'#17'SectionTitleLabel'#4'Left'#2#1#6 + +'Height'#2'&'#3'Top'#2#1#5'Width'#3#223#0#5'Align'#7#6'alLeft'#7'Caption'#6 + +#17'SectionTitleLabel'#10'Font.Color'#7#14'clActiveBorder'#11'Font.Height'#2 + +#229#10'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8#0#0#6'TPanel'#11'Filter' + +'Panel'#4'Left'#3#140#1#6'Height'#2'&'#3'Top'#2#1#5'Width'#3#15#1#5'Align'#7 + +#7'alRight'#10'BevelOuter'#7#6'bvNone'#12'ClientHeight'#2'&'#11'ClientWidth' + +#3#15#1#8'TabOrder'#2#0#0#6'TLabel'#11'SearchLabel'#6'Height'#2#21#3'Top'#2 + +#14#5'Width'#3#15#1#8'AutoSize'#8#7'Caption'#6#8'&Search:'#10'Font.Color'#7 + +#14'clActiveBorder'#11'ParentColor'#8#7'OnClick'#7#16'SearchLabelClick'#0#0#7 + +'TBitBtn'#17'ClearFilterButton'#4'Left'#3#229#0#6'Height'#2#23#3'Top'#2#7#5 + +'Width'#2'%'#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0 + +'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0 + +#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 + +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 + +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 + +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'?='#237'A;8'#235#8#255 + +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 + +#255#0'!'#31#227#8#30#28#226'A'#255#255#255#0#255#255#255#0#255#255#255#0#255 + +#255#255#0#255#255#255#0'JG'#240'AOL'#242#255'@>'#237#253'<9'#235#8#255#255 + +#255#0#255#255#255#0#255#255#255#0#255#255#255#0'''%'#229#8'$"'#228#252'1/' + +#234#255#31#29#226'A'#255#255#255#0#255#255#255#0#255#255#255#0'TQ'#243'AXV' + +#245#255'ca'#250#255'XU'#246#255'A?'#237#252'=:'#236#8#255#255#255#0#255#255 + +#255#0'0-'#231#8',*'#230#252'A?'#241#255'LJ'#246#255'1/'#234#255#31#29#226'A' + +#255#255#255#0#255#255#255#0'YV'#245'+[X'#246#255'eb'#250#255'qp'#255#255'YV' + +#246#255'B@'#238#252'>;'#236#8'97'#235#8'52'#233#252'GE'#242#255'cb'#255#255 + +'JH'#244#255'/-'#233#255'" '#227'+'#255#255#255#0#255#255#255#0#255#255#255#0 + +'ZW'#245'+[Y'#246#255'fc'#250#255'tq'#255#255'ZX'#246#255'CA'#238#252'><'#236 + +#253'PM'#244#255'hg'#255#255'PN'#245#255'64'#235#255'*'''#229'+'#255#255#255 + +#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'[X'#246'+\Z'#246 + +#255'gd'#250#255'tr'#255#255'sp'#255#255'pn'#255#255'nl'#255#255'WU'#247#255 + +'?='#238#255'20'#232'+'#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255 + +#0#255#255#255#0#255#255#255#0#255#255#255#0'\Y'#246'+]['#247#255'yv'#255#255 + +'YV'#255#255'WT'#255#255'rp'#255#255'HF'#240#255'<9'#235'+'#255#255#255#0#255 + +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 + +#255#0#255#255#255#0'a^'#248#8']Z'#246#253'}y'#255#255'^['#255#255'[X'#255 + +#255'vt'#255#255'FC'#239#253'A?'#237#8#255#255#255#0#255#255#255#0#255#255 + +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'ig'#251#8'fc' + ,#249#252'pm'#251#255#128'~'#255#255'~{'#255#255'|y'#255#255'yw'#255#255'^\' + +#247#255'GD'#239#252'B@'#238#8#255#255#255#0#255#255#255#0#255#255#255#0#255 + +#255#255#0#255#255#255#0'qn'#253#8'nk'#252#252'wt'#253#255#134#130#255#255'v' + +'s'#252#255'db'#248#255'`]'#247#255'mj'#250#255'{y'#255#255'`]'#247#255'HE' + +#239#252'CA'#238#8#255#255#255#0#255#255#255#0#255#255#255#0'vs'#255#8'tq' + +#254#253'}z'#254#255#138#135#255#255'|y'#253#255'li'#251#255'ca'#249'+_\'#247 + +'+a^'#248#255'nl'#250#255'}z'#255#255'a_'#247#255'IF'#240#252'DA'#238#5#255 + +#255#255#0#255#255#255#0'wt'#255#31'zw'#255#255#129'~'#255#255#129'~'#254#255 + +'tq'#253#255'li'#251'+'#255#255#255#0#255#255#255#0'`]'#247'+b_'#248#255'om' + +#251#255'~|'#255#255'b_'#248#255'JG'#240'oEB'#238#2#255#255#255#0#255#255#255 + +#0'wt'#255#31'zw'#255#255'yv'#254#255'ro'#253'+'#255#255#255#0#255#255#255#0 + +#255#255#255#0#255#255#255#0'a^'#248'+da'#248#255'jh'#249#255'TQ'#243#168'OM' + +#242')'#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'wt'#255#31'w' + +'t'#255'+'#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 + +#255#0#255#255#255#0'b_'#248'+]['#247'oYV'#245'>'#255#255#255#0#255#255#255#0 + +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 + +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 + +#255#0#255#255#255#0'c`'#248#10#255#255#255#0#255#255#255#0#255#255#255#0#9 + +'NumGlyphs'#2#0#7'OnClick'#7#22'ClearFilterButtonClick'#8'TabOrder'#2#0#7'Vi' + +'sible'#8#0#0#5'TEdit'#10'FilterEdit'#4'Left'#2','#6'Height'#2#23#3'Top'#2#7 + +#5'Width'#3#184#0#10'Font.Color'#7#10'clGrayText'#8'OnChange'#7#16'FilterEdi' + +'tChange'#7'OnEnter'#7#15'FilterEditEnter'#6'OnExit'#7#14'FilterEditExit'#8 + +'TabOrder'#2#1#4'Text'#6#17'text to filter...'#0#0#0#0#6'TPanel'#17'Sections' + +'TreePanel'#6'Height'#3#225#1#3'Top'#2'('#5'Width'#3#150#0#5'Align'#7#6'alLe' + +'ft'#12'ClientHeight'#3#225#1#11'ClientWidth'#3#150#0#8'TabOrder'#2#2#0#8'TL' + +'istBox'#11'SectionList'#4'Left'#2#1#6'Height'#3#223#1#3'Top'#2#1#5'Width'#3 + +#148#0#5'Align'#7#8'alClient'#17'OnSelectionChange'#7#26'SectionListSelectio' + +'nChange'#8'TabOrder'#2#0#0#0#0#9'TSplitter'#12'MainSplitter'#4'Left'#3#150#0 + +#6'Height'#3#225#1#3'Top'#2'('#5'Width'#2#5#0#0#6'TPanel'#16'OptionsAreaPane' + +'l'#4'Left'#3#155#0#6'Height'#3#225#1#3'Top'#2'('#5'Width'#3#1#2#5'Align'#7#8 + +'alClient'#10'Font.Color'#7#13'clCaptionText'#8'TabOrder'#2#3#0#0#0 +]); diff --git a/ide/optionseditorbase.pas b/ide/optionseditorbase.pas new file mode 100644 index 0000000000..8fd5e68dba --- /dev/null +++ b/ide/optionseditorbase.pas @@ -0,0 +1,466 @@ +unit OptionsEditorBase; + +{$mode objfpc}{$H+} + +interface + +uses + Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, + Buttons, ComCtrls, ExtCtrls; + +type + + { TStringIndexItem } + + TStringIndexItem = class + Name, Value: String; + Next: TStringIndexItem; + + constructor Create; + constructor Create(AName, AValue: string); + end; + + { TStringIndex } + TStringIndex = class + Last, First: TStringIndexItem; + + constructor Create; + destructor Destroy;override; + + procedure AddItem(ItemName, ItemValue: String); + procedure RemoveItem(ItemName: String); + function ItemHasValue(ItemName: String; SubStringValue: String): Boolean; + function ItemHasValues(Item: String; SubStringValues: TStrings): Boolean; + + procedure DebugOutFileWords(FileName: String); + end; + + { TOptionsEditorForm } + + TOptionsEditorForm = class(TForm) + btnCancel: TBitBtn; + btnOK: TBitBtn; + ClearFilterButton: TBitBtn; + FilterEdit: TEdit; + HelpButton: TBitBtn; + Label1: TLabel; + OptionsAreaPanel: TPanel; + SectionList: TListBox; + SectionsTreePanel: TPanel; + SectionTitleLabel: TLabel; + BottomPanel: TPanel; + OKCancelPanel: TPanel; + CategoriesPanel: TPanel; + MainSplitter: TSplitter; + procedure btnCancelClick(Sender: TObject); + procedure btnOKClick(Sender: TObject); + procedure ClearFilterButtonClick(Sender: TObject); + procedure FilterEditChange(Sender: TObject); + procedure FilterEditEnter(Sender: TObject); + procedure FilterEditExit(Sender: TObject); + procedure FormActivate(Sender: TObject); + procedure HelpButtonClick(Sender: TObject); + procedure SearchLabelClick(Sender: TObject); + procedure SectionListSelectionChange(Sender: TObject; User: boolean); + private + { private declarations } + FilterText: String; + + ItemList: TStringList; + IndexTexts: TStringIndex; + FilterWords: TStringList; + + FilterResult: TStringList; + + LastControl: TWinControl; + + UpdatePageFromSectionList: Boolean; + + procedure DoFilter; + + protected + procedure ScanControlTextsForIndex(ItemName: String; Item: TWinControl); + public + { public declarations } + function AddCategoryItem(ItemName: String; ParentItem: String; + Item: TPanel): Boolean; + + constructor Create(TheOwner: TComponent); override; + destructor Destroy; override; + procedure RecusiveControlsIndex(const Item: TWinControl; + const ItemName: String); + end; + +implementation + +uses + IDEContextHelpEdit; + +{ TOptionsEditorForm } + +procedure TOptionsEditorForm.RecusiveControlsIndex(const Item: TWinControl; const ItemName: String + ); +var + NewItem: TControl; + i: Integer; +begin + for i:= 0 to item.ControlCount-1 do + begin + NewItem:= item.Controls[i]; + if NewItem <> Nil then + begin + if NewItem is TButton then + begin + IndexTexts.AddItem(ItemName, (NewItem as TButton).Caption); + end + else + if NewItem is TCheckBox then + begin + IndexTexts.AddItem(ItemName, (NewItem as TCheckBox).Caption); + end + else + if NewItem is TRadioButton then + begin + IndexTexts.AddItem(ItemName, (NewItem as TRadioButton).Caption); + end + else + if NewItem is TLabel then + begin + IndexTexts.AddItem(ItemName, (NewItem as TLabel).Caption); + end + else + if NewItem is TEdit then + begin + IndexTexts.AddItem(ItemName, (NewItem as TEdit).Text); + end + else + if (NewItem is TPanel) + or (NewItem is TGroupBox) + or (NewItem is TRadioGroup) + then + RecusiveControlsIndex(NewItem as TWinControl, ItemName); + end; + end; +end; + +procedure TOptionsEditorForm.FilterEditChange(Sender: TObject); +begin + if FilterEdit.Text = 'text to filter...' then + begin + FilterText:= ''; + ClearFilterButton.Visible:= False; + end + else + begin + FilterText:= FilterEdit.Text; + FilterEdit.Font.Color:= clText; + ClearFilterButton.Visible:= (FilterText <> ''); + end; + DoFilter; +end; + +procedure TOptionsEditorForm.btnOKClick(Sender: TObject); +begin + +end; + +procedure TOptionsEditorForm.ClearFilterButtonClick(Sender: TObject); +begin + FilterEdit.Text:= ''; +end; + +procedure TOptionsEditorForm.btnCancelClick(Sender: TObject); +begin + Close; +end; + +procedure TOptionsEditorForm.FilterEditEnter(Sender: TObject); +begin + FilterEdit.Text:= FilterText; +end; + +procedure TOptionsEditorForm.FilterEditExit(Sender: TObject); +begin + if FilterText = '' then + begin + FilterEdit.Font.Color:= clGrayText; + FilterEdit.Text:= 'text to filter...'; + end; +end; + +procedure TOptionsEditorForm.FormActivate(Sender: TObject); +begin + DoFilter; +end; + +procedure TOptionsEditorForm.HelpButtonClick(Sender: TObject); +begin + ShowContextHelpForIDE(Self); +end; + +procedure TOptionsEditorForm.SearchLabelClick(Sender: TObject); +begin + FilterEdit.SetFocus; +end; + +procedure TOptionsEditorForm.SectionListSelectionChange(Sender: TObject; + User: boolean); +var + selIndex: Integer; +begin + if not UpdatePageFromSectionList then + begin + Exit; + end; + + selIndex:= SectionList.ItemIndex; + if selIndex = -1 then + Exit; + if LastControl <> Nil then + begin + LastControl.Visible:= false; + end; + LastControl:= SectionList.Items.Objects[selIndex] as TWinControl; + SectionTitleLabel.Caption:= SectionList.Items[selIndex]; + LastControl.Visible:=True; +end; + +procedure TOptionsEditorForm.DoFilter; +var + FilterTextCopy: String; + FirstWord: String; + I: Integer; + LastIndex, NewIndex: Integer; + LastText: String; +begin + //Create the list of filter words + FilterWords.Clear; + FilterTextCopy:= FilterText; + while FilterTextCopy <> '' do + begin + if Pos(' ', FilterTextCopy) = 0 then + begin + FilterWords.Add(FilterTextCopy); + FilterTextCopy:=''; + end + else + begin + FirstWord:= Copy(FilterTextCopy, 1, Pos(' ', FilterTextCopy) - 1); + if FirstWord <> '' then + FilterWords.Add(FirstWord); + Delete(FilterTextCopy, 1, Length(FirstWord) + 1); + end; + end; + LastIndex:= SectionList.ItemIndex; + if LastIndex <> -1 then + begin + LastText:= SectionList.Items[LastIndex]; + end + else + begin + LastText:= ''; + end; + SectionList.Items.Clear; + + for I:= 0 to ItemList.Count-1 do + begin + if IndexTexts.ItemHasValues(ItemList[i], FilterWords) then + SectionList.Items.AddObject(ItemList[i], ItemList.Objects[i]); + end; + UpdatePageFromSectionList:= False; + NewIndex :=SectionList.Items.IndexOf(LastText); + if NewIndex = -1 then + begin + if SectionList.Items.Count>0 then + begin + SectionList.ItemIndex:= 0; + end; + end; + UpdatePageFromSectionList:= True; +end; + +procedure TOptionsEditorForm.ScanControlTextsForIndex(ItemName: String; + Item: TWinControl); +begin + ItemList.AddObject(ItemName, Item); + + if ItemList.Count = 1 then + begin + Item.Visible:= True; + SectionTitleLabel.Caption:= ItemName; + end + else + begin + Item.Visible:= False; + end; + + //clear all texts for the current item name + IndexTexts.RemoveItem(ItemName); + + RecusiveControlsIndex(Item, ItemName); + IndexTexts.DebugOutFileWords('indexdata.txt'); + DoFilter; +end; + +function TOptionsEditorForm.AddCategoryItem(ItemName: String; + ParentItem: String; Item: TPanel): Boolean; +begin + Item.Parent:= OptionsAreaPanel; + Item.Align:= alClient; + Result:= True; +end; + +constructor TOptionsEditorForm.Create(TheOwner: TComponent); +begin + inherited Create(TheOwner); + LastControl:= nil; + IndexTexts:= TStringIndex.Create; + + ItemList:= TStringList.Create; + FilterResult:= TStringList.Create; + FilterWords:= TStringList.Create; +end; + +destructor TOptionsEditorForm.Destroy; +begin + IndexTexts.Free; + ItemList.Free; + FilterResult.Free; + FilterWords.Free; + inherited Destroy; +end; + +{ TStringIndex } + +constructor TStringIndex.Create; +begin + First:= nil; + Last:= nil; +end; + +destructor TStringIndex.Destroy; +var + Item, Next: TStringIndexItem; +begin + inherited; + Item:= First; + while Item <> Nil do + begin + Next:= Item.Next; + Item.Free; + Item:= Next; + end; +end; + +procedure TStringIndex.AddItem(ItemName, ItemValue: String); +begin + ItemValue:= UpperCase(ItemValue); + if First = Nil then + begin + Last:= TStringIndexItem.Create(ItemName, ItemValue); + First:= Last; + Exit; + end; + Last.Next:= TStringIndexItem.Create(ItemName, ItemValue); + Last:= Last.Next; +end; + +procedure TStringIndex.RemoveItem(ItemName: String); +var + ItemToRemove, AuxNode: TStringIndexItem; +begin + ItemToRemove:= First; + while ItemToRemove <> Nil do + begin + if ItemToRemove.Name = ItemName then + begin + AuxNode:= ItemToRemove.Next; + ItemToRemove.Free; + if ItemToRemove = First then + begin + First:= AuxNode; + end; + ItemToRemove:= AuxNode; + end + else + begin + ItemToRemove:= ItemToRemove.Next; + end; + end; +end; + +function TStringIndex.ItemHasValue(ItemName: String; SubStringValue: String + ): Boolean; +var + ItemToScan: TStringIndexItem; +begin + ItemToScan:= First; + SubStringValue:= UpperCase(SubStringValue); + while ItemToScan <> nil do + begin + if (ItemName = ItemToScan.Name) and (Pos(SubStringValue, ItemToScan.Value)<> 0) then + begin + Result:= True; + Exit; + end; + ItemToScan:= ItemToScan.Next; + end; + Result:= False; +end; + +function TStringIndex.ItemHasValues(Item: String; SubStringValues: TStrings + ): Boolean; +var + I: Integer; +begin + if SubStringValues.Count = 0 then + begin + Result:= True; + Exit; + end; + for I:= 0 to SubStringValues.Count-1 do + begin + if not ItemHasValue(Item, SubStringValues[i]) then + begin + result:= false; + Exit; + end; + end; + Result:= True; +end; + +procedure TStringIndex.DebugOutFileWords(FileName: String); +var + F: TextFile; + ItemToScan: TStringIndexItem; +begin + AssignFile(F, FileName); Rewrite(F); + ItemToScan:= First; + while ItemToScan <> Nil do + begin + Writeln(F, 'Item: ', ItemToScan.Name, ' Value: ', ItemToScan.Value); + ItemToScan:= ItemToScan.Next; + end; + CloseFile(F); +end; + +{ TStringIndexItem } + +constructor TStringIndexItem.Create; +begin + inherited; + Next:= nil; +end; + +constructor TStringIndexItem.Create(Aname, AValue: string); +begin + Create; + Name:= Aname; + Value:= AValue; +end; + +initialization + {$I optionseditorformunit.lrs} +end. + + diff --git a/ide/projectopts_new.lfm b/ide/projectopts_new.lfm new file mode 100644 index 0000000000..5039be9ee0 --- /dev/null +++ b/ide/projectopts_new.lfm @@ -0,0 +1,844 @@ +inherited ProjectOptionsDialog: TProjectOptionsDialog + Left = 262 + Height = 455 + Top = 209 + Width = 625 + HorzScrollBar.Page = 624 + VertScrollBar.Page = 454 + ActiveControl = TitleEdit + BorderIcons = [biSystemMenu] + Caption = 'ProjectOptionsDialog' + ClientHeight = 455 + ClientWidth = 625 + Constraints.MinHeight = 400 + Constraints.MinWidth = 400 + OnClose = ProjectOptionsClose + Position = poScreenCenter + inherited BottomPanel: TPanel + Top = 405 + Width = 625 + ClientWidth = 625 + TabOrder = 2 + inherited OKCancelPanel: TPanel + Left = 438 + inherited btnCancel: TBitBtn + Cancel = False + end + inherited btnOK: TBitBtn + end + end + inherited HelpButton: TBitBtn + end + end + inherited CategoriesPanel: TPanel + Width = 625 + ClientWidth = 625 + TabOrder = 3 + inherited SectionTitleLabel: TLabel + end + inherited SearchLabel: TLabel + Left = 304 + end + inherited ClearFilterButton: TBitBtn + Left = 584 + end + inherited FilterEdit: TEdit + Left = 401 + end + end + inherited SectionsTreePanel: TPanel + Height = 365 + ClientHeight = 365 + TabOrder = 0 + inherited SectionList: TListBox + Height = 365 + end + end + inherited MainSplitter: TSplitter + Height = 365 + end + inherited OptionsAreaPanel: TPanel + Height = 365 + Width = 470 + ClientHeight = 365 + ClientWidth = 470 + TabOrder = 1 + object Notebook: TNotebook + Height = 365 + Width = 470 + Align = alClient + PageIndex = 3 + ShowTabs = False + TabOrder = 0 + object ApplicationPage: TPage + Caption = 'ApplicationPage' + ClientWidth = 470 + ClientHeight = 365 + object AppSettingsGroupBox: TGroupBox + Left = 6 + Height = 124 + Top = 6 + Width = 458 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'AppSettingsGroupBox' + ClientHeight = 124 + ClientWidth = 458 + TabOrder = 0 + object TitleLabel: TLabel + Left = 6 + Height = 16 + Top = 6 + Width = 446 + Align = alTop + BorderSpacing.Left = 6 + BorderSpacing.Top = 6 + BorderSpacing.Right = 6 + Caption = 'TitleLabel' + ParentColor = False + end + object TitleEdit: TEdit + Left = 6 + Height = 23 + Top = 22 + Width = 446 + Align = alTop + BorderSpacing.Left = 6 + BorderSpacing.Right = 6 + TabOrder = 0 + Text = 'TitleEdit' + end + object UseAppBundleCheckBox: TCheckBox + Left = 6 + Height = 24 + Top = 52 + Width = 378 + Anchors = [akTop, akLeft, akRight] + AutoSize = False + Caption = 'UseAppBundleCheckBox' + TabOrder = 1 + end + object UseXPManifestCheckBox: TCheckBox + Left = 6 + Height = 24 + Top = 76 + Width = 378 + Anchors = [akTop, akLeft, akRight] + AutoSize = False + Caption = 'UseXPManifestCheckBox' + TabOrder = 2 + end + end + object OutputSettingsGroupBox: TGroupBox + Left = 6 + Height = 68 + Top = 136 + Width = 458 + Align = alTop + AutoSize = True + BorderSpacing.Around = 6 + Caption = 'OutputSettingsGroupBox' + ClientHeight = 68 + ClientWidth = 458 + TabOrder = 1 + object TargetFileLabel: TLabel + Left = 6 + Height = 13 + Top = 6 + Width = 446 + Align = alTop + BorderSpacing.Left = 6 + BorderSpacing.Top = 6 + BorderSpacing.Right = 6 + Caption = 'TargetFileLabel' + ParentColor = False + end + object TargetFileEdit: TEdit + Left = 6 + Height = 23 + Top = 19 + Width = 446 + Align = alTop + BorderSpacing.Left = 6 + BorderSpacing.Right = 6 + BorderSpacing.Bottom = 6 + TabOrder = 0 + Text = 'TargetFileEdit' + end + end + end + object FormsPage: TPage + Caption = 'FormsPage' + ClientWidth = 470 + ClientHeight = 365 + OnResize = FormsPageResize + object FormsAutoCreatedLabel: TLabel + Left = 36 + Height = 20 + Top = 10 + Width = 156 + Caption = 'FormsAutoCreatedLabel' + ParentColor = False + end + object FormsAvailFormsLabel: TLabel + AnchorSideLeft.Control = FormsAvailFormsListBox + Left = 266 + Height = 20 + Top = 10 + Width = 144 + Caption = 'FormsAvailFormsLabel' + ParentColor = False + end + object FormsAutoCreatedListBox: TListBox + AnchorSideLeft.Control = FormsMoveAutoCreatedFormUpBtn + AnchorSideLeft.Side = asrBottom + AnchorSideBottom.Control = FormsAutoCreateNewFormsCheckBox + Left = 36 + Height = 299 + Top = 32 + Width = 194 + Anchors = [akTop, akLeft, akBottom] + BorderSpacing.Around = 6 + MultiSelect = True + TabOrder = 0 + TopIndex = -1 + end + object FormsAvailFormsListBox: TListBox + AnchorSideLeft.Control = FormsAddToAutoCreatedFormsBtn + AnchorSideLeft.Side = asrBottom + AnchorSideRight.Control = FormsPage + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Control = FormsAutoCreateNewFormsCheckBox + Left = 266 + Height = 299 + Top = 32 + Width = 198 + Anchors = [akTop, akLeft, akRight, akBottom] + BorderSpacing.Around = 6 + MultiSelect = True + TabOrder = 1 + TopIndex = -1 + end + object FormsMoveAutoCreatedFormUpBtn: TArrow + Left = 6 + Height = 24 + Top = 32 + Width = 24 + ArrowType = atUp + OnClick = FormsMoveAutoCreatedFormUpBtnClick + end + object FormsMoveAutoCreatedFormsDownBtn: TArrow + Left = 6 + Height = 24 + Top = 60 + Width = 24 + ArrowType = atDown + OnClick = FormsMoveAutoCreatedFormDownBtnClick + end + object FormsRemoveFromAutoCreatedFormsBtn: TArrow + AnchorSideLeft.Control = FormsAutoCreatedListBox + AnchorSideLeft.Side = asrBottom + Left = 236 + Height = 24 + Top = 32 + Width = 24 + ArrowType = atRight + BorderSpacing.Around = 6 + OnClick = FormsRemoveFromAutoCreatedFormsBtnClick + end + object FormsAddToAutoCreatedFormsBtn: TArrow + AnchorSideLeft.Control = FormsRemoveFromAutoCreatedFormsBtn + Left = 236 + Height = 24 + Top = 60 + Width = 24 + OnClick = FormsAddToAutoCreatedFormsBtnClick + end + object FormsAutoCreateNewFormsCheckBox: TCheckBox + Left = 6 + Height = 22 + Top = 337 + Width = 458 + Align = alBottom + BorderSpacing.Around = 6 + Caption = 'FormsAutoCreateNewFormsCheckBox' + TabOrder = 2 + end + end + object MiscPage: TPage + Caption = 'MiscPage' + ClientWidth = 470 + ClientHeight = 365 + object MainUnitHasUsesSectionForAllUnitsCheckBox: TCheckBox + AnchorSideTop.Control = MainUnitIsPascalSourceCheckBox + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 22 + Top = 34 + Width = 458 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'MainUnitHasUsesSectionForAllUnitsCheckBox' + TabOrder = 0 + end + object MainUnitHasCreateFormStatementsCheckBox: TCheckBox + AnchorSideTop.Control = MainUnitHasUsesSectionForAllUnitsCheckBox + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 22 + Top = 62 + Width = 458 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'MainUnitHasCreateFormStatementsCheckBox' + TabOrder = 1 + end + object MainUnitIsPascalSourceCheckBox: TCheckBox + Left = 6 + Height = 22 + Top = 6 + Width = 458 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'MainUnitIsPascalSourceCheckBox' + TabOrder = 2 + end + object MainUnitHasTitleStatementCheckBox: TCheckBox + AnchorSideTop.Control = MainUnitHasCreateFormStatementsCheckBox + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 22 + Top = 90 + Width = 458 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'MainUnitHasTitleStatementCheckBox' + TabOrder = 5 + end + object RunnableCheckBox: TCheckBox + AnchorSideTop.Control = MainUnitHasTitleStatementCheckBox + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 22 + Top = 124 + Width = 458 + Align = alTop + BorderSpacing.Top = 6 + BorderSpacing.Around = 6 + Caption = 'RunnableCheckBox' + TabOrder = 3 + end + object AlwaysBuildCheckBox: TCheckBox + AnchorSideTop.Control = RunnableCheckBox + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 22 + Top = 152 + Width = 458 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'AlwaysBuildCheckBox' + TabOrder = 4 + end + end + object LazDocPage: TPage + Caption = 'LazDocPage' + ClientWidth = 470 + ClientHeight = 365 + object LazDocPathsGroupBox: TGroupBox + Left = 6 + Height = 198 + Top = 6 + Width = 458 + Align = alTop + AutoSize = True + BorderSpacing.Around = 6 + Caption = 'LazDocPathsGroupBox' + ClientHeight = 181 + ClientWidth = 454 + TabOrder = 0 + object LazDocListBox: TListBox + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 108 + Top = 6 + Width = 442 + Align = alTop + BorderSpacing.Around = 6 + TabOrder = 0 + TopIndex = -1 + end + object LazDocAddPathButton: TButton + AnchorSideLeft.Control = LazDocPathsGroupBox + AnchorSideTop.Control = LazDocListBox + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 26 + Top = 120 + Width = 132 + AutoSize = True + BorderSpacing.Around = 6 + Caption = 'LazDocAddPathButton' + OnClick = LazDocAddPathButtonClick + TabOrder = 1 + end + object LazDocDeletePathButton: TButton + AnchorSideLeft.Control = LazDocAddPathButton + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = LazDocListBox + AnchorSideTop.Side = asrBottom + Left = 144 + Height = 26 + Top = 120 + Width = 145 + AutoSize = True + BorderSpacing.Around = 6 + Caption = 'LazDocDeletePathButton' + OnClick = LazDocDeletePathButtonClick + TabOrder = 2 + end + object LazDocPathEdit: TEdit + AnchorSideLeft.Control = LazDocPathsGroupBox + AnchorSideTop.Control = LazDocAddPathButton + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = LazDocBrowseButton + Left = 6 + Height = 23 + Top = 152 + Width = 412 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Around = 6 + TabOrder = 3 + Text = 'LazDocPathEdit' + end + object LazDocBrowseButton: TButton + AnchorSideTop.Control = LazDocAddPathButton + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = LazDocPathsGroupBox + AnchorSideRight.Side = asrBottom + Left = 424 + Height = 23 + Top = 152 + Width = 24 + Anchors = [akTop, akRight] + BorderSpacing.Around = 6 + Caption = '...' + OnClick = LazDocBrowseButtonClick + TabOrder = 4 + end + end + end + object SavePage: TPage + Caption = 'SavePage' + ClientWidth = 470 + ClientHeight = 365 + object SaveClosedUnitInfoCheckBox: TCheckBox + Left = 6 + Height = 22 + Top = 6 + Width = 458 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'SaveClosedUnitInfoCheckBox' + TabOrder = 0 + end + object SaveOnlyProjectUnitInfoCheckBox: TCheckBox + AnchorSideTop.Control = SaveClosedUnitInfoCheckBox + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 22 + Top = 34 + Width = 458 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'SaveOnlyProjectUnitInfoCheckBox' + TabOrder = 1 + end + object SaveSessionLocationRadioGroup: TRadioGroup + AnchorSideTop.Control = SaveOnlyProjectUnitInfoCheckBox + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = SavePage + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 117 + Top = 68 + Width = 458 + Align = alTop + AutoFill = True + BorderSpacing.Top = 6 + BorderSpacing.Around = 6 + Caption = 'SaveSessionLocationRadioGroup' + ChildSizing.LeftRightSpacing = 6 + ChildSizing.TopBottomSpacing = 6 + ChildSizing.EnlargeHorizontal = crsHomogenousChildResize + ChildSizing.EnlargeVertical = crsHomogenousChildResize + ChildSizing.ShrinkHorizontal = crsScaleChilds + ChildSizing.ShrinkVertical = crsScaleChilds + ChildSizing.Layout = cclLeftToRightThenTopToBottom + ChildSizing.ControlsPerLine = 1 + TabOrder = 2 + end + end + object VersionInfoPage: TPage + Caption = 'VersionInfoPage' + ClientWidth = 470 + ClientHeight = 365 + object VersionInfoGroupBox: TGroupBox + AnchorSideLeft.Control = LanguageSettingsGroupBox + AnchorSideTop.Side = asrBottom + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 105 + Top = 33 + Width = 458 + Align = alTop + AutoSize = True + BorderSpacing.Around = 6 + Caption = 'Version Numbering' + ClientHeight = 105 + ClientWidth = 458 + TabOrder = 0 + object VersionLabel: TLabel + AnchorSideLeft.Control = VersionInfoGroupBox + AnchorSideTop.Control = VersionInfoGroupBox + Left = 6 + Height = 16 + Top = 6 + Width = 43 + BorderSpacing.Around = 6 + Caption = 'Version:' + ParentColor = False + end + object MajorRevisionLabel: TLabel + AnchorSideLeft.Control = VersionSpinEdit + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = VersionInfoGroupBox + Left = 106 + Height = 16 + Top = 6 + Width = 82 + BorderSpacing.Left = 24 + BorderSpacing.Around = 6 + Caption = 'Major Revision:' + ParentColor = False + end + object MinorRevisionLabel: TLabel + AnchorSideLeft.Control = MajorRevisionSpinEdit + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = VersionInfoGroupBox + Left = 206 + Height = 16 + Top = 6 + Width = 83 + BorderSpacing.Left = 24 + BorderSpacing.Around = 6 + Caption = 'Minor Revision:' + ParentColor = False + end + object BuildLabel: TLabel + AnchorSideLeft.Control = MinorRevisionSpinEdit + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = VersionInfoGroupBox + Left = 306 + Height = 16 + Top = 6 + Width = 31 + BorderSpacing.Left = 24 + BorderSpacing.Around = 6 + Caption = 'Build:' + ParentColor = False + end + object BuildEdit: TEdit + AnchorSideLeft.Control = BuildLabel + AnchorSideTop.Control = BuildLabel + AnchorSideTop.Side = asrBottom + Left = 306 + Height = 20 + Top = 28 + Width = 70 + TabOrder = 0 + Text = '0' + end + object VersionSpinEdit: TSpinEdit + AnchorSideLeft.Control = VersionLabel + AnchorSideTop.Control = VersionLabel + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 20 + Top = 28 + Width = 70 + TabOrder = 1 + end + object MajorRevisionSpinEdit: TSpinEdit + AnchorSideLeft.Control = MajorRevisionLabel + AnchorSideTop.Control = MajorRevisionLabel + AnchorSideTop.Side = asrBottom + Left = 106 + Height = 20 + Top = 28 + Width = 70 + TabOrder = 2 + end + object MinorRevisionSpinEdit: TSpinEdit + AnchorSideLeft.Control = MinorRevisionLabel + AnchorSideTop.Control = MinorRevisionLabel + AnchorSideTop.Side = asrBottom + Left = 206 + Height = 20 + Top = 28 + Width = 70 + TabOrder = 3 + end + object AutomaticallyIncreaseBuildCheckBox: TCheckBox + AnchorSideLeft.Control = VersionInfoGroupBox + AnchorSideTop.Control = VersionSpinEdit + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 21 + Top = 60 + Width = 159 + BorderSpacing.Top = 6 + BorderSpacing.Around = 6 + Caption = 'Automatically increase Build' + Enabled = False + TabOrder = 4 + end + end + object UseVersionInfoCheckBox: TCheckBox + Left = 6 + Height = 21 + Top = 6 + Width = 458 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'Include Version Info in executable' + OnChange = UseVersionInfoCheckBoxChange + TabOrder = 1 + end + object LanguageSettingsGroupBox: TGroupBox + AnchorSideTop.Side = asrBottom + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 67 + Top = 144 + Width = 458 + Align = alTop + AutoSize = True + BorderSpacing.Around = 6 + Caption = 'Language Options' + ClientHeight = 67 + ClientWidth = 458 + TabOrder = 2 + object LanguageSelectionLabel: TLabel + AnchorSideLeft.Control = LanguageSettingsGroupBox + AnchorSideTop.Control = LanguageSettingsGroupBox + Left = 6 + Height = 16 + Top = 6 + Width = 107 + BorderSpacing.Around = 6 + Caption = 'Language Selection:' + ParentColor = False + end + object CharacterSetLabel: TLabel + AnchorSideLeft.Control = LanguageSelectionComboBox + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = LanguageSettingsGroupBox + Left = 260 + Height = 16 + Top = 6 + Width = 74 + BorderSpacing.Around = 6 + Caption = 'Character Set:' + ParentColor = False + end + object LanguageSelectionComboBox: TComboBox + AnchorSideLeft.Control = LanguageSelectionLabel + AnchorSideTop.Control = LanguageSelectionLabel + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 21 + Top = 28 + Width = 248 + AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] + BorderSpacing.Top = 2 + MaxLength = 0 + TabOrder = 0 + Text = 'U.S. English' + end + object CharacterSetComboBox: TComboBox + AnchorSideLeft.Control = CharacterSetLabel + AnchorSideTop.Control = LanguageSelectionComboBox + AnchorSideRight.Control = LanguageSettingsGroupBox + AnchorSideRight.Side = asrBottom + Left = 260 + Height = 21 + Top = 28 + Width = 192 + Anchors = [akTop, akLeft, akRight] + AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] + BorderSpacing.Right = 6 + MaxLength = 0 + TabOrder = 1 + Text = 'Multilingual' + end + end + object OtherInfoGroupBox: TGroupBox + AnchorSideTop.Side = asrBottom + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 101 + Top = 217 + Width = 458 + Align = alTop + AutoSize = True + BorderSpacing.Around = 6 + Caption = 'Other Info' + ClientHeight = 101 + ClientWidth = 458 + TabOrder = 3 + object DescriptionLabel: TLabel + AnchorSideTop.Control = DescriptionEdit + AnchorSideTop.Side = asrCenter + Height = 16 + Top = 2 + Width = 64 + Caption = 'Description:' + ParentColor = False + end + object CopyrightLabel: TLabel + AnchorSideTop.Control = CopyrightEdit + AnchorSideTop.Side = asrCenter + Height = 16 + Top = 29 + Width = 57 + Caption = 'Copyright:' + ParentColor = False + end + object DescriptionEdit: TEdit + AnchorSideLeft.Control = DescriptionLabel + AnchorSideLeft.Side = asrBottom + AnchorSideRight.Control = OtherInfoGroupBox + AnchorSideRight.Side = asrBottom + Left = 70 + Height = 21 + Width = 382 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Left = 6 + BorderSpacing.Right = 6 + TabOrder = 0 + end + object CopyrightEdit: TEdit + AnchorSideLeft.Control = DescriptionEdit + AnchorSideTop.Control = DescriptionEdit + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = OtherInfoGroupBox + AnchorSideRight.Side = asrBottom + Left = 70 + Height = 21 + Top = 27 + Width = 382 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Top = 6 + BorderSpacing.Right = 6 + TabOrder = 1 + end + object AdditionalInfoButton: TButton + AnchorSideTop.Control = CopyrightEdit + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = OtherInfoGroupBox + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Side = asrBottom + Left = 359 + Height = 23 + Top = 54 + Width = 93 + Anchors = [akTop, akRight] + AutoSize = True + BorderSpacing.Around = 6 + Caption = 'Additional Info' + OnClick = AdditionalInfoButtonClick + TabOrder = 2 + end + end + end + object i18nPage: TPage + Caption = 'i18n' + ClientWidth = 470 + ClientHeight = 365 + object I18NGroupBox: TGroupBox + AnchorSideLeft.Control = OtherInfoGroupBox + AnchorSideTop.Control = VersionInfoGroupBox + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = OtherInfoGroupBox + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 74 + Top = 34 + Width = 458 + Align = alTop + AutoSize = True + BorderSpacing.Around = 6 + Caption = 'i18n Options' + ClientHeight = 74 + ClientWidth = 458 + TabOrder = 0 + object PoOutDirLabel: TLabel + Height = 20 + Width = 132 + BorderSpacing.Around = 6 + Caption = 'PO Output Directory:' + ParentColor = False + end + object POOutDirEdit: TEdit + AnchorSideLeft.Control = I18NGroupBox + AnchorSideTop.Control = PoOutDirLabel + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = POOutDirButton + Left = 6 + Height = 23 + Top = 26 + Width = 416 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Around = 6 + TabOrder = 0 + Text = 'POOutDirEdit' + end + object POOutDirButton: TButton + AnchorSideTop.Control = PoOutDirLabel + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = I18NGroupBox + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Side = asrBottom + Left = 428 + Height = 23 + Top = 26 + Width = 24 + Anchors = [akTop, akRight] + BorderSpacing.Around = 6 + Caption = '...' + OnClick = POOutDirButtonClick + TabOrder = 1 + end + end + object EnableI18NCheckBox: TCheckBox + Left = 6 + Height = 22 + Top = 6 + Width = 458 + Align = alTop + BorderSpacing.Around = 6 + Caption = 'Enable i18n' + OnChange = EnableI18NCheckBoxChange + TabOrder = 1 + end + end + end + end + object SelectDirectoryDialog: TSelectDirectoryDialog + Title = 'Select Directory' + FilterIndex = 0 + left = 88 + top = 368 + end +end diff --git a/ide/projectopts_new.lrs b/ide/projectopts_new.lrs new file mode 100644 index 0000000000..5a2324528f --- /dev/null +++ b/ide/projectopts_new.lrs @@ -0,0 +1,280 @@ +{ This is an automatically generated lazarus resource file } + +LazarusResources.Add('TProjectOptionsDialog','FORMDATA',[ + 'TPF0'#241#21'TProjectOptionsDialog'#20'ProjectOptionsDialog'#4'Left'#3#6#1#6 + +'Height'#3#199#1#3'Top'#3#209#0#5'Width'#3'q'#2#18'HorzScrollBar.Page'#3'p'#2 + +#18'VertScrollBar.Page'#3#198#1#13'ActiveControl'#7#9'TitleEdit'#11'BorderIc' + +'ons'#11#12'biSystemMenu'#0#7'Caption'#6#20'ProjectOptionsDialog'#12'ClientH' + +'eight'#3#199#1#11'ClientWidth'#3'q'#2#21'Constraints.MinHeight'#3#144#1#20 + +'Constraints.MinWidth'#3#144#1#7'OnClose'#7#19'ProjectOptionsClose'#8'Positi' + +'on'#7#14'poScreenCenter'#0#241#6'TPanel'#11'BottomPanel'#3'Top'#3#149#1#5'W' + +'idth'#3'q'#2#11'ClientWidth'#3'q'#2#8'TabOrder'#2#2#0#241#6'TPanel'#13'OKCa' + +'ncelPanel'#4'Left'#3#182#1#0#241#7'TBitBtn'#9'btnCancel'#6'Cancel'#8#0#0#241 + +#7'TBitBtn'#5'btnOK'#0#0#0#241#7'TBitBtn'#10'HelpButton'#0#0#0#241#6'TPanel' + +#15'CategoriesPanel'#5'Width'#3'q'#2#11'ClientWidth'#3'q'#2#8'TabOrder'#2#3#0 + +#241#6'TLabel'#17'SectionTitleLabel'#0#0#241#6'TLabel'#11'SearchLabel'#4'Lef' + +'t'#3'0'#1#0#0#241#7'TBitBtn'#17'ClearFilterButton'#4'Left'#3'H'#2#0#0#241#5 + +'TEdit'#10'FilterEdit'#4'Left'#3#145#1#0#0#0#241#6'TPanel'#17'SectionsTreePa' + +'nel'#6'Height'#3'm'#1#12'ClientHeight'#3'm'#1#8'TabOrder'#2#0#0#241#8'TList' + +'Box'#11'SectionList'#6'Height'#3'm'#1#0#0#0#241#9'TSplitter'#12'MainSplitte' + +'r'#6'Height'#3'm'#1#0#0#241#6'TPanel'#16'OptionsAreaPanel'#6'Height'#3'm'#1 + +#5'Width'#3#214#1#12'ClientHeight'#3'm'#1#11'ClientWidth'#3#214#1#8'TabOrder' + +#2#1#0#9'TNotebook'#8'Notebook'#6'Height'#3'm'#1#5'Width'#3#214#1#5'Align'#7 + +#8'alClient'#9'PageIndex'#2#3#8'ShowTabs'#8#8'TabOrder'#2#0#0#5'TPage'#15'Ap' + +'plicationPage'#7'Caption'#6#15'ApplicationPage'#11'ClientWidth'#3#214#1#12 + +'ClientHeight'#3'm'#1#0#9'TGroupBox'#19'AppSettingsGroupBox'#4'Left'#2#6#6'H' + +'eight'#2'|'#3'Top'#2#6#5'Width'#3#202#1#5'Align'#7#5'alTop'#20'BorderSpacin' + +'g.Around'#2#6#7'Caption'#6#19'AppSettingsGroupBox'#12'ClientHeight'#2'|'#11 + +'ClientWidth'#3#202#1#8'TabOrder'#2#0#0#6'TLabel'#10'TitleLabel'#4'Left'#2#6 + +#6'Height'#2#16#3'Top'#2#6#5'Width'#3#190#1#5'Align'#7#5'alTop'#18'BorderSpa' + +'cing.Left'#2#6#17'BorderSpacing.Top'#2#6#19'BorderSpacing.Right'#2#6#7'Capt' + +'ion'#6#10'TitleLabel'#11'ParentColor'#8#0#0#5'TEdit'#9'TitleEdit'#4'Left'#2 + +#6#6'Height'#2#23#3'Top'#2#22#5'Width'#3#190#1#5'Align'#7#5'alTop'#18'Border' + +'Spacing.Left'#2#6#19'BorderSpacing.Right'#2#6#8'TabOrder'#2#0#4'Text'#6#9'T' + +'itleEdit'#0#0#9'TCheckBox'#20'UseAppBundleCheckBox'#4'Left'#2#6#6'Height'#2 + +#24#3'Top'#2'4'#5'Width'#3'z'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0 + +#8'AutoSize'#8#7'Caption'#6#20'UseAppBundleCheckBox'#8'TabOrder'#2#1#0#0#9'T' + +'CheckBox'#21'UseXPManifestCheckBox'#4'Left'#2#6#6'Height'#2#24#3'Top'#2'L'#5 + +'Width'#3'z'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoSize'#8#7 + +'Caption'#6#21'UseXPManifestCheckBox'#8'TabOrder'#2#2#0#0#0#9'TGroupBox'#22 + +'OutputSettingsGroupBox'#4'Left'#2#6#6'Height'#2'D'#3'Top'#3#136#0#5'Width'#3 + +#202#1#5'Align'#7#5'alTop'#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#7'Capt' + +'ion'#6#22'OutputSettingsGroupBox'#12'ClientHeight'#2'D'#11'ClientWidth'#3 + +#202#1#8'TabOrder'#2#1#0#6'TLabel'#15'TargetFileLabel'#4'Left'#2#6#6'Height' + +#2#13#3'Top'#2#6#5'Width'#3#190#1#5'Align'#7#5'alTop'#18'BorderSpacing.Left' + +#2#6#17'BorderSpacing.Top'#2#6#19'BorderSpacing.Right'#2#6#7'Caption'#6#15'T' + +'argetFileLabel'#11'ParentColor'#8#0#0#5'TEdit'#14'TargetFileEdit'#4'Left'#2 + +#6#6'Height'#2#23#3'Top'#2#19#5'Width'#3#190#1#5'Align'#7#5'alTop'#18'Border' + +'Spacing.Left'#2#6#19'BorderSpacing.Right'#2#6#20'BorderSpacing.Bottom'#2#6#8 + +'TabOrder'#2#0#4'Text'#6#14'TargetFileEdit'#0#0#0#0#5'TPage'#9'FormsPage'#7 + +'Caption'#6#9'FormsPage'#11'ClientWidth'#3#214#1#12'ClientHeight'#3'm'#1#8'O' + +'nResize'#7#15'FormsPageResize'#0#6'TLabel'#21'FormsAutoCreatedLabel'#4'Left' + +#2'$'#6'Height'#2#20#3'Top'#2#10#5'Width'#3#156#0#7'Caption'#6#21'FormsAutoC' + +'reatedLabel'#11'ParentColor'#8#0#0#6'TLabel'#20'FormsAvailFormsLabel'#22'An' + +'chorSideLeft.Control'#7#22'FormsAvailFormsListBox'#4'Left'#3#10#1#6'Height' + +#2#20#3'Top'#2#10#5'Width'#3#144#0#7'Caption'#6#20'FormsAvailFormsLabel'#11 + +'ParentColor'#8#0#0#8'TListBox'#23'FormsAutoCreatedListBox'#22'AnchorSideLef' + +'t.Control'#7#29'FormsMoveAutoCreatedFormUpBtn'#19'AnchorSideLeft.Side'#7#9 + +'asrBottom'#24'AnchorSideBottom.Control'#7#31'FormsAutoCreateNewFormsCheckBo' + +'x'#4'Left'#2'$'#6'Height'#3'+'#1#3'Top'#2' '#5'Width'#3#194#0#7'Anchors'#11 + +#5'akTop'#6'akLeft'#8'akBottom'#0#20'BorderSpacing.Around'#2#6#11'MultiSelec' + +'t'#9#8'TabOrder'#2#0#8'TopIndex'#2#255#0#0#8'TListBox'#22'FormsAvailFormsLi' + +'stBox'#22'AnchorSideLeft.Control'#7#29'FormsAddToAutoCreatedFormsBtn'#19'An' + +'chorSideLeft.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#9'FormsPage' + +#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#31'F' + +'ormsAutoCreateNewFormsCheckBox'#4'Left'#3#10#1#6'Height'#3'+'#1#3'Top'#2' ' + +#5'Width'#3#198#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0 + +#20'BorderSpacing.Around'#2#6#11'MultiSelect'#9#8'TabOrder'#2#1#8'TopIndex'#2 + ,#255#0#0#6'TArrow'#29'FormsMoveAutoCreatedFormUpBtn'#4'Left'#2#6#6'Height'#2 + +#24#3'Top'#2' '#5'Width'#2#24#9'ArrowType'#7#4'atUp'#7'OnClick'#7'"FormsMove' + +'AutoCreatedFormUpBtnClick'#0#0#6'TArrow FormsMoveAutoCreatedFormsDownBtn'#4 + +'Left'#2#6#6'Height'#2#24#3'Top'#2'<'#5'Width'#2#24#9'ArrowType'#7#6'atDown' + +#7'OnClick'#7'$FormsMoveAutoCreatedFormDownBtnClick'#0#0#6'TArrow"FormsRemov' + +'eFromAutoCreatedFormsBtn'#22'AnchorSideLeft.Control'#7#23'FormsAutoCreatedL' + +'istBox'#19'AnchorSideLeft.Side'#7#9'asrBottom'#4'Left'#3#236#0#6'Height'#2 + +#24#3'Top'#2' '#5'Width'#2#24#9'ArrowType'#7#7'atRight'#20'BorderSpacing.Aro' + +'und'#2#6#7'OnClick'#7'''FormsRemoveFromAutoCreatedFormsBtnClick'#0#0#6'TArr' + +'ow'#29'FormsAddToAutoCreatedFormsBtn'#22'AnchorSideLeft.Control'#7'"FormsRe' + +'moveFromAutoCreatedFormsBtn'#4'Left'#3#236#0#6'Height'#2#24#3'Top'#2'<'#5'W' + +'idth'#2#24#7'OnClick'#7'"FormsAddToAutoCreatedFormsBtnClick'#0#0#9'TCheckBo' + +'x'#31'FormsAutoCreateNewFormsCheckBox'#4'Left'#2#6#6'Height'#2#22#3'Top'#3 + +'Q'#1#5'Width'#3#202#1#5'Align'#7#8'alBottom'#20'BorderSpacing.Around'#2#6#7 + +'Caption'#6#31'FormsAutoCreateNewFormsCheckBox'#8'TabOrder'#2#2#0#0#0#5'TPag' + +'e'#8'MiscPage'#7'Caption'#6#8'MiscPage'#11'ClientWidth'#3#214#1#12'ClientHe' + +'ight'#3'm'#1#0#9'TCheckBox)MainUnitHasUsesSectionForAllUnitsCheckBox'#21'An' + +'chorSideTop.Control'#7#30'MainUnitIsPascalSourceCheckBox'#18'AnchorSideTop.' + +'Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#22#3'Top'#2'"'#5'Width'#3#202#1 + +#5'Align'#7#5'alTop'#20'BorderSpacing.Around'#2#6#7'Caption'#6')MainUnitHasU' + +'sesSectionForAllUnitsCheckBox'#8'TabOrder'#2#0#0#0#9'TCheckBox''MainUnitHas' + +'CreateFormStatementsCheckBox'#21'AnchorSideTop.Control'#7')MainUnitHasUsesS' + +'ectionForAllUnitsCheckBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6 + +#6'Height'#2#22#3'Top'#2'>'#5'Width'#3#202#1#5'Align'#7#5'alTop'#20'BorderSp' + +'acing.Around'#2#6#7'Caption'#6'''MainUnitHasCreateFormStatementsCheckBox'#8 + +'TabOrder'#2#1#0#0#9'TCheckBox'#30'MainUnitIsPascalSourceCheckBox'#4'Left'#2 + +#6#6'Height'#2#22#3'Top'#2#6#5'Width'#3#202#1#5'Align'#7#5'alTop'#20'BorderS' + +'pacing.Around'#2#6#7'Caption'#6#30'MainUnitIsPascalSourceCheckBox'#8'TabOrd' + +'er'#2#2#0#0#9'TCheckBox!MainUnitHasTitleStatementCheckBox'#21'AnchorSideTop' + +'.Control'#7'''MainUnitHasCreateFormStatementsCheckBox'#18'AnchorSideTop.Sid' + +'e'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#22#3'Top'#2'Z'#5'Width'#3#202#1#5 + +'Align'#7#5'alTop'#20'BorderSpacing.Around'#2#6#7'Caption'#6'!MainUnitHasTit' + +'leStatementCheckBox'#8'TabOrder'#2#5#0#0#9'TCheckBox'#16'RunnableCheckBox' + +#21'AnchorSideTop.Control'#7'!MainUnitHasTitleStatementCheckBox'#18'AnchorSi' + +'deTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#22#3'Top'#2'|'#5'Width'#3 + +#202#1#5'Align'#7#5'alTop'#17'BorderSpacing.Top'#2#6#20'BorderSpacing.Around' + +#2#6#7'Caption'#6#16'RunnableCheckBox'#8'TabOrder'#2#3#0#0#9'TCheckBox'#19'A' + +'lwaysBuildCheckBox'#21'AnchorSideTop.Control'#7#16'RunnableCheckBox'#18'Anc' + +'horSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#22#3'Top'#3#152#0#5 + +'Width'#3#202#1#5'Align'#7#5'alTop'#20'BorderSpacing.Around'#2#6#7'Caption'#6 + +#19'AlwaysBuildCheckBox'#8'TabOrder'#2#4#0#0#0#5'TPage'#10'LazDocPage'#7'Cap' + +'tion'#6#10'LazDocPage'#11'ClientWidth'#3#214#1#12'ClientHeight'#3'm'#1#0#9 + +'TGroupBox'#19'LazDocPathsGroupBox'#4'Left'#2#6#6'Height'#3#198#0#3'Top'#2#6 + +#5'Width'#3#202#1#5'Align'#7#5'alTop'#8'AutoSize'#9#20'BorderSpacing.Around' + +#2#6#7'Caption'#6#19'LazDocPathsGroupBox'#12'ClientHeight'#3#181#0#11'Client' + +'Width'#3#198#1#8'TabOrder'#2#0#0#8'TListBox'#13'LazDocListBox'#20'AnchorSid' + +'eRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2'l'#3'Top'#2#6#5'Width'#3 + +#186#1#5'Align'#7#5'alTop'#20'BorderSpacing.Around'#2#6#8'TabOrder'#2#0#8'To' + +'pIndex'#2#255#0#0#7'TButton'#19'LazDocAddPathButton'#22'AnchorSideLeft.Cont' + +'rol'#7#19'LazDocPathsGroupBox'#21'AnchorSideTop.Control'#7#13'LazDocListBox' + +#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#26#3'Top'#2'x' + +#5'Width'#3#132#0#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#7'Caption'#6#19 + +'LazDocAddPathButton'#7'OnClick'#7#24'LazDocAddPathButtonClick'#8'TabOrder'#2 + +#1#0#0#7'TButton'#22'LazDocDeletePathButton'#22'AnchorSideLeft.Control'#7#19 + +'LazDocAddPathButton'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTo' + +'p.Control'#7#13'LazDocListBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left' + +#3#144#0#6'Height'#2#26#3'Top'#2'x'#5'Width'#3#145#0#8'AutoSize'#9#20'Border' + +'Spacing.Around'#2#6#7'Caption'#6#22'LazDocDeletePathButton'#7'OnClick'#7#27 + +'LazDocDeletePathButtonClick'#8'TabOrder'#2#2#0#0#5'TEdit'#14'LazDocPathEdit' + +#22'AnchorSideLeft.Control'#7#19'LazDocPathsGroupBox'#21'AnchorSideTop.Contr' + +'ol'#7#19'LazDocAddPathButton'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'Anch' + +'orSideRight.Control'#7#18'LazDocBrowseButton'#4'Left'#2#6#6'Height'#2#23#3 + +'Top'#3#152#0#5'Width'#3#156#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0 + +#20'BorderSpacing.Around'#2#6#8'TabOrder'#2#3#4'Text'#6#14'LazDocPathEdit'#0 + ,#0#7'TButton'#18'LazDocBrowseButton'#21'AnchorSideTop.Control'#7#19'LazDocAd' + +'dPathButton'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Contr' + +'ol'#7#19'LazDocPathsGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Lef' + +'t'#3#168#1#6'Height'#2#23#3'Top'#3#152#0#5'Width'#2#24#7'Anchors'#11#5'akTo' + +'p'#7'akRight'#0#20'BorderSpacing.Around'#2#6#7'Caption'#6#3'...'#7'OnClick' + +#7#23'LazDocBrowseButtonClick'#8'TabOrder'#2#4#0#0#0#0#5'TPage'#8'SavePage'#7 + +'Caption'#6#8'SavePage'#11'ClientWidth'#3#214#1#12'ClientHeight'#3'm'#1#0#9 + +'TCheckBox'#26'SaveClosedUnitInfoCheckBox'#4'Left'#2#6#6'Height'#2#22#3'Top' + +#2#6#5'Width'#3#202#1#5'Align'#7#5'alTop'#20'BorderSpacing.Around'#2#6#7'Cap' + +'tion'#6#26'SaveClosedUnitInfoCheckBox'#8'TabOrder'#2#0#0#0#9'TCheckBox'#31 + +'SaveOnlyProjectUnitInfoCheckBox'#21'AnchorSideTop.Control'#7#26'SaveClosedU' + +'nitInfoCheckBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height' + +#2#22#3'Top'#2'"'#5'Width'#3#202#1#5'Align'#7#5'alTop'#20'BorderSpacing.Arou' + +'nd'#2#6#7'Caption'#6#31'SaveOnlyProjectUnitInfoCheckBox'#8'TabOrder'#2#1#0#0 + +#11'TRadioGroup'#29'SaveSessionLocationRadioGroup'#21'AnchorSideTop.Control' + +#7#31'SaveOnlyProjectUnitInfoCheckBox'#18'AnchorSideTop.Side'#7#9'asrBottom' + +#23'AnchorSideRight.Control'#7#8'SavePage'#20'AnchorSideRight.Side'#7#9'asrB' + +'ottom'#4'Left'#2#6#6'Height'#2'u'#3'Top'#2'D'#5'Width'#3#202#1#5'Align'#7#5 + +'alTop'#8'AutoFill'#9#17'BorderSpacing.Top'#2#6#20'BorderSpacing.Around'#2#6 + +#7'Caption'#6#29'SaveSessionLocationRadioGroup'#28'ChildSizing.LeftRightSpac' + +'ing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizon' + +'tal'#7#24'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'cr' + +'sHomogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChild' + +'s'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layou' + +'t'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#8 + +'TabOrder'#2#2#0#0#0#5'TPage'#15'VersionInfoPage'#7'Caption'#6#15'VersionInf' + +'oPage'#11'ClientWidth'#3#214#1#12'ClientHeight'#3'm'#1#0#9'TGroupBox'#19'Ve' + +'rsionInfoGroupBox'#22'AnchorSideLeft.Control'#7#24'LanguageSettingsGroupBox' + +#18'AnchorSideTop.Side'#7#9'asrBottom'#20'AnchorSideRight.Side'#7#9'asrBotto' + +'m'#4'Left'#2#6#6'Height'#2'i'#3'Top'#2'!'#5'Width'#3#202#1#5'Align'#7#5'alT' + +'op'#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#7'Caption'#6#17'Version Numb' + +'ering'#12'ClientHeight'#2'i'#11'ClientWidth'#3#202#1#8'TabOrder'#2#0#0#6'TL' + +'abel'#12'VersionLabel'#22'AnchorSideLeft.Control'#7#19'VersionInfoGroupBox' + +#21'AnchorSideTop.Control'#7#19'VersionInfoGroupBox'#4'Left'#2#6#6'Height'#2 + +#16#3'Top'#2#6#5'Width'#2'+'#20'BorderSpacing.Around'#2#6#7'Caption'#6#8'Ver' + +'sion:'#11'ParentColor'#8#0#0#6'TLabel'#18'MajorRevisionLabel'#22'AnchorSide' + +'Left.Control'#7#15'VersionSpinEdit'#19'AnchorSideLeft.Side'#7#9'asrBottom' + +#21'AnchorSideTop.Control'#7#19'VersionInfoGroupBox'#4'Left'#2'j'#6'Height'#2 + +#16#3'Top'#2#6#5'Width'#2'R'#18'BorderSpacing.Left'#2#24#20'BorderSpacing.Ar' + +'ound'#2#6#7'Caption'#6#15'Major Revision:'#11'ParentColor'#8#0#0#6'TLabel' + +#18'MinorRevisionLabel'#22'AnchorSideLeft.Control'#7#21'MajorRevisionSpinEdi' + +'t'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#19'Ve' + +'rsionInfoGroupBox'#4'Left'#3#206#0#6'Height'#2#16#3'Top'#2#6#5'Width'#2'S' + +#18'BorderSpacing.Left'#2#24#20'BorderSpacing.Around'#2#6#7'Caption'#6#15'Mi' + +'nor Revision:'#11'ParentColor'#8#0#0#6'TLabel'#10'BuildLabel'#22'AnchorSide' + +'Left.Control'#7#21'MinorRevisionSpinEdit'#19'AnchorSideLeft.Side'#7#9'asrBo' + +'ttom'#21'AnchorSideTop.Control'#7#19'VersionInfoGroupBox'#4'Left'#3'2'#1#6 + +'Height'#2#16#3'Top'#2#6#5'Width'#2#31#18'BorderSpacing.Left'#2#24#20'Border' + +'Spacing.Around'#2#6#7'Caption'#6#6'Build:'#11'ParentColor'#8#0#0#5'TEdit'#9 + +'BuildEdit'#22'AnchorSideLeft.Control'#7#10'BuildLabel'#21'AnchorSideTop.Con' + +'trol'#7#10'BuildLabel'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3'2'#1 + +#6'Height'#2#20#3'Top'#2#28#5'Width'#2'F'#8'TabOrder'#2#0#4'Text'#6#1'0'#0#0 + +#9'TSpinEdit'#15'VersionSpinEdit'#22'AnchorSideLeft.Control'#7#12'VersionLab' + +'el'#21'AnchorSideTop.Control'#7#12'VersionLabel'#18'AnchorSideTop.Side'#7#9 + +'asrBottom'#4'Left'#2#6#6'Height'#2#20#3'Top'#2#28#5'Width'#2'F'#8'TabOrder' + +#2#1#0#0#9'TSpinEdit'#21'MajorRevisionSpinEdit'#22'AnchorSideLeft.Control'#7 + +#18'MajorRevisionLabel'#21'AnchorSideTop.Control'#7#18'MajorRevisionLabel'#18 + +'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2'j'#6'Height'#2#20#3'Top'#2#28#5 + +'Width'#2'F'#8'TabOrder'#2#2#0#0#9'TSpinEdit'#21'MinorRevisionSpinEdit'#22'A' + +'nchorSideLeft.Control'#7#18'MinorRevisionLabel'#21'AnchorSideTop.Control'#7 + +#18'MinorRevisionLabel'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3#206#0 + +#6'Height'#2#20#3'Top'#2#28#5'Width'#2'F'#8'TabOrder'#2#3#0#0#9'TCheckBox"Au' + +'tomaticallyIncreaseBuildCheckBox'#22'AnchorSideLeft.Control'#7#19'VersionIn' + +'foGroupBox'#21'AnchorSideTop.Control'#7#15'VersionSpinEdit'#18'AnchorSideTo' + ,'p.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#21#3'Top'#2'<'#5'Width'#3#159 + +#0#17'BorderSpacing.Top'#2#6#20'BorderSpacing.Around'#2#6#7'Caption'#6#28'Au' + +'tomatically increase Build'#7'Enabled'#8#8'TabOrder'#2#4#0#0#0#9'TCheckBox' + +#22'UseVersionInfoCheckBox'#4'Left'#2#6#6'Height'#2#21#3'Top'#2#6#5'Width'#3 + +#202#1#5'Align'#7#5'alTop'#20'BorderSpacing.Around'#2#6#7'Caption'#6'"Includ' + +'e Version Info in executable'#8'OnChange'#7#28'UseVersionInfoCheckBoxChange' + +#8'TabOrder'#2#1#0#0#9'TGroupBox'#24'LanguageSettingsGroupBox'#18'AnchorSide' + +'Top.Side'#7#9'asrBottom'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#6 + +#6'Height'#2'C'#3'Top'#3#144#0#5'Width'#3#202#1#5'Align'#7#5'alTop'#8'AutoSi' + +'ze'#9#20'BorderSpacing.Around'#2#6#7'Caption'#6#16'Language Options'#12'Cli' + +'entHeight'#2'C'#11'ClientWidth'#3#202#1#8'TabOrder'#2#2#0#6'TLabel'#22'Lang' + +'uageSelectionLabel'#22'AnchorSideLeft.Control'#7#24'LanguageSettingsGroupBo' + +'x'#21'AnchorSideTop.Control'#7#24'LanguageSettingsGroupBox'#4'Left'#2#6#6'H' + +'eight'#2#16#3'Top'#2#6#5'Width'#2'k'#20'BorderSpacing.Around'#2#6#7'Caption' + +#6#19'Language Selection:'#11'ParentColor'#8#0#0#6'TLabel'#17'CharacterSetLa' + +'bel'#22'AnchorSideLeft.Control'#7#25'LanguageSelectionComboBox'#19'AnchorSi' + +'deLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#24'LanguageSettings' + +'GroupBox'#4'Left'#3#4#1#6'Height'#2#16#3'Top'#2#6#5'Width'#2'J'#20'BorderSp' + +'acing.Around'#2#6#7'Caption'#6#14'Character Set:'#11'ParentColor'#8#0#0#9'T' + +'ComboBox'#25'LanguageSelectionComboBox'#22'AnchorSideLeft.Control'#7#22'Lan' + +'guageSelectionLabel'#21'AnchorSideTop.Control'#7#22'LanguageSelectionLabel' + +#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#21#3'Top'#2#28 + +#5'Width'#3#248#0#16'AutoCompleteText'#11#22'cbactEndOfLineComplete'#20'cbac' + +'tSearchAscending'#0#17'BorderSpacing.Top'#2#2#9'MaxLength'#2#0#8'TabOrder'#2 + +#0#4'Text'#6#12'U.S. English'#0#0#9'TComboBox'#20'CharacterSetComboBox'#22'A' + +'nchorSideLeft.Control'#7#17'CharacterSetLabel'#21'AnchorSideTop.Control'#7 + +#25'LanguageSelectionComboBox'#23'AnchorSideRight.Control'#7#24'LanguageSett' + +'ingsGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#4#1#6'Heigh' + +'t'#2#21#3'Top'#2#28#5'Width'#3#192#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akR' + +'ight'#0#16'AutoCompleteText'#11#22'cbactEndOfLineComplete'#20'cbactSearchAs' + +'cending'#0#19'BorderSpacing.Right'#2#6#9'MaxLength'#2#0#8'TabOrder'#2#1#4'T' + +'ext'#6#12'Multilingual'#0#0#0#9'TGroupBox'#17'OtherInfoGroupBox'#18'AnchorS' + +'ideTop.Side'#7#9'asrBottom'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left' + +#2#6#6'Height'#2'e'#3'Top'#3#217#0#5'Width'#3#202#1#5'Align'#7#5'alTop'#8'Au' + +'toSize'#9#20'BorderSpacing.Around'#2#6#7'Caption'#6#10'Other Info'#12'Clien' + +'tHeight'#2'e'#11'ClientWidth'#3#202#1#8'TabOrder'#2#3#0#6'TLabel'#16'Descri' + +'ptionLabel'#21'AnchorSideTop.Control'#7#15'DescriptionEdit'#18'AnchorSideTo' + +'p.Side'#7#9'asrCenter'#6'Height'#2#16#3'Top'#2#2#5'Width'#2'@'#7'Caption'#6 + +#12'Description:'#11'ParentColor'#8#0#0#6'TLabel'#14'CopyrightLabel'#21'Anch' + +'orSideTop.Control'#7#13'CopyrightEdit'#18'AnchorSideTop.Side'#7#9'asrCenter' + +#6'Height'#2#16#3'Top'#2#29#5'Width'#2'9'#7'Caption'#6#10'Copyright:'#11'Par' + +'entColor'#8#0#0#5'TEdit'#15'DescriptionEdit'#22'AnchorSideLeft.Control'#7#16 + +'DescriptionLabel'#19'AnchorSideLeft.Side'#7#9'asrBottom'#23'AnchorSideRight' + +'.Control'#7#17'OtherInfoGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4 + +'Left'#2'F'#6'Height'#2#21#5'Width'#3'~'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7 + +'akRight'#0#18'BorderSpacing.Left'#2#6#19'BorderSpacing.Right'#2#6#8'TabOrde' + +'r'#2#0#0#0#5'TEdit'#13'CopyrightEdit'#22'AnchorSideLeft.Control'#7#15'Descr' + +'iptionEdit'#21'AnchorSideTop.Control'#7#15'DescriptionEdit'#18'AnchorSideTo' + +'p.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#17'OtherInfoGroupBox' + +#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2'F'#6'Height'#2#21#3'Top'#2 + +#27#5'Width'#3'~'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#17'BorderS' + +'pacing.Top'#2#6#19'BorderSpacing.Right'#2#6#8'TabOrder'#2#1#0#0#7'TButton' + +#20'AdditionalInfoButton'#21'AnchorSideTop.Control'#7#13'CopyrightEdit'#18'A' + +'nchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#17'OtherInf' + +'oGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#21'AnchorSideBottom.Side' + +#7#9'asrBottom'#4'Left'#3'g'#1#6'Height'#2#23#3'Top'#2'6'#5'Width'#2']'#7'An' + +'chors'#11#5'akTop'#7'akRight'#0#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#7 + +'Caption'#6#15'Additional Info'#7'OnClick'#7#25'AdditionalInfoButtonClick'#8 + +'TabOrder'#2#2#0#0#0#0#5'TPage'#8'i18nPage'#7'Caption'#6#4'i18n'#11'ClientWi' + +'dth'#3#214#1#12'ClientHeight'#3'm'#1#0#9'TGroupBox'#12'I18NGroupBox'#22'Anc' + +'horSideLeft.Control'#7#17'OtherInfoGroupBox'#21'AnchorSideTop.Control'#7#19 + +'VersionInfoGroupBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRig' + +'ht.Control'#7#17'OtherInfoGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom' + +#4'Left'#2#6#6'Height'#2'J'#3'Top'#2'"'#5'Width'#3#202#1#5'Align'#7#5'alTop' + ,#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#7'Caption'#6#12'i18n Options'#12 + +'ClientHeight'#2'J'#11'ClientWidth'#3#202#1#8'TabOrder'#2#0#0#6'TLabel'#13'P' + +'oOutDirLabel'#6'Height'#2#20#5'Width'#3#132#0#20'BorderSpacing.Around'#2#6#7 + +'Caption'#6#20'PO Output Directory:'#11'ParentColor'#8#0#0#5'TEdit'#12'POOut' + +'DirEdit'#22'AnchorSideLeft.Control'#7#12'I18NGroupBox'#21'AnchorSideTop.Con' + +'trol'#7#13'PoOutDirLabel'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSi' + +'deRight.Control'#7#14'POOutDirButton'#4'Left'#2#6#6'Height'#2#23#3'Top'#2#26 + +#5'Width'#3#160#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#20'BorderSpa' + +'cing.Around'#2#6#8'TabOrder'#2#0#4'Text'#6#12'POOutDirEdit'#0#0#7'TButton' + +#14'POOutDirButton'#21'AnchorSideTop.Control'#7#13'PoOutDirLabel'#18'AnchorS' + +'ideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#12'I18NGroupBox' + +#20'AnchorSideRight.Side'#7#9'asrBottom'#21'AnchorSideBottom.Side'#7#9'asrBo' + +'ttom'#4'Left'#3#172#1#6'Height'#2#23#3'Top'#2#26#5'Width'#2#24#7'Anchors'#11 + +#5'akTop'#7'akRight'#0#20'BorderSpacing.Around'#2#6#7'Caption'#6#3'...'#7'On' + +'Click'#7#19'POOutDirButtonClick'#8'TabOrder'#2#1#0#0#0#9'TCheckBox'#18'Enab' + +'leI18NCheckBox'#4'Left'#2#6#6'Height'#2#22#3'Top'#2#6#5'Width'#3#202#1#5'Al' + +'ign'#7#5'alTop'#20'BorderSpacing.Around'#2#6#7'Caption'#6#11'Enable i18n'#8 + +'OnChange'#7#24'EnableI18NCheckBoxChange'#8'TabOrder'#2#1#0#0#0#0#0#22'TSele' + +'ctDirectoryDialog'#21'SelectDirectoryDialog'#5'Title'#6#16'Select Directory' + +#11'FilterIndex'#2#0#4'left'#2'X'#3'top'#3'p'#1#0#0#0 +]); diff --git a/ide/projectopts_new.pp b/ide/projectopts_new.pp new file mode 100644 index 0000000000..7f96f64eaf --- /dev/null +++ b/ide/projectopts_new.pp @@ -0,0 +1,894 @@ +{ /*************************************************************************** + projectopts.pp - Lazarus IDE unit + ----------------------------------- + + ***************************************************************************/ + + *************************************************************************** + * * + * This source is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This code is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * General Public License for more details. * + * * + * A copy of the GNU General Public License is available on the World * + * Wide Web at . You can also * + * obtain it by writing to the Free Software Foundation, * + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + * * + *************************************************************************** + + Author: Mattias Gaertner + + Abstract: + Project options dialog + +} +unit ProjectOpts_new; + +{$mode objfpc}{$H+} + +interface + +uses + Arrow, Buttons, StdCtrls, SysUtils, LCLProc, Classes, CodeToolManager, + Controls, Dialogs, LCLIntf, LResources, ExtCtrls, Forms, Graphics, Spin, + FileUtil, IDEContextHelpEdit, + IDEWindowIntf, ProjectIntf, IDEDialogs, + IDEOptionDefs, LazarusIDEStrConsts, Project, IDEProcs, W32VersionInfo, + VersionInfoAdditionalInfo, W32Manifest, + OptionsEditorBase; + +type + + { TProjectOptionsDialog } + + TProjectOptionsDialog = class(TOptionsEditorForm) + EnableI18NCheckBox: TCheckBox; + I18NGroupBox: TGroupBox; + PoOutDirLabel: TLabel; + + Notebook: TNotebook; + ApplicationPage: TPage; + FormsPage: TPage; + MiscPage: TPage; + LazDocPage: TPage; + i18nPage: TPage; + POOutDirButton: TButton; + POOutDirEdit: TEdit; + SavePage: TPage; + UseAppBundleCheckBox: TCheckBox; + UseXPManifestCheckBox: TCheckBox; + VersionInfoPage: TPage; + + AppSettingsGroupBox: TGroupBox; + OutputSettingsGroupBox: TGroupBox; + SelectDirectoryDialog: TSelectDirectoryDialog; + TitleLabel: TLabel; + TitleEdit: TEdit; + TargetFileLabel: TLabel; + TargetFileEdit: TEdit; + + // Forms + FormsAutoCreatedLabel: TLabel; + FormsAutoCreatedListBox: TListBox; + FormsAvailFormsLabel: TLabel; + FormsAvailFormsListBox: TListBox; + FormsAddToAutoCreatedFormsBtn: TArrow; + FormsRemoveFromAutoCreatedFormsBtn: TArrow; + FormsMoveAutoCreatedFormUpBtn: TArrow; + FormsMoveAutoCreatedFormDownBtn: TArrow; + FormsAutoCreateNewFormsCheckBox: TCheckBox; + FormsMoveAutoCreatedFormsDownBtn: TArrow; + + // Misc + MainUnitIsPascalSourceCheckBox: TCheckBox; + MainUnitHasUsesSectionForAllUnitsCheckBox: TCheckBox; + MainUnitHasCreateFormStatementsCheckBox: TCheckBox; + MainUnitHasTitleStatementCheckBox: TCheckBox; + RunnableCheckBox: TCheckBox; + AlwaysBuildCheckBox: TCheckBox; + + // Lazdoc settings + LazDocBrowseButton: TButton; + LazDocPathEdit: TEdit; + LazDocDeletePathButton: TButton; + LazDocAddPathButton: TButton; + LazDocPathsGroupBox: TGroupBox; + LazDocListBox: TListBox; + + // Session + SaveClosedUnitInfoCheckBox: TCheckBox; + SaveOnlyProjectUnitInfoCheckBox: TCheckBox; + SaveSessionLocationRadioGroup: TRadioGroup; + + // VersionInfo + UseVersionInfoCheckBox: TCheckBox; + VersionInfoGroupBox: TGroupBox; + VersionLabel: TLabel; + MajorRevisionLabel: TLabel; + MinorRevisionLabel: TLabel; + BuildLabel: TLabel; + VersionSpinEdit: TSpinEdit; + MajorRevisionSpinEdit: TSpinEdit; + MinorRevisionSpinEdit: TSpinEdit; + BuildEdit: TEdit; + AutomaticallyIncreaseBuildCheckBox: TCheckBox; + LanguageSettingsGroupBox: TGroupBox; + LanguageSelectionLabel: TLabel; + CharacterSetLabel: TLabel; + LanguageSelectionComboBox: TComboBox; + CharacterSetComboBox: TComboBox; + OtherInfoGroupBox: TGroupBox; + AdditionalInfoButton: TButton; + DescriptionEdit: TEdit; + CopyrightEdit: TEdit; + DescriptionLabel: TLabel; + CopyrightLabel: TLabel; + AdditionalInfoForm: TVersionInfoAdditinalInfoForm; + + + procedure AdditionalInfoButtonClick(Sender: TObject); + procedure EnableI18NCheckBoxChange(Sender: TObject); + procedure FormsPageResize(Sender: TObject); + procedure HelpButtonClick(Sender: TObject); + procedure LazDocAddPathButtonClick(Sender: TObject); + procedure LazDocBrowseButtonClick(Sender: TObject); + procedure LazDocDeletePathButtonClick(Sender: TObject); + procedure ProjectOptionsClose(Sender: TObject; + var CloseAction: TCloseAction); + procedure FormsAddToAutoCreatedFormsBtnClick(Sender: TObject); + procedure FormsRemoveFromAutoCreatedFormsBtnClick(Sender: TObject); + procedure FormsMoveAutoCreatedFormUpBtnClick(Sender: TObject); + procedure FormsMoveAutoCreatedFormDownBtnClick(Sender: TObject); + procedure POOutDirButtonClick(Sender: TObject); + procedure UseVersionInfoCheckBoxChange(Sender: TObject); + private + FProject: TProject; + procedure SetProject(AProject: TProject); + procedure SetupApplicationPage(PageIndex: Integer); + procedure SetupFormsPage(PageIndex: Integer); + procedure SetupMiscPage(PageIndex: Integer); + procedure SetupLazDocPage(PageIndex: Integer); + procedure SetupSavePage(PageIndex: Integer); + procedure SetupVersionInfoPage(PageIndex: Integer); + procedure SetupI18NPage(PageIndex: Integer); + procedure EnableVersionInfo(UseVersionInfo: boolean); + procedure Enablei18nInfo(Usei18n: boolean); + procedure FillAutoCreateFormsListbox; + procedure FillAvailFormsListBox; + function IndexOfAutoCreateForm(FormName: String): Integer; + function FirstAutoCreateFormSelected: Integer; + function FirstAvailFormSelected: Integer; + procedure SelectOnlyThisAutoCreateForm(Index: Integer); + function GetAutoCreatedFormsList: TStrings; + function GetProjectTitle: String; + function SetAutoCreateForms: Boolean; + function SetProjectTitle: Boolean; + public + constructor Create(TheOwner: TComponent); override; + property Project: TProject read FProject write SetProject; + end; + +function ShowProjectOptionsDialog(AProject: TProject): TModalResult; + +function ProjectSessionStorageToLocalizedName(s: TProjectSessionStorage): string; +function LocalizedNameToProjectSessionStorage( + const s: string): TProjectSessionStorage; + +var + ProjectOptionsDialog: TProjectOptionsDialog; + +implementation + + +function ShowProjectOptionsDialog(AProject: TProject): TModalResult; +begin + with TProjectOptionsDialog.Create(Nil) do + try + Project := AProject; + Result := ShowModal; + finally + Free; + end; +end; + +function ProjectSessionStorageToLocalizedName(s: TProjectSessionStorage + ): string; +begin + case s of + pssInProjectInfo: Result:=lisPOSaveInLpiFil; + pssInProjectDir: Result:=lisPOSaveInLpsFileInProjectDirectory; + pssInIDEConfig: Result:=lisPOSaveInIDEConfigDirectory; + pssNone: Result:=lisPODoNotSaveAnySessionInfo; + else + RaiseGDBException(''); + end; +end; + +function LocalizedNameToProjectSessionStorage(const s: string + ): TProjectSessionStorage; +begin + for Result:=Low(TProjectSessionStorage) to High(TProjectSessionStorage) do + if ProjectSessionStorageToLocalizedName(Result)=s then exit; + Result:=pssInProjectInfo; +end; + + +{ TProjectOptionsDialog } + +constructor TProjectOptionsDialog.Create(TheOwner: TComponent); +var + i: Integer; + Title: string; +begin + inherited Create(TheOwner); + + Caption := dlgProjectOptions; + HelpButton.Caption:=lisMenuHelp; + + NoteBook.PageIndex := 0; + + SetupApplicationPage(0); + SetupFormsPage(1); + SetupMiscPage(2); + SetupLazDocPage(3); + SetupSavePage(4); + SetupVersionInfoPage(5); + SetupI18NPage(6); + + IDEDialogLayoutList.ApplyLayout(Self, 430, 375); + + //Indexing items + for i:= 0 to NoteBook.PageCount-1 do + begin + Title:=NoteBook.Pages[i]; + ScanControlTextsForIndex(Title, NoteBook.Page[i]); + end +end; + +procedure TProjectOptionsDialog.SetupApplicationPage(PageIndex: Integer); +begin + NoteBook.Page[PageIndex].Caption := dlgPOApplication; + + AppSettingsGroupBox.Caption := dlgApplicationSettings; + TitleLabel.Caption := dlgPOTitle; + TitleEdit.Text := ''; + OutputSettingsGroupBox.Caption := dlgPOOutputSettings; + TargetFileLabel.Caption := dlgPOTargetFileName; + TargetFileEdit.Text := ''; + UseAppBundleCheckBox.Caption := dlgPOUseAppBundle; + UseAppBundleCheckBox.Checked := False; + UseXPManifestCheckBox.Caption := dlgPOUseManifest; + UseXPManifestCheckBox.Checked := False; +end; + +procedure TProjectOptionsDialog.SetupLazDocPage(PageIndex: Integer); +begin + NoteBook.Page[PageIndex].Caption := lisLazDoc; + + LazDocPathsGroupBox.Caption := lisLazDocPathsGroupBox; + LazDocAddPathButton.Caption := lisLazDocAddPathButton; + LazDocDeletePathButton.Caption := lisLazDocDeletePathButton; + + LazDocPathEdit.Clear; +end; + +procedure TProjectOptionsDialog.SetupSavePage(PageIndex: Integer); +var + s: TProjectSessionStorage; +begin + NoteBook.Page[PageIndex].Caption := dlgPOSaveSession; + + SaveClosedUnitInfoCheckBox.Caption := dlgSaveEditorInfo; + SaveOnlyProjectUnitInfoCheckBox.Caption := dlgSaveEditorInfoProject; + SaveSessionLocationRadioGroup.Caption:=lisPOSaveSessionInformationIn; + for s:=Low(TProjectSessionStorage) to High(TProjectSessionStorage) do + SaveSessionLocationRadioGroup.Items.Add( + ProjectSessionStorageToLocalizedName(s)); +end; + +procedure TProjectOptionsDialog.SetupFormsPage(PageIndex: Integer); +begin + NoteBook.Page[PageIndex].Caption := dlgPOFroms; + + FormsAutoCreatedLabel.Caption := dlgAutoCreateForms; + FormsAvailFormsLabel.Caption := dlgAvailableForms; + FormsAutoCreateNewFormsCheckBox.Caption := dlgAutoCreateNewForms; +end; + +procedure TProjectOptionsDialog.SetupMiscPage(PageIndex: Integer); +begin + NoteBook.Page[PageIndex].Caption := dlgPOMisc; + + MainUnitIsPascalSourceCheckBox.Caption := lisMainUnitIsPascalSource; + MainUnitHasUsesSectionForAllUnitsCheckBox.Caption := lisMainUnitHasUsesSectionContainingAllUnitsOfProject; + MainUnitHasCreateFormStatementsCheckBox.Caption := lisMainUnitHasApplicationCreateFormStatements; + MainUnitHasTitleStatementCheckBox.Caption := lisMainUnitHasApplicationTitleStatements; + RunnableCheckBox.Caption := lisProjectIsRunnable; + AlwaysBuildCheckBox.Caption := lisProjOptsAlwaysBuildEvenIfNothingChanged; +end; + +procedure TProjectOptionsDialog.SetupVersionInfoPage(PageIndex: Integer); +begin + NoteBook.Page[PageIndex].Caption := VersionInfoTitle; + UseVersionInfoCheckBox.Caption := rsIncludeVersionInfoInExecutable; + VersionInfoGroupBox.Caption := rsVersionNumbering; + VersionLabel.Caption := rsVersion; + MajorRevisionLabel.Caption := rsMajorRevision; + MinorRevisionLabel.Caption := rsMinorRevision; + BuildLabel.Caption := rsBuild; + AutomaticallyIncreaseBuildCheckBox.Caption := rsAutomaticallyIncreaseBuildNumber; + LanguageSettingsGroupBox.Caption := rsLanguageOptions; + LanguageSelectionLabel.Caption := rsLanguageSelection; + CharacterSetLabel.Caption := rsCharacterSet; + OtherInfoGroupBox.Caption := rsOtherInfo; + DescriptionLabel.Caption := lisCodeToolsDefsDescription; + CopyrightLabel.Caption := rsCopyright; + AdditionalInfoButton.Caption := rsAdditionalInfo; +end; + +procedure TProjectOptionsDialog.SetupI18NPage(PageIndex: Integer); +begin + NoteBook.Page[PageIndex].Caption := dlgPOI18n; + + EnableI18NCheckBox.Caption := rsEnableI18n; + I18NGroupBox.Caption := rsI18nOptions; + PoOutDirLabel.Caption := rsPOOutputDirectory; +end; + +procedure TProjectOptionsDialog.EnableVersionInfo(UseVersionInfo: boolean); +begin + VersionInfoGroupBox.Enabled := UseVersionInfo; + VersionLabel.Enabled := UseVersionInfo; + MajorRevisionLabel.Enabled := UseVersionInfo; + MinorRevisionLabel.Enabled := UseVersionInfo; + BuildLabel.Enabled := UseVersionInfo; + VersionSpinEdit.Enabled := UseVersionInfo; + MajorRevisionSpinEdit.Enabled := UseVersionInfo; + MinorRevisionSpinEdit.Enabled := UseVersionInfo; + BuildEdit.Enabled := UseVersionInfo; + AutomaticallyIncreaseBuildCheckBox.Enabled := UseVersionInfo; + + LanguageSettingsGroupBox.Enabled := UseVersionInfo; + LanguageSelectionLabel.Enabled := UseVersionInfo; + CharacterSetLabel.Enabled := UseVersionInfo; + LanguageSelectionComboBox.Enabled := UseVersionInfo; + CharacterSetComboBox.Enabled := UseVersionInfo; + + OtherInfoGroupBox.Enabled := UseVersionInfo; + DescriptionLabel.Enabled := UseVersionInfo; + CopyrightLabel.Enabled := UseVersionInfo; + DescriptionEdit.Enabled := UseVersionInfo; + CopyrightEdit.Enabled := UseVersionInfo; + AdditionalInfoButton.Enabled := UseVersionInfo; +end; + +procedure TProjectOptionsDialog.Enablei18nInfo(Usei18n: boolean); +begin + I18NGroupBox.Enabled := Usei18n; +end; + +procedure TProjectOptionsDialog.SetProject(AProject: TProject); +var + AFilename: String; +begin + FProject := AProject; + if AProject = Nil then + exit; + + with AProject do + begin + TitleEdit.Text := Title; + TargetFileEdit.Text := TargetFilename; + UseAppBundleCheckBox.Checked := UseAppBundle; + UseXPManifestCheckBox.Checked := XPManifest.UseManifest; + UseVersionInfoCheckBox.Checked := VersionInfo.UseVersionInfo; + end; + FillAutoCreateFormsListbox; + FillAvailFormsListBox; + + FormsAutoCreateNewFormsCheckBox.Checked := Project.AutoCreateForms; + + SaveClosedUnitInfoCheckBox.Checked := (pfSaveClosedUnits in AProject.Flags); + SaveOnlyProjectUnitInfoCheckBox.Checked := + (pfSaveOnlyProjectUnits in AProject.Flags); + SaveSessionLocationRadioGroup.ItemIndex:=ord(AProject.SessionStorage); + + MainUnitIsPascalSourceCheckBox.Checked := + (pfMainUnitIsPascalSource in AProject.Flags); + MainUnitHasUsesSectionForAllUnitsCheckBox.Checked := + (pfMainUnitHasUsesSectionForAllUnits in AProject.Flags); + MainUnitHasCreateFormStatementsCheckBox.Checked := + (pfMainUnitHasCreateFormStatements in AProject.Flags); + MainUnitHasTitleStatementCheckBox.Checked := + (pfMainUnitHasTitleStatement in AProject.Flags); + RunnableCheckBox.Checked := (pfRunnable in AProject.Flags); + AlwaysBuildCheckBox.Checked := (pfAlwaysBuild in AProject.Flags); + + // lazdoc + SplitString(Project.LazDocPaths,';',LazDocListBox.Items,true); + + // i18n + AFilename:=Project.POOutputDirectory; + Project.ShortenFilename(AFilename); + POOutDirEdit.Text:=AFilename; + EnableI18NCheckBox.Checked := Project.Enablei18n; + Enablei18nInfo( Project.Enablei18n ); + + + // VersionInfo + VersionSpinEdit.Value := Project.VersionInfo.VersionNr; + MajorRevisionSpinEdit.Value := Project.VersionInfo.MajorRevNr; + MinorRevisionSpinEdit.Value := Project.VersionInfo.MinorRevNr; + BuildEdit.Text := IntToStr(Project.VersionInfo.BuildNr); + + EnableVersionInfo(Project.VersionInfo.UseVersionInfo); + + if Project.VersionInfo.AutoIncrementBuild then + AutomaticallyIncreaseBuildCheckBox.Checked := true; + LanguageSelectionComboBox.Items.Assign(MSLanguages); + LanguageSelectionComboBox.ItemIndex := + MSHexLanguages.IndexOf(Project.VersionInfo.HexLang); + LanguageSelectionComboBox.Sorted := True; + CharacterSetComboBox.Items.Assign(MSCharacterSets); + CharacterSetComboBox.ItemIndex := + MSHexCharacterSets.IndexOf(Project.VersionInfo.HexCharSet); + CharacterSetComboBox.Sorted := True; + DescriptionEdit.Text := Project.VersionInfo.DescriptionString; + CopyrightEdit.Text := Project.VersionInfo.CopyrightString; +end; + +procedure TProjectOptionsDialog.ProjectOptionsClose(Sender: TObject; + var CloseAction: TCloseAction); +var + NewFlags: TProjectFlags; + AFilename: String; + + procedure SetProjectFlag(AFlag: TProjectFlag; AValue: Boolean); + begin + if AValue then + Include(NewFlags, AFlag) + else + Exclude(NewFlags, AFlag); + end; + +begin + if ModalResult = mrOk then + begin + + with Project do + begin + Title := TitleEdit.Text; + TargetFilename := TargetFileEdit.Text; + UseAppBundle := UseAppBundleCheckBox.Checked; + XPManifest.UseManifest := UseXPManifestCheckBox.Checked; + Project.XPManifest.UpdateMainSourceFile(Project.MainFilename); + end; + + // flags + NewFlags := Project.Flags; + SetProjectFlag(pfSaveClosedUnits, SaveClosedUnitInfoCheckBox.Checked); + SetProjectFlag(pfSaveOnlyProjectUnits, + SaveOnlyProjectUnitInfoCheckBox.Checked); + SetProjectFlag(pfMainUnitIsPascalSource, + MainUnitIsPascalSourceCheckBox.Checked); + SetProjectFlag(pfMainUnitHasUsesSectionForAllUnits, + MainUnitHasUsesSectionForAllUnitsCheckBox.Checked); + SetProjectFlag(pfMainUnitHasCreateFormStatements, + MainUnitHasCreateFormStatementsCheckBox.Checked); + SetProjectFlag(pfMainUnitHasTitleStatement, + MainUnitHasTitleStatementCheckBox.Checked); + SetProjectFlag(pfRunnable, RunnableCheckBox.Checked); + SetProjectFlag(pfAlwaysBuild, AlwaysBuildCheckBox.Checked); + Project.Flags := NewFlags; + + if SaveSessionLocationRadioGroup.ItemIndex>=0 then + Project.SessionStorage:=LocalizedNameToProjectSessionStorage( + SaveSessionLocationRadioGroup.Items[ + SaveSessionLocationRadioGroup.ItemIndex]); + + Project.AutoCreateForms := FormsAutoCreateNewFormsCheckBox.Checked; + + SetAutoCreateForms; + SetProjectTitle; + + // lazdoc + Project.LazDocPaths:=StringListToText(LazDocListBox.Items,';',true); + + // i18n + AFilename:=TrimFilename(POOutDirEdit.Text); + Project.LongenFilename(AFilename); + Project.POOutputDirectory:=AFilename; + Project.EnableI18N := EnableI18NCheckBox.Checked; + + // VersionInfo + Project.VersionInfo.UseVersionInfo:=UseVersionInfoCheckBox.Checked; + Project.VersionInfo.AutoIncrementBuild:=AutomaticallyIncreaseBuildCheckBox.Checked; + Project.VersionInfo.VersionNr:=VersionSpinEdit.Value; + Project.VersionInfo.MajorRevNr:=MajorRevisionSpinEdit.Value; + Project.VersionInfo.MinorRevNr:=MinorRevisionSpinEdit.Value; + Project.VersionInfo.BuildNr:=StrToIntDef(BuildEdit.Text,Project.VersionInfo.BuildNr); + Project.VersionInfo.DescriptionString:=DescriptionEdit.Text; + Project.VersionInfo.CopyrightString:=CopyrightEdit.Text; + Project.VersionInfo.HexLang:=MSLanguageToHex(LanguageSelectionComboBox.Text); + Project.VersionInfo.HexCharSet:=MSCharacterSetToHex(CharacterSetComboBox.Text); + if Project.VersionInfo.UseVersionInfo and Project.VersionInfo.Modified then + Project.VersionInfo.UpdateMainSourceFile(Project.MainFilename); + end; + + IDEDialogLayoutList.SaveLayout(Self); +end; + +procedure TProjectOptionsDialog.LazDocAddPathButtonClick(Sender: TObject); +begin + if LazDocPathEdit.Text <> '' then + LazDocListBox.Items.Add(LazDocPathEdit.Text); +end; + +procedure TProjectOptionsDialog.HelpButtonClick(Sender: TObject); +begin + ShowContextHelpForIDE(Self); +end; + +procedure TProjectOptionsDialog.FormsPageResize(Sender: TObject); +begin + with FormsAutoCreatedListBox do + begin + Width := (FormsPage.Width - Left * 2 - 6) div 2; + end; + + with FormsAvailFormsLabel do + Left := FormsAvailFormsListBox.Left; +end; + +procedure TProjectOptionsDialog.AdditionalInfoButtonClick(Sender: TObject); +var + InfoModified: Boolean; +begin + InfoModified:=false; + ShowVersionInfoAdditionailInfoForm(Project.VersionInfo,InfoModified); + if InfoModified then + Project.Modified:=InfoModified; +end; + +procedure TProjectOptionsDialog.EnableI18NCheckBoxChange(Sender: TObject); +begin + Enablei18nInfo(EnableI18NCheckBox.Checked); +end; + +procedure TProjectOptionsDialog.LazDocBrowseButtonClick(Sender: TObject); +begin + if SelectDirectoryDialog.Execute then + LazDocPathEdit.Text := SelectDirectoryDialog.FileName; +end; + +procedure TProjectOptionsDialog.LazDocDeletePathButtonClick(Sender: TObject); +begin + if (LazDocListBox.ItemIndex >= 0) then + LazDocListBox.Items.Delete(LazDocListBox.ItemIndex); +end; + +function TProjectOptionsDialog.GetAutoCreatedFormsList: TStrings; +var + i, j: Integer; +begin + if (FProject <> Nil) and (FProject.MainUnitID >= 0) then + begin + Result := CodeToolBoss.ListAllCreateFormStatements( + FProject.MainUnitInfo.Source); + if Result <> Nil then + for i := 0 to Result.Count - 1 do + begin + j := Pos(':', Result[i]); + if j > 0 then + if 't' + lowercase(copy(Result[i], 1, j - 1)) = lowercase( + copy(Result[i], j + 1, length(Result[i]) - j)) then + Result[i] := copy(Result[i], 1, j - 1); + end// shorten lines of type 'FormName:TFormName' to simply 'FormName' + ; + end + else + Result := Nil; +end; + +function TProjectOptionsDialog.GetProjectTitle: String; +begin + Result := ''; + if (FProject = Nil) or (FProject.MainUnitID < 0) then + exit; + CodeToolBoss.GetApplicationTitleStatement( + FProject.MainUnitInfo.Source, Result); +end; + +procedure TProjectOptionsDialog.FillAutoCreateFormsListbox; +var + sl: TStrings; +begin + sl := GetAutoCreatedFormsList; + FormsAutoCreatedListBox.Items.BeginUpdate; + FormsAutoCreatedListBox.Items.Clear; + if sl <> Nil then + begin + FormsAutoCreatedListBox.Items.Assign(sl); + sl.Free; + end; + FormsAutoCreatedListBox.Items.EndUpdate; +end; + +procedure TProjectOptionsDialog.FillAvailFormsListBox; +var + sl: TStringList; + i: Integer; +begin + FormsAvailFormsListBox.Items.BeginUpdate; + FormsAvailFormsListBox.Items.Clear; + + if (FProject <> Nil) then + begin + sl := TStringList.Create; + try + for i := 0 to FProject.UnitCount - 1 do + if (FProject.Units[i].IsPartOfProject) and + (FProject.Units[i].ComponentName <> '') and + (IndexOfAutoCreateForm(FProject.Units[i].ComponentName) < 0) then + sl.Add(FProject.Units[i].ComponentName); + sl.Sort; + FormsAvailFormsListBox.Items.Assign(sl); + finally + sl.Free; + end; + end; + FormsAvailFormsListBox.Items.EndUpdate; +end; + +function TProjectOptionsDialog.IndexOfAutoCreateForm(FormName: + String): Integer; +var + p: Integer; +begin + p := Pos(':', FormName); + if p > 0 then + FormName := copy(FormName, 1, p - 1); + Result := FormsAutoCreatedListBox.Items.Count - 1; + while (Result >= 0) do + begin + p := Pos(':', FormsAutoCreatedListBox.Items[Result]); + if p < 1 then + p := length(FormsAutoCreatedListBox.Items[Result]) + 1; + if AnsiCompareText(copy(FormsAutoCreatedListBox.Items[Result], 1, p - 1) + , FormName) = 0 then + exit; + dec(Result); + end; +end; + +function TProjectOptionsDialog.FirstAutoCreateFormSelected: Integer; +begin + Result := 0; + while (Result < FormsAutoCreatedListBox.Items.Count) and + (not FormsAutoCreatedListBox.Selected[Result]) do + inc(Result); + if Result = FormsAutoCreatedListBox.Items.Count then + Result := -1; +end; + +function TProjectOptionsDialog.FirstAvailFormSelected: Integer; +begin + Result := 0; + while (Result < FormsAvailFormsListBox.Items.Count) and + (not FormsAvailFormsListBox.Selected[Result]) do + inc(Result); + if Result = FormsAvailFormsListBox.Items.Count then + Result := -1; +end; + +procedure TProjectOptionsDialog.FormsAddToAutoCreatedFormsBtnClick( + Sender: TObject); +var + i: Integer; + NewFormName: String; +begin + FormsAutoCreatedListBox.Items.BeginUpdate; + with FormsAvailFormsListBox do + begin + Items.BeginUpdate; + i := 0; + while i < Items.Count do + if Selected[i] then + begin + NewFormName := Items[i]; + Items.Delete(i); + FormsAutoCreatedListBox.Items.Add(NewFormName); + end + else + inc(i); + Items.EndUpdate; + end; + FormsAutoCreatedListBox.Items.EndUpdate; +end; + +procedure TProjectOptionsDialog.FormsRemoveFromAutoCreatedFormsBtnClick( + Sender: TObject); +var + i, NewPos, cmp: Integer; + OldFormName: String; +begin + FormsAutoCreatedListBox.Items.BeginUpdate; + FormsAvailFormsListBox.Items.BeginUpdate; + i := 0; + while i < FormsAutoCreatedListBox.Items.Count do + if FormsAutoCreatedListBox.Selected[i] then + begin + OldFormName := FormsAutoCreatedListBox.Items[i]; + FormsAutoCreatedListBox.Items.Delete(i); + NewPos := 0; + cmp := 1; + while (NewPos < FormsAvailFormsListBox.Items.Count) do + begin + cmp := AnsiCompareText(FormsAvailFormsListBox.Items[NewPos], OldFormName); + if cmp < 0 then + inc(NewPos) + else + break; + end; + if cmp = 0 then + continue; + FormsAvailFormsListBox.Items.Insert(NewPos, OldFormName); + end + else + inc(i); + FormsAvailFormsListBox.Items.EndUpdate; + FormsAutoCreatedListBox.Items.EndUpdate; +end; + +procedure TProjectOptionsDialog.FormsMoveAutoCreatedFormUpBtnClick( + Sender: TObject); +var + i: Integer; + h: String; +begin + i := FirstAutoCreateFormSelected; + if i < 1 then + exit; + with FormsAutoCreatedListBox do + begin + Items.BeginUpdate; + h := Items[i]; + Items[i] := Items[i - 1]; + Items[i - 1] := h; + Items.EndUpdate; + end; + SelectOnlyThisAutoCreateForm(i - 1); +end; + +procedure TProjectOptionsDialog.FormsMoveAutoCreatedFormDownBtnClick( + Sender: TObject); +var + i: Integer; + h: String; +begin + i := FirstAutoCreateFormSelected; + if (i < 0) or (i >= FormsAutoCreatedListBox.Items.Count - 1) then + exit; + with FormsAutoCreatedListBox do + begin + Items.BeginUpdate; + h := Items[i]; + Items[i] := Items[i + 1]; + Items[i + 1] := h; + Items.EndUpdate; + end; + SelectOnlyThisAutoCreateForm(i + 1); +end; + +procedure TProjectOptionsDialog.POOutDirButtonClick(Sender: TObject); +var + NewDirectory: string; +begin + NewDirectory:=LazSelectDirectory(lisPOChoosePoFileDirectory, + Project.ProjectDirectory); + if NewDirectory='' then exit; + Project.ShortenFilename(NewDirectory); + POOutDirEdit.Text:=NewDirectory; +end; + +procedure TProjectOptionsDialog.UseVersionInfoCheckBoxChange(Sender: TObject); +begin + EnableVersionInfo(UseVersionInfoCheckBox.Checked); +end; + +procedure TProjectOptionsDialog.SelectOnlyThisAutoCreateForm(Index: Integer); +var + i: Integer; +begin + with FormsAutoCreatedListBox do + for i := 0 to Items.Count - 1 do + Selected[i] := (i = Index); +end; + +function TProjectOptionsDialog.SetAutoCreateForms: Boolean; +var + i: Integer; + OldList: TStrings; +begin + Result := True; + if (Project.MainUnitID < 0) or + (not (pfMainUnitHasUsesSectionForAllUnits in Project.Flags)) then + exit; + OldList := GetAutoCreatedFormsList; + if (OldList = Nil) then + exit; + try + if OldList.Count = FormsAutoCreatedListBox.Items.Count then + begin + + { Just exit if the form list is the same } + i := OldList.Count - 1; + while (i >= 0) and + (CompareText(OldList[i], FormsAutoCreatedListBox.Items[i]) = 0) do + dec(i); + if i < 0 then + Exit; + end; + + if not CodeToolBoss.SetAllCreateFromStatements( + Project.MainUnitInfo.Source, FormsAutoCreatedListBox.Items) then + begin + MessageDlg(lisProjOptsError, + Format(lisProjOptsUnableToChangeTheAutoCreateFormList, [LineEnding]), + mtWarning, [mbCancel], 0); + Result := False; + exit; + end; + finally + OldList.Free; + end; +end; + +function TProjectOptionsDialog.SetProjectTitle: Boolean; +var + OldTitle: String; +begin + Result := True; + if (Project.MainUnitID < 0) or + (not (pfMainUnitHasTitleStatement in Project.Flags)) then + exit; + OldTitle := GetProjectTitle; + if (OldTitle = '') and Project.TitleIsDefault then + exit; + + if (OldTitle <> Project.Title) and (not Project.TitleIsDefault) then + if not CodeToolBoss.SetApplicationTitleStatement( + Project.MainUnitInfo.Source, Project.Title) then + begin + MessageDlg(lisProjOptsError, + 'Unable to change project title in source.'#13 + + CodeToolBoss.ErrorMessage, + mtWarning, [mbCancel], 0); + Result := False; + exit; + end;// set Application.Title:= statement + + if (OldTitle <> '') and Project.TitleIsDefault then + if not CodeToolBoss.RemoveApplicationTitleStatement( + Project.MainUnitInfo.Source) then + begin + MessageDlg(lisProjOptsError, + 'Unable to remove project title from source.'#13 + + CodeToolBoss.ErrorMessage, + mtWarning, [mbCancel], 0); + Result := False; + exit; + end;// delete title +end; + +initialization + {$I projectopts_new.lrs} + +end.