8
8
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs,
9
StdCtrls, Buttons, Project, IDEOptionsIntf, LazarusIDEStrConsts, IDEProcs;
9
StdCtrls, Buttons, Project, IDEOptionsIntf, LazarusIDEStrConsts, IDEProcs,
10
FPDocEditWindow, CodeHelp;
13
{ TProjectLazDocOptionsFrame }
14
{ TProjectFPDocOptionsFrame }
15
TProjectLazDocOptionsFrame = class(TAbstractIDEOptionsEditor)
16
LazDocAddPathButton: TBitBtn;
17
LazDocBrowseButton: TButton;
18
LazDocDeletePathButton: TBitBtn;
19
LazDocListBox: TListBox;
20
LazDocPathEdit: TEdit;
16
TProjectFPDocOptionsFrame = class(TAbstractIDEOptionsEditor)
17
AddPathButton: TBitBtn;
18
BrowseButton: TButton;
19
DeletePathButton: TBitBtn;
20
FPDocPackageNameEdit: TEdit;
21
FPDocPackageNameLabel: TLabel;
22
PathsListBox: TListBox;
24
SearchPathsGroupBox: TGroupBox;
21
25
SelectDirectoryDialog: TSelectDirectoryDialog;
22
procedure LazDocAddPathButtonClick(Sender: TObject);
23
procedure LazDocBrowseButtonClick(Sender: TObject);
24
procedure LazDocDeletePathButtonClick(Sender: TObject);
26
procedure AddPathButtonClick(Sender: TObject);
27
procedure BrowseButtonClick(Sender: TObject);
28
procedure DeletePathButtonClick(Sender: TObject);
29
procedure FPDocPackageNameEditEnter(Sender: TObject);
30
procedure FPDocPackageNameEditExit(Sender: TObject);
31
procedure PathsListBoxSelectionChange(Sender: TObject; User: boolean);
32
procedure PathEditChange(Sender: TObject);
26
{ private declarations }
34
function GetFPDocPkgNameEditValue: string;
28
36
function GetTitle: string; override;
29
37
procedure Setup(ADialog: TAbstractOptionsEditorDialog); override;
39
{ TProjectLazDocOptionsFrame }
41
procedure TProjectLazDocOptionsFrame.LazDocBrowseButtonClick(Sender: TObject);
47
{ TProjectFPDocOptionsFrame }
49
function TProjectFPDocOptionsFrame.GetTitle: string;
51
Result := lisFPDocEditor;
54
procedure TProjectFPDocOptionsFrame.Setup(ADialog: TAbstractOptionsEditorDialog);
56
FPDocPackageNameEdit.Hint:=lisFPDocPackageNameDefaultIsProjectFileName;
57
FPDocPackageNameLabel.Caption:=lisFPDocPackageName;
58
SearchPathsGroupBox.Caption:=lisSearchPaths2;
59
AddPathButton.Caption := lisCodeHelpAddPathButton;
60
DeletePathButton.Caption := lisCodeHelpDeletePathButton;
61
DeletePathButton.LoadGlyphFromLazarusResource('laz_delete');
62
AddPathButton.LoadGlyphFromLazarusResource('laz_add');
67
procedure TProjectFPDocOptionsFrame.BrowseButtonClick(Sender: TObject);
43
69
if SelectDirectoryDialog.Execute then
44
LazDocPathEdit.Text := SelectDirectoryDialog.FileName;
47
procedure TProjectLazDocOptionsFrame.LazDocDeletePathButtonClick(Sender: TObject);
49
if (LazDocListBox.ItemIndex >= 0) then
50
LazDocListBox.Items.Delete(LazDocListBox.ItemIndex);
53
procedure TProjectLazDocOptionsFrame.LazDocAddPathButtonClick(Sender: TObject);
55
if LazDocPathEdit.Text <> '' then
56
LazDocListBox.Items.Add(LazDocPathEdit.Text);
59
function TProjectLazDocOptionsFrame.GetTitle: string;
61
Result := lisFPDocEditor;
64
procedure TProjectLazDocOptionsFrame.Setup(ADialog: TAbstractOptionsEditorDialog);
66
LazDocAddPathButton.Caption := lisCodeHelpAddPathButton;
67
LazDocDeletePathButton.Caption := lisCodeHelpDeletePathButton;
68
LazDocDeletePathButton.LoadGlyphFromLazarusResource('laz_delete');
69
LazDocAddPathButton.LoadGlyphFromLazarusResource('laz_add');
74
procedure TProjectLazDocOptionsFrame.ReadSettings(AOptions: TAbstractIDEOptions);
76
with AOptions as TProject do
77
SplitString(LazDocPaths, ';', LazDocListBox.Items, True);
80
procedure TProjectLazDocOptionsFrame.WriteSettings(AOptions: TAbstractIDEOptions);
82
with AOptions as TProject do
83
LazDocPaths := StringListToText(LazDocListBox.Items, ';', True);
86
class function TProjectLazDocOptionsFrame.SupportedOptionsClass: TAbstractIDEOptionsClass;
70
PathEdit.Text := SelectDirectoryDialog.FileName;
73
procedure TProjectFPDocOptionsFrame.AddPathButtonClick(Sender: TObject);
75
if PathEdit.Text <> '' then begin
76
PathsListBox.Items.Add(PathEdit.Text);
81
procedure TProjectFPDocOptionsFrame.DeletePathButtonClick(Sender: TObject);
83
if (PathsListBox.ItemIndex >= 0) then begin
84
PathsListBox.Items.Delete(PathsListBox.ItemIndex);
85
PathsListBoxSelectionChange(PathsListBox, True);
89
procedure TProjectFPDocOptionsFrame.FPDocPackageNameEditEnter(Sender: TObject);
91
if FPDocPackageNameEdit.Text=lisDefaultPlaceholder then
92
FPDocPackageNameEdit.Text:='';
95
procedure TProjectFPDocOptionsFrame.FPDocPackageNameEditExit(Sender: TObject);
97
if GetFPDocPkgNameEditValue='' then
98
FPDocPackageNameEdit.Text:=lisDefaultPlaceholder
100
FPDocPackageNameEdit.Text:=GetFPDocPkgNameEditValue;
103
procedure TProjectFPDocOptionsFrame.PathsListBoxSelectionChange(Sender: TObject; User: boolean);
105
DeletePathButton.Enabled:=(Sender as TListBox).ItemIndex <> -1;
108
procedure TProjectFPDocOptionsFrame.PathEditChange(Sender: TObject);
110
AddPathButton.Enabled:=(Sender as TEdit).Text <> '';
113
function TProjectFPDocOptionsFrame.GetFPDocPkgNameEditValue: string;
115
if FPDocPackageNameEdit.Text=lisDefaultPlaceholder then
118
Result:=MakeValidFPDocPackageName(FPDocPackageNameEdit.Text);
121
procedure TProjectFPDocOptionsFrame.ReadSettings(AOptions: TAbstractIDEOptions);
123
with AOptions as TProject do begin
124
SplitString(FPDocPaths, ';', PathsListBox.Items, True);
125
if FPDocPackageName='' then
126
FPDocPackageNameEdit.Text:=lisDefaultPlaceholder
128
FPDocPackageNameEdit.Text:=FPDocPackageName;
132
procedure TProjectFPDocOptionsFrame.WriteSettings(AOptions: TAbstractIDEOptions);
134
with AOptions as TProject do begin
135
FPDocPaths := StringListToText(PathsListBox.Items, ';', True);
136
FPDocPackageName:=GetFPDocPkgNameEditValue;
140
class function TProjectFPDocOptionsFrame.SupportedOptionsClass: TAbstractIDEOptionsClass;
88
142
Result := TProject;
92
RegisterIDEOptionsEditor(GroupProject, TProjectLazDocOptionsFrame, ProjectOptionsLazDoc);
146
RegisterIDEOptionsEditor(GroupProject, TProjectFPDocOptionsFrame, ProjectOptionsLazDoc);