IDE: ide help: implemented IsRoot property for multiple wiki pages per dialog

git-svn-id: trunk@19667 -
This commit is contained in:
mattias 2009-04-28 15:27:42 +00:00
parent 9b30996e9e
commit 857aeb7a5a
6 changed files with 152 additions and 86 deletions

View File

@ -97,32 +97,32 @@
<Node52 Name="TAddDirToPkgDialog" Path="Add_directory_to_package" HasHelp="True"/>
<Node53 Name="TChgEncodingDialog" Path="Change_Encoding_Dialog" HasHelp="True"/>
<Node54 Name="TChooseKeySchemeDlg" Path="Choose_Key_Scheme" HasHelp="True"/>
<Node55 Name="TIDEOptionsDialog" Path="Options" HasHelp="True" ChildCount="25">
<Node1 Name="EditorGeneralOptionsFrame" Path="Editor_Options" HasHelp="True"/>
<Node2 Name="FilesOptionsFrame" Path="Environment_Options" HasHelp="True"/>
<Node3 Name="DesktopOptionsFrame" Path="Environment_Options" HasHelp="True"/>
<Node4 Name="WindowOptionsFrame" Path="Environment_Options" HasHelp="True"/>
<Node5 Name="FormEditorOptionsFrame" Path="Environment_Options" HasHelp="True"/>
<Node6 Name="OIOptionsFrame" Path="Environment_Options" HasHelp="True"/>
<Node7 Name="BackupOptionsFrame" Path="Environment_Options" HasHelp="True"/>
<Node8 Name="NamingOptionsFrame" Path="Environment_Options" HasHelp="True"/>
<Node9 Name="FpDocOptionsFrame" Path="Environment_Options" HasHelp="True"/>
<Node10 Name="EditorDisplayOptionsFrame" Path="Editor_Options" HasHelp="True"/>
<Node11 Name="EditorKeymappingOptionsFrame" Path="Editor_Options" HasHelp="True"/>
<Node12 Name="EditorColorOptionsFrame" Path="Editor_Options" HasHelp="True"/>
<Node13 Name="EditorCodetoolsOptionsFrame" Path="Editor_Options" HasHelp="True"/>
<Node14 Name="EditorCodefoldingOptionsFrame" Path="Editor_Options" HasHelp="True"/>
<Node15 Name="CodetoolsGeneralOptionsFrame" Path="Codetools_Options" HasHelp="True"/>
<Node16 Name="CodetoolsCodeCreationOptionsFrame" Path="Codetools_Options" HasHelp="True"/>
<Node17 Name="CodetoolsWordPolicyOptionsFrame" Path="Codetools_Options" HasHelp="True"/>
<Node18 Name="CodetoolsLineSplittingOptionsFrame" Path="Codetools_Options" HasHelp="True"/>
<Node19 Name="CodetoolsSpaceOptionsFrame" Path="Codetools_Options" HasHelp="True"/>
<Node20 Name="CodetoolsIndentifierComplietionOptionsFrame" Path="Codetools_Options" HasHelp="True"/>
<Node21 Name="DebuggerGeneralOptionsFrame" Path="Debugger_Options" HasHelp="True"/>
<Node22 Name="DebuggerEventLogOptionsFrame" Path="Debugger_Options" HasHelp="True"/>
<Node23 Name="DebuggerLanguageExceptionsOptions" Path="Debugger_Options" HasHelp="True"/>
<Node24 Name="DebuggerSignalsOptions" Path="Debugger_Options" HasHelp="True"/>
<Node25 Name="CategoryTree" Path="IDE_Options_Dialog" HasHelp="True"/>
<Node55 Name="TIDEOptionsDialog" Path="IDE_Options_Dialog" HasHelp="True" ChildCount="25">
<Node1 Name="EditorGeneralOptionsFrame" Path="Editor_Options" HasHelp="True" IsRoot="True"/>
<Node2 Name="FilesOptionsFrame" Path="Environment_Options" HasHelp="True" IsRoot="True"/>
<Node3 Name="DesktopOptionsFrame" Path="Environment_Options" HasHelp="True" IsRoot="True"/>
<Node4 Name="WindowOptionsFrame" Path="Environment_Options" HasHelp="True" IsRoot="True"/>
<Node5 Name="FormEditorOptionsFrame" Path="Environment_Options" HasHelp="True" IsRoot="True"/>
<Node6 Name="OIOptionsFrame" Path="Environment_Options" HasHelp="True" IsRoot="True"/>
<Node7 Name="BackupOptionsFrame" Path="Environment_Options" HasHelp="True" IsRoot="True"/>
<Node8 Name="NamingOptionsFrame" Path="Environment_Options" HasHelp="True" IsRoot="True"/>
<Node9 Name="FpDocOptionsFrame" Path="Environment_Options" HasHelp="True" IsRoot="True"/>
<Node10 Name="EditorDisplayOptionsFrame" Path="Editor_Options" HasHelp="True" IsRoot="True"/>
<Node11 Name="EditorKeymappingOptionsFrame" Path="Editor_Options" HasHelp="True" IsRoot="True"/>
<Node12 Name="EditorColorOptionsFrame" Path="Editor_Options" HasHelp="True" IsRoot="True"/>
<Node13 Name="EditorCodetoolsOptionsFrame" Path="Editor_Options" HasHelp="True" IsRoot="True"/>
<Node14 Name="EditorCodefoldingOptionsFrame" Path="Editor_Options" HasHelp="True" IsRoot="True"/>
<Node15 Name="CodetoolsGeneralOptionsFrame" Path="Codetools_Options" HasHelp="True" IsRoot="True"/>
<Node16 Name="CodetoolsCodeCreationOptionsFrame" Path="Codetools_Options" HasHelp="True" IsRoot="True"/>
<Node17 Name="CodetoolsWordPolicyOptionsFrame" Path="Codetools_Options" HasHelp="True" IsRoot="True"/>
<Node18 Name="CodetoolsLineSplittingOptionsFrame" Path="Codetools_Options" HasHelp="True" IsRoot="True"/>
<Node19 Name="CodetoolsSpaceOptionsFrame" Path="Codetools_Options" HasHelp="True" IsRoot="True"/>
<Node20 Name="CodetoolsIndentifierComplietionOptionsFrame" Path="Codetools_Options" HasHelp="True" IsRoot="True"/>
<Node21 Name="DebuggerGeneralOptionsFrame" Path="Debugger_Options" HasHelp="True" IsRoot="True"/>
<Node22 Name="DebuggerEventLogOptionsFrame" Path="Debugger_Options" HasHelp="True" IsRoot="True"/>
<Node23 Name="DebuggerLanguageExceptionsOptions" Path="Debugger_Options" HasHelp="True" IsRoot="True"/>
<Node24 Name="DebuggerSignalsOptions" Path="Debugger_Options" HasHelp="True" IsRoot="True"/>
<Node25 Name="CategoryTree" Path="IDE_Options_Dialog" HasHelp="True" IsRoot="True"/>
</Node55>
<Node56 Name="UnusedUnitsDialog" Path="Find_Unused_Units" HasHelp="True"/>
<Node57 Name="TUnusedUnitsDialog" Path="Find_Unused_Units" HasHelp="True"/>

View File

@ -18,23 +18,23 @@ object ContextHelpEditorDlg: TContextHelpEditorDlg
LCLVersion = '0.9.27'
object WindowControlsGroupBox: TGroupBox
Left = 6
Height = 466
Height = 456
Top = 6
Width = 305
Align = alLeft
BorderSpacing.Around = 6
Caption = 'WindowControlsGroupBox'
ClientHeight = 448
ClientHeight = 437
ClientWidth = 301
TabOrder = 0
object ControlsTreeView: TTreeView
Left = 6
Height = 354
Height = 343
Top = 6
Width = 289
Align = alClient
BorderSpacing.Around = 6
DefaultItemHeight = 15
DefaultItemHeight = 19
ReadOnly = True
TabOrder = 0
Options = [tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips]
@ -42,7 +42,7 @@ object ContextHelpEditorDlg: TContextHelpEditorDlg
object CreateHelpNodeForControlButton: TButton
Left = 6
Height = 35
Top = 366
Top = 355
Width = 289
Align = alBottom
BorderSpacing.Around = 6
@ -53,7 +53,7 @@ object ContextHelpEditorDlg: TContextHelpEditorDlg
object TestButton: TButton
Left = 6
Height = 35
Top = 407
Top = 396
Width = 289
Align = alBottom
BorderSpacing.Around = 6
@ -64,23 +64,23 @@ object ContextHelpEditorDlg: TContextHelpEditorDlg
end
object NodesGroupBox: TGroupBox
Left = 328
Height = 466
Height = 456
Top = 6
Width = 285
Align = alClient
BorderSpacing.Around = 6
Caption = 'NodesGroupBox'
ClientHeight = 448
ClientHeight = 437
ClientWidth = 281
TabOrder = 1
object HelpNodesTreeView: TTreeView
Left = 6
Height = 317
Height = 240
Top = 6
Width = 269
Align = alClient
BorderSpacing.Around = 6
DefaultItemHeight = 15
DefaultItemHeight = 19
ReadOnly = True
TabOrder = 0
OnSelectionChanged = HelpNodesTreeViewSelectionChanged
@ -88,35 +88,35 @@ object ContextHelpEditorDlg: TContextHelpEditorDlg
end
object HelpNodePropertiesGroupBox: TGroupBox
Left = 6
Height = 113
Top = 329
Height = 179
Top = 252
Width = 269
Align = alBottom
BorderSpacing.Around = 6
Caption = 'HelpNodePropertiesGroupBox'
ClientHeight = 95
ClientHeight = 160
ClientWidth = 265
TabOrder = 1
object NodeNameLabel: TLabel
Left = 10
Height = 14
Height = 18
Top = 10
Width = 32
Width = 44
Caption = 'Name:'
ParentColor = False
end
object NodePathLabel: TLabel
Left = 10
Height = 14
Height = 18
Top = 40
Width = 27
Width = 33
Caption = 'Path:'
ParentColor = False
end
object NodeHasHelpCheckBox: TCheckBox
Left = 6
Height = 17
Top = 72
Height = 22
Top = 104
Width = 253
Align = alBottom
BorderSpacing.Around = 6
@ -150,18 +150,40 @@ object ContextHelpEditorDlg: TContextHelpEditorDlg
TabOrder = 2
Text = 'NodePathEdit'
end
object NodeIsRootCheckBox: TCheckBox
Left = 6
Height = 22
Top = 132
Width = 253
Align = alBottom
BorderSpacing.Around = 6
Caption = 'NodeIsRootCheckBox'
OnEditingDone = NodeIsRootCheckBoxEditingDone
TabOrder = 3
end
object FullPathEdit: TEdit
Left = 6
Height = 23
Top = 75
Width = 253
Align = alBottom
BorderSpacing.Around = 6
ReadOnly = True
TabOrder = 4
Text = 'FullPathEdit'
end
end
end
object Splitter1: TSplitter
Left = 317
Height = 466
Height = 456
Top = 6
Width = 5
end
object ButtonPanel: TButtonPanel
Left = 6
Height = 26
Top = 478
Height = 36
Top = 468
Width = 607
TabOrder = 3
ShowButtons = [pbOK, pbCancel]

View File

@ -9,41 +9,41 @@ LazarusResources.Add('TContextHelpEditorDlg','FORMDATA',[
+'ntal'#7#14'crsScaleChilds'#12'ClientHeight'#3#254#1#11'ClientWidth'#3'k'#2#7
+'OnClose'#7#9'FormClose'#8'OnCreate'#7#10'FormCreate'#9'OnDestroy'#7#11'Form'
+'Destroy'#10'LCLVersion'#6#6'0.9.27'#0#9'TGroupBox'#22'WindowControlsGroupBo'
+'x'#4'Left'#2#6#6'Height'#3#210#1#3'Top'#2#6#5'Width'#3'1'#1#5'Align'#7#6'al'
+'x'#4'Left'#2#6#6'Height'#3#200#1#3'Top'#2#6#5'Width'#3'1'#1#5'Align'#7#6'al'
+'Left'#20'BorderSpacing.Around'#2#6#7'Caption'#6#22'WindowControlsGroupBox'
+#12'ClientHeight'#3#192#1#11'ClientWidth'#3'-'#1#8'TabOrder'#2#0#0#9'TTreeVi'
+'ew'#16'ControlsTreeView'#4'Left'#2#6#6'Height'#3'b'#1#3'Top'#2#6#5'Width'#3
+#12'ClientHeight'#3#181#1#11'ClientWidth'#3'-'#1#8'TabOrder'#2#0#0#9'TTreeVi'
+'ew'#16'ControlsTreeView'#4'Left'#2#6#6'Height'#3'W'#1#3'Top'#2#6#5'Width'#3
+'!'#1#5'Align'#7#8'alClient'#20'BorderSpacing.Around'#2#6#17'DefaultItemHeig'
+'ht'#2#15#8'ReadOnly'#9#8'TabOrder'#2#0#7'Options'#11#17'tvoAutoItemHeight'
+'ht'#2#19#8'ReadOnly'#9#8'TabOrder'#2#0#7'Options'#11#17'tvoAutoItemHeight'
+#16'tvoHideSelection'#21'tvoKeepCollapsedNodes'#11'tvoReadOnly'#14'tvoShowBu'
+'ttons'#12'tvoShowLines'#11'tvoShowRoot'#11'tvoToolTips'#0#0#0#7'TButton'#30
+'CreateHelpNodeForControlButton'#4'Left'#2#6#6'Height'#2'#'#3'Top'#3'n'#1#5
+'CreateHelpNodeForControlButton'#4'Left'#2#6#6'Height'#2'#'#3'Top'#3'c'#1#5
+'Width'#3'!'#1#5'Align'#7#8'alBottom'#20'BorderSpacing.Around'#2#6#7'Caption'
+#6#30'CreateHelpNodeForControlButton'#7'OnClick'#7'#CreateHelpNodeForControl'
+'ButtonClick'#8'TabOrder'#2#1#0#0#7'TButton'#10'TestButton'#4'Left'#2#6#6'He'
+'ight'#2'#'#3'Top'#3#151#1#5'Width'#3'!'#1#5'Align'#7#8'alBottom'#20'BorderS'
+'ight'#2'#'#3'Top'#3#140#1#5'Width'#3'!'#1#5'Align'#7#8'alBottom'#20'BorderS'
+'pacing.Around'#2#6#7'Caption'#6#10'TestButton'#7'OnClick'#7#15'TestButtonCl'
+'ick'#8'TabOrder'#2#2#0#0#0#9'TGroupBox'#13'NodesGroupBox'#4'Left'#3'H'#1#6
+'Height'#3#210#1#3'Top'#2#6#5'Width'#3#29#1#5'Align'#7#8'alClient'#20'Border'
+'Spacing.Around'#2#6#7'Caption'#6#13'NodesGroupBox'#12'ClientHeight'#3#192#1
+'Height'#3#200#1#3'Top'#2#6#5'Width'#3#29#1#5'Align'#7#8'alClient'#20'Border'
+'Spacing.Around'#2#6#7'Caption'#6#13'NodesGroupBox'#12'ClientHeight'#3#181#1
+#11'ClientWidth'#3#25#1#8'TabOrder'#2#1#0#9'TTreeView'#17'HelpNodesTreeView'
+#4'Left'#2#6#6'Height'#3'='#1#3'Top'#2#6#5'Width'#3#13#1#5'Align'#7#8'alClie'
+'nt'#20'BorderSpacing.Around'#2#6#17'DefaultItemHeight'#2#15#8'ReadOnly'#9#8
+#4'Left'#2#6#6'Height'#3#240#0#3'Top'#2#6#5'Width'#3#13#1#5'Align'#7#8'alCli'
+'ent'#20'BorderSpacing.Around'#2#6#17'DefaultItemHeight'#2#19#8'ReadOnly'#9#8
+'TabOrder'#2#0#18'OnSelectionChanged'#7'!HelpNodesTreeViewSelectionChanged'#7
+'Options'#11#17'tvoAutoItemHeight'#16'tvoHideSelection'#21'tvoKeepCollapsedN'
+'odes'#11'tvoReadOnly'#14'tvoShowButtons'#12'tvoShowLines'#11'tvoShowRoot'#11
+'tvoToolTips'#0#0#0#9'TGroupBox'#26'HelpNodePropertiesGroupBox'#4'Left'#2#6#6
+'Height'#2'q'#3'Top'#3'I'#1#5'Width'#3#13#1#5'Align'#7#8'alBottom'#20'Border'
+'Spacing.Around'#2#6#7'Caption'#6#26'HelpNodePropertiesGroupBox'#12'ClientHe'
+'ight'#2'_'#11'ClientWidth'#3#9#1#8'TabOrder'#2#1#0#6'TLabel'#13'NodeNameLab'
+'el'#4'Left'#2#10#6'Height'#2#14#3'Top'#2#10#5'Width'#2' '#7'Caption'#6#5'Na'
+'me:'#11'ParentColor'#8#0#0#6'TLabel'#13'NodePathLabel'#4'Left'#2#10#6'Heigh'
+'t'#2#14#3'Top'#2'('#5'Width'#2#27#7'Caption'#6#5'Path:'#11'ParentColor'#8#0
+#0#9'TCheckBox'#19'NodeHasHelpCheckBox'#4'Left'#2#6#6'Height'#2#17#3'Top'#2
+'H'#5'Width'#3#253#0#5'Align'#7#8'alBottom'#20'BorderSpacing.Around'#2#6#7'C'
+'aption'#6#19'NodeHasHelpCheckBox'#13'OnEditingDone'#7#30'NodeHasHelpCheckBo'
+'xEditingDone'#8'TabOrder'#2#0#0#0#5'TEdit'#12'NodeNameEdit'#23'AnchorSideRi'
+'ght.Control'#7#26'HelpNodePropertiesGroupBox'#20'AnchorSideRight.Side'#7#9
+'Height'#3#179#0#3'Top'#3#252#0#5'Width'#3#13#1#5'Align'#7#8'alBottom'#20'Bo'
+'rderSpacing.Around'#2#6#7'Caption'#6#26'HelpNodePropertiesGroupBox'#12'Clie'
+'ntHeight'#3#160#0#11'ClientWidth'#3#9#1#8'TabOrder'#2#1#0#6'TLabel'#13'Node'
+'NameLabel'#4'Left'#2#10#6'Height'#2#18#3'Top'#2#10#5'Width'#2','#7'Caption'
+#6#5'Name:'#11'ParentColor'#8#0#0#6'TLabel'#13'NodePathLabel'#4'Left'#2#10#6
+'Height'#2#18#3'Top'#2'('#5'Width'#2'!'#7'Caption'#6#5'Path:'#11'ParentColor'
+#8#0#0#9'TCheckBox'#19'NodeHasHelpCheckBox'#4'Left'#2#6#6'Height'#2#22#3'Top'
+#2'h'#5'Width'#3#253#0#5'Align'#7#8'alBottom'#20'BorderSpacing.Around'#2#6#7
+'Caption'#6#19'NodeHasHelpCheckBox'#13'OnEditingDone'#7#30'NodeHasHelpCheckB'
+'oxEditingDone'#8'TabOrder'#2#0#0#0#5'TEdit'#12'NodeNameEdit'#23'AnchorSideR'
+'ight.Control'#7#26'HelpNodePropertiesGroupBox'#20'AnchorSideRight.Side'#7#9
+'asrBottom'#4'Left'#2'F'#6'Height'#2#23#3'Top'#2#5#5'Width'#3#189#0#7'Anchor'
+'s'#11#5'akTop'#6'akLeft'#7'akRight'#0#20'BorderSpacing.Around'#2#6#13'OnEdi'
+'tingDone'#7#23'NodeNameEditEditingDone'#8'TabOrder'#2#1#4'Text'#6#12'NodeNa'
@ -51,9 +51,15 @@ LazarusResources.Add('TContextHelpEditorDlg','FORMDATA',[
+'NodePropertiesGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2'F'
+#6'Height'#2#23#3'Top'#2'#'#5'Width'#3#189#0#7'Anchors'#11#5'akTop'#6'akLeft'
+#7'akRight'#0#20'BorderSpacing.Around'#2#6#13'OnEditingDone'#7#23'NodePathEd'
+'itEditingDone'#8'TabOrder'#2#2#4'Text'#6#12'NodePathEdit'#0#0#0#0#9'TSplitt'
+'er'#9'Splitter1'#4'Left'#3'='#1#6'Height'#3#210#1#3'Top'#2#6#5'Width'#2#5#0
+#0#12'TButtonPanel'#11'ButtonPanel'#4'Left'#2#6#6'Height'#2#26#3'Top'#3#222#1
+#5'Width'#3'_'#2#8'TabOrder'#2#3#11'ShowButtons'#11#4'pbOK'#8'pbCancel'#0#9
+'ShowBevel'#8#0#0#0
+'itEditingDone'#8'TabOrder'#2#2#4'Text'#6#12'NodePathEdit'#0#0#9'TCheckBox'
+#18'NodeIsRootCheckBox'#4'Left'#2#6#6'Height'#2#22#3'Top'#3#132#0#5'Width'#3
+#253#0#5'Align'#7#8'alBottom'#20'BorderSpacing.Around'#2#6#7'Caption'#6#18'N'
+'odeIsRootCheckBox'#13'OnEditingDone'#7#29'NodeIsRootCheckBoxEditingDone'#8
+'TabOrder'#2#3#0#0#5'TEdit'#12'FullPathEdit'#4'Left'#2#6#6'Height'#2#23#3'To'
+'p'#2'K'#5'Width'#3#253#0#5'Align'#7#8'alBottom'#20'BorderSpacing.Around'#2#6
+#8'ReadOnly'#9#8'TabOrder'#2#4#4'Text'#6#12'FullPathEdit'#0#0#0#0#9'TSplitte'
+'r'#9'Splitter1'#4'Left'#3'='#1#6'Height'#3#200#1#3'Top'#2#6#5'Width'#2#5#0#0
+#12'TButtonPanel'#11'ButtonPanel'#4'Left'#2#6#6'Height'#2'$'#3'Top'#3#212#1#5
+'Width'#3'_'#2#8'TabOrder'#2#3#11'ShowButtons'#11#4'pbOK'#8'pbCancel'#0#9'Sh'
+'owBevel'#8#0#0#0
]);

View File

@ -43,6 +43,8 @@ type
TContextHelpEditorDlg = class(TForm)
ButtonPanel: TButtonPanel;
FullPathEdit: TEdit;
NodeIsRootCheckBox: TCheckBox;
TestButton: TButton;
CreateHelpNodeForControlButton: TButton;
NodeNameEdit: TEdit;
@ -62,6 +64,7 @@ type
procedure FormDestroy(Sender: TObject);
procedure HelpNodesTreeViewSelectionChanged(Sender: TObject);
procedure NodeHasHelpCheckBoxEditingDone(Sender: TObject);
procedure NodeIsRootCheckBoxEditingDone(Sender: TObject);
procedure NodeNameEditEditingDone(Sender: TObject);
procedure NodePathEditEditingDone(Sender: TObject);
procedure OkBitBtnClick(Sender: TObject);
@ -70,6 +73,7 @@ type
FIDEWindow: TCustomForm;
FInvoker: TObject;
FWorkingHelpNodes: TIWHelpTree;
fLoading: boolean;
procedure SetIDEWindow(const AValue: TCustomForm);
procedure SetInvoker(const AValue: TObject);
procedure UpdateWindowControlsGroupBoxCaption;
@ -150,6 +154,7 @@ begin
TestButton.Caption:=dlgCCOTest;
CreateHelpNodeForControlButton.Caption:=lisCreateHelpNode;
NodeHasHelpCheckBox.Caption:=lisHasHelp;
NodeIsRootCheckBox.Caption:=lisCEIsARootControl;
NodePathLabel.Caption:=lisPath;
NodeNameLabel.Caption:=lisDebugOptionsFrmName;
NodesGroupBox.Caption:=lisHelpEntries;
@ -180,6 +185,11 @@ begin
SaveHelpNodeProperties;
end;
procedure TContextHelpEditorDlg.NodeIsRootCheckBoxEditingDone(Sender: TObject);
begin
SaveHelpNodeProperties;
end;
procedure TContextHelpEditorDlg.NodeNameEditEditingDone(Sender: TObject);
begin
SaveHelpNodeProperties;
@ -287,15 +297,22 @@ var
begin
if (csDestroying in ComponentState) then exit;
HelpNode:=GetCurrentHelpNode;
if HelpNode<>nil then begin
HelpNodePropertiesGroupBox.Caption:=HelpNode.Name;
NodeNameEdit.Text:=HelpNode.Name;
NodePathEdit.Text:=HelpNode.Path;
NodeHasHelpCheckBox.Checked:=HelpNode.HasHelp;
HelpNodePropertiesGroupBox.Enabled:=true;
end else begin
HelpNodePropertiesGroupBox.Caption:=lisNoNodeSelected;
HelpNodePropertiesGroupBox.Enabled:=false;
fLoading:=true;
try
if HelpNode<>nil then begin
HelpNodePropertiesGroupBox.Caption:=HelpNode.Name;
NodeNameEdit.Text:=HelpNode.Name;
NodePathEdit.Text:=HelpNode.Path;
NodeHasHelpCheckBox.Checked:=HelpNode.HasHelp;
NodeIsRootCheckBox.Checked:=HelpNode.IsRoot;
HelpNodePropertiesGroupBox.Enabled:=true;
FullPathEdit.Text:=HelpNode.GetFullPath;
end else begin
HelpNodePropertiesGroupBox.Caption:=lisNoNodeSelected;
HelpNodePropertiesGroupBox.Enabled:=false;
end;
finally
fLoading:=false;
end;
end;
@ -384,11 +401,14 @@ procedure TContextHelpEditorDlg.SaveHelpNodeProperties;
var
HelpNode: TIWHelpNode;
begin
if fLoading then exit;
HelpNode:=GetCurrentHelpNode;
if HelpNode=nil then exit;
HelpNode.Name:=NodeNameEdit.Text;
HelpNode.Path:=NodePathEdit.Text;
HelpNode.HasHelp:=NodeHasHelpCheckBox.Checked;
HelpNode.IsRoot:=NodeIsRootCheckBox.Checked;
FullPathEdit.Text:=HelpNode.GetFullPath;
end;
procedure TContextHelpEditorDlg.SetIDEWindow(const AValue: TCustomForm);

View File

@ -39,6 +39,7 @@ type
TIWHelpNode = class
private
FIsRoot: boolean;
FItems: TFPList;// list of TIWHelpNode
FHasHelp: Boolean;
FName: string;
@ -47,6 +48,7 @@ type
function GetChilds(Index: integer): TIWHelpNode;
function GetCount: integer;
procedure SetHasHelp(const AValue: Boolean);
procedure SetIsRoot(const AValue: boolean);
procedure SetName(const AValue: string);
procedure SetPath(const AValue: string);
procedure DoRemove(AChild: TIWHelpNode);
@ -64,6 +66,7 @@ type
function GetFullPath: string;
public
property HasHelp: Boolean read FHasHelp write SetHasHelp;
property IsRoot: boolean read FIsRoot write SetIsRoot;// skip parent paths, except path of the top node
property Name: string read FName write SetName;
property Path: string read FPath write SetPath;
property Parent: TIWHelpNode read FParent;
@ -168,6 +171,12 @@ begin
FHasHelp:=AValue;
end;
procedure TIWHelpNode.SetIsRoot(const AValue: boolean);
begin
if FIsRoot=AValue then exit;
FIsRoot:=AValue;
end;
procedure TIWHelpNode.SetName(const AValue: string);
begin
if FName=AValue then exit;
@ -238,6 +247,7 @@ begin
Name:=Source.Name;
Path:=Source.Path;
HasHelp:=Source.HasHelp;
IsRoot:=Source.IsRoot;
for i:=0 to Source.Count-1 do begin
SrcNode:=Source[i];
NewNode:=AddChild;
@ -270,6 +280,7 @@ begin
Name:=NewName;
Path:=Config.GetValue(CfgPath+'Path','');
HasHelp:=Config.GetValue(CfgPath+'HasHelp',false);
IsRoot:=Config.GetValue(CfgPath+'IsRoot',false);
NewChildCount:=Config.GetValue(CfgPath+'ChildCount',0);
for i:=0 to NewChildCount-1 do begin
NewChild:=AddChild('');
@ -284,6 +295,7 @@ begin
Config.SetDeleteValue(CfgPath+'Name',Name,'');
Config.SetDeleteValue(CfgPath+'Path',Path,'');
Config.SetDeleteValue(CfgPath+'HasHelp',HasHelp,false);
Config.SetDeleteValue(CfgPath+'IsRoot',IsRoot,false);
Config.SetDeleteValue(CfgPath+'ChildCount',Count,0);
for i:=0 to Count-1 do
Childs[i].Save(Config,CfgPath+'Node'+IntToStr(i+1)+'/');
@ -316,11 +328,16 @@ end;
function TIWHelpNode.GetFullPath: string;
var
Node: TIWHelpNode;
SkipTillRoot: Boolean;
begin
Result:=Path;
Node:=Parent;
Result:='';
Node:=Self;
SkipTillRoot:=false;
while Node<>nil do begin
Result:=Node.Path+Result;
if (Node.Parent=nil) or (not SkipTillRoot) then
Result:=Node.Path+Result;
if Node.IsRoot then
SkipTillRoot:=true;
Node:=Node.Parent;
end;
end;

View File

@ -4095,6 +4095,7 @@ resourcestring
// Edit context help dialog (IDEContextHelpEdit.pas)
lisHelpEntries = 'Help entries';
lisPath = 'Path';
lisCEIsARootControl = 'Is a root control';
lisHasHelp = 'Has Help';
lisCreateHelpNode = 'Create Help node';
lisEditContextHelp = 'Edit context help';