UPD: Split tools page to separate editors. Create Terminal tool page.

This commit is contained in:
cobines 2011-09-24 21:39:11 +00:00
commit dc3b4fc255
18 changed files with 742 additions and 439 deletions

View file

@ -204,7 +204,7 @@
<PackageName Value="viewerpackage"/>
</Item7>
</RequiredPackages>
<Units Count="143">
<Units Count="145">
<Unit0>
<Filename Value="doublecmd.lpr"/>
<IsPartOfProject Value="True"/>
@ -958,7 +958,7 @@
<Unit122>
<Filename Value="frames\foptionstools.pas"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="frmOptionsTools"/>
<ComponentName Value="frmOptionsViewer"/>
<ResourceBaseClass Value="Frame"/>
<UnitName Value="fOptionsTools"/>
</Unit122>
@ -1096,6 +1096,20 @@
<ResourceBaseClass Value="Frame"/>
<UnitName Value="fOptionsFilePanelsColors"/>
</Unit142>
<Unit143>
<Filename Value="frames\foptionstoolbase.pas"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="frmOptionsToolBase"/>
<ResourceBaseClass Value="Frame"/>
<UnitName Value="fOptionsToolBase"/>
</Unit143>
<Unit144>
<Filename Value="frames\foptionsterminal.pas"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="frmOptionsTerminal"/>
<ResourceBaseClass Value="Frame"/>
<UnitName Value="fOptionsTerminal"/>
</Unit144>
</Units>
</ProjectOptions>
<CompilerOptions>

View file

@ -75,7 +75,7 @@ object frmOptions: TfrmOptions
Left = 0
Height = 160
Top = 0
Width = 179
Width = 193
Align = alLeft
AutoExpand = True
DefaultItemHeight = 24
@ -87,20 +87,20 @@ object frmOptions: TfrmOptions
Options = [tvoAutoExpand, tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips]
end
object Panel3: TPanel
Left = 182
Left = 196
Height = 160
Top = 0
Width = 335
Width = 321
Align = alClient
BevelOuter = bvNone
ClientHeight = 160
ClientWidth = 335
ClientWidth = 321
TabOrder = 2
object pnlCaption: TPanel
Left = 0
Height = 23
Top = 0
Width = 335
Width = 321
Align = alTop
Color = clActiveCaption
Font.Color = clCaptionText
@ -111,7 +111,7 @@ object frmOptions: TfrmOptions
end
end
object splOptionsSplitter: TSplitter
Left = 179
Left = 193
Height = 160
Top = 0
Width = 3
@ -120,7 +120,7 @@ object frmOptions: TfrmOptions
left = 72
top = 16
Bitmap = {
4C6916000000100000001000000066355CFF66355CFF66355CFF66355CFF6635
4C691A000000100000001000000066355CFF66355CFF66355CFF66355CFF6635
5CFF66355CFF66355CFF66355CFF66355CFF66355CFF66355CFF66355CFF6635
5CFF00000000000000000000000066355CFFB395AFFFC6ACC3FFD3BED0FFD1C0
CEFFC9BBC7FFAA97A7FF877184FF755871FF6A4565FF744B6FFF7E5278FF6635
@ -824,7 +824,135 @@ object frmOptions: TfrmOptions
FEFFFEFEFEFFFEFEFEFFFEFEFEFFFEFEFEFFFEFEFEFFFEFEFEFFFEFEFEFFFEFE
FEFFFFFFFFFF888D8BFF00000000000000008A8F8DFF888D8BFF888D8BFF888D
8BFF888D8BFF888D8BFF888D8BFF888D8BFF888D8BFF888D8BFF888D8BFF888D
8BFF888D8BFF8A8E8CFF00000000
8BFF888D8BFF8A8E8CFF00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00C99B6433C99B6433C99B6433C698
6233C3955F33C0925C33FFFFFF00FFFFFF00B3855033AE804C33A97B4733A376
42339E703D33986B3833FFFFFF00C99B6433C99B64FFD3AE82FFD0AC80FFCEA9
7DFFCBA67BFFC6A074FFB789532DB2844F2DBB956AFFB8946AFFB49066FFAF8B
62FFAB875EFF926432FF996C3933C69963FFC89A63FFFAFAFAFFFAFAFAFFFAFA
FAFFF8F8F8FFD9C6B1FFB1834EE6AC7E4AE6D7C4AFFFF9F9F9FFF9F9F9FFF9F9
F9FFF9F9F9FF8B5D2CFF976938FFC69963FFC59760FFFAFAFAFFCDCDCDFFCACA
CAFFC6C6C6FFF2F2F2FFDDD8D2FFEBE5DFFFFCFCFCFFCCCCCCFFC9C9C9FFBDBD
BDFFF9F9F9FF845726FF916333FFC69963FFC1935CFFFAFAFAFFF2F2F2FFEFEF
EFFFEAEAEAFFD5D5D5FFB5B5B5FFDFDFDFFFF5F5F5FFF1F1F1FFECECECFFDEDE
DEFFF9F9F9FF7D5020FF8A5E2DFFC69862FFBC8E58FFFAFAFAFFCCCCCCFFCACA
CAFFC5C5C5FFD4D4D4FFA7A7A7FFD8D8D8FFF5F5F5FFCBCBCBFFC7C7C7FFBBBB
BBFFF8F8F8FF774A1AFF845828FFC29560FFB78953FFFAFAFAFFF1F1F1FFEDED
EDFFE9E9E9FFD4D4D4FFA6A6A6FFD8D8D8FFF5F5F5FFEFEFEFFFEBEBEBFFDCDC
DCFFF8F8F8FF714415FF7F5323FFBE915CFFB1834EFFF9F9F9FFCCCCCCFFC9C9
C9FFC5C5C5FFD3D3D3FFA6A6A6FFD8D8D8FFF4F4F4FFCACACAFFC6C6C6FFBABA
BAFFF8F8F8FF6B3E10FF7A4D1EFFBA8D58FFAB7D49FFF9F9F9FFF1F1F1FFEDED
EDFFE7E7E7FFD3D3D3FFA5A5A5FFD7D7D7FFF4F4F4FFEEEEEEFFEAEAEAFFDCDC
DCFFF8F8F8FF66390BFF74481AFFB68854FFA57743FFF9F9F9FFF9F9F9FFF9F9
F9FFF8F8F8FFF1F1F1FFE3E3E3FFF3F3F3FFF8F8F8FFF9F9F9FFF8F8F8FFE9E9
E9FFF8F8F8FF623507FF704416FFB0834FFF9E703DFF986B38FF936533FF8D60
2EFF875A29FF825424FFAB9074FFAA8F73FF724516FF6D4011FF693C0DFF6538
0AFF613406FF5E3103FF6C3F12FFAB7E4AFFB38B5DFFB38B5DFFB38B5DFFB38B
5DFFB38B5DFFB38B5DFF7D5121FF794C1DFFB38B5DFFB38B5DFFB38B5DFFB38B
5DFFB38B5DFFB38B5DFF683C0EFFA37642FF9E703DFF986B38FF936533FF8D60
2EFF875A29FF825424FF936839FF906536FF724516FF6D4011FF693C0DFF6538
0AFF613406FF5E3103FF5B2E01FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF008254249F764919E1714415E1825424BAFFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00CFCFCF48648BC2FF4978BEFF2861
BAFF000000360000003600000036000000360000003600000036000000360000
0036000000360000003600000020CFCFCF2ECCCCCCF4C4C7CAFFC1C7CDFF275F
B8FFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFC
FCFFFCFCFCFFFCFCFCFF0000003678787806B1B1B1606787B9FF679AC5FF275E
B8FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF5F5F5FFF4F4F4FFF4F4F4FFF4F4
F4FFF2F2F2FFFBFBFBFF00000036CFCFCF2ECCCCCCF4C4C7CAFFC0C7CDFF265B
B7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF5F5F5FFF5F5F5FFF5F5
F5FFF3F3F3FFFAFAFAFF0000003678787806B1B1B1606783B7FF6699C4FF2659
B7FFF8F8F8FFF8F8F8FFE1A57AFFE1A378FFE1A377FFE0A276FFE0A076FFE0A0
74FFF4F4F4FFFAFAFAFF00000036CFCFCF2ECCCCCCF4C4C6CAFFC0C7CDFF2656
B5FFF9F9F9FFF9F9F9FFE1A378FFEAC0A3FFEAC0A2FFEABFA1FFEABEA0FFDF9E
71FFF4F4F4FFF7F7F7FF0000003678787806B1B1B1606682B5FF6596C3FF2555
B4FFFAFAFAFFFAFAFAFFE0A276FFE0A076FFE0A074FFDF9E73FFDC9C72FFDC9B
6FFFF2F2F2FFF6F6F6FD00000036CFCFCF2ECCCCCCF4C4C6CAFFC0C7CDFF2552
B2FFFBFBFBFFFAFAFAFFF8F8F8FFF8F8F8FFF8F8F8FFF7F7F7FFF3F3F3FFF2F2
F2FFF0F0F0FFEEEEEEF40000003378787806B1B1B160657FB5FF6494C2FF2451
B2FFFAFAFAFFF8F8F8FFE09F73FFDD9D71FFDC9A6EFFDA996BFFD9986AFFD493
6AFFEAEAEAFFECECECFF00000036CFCFCF2ECCCCCCF4C4C6CAFFC0C6CDFF234E
B1FFFAFAFAFFF9F9F9FFF8F8F8FFF7F7F7FFF6F6F6FFFAFAFAFFFAFAFAFFFAFA
FAFFF2F2F2FFD1D1D1FF0303033878787806B1B1B160647CB3FF6392C1FF234B
AFFFF9F9F9FFF9F9F9FFF9F9F9FFF6F6F6FFF3F3F3FFFAFAFAFFFAFAFAFFF2F2
F2FFC9C9C9FFE8E8E8FF00000036CFCFCF2ECCCCCCF4C4C6CAFFC0C6CCFF2249
AEFFFAFAFAFFFAFAFAFFF8F8F8FFF4F4F4FFF1F1F1FFFBFBFBFFF2F2F2FFCACA
CAFFE6E6E6FFFCFCFCFF0000003678787806B1B1B1606379B3FF618FBFFF2246
AEFFFAFAFAFFFAFAFAFFF6F6F6FFF3F3F3FFEEEEEEFFF3F3F3FFCACACAFFE6E6
E6FFFBFBFBFFFCFCFCFF00000036CFCFCF2ECCCCCCF4C4C6CAFFC0C6CCFF2143
ACFFFDFDFDFFFBFBFBFFF8F8F8FFF4F4F4FFEDEDEDFFD5D5D5FFE9E9E9FFFFFF
FF00FFFFFF00FFFFFF000000003678787806747474212C4BA5FF355DAFFF2142
ABFFDCDCDCFFD8D8D8FFD4D4D4FFD2D2D2FFD1D1D1FFD3D3D3FFD1D1D1FFCBCB
CBFFCDCDCDFFC7C7C7FF00000036FFFFFF00FFFFFF001225603F18317E811326
6364000000360000003600000036000000360000003600000036000000360000
0036000000360000003600000020FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00AAA39E99C3BFBBFAC8C4BFFFC8C2BEFFC5C0
BAFFC1BAB5FFBDB6B1FFB9B2ABFFB5ACA5FFB0A79FFFABA098FFA69B92FFA195
8BFF9C8F85FF94877CFA7E736B6EC3BFBBFE4A4FD3FF17ADE2FF3EB042FFE1DB
D6FFE1DBD6FFE1DBD6FFE1DBD6FFE1DBD6FFE1DBD6FFE1DBD6FFE1DBD6FFE1DB
D6FFE1DCD7FFEDEAE7FF8B7B6E93C9C3BFFFB8BBF1FF94E4F6FFB2E5B4FFEDE9
E6FFEDE9E6FFEDE9E6FFEDE9E6FFEDE9E6FFEDE9E6FFEDE9E6FFEDE9E6FFEDE9
E6FFEDE9E6FFF5F4F2FF86776994C5C0BAFF313131FF323232FF333333FF3434
34FF353535FF363636FF373737FF393939FF3B3B3BFF3C3C3CFF3D3D3DFF3F3F
3FFF414141FF434343FF7F706494C3BEB9FF343434FF202020FF212121FF2222
22FF242424FF252525FF262626FF282828FF2A2A2AFF2C2C2CFF2D2D2DFF2F2F
2FFF313131FF464646FF8F7F7394C1BAB5FF343434FF202020FFCFCFCFFFA8A8
A8FF242424FF252525FF262626FF282828FF2A2A2AFF2C2C2CFF2D2D2DFF2F2F
2FFF313131FF464646FF8B7B6E94BEB7B2FF393939FF252525FF262626FFDEDE
DEFF747474FF2A2A2AFF2C2C2CFF2D2D2DFF2F2F2FFF313131FF323232FF3434
34FF353535FF4B4B4BFF85766894BAB2ACFF3D3D3DFF292929FFD1D1D1FFADAD
ADFF2E2E2EFF2F2F2FFF313131FF323232FF343434FF363636FF373737FF3838
38FF3A3A3AFF4E4E4EFF7E6F6394B6AEA7FF424242FF2F2F2FFF303030FF3131
31FF333333FF343434FF363636FF363636FF383838FF3A3A3AFF3B3B3BFF3D3D
3DFF3D3D3DFF525252FF786B5F94B2A9A1FF474747FF333333FF343434FF3636
36FF373737FF393939FF3A3A3AFF3B3B3BFF3C3C3CFF3E3E3EFF3F3F3FFF4040
40FF414141FF555555FF73665B94AEA49CFF4B4B4BFF383838FF393939FF3A3A
3AFF3C3C3CFF3D3D3DFF3F3F3FFF3F3F3FFF414141FF424242FF424242FF4444
44FF454545FF575757FF6E615694A99F96FF4E4E4EFF3D3D3DFF3D3D3DFF3E3E
3EFF3F3F3FFF414141FF424242FF434343FF444444FF454545FF464646FF4646
46FF484848FF5A5A5AFF695D53949D938AF2525252FF535353FF545454FF5555
55FF565656FF575757FF575757FF585858FF595959FF5A5A5AFF5B5B5BFF5C5C
5CFF5C5C5CFF5D5D5DFF61564C8C82786F6F91857CD293857CDF8F8276DF8C7E
72DF88796DDF847569DF7F7065DF7A6D61DF76695DDF71645ADF6E6156DF695D
53DF665A51DF61554CD2554C4440FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000001C000000330000
0036000000360000003600000036000000360000003600000036000000360000
002000000002FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000033F8F8F8F0FBFB
FBFDFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFF8F8F8FF9494
94910000002000000002FFFFFF00FFFFFF00FFFFFF0000000036FBFBFBFDF4F4
F4FFF5F5F5FFF5F5F5FFF5F5F5FFF1F1F1FFEFEFEFFFE9E9E9FFFCFCFCFFE7E7
E7FF959595910000002000000002FFFFFF000000000100000036FCFCFCFFF7F7
F7FFF9F9F9FFF7F7F7FFF7F7F7FFF3F3F3FFF0F0F0FFEAEAEAFFFCFCFCFFF6F6
F6FFF4F4F4FF9999999100000020FFFFFF000000000100000036EFF0FBFFF9F9
F9FFF9F9F9FFF9F9F9FFF7F7F7FFF6F6F6FFF2F2F2FFEBEBEBFFFCFCFCFFFCFC
FCFFFCFCFCFFFCFCFCFF00000036FFFFFF0000000001070A3642646AF3FF5253
F2FFFCFCFCFF5A57F4FF6568F4FFEBECF7FFF5F5F5FFF1F1F1FFECECECFFEAEA
EAFFE6E6E6FFFCFCFCFF00000036FFFFFF001B2DE013343EE3D26366F2FF565F
F2FFFCFCFCFF5A5BF4FF6868F3FF636BF3FFE8EAF7FFF5F5F5FFF2F2F2FFEFEF
EFFFEDEDEDFFFCFCFCFF000000361B2FEC584A4DF2F76265F1FF5562F2FFE3E7
FAFFFCFCFCFFE4E6FAFF575CF2FF6265F1FF4D53F1FFA9B5F2FFF6F6F6FFF3F3
F3FFF2F2F2FFFCFCFCFF00000036464AF1F16B70F3FF474EEEFCCDD5F7FFFCFC
FCFFFCFCFCFFFCFCFCFFCED4F8FF4A51EFFF676EF0FF4A59EFFFF3F5F8FFF6F6
F6FFF6F6F6FFFCFCFCFF000000361334E7584450F0F75B65F0FF5065EDFFE2E8
F9FFFCFCFCFFE3E7FAFF5362EFFF5B65F0FF4755EDFFA8B9F2FFF9F9F9FFF9F9
F9FFF8F8F8FFFCFCFCFF00000036FFFFFF000C36D6132847DAD25565EEFF4E6A
EBFFFCFCFCFF5264EFFF5964EFFF5972ECFFEAEEF9FFFAFAFAFFFAFAFAFFF8F8
F8FFF8F8F8FFFCFCFCFF00000036FFFFFF0000000001020E32425773EAFF4662
EAFFFCFCFCFF495CEDFF5972ECFFEDF0F9FFFAFAFAFFFAFAFAFFFAFAFAFFFAFA
FAFFFAFAFAFFFCFCFCFF00000036FFFFFF000000000100000036FCFCFCFFFCFC
FCFFFCFCFCFFFCFCFCFFFCFCFCFFFBFBFBFFFBFBFBFFFBFBFBFFFBFBFBFFFBFB
FBFFFBFBFBFFFCFCFCFF00000036FFFFFF000000000100000036FCFCFCFEFCFC
FCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFC
FCFFFCFCFCFFFCFCFCFD00000036FFFFFF00FFFFFF0000000034F9F9F9F5FCFC
FCFDFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFC
FCFFFCFCFCFDF9F9F9F300000033FFFFFF00FFFFFF000000001D000000340000
0036000000360000003600000036000000360000003600000036000000360000
003600000036000000330000001D
}
end
end

View file

@ -1,75 +1,25 @@
inherited frmOptionsBehavior: TfrmOptionsBehavior
Height = 589
Width = 826
ClientHeight = 589
ClientWidth = 826
Height = 501
Width = 825
ClientHeight = 501
ClientWidth = 825
OnResize = FrameResize
DesignTop = 2
object lblRunInTerm: TLabel[0]
AnchorSideTop.Control = edtRunInTerm
AnchorSideTop.Side = asrCenter
Left = 8
Height = 22
Top = 11
Width = 110
Caption = 'Run in terminal:'
ParentColor = False
end
object lblRunTerm: TLabel[1]
AnchorSideTop.Control = edtRunTerm
AnchorSideTop.Side = asrCenter
Left = 8
Height = 22
Top = 46
Width = 93
Caption = 'Run terminal:'
ParentColor = False
end
object edtRunInTerm: TEdit[2]
AnchorSideLeft.Control = lblRunInTerm
AnchorSideLeft.Side = asrBottom
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 124
Height = 29
Top = 8
Width = 692
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6
BorderSpacing.Right = 10
TabOrder = 0
end
object edtRunTerm: TEdit[3]
AnchorSideLeft.Control = edtRunInTerm
AnchorSideTop.Control = edtRunInTerm
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = edtRunInTerm
AnchorSideRight.Side = asrBottom
Left = 124
Height = 29
Top = 43
Width = 692
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
TabOrder = 1
end
object gbMisc1: TGroupBox[4]
AnchorSideTop.Control = edtRunTerm
object gbMisc1: TGroupBox[0]
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = gbMisc2
Left = 10
Left = 8
Height = 183
Top = 78
Width = 445
Top = 8
Width = 446
Anchors = [akTop, akLeft, akRight]
AutoSize = True
BorderSpacing.Top = 6
BorderSpacing.Right = 6
ChildSizing.LeftRightSpacing = 8
ChildSizing.TopBottomSpacing = 6
ClientHeight = 161
ClientWidth = 441
TabOrder = 3
ClientWidth = 442
TabOrder = 0
object cbOnlyOnce: TCheckBox
AnchorSideLeft.Control = gbMisc1
AnchorSideTop.Control = gbMisc1
@ -78,7 +28,7 @@ inherited frmOptionsBehavior: TfrmOptionsBehavior
Left = 8
Height = 25
Top = 6
Width = 425
Width = 426
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
Caption = 'Allow only one copy of DC at a time'
@ -93,7 +43,7 @@ inherited frmOptionsBehavior: TfrmOptionsBehavior
Left = 8
Height = 25
Top = 37
Width = 425
Width = 426
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
Caption = 'Lynx-like movement'
@ -108,7 +58,7 @@ inherited frmOptionsBehavior: TfrmOptionsBehavior
Left = 8
Height = 25
Top = 68
Width = 425
Width = 426
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
Caption = 'Short file size format'
@ -123,7 +73,7 @@ inherited frmOptionsBehavior: TfrmOptionsBehavior
Left = 8
Height = 25
Top = 99
Width = 425
Width = 426
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
Caption = 'Mo&ve icon to system tray when minimized'
@ -138,7 +88,7 @@ inherited frmOptionsBehavior: TfrmOptionsBehavior
Left = 8
Height = 25
Top = 130
Width = 425
Width = 426
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
Caption = 'Always show tray icon'
@ -146,23 +96,20 @@ inherited frmOptionsBehavior: TfrmOptionsBehavior
TabOrder = 4
end
end
object gbMisc2: TGroupBox[5]
object gbMisc2: TGroupBox[1]
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = edtRunTerm
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = edtRunTerm
AnchorSideTop.Control = gbMisc1
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = gbMisc1
AnchorSideBottom.Side = asrBottom
Left = 461
Left = 460
Height = 183
Top = 78
Top = 8
Width = 355
Anchors = [akTop, akRight, akBottom]
BorderSpacing.Top = 6
ClientHeight = 161
ClientWidth = 351
TabOrder = 4
TabOrder = 1
object lblMouseMode: TLabel
AnchorSideTop.Control = cbMouseMode
AnchorSideTop.Side = asrCenter
@ -257,24 +204,24 @@ inherited frmOptionsBehavior: TfrmOptionsBehavior
TabOrder = 3
end
end
object gbDateTimeFormat: TGroupBox[6]
object gbDateTimeFormat: TGroupBox[2]
AnchorSideLeft.Control = gbMisc1
AnchorSideTop.Control = gbMisc1
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = gbMisc1
AnchorSideRight.Side = asrBottom
Left = 10
Left = 8
Height = 135
Top = 267
Width = 445
Top = 197
Width = 446
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
Caption = 'Date and time'
ChildSizing.LeftRightSpacing = 6
ChildSizing.TopBottomSpacing = 6
ClientHeight = 113
ClientWidth = 441
TabOrder = 5
ClientWidth = 442
TabOrder = 2
object lblDateTimeFormat: TLabel
AnchorSideLeft.Control = gbDateTimeFormat
AnchorSideRight.Control = gbDateTimeFormat
@ -282,7 +229,7 @@ inherited frmOptionsBehavior: TfrmOptionsBehavior
Left = 8
Height = 22
Top = 6
Width = 427
Width = 428
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 8
Caption = 'Date and time format:'
@ -311,7 +258,7 @@ inherited frmOptionsBehavior: TfrmOptionsBehavior
Left = 8
Height = 29
Top = 34
Width = 425
Width = 426
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 8
BorderSpacing.Top = 6
@ -331,7 +278,7 @@ inherited frmOptionsBehavior: TfrmOptionsBehavior
TabOrder = 0
end
end
object gbScrolling: TGroupBox[7]
object gbScrolling: TGroupBox[3]
AnchorSideLeft.Control = gbMisc2
AnchorSideTop.Control = gbMisc2
AnchorSideTop.Side = asrBottom
@ -339,9 +286,9 @@ inherited frmOptionsBehavior: TfrmOptionsBehavior
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = gbDateTimeFormat
AnchorSideBottom.Side = asrBottom
Left = 461
Left = 460
Height = 135
Top = 267
Top = 197
Width = 355
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Top = 6
@ -350,7 +297,7 @@ inherited frmOptionsBehavior: TfrmOptionsBehavior
ChildSizing.TopBottomSpacing = 6
ClientHeight = 113
ClientWidth = 351
TabOrder = 2
TabOrder = 3
object rbScrollLineByLineCursor: TRadioButton
AnchorSideLeft.Control = gbScrolling
AnchorSideTop.Control = gbScrolling
@ -413,24 +360,24 @@ inherited frmOptionsBehavior: TfrmOptionsBehavior
Value = 1
end
end
object gbMisc3: TGroupBox[8]
object gbMisc3: TGroupBox[4]
AnchorSideLeft.Control = gbDateTimeFormat
AnchorSideTop.Control = gbDateTimeFormat
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = gbDateTimeFormat
AnchorSideRight.Side = asrBottom
Left = 10
Left = 8
Height = 152
Top = 408
Width = 445
Top = 338
Width = 446
Anchors = [akTop, akLeft, akRight]
AutoSize = True
BorderSpacing.Top = 6
ChildSizing.LeftRightSpacing = 8
ChildSizing.TopBottomSpacing = 6
ClientHeight = 130
ClientWidth = 441
TabOrder = 6
ClientWidth = 442
TabOrder = 4
object cbCutTextToColWidth: TCheckBox
AnchorSideLeft.Control = gbMisc3
AnchorSideTop.Control = gbMisc3
@ -439,7 +386,7 @@ inherited frmOptionsBehavior: TfrmOptionsBehavior
Left = 8
Height = 25
Top = 6
Width = 425
Width = 426
Anchors = [akTop, akLeft, akRight]
Caption = 'Cut text to column width'
TabOrder = 0
@ -453,7 +400,7 @@ inherited frmOptionsBehavior: TfrmOptionsBehavior
Left = 8
Height = 25
Top = 37
Width = 425
Width = 426
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
Caption = 'Show system and hidden files'
@ -468,7 +415,7 @@ inherited frmOptionsBehavior: TfrmOptionsBehavior
Left = 8
Height = 25
Top = 68
Width = 425
Width = 426
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
Caption = 'Load file list in separate thread'
@ -483,14 +430,14 @@ inherited frmOptionsBehavior: TfrmOptionsBehavior
Left = 8
Height = 25
Top = 99
Width = 425
Width = 426
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
Caption = 'Load icons after file list'
TabOrder = 3
end
end
object gbMisc4: TGroupBox[9]
object gbMisc4: TGroupBox[5]
AnchorSideLeft.Control = gbScrolling
AnchorSideTop.Control = gbScrolling
AnchorSideTop.Side = asrBottom
@ -498,15 +445,15 @@ inherited frmOptionsBehavior: TfrmOptionsBehavior
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = gbMisc3
AnchorSideBottom.Side = asrBottom
Left = 461
Left = 460
Height = 152
Top = 408
Top = 338
Width = 355
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Top = 6
ClientHeight = 130
ClientWidth = 351
TabOrder = 7
TabOrder = 5
object ledDriveBlackList: TLabeledEdit
AnchorSideLeft.Control = gbMisc4
AnchorSideRight.Control = gbMisc4
@ -520,11 +467,13 @@ inherited frmOptionsBehavior: TfrmOptionsBehavior
BorderSpacing.Left = 10
BorderSpacing.Right = 10
EditLabel.AnchorSideLeft.Control = ledDriveBlackList
EditLabel.AnchorSideRight.Control = ledDriveBlackList
EditLabel.AnchorSideRight.Side = asrBottom
EditLabel.AnchorSideBottom.Control = ledDriveBlackList
EditLabel.Left = 10
EditLabel.Height = 22
EditLabel.Top = -1
EditLabel.Width = 99
EditLabel.Width = 331
EditLabel.Caption = 'Drive blacklist:'
EditLabel.ParentColor = False
ParentShowHint = False

View file

@ -1,5 +1,3 @@
TFRMOPTIONSBEHAVIOR.LBLRUNINTERM.CAPTION=Run in terminal:
TFRMOPTIONSBEHAVIOR.LBLRUNTERM.CAPTION=Run terminal:
TFRMOPTIONSBEHAVIOR.CBONLYONCE.CAPTION=Allow only one copy of DC at a time
TFRMOPTIONSBEHAVIOR.CBLYNXLIKE.CAPTION=Lynx-like movement
TFRMOPTIONSBEHAVIOR.CBSHORTFILESIZEFORMAT.CAPTION=Short file size format

View file

@ -49,8 +49,6 @@ type
cbShowSystemFiles: TCheckBox;
chkAutoFillColumns: TCheckBox;
cmbAutoSizeColumn: TComboBox;
edtRunTerm: TEdit;
edtRunInTerm: TEdit;
gbDateTimeFormat: TGroupBox;
gbMisc1: TGroupBox;
gbMisc2: TGroupBox;
@ -61,8 +59,6 @@ type
lblDateTimeExample: TLabel;
lblDateTimeFormat: TLabel;
lblMouseMode: TLabel;
lblRunTerm: TLabel;
lblRunInTerm: TLabel;
ledDriveBlackList: TLabeledEdit;
rbScrollPageByPage: TRadioButton;
rbScrollLineByLine: TRadioButton;
@ -126,8 +122,6 @@ end;
procedure TfrmOptionsBehavior.Load;
begin
edtRunInTerm.Text:= gRunInTerm;
edtRunTerm.Text:=gRunTerm;
cbOnlyOnce.Checked:= gOnlyOneAppInstance;
cbLynxLike.Checked:=gLynxLike;
cbShortFileSizeFormat.Checked:=gShortFileSizeFormat;
@ -166,8 +160,6 @@ function TfrmOptionsBehavior.Save: TOptionsEditorSaveFlags;
begin
Result := [];
gRunInTerm:=edtRunInTerm.Text;
gRunTerm:= edtRunTerm.Text;
gOnlyOneAppInstance:=cbOnlyOnce.Checked;
gLynxLike:=cbLynxLike.Checked;
gShortFileSizeFormat:=cbShortFileSizeFormat.Checked;

View file

@ -104,6 +104,7 @@ uses
fOptionsPlugins,
fOptionsQuickSearchFilter,
fOptionsTabs,
fOptionsTerminal,
fOptionsTools,
fOptionsToolTips;
@ -203,11 +204,15 @@ end;
procedure MakeEditorsClassList;
var
Main: TOptionsEditorClassList absolute OptionsEditorClassList;
Colors: TOptionsEditorRec;
Colors, Tools: TOptionsEditorRec;
begin
Main.Add(TfrmOptionsLanguage);
Main.Add(TfrmOptionsBehavior);
Main.Add(TfrmOptionsTools);
Tools := Main.Add(TOptionsToolsGroup);
Tools.Children.Add(TfrmOptionsViewer);
Tools.Children.Add(TfrmOptionsEditor);
Tools.Children.Add(TfrmOptionsDiffer);
Tools.Children.Add(TfrmOptionsTerminal);
Main.Add(TfrmOptionsFonts);
Colors := Main.Add(TOptionsColorsGroup);
Colors.Children.Add(TfrmOptionsFilePanelsColors);

View file

@ -45,11 +45,31 @@ type
class function GetTitle: String; override;
end;
{ TOptionsToolsGroup }
TOptionsToolsGroup = class(TOptionsGroup)
public
class function GetIconIndex: Integer; override;
class function GetTitle: String; override;
end;
implementation
uses
uLng;
{ TOptionsToolsGroup }
class function TOptionsToolsGroup.GetIconIndex: Integer;
begin
Result := 2;
end;
class function TOptionsToolsGroup.GetTitle: String;
begin
Result := rsOptionsEditorTools;
end;
{ TOptionsColorsGroup }
class function TOptionsColorsGroup.GetIconIndex: Integer;

View file

@ -66,7 +66,7 @@ uses
class function TfrmOptionsLog.GetIconIndex: Integer;
begin
Result := 10;
Result := 23;
end;
class function TfrmOptionsLog.GetTitle: String;

View file

@ -0,0 +1,52 @@
inherited frmOptionsTerminal: TfrmOptionsTerminal
Height = 147
Width = 519
ClientHeight = 147
ClientWidth = 519
object lblRunInTerm: TLabel[0]
AnchorSideTop.Side = asrCenter
Left = 8
Height = 22
Top = 11
Width = 110
Caption = 'Run in terminal:'
ParentColor = False
end
object edtRunInTerm: TEdit[1]
AnchorSideLeft.Control = lblRunInTerm
AnchorSideLeft.Side = asrBottom
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 124
Height = 29
Top = 8
Width = 385
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6
BorderSpacing.Right = 10
TabOrder = 0
end
object lblRunTerm: TLabel[2]
AnchorSideTop.Side = asrCenter
Left = 8
Height = 22
Top = 46
Width = 93
Caption = 'Run terminal:'
ParentColor = False
end
object edtRunTerm: TEdit[3]
AnchorSideLeft.Control = edtRunInTerm
AnchorSideTop.Control = edtRunInTerm
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = edtRunInTerm
AnchorSideRight.Side = asrBottom
Left = 124
Height = 29
Top = 43
Width = 385
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
TabOrder = 1
end
end

View file

@ -0,0 +1,2 @@
TFRMOPTIONSTERMINAL.LBLRUNINTERM.CAPTION=Run in terminal:
TFRMOPTIONSTERMINAL.LBLRUNTERM.CAPTION=Run terminal:

View file

@ -0,0 +1,83 @@
{
Double Commander
-------------------------------------------------------------------------
Terminal options page
Copyright (C) 2006-2011 Koblov Alexander (Alexx2000@mail.ru)
This program 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 program 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.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
}
unit fOptionsTerminal;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils,
fOptionsFrame, StdCtrls;
type
{ TfrmOptionsTerminal }
TfrmOptionsTerminal = class(TOptionsEditor)
edtRunInTerm: TEdit;
edtRunTerm: TEdit;
lblRunInTerm: TLabel;
lblRunTerm: TLabel;
protected
procedure Load; override;
function Save: TOptionsEditorSaveFlags; override;
public
class function GetIconIndex: Integer; override;
class function GetTitle: String; override;
end;
implementation
{$R *.lfm}
uses
uGlobs, uLng;
{ TfrmOptionsTerminal }
procedure TfrmOptionsTerminal.Load;
begin
edtRunInTerm.Text := gRunInTerm;
edtRunTerm.Text := gRunTerm;
end;
function TfrmOptionsTerminal.Save: TOptionsEditorSaveFlags;
begin
gRunInTerm := edtRunInTerm.Text;
gRunTerm := edtRunTerm.Text;
Result := [];
end;
class function TfrmOptionsTerminal.GetIconIndex: Integer;
begin
Result := 24;
end;
class function TfrmOptionsTerminal.GetTitle: String;
begin
Result := rsOptionsEditorTerminal;
end;
end.

View file

@ -0,0 +1,102 @@
inherited frmOptionsToolBase: TfrmOptionsToolBase
Height = 265
Width = 589
ClientHeight = 265
ClientWidth = 589
object edtToolsParameters: TEdit[0]
AnchorSideLeft.Control = lblToolsParameters
AnchorSideTop.Control = lblToolsParameters
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = fneToolsPath
AnchorSideRight.Side = asrBottom
Left = 8
Height = 29
Top = 139
Width = 554
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 4
OnChange = edtToolsParametersChange
TabOrder = 2
end
object fneToolsPath: TFileNameEdit[1]
AnchorSideLeft.Control = lblToolsPath
AnchorSideTop.Control = lblToolsPath
AnchorSideTop.Side = asrBottom
Left = 8
Height = 29
Top = 74
Width = 554
OnAcceptFileName = fneToolsPathAcceptFileName
DialogOptions = []
FilterIndex = 0
HideDirectories = False
ButtonWidth = 23
NumGlyphs = 0
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 4
MaxLength = 0
TabOrder = 1
OnChange = fneToolsPathChange
end
object lblToolsPath: TLabel[2]
AnchorSideLeft.Control = cbToolsUseExternalProgram
AnchorSideTop.Control = cbToolsUseExternalProgram
AnchorSideTop.Side = asrBottom
Left = 8
Height = 22
Top = 48
Width = 182
BorderSpacing.Top = 15
Caption = 'Path to program to execute'
ParentColor = False
end
object lblToolsParameters: TLabel[3]
AnchorSideLeft.Control = cbToolsUseExternalProgram
AnchorSideTop.Control = fneToolsPath
AnchorSideTop.Side = asrBottom
Left = 8
Height = 22
Top = 113
Width = 150
BorderSpacing.Top = 10
Caption = 'Additional parameters'
ParentColor = False
end
object cbToolsKeepTerminalOpen: TCheckBox[4]
AnchorSideLeft.Control = cbToolsRunInTerminal
AnchorSideTop.Control = cbToolsRunInTerminal
AnchorSideTop.Side = asrBottom
Left = 23
Height = 25
Top = 207
Width = 381
BorderSpacing.Left = 15
BorderSpacing.Top = 2
Caption = 'Keep terminal window open after executing program'
OnChange = cbToolsKeepTerminalOpenChange
TabOrder = 4
end
object cbToolsRunInTerminal: TCheckBox[5]
AnchorSideLeft.Control = edtToolsParameters
AnchorSideTop.Control = edtToolsParameters
AnchorSideTop.Side = asrBottom
Left = 8
Height = 25
Top = 180
Width = 158
BorderSpacing.Top = 12
Caption = 'Execute in terminal'
OnChange = cbToolsRunInTerminalChange
TabOrder = 3
end
object cbToolsUseExternalProgram: TCheckBox[6]
Left = 8
Height = 25
Top = 8
Width = 171
BorderSpacing.Top = 12
Caption = 'Use external program'
OnChange = cbToolsUseExternalProgramChange
TabOrder = 0
end
end

View file

@ -0,0 +1,5 @@
TFRMOPTIONSTOOLBASE.LBLTOOLSPATH.CAPTION=Path to program to execute
TFRMOPTIONSTOOLBASE.LBLTOOLSPARAMETERS.CAPTION=Additional parameters
TFRMOPTIONSTOOLBASE.CBTOOLSKEEPTERMINALOPEN.CAPTION=Keep terminal window open after executing program
TFRMOPTIONSTOOLBASE.CBTOOLSRUNINTERMINAL.CAPTION=Execute in terminal
TFRMOPTIONSTOOLBASE.CBTOOLSUSEEXTERNALPROGRAM.CAPTION=Use external program

View file

@ -0,0 +1,146 @@
{
Double Commander
-------------------------------------------------------------------------
Base options page for external tools (Viewer, Editor, Differ)
Copyright (C) 2006-2011 Koblov Alexander (Alexx2000@mail.ru)
This program 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 program 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.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
}
unit fOptionsToolBase;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Controls, StdCtrls, EditBtn,
fOptionsFrame, uGlobs;
type
{ TfrmOptionsToolBase }
TfrmOptionsToolBase = class(TOptionsEditor)
cbToolsKeepTerminalOpen: TCheckBox;
cbToolsRunInTerminal: TCheckBox;
cbToolsUseExternalProgram: TCheckBox;
edtToolsParameters: TEdit;
fneToolsPath: TFileNameEdit;
lblToolsParameters: TLabel;
lblToolsPath: TLabel;
procedure cbToolsKeepTerminalOpenChange(Sender: TObject);
procedure cbToolsRunInTerminalChange(Sender: TObject);
procedure cbToolsUseExternalProgramChange(Sender: TObject);
procedure edtToolsParametersChange(Sender: TObject);
procedure fneToolsPathAcceptFileName(Sender: TObject; var Value: String);
procedure fneToolsPathChange(Sender: TObject);
private
FExternalTool: TExternalTool;
FExternalToolOptions: TExternalToolOptions;
FOnUseExternalProgramChange: TNotifyEvent;
protected
procedure Init; override;
procedure Load; override;
function Save: TOptionsEditorSaveFlags; override;
property ExternalTool: TExternalTool read FExternalTool write FExternalTool;
property OnUseExternalProgramChange: TNotifyEvent read FOnUseExternalProgramChange write FOnUseExternalProgramChange;
public
constructor Create(TheOwner: TComponent); override;
end;
implementation
{$R *.lfm}
uses
uDCUtils, uLng;
{ TfrmOptionsToolBase }
procedure TfrmOptionsToolBase.cbToolsKeepTerminalOpenChange(Sender: TObject);
begin
FExternalToolOptions.KeepTerminalOpen := cbToolsKeepTerminalOpen.Checked;
end;
procedure TfrmOptionsToolBase.cbToolsRunInTerminalChange(Sender: TObject);
begin
cbToolsKeepTerminalOpen.Enabled := cbToolsRunInTerminal.Checked;
FExternalToolOptions.RunInTerminal := cbToolsRunInTerminal.Checked;
end;
procedure TfrmOptionsToolBase.cbToolsUseExternalProgramChange(Sender: TObject);
begin
lblToolsPath.Enabled := cbToolsUseExternalProgram.Checked;
fneToolsPath.Enabled := cbToolsUseExternalProgram.Checked;
lblToolsParameters.Enabled := cbToolsUseExternalProgram.Checked;
edtToolsParameters.Enabled := cbToolsUseExternalProgram.Checked;
cbToolsRunInTerminal.Enabled := cbToolsUseExternalProgram.Checked;
cbToolsKeepTerminalOpen.Enabled := cbToolsUseExternalProgram.Checked;
FExternalToolOptions.Enabled := cbToolsUseExternalProgram.Checked;
if Assigned(FOnUseExternalProgramChange) then
FOnUseExternalProgramChange(Self);
end;
procedure TfrmOptionsToolBase.edtToolsParametersChange(Sender: TObject);
begin
FExternalToolOptions.Parameters := edtToolsParameters.Text;
end;
procedure TfrmOptionsToolBase.fneToolsPathAcceptFileName(Sender: TObject; var Value: String);
begin
Value:= SetCmdDirAsEnvVar(Value);
end;
procedure TfrmOptionsToolBase.fneToolsPathChange(Sender: TObject);
begin
// Use fneToolsPath.Caption because Filename is one letter behind when typing manually.
FExternalToolOptions.Path := fneToolsPath.Caption;
end;
procedure TfrmOptionsToolBase.Init;
begin
// Enable/disable tools controls.
cbToolsUseExternalProgramChange(nil);
end;
procedure TfrmOptionsToolBase.Load;
begin
FExternalToolOptions := gExternalTools[FExternalTool];
cbToolsUseExternalProgram.Checked := FExternalToolOptions.Enabled;
fneToolsPath.FileName := FExternalToolOptions.Path;
edtToolsParameters.Text := FExternalToolOptions.Parameters;
cbToolsRunInTerminal.Checked := FExternalToolOptions.RunInTerminal;
cbToolsKeepTerminalOpen.Checked := FExternalToolOptions.KeepTerminalOpen;
end;
function TfrmOptionsToolBase.Save: TOptionsEditorSaveFlags;
begin
gExternalTools[FExternalTool] := FExternalToolOptions;
Result := [];
end;
constructor TfrmOptionsToolBase.Create(TheOwner: TComponent);
begin
inherited Create(TheOwner);
FOnUseExternalProgramChange := nil;
end;
end.

View file

@ -1,158 +1,28 @@
inherited frmOptionsTools: TfrmOptionsTools
inherited frmOptionsViewer: TfrmOptionsViewer
Height = 417
Width = 957
ClientHeight = 417
ClientWidth = 957
object stgTools: TStringGrid[0]
Left = 0
Height = 417
Top = 0
Width = 142
Align = alLeft
AutoFillColumns = True
ColCount = 1
Columns = <
item
Title.Caption = 'Tool'
Width = 138
end>
ExtendedSelect = False
FixedCols = 0
Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goRowSelect, goThumbTracking]
RowCount = 4
TabOrder = 0
OnSelectCell = stgToolsSelectCell
ColWidths = (
138
)
Cells = (
3
0
1
'Viewer'
0
2
'Editor'
0
3
'Differ'
)
inherited cbToolsUseExternalProgram: TCheckBox
TabOrder = 5
end
object edtToolsParameters: TEdit[1]
AnchorSideLeft.Control = lblToolsParameters
AnchorSideTop.Control = lblToolsParameters
object gbViewerBookMode: TGroupBox[7]
AnchorSideLeft.Control = fneToolsPath
AnchorSideTop.Control = cbToolsKeepTerminalOpen
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = fneToolsPath
AnchorSideRight.Side = asrBottom
Left = 148
Height = 29
Top = 143
Width = 769
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 4
OnChange = edtToolsParametersChange
TabOrder = 3
end
object fneToolsPath: TFileNameEdit[2]
AnchorSideLeft.Control = lblToolsPath
AnchorSideTop.Control = lblToolsPath
AnchorSideTop.Side = asrBottom
Left = 148
Height = 29
Top = 78
Width = 769
OnAcceptFileName = fneToolsPathAcceptFileName
DialogOptions = []
FilterIndex = 0
HideDirectories = False
ButtonWidth = 23
NumGlyphs = 0
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 4
MaxLength = 0
TabOrder = 2
OnChange = fneToolsPathChange
end
object lblToolsPath: TLabel[3]
AnchorSideLeft.Control = cbToolsUseExternalProgram
AnchorSideTop.Control = cbToolsUseExternalProgram
AnchorSideTop.Side = asrBottom
Left = 148
Height = 22
Top = 52
Width = 182
BorderSpacing.Top = 15
Caption = 'Path to program to execute'
ParentColor = False
end
object lblToolsParameters: TLabel[4]
AnchorSideLeft.Control = cbToolsUseExternalProgram
AnchorSideTop.Control = fneToolsPath
AnchorSideTop.Side = asrBottom
Left = 148
Height = 22
Top = 117
Width = 150
BorderSpacing.Top = 10
Caption = 'Additional parameters'
ParentColor = False
end
object cbToolsKeepTerminalOpen: TCheckBox[5]
AnchorSideLeft.Control = cbToolsRunInTerminal
AnchorSideTop.Control = cbToolsRunInTerminal
AnchorSideTop.Side = asrBottom
Left = 163
Height = 25
Top = 211
Width = 381
BorderSpacing.Left = 15
BorderSpacing.Top = 2
Caption = 'Keep terminal window open after executing program'
OnChange = cbToolsKeepTerminalOpenChange
TabOrder = 5
end
object cbToolsRunInTerminal: TCheckBox[6]
AnchorSideLeft.Control = edtToolsParameters
AnchorSideTop.Control = edtToolsParameters
AnchorSideTop.Side = asrBottom
Left = 148
Height = 25
Top = 184
Width = 158
BorderSpacing.Top = 12
Caption = 'Execute in terminal'
OnChange = cbToolsRunInTerminalChange
TabOrder = 4
end
object cbToolsUseExternalProgram: TCheckBox[7]
Left = 148
Height = 25
Top = 12
Width = 171
BorderSpacing.Top = 12
Caption = 'Use external program'
OnChange = cbToolsUseExternalProgramChange
TabOrder = 1
end
object gbViewerBookMode: TGroupBox[8]
AnchorSideTop.Control = cbToolsKeepTerminalOpen
AnchorSideTop.Side = asrBottom
AnchorSideRight.Side = asrBottom
Left = 146
Left = 8
Height = 117
Top = 248
Width = 801
Top = 244
Width = 554
Anchors = [akTop, akLeft, akRight]
AutoSize = True
BorderSpacing.Top = 12
BorderSpacing.Right = 10
BorderSpacing.Bottom = 10
Caption = 'Viewer Book Mode'
ChildSizing.TopBottomSpacing = 6
ClientHeight = 95
ClientWidth = 797
TabOrder = 6
Visible = False
ClientWidth = 550
TabOrder = 0
object lblBackgroundColorViewerBook: TLabel
AnchorSideTop.Control = cbBackgroundColorViewerBook
AnchorSideTop.Side = asrCenter
@ -197,7 +67,7 @@ inherited frmOptionsTools: TfrmOptionsTools
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = seNumberColumnsViewer
AnchorSideBottom.Side = asrBottom
Left = 673
Left = 426
Height = 81
Top = 6
Width = 119
@ -236,7 +106,7 @@ inherited frmOptionsTools: TfrmOptionsTools
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = cbFontColorViewerBook
AnchorSideBottom.Side = asrBottom
Left = 644
Left = 397
Height = 22
Top = 31
Width = 24
@ -252,7 +122,7 @@ inherited frmOptionsTools: TfrmOptionsTools
AnchorSideRight.Control = gbViewerExample
AnchorSideBottom.Control = cbBackgroundColorViewerBook
AnchorSideBottom.Side = asrBottom
Left = 644
Left = 397
Height = 22
Top = 4
Width = 24
@ -272,7 +142,7 @@ inherited frmOptionsTools: TfrmOptionsTools
Left = 241
Height = 22
Top = 31
Width = 399
Width = 152
Style = [cbStandardColors, cbExtendedColors, cbSystemColors, cbPrettyNames]
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 5
@ -299,7 +169,7 @@ inherited frmOptionsTools: TfrmOptionsTools
Left = 241
Height = 22
Top = 4
Width = 399
Width = 152
Style = [cbStandardColors, cbExtendedColors, cbSystemColors, cbPrettyNames]
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 14
@ -308,7 +178,7 @@ inherited frmOptionsTools: TfrmOptionsTools
TabOrder = 5
end
end
object optColorDialog: TColorDialog[9]
object optColorDialog: TColorDialog[8]
Color = clBlack
CustomColors.Strings = (
'ColorA=000000'

View file

@ -1,13 +1,7 @@
TFRMOPTIONSTOOLS.STGTOOLS.COLUMNS[0].TITLE.CAPTION=Tool
TFRMOPTIONSTOOLS.LBLTOOLSPATH.CAPTION=Path to program to execute
TFRMOPTIONSTOOLS.LBLTOOLSPARAMETERS.CAPTION=Additional parameters
TFRMOPTIONSTOOLS.CBTOOLSKEEPTERMINALOPEN.CAPTION=Keep terminal window open after executing program
TFRMOPTIONSTOOLS.CBTOOLSRUNINTERMINAL.CAPTION=Execute in terminal
TFRMOPTIONSTOOLS.CBTOOLSUSEEXTERNALPROGRAM.CAPTION=Use external program
TFRMOPTIONSTOOLS.GBVIEWERBOOKMODE.CAPTION=Viewer Book Mode
TFRMOPTIONSTOOLS.LBLBACKGROUNDCOLORVIEWERBOOK.CAPTION=Background color in book viewer
TFRMOPTIONSTOOLS.LBLNUMBERCOLUMNSVIEWER.CAPTION=Number of columns in book viewer
TFRMOPTIONSTOOLS.GBVIEWEREXAMPLE.CAPTION=Example
TFRMOPTIONSTOOLS.BTNFONTVIEWERCOLOR.CAPTION=>>
TFRMOPTIONSTOOLS.BTNBACKVIEWERCOLOR.CAPTION=>>
TFRMOPTIONSTOOLS.LBLFONTCOLORVIEWERBOOK.CAPTION=Font color in book viewer
TFRMOPTIONSVIEWER.GBVIEWERBOOKMODE.CAPTION=Viewer Book Mode
TFRMOPTIONSVIEWER.LBLBACKGROUNDCOLORVIEWERBOOK.CAPTION=Background color in book viewer
TFRMOPTIONSVIEWER.LBLNUMBERCOLUMNSVIEWER.CAPTION=Number of columns in book viewer
TFRMOPTIONSVIEWER.GBVIEWEREXAMPLE.CAPTION=Example
TFRMOPTIONSVIEWER.BTNFONTVIEWERCOLOR.CAPTION=>>
TFRMOPTIONSVIEWER.BTNBACKVIEWERCOLOR.CAPTION=>>
TFRMOPTIONSVIEWER.LBLFONTCOLORVIEWERBOOK.CAPTION=Font color in book viewer

View file

@ -27,51 +27,33 @@ unit fOptionsTools;
interface
uses
Classes, SysUtils, Grids, StdCtrls, EditBtn, Spin, ExtCtrls, ColorBox,
Dialogs, fOptionsFrame, uGlobs;
Classes, SysUtils, StdCtrls, Spin, ExtCtrls, ColorBox, Dialogs,
fOptionsFrame, fOptionsToolBase;
type
{ TfrmOptionsTools }
{ TfrmOptionsViewer }
TfrmOptionsTools = class(TOptionsEditor)
TfrmOptionsViewer = class(TfrmOptionsToolBase)
btnBackViewerColor: TButton;
btnFontViewerColor: TButton;
cbBackgroundColorViewerBook: TColorBox;
cbFontColorViewerBook: TColorBox;
cbToolsKeepTerminalOpen: TCheckBox;
cbToolsRunInTerminal: TCheckBox;
cbToolsUseExternalProgram: TCheckBox;
edtToolsParameters: TEdit;
fneToolsPath: TFileNameEdit;
gbViewerBookMode: TGroupBox;
gbViewerExample: TGroupBox;
lblBackgroundColorViewerBook: TLabel;
lblFontColorViewerBook: TLabel;
lblNumberColumnsViewer: TLabel;
lblToolsParameters: TLabel;
lblToolsPath: TLabel;
optColorDialog: TColorDialog;
pbViewerBook: TPaintBox;
seNumberColumnsViewer: TSpinEdit;
stgTools: TStringGrid;
procedure btnBackViewerColorClick(Sender: TObject);
procedure btnFontViewerColorClick(Sender: TObject);
procedure stgToolsSelectCell(Sender: TObject; aCol, aRow: Integer;
var CanSelect: Boolean);
procedure edtToolsParametersChange(Sender: TObject);
procedure fneToolsPathAcceptFileName(Sender: TObject; var Value: String);
procedure fneToolsPathChange(Sender: TObject);
procedure cbColorBoxChange(Sender: TObject);
procedure cbToolsKeepTerminalOpenChange(Sender: TObject);
procedure cbToolsRunInTerminalChange(Sender: TObject);
procedure cbToolsUseExternalProgramChange(Sender: TObject);
procedure seNumberColumnsViewerChange(Sender: TObject);
procedure pbViewerBookPaint(Sender: TObject);
private
tmpExternalTools: TExternalToolsOptions;
FUpdatingTools: Boolean;
procedure ShowExternalToolOptions(ExtTool: TExternalTool);
procedure UseExternalProgramChanged(Sender: TObject);
protected
procedure Init; override;
procedure Load; override;
@ -81,20 +63,38 @@ type
class function GetTitle: String; override;
end;
{ TfrmOptionsDiffer }
TfrmOptionsDiffer = class(TfrmOptionsToolBase)
protected
procedure Init; override;
public
constructor Create(TheOwner: TComponent); override;
class function GetIconIndex: Integer; override;
class function GetTitle: String; override;
end;
{ TfrmOptionsEditor }
TfrmOptionsEditor = class(TfrmOptionsToolBase)
protected
procedure Init; override;
public
constructor Create(TheOwner: TComponent); override;
class function GetIconIndex: Integer; override;
class function GetTitle: String; override;
end;
implementation
{$R *.lfm}
uses
uDCUtils, uLng;
uDCUtils, uGlobs, uLng;
const
// Tools page: what tool is displayed in each row.
ExtToolFromRow: array[0..2] of TExternalTool = (etViewer, etEditor, etDiffer);
{ TfrmOptionsViewer }
{ TfrmOptionsTools }
procedure TfrmOptionsTools.btnBackViewerColorClick(Sender: TObject);
procedure TfrmOptionsViewer.btnBackViewerColorClick(Sender: TObject);
begin
optColorDialog.Color:= cbBackgroundColorViewerBook.Selected;
if optColorDialog.Execute then
@ -103,7 +103,7 @@ begin
end;
end;
procedure TfrmOptionsTools.btnFontViewerColorClick(Sender: TObject);
procedure TfrmOptionsViewer.btnFontViewerColorClick(Sender: TObject);
begin
optColorDialog.Color:= cbFontColorViewerBook.Selected;
if optColorDialog.Execute then
@ -112,107 +112,17 @@ begin
end;
end;
procedure TfrmOptionsTools.stgToolsSelectCell(Sender: TObject; aCol, aRow: Integer; var CanSelect: Boolean);
begin
aRow := aRow - stgTools.FixedRows;
if (aRow >= 0) and (aRow < SizeOf(ExtToolFromRow)) then
begin
FUpdatingTools := True;
ShowExternalToolOptions(ExtToolFromRow[aRow]);
FUpdatingTools := False;
end;
end;
procedure TfrmOptionsTools.edtToolsParametersChange(Sender: TObject);
var
aRow: Integer;
begin
if not FUpdatingTools then
begin
aRow := stgTools.Row - stgTools.FixedRows;
if (aRow >= 0) and (aRow < SizeOf(ExtToolFromRow)) then
tmpExternalTools[ExtToolFromRow[aRow]].Parameters := edtToolsParameters.Text;
end;
end;
procedure TfrmOptionsTools.fneToolsPathAcceptFileName(Sender: TObject; var Value: String);
begin
Value:= SetCmdDirAsEnvVar(Value);
end;
procedure TfrmOptionsTools.fneToolsPathChange(Sender: TObject);
var
aRow: Integer;
begin
if not FUpdatingTools then
begin
aRow := stgTools.Row - stgTools.FixedRows;
if (aRow >= 0) and (aRow < SizeOf(ExtToolFromRow)) then
// Use fneToolsPath.Caption because Filename is one letter behind when typing manually.
tmpExternalTools[ExtToolFromRow[aRow]].Path := fneToolsPath.Caption;
end;
end;
procedure TfrmOptionsTools.cbColorBoxChange(Sender: TObject);
procedure TfrmOptionsViewer.cbColorBoxChange(Sender: TObject);
begin
pbViewerBook.Repaint;
end;
procedure TfrmOptionsTools.cbToolsKeepTerminalOpenChange(Sender: TObject);
var
aRow: Integer;
begin
if not FUpdatingTools then
begin
aRow := stgTools.Row - stgTools.FixedRows;
if (aRow >= 0) and (aRow < SizeOf(ExtToolFromRow)) then
tmpExternalTools[ExtToolFromRow[aRow]].KeepTerminalOpen := cbToolsKeepTerminalOpen.Checked;
end;
end;
procedure TfrmOptionsTools.cbToolsRunInTerminalChange(Sender: TObject);
var
aRow: Integer;
begin
cbToolsKeepTerminalOpen.Enabled := cbToolsRunInTerminal.Checked;
if not FUpdatingTools then
begin
aRow := stgTools.Row - stgTools.FixedRows;
if (aRow >= 0) and (aRow < SizeOf(ExtToolFromRow)) then
tmpExternalTools[ExtToolFromRow[aRow]].RunInTerminal := cbToolsRunInTerminal.Checked;
end;
end;
procedure TfrmOptionsTools.cbToolsUseExternalProgramChange(Sender: TObject);
var
aRow: Integer;
begin
lblToolsPath.Enabled := cbToolsUseExternalProgram.Checked;
fneToolsPath.Enabled := cbToolsUseExternalProgram.Checked;
lblToolsParameters.Enabled := cbToolsUseExternalProgram.Checked;
edtToolsParameters.Enabled := cbToolsUseExternalProgram.Checked;
cbToolsRunInTerminal.Enabled := cbToolsUseExternalProgram.Checked;
cbToolsKeepTerminalOpen.Enabled := cbToolsUseExternalProgram.Checked;
gbViewerBookMode.Enabled := not (cbToolsUseExternalProgram.Checked);
lblBackgroundColorViewerBook.Enabled := not (cbToolsUseExternalProgram.Checked);
lblNumberColumnsViewer.Enabled := not (cbToolsUseExternalProgram.Checked);
lblFontColorViewerBook.Enabled := not (cbToolsUseExternalProgram.Checked);
if not FUpdatingTools then
begin
aRow := stgTools.Row - stgTools.FixedRows;
if (aRow >= 0) and (aRow < SizeOf(ExtToolFromRow)) then
tmpExternalTools[ExtToolFromRow[aRow]].Enabled := cbToolsUseExternalProgram.Checked;
end;
end;
procedure TfrmOptionsTools.seNumberColumnsViewerChange(Sender: TObject);
procedure TfrmOptionsViewer.seNumberColumnsViewerChange(Sender: TObject);
begin
pbViewerBook.Repaint;
end;
procedure TfrmOptionsTools.pbViewerBookPaint(Sender: TObject);
procedure TfrmOptionsViewer.pbViewerBookPaint(Sender: TObject);
var
i, numb, x, y: integer;
sStr: String;
@ -236,63 +146,95 @@ begin
end;
end;
procedure TfrmOptionsTools.ShowExternalToolOptions(ExtTool: TExternalTool);
procedure TfrmOptionsViewer.UseExternalProgramChanged(Sender: TObject);
begin
with tmpExternalTools[ExtTool] do
begin
cbToolsUseExternalProgram.Checked := Enabled;
fneToolsPath.FileName := Path;
edtToolsParameters.Text := Parameters;
cbToolsRunInTerminal.Checked := RunInTerminal;
cbToolsKeepTerminalOpen.Checked := KeepTerminalOpen;
end;
gbViewerBookMode.Visible := (ExtTool = etViewer);
gbViewerBookMode.Enabled := not (cbToolsUseExternalProgram.Checked);
lblBackgroundColorViewerBook.Enabled := not (cbToolsUseExternalProgram.Checked);
lblNumberColumnsViewer.Enabled := not (cbToolsUseExternalProgram.Checked);
lblFontColorViewerBook.Enabled := not (cbToolsUseExternalProgram.Checked);
end;
class function TfrmOptionsTools.GetIconIndex: Integer;
class function TfrmOptionsViewer.GetIconIndex: Integer;
begin
Result := 2;
Result := 22;
end;
class function TfrmOptionsTools.GetTitle: String;
class function TfrmOptionsViewer.GetTitle: String;
begin
Result := rsOptionsEditorTools;
Result := rsToolViewer;
end;
procedure TfrmOptionsTools.Init;
procedure TfrmOptionsViewer.Init;
begin
FUpdatingTools := False;
// Disable focus rectangle on tools grid.
stgTools.FocusRectVisible := False;
// Localize tools names.
stgTools.Cells[0, stgTools.FixedRows + 0] := rsToolViewer;
stgTools.Cells[0, stgTools.FixedRows + 1] := rsToolEditor;
stgTools.Cells[0, stgTools.FixedRows + 2] := rsToolDiffer;
// Enable/disable tools controls.
FUpdatingTools := True;
cbToolsUseExternalProgramChange(nil);
ExternalTool := etViewer;
OnUseExternalProgramChange := @UseExternalProgramChanged;
gbViewerBookMode.Enabled := not (cbToolsUseExternalProgram.Checked);
FUpdatingTools := False;
inherited Init;
end;
procedure TfrmOptionsTools.Load;
procedure TfrmOptionsViewer.Load;
begin
tmpExternalTools := gExternalTools;
inherited;
seNumberColumnsViewer.Value := gColCount;
SetColorInColorBox(cbBackgroundColorViewerBook,gBookBackgroundColor);
SetColorInColorBox(cbFontColorViewerBook,gBookFontColor);
end;
function TfrmOptionsTools.Save: TOptionsEditorSaveFlags;
function TfrmOptionsViewer.Save: TOptionsEditorSaveFlags;
begin
Result := [];
gExternalTools := tmpExternalTools;
Result := inherited;
gColCount := seNumberColumnsViewer.Value;
gBookBackgroundColor := cbBackgroundColorViewerBook.Selected;
gBookFontColor := cbFontColorViewerBook.Selected;
end;
{ TfrmOptionsEditor }
procedure TfrmOptionsEditor.Init;
begin
ExternalTool := etEditor;
inherited Init;
end;
constructor TfrmOptionsEditor.Create(TheOwner: TComponent);
begin
inherited Create(TheOwner);
Name := 'frmOptionsEditor';
end;
class function TfrmOptionsEditor.GetIconIndex: Integer;
begin
Result := 10;
end;
class function TfrmOptionsEditor.GetTitle: String;
begin
Result := rsToolEditor;
end;
{ TfrmOptionsDiffer }
procedure TfrmOptionsDiffer.Init;
begin
ExternalTool := etDiffer;
inherited Init;
end;
constructor TfrmOptionsDiffer.Create(TheOwner: TComponent);
begin
inherited Create(TheOwner);
Name := 'frmOptionsDiffer';
end;
class function TfrmOptionsDiffer.GetIconIndex: Integer;
begin
Result := 25;
end;
class function TfrmOptionsDiffer.GetTitle: String;
begin
Result := rsToolDiffer;
end;
end.

View file

@ -348,6 +348,7 @@ resourcestring
rsOptionsEditorIgnoreList = 'Ignore list';
rsOptionsEditorArchivers = 'Archivers';
rsOptionsEditorTooltips = 'Tooltips';
rsOptionsEditorTerminal = 'Terminal';
//-------------------------------
rsOptArchiveParam = 'Parameter';
rsOptArchiveValue = 'Value';