ide: start showing of help for properties in the object inspector

- add ShowInfoBox option
  - add appropriate events and handlers to the object inspector (showing actual help is in todo)

git-svn-id: trunk@17471 -
This commit is contained in:
paul 2008-11-20 10:32:06 +00:00
parent 88c3884a6d
commit c7cadabc8d
7 changed files with 274 additions and 100 deletions

View File

@ -4,8 +4,8 @@ inherited OIOptionsFrame: TOIOptionsFrame
ClientHeight = 484
ClientWidth = 634
Visible = False
DesignLeft = 505
DesignTop = 157
DesignLeft = 466
DesignTop = 124
object ObjectInspectorColorsGroupBox: TGroupBox[0]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = Owner
@ -141,7 +141,7 @@ inherited OIOptionsFrame: TOIOptionsFrame
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 0
Height = 205
Height = 230
Top = 235
Width = 634
HelpContext = 0
@ -161,7 +161,7 @@ inherited OIOptionsFrame: TOIOptionsFrame
ChildSizing.HorizontalSpacing = 0
ChildSizing.VerticalSpacing = 0
ChildSizing.ControlsPerLine = 0
ClientHeight = 187
ClientHeight = 212
ClientWidth = 630
Ctl3D = False
DockSite = False
@ -183,7 +183,7 @@ inherited OIOptionsFrame: TOIOptionsFrame
AnchorSideTop.Side = asrCenter
Left = 6
Height = 14
Top = 161
Top = 186
Width = 126
HelpContext = 0
Align = alNone
@ -248,11 +248,11 @@ inherited OIOptionsFrame: TOIOptionsFrame
object OIDefaultItemHeightSpinEdit: TSpinEdit
AnchorSideLeft.Control = OIDefaultItemHeightLabel
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = OIShowStatusBarCheckBox
AnchorSideTop.Control = OIShowInfoBoxCheckBox
AnchorSideTop.Side = asrBottom
Left = 138
Height = 25
Top = 156
Top = 181
Width = 53
HelpContext = 0
Align = alNone
@ -452,6 +452,41 @@ inherited OIOptionsFrame: TOIOptionsFrame
UseOnChange = False
Visible = True
end
object OIShowInfoBoxCheckBox: TCheckBox
AnchorSideLeft.Control = OIMiscGroupBox
AnchorSideTop.Control = OIShowStatusBarCheckBox
AnchorSideTop.Side = asrBottom
Left = 6
Height = 19
Top = 156
Width = 149
HelpContext = 0
Align = alNone
AllowGrayed = False
AutoSize = True
BorderSpacing.Left = 0
BorderSpacing.Top = 0
BorderSpacing.Right = 0
BorderSpacing.Bottom = 0
BorderSpacing.Around = 6
BorderSpacing.CellAlignHorizontal = ccaFill
BorderSpacing.CellAlignVertical = ccaFill
Caption = 'OIShowInfoBoxCheckBox'
Checked = False
DragCursor = crDrag
DragKind = dkDrag
DragMode = dmManual
Enabled = True
ParentColor = True
ParentFont = True
ParentShowHint = True
ParentBidiMode = True
State = cbUnchecked
TabOrder = 7
TabStop = True
UseOnChange = False
Visible = True
end
end
object ObjectInspectorSpeedSettingsGroupBox: TGroupBox[2]
AnchorSideLeft.Control = ObjectInspectorColorsGroupBox

View File

@ -3,16 +3,16 @@
LazarusResources.Add('TOIOptionsFrame','FORMDATA',[
'TPF0'#241#15'TOIOptionsFrame'#14'OIOptionsFrame'#6'Height'#3#228#1#5'Width'#3
+'z'#2#12'ClientHeight'#3#228#1#11'ClientWidth'#3'z'#2#7'Visible'#8#10'Design'
+'Left'#3#249#1#9'DesignTop'#3#157#0#0#242#2#0#9'TGroupBox'#29'ObjectInspecto'
+'rColorsGroupBox'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Con'
+'trol'#7#5'Owner'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.'
+'Side'#7#9'asrBottom'#4'Left'#2#0#6'Height'#3#228#0#3'Top'#2#0#5'Width'#3#226
+#0#11'HelpContext'#2#0#5'Align'#7#6'alNone'#8'AutoSize'#9#18'BorderSpacing.L'
+'eft'#2#0#17'BorderSpacing.Top'#2#0#19'BorderSpacing.Right'#2#0#20'BorderSpa'
+'cing.Bottom'#2#0#20'BorderSpacing.Around'#2#0'!BorderSpacing.CellAlignHoriz'
+'ontal'#7#7'ccaFill'#31'BorderSpacing.CellAlignVertical'#7#7'ccaFill'#7'Capt'
+'ion'#6#29'ObjectInspectorColorsGroupBox'#28'ChildSizing.LeftRightSpacing'#2
+#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.HorizontalSpacing'#2#2
+'Left'#3#210#1#9'DesignTop'#2'|'#0#242#2#0#9'TGroupBox'#29'ObjectInspectorCo'
+'lorsGroupBox'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Contro'
+'l'#7#5'Owner'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Sid'
+'e'#7#9'asrBottom'#4'Left'#2#0#6'Height'#3#228#0#3'Top'#2#0#5'Width'#3#226#0
+#11'HelpContext'#2#0#5'Align'#7#6'alNone'#8'AutoSize'#9#18'BorderSpacing.Lef'
+'t'#2#0#17'BorderSpacing.Top'#2#0#19'BorderSpacing.Right'#2#0#20'BorderSpaci'
+'ng.Bottom'#2#0#20'BorderSpacing.Around'#2#0'!BorderSpacing.CellAlignHorizon'
+'tal'#7#7'ccaFill'#31'BorderSpacing.CellAlignVertical'#7#7'ccaFill'#7'Captio'
+'n'#6#29'ObjectInspectorColorsGroupBox'#28'ChildSizing.LeftRightSpacing'#2#6
+#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.HorizontalSpacing'#2#2
+#27'ChildSizing.VerticalSpacing'#2#2#27'ChildSizing.ControlsPerLine'#2#0#12
+'ClientHeight'#3#210#0#11'ClientWidth'#3#222#0#5'Ctl3D'#8#8'DockSite'#8#10'D'
+'ragCursor'#7#6'crDrag'#8'DragKind'#7#6'dkDrag'#8'DragMode'#7#8'dmManual'#7
@ -52,7 +52,7 @@ LazarusResources.Add('TOIOptionsFrame','FORMDATA',[
+#7'Visible'#9#0#0#0#242#2#1#9'TGroupBox'#14'OIMiscGroupBox'#22'AnchorSideLef'
+'t.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#29'ObjectInspectorColorsG'
+'roupBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7
+#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#0#6'Height'#3#205
+#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#0#6'Height'#3#230
+#0#3'Top'#3#235#0#5'Width'#3'z'#2#11'HelpContext'#2#0#5'Align'#7#6'alNone'#7
+'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoSize'#9#18'BorderSpacing.'
+'Left'#2#0#17'BorderSpacing.Top'#2#7#19'BorderSpacing.Right'#2#0#20'BorderSp'
@ -61,13 +61,13 @@ LazarusResources.Add('TOIOptionsFrame','FORMDATA',[
+'tion'#6#14'OIMiscGroupBox'#28'ChildSizing.LeftRightSpacing'#2#0#28'ChildSiz'
+'ing.TopBottomSpacing'#2#0#29'ChildSizing.HorizontalSpacing'#2#0#27'ChildSiz'
+'ing.VerticalSpacing'#2#0#27'ChildSizing.ControlsPerLine'#2#0#12'ClientHeigh'
+'t'#3#187#0#11'ClientWidth'#3'v'#2#5'Ctl3D'#8#8'DockSite'#8#10'DragCursor'#7
+'t'#3#212#0#11'ClientWidth'#3'v'#2#5'Ctl3D'#8#8'DockSite'#8#10'DragCursor'#7
+#6'crDrag'#8'DragKind'#7#6'dkDrag'#8'DragMode'#7#8'dmManual'#7'Enabled'#9#14
+'ParentBidiMode'#9#11'ParentColor'#9#11'ParentCtl3D'#9#10'ParentFont'#9#14'P'
+'arentShowHint'#9#8'TabOrder'#2#1#7'TabStop'#8#7'Visible'#9#0#6'TLabel'#24'O'
,'IDefaultItemHeightLabel'#22'AnchorSideLeft.Control'#7#14'OIMiscGroupBox'#21
+'AnchorSideTop.Control'#7#27'OIDefaultItemHeightSpinEdit'#18'AnchorSideTop.S'
+'ide'#7#9'asrCenter'#4'Left'#2#6#6'Height'#2#14#3'Top'#3#161#0#5'Width'#2'~'
+'ide'#7#9'asrCenter'#4'Left'#2#6#6'Height'#2#14#3'Top'#3#186#0#5'Width'#2'~'
+#11'HelpContext'#2#0#5'Align'#7#6'alNone'#9'Alignment'#7#13'taLeftJustify'#8
+'AutoSize'#9#18'BorderSpacing.Left'#2#6#17'BorderSpacing.Top'#2#0#19'BorderS'
+'pacing.Right'#2#0#20'BorderSpacing.Bottom'#2#0#20'BorderSpacing.Around'#2#0
@ -89,8 +89,8 @@ LazarusResources.Add('TOIOptionsFrame','FORMDATA',[
+'r'#2#0#7'TabStop'#9#11'UseOnChange'#8#7'Visible'#9#0#0#9'TSpinEdit'#27'OIDe'
+'faultItemHeightSpinEdit'#22'AnchorSideLeft.Control'#7#24'OIDefaultItemHeigh'
+'tLabel'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7
+#23'OIShowStatusBarCheckBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3
+#138#0#6'Height'#2#25#3'Top'#3#156#0#5'Width'#2'5'#11'HelpContext'#2#0#5'Ali'
+#21'OIShowInfoBoxCheckBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3
+#138#0#6'Height'#2#25#3'Top'#3#181#0#5'Width'#2'5'#11'HelpContext'#2#0#5'Ali'
+'gn'#7#6'alNone'#10'AutoSelect'#8#8'AutoSize'#8#18'BorderSpacing.Left'#2#0#17
+'BorderSpacing.Top'#2#0#19'BorderSpacing.Right'#2#0#20'BorderSpacing.Bottom'
+#2#0#20'BorderSpacing.Around'#2#6'!BorderSpacing.CellAlignHorizontal'#7#7'cc'
@ -153,49 +153,61 @@ LazarusResources.Add('TOIOptionsFrame','FORMDATA',[
+'tatusBarCheckBox'#7'Checked'#8#10'DragCursor'#7#6'crDrag'#8'DragKind'#7#6'd'
+'kDrag'#8'DragMode'#7#8'dmManual'#7'Enabled'#9#11'ParentColor'#9#10'ParentFo'
+'nt'#9#14'ParentShowHint'#9#14'ParentBidiMode'#9#5'State'#7#11'cbUnchecked'#8
+'TabOrder'#2#6#7'TabStop'#9#11'UseOnChange'#8#7'Visible'#9#0#0#0#242#2#2#9'T'
+'GroupBox$ObjectInspectorSpeedSettingsGroupBox'#22'AnchorSideLeft.Control'#7
+#29'ObjectInspectorColorsGroupBox'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21
+'AnchorSideTop.Control'#7#5'Owner'#23'AnchorSideRight.Control'#7#5'Owner'#20
+'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#29'Obje'
+'ctInspectorColorsGroupBox'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'
+#3#233#0#6'Height'#3#228#0#3'Top'#2#0#5'Width'#3#145#1#11'HelpContext'#2#0#5
+'Align'#7#6'alNone'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0
+#8'AutoSize'#8#18'BorderSpacing.Left'#2#7#17'BorderSpacing.Top'#2#0#19'Borde'
+'rSpacing.Right'#2#0#20'BorderSpacing.Bottom'#2#0#20'BorderSpacing.Around'#2
+#0'!BorderSpacing.CellAlignHorizontal'#7#7'ccaFill'#31'BorderSpacing.CellAli'
+'gnVertical'#7#7'ccaFill'#7'Caption'#6'$ObjectInspectorSpeedSettingsGroupBox'
+#28'ChildSizing.LeftRightSpacing'#2#0#28'ChildSizing.TopBottomSpacing'#2#0#29
+'ChildSizing.HorizontalSpacing'#2#0#27'ChildSizing.VerticalSpacing'#2#0#27'C'
+'hildSizing.ControlsPerLine'#2#0#12'ClientHeight'#3#210#0#11'ClientWidth'#3
+#141#1#5'Ctl3D'#8#8'DockSite'#8#10'DragCursor'#7#6'crDrag'#8'DragKind'#7#6'd'
+'kDrag'#8'DragMode'#7#8'dmManual'#7'Enabled'#9#14'ParentBidiMode'#9#11'Paren'
+'tColor'#9#11'ParentCtl3D'#9#10'ParentFont'#9#14'ParentShowHint'#9#8'TabOrde'
+'r'#2#2#7'TabStop'#8#7'Visible'#9#0#7'TButton'#28'BtnUseDefaultLazarusSettin'
+'gs'#22'AnchorSideLeft.Control'#7'$ObjectInspectorSpeedSettingsGroupBox'#21
+'AnchorSideTop.Control'#7'$ObjectInspectorSpeedSettingsGroupBox'#4'Left'#2#6
+#6'Height'#2#25#3'Top'#2#6#5'Width'#3#171#0#11'HelpContext'#2#0#5'Align'#7#6
+'alNone'#8'AutoSize'#9#18'BorderSpacing.Left'#2#0#17'BorderSpacing.Top'#2#0
+#19'BorderSpacing.Right'#2#0#20'BorderSpacing.Bottom'#2#0#20'BorderSpacing.A'
+'round'#2#6'!BorderSpacing.CellAlignHorizontal'#7#7'ccaFill'#31'BorderSpacin'
+'g.CellAlignVertical'#7#7'ccaFill'#6'Cancel'#8#7'Caption'#6#28'BtnUseDefault'
+'LazarusSettings'#21'Constraints.MinHeight'#2#25#20'Constraints.MinWidth'#2
+'K'#7'Default'#8#10'DragCursor'#7#6'crDrag'#8'DragMode'#7#8'dmManual'#7'Enab'
+'led'#9#14'ParentBidiMode'#9#11'ModalResult'#2#0#7'OnClick'#7'!BtnUseDefault'
+'LazarusSettingsClick'#10'ParentFont'#9#14'ParentShowHint'#9#8'TabOrder'#2#0
+#7'TabStop'#9#7'Visible'#9#0#0#7'TButton'#27'BtnUseDefaultDelphiSettings'#22
+'AnchorSideLeft.Control'#7'$ObjectInspectorSpeedSettingsGroupBox'#21'AnchorS'
+'ideTop.Control'#7#28'BtnUseDefaultLazarusSettings'#18'AnchorSideTop.Side'#7
+#9'asrBottom'#23'AnchorSideRight.Control'#7#28'BtnUseDefaultLazarusSettings'
+#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#25#3'Top'#2
+'%'#5'Width'#3#171#0#11'HelpContext'#2#0#5'Align'#7#6'alNone'#7'Anchors'#11#5
+'akTop'#6'akLeft'#7'akRight'#0#8'AutoSize'#9#18'BorderSpacing.Left'#2#6#17'B'
+'orderSpacing.Top'#2#6#19'BorderSpacing.Right'#2#0#20'BorderSpacing.Bottom'#2
+'TabOrder'#2#6#7'TabStop'#9#11'UseOnChange'#8#7'Visible'#9#0#0#9'TCheckBox'
+#21'OIShowInfoBoxCheckBox'#22'AnchorSideLeft.Control'#7#14'OIMiscGroupBox'#21
+'AnchorSideTop.Control'#7#23'OIShowStatusBarCheckBox'#18'AnchorSideTop.Side'
+#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#19#3'Top'#3#156#0#5'Width'#3#149#0#11
+'HelpContext'#2#0#5'Align'#7#6'alNone'#11'AllowGrayed'#8#8'AutoSize'#9#18'Bo'
+'rderSpacing.Left'#2#0#17'BorderSpacing.Top'#2#0#19'BorderSpacing.Right'#2#0
+#20'BorderSpacing.Bottom'#2#0#20'BorderSpacing.Around'#2#6'!BorderSpacing.Ce'
+'llAlignHorizontal'#7#7'ccaFill'#31'BorderSpacing.CellAlignVertical'#7#7'cca'
+'Fill'#7'Caption'#6#21'OIShowInfoBoxCheckBox'#7'Checked'#8#10'DragCursor'#7#6
+'crDrag'#8'DragKind'#7#6'dkDrag'#8'DragMode'#7#8'dmManual'#7'Enabled'#9#11'P'
+'arentColor'#9#10'ParentFont'#9#14'ParentShowHint'#9#14'ParentBidiMode'#9#5
+'State'#7#11'cbUnchecked'#8'TabOrder'#2#7#7'TabStop'#9#11'UseOnChange'#8#7'V'
+'isible'#9#0#0#0#242#2#2#9'TGroupBox$ObjectInspectorSpeedSettingsGroupBox'#22
+'AnchorSideLeft.Control'#7#29'ObjectInspectorColorsGroupBox'#19'AnchorSideLe'
+'ft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#5'Owner'#23'AnchorSideR'
+'ight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorS'
+'ideBottom.Control'#7#29'ObjectInspectorColorsGroupBox'#21'AnchorSideBottom.'
+'Side'#7#9'asrBottom'#4'Left'#3#233#0#6'Height'#3#228#0#3'Top'#2#0#5'Width'#3
+#145#1#11'HelpContext'#2#0#5'Align'#7#6'alNone'#7'Anchors'#11#5'akTop'#6'akL'
+'eft'#7'akRight'#8'akBottom'#0#8'AutoSize'#8#18'BorderSpacing.Left'#2#7#17'B'
+'orderSpacing.Top'#2#0#19'BorderSpacing.Right'#2#0#20'BorderSpacing.Bottom'#2
+#0#20'BorderSpacing.Around'#2#0'!BorderSpacing.CellAlignHorizontal'#7#7'ccaF'
+'ill'#31'BorderSpacing.CellAlignVertical'#7#7'ccaFill'#6'Cancel'#8#7'Caption'
,#6#27'BtnUseDefaultDelphiSettings'#21'Constraints.MinHeight'#2#25#20'Constra'
+'ints.MinWidth'#2'K'#7'Default'#8#10'DragCursor'#7#6'crDrag'#8'DragMode'#7#8
+'dmManual'#7'Enabled'#9#14'ParentBidiMode'#9#11'ModalResult'#2#0#7'OnClick'#7
+' BtnUseDefaultDelphiSettingsClick'#10'ParentFont'#9#14'ParentShowHint'#9#8
+'TabOrder'#2#1#7'TabStop'#9#7'Visible'#9#0#0#0#0
+'ill'#31'BorderSpacing.CellAlignVertical'#7#7'ccaFill'#7'Caption'#6'$ObjectI'
+'nspectorSpeedSettingsGroupBox'#28'ChildSizing.LeftRightSpacing'#2#0#28'Chil'
+'dSizing.TopBottomSpacing'#2#0#29'ChildSizing.HorizontalSpacing'#2#0#27'Chil'
+'dSizing.VerticalSpacing'#2#0#27'ChildSizing.ControlsPerLine'#2#0#12'ClientH'
+'eight'#3#210#0#11'ClientWidth'#3#141#1#5'Ctl3D'#8#8'DockSite'#8#10'DragCurs'
+'or'#7#6'crDrag'#8'DragKind'#7#6'dkDrag'#8'DragMode'#7#8'dmManual'#7'Enabled'
+#9#14'ParentBidiMode'#9#11'ParentColor'#9#11'ParentCtl3D'#9#10'ParentFont'#9
+#14'ParentShowHint'#9#8'TabOrder'#2#2#7'TabStop'#8#7'Visible'#9#0#7'TButton'
+#28'BtnUseDefaultLazarusSettings'#22'AnchorSideLeft.Control'#7'$ObjectInspec'
+'torSpeedSettingsGroupBox'#21'AnchorSideTop.Control'#7'$ObjectInspectorSpeed'
+'SettingsGroupBox'#4'Left'#2#6#6'Height'#2#25#3'Top'#2#6#5'Width'#3#171#0#11
+'HelpContext'#2#0#5'Align'#7#6'alNone'#8'AutoSize'#9#18'BorderSpacing.Left'#2
+#0#17'BorderSpacing.Top'#2#0#19'BorderSpacing.Right'#2#0#20'BorderSpacing.Bo'
+'ttom'#2#0#20'BorderSpacing.Around'#2#6'!BorderSpacing.CellAlignHorizontal'#7
+#7'ccaFill'#31'BorderSpacing.CellAlignVertical'#7#7'ccaFill'#6'Cancel'#8#7'C'
+'aption'#6#28'BtnUseDefaultLazarusSettings'#21'Constraints.MinHeight'#2#25#20
+'Constraints.MinWidth'#2'K'#7'Default'#8#10'DragCursor'#7#6'crDrag'#8'DragMo'
+'de'#7#8'dmManual'#7'Enabled'#9#14'ParentBidiMode'#9#11'ModalResult'#2#0#7'O'
,'nClick'#7'!BtnUseDefaultLazarusSettingsClick'#10'ParentFont'#9#14'ParentSho'
+'wHint'#9#8'TabOrder'#2#0#7'TabStop'#9#7'Visible'#9#0#0#7'TButton'#27'BtnUse'
+'DefaultDelphiSettings'#22'AnchorSideLeft.Control'#7'$ObjectInspectorSpeedSe'
+'ttingsGroupBox'#21'AnchorSideTop.Control'#7#28'BtnUseDefaultLazarusSettings'
+#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#28'BtnU'
+'seDefaultLazarusSettings'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2
+#6#6'Height'#2#25#3'Top'#2'%'#5'Width'#3#171#0#11'HelpContext'#2#0#5'Align'#7
+#6'alNone'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoSize'#9#18'Bo'
+'rderSpacing.Left'#2#6#17'BorderSpacing.Top'#2#6#19'BorderSpacing.Right'#2#0
+#20'BorderSpacing.Bottom'#2#0#20'BorderSpacing.Around'#2#0'!BorderSpacing.Ce'
+'llAlignHorizontal'#7#7'ccaFill'#31'BorderSpacing.CellAlignVertical'#7#7'cca'
+'Fill'#6'Cancel'#8#7'Caption'#6#27'BtnUseDefaultDelphiSettings'#21'Constrain'
+'ts.MinHeight'#2#25#20'Constraints.MinWidth'#2'K'#7'Default'#8#10'DragCursor'
+#7#6'crDrag'#8'DragMode'#7#8'dmManual'#7'Enabled'#9#14'ParentBidiMode'#9#11
+'ModalResult'#2#0#7'OnClick'#7' BtnUseDefaultDelphiSettingsClick'#10'ParentF'
+'ont'#9#14'ParentShowHint'#9#8'TabOrder'#2#1#7'TabStop'#9#7'Visible'#9#0#0#0
+#0
]);

View File

@ -54,7 +54,8 @@ type
ooBoldNonDefault,
ooDrawGridLines,
ooShowGutter,
ooShowStatusBar
ooShowStatusBar,
ooShowInfoBox
);
TSpeedOISettings = record
@ -81,6 +82,7 @@ type
OIMiscGroupBox: TGroupBox;
OIShowStatusBarCheckBox: TCheckBox;
OIShowHintCheckBox: TCheckBox;
OIShowInfoBoxCheckBox: TCheckBox;
procedure BtnUseDefaultDelphiSettingsClick(Sender: TObject);
procedure BtnUseDefaultLazarusSettingsClick(Sender: TObject);
procedure ColorBoxChange(Sender: TObject);
@ -122,7 +124,8 @@ const
{ ooBoldNonDefault } True,
{ ooDrawGridLines } True,
{ ooShowGutter } True,
{ ooShowStatusBar } True
{ ooShowStatusBar } True,
{ ooShowInfoBox } True
);
);
@ -146,7 +149,8 @@ const
{ ooBoldNonDefault } True,
{ ooDrawGridLines } False,
{ ooShowGutter } True,
{ ooShowStatusBar } True
{ ooShowStatusBar } True,
{ ooShowInfoBox } False
);
);
@ -164,6 +168,7 @@ begin
OIDrawGridLinesCheckBox.Caption := lisDrawGridLinesObjectInspector;
OIShowGutterCheckBox.Caption := lisShowGutterInObjectInspector;
OIShowStatusBarCheckBox.Caption := lisShowStatusBarInObjectInspector;
OIShowInfoBoxCheckBox.Caption := lisShowInfoBoxInObjectInspector;
BtnUseDefaultLazarusSettings.Caption := dlgOIUseDefaultLazarusSettings;
BtnUseDefaultDelphiSettings.Caption := dlgOIUseDefaultDelphiSettings;
@ -213,6 +218,7 @@ begin
OIDrawGridLinesCheckBox.Checked := ASettings.Options[ooDrawGridLines];
OIShowGutterCheckBox.Checked := ASettings.Options[ooShowGutter];
OIShowStatusBarCheckBox.Checked := ASettings.Options[ooShowStatusBar];
OIShowInfoBoxCheckBox.Checked := ASettings.Options[ooShowInfoBox];
end;
procedure TOIOptionsFrame.ColorBoxChange(Sender: TObject);
@ -269,6 +275,7 @@ begin
ASettings.Options[ooDrawGridLines] := ObjectInspectorOptions.DrawGridLines;
ASettings.Options[ooShowGutter] := ObjectInspectorOptions.ShowGutter;
ASettings.Options[ooShowStatusBar] := ObjectInspectorOptions.ShowStatusBar;
ASettings.Options[ooShowInfoBox] := ObjectInspectorOptions.ShowInfoBox;
ApplyOISettings(ASettings);
OIDefaultItemHeightSpinEdit.Value := ObjectInspectorOptions.DefaultItemHeight;
end;
@ -296,7 +303,8 @@ begin
ObjectInspectorOptions.DrawGridLines := OIDrawGridLinesCheckBox.Checked;
ObjectInspectorOptions.ShowGutter := OIShowGutterCheckBox.Checked;
ObjectInspectorOptions.ShowStatusBar := OIShowStatusBarCheckBox.Checked;
ObjectInspectorOptions.DefaultItemHeight:= RoundToInt(OIDefaultItemHeightSpinEdit.Value);
ObjectInspectorOptions.ShowInfoBox := OIShowInfoBoxCheckBox.Checked;
ObjectInspectorOptions.DefaultItemHeight := RoundToInt(OIDefaultItemHeightSpinEdit.Value);
end;
end;

View File

@ -59,7 +59,7 @@
<IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Frame"/>
<ResourceFilename Value="frames\options_oi.lrs"/>
<UnitName Value="Options_OI"/>
<UnitName Value="options_OI"/>
</Unit2>
<Unit3>
<Filename Value="frames\options_files.pas"/>

View File

@ -1040,12 +1040,13 @@ resourcestring
dlgOIItemHeight = 'Item height';
dlgOIUseDefaultLazarusSettings = 'Use default Lazarus settings';
dlgOIUseDefaultDelphiSettings = 'Use default Delphi settings';
lisShowHintsInObjectInspector = 'Show hints in Object Inspector';
lisAutoShowObjectInspector = 'Auto show Object Inspector';
lisShowHintsInObjectInspector = 'Show hints';
lisAutoShowObjectInspector = 'Auto show';
lisBoldNonDefaultObjectInspector = 'Bold non default values';
lisDrawGridLinesObjectInspector = 'Draw grid lines';
lisShowGutterInObjectInspector = 'Show gutter';
lisShowStatusBarInObjectInspector = 'Show status bar';
lisShowInfoBoxInObjectInspector = 'Show information box';
dlgEnvColors = 'Colors';
dlgEnvBackupHelpNote =
'Notes: Project files are all files in the project directory';

View File

@ -391,6 +391,7 @@ type
procedure OIOnRemoveFromFavourites(Sender: TObject);
procedure OIOnFindDeclarationOfProperty(Sender: TObject);
procedure OIOnUpdateRestricted(Sender: TObject);
procedure OIOnSelectionChange(Sender: TObject);
function OnPropHookGetMethodName(const Method: TMethod;
PropOwner: TObject): String;
procedure OnPropHookGetMethods(TypeData: PTypeData; Proc:TGetStringProc);
@ -1386,6 +1387,26 @@ begin
end;
end;
procedure TMainIDE.OIOnSelectionChange(Sender: TObject);
var
OI: TObjectInspectorDlg absolute Sender;
Row: TOIPropertyGridRow;
begin
if (Sender is TObjectInspectorDlg) then
begin
if OI.ShowInfoBox then
begin
// Just a test for now. Later we will show property description here
// TODO: use similar way as CodeHelpBoss.GetHTMLHint use
Row := OI.GetActivePropertyRow;
if Row <> nil then
OI.InfoPanel.Caption := 'TODO: show property description for [' + Row.Name + ']'
else
OI.InfoPanel.Caption := '';
end;
end;
end;
function TMainIDE.OnPropHookGetMethodName(const Method: TMethod;
PropOwner: TObject): String;
var
@ -1646,6 +1667,7 @@ begin
ObjectInspector1.OnSelectPersistentsInOI:=@OIOnSelectPersistents;
ObjectInspector1.OnShowOptions:=@OIOnShowOptions;
ObjectInspector1.OnViewRestricted:=@OIOnViewRestricted;
ObjectInspector1.OnSelectionChange:=@OIOnSelectionChange;
ObjectInspector1.OnDestroy:=@OIOnDestroy;
OIControlDocker:=TLazControlDocker.Create(ObjectInspector1);
OIControlDocker.Name:='ObjectInspector';

View File

@ -173,6 +173,7 @@ type
FSaveBounds: boolean;
FLeft: integer;
FShowGutter: boolean;
FShowInfoBox: boolean;
FShowStatusBar: boolean;
FTop: integer;
FWidth: integer;
@ -236,6 +237,7 @@ type
property DrawGridLines: boolean read FDrawGridLines write FDrawGridLines;
property ShowGutter: boolean read FShowGutter write FShowGutter;
property ShowStatusBar: boolean read FShowStatusBar write FShowStatusBar;
property ShowInfoBox: boolean read FShowInfoBox write FShowInfoBox;
end;
TOICustomPropertyGrid = class;
@ -330,6 +332,7 @@ type
FHighlightColor: TColor;
FLayout: TOILayout;
FOnOIKeyDown: TKeyEvent;
FOnSelectionChange: TNotifyEvent;
FReferencesColor: TColor;
FRowSpacing: integer;
FShowGutter: Boolean;
@ -467,6 +470,7 @@ type
procedure EraseBackground(DC: HDC); override;
procedure DoSetBounds(ALeft, ATop, AWidth, AHeight: integer); override;
procedure DoSelectionChange;
public
ValueEdit: TEdit;
ValueComboBox: TComboBox;
@ -532,6 +536,7 @@ type
property Layout: TOILayout read FLayout write FLayout default oilHorizontal;
property OnModified: TNotifyEvent read FOnModified write FOnModified;
property OnOIKeyDown: TKeyEvent read FOnOIKeyDown write FOnOIKeyDown;
property OnSelectionChange: TNotifyEvent read FOnSelectionChange write FOnSelectionChange;
property PrefferedSplitterX: integer read FPreferredSplitterX
write FPreferredSplitterX default 100;
property PropertyEditorHook: TPropertyEditorHook read FPropertyEditorHook
@ -578,6 +583,7 @@ type
property OnMouseMove;
property OnMouseUp;
property OnResize;
property OnSelectionChange;
property PopupMenu;
property PrefferedSplitterX;
property SplitterX;
@ -627,6 +633,7 @@ type
ViewRestrictedPropertiesPopupMenuItem: TMenuItem;
AvailPersistentComboBox: TComboBox;
ComponentTree: TComponentTreeView;
InfoPanel: TPanel;
CopyPopupmenuItem: TMenuItem;
CutPopupmenuItem: TMenuItem;
DeletePopupmenuItem: TMenuItem;
@ -651,6 +658,7 @@ type
ShowHintsPopupMenuItem: TMenuItem;
ShowOptionsPopupMenuItem: TMenuItem;
Splitter1: TSplitter;
Splitter2: TSplitter;
StatusBar: TStatusBar;
UndoPropertyPopupMenuItem: TMenuItem;
procedure AvailComboBoxCloseUp(Sender: TObject);
@ -681,6 +689,8 @@ type
private
FAutoShow: Boolean;
FFavourites: TOIFavouriteProperties;
FInfoBoxHeight: integer;
FOnSelectionChange: TNotifyEvent;
FRestricted: TOIRestrictedProperties;
FOnAddToFavourites: TNotifyEvent;
FOnFindDeclarationOfProperty: TNotifyEvent;
@ -701,6 +711,7 @@ type
FOnModified: TNotifyEvent;
FShowComponentTree: boolean;
FShowFavorites: Boolean;
FShowInfoBox: Boolean;
FShowRestricted: Boolean;
FShowStatusBar: Boolean;
FUpdateLock: integer;
@ -709,12 +720,14 @@ type
procedure SetFavourites(const AValue: TOIFavouriteProperties);
procedure SetComponentTreeHeight(const AValue: integer);
procedure SetDefaultItemHeight(const AValue: integer);
procedure SetInfoBoxHeight(const AValue: integer);
procedure SetRestricted(const AValue: TOIRestrictedProperties);
procedure SetOnShowOptions(const AValue: TNotifyEvent);
procedure SetPropertyEditorHook(NewValue: TPropertyEditorHook);
procedure SetSelection(const ASelection: TPersistentSelectionList);
procedure SetShowComponentTree(const AValue: boolean);
procedure SetShowFavorites(const AValue: Boolean);
procedure SetShowInfoBox(const AValue: Boolean);
procedure SetShowRestricted(const AValue: Boolean);
procedure SetShowStatusBar(const AValue: Boolean);
procedure ShowNextPage(Delta: integer);
@ -723,10 +736,11 @@ type
procedure AddPersistentToList(APersistent: TPersistent; List: TStrings);
procedure HookLookupRootChange;
procedure OnGridModified(Sender: TObject);
procedure OnGridSelectionChange(Sender: TObject);
procedure SetAvailComboBoxText;
procedure HookGetSelection(const ASelection: TPersistentSelectionList);
procedure HookSetSelection(const ASelection: TPersistentSelectionList);
procedure CreateSplitter;
procedure CreateSplitter(TopSplitter: Boolean);
procedure DestroyNoteBook;
procedure CreateNoteBook;
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
@ -757,6 +771,7 @@ type
property PropertyEditorHook: TPropertyEditorHook
read FPropertyEditorHook write SetPropertyEditorHook;
property OnModified: TNotifyEvent read FOnModified write FOnModified;
property OnSelectionChange: TNotifyEvent read FOnSelectionChange write FOnSelectionChange;
property OnShowOptions: TNotifyEvent read FOnShowOptions
write SetOnShowOptions;
property OnRemainingKeyUp: TKeyEvent read FOnRemainingKeyUp
@ -771,7 +786,9 @@ type
property ShowRestricted: Boolean read FShowRestricted write SetShowRestricted;
property ComponentTreeHeight: integer read FComponentTreeHeight
write SetComponentTreeHeight;
property InfoBoxHeight: integer read FInfoBoxHeight write SetInfoBoxHeight;
property ShowStatusBar: Boolean read FShowStatusBar write SetShowStatusBar;
property ShowInfoBox: Boolean read FShowInfoBox write SetShowInfoBox;
property GridControl[Page: TObjectInspectorPage]: TOICustomPropertyGrid
read GetGridControl;
property Favourites: TOIFavouriteProperties read FFavourites write SetFavourites;
@ -1500,31 +1517,34 @@ var
NewValue: string;
EditorAttributes: TPropertyAttributes;
begin
if GridIsUpdating or (FItemIndex=NewIndex) then
if GridIsUpdating or (FItemIndex = NewIndex) then
exit;
// save old edit value
SetRowValue;
Include(FStates,pgsChangingItemIndex);
if (FItemIndex>=0) and (FItemIndex<FRows.Count) then
Include(FStates, pgsChangingItemIndex);
if (FItemIndex >= 0) and (FItemIndex < FRows.Count) then
Rows[FItemIndex].Editor.Deactivate;
if CanFocus then
SetCaptureControl(nil);
FItemIndex:=NewIndex;
if FCurrentEdit<>nil then begin
FItemIndex := NewIndex;
if FCurrentEdit <> nil then
begin
FCurrentEdit.Visible:=false;
FCurrentEdit.Enabled:=false;
FCurrentEdit:=nil;
end;
if FCurrentButton<>nil then begin
if FCurrentButton<>nil then
begin
FCurrentButton.Visible:=false;
FCurrentButton.Enabled:=false;
FCurrentButton:=nil;
end;
FCurrentEditorLookupRoot:=nil;
if (NewIndex>=0) and (NewIndex<FRows.Count) then begin
if (NewIndex>=0) and (NewIndex<FRows.Count) then
begin
NewRow:=Rows[NewIndex];
ScrollToItem(NewIndex);
@ -1591,7 +1611,8 @@ begin
if FCurrentButton<>nil then
FCurrentButton.Enabled:=not NewRow.IsDisabled;
end;
Exclude(FStates,pgsChangingItemIndex);
Exclude(FStates, pgsChangingItemIndex);
DoSelectionChange;
Invalidate;
end;
@ -1609,7 +1630,8 @@ begin
end;
procedure TOICustomPropertyGrid.BuildPropertyList(OnlyIfNeeded: boolean);
var a: integer;
var
a: integer;
CurRow: TOIPropertyGridRow;
OldSelectedRowPath: string;
begin
@ -2188,6 +2210,12 @@ begin
UpdateScrollBar;
end;
procedure TOICustomPropertyGrid.DoSelectionChange;
begin
if Assigned(FOnSelectionChange) then
OnSelectionChange(Self);
end;
constructor TOICustomPropertyGrid.Create(TheOwner: TComponent);
begin
CreateWithParams(TheOwner,nil,AllTypeKinds,25);
@ -3399,6 +3427,7 @@ begin
FDrawGridLines := True;
FShowGutter := True;
FShowStatusBar := True;
FShowInfoBox := False;
end;
function TOIOptions.Load: boolean;
@ -3476,6 +3505,8 @@ begin
Path+'ShowGutter',true);
FShowStatusBar := ConfigStore.GetValue(
Path+'ShowStatusBar',true);
FShowInfoBox := ConfigStore.GetValue(
Path+'ShowInfoBox',false);
except
on E: Exception do begin
DebugLn('ERROR: TOIOptions.Load: ',E.Message);
@ -3539,13 +3570,13 @@ begin
ConfigStore.SetDeleteValue(Path+'Color/GutterEdge',
FGutterEdgeColor,DefGutterEdgeColor);
ConfigStore.SetDeleteValue(Path+'ShowHints',FShowHints,
true);
ConfigStore.SetDeleteValue(Path+'ShowHints',FShowHints, True);
ConfigStore.SetDeleteValue(Path+'AutoShow',FAutoShow, True);
ConfigStore.SetDeleteValue(Path+'BoldNonDefaultValues',FBoldNonDefaultValues, True);
ConfigStore.SetDeleteValue(Path+'DrawGridLines',FDrawGridLines, True);
ConfigStore.SetDeleteValue(Path+'ShowGutter',FShowGutter, True);
ConfigStore.SetDeleteValue(Path+'ShowStatusBar',FShowStatusBar, True);
ConfigStore.SetDeleteValue(Path+'ShowInfoBox',FShowInfoBox, False);
except
on E: Exception do begin
DebugLn('ERROR: TOIOptions.Save: ',E.Message);
@ -3587,6 +3618,7 @@ begin
FDrawGridLines := AnObjInspector.PropertyGrid.DrawHorzGridLines;
FShowGutter := AnObjInspector.PropertyGrid.ShowGutter;
FShowStatusBar := AnObjInspector.ShowStatusBar;
FShowInfoBox := AnObjInspector.ShowInfoBox;
end;
procedure TOIOptions.AssignTo(AnObjInspector: TObjectInspectorDlg);
@ -3626,6 +3658,7 @@ begin
end;
AnObjInspector.DefaultItemHeight := FDefaultItemHeight;
AnObjInspector.ShowComponentTree := FShowComponentTree;
AnObjInspector.ShowInfoBox := FShowInfoBox;
AnObjInspector.ComponentTreeHeight := FComponentTreeHeight;
AnObjInspector.AutoShow := AutoShow;
AnObjInspector.ShowStatusBar := ShowStatusBar;
@ -3691,6 +3724,8 @@ begin
FShowFavorites := False;
FShowRestricted := False;
FShowStatusBar := True;
FInfoBoxHeight := 40;
FShowInfoBox := False;
Caption := oisObjectInspector;
StatusBar.SimpleText := oisAll;
@ -3754,19 +3789,36 @@ begin
end;
// Component Tree at top (filled with available components)
ComponentTree:=TComponentTreeView.Create(Self);
with ComponentTree do begin
ComponentTree := TComponentTreeView.Create(Self);
with ComponentTree do
begin
Name:='ComponentTree';
Constraints.MinHeight:=16;
Height:=ComponentTreeHeight;
Parent:=Self;
Align:=alTop;
OnSelectionChanged:=@ComponentTreeSelectionChanged;
Visible:=FShowComponentTree;
OnSelectionChanged := @ComponentTreeSelectionChanged;
Visible := FShowComponentTree;
Scrollbars := ssAutoBoth;
end;
InfoPanel := TPanel.Create(Self);
with InfoPanel do
begin
Name := 'InfoPanel';
Caption := '';
Height := InfoBoxHeight;
Parent := Self;
BevelOuter := bvLowered;
Align := alBottom;
Visible := FShowInfoBox;
end;
if ShowComponentTree then
CreateSplitter;
CreateSplitter(True);
if ShowInfoBox then
CreateSplitter(False);
CreateNoteBook;
end;
@ -3842,6 +3894,12 @@ begin
RebuildPropertyLists;
end;
procedure TObjectInspectorDlg.SetInfoBoxHeight(const AValue: integer);
begin
if FInfoBoxHeight=AValue then exit;
FInfoBoxHeight:=AValue;
end;
procedure TObjectInspectorDlg.SetRestricted(const AValue: TOIRestrictedProperties);
begin
if FRestricted = AValue then exit;
@ -4258,6 +4316,11 @@ begin
if Assigned(FOnModified) then FOnModified(Self);
end;
procedure TObjectInspectorDlg.OnGridSelectionChange(Sender: TObject);
begin
if Assigned(FOnSelectionChange) then OnSelectionChange(Self);
end;
procedure TObjectInspectorDlg.SetAvailComboBoxText;
begin
case FSelection.Count of
@ -4305,7 +4368,7 @@ begin
ComponentTree.Parent:=Self;
ComponentTree.Align:=alTop;
if FShowComponentTree then
CreateSplitter
CreateSplitter(True)
else begin
ComponentTree.Height:=ComponentTreeHeight;
FreeAndNil(Splitter1);
@ -4325,6 +4388,19 @@ begin
NoteBook.Page[2].TabVisible := AValue;
end;
procedure TObjectInspectorDlg.SetShowInfoBox(const AValue: Boolean);
begin
if FShowInfoBox = AValue then exit;
FShowInfoBox := AValue;
InfoPanel.Visible := AValue;
if AValue then
CreateSplitter(False)
else
FreeAndNil(Splitter2);
end;
procedure TObjectInspectorDlg.SetShowRestricted(const AValue: Boolean);
begin
if FShowRestricted = AValue then exit;
@ -4461,16 +4537,32 @@ begin
ComponentRestrictedBox.Canvas.Brush.Style := OldStyle;
end;
procedure TObjectInspectorDlg.CreateSplitter;
procedure TObjectInspectorDlg.CreateSplitter(TopSplitter: Boolean);
begin
// vertical splitter between component tree and notebook
Splitter1:=TSplitter.Create(Self);
with Splitter1 do begin
Name:='Splitter1';
Parent:=Self;
Align:=alTop;
Top:=ComponentTreeHeight;
Height:=5;
if TopSplitter then
begin
Splitter1 := TSplitter.Create(Self);
with Splitter1 do
begin
Name := 'Splitter1';
Parent := Self;
Align := alTop;
Top := ComponentTreeHeight;
Height := 5;
end;
end
else
begin
Splitter2 := TSplitter.Create(Self);
with Splitter2 do
begin
Name := 'Splitter2';
Parent := Self;
Align := alBottom;
Top := InfoPanel.Top - 1;
Height := 5;
end;
end;
end;
@ -4518,7 +4610,7 @@ begin
end;
// property grid
PropertyGrid:=TOICustomPropertyGrid.CreateWithParams(Self,PropertyEditorHook
PropertyGrid:=TOICustomPropertyGrid.CreateWithParams(Self, PropertyEditorHook
,[tkUnknown, tkInteger, tkChar, tkEnumeration, tkFloat, tkSet{, tkMethod}
, tkSString, tkLString, tkAString, tkWString, tkVariant
{, tkArray, tkRecord, tkInterface}, tkClass, tkObject, tkWChar, tkBool
@ -4530,6 +4622,7 @@ begin
Align:=alClient;
PopupMenu:=MainPopupMenu;
OnModified:=@OnGridModified;
OnSelectionChange:=@OnGridSelectionChange;
OnOIKeyDown:=@OnGridKeyDown;
OnKeyUp:=@OnGridKeyUp;
OnDblClick:=@OnGridDblClick;
@ -4546,6 +4639,7 @@ begin
Align:=alClient;
PopupMenu:=MainPopupMenu;
OnModified:=@OnGridModified;
OnSelectionChange:=@OnGridSelectionChange;
OnOIKeyDown:=@OnGridKeyDown;
OnKeyUp:=@OnGridKeyUp;
OnDblClick:=@OnGridDblClick;
@ -4566,6 +4660,7 @@ begin
Align:=alClient;
PopupMenu:=MainPopupMenu;
OnModified:=@OnGridModified;
OnSelectionChange:=@OnGridSelectionChange;
OnOIKeyDown:=@OnGridKeyDown;
OnKeyUp:=@OnGridKeyUp;
OnDblClick:=@OnGridDblClick;
@ -4586,6 +4681,7 @@ begin
Align:=alClient;
PopupMenu:=MainPopupMenu;
OnModified:=@OnGridModified;
OnSelectionChange:=@OnGridSelectionChange;
OnOIKeyDown:=@OnGridKeyDown;
OnKeyUp:=@OnGridKeyUp;
OnDblClick:=@OnGridDblClick;