lazarus/ide/frames/project_lazdoc_options.pas
2010-01-14 10:17:35 +00:00

96 lines
2.7 KiB
ObjectPascal

unit project_lazdoc_options;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs,
StdCtrls, Buttons, Project, IDEOptionsIntf, LazarusIDEStrConsts, IDEProcs;
type
{ TProjectLazDocOptionsFrame }
TProjectLazDocOptionsFrame = class(TAbstractIDEOptionsEditor)
LazDocAddPathButton: TBitBtn;
LazDocBrowseButton: TButton;
LazDocDeletePathButton: TBitBtn;
LazDocListBox: TListBox;
LazDocPathEdit: TEdit;
SelectDirectoryDialog: TSelectDirectoryDialog;
procedure LazDocAddPathButtonClick(Sender: TObject);
procedure LazDocBrowseButtonClick(Sender: TObject);
procedure LazDocDeletePathButtonClick(Sender: TObject);
private
{ private declarations }
public
function GetTitle: string; override;
procedure Setup(ADialog: TAbstractOptionsEditorDialog); override;
procedure ReadSettings(AOptions: TAbstractIDEOptions); override;
procedure WriteSettings(AOptions: TAbstractIDEOptions); override;
class function SupportedOptionsClass: TAbstractIDEOptionsClass; override;
end;
implementation
{$R *.lfm}
{ TProjectLazDocOptionsFrame }
procedure TProjectLazDocOptionsFrame.LazDocBrowseButtonClick(Sender: TObject);
begin
if SelectDirectoryDialog.Execute then
LazDocPathEdit.Text := SelectDirectoryDialog.FileName;
end;
procedure TProjectLazDocOptionsFrame.LazDocDeletePathButtonClick(Sender: TObject);
begin
if (LazDocListBox.ItemIndex >= 0) then
LazDocListBox.Items.Delete(LazDocListBox.ItemIndex);
end;
procedure TProjectLazDocOptionsFrame.LazDocAddPathButtonClick(Sender: TObject);
begin
if LazDocPathEdit.Text <> '' then
LazDocListBox.Items.Add(LazDocPathEdit.Text);
end;
function TProjectLazDocOptionsFrame.GetTitle: string;
begin
Result := lisFPDocEditor;
end;
procedure TProjectLazDocOptionsFrame.Setup(ADialog: TAbstractOptionsEditorDialog);
begin
LazDocAddPathButton.Caption := lisCodeHelpAddPathButton;
LazDocDeletePathButton.Caption := lisCodeHelpDeletePathButton;
LazDocDeletePathButton.LoadGlyphFromLazarusResource('laz_delete');
LazDocAddPathButton.LoadGlyphFromLazarusResource('laz_add');
LazDocPathEdit.Clear;
end;
procedure TProjectLazDocOptionsFrame.ReadSettings(AOptions: TAbstractIDEOptions);
begin
with AOptions as TProject do
SplitString(LazDocPaths, ';', LazDocListBox.Items, True);
end;
procedure TProjectLazDocOptionsFrame.WriteSettings(AOptions: TAbstractIDEOptions);
begin
with AOptions as TProject do
LazDocPaths := StringListToText(LazDocListBox.Items, ';', True);
end;
class function TProjectLazDocOptionsFrame.SupportedOptionsClass: TAbstractIDEOptionsClass;
begin
Result := TProject;
end;
initialization
RegisterIDEOptionsEditor(GroupProject, TProjectLazDocOptionsFrame, ProjectOptionsLazDoc);
end.