mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-14 07:59:35 +02:00
ide: convert environment options editor to IDE options editor
ideintf: add ideoptionsintf - base classes and functions to register IDE options editors, editor groups git-svn-id: trunk@17070 -
This commit is contained in:
parent
3462df6c3e
commit
472544c43b
7
.gitattributes
vendored
7
.gitattributes
vendored
@ -2361,9 +2361,6 @@ ide/encloseselectiondlg.lfm svneol=native#text/plain
|
||||
ide/encloseselectiondlg.lrs svneol=native#text/pascal
|
||||
ide/encloseselectiondlg.pas svneol=native#text/pascal
|
||||
ide/environmentopts.pp svneol=native#text/pascal
|
||||
ide/environmentopts_dlg.lfm svneol=native#text/plain
|
||||
ide/environmentopts_dlg.lrs svneol=native#text/plain
|
||||
ide/environmentopts_dlg.pas svneol=native#text/pascal
|
||||
ide/extractprocdlg.lfm svneol=native#text/plain
|
||||
ide/extractprocdlg.lrs svneol=native#text/pascal
|
||||
ide/extractprocdlg.pas svneol=native#text/pascal
|
||||
@ -2440,6 +2437,9 @@ ide/idecontexthelpedit.lrs svneol=native#text/plain
|
||||
ide/idecontexthelpedit.pas svneol=native#text/plain
|
||||
ide/idedefs.pas svneol=native#text/pascal
|
||||
ide/ideoptiondefs.pas svneol=native#text/pascal
|
||||
ide/ideoptionsdlg.lfm svneol=native#text/plain
|
||||
ide/ideoptionsdlg.lrs svneol=native#text/plain
|
||||
ide/ideoptionsdlg.pas svneol=native#text/pascal
|
||||
ide/ideprocs.pp svneol=native#text/pascal
|
||||
ide/ideprotocol.pas svneol=native#text/pascal
|
||||
ide/idetranslations.pas svneol=native#text/pascal
|
||||
@ -2644,6 +2644,7 @@ ideintf/ideexterntoolintf.pas svneol=native#text/plain
|
||||
ideintf/idehelpintf.pas svneol=native#text/plain
|
||||
ideintf/ideimagesintf.pas svneol=native#text/pascal
|
||||
ideintf/idemsgintf.pas svneol=native#text/plain
|
||||
ideintf/ideoptionsintf.pas svneol=native#text/pascal
|
||||
ideintf/idetextconverter.pas svneol=native#text/plain
|
||||
ideintf/idewindowintf.pas svneol=native#text/plain
|
||||
ideintf/imagelisteditor.lfm svneol=native#text/plain
|
||||
|
@ -36,7 +36,8 @@ uses
|
||||
{$ENDIF}
|
||||
Classes, SysUtils, Graphics, Controls, Forms, LCLProc, FileUtil, Dialogs,
|
||||
Laz_XMLCfg, IDEProcs, LazarusIDEStrConsts, IDETranslations, LazConf,
|
||||
ObjectInspector, IDEOptionDefs, IDEWindowIntf, ExtToolDialog, TransferMacros;
|
||||
ObjectInspector, IDEOptionDefs, IDEWindowIntf, ExtToolDialog, TransferMacros,
|
||||
IDEOptionsIntf;
|
||||
|
||||
const
|
||||
EnvOptsVersion: integer = 106;
|
||||
@ -122,7 +123,7 @@ type
|
||||
|
||||
{ TEnvironmentOptions }
|
||||
|
||||
TEnvironmentOptions = class
|
||||
TEnvironmentOptions = class(TAbstractIDEOptions)
|
||||
private
|
||||
FFilename: string;
|
||||
FFileAge: longint;
|
||||
@ -434,32 +435,6 @@ type
|
||||
property MsgViewFocus: boolean read fMsgViewFocus write fMsgViewFocus;
|
||||
end;
|
||||
|
||||
TOnLoadEnvironmentSettings = procedure (Sender: TObject;
|
||||
EnvironmentOptions: TEnvironmentOptions) of object;
|
||||
TOnSaveEnvironmentSettings = procedure (Sender: TObject;
|
||||
EnvironmentOptions: TEnvironmentOptions) of object;
|
||||
|
||||
{ TAbstractOptionsFrame }
|
||||
|
||||
TAbstractOptionsFrame = class(TFrame)
|
||||
private
|
||||
FOnLoadEnvironmentSettings: TOnLoadEnvironmentSettings;
|
||||
FOnSaveEnvironmentSettings: TOnSaveEnvironmentSettings;
|
||||
public
|
||||
function Check: Boolean; virtual; abstract;
|
||||
function GetTitle: String; virtual; abstract;
|
||||
procedure Setup; virtual; abstract;
|
||||
procedure ReadSettings(AOptions: TEnvironmentOptions); virtual; abstract;
|
||||
procedure WriteSettings(AOptions: TEnvironmentOptions); virtual; abstract;
|
||||
|
||||
property OnSaveEnvironmentSettings: TOnSaveEnvironmentSettings
|
||||
read FOnSaveEnvironmentSettings write FOnSaveEnvironmentSettings;
|
||||
property OnLoadEnvironmentSettings: TOnLoadEnvironmentSettings
|
||||
read FOnLoadEnvironmentSettings write FOnLoadEnvironmentSettings;
|
||||
end;
|
||||
TAbstractOptionsFrameClass = class of TAbstractOptionsFrame;
|
||||
TEnvironmentOptionsEditorGetProc = procedure(AEditor: TAbstractOptionsFrameClass) of object;
|
||||
|
||||
var
|
||||
EnvironmentOptions: TEnvironmentOptions = nil;
|
||||
|
||||
@ -476,9 +451,6 @@ function CheckDirPathExists(const Dir,
|
||||
function SimpleDirectoryCheck(const OldDir, NewDir,
|
||||
NotFoundErrMsg: string; out StopChecking: boolean): boolean;
|
||||
|
||||
procedure RegisterEnvironmentOptionsEditor(AEditor: TAbstractOptionsFrameClass);
|
||||
procedure EnumEnvironmentOptionsEditors(ACallBack: TEnvironmentOptionsEditorGetProc);
|
||||
|
||||
const
|
||||
DefaultLazDocPath = '$(LazarusDir)/docs/xml/lcl';
|
||||
DefaultMsgViewFocus = {$IFDEF Windows}true{$ELSE}false{$ENDIF};
|
||||
@ -491,34 +463,6 @@ implementation
|
||||
uses
|
||||
IDEContextHelpEdit;
|
||||
|
||||
type
|
||||
{ TEnvironmentOptionsEditorList }
|
||||
|
||||
TEnvironmentOptionsEditorList = class(TList)
|
||||
private
|
||||
function GetItem(AIndex: Integer): TAbstractOptionsFrameClass;
|
||||
procedure SetItem(AIndex: Integer; const AValue: TAbstractOptionsFrameClass);
|
||||
public
|
||||
property Items[AIndex: Integer]: TAbstractOptionsFrameClass read GetItem write SetItem; default;
|
||||
end;
|
||||
|
||||
{ TEnvironmentOptionsEditorList }
|
||||
|
||||
function TEnvironmentOptionsEditorList.GetItem(AIndex: Integer
|
||||
): TAbstractOptionsFrameClass;
|
||||
begin
|
||||
Result := TAbstractOptionsFrameClass(inherited Get(AIndex));
|
||||
end;
|
||||
|
||||
procedure TEnvironmentOptionsEditorList.SetItem(AIndex: Integer;
|
||||
const AValue: TAbstractOptionsFrameClass);
|
||||
begin
|
||||
inherited Put(AIndex, AValue);
|
||||
end;
|
||||
|
||||
var
|
||||
RegisteredEditors: TEnvironmentOptionsEditorList = nil;
|
||||
|
||||
function DebuggerNameToType(const s: string): TDebuggerType;
|
||||
begin
|
||||
for Result:=Low(TDebuggerType) to High(TDebuggerType) do
|
||||
@ -1491,26 +1435,5 @@ begin
|
||||
copy(FDebuggerFilename,SpacePos,length(FDebuggerFilename)-SpacePos+1);
|
||||
end;
|
||||
|
||||
procedure RegisterEnvironmentOptionsEditor(AEditor: TAbstractOptionsFrameClass);
|
||||
begin
|
||||
if RegisteredEditors = nil then
|
||||
RegisteredEditors := TEnvironmentOptionsEditorList.Create;
|
||||
if RegisteredEditors.IndexOf(AEditor) = -1 then
|
||||
RegisteredEditors.Add(AEditor);
|
||||
end;
|
||||
|
||||
procedure EnumEnvironmentOptionsEditors(ACallBack: TEnvironmentOptionsEditorGetProc);
|
||||
var
|
||||
i: integer;
|
||||
begin
|
||||
if RegisteredEditors = nil then
|
||||
Exit;
|
||||
for i := 0 to RegisteredEditors.Count - 1 do
|
||||
ACallBack(RegisteredEditors[i]);
|
||||
end;
|
||||
|
||||
finalization
|
||||
RegisteredEditors.Free;
|
||||
|
||||
end.
|
||||
|
||||
|
@ -1,17 +0,0 @@
|
||||
{ This is an automatically generated lazarus resource file }
|
||||
|
||||
LazarusResources.Add('TEnvironmentOptionsDialog','FORMDATA',[
|
||||
'TPF0'#25'TEnvironmentOptionsDialog'#24'EnvironmentOptionsDialog'#4'Left'#3'='
|
||||
+#1#6'Height'#3#244#1#3'Top'#3'0'#1#5'Width'#3#147#2#7'Caption'#6#24'Environm'
|
||||
+'entOptionsDialog'#12'ClientHeight'#3#244#1#11'ClientWidth'#3#147#2#10'Paren'
|
||||
+'tFont'#8#8'Position'#7#14'poScreenCenter'#10'LCLVersion'#6#6'0.9.27'#0#12'T'
|
||||
+'ButtonPanel'#11'ButtonPanel'#4'Left'#2#6#6'Height'#2'('#3'Top'#3#204#1#5'Wi'
|
||||
+'dth'#3#135#2#5'Align'#7#8'alBottom'#8'AutoSize'#9#8'TabOrder'#2#0#11'ShowBu'
|
||||
+'ttons'#11#4'pbOK'#8'pbCancel'#6'pbHelp'#0#0#0#9'TTreeView'#12'CategoryTree'
|
||||
+#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#5'Owner'
|
||||
+#24'AnchorSideBottom.Control'#7#11'ButtonPanel'#4'Left'#2#6#6'Height'#3#192#1
|
||||
+#3'Top'#2#6#5'Width'#3#206#0#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBottom'#0
|
||||
+#18'BorderSpacing.Left'#2#6#17'BorderSpacing.Top'#2#6#20'BorderSpacing.Botto'
|
||||
+'m'#2#6#20'Constraints.MinWidth'#3#206#0#17'DefaultItemHeight'#2#15#8'TabOrd'
|
||||
+'er'#2#1#8'OnChange'#7#18'CategoryTreeChange'#0#0#0
|
||||
]);
|
@ -26,13 +26,13 @@ interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, FileUtil, LResources, Forms, StdCtrls, ExtCtrls,
|
||||
EnvironmentOpts, LazarusIDEStrConsts, IDEProcs;
|
||||
EnvironmentOpts, LazarusIDEStrConsts, IDEProcs, IDEOptionsIntf;
|
||||
|
||||
type
|
||||
|
||||
{ TBackupOptionsFrame }
|
||||
|
||||
TBackupOptionsFrame = class(TAbstractOptionsFrame)
|
||||
TBackupOptionsFrame = class(TAbstractIDEOptionsEditor)
|
||||
BackupHelpLabel: TLabel;
|
||||
BackupOtherGroupBox: TGroupBox;
|
||||
BackupProjectGroupBox: TGroupBox;
|
||||
@ -53,11 +53,10 @@ type
|
||||
procedure BakTypeRadioGroupClick(Sender: TObject);
|
||||
private
|
||||
public
|
||||
function Check: Boolean; override;
|
||||
function GetTitle: String; override;
|
||||
procedure Setup; override;
|
||||
procedure ReadSettings(AOptions: TEnvironmentOptions); override;
|
||||
procedure WriteSettings(AOptions: TEnvironmentOptions); override;
|
||||
procedure ReadSettings(AOptions: TAbstractIDEOptions); override;
|
||||
procedure WriteSettings(AOptions: TAbstractIDEOptions); override;
|
||||
end;
|
||||
|
||||
implementation
|
||||
@ -84,11 +83,6 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function TBackupOptionsFrame.Check: Boolean;
|
||||
begin
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
function TBackupOptionsFrame.GetTitle: String;
|
||||
begin
|
||||
Result := dlgEnvBckup;
|
||||
@ -201,9 +195,9 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TBackupOptionsFrame.ReadSettings(AOptions: TEnvironmentOptions);
|
||||
procedure TBackupOptionsFrame.ReadSettings(AOptions: TAbstractIDEOptions);
|
||||
begin
|
||||
with AOptions do
|
||||
with AOptions as TEnvironmentOptions do
|
||||
begin
|
||||
with BackupInfoProjectFiles do
|
||||
begin
|
||||
@ -250,9 +244,9 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TBackupOptionsFrame.WriteSettings(AOptions: TEnvironmentOptions);
|
||||
procedure TBackupOptionsFrame.WriteSettings(AOptions: TAbstractIDEOptions);
|
||||
begin
|
||||
with AOptions do
|
||||
with AOptions as TEnvironmentOptions do
|
||||
begin
|
||||
with BackupInfoProjectFiles do
|
||||
begin
|
||||
@ -298,7 +292,6 @@ end;
|
||||
|
||||
initialization
|
||||
{$I options_backup.lrs}
|
||||
RegisterEnvironmentOptionsEditor(TBackupOptionsFrame);
|
||||
|
||||
RegisterIDEOptionsEditor(GroupEnvironment, TBackupOptionsFrame, TEnvironmentOptions, EnvOptionsBackup);
|
||||
end.
|
||||
|
||||
|
@ -26,13 +26,13 @@ interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, FileUtil, LResources, Forms, StdCtrls, Dialogs, LCLProc,
|
||||
EnvironmentOpts, LazarusIDEStrConsts, IDETranslations, InputHistory, IDEProcs;
|
||||
EnvironmentOpts, LazarusIDEStrConsts, IDETranslations, InputHistory, IDEProcs, IDEOptionsIntf;
|
||||
|
||||
type
|
||||
|
||||
{ TDesktopOptionsFrame }
|
||||
|
||||
TDesktopOptionsFrame = class(TAbstractOptionsFrame)
|
||||
TDesktopOptionsFrame = class(TAbstractIDEOptionsEditor)
|
||||
AutoSaveEditorFilesCheckBox: TCheckBox;
|
||||
AutoSaveGroupBox: TGroupBox;
|
||||
AutoSaveIntervalInSecsComboBox: TComboBox;
|
||||
@ -54,25 +54,19 @@ type
|
||||
function LangIDToCaption(const LangID: string): string;
|
||||
function CaptionToLangID(const ACaption: string): string;
|
||||
|
||||
procedure DoLoadSettings(AOptions: TEnvironmentOptions);
|
||||
procedure DoSaveSettings(AOptions: TEnvironmentOptions);
|
||||
procedure DoLoadSettings(AOptions: TAbstractIDEOptions);
|
||||
procedure DoSaveSettings(AOptions: TAbstractIDEOptions);
|
||||
public
|
||||
function Check: Boolean; override;
|
||||
function GetTitle: String; override;
|
||||
procedure Setup; override;
|
||||
procedure ReadSettings(AOptions: TEnvironmentOptions); override;
|
||||
procedure WriteSettings(AOptions: TEnvironmentOptions); override;
|
||||
procedure ReadSettings(AOptions: TAbstractIDEOptions); override;
|
||||
procedure WriteSettings(AOptions: TAbstractIDEOptions); override;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
{ TDesktopOptionsFrame }
|
||||
|
||||
function TDesktopOptionsFrame.Check: Boolean;
|
||||
begin
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
function TDesktopOptionsFrame.GetTitle: String;
|
||||
begin
|
||||
Result := dlgDesktop;
|
||||
@ -121,9 +115,9 @@ begin
|
||||
MsgViewFocusCheckBox.Caption:=dlgEOFocusMessagesAfterCompilation;
|
||||
end;
|
||||
|
||||
procedure TDesktopOptionsFrame.ReadSettings(AOptions: TEnvironmentOptions);
|
||||
procedure TDesktopOptionsFrame.ReadSettings(AOptions: TAbstractIDEOptions);
|
||||
begin
|
||||
with AOptions do
|
||||
with AOptions as TEnvironmentOptions do
|
||||
begin
|
||||
// language
|
||||
LanguageComboBox.Text:=LangIDToCaption(LanguageID);
|
||||
@ -149,9 +143,9 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TDesktopOptionsFrame.WriteSettings(AOptions: TEnvironmentOptions);
|
||||
procedure TDesktopOptionsFrame.WriteSettings(AOptions: TAbstractIDEOptions);
|
||||
begin
|
||||
with AOptions do
|
||||
with AOptions as TEnvironmentOptions do
|
||||
begin
|
||||
// language
|
||||
LanguageID:=CaptionToLangID(LanguageComboBox.Text);
|
||||
@ -270,21 +264,20 @@ begin
|
||||
Result := '';
|
||||
end;
|
||||
|
||||
procedure TDesktopOptionsFrame.DoLoadSettings(AOptions: TEnvironmentOptions);
|
||||
procedure TDesktopOptionsFrame.DoLoadSettings(AOptions: TAbstractIDEOptions);
|
||||
begin
|
||||
if Assigned(OnLoadEnvironmentSettings) then
|
||||
OnLoadEnvironmentSettings(Self, AOptions);
|
||||
if Assigned(OnLoadIDEOptions) then
|
||||
OnLoadIDEOptions(Self, AOptions);
|
||||
end;
|
||||
|
||||
procedure TDesktopOptionsFrame.DoSaveSettings(AOptions: TEnvironmentOptions);
|
||||
procedure TDesktopOptionsFrame.DoSaveSettings(AOptions: TAbstractIDEOptions);
|
||||
begin
|
||||
if Assigned(OnSaveEnvironmentSettings) then
|
||||
OnSaveEnvironmentSettings(Self, AOptions);
|
||||
if Assigned(OnSaveIDEOptions) then
|
||||
OnSaveIDEOptions(Self, AOptions);
|
||||
end;
|
||||
|
||||
initialization
|
||||
{$I options_desktop.lrs}
|
||||
RegisterEnvironmentOptionsEditor(TDesktopOptionsFrame);
|
||||
|
||||
RegisterIDEOptionsEditor(GroupEnvironment, TDesktopOptionsFrame, TEnvironmentOptions, EnvOptionsDesktop);
|
||||
end.
|
||||
|
||||
|
@ -26,13 +26,13 @@ interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, FileUtil, LResources, Forms, StdCtrls, Dialogs, Controls,
|
||||
EnvironmentOpts, LazarusIDEStrConsts, InputHistory, LazConf, IDEProcs;
|
||||
EnvironmentOpts, LazarusIDEStrConsts, InputHistory, LazConf, IDEProcs, IDEOptionsIntf;
|
||||
|
||||
type
|
||||
|
||||
{ TFilesOptionsFrame }
|
||||
|
||||
TFilesOptionsFrame = class(TAbstractOptionsFrame)
|
||||
TFilesOptionsFrame = class(TAbstractIDEOptionsEditor)
|
||||
CompilerPathButton: TButton;
|
||||
CompilerPathComboBox: TComboBox;
|
||||
CompilerPathGroupBox: TGroupBox;
|
||||
@ -69,8 +69,8 @@ type
|
||||
function Check: Boolean; override;
|
||||
function GetTitle: String; override;
|
||||
procedure Setup; override;
|
||||
procedure ReadSettings(AOptions: TEnvironmentOptions); override;
|
||||
procedure WriteSettings(AOptions: TEnvironmentOptions); override;
|
||||
procedure ReadSettings(AOptions: TAbstractIDEOptions); override;
|
||||
procedure WriteSettings(AOptions: TAbstractIDEOptions); override;
|
||||
end;
|
||||
|
||||
implementation
|
||||
@ -228,9 +228,9 @@ begin
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
procedure TFilesOptionsFrame.ReadSettings(AOptions: TEnvironmentOptions);
|
||||
procedure TFilesOptionsFrame.ReadSettings(AOptions: TAbstractIDEOptions);
|
||||
begin
|
||||
with AOptions do
|
||||
with AOptions as TEnvironmentOptions do
|
||||
begin
|
||||
LazarusDirComboBox.Items.Assign(LazarusDirHistory);
|
||||
FOldLazarusDir:=LazarusDirectory;
|
||||
@ -265,9 +265,9 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFilesOptionsFrame.WriteSettings(AOptions: TEnvironmentOptions);
|
||||
procedure TFilesOptionsFrame.WriteSettings(AOptions: TAbstractIDEOptions);
|
||||
begin
|
||||
with AOptions do
|
||||
with AOptions as TEnvironmentOptions do
|
||||
begin
|
||||
LazarusDirectory:=LazarusDirComboBox.Text;
|
||||
LazarusDirHistory.Assign(LazarusDirComboBox.Items);
|
||||
@ -345,7 +345,6 @@ end;
|
||||
|
||||
initialization
|
||||
{$I options_files.lrs}
|
||||
RegisterEnvironmentOptionsEditor(TFilesOptionsFrame);
|
||||
|
||||
RegisterIDEOptionsEditor(GroupEnvironment, TFilesOptionsFrame, TEnvironmentOptions, EnvOptionsFiles);
|
||||
end.
|
||||
|
||||
|
@ -26,13 +26,13 @@ interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, FileUtil, LResources, Forms, StdCtrls, Dialogs,
|
||||
EnvironmentOpts, LazarusIDEStrConsts, IDEProcs;
|
||||
EnvironmentOpts, LazarusIDEStrConsts, IDEProcs, IDEOptionsIntf;
|
||||
|
||||
type
|
||||
|
||||
{ TFormEditorOptionsFrame }
|
||||
|
||||
TFormEditorOptionsFrame = class(TAbstractOptionsFrame)
|
||||
TFormEditorOptionsFrame = class(TAbstractIDEOptionsEditor)
|
||||
AutoCreateFormsOnOpenCheckBox: TCheckBox;
|
||||
DesignerPaintLazyCheckBox: TCheckBox;
|
||||
FormEditMiscGroupBox: TGroupBox;
|
||||
@ -69,22 +69,16 @@ type
|
||||
procedure FrameResize(Sender: TObject);
|
||||
private
|
||||
public
|
||||
function Check: Boolean; override;
|
||||
function GetTitle: String; override;
|
||||
procedure Setup; override;
|
||||
procedure ReadSettings(AOptions: TEnvironmentOptions); override;
|
||||
procedure WriteSettings(AOptions: TEnvironmentOptions); override;
|
||||
procedure ReadSettings(AOptions: TAbstractIDEOptions); override;
|
||||
procedure WriteSettings(AOptions: TAbstractIDEOptions); override;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
{ TFormEditorOptionsFrame }
|
||||
|
||||
function TFormEditorOptionsFrame.Check: Boolean;
|
||||
begin
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
function TFormEditorOptionsFrame.GetTitle: String;
|
||||
begin
|
||||
Result := dlgFrmEditor;
|
||||
@ -143,9 +137,9 @@ begin
|
||||
SetupMiscGroupBox;
|
||||
end;
|
||||
|
||||
procedure TFormEditorOptionsFrame.ReadSettings(AOptions: TEnvironmentOptions);
|
||||
procedure TFormEditorOptionsFrame.ReadSettings(AOptions: TAbstractIDEOptions);
|
||||
begin
|
||||
with AOptions do
|
||||
with AOptions as TEnvironmentOptions do
|
||||
begin
|
||||
ShowBorderSpaceCheckBox.Checked:=ShowBorderSpacing;
|
||||
ShowGridCheckBox.Checked:=ShowGrid;
|
||||
@ -170,9 +164,9 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFormEditorOptionsFrame.WriteSettings(AOptions: TEnvironmentOptions);
|
||||
procedure TFormEditorOptionsFrame.WriteSettings(AOptions: TAbstractIDEOptions);
|
||||
begin
|
||||
with AOptions do
|
||||
with AOptions as TEnvironmentOptions do
|
||||
begin
|
||||
ShowBorderSpacing:=ShowBorderSpaceCheckBox.Checked;
|
||||
ShowGrid:=ShowGridCheckBox.Checked;
|
||||
@ -208,7 +202,6 @@ end;
|
||||
|
||||
initialization
|
||||
{$I options_formed.lrs}
|
||||
RegisterEnvironmentOptionsEditor(TFormEditorOptionsFrame);
|
||||
|
||||
RegisterIDEOptionsEditor(GroupEnvironment, TFormEditorOptionsFrame, TEnvironmentOptions, EnvOptionsFormEd);
|
||||
end.
|
||||
|
||||
|
@ -26,13 +26,13 @@ interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, FileUtil, LResources, Forms, Dialogs, StdCtrls,
|
||||
EnvironmentOpts, LazarusIDEStrConsts, IDEProcs;
|
||||
EnvironmentOpts, LazarusIDEStrConsts, IDEProcs, IDEOptionsIntf;
|
||||
|
||||
type
|
||||
|
||||
{ TFpDocOptionsFrame }
|
||||
|
||||
TFpDocOptionsFrame = class(TAbstractOptionsFrame)
|
||||
TFpDocOptionsFrame = class(TAbstractIDEOptionsEditor)
|
||||
LazDocAddPathButton: TButton;
|
||||
LazDocBrowseButton: TButton;
|
||||
LazDocDeletePathButton: TButton;
|
||||
@ -45,22 +45,16 @@ type
|
||||
procedure LazDocBrowseButtonClick(Sender: TObject);
|
||||
private
|
||||
public
|
||||
function Check: Boolean; override;
|
||||
function GetTitle: String; override;
|
||||
procedure Setup; override;
|
||||
procedure ReadSettings(AOptions: TEnvironmentOptions); override;
|
||||
procedure WriteSettings(AOptions: TEnvironmentOptions); override;
|
||||
procedure ReadSettings(AOptions: TAbstractIDEOptions); override;
|
||||
procedure WriteSettings(AOptions: TAbstractIDEOptions); override;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
{ TFpDocOptionsFrame }
|
||||
|
||||
function TFpDocOptionsFrame.Check: Boolean;
|
||||
begin
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
function TFpDocOptionsFrame.GetTitle: String;
|
||||
begin
|
||||
Result := lisFPDocEditor;
|
||||
@ -75,15 +69,15 @@ begin
|
||||
LazDocPathEdit.Clear;
|
||||
end;
|
||||
|
||||
procedure TFpDocOptionsFrame.ReadSettings(AOptions: TEnvironmentOptions);
|
||||
procedure TFpDocOptionsFrame.ReadSettings(AOptions: TAbstractIDEOptions);
|
||||
begin
|
||||
with AOptions do
|
||||
with AOptions as TEnvironmentOptions do
|
||||
SplitString(LazDocPaths, ';', LazDocListBox.Items);
|
||||
end;
|
||||
|
||||
procedure TFpDocOptionsFrame.WriteSettings(AOptions: TEnvironmentOptions);
|
||||
procedure TFpDocOptionsFrame.WriteSettings(AOptions: TAbstractIDEOptions);
|
||||
begin
|
||||
with AOptions do
|
||||
with AOptions as TEnvironmentOptions do
|
||||
LazDocPaths := StringListToText(LazDocListBox.Items, ';', true);
|
||||
end;
|
||||
|
||||
@ -106,7 +100,6 @@ end;
|
||||
|
||||
initialization
|
||||
{$I options_fpdoc.lrs}
|
||||
RegisterEnvironmentOptionsEditor(TFpDocOptionsFrame);
|
||||
|
||||
RegisterIDEOptionsEditor(GroupEnvironment, TFpDocOptionsFrame, TEnvironmentOptions, EnvOptionsFpDoc);
|
||||
end.
|
||||
|
||||
|
@ -26,34 +26,28 @@ interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, FileUtil, LResources, Forms, ExtCtrls,
|
||||
EnvironmentOpts, LazarusIDEStrConsts;
|
||||
EnvironmentOpts, LazarusIDEStrConsts, IDEOptionsIntf;
|
||||
|
||||
type
|
||||
|
||||
{ TNamingOptionsFrame }
|
||||
|
||||
TNamingOptionsFrame = class(TAbstractOptionsFrame)
|
||||
TNamingOptionsFrame = class(TAbstractIDEOptionsEditor)
|
||||
AmbiguousFileActionRadioGroup: TRadioGroup;
|
||||
CharcaseFileActionRadioGroup: TRadioGroup;
|
||||
PascalFileExtRadiogroup: TRadioGroup;
|
||||
private
|
||||
public
|
||||
function Check: Boolean; override;
|
||||
function GetTitle: String; override;
|
||||
procedure Setup; override;
|
||||
procedure ReadSettings(AOptions: TEnvironmentOptions); override;
|
||||
procedure WriteSettings(AOptions: TEnvironmentOptions); override;
|
||||
procedure ReadSettings(AOptions: TAbstractIDEOptions); override;
|
||||
procedure WriteSettings(AOptions: TAbstractIDEOptions); override;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
{ TNamingOptionsFrame }
|
||||
|
||||
function TNamingOptionsFrame.Check: Boolean;
|
||||
begin
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
function TNamingOptionsFrame.GetTitle: String;
|
||||
begin
|
||||
Result := dlgNaming;
|
||||
@ -106,11 +100,11 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TNamingOptionsFrame.ReadSettings(AOptions: TEnvironmentOptions);
|
||||
procedure TNamingOptionsFrame.ReadSettings(AOptions: TAbstractIDEOptions);
|
||||
var
|
||||
i: integer;
|
||||
begin
|
||||
with AOptions do
|
||||
with AOptions as TEnvironmentOptions do
|
||||
begin
|
||||
for i := 0 to PascalFileExtRadiogroup.Items.Count-1 do
|
||||
if PascalFileExtRadiogroup.Items[i] = PascalExtension[PascalFileExtension] then
|
||||
@ -121,9 +115,9 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TNamingOptionsFrame.WriteSettings(AOptions: TEnvironmentOptions);
|
||||
procedure TNamingOptionsFrame.WriteSettings(AOptions: TAbstractIDEOptions);
|
||||
begin
|
||||
with AOptions do
|
||||
with AOptions as TEnvironmentOptions do
|
||||
begin
|
||||
if PascalFileExtRadiogroup.ItemIndex >= 0 then
|
||||
PascalFileExtension := PascalExtToType(PascalFileExtRadiogroup.Items[PascalFileExtRadiogroup.ItemIndex])
|
||||
@ -136,7 +130,6 @@ end;
|
||||
|
||||
initialization
|
||||
{$I options_naming.lrs}
|
||||
RegisterEnvironmentOptionsEditor(TNamingOptionsFrame);
|
||||
|
||||
RegisterIDEOptionsEditor(GroupEnvironment, TNamingOptionsFrame, TEnvironmentOptions, EnvOptionsNaming);
|
||||
end.
|
||||
|
||||
|
@ -26,13 +26,13 @@ interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, FileUtil, LResources, Forms, StdCtrls, Dialogs, Spin, LCLProc,
|
||||
ObjectInspector, LazarusIDEStrConsts, EnvironmentOpts;
|
||||
ObjectInspector, LazarusIDEStrConsts, EnvironmentOpts, IDEOptionsIntf;
|
||||
|
||||
type
|
||||
|
||||
{ TOIOptionsFrame }
|
||||
|
||||
TOIOptionsFrame = class(TAbstractOptionsFrame)
|
||||
TOIOptionsFrame = class(TAbstractIDEOptionsEditor)
|
||||
ObjectInspectorColorsGroupBox: TGroupBox;
|
||||
OIAutoShowCheckBox: TCheckBox;
|
||||
OIBackgroundColorButton: TColorButton;
|
||||
@ -55,11 +55,10 @@ type
|
||||
OIValueColorLabel: TLabel;
|
||||
private
|
||||
public
|
||||
function Check: Boolean; override;
|
||||
function GetTitle: String; override;
|
||||
procedure Setup; override;
|
||||
procedure ReadSettings(AOptions: TEnvironmentOptions); override;
|
||||
procedure WriteSettings(AOptions: TEnvironmentOptions); override;
|
||||
procedure ReadSettings(AOptions: TAbstractIDEOptions); override;
|
||||
procedure WriteSettings(AOptions: TAbstractIDEOptions); override;
|
||||
end;
|
||||
|
||||
implementation
|
||||
@ -83,19 +82,14 @@ begin
|
||||
OIDrawGridLinesCheckBox.Caption := lisDrawGridLinesObjectInspector;
|
||||
end;
|
||||
|
||||
function TOIOptionsFrame.Check: Boolean;
|
||||
begin
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
function TOIOptionsFrame.GetTitle: String;
|
||||
begin
|
||||
Result := dlgObjInsp;
|
||||
end;
|
||||
|
||||
procedure TOIOptionsFrame.ReadSettings(AOptions: TEnvironmentOptions);
|
||||
procedure TOIOptionsFrame.ReadSettings(AOptions: TAbstractIDEOptions);
|
||||
begin
|
||||
with AOptions do
|
||||
with AOptions as TEnvironmentOptions do
|
||||
begin
|
||||
OIBackgroundColorButton.ButtonColor:=
|
||||
ObjectInspectorOptions.GridBackgroundColor;
|
||||
@ -118,9 +112,9 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TOIOptionsFrame.WriteSettings(AOptions: TEnvironmentOptions);
|
||||
procedure TOIOptionsFrame.WriteSettings(AOptions: TAbstractIDEOptions);
|
||||
begin
|
||||
with AOptions do
|
||||
with AOptions as TEnvironmentOptions do
|
||||
begin
|
||||
ObjectInspectorOptions.GridBackgroundColor:=
|
||||
OIBackgroundColorButton.ButtonColor;
|
||||
@ -146,7 +140,6 @@ end;
|
||||
|
||||
initialization
|
||||
{$I options_oi.lrs}
|
||||
RegisterEnvironmentOptionsEditor(TOIOptionsFrame);
|
||||
|
||||
RegisterIDEOptionsEditor(GroupEnvironment, TOIOptionsFrame, TEnvironmentOptions, EnvOptionsOI);
|
||||
end.
|
||||
|
||||
|
@ -26,13 +26,13 @@ interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, FileUtil, LResources, Forms, Controls, StdCtrls,
|
||||
EnvironmentOpts, LazarusIDEStrConsts, IDEOptionDefs, ObjectInspector;
|
||||
EnvironmentOpts, LazarusIDEStrConsts, IDEOptionDefs, ObjectInspector, IDEOptionsIntf;
|
||||
|
||||
type
|
||||
|
||||
{ TWindowOptionsFrame }
|
||||
|
||||
TWindowOptionsFrame = class(TAbstractOptionsFrame)
|
||||
TWindowOptionsFrame = class(TAbstractIDEOptionsEditor)
|
||||
HideIDEOnRunCheckBox: TCheckBox;
|
||||
MinimizeAllOnMinimizeMainCheckBox: TCheckBox;
|
||||
WindowPositionsGroupBox: TGroupBox;
|
||||
@ -43,22 +43,16 @@ type
|
||||
WindowPositionsBox: TIDEWindowSetupLayoutComponent;
|
||||
procedure SetWindowPositionsItem(Index: integer);
|
||||
public
|
||||
function Check: Boolean; override;
|
||||
function GetTitle: String; override;
|
||||
procedure Setup; override;
|
||||
procedure ReadSettings(AOptions: TEnvironmentOptions); override;
|
||||
procedure WriteSettings(AOptions: TEnvironmentOptions); override;
|
||||
procedure ReadSettings(AOptions: TAbstractIDEOptions); override;
|
||||
procedure WriteSettings(AOptions: TAbstractIDEOptions); override;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
{ TWindowOptionsFrame }
|
||||
|
||||
function TWindowOptionsFrame.Check: Boolean;
|
||||
begin
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
function TWindowOptionsFrame.GetTitle: String;
|
||||
begin
|
||||
Result := dlgWindow;
|
||||
@ -97,9 +91,9 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TWindowOptionsFrame.ReadSettings(AOptions: TEnvironmentOptions);
|
||||
procedure TWindowOptionsFrame.ReadSettings(AOptions: TAbstractIDEOptions);
|
||||
begin
|
||||
with AOptions do
|
||||
with AOptions as TEnvironmentOptions do
|
||||
begin
|
||||
FLayouts := IDEWindowLayoutList;
|
||||
SetWindowPositionsItem(0);
|
||||
@ -110,9 +104,9 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TWindowOptionsFrame.WriteSettings(AOptions: TEnvironmentOptions);
|
||||
procedure TWindowOptionsFrame.WriteSettings(AOptions: TAbstractIDEOptions);
|
||||
begin
|
||||
with AOptions do
|
||||
with AOptions as TEnvironmentOptions do
|
||||
begin
|
||||
WindowPositionsBox.Save;
|
||||
// window minimizing
|
||||
@ -149,8 +143,7 @@ begin
|
||||
end;
|
||||
|
||||
initialization
|
||||
{$I options_window.lrs}
|
||||
RegisterEnvironmentOptionsEditor(TWindowOptionsFrame);
|
||||
|
||||
{$I options_window.lrs}
|
||||
RegisterIDEOptionsEditor(GroupEnvironment, TWindowOptionsFrame, TEnvironmentOptions, EnvOptionsWindow);
|
||||
end.
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
object EnvironmentOptionsDialog: TEnvironmentOptionsDialog
|
||||
object IDEOptionsDialog: TIDEOptionsDialog
|
||||
Left = 317
|
||||
Height = 500
|
||||
Top = 304
|
||||
Width = 659
|
||||
Caption = 'EnvironmentOptionsDialog'
|
||||
Caption = 'IDEOptionsDialog'
|
||||
ClientHeight = 500
|
||||
ClientWidth = 659
|
||||
ParentFont = False
|
15
ide/ideoptionsdlg.lrs
Normal file
15
ide/ideoptionsdlg.lrs
Normal file
@ -0,0 +1,15 @@
|
||||
LazarusResources.Add('TIDEOptionsDialog','FORMDATA',[
|
||||
'TPF0'#17'TIDEOptionsDialog'#16'IDEOptionsDialog'#4'Left'#3'='#1#6'Height'#3
|
||||
+#244#1#3'Top'#3'0'#1#5'Width'#3#147#2#7'Caption'#6#16'IDEOptionsDialog'#12'C'
|
||||
+'lientHeight'#3#244#1#11'ClientWidth'#3#147#2#10'ParentFont'#8#8'Position'#7
|
||||
+#14'poScreenCenter'#10'LCLVersion'#6#6'0.9.27'#0#12'TButtonPanel'#11'ButtonP'
|
||||
+'anel'#4'Left'#2#6#6'Height'#2'('#3'Top'#3#204#1#5'Width'#3#135#2#5'Align'#7
|
||||
+#8'alBottom'#8'AutoSize'#9#8'TabOrder'#2#0#11'ShowButtons'#11#4'pbOK'#8'pbCa'
|
||||
+'ncel'#6'pbHelp'#0#0#0#9'TTreeView'#12'CategoryTree'#22'AnchorSideLeft.Contr'
|
||||
+'ol'#7#5'Owner'#21'AnchorSideTop.Control'#7#5'Owner'#24'AnchorSideBottom.Con'
|
||||
+'trol'#7#11'ButtonPanel'#4'Left'#2#6#6'Height'#3#192#1#3'Top'#2#6#5'Width'#3
|
||||
+#206#0#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBottom'#0#18'BorderSpacing.Left'
|
||||
+#2#6#17'BorderSpacing.Top'#2#6#20'BorderSpacing.Bottom'#2#6#20'Constraints.M'
|
||||
+'inWidth'#3#206#0#17'DefaultItemHeight'#2#15#8'TabOrder'#2#1#8'OnChange'#7#18
|
||||
+'CategoryTreeChange'#0#0#0
|
||||
]);
|
@ -24,7 +24,7 @@
|
||||
This unit defines a dialog for the lazarus environment options.
|
||||
|
||||
}
|
||||
unit EnvironmentOpts_Dlg;
|
||||
unit IdeOptionsDlg;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
@ -32,12 +32,12 @@ interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, Controls, Forms, LResources, ComCtrls, ButtonPanel,
|
||||
EnvironmentOpts, LazarusIDEStrConsts, IDEWindowIntf;
|
||||
EnvironmentOpts, LazarusIDEStrConsts, IDEWindowIntf, IDEOptionsIntf;
|
||||
|
||||
type
|
||||
{ TEnvironmentOptionsDialog }
|
||||
{ TIDEOptionsDialog }
|
||||
|
||||
TEnvironmentOptionsDialog = class(TForm)
|
||||
TIDEOptionsDialog = class(TForm)
|
||||
ButtonPanel: TButtonPanel;
|
||||
CategoryTree: TTreeView;
|
||||
|
||||
@ -46,26 +46,24 @@ type
|
||||
procedure OkButtonClick(Sender: TObject);
|
||||
procedure CancelButtonClick(Sender: TObject);
|
||||
private
|
||||
FOnLoadEnvironmentSettings: TOnLoadEnvironmentSettings;
|
||||
FOnSaveEnvironmentSettings: TOnSaveEnvironmentSettings;
|
||||
FOnLoadOptions: TOnLoadIDEOptions;
|
||||
FOnSaveOptions: TOnSaveIDEOptions;
|
||||
PrevNode: TTreeNode;
|
||||
FEditors: TList;
|
||||
|
||||
function CheckValues: boolean;
|
||||
procedure LoadEnvironmentSettings(Sender: TObject; AOptions: TEnvironmentOptions);
|
||||
procedure SaveEnvironmentSettings(Sender: TObject; AOptions: TEnvironmentOptions);
|
||||
procedure CreateEditors(AEditor: TAbstractOptionsFrameClass);
|
||||
procedure LoadIDEOptions(Sender: TObject; AOptions: TAbstractIDEOptions);
|
||||
procedure SaveIDEOptions(Sender: TObject; AOptions: TAbstractIDEOptions);
|
||||
procedure CreateEditors;
|
||||
published
|
||||
property OnSaveEnvironmentSettings: TOnSaveEnvironmentSettings
|
||||
read FOnSaveEnvironmentSettings write FOnSaveEnvironmentSettings;
|
||||
property OnLoadEnvironmentSettings: TOnLoadEnvironmentSettings
|
||||
read FOnLoadEnvironmentSettings write FOnLoadEnvironmentSettings;
|
||||
property OnLoadIDEOptions: TOnLoadIDEOptions read FOnLoadOptions write FOnLoadOptions;
|
||||
property OnSaveIDEOptions: TOnSaveIDEOptions read FOnSaveOptions write FOnSaveOptions;
|
||||
public
|
||||
constructor Create(TheOwner: TComponent); override;
|
||||
constructor Create(AOwner: TComponent); override;
|
||||
destructor Destroy; override;
|
||||
procedure OpenEditor(AEditor: TAbstractOptionsFrameClass);
|
||||
procedure ReadSettings(AnEnvironmentOptions: TEnvironmentOptions);
|
||||
procedure WriteSettings(AnEnvironmentOptions: TEnvironmentOptions);
|
||||
procedure OpenEditor(AEditor: TAbstractIDEOptionsEditorClass);
|
||||
procedure ReadSettings(AOptions: TAbstractIDEOptions);
|
||||
procedure WriteSettings(AOptions: TAbstractIDEOptions);
|
||||
end;
|
||||
|
||||
implementation
|
||||
@ -73,18 +71,19 @@ implementation
|
||||
uses
|
||||
IDEContextHelpEdit;
|
||||
|
||||
{ TEnvironmentOptionsDialog }
|
||||
{ TIDEOptionsDialog }
|
||||
|
||||
constructor TEnvironmentOptionsDialog.Create(TheOwner: TComponent);
|
||||
constructor TIDEOptionsDialog.Create(AOwner: TComponent);
|
||||
begin
|
||||
inherited Create(TheOwner);
|
||||
inherited Create(AOwner);
|
||||
PrevNode := nil;
|
||||
|
||||
IDEDialogLayoutList.ApplyLayout(Self, Width, Height);
|
||||
Caption := lisMenuGeneralOptions;
|
||||
|
||||
FEditors := TList.Create;
|
||||
EnumEnvironmentOptionsEditors(@CreateEditors);
|
||||
CreateEditors;
|
||||
|
||||
ButtonPanel.OKButton.OnClick := @OKButtonClick;
|
||||
ButtonPanel.CancelButton.OnClick := @CancelButtonClick;
|
||||
ButtonPanel.HelpButton.OnClick := @HelpButtonClick;
|
||||
@ -93,45 +92,45 @@ begin
|
||||
CategoryTree.Selected := CategoryTree.Items.GetFirstNode;
|
||||
end;
|
||||
|
||||
destructor TEnvironmentOptionsDialog.Destroy;
|
||||
destructor TIDEOptionsDialog.Destroy;
|
||||
begin
|
||||
FEditors.Free;
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
||||
procedure TEnvironmentOptionsDialog.HelpButtonClick(Sender: TObject);
|
||||
procedure TIDEOptionsDialog.HelpButtonClick(Sender: TObject);
|
||||
begin
|
||||
ShowContextHelpForIDE(Self);
|
||||
end;
|
||||
|
||||
procedure TEnvironmentOptionsDialog.CategoryTreeChange(Sender: TObject;
|
||||
procedure TIDEOptionsDialog.CategoryTreeChange(Sender: TObject;
|
||||
Node: TTreeNode);
|
||||
var
|
||||
AFrame: TAbstractOptionsFrame;
|
||||
AEditor: TAbstractIDEOptionsEditor;
|
||||
begin
|
||||
if PrevNode <> nil then
|
||||
TAbstractOptionsFrame(PrevNode.Data).Parent := nil;
|
||||
TAbstractIDEOptionsEditor(PrevNode.Data).Parent := nil;
|
||||
|
||||
if Node <> nil then
|
||||
begin
|
||||
AFrame := TAbstractOptionsFrame(Node.Data);
|
||||
AEditor := TAbstractIDEOptionsEditor(Node.Data);
|
||||
|
||||
AFrame.Parent := Self;
|
||||
AFrame.Anchors := [akLeft, akTop, akRight, akBottom];
|
||||
AFrame.AnchorSideLeft.Side := asrBottom;
|
||||
AFrame.AnchorSideLeft.Control := CategoryTree;
|
||||
AFrame.AnchorSideTop.Control := Self;
|
||||
AFrame.AnchorSideRight.Side := asrBottom;
|
||||
AFrame.AnchorSideRight.Control := Self;
|
||||
AFrame.AnchorSideBottom.Side := asrTop;
|
||||
AFrame.AnchorSideBottom.Control := ButtonPanel;
|
||||
AFrame.BorderSpacing.Around := 6;
|
||||
AFrame.Visible := True;
|
||||
AEditor.Parent := Self;
|
||||
AEditor.Anchors := [akLeft, akTop, akRight, akBottom];
|
||||
AEditor.AnchorSideLeft.Side := asrBottom;
|
||||
AEditor.AnchorSideLeft.Control := CategoryTree;
|
||||
AEditor.AnchorSideTop.Control := Self;
|
||||
AEditor.AnchorSideRight.Side := asrBottom;
|
||||
AEditor.AnchorSideRight.Control := Self;
|
||||
AEditor.AnchorSideBottom.Side := asrTop;
|
||||
AEditor.AnchorSideBottom.Control := ButtonPanel;
|
||||
AEditor.BorderSpacing.Around := 6;
|
||||
AEditor.Visible := True;
|
||||
end;
|
||||
PrevNode := Node;
|
||||
end;
|
||||
|
||||
procedure TEnvironmentOptionsDialog.OkButtonClick(Sender: TObject);
|
||||
procedure TIDEOptionsDialog.OkButtonClick(Sender: TObject);
|
||||
begin
|
||||
if not CheckValues then
|
||||
Exit;
|
||||
@ -139,73 +138,75 @@ begin
|
||||
ModalResult := mrOk;
|
||||
end;
|
||||
|
||||
procedure TEnvironmentOptionsDialog.CancelButtonClick(Sender: TObject);
|
||||
procedure TIDEOptionsDialog.CancelButtonClick(Sender: TObject);
|
||||
begin
|
||||
IDEDialogLayoutList.SaveLayout(Self);
|
||||
ModalResult := mrCancel;
|
||||
end;
|
||||
|
||||
procedure TEnvironmentOptionsDialog.ReadSettings(AnEnvironmentOptions: TEnvironmentOptions);
|
||||
procedure TIDEOptionsDialog.ReadSettings(AOptions: TAbstractIDEOptions);
|
||||
var
|
||||
i: integer;
|
||||
begin
|
||||
for i := 0 to FEditors.Count - 1 do
|
||||
TAbstractOptionsFrame(FEditors[i]).ReadSettings(AnEnvironmentOptions);
|
||||
TAbstractIDEOptionsEditor(FEditors[i]).ReadSettings(AOptions);
|
||||
end;
|
||||
|
||||
procedure TEnvironmentOptionsDialog.WriteSettings(AnEnvironmentOptions: TEnvironmentOptions);
|
||||
procedure TIDEOptionsDialog.WriteSettings(AOptions: TAbstractIDEOptions);
|
||||
var
|
||||
i: integer;
|
||||
begin
|
||||
for i := 0 to FEditors.Count - 1 do
|
||||
TAbstractOptionsFrame(FEditors[i]).WriteSettings(AnEnvironmentOptions);
|
||||
TAbstractIDEOptionsEditor(FEditors[i]).WriteSettings(AOptions);
|
||||
end;
|
||||
|
||||
function TEnvironmentOptionsDialog.CheckValues: boolean;
|
||||
function TIDEOptionsDialog.CheckValues: boolean;
|
||||
var
|
||||
i: integer;
|
||||
begin
|
||||
Result := True;
|
||||
for i := 0 to FEditors.Count - 1 do
|
||||
begin
|
||||
Result := TAbstractOptionsFrame(FEditors[i]).Check;
|
||||
Result := TAbstractIDEOptionsEditor(FEditors[i]).Check;
|
||||
if not Result then
|
||||
break;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TEnvironmentOptionsDialog.LoadEnvironmentSettings(Sender: TObject;
|
||||
AOptions: TEnvironmentOptions);
|
||||
procedure TIDEOptionsDialog.LoadIDEOptions(Sender: TObject; AOptions: TAbstractIDEOptions);
|
||||
begin
|
||||
if Assigned(OnLoadEnvironmentSettings) then
|
||||
OnLoadEnvironmentSettings(Self, AOptions);
|
||||
if Assigned(OnLoadIDEOptions) then
|
||||
OnLoadIDEOptions(Self, AOptions);
|
||||
ReadSettings(AOptions);
|
||||
end;
|
||||
|
||||
procedure TEnvironmentOptionsDialog.SaveEnvironmentSettings(Sender: TObject;
|
||||
AOptions: TEnvironmentOptions);
|
||||
procedure TIDEOptionsDialog.SaveIDEOptions(Sender: TObject; AOptions: TAbstractIDEOptions);
|
||||
begin
|
||||
WriteSettings(AOptions);
|
||||
if Assigned(OnSaveEnvironmentSettings) then
|
||||
OnSaveEnvironmentSettings(Self, AOptions);
|
||||
if Assigned(OnSaveIDEOptions) then
|
||||
OnSaveIDEOptions(Self, AOptions);
|
||||
end;
|
||||
|
||||
procedure TEnvironmentOptionsDialog.CreateEditors(AEditor: TAbstractOptionsFrameClass);
|
||||
procedure TIDEOptionsDialog.CreateEditors;
|
||||
var
|
||||
Instance: TAbstractOptionsFrame;
|
||||
Instance: TAbstractIDEOptionsEditor;
|
||||
ANode: TTreeNode;
|
||||
i: integer;
|
||||
begin
|
||||
Instance := AEditor.Create(Self);
|
||||
Instance.OnLoadEnvironmentSettings := @LoadEnvironmentSettings;
|
||||
Instance.OnSaveEnvironmentSettings := @SaveEnvironmentSettings;
|
||||
Instance.Setup;
|
||||
FEditors.Add(Instance);
|
||||
for i := 0 to IDEEditors.Count - 1 do
|
||||
begin
|
||||
Instance := IDEEditors[i].Create(Self);
|
||||
Instance.OnLoadIDEOptions := @LoadIDEOptions;
|
||||
Instance.OnSaveIDEOptions := @SaveIDEOptions;
|
||||
Instance.Setup;
|
||||
FEditors.Add(Instance);
|
||||
|
||||
ANode := CategoryTree.Items.AddChild(nil, Instance.GetTitle);
|
||||
ANode.Data := Instance;
|
||||
ANode := CategoryTree.Items.AddChild(nil, Instance.GetTitle);
|
||||
ANode.Data := Instance;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TEnvironmentOptionsDialog.OpenEditor(AEditor: TAbstractOptionsFrameClass);
|
||||
procedure TIDEOptionsDialog.OpenEditor(AEditor: TAbstractIDEOptionsEditorClass);
|
||||
function Traverse(ANode: TTreeNode): TTreeNode;
|
||||
begin
|
||||
Result := nil;
|
||||
@ -228,7 +229,7 @@ begin
|
||||
end;
|
||||
|
||||
initialization
|
||||
{$I environmentopts_dlg.lrs}
|
||||
{$I ideoptionsdlg.lrs}
|
||||
|
||||
end.
|
||||
|
47
ide/main.pp
47
ide/main.pp
@ -115,7 +115,7 @@ uses
|
||||
// rest of the ide
|
||||
Splash, IDEDefs, LazarusIDEStrConsts, LazConf, MsgView, SearchResultView,
|
||||
CodeTemplatesDlg, CodeBrowser,
|
||||
PublishModule, EnvironmentOpts, EnvironmentOpts_Dlg, TransferMacros, KeyMapping,
|
||||
PublishModule, EnvironmentOpts, TransferMacros, KeyMapping,
|
||||
IDETranslations, IDEProcs, ExtToolDialog, ExtToolEditDlg, OutputFilter, JumpHistoryView,
|
||||
BuildLazDialog, MiscOptions, InputHistory, UnitDependencies, ClipBoardHistory,
|
||||
ProcessList, InitialSetupDlgs, NewDialog, MakeResStrDlg, ToDoList,
|
||||
@ -126,6 +126,7 @@ uses
|
||||
// main ide
|
||||
MainBar, MainIntf, MainBase,
|
||||
// options frames
|
||||
IDEOptionsIntf, IDEOptionsDlg,
|
||||
options_files, options_desktop, options_window, options_formed, options_oi,
|
||||
options_backup, options_naming, options_fpdoc;
|
||||
|
||||
@ -335,11 +336,9 @@ type
|
||||
const HelpKeyword: string): Integer;
|
||||
|
||||
// Environment options dialog events
|
||||
procedure OnLoadEnvironmentSettings(Sender: TObject;
|
||||
TheEnvironmentOptions: TEnvironmentOptions);
|
||||
procedure OnSaveEnvironmentSettings(Sender: TObject;
|
||||
TheEnvironmentOptions: TEnvironmentOptions);
|
||||
procedure DoShowEnvGeneralOptions(AEditor: TAbstractOptionsFrameClass);
|
||||
procedure OnLoadIDEOptions(Sender: TObject; AOptions: TAbstractIDEOptions);
|
||||
procedure OnSaveIDEOptions(Sender: TObject; AOptions: TAbstractIDEOptions);
|
||||
procedure DoShowEnvGeneralOptions(AEditor: TAbstractIDEOptionsEditorClass);
|
||||
|
||||
// SourceNotebook events
|
||||
procedure OnSrcNoteBookActivated(Sender: TObject);
|
||||
@ -3855,21 +3854,21 @@ begin
|
||||
Result:=SourceNoteBook.FindUniquePageName(Result,IgnorePageIndex);
|
||||
end;
|
||||
|
||||
procedure TMainIDE.OnLoadEnvironmentSettings(Sender: TObject;
|
||||
TheEnvironmentOptions: TEnvironmentOptions);
|
||||
procedure TMainIDE.OnLoadIDEOptions(Sender: TObject; AOptions: TAbstractIDEOptions);
|
||||
begin
|
||||
LoadDesktopSettings(TheEnvironmentOptions);
|
||||
if AOptions is TEnvironmentOptions then
|
||||
LoadDesktopSettings(AOptions as TEnvironmentOptions);
|
||||
end;
|
||||
|
||||
procedure TMainIDE.OnSaveEnvironmentSettings(Sender: TObject;
|
||||
TheEnvironmentOptions: TEnvironmentOptions);
|
||||
procedure TMainIDE.OnSaveIDEOptions(Sender: TObject; AOptions: TAbstractIDEOptions);
|
||||
begin
|
||||
SaveDesktopSettings(TheEnvironmentOptions);
|
||||
if AOptions is TEnvironmentOptions then
|
||||
SaveDesktopSettings(AOptions as TEnvironmentOptions);
|
||||
end;
|
||||
|
||||
procedure TMainIDE.DoShowEnvGeneralOptions(AEditor: TAbstractOptionsFrameClass);
|
||||
procedure TMainIDE.DoShowEnvGeneralOptions(AEditor: TAbstractIDEOptionsEditorClass);
|
||||
var
|
||||
EnvironmentOptionsDialog: TEnvironmentOptionsDialog;
|
||||
IDEOptionsDialog: TIDEOptionsDialog;
|
||||
MacroValueChanged,
|
||||
FPCSrcDirChanged, FPCCompilerChanged,
|
||||
LazarusSrcDirChanged: boolean;
|
||||
@ -3922,28 +3921,28 @@ var
|
||||
end;
|
||||
|
||||
Begin
|
||||
EnvironmentOptionsDialog:=TEnvironmentOptionsDialog.Create(nil);
|
||||
IDEOptionsDialog:=TIDEOptionsDialog.Create(nil);
|
||||
try
|
||||
EnvironmentOptionsDialog.OpenEditor(AEditor);
|
||||
IDEOptionsDialog.OpenEditor(AEditor);
|
||||
// update EnvironmentOptions (save current window positions)
|
||||
SaveDesktopSettings(EnvironmentOptions);
|
||||
with EnvironmentOptionsDialog do
|
||||
with IDEOptionsDialog do
|
||||
begin
|
||||
OnLoadEnvironmentSettings:=@Self.OnLoadEnvironmentSettings;
|
||||
OnSaveEnvironmentSettings:=@Self.OnSaveEnvironmentSettings;
|
||||
// load settings from EnvironmentOptions to EnvironmentOptionsDialog
|
||||
OnLoadIDEOptions:=@Self.OnLoadIDEOptions;
|
||||
OnSaveIDEOptions:=@Self.OnSaveIDEOptions;
|
||||
// load settings from EnvironmentOptions to IDEOptionsDialog
|
||||
ReadSettings(EnvironmentOptions);
|
||||
end;
|
||||
if EnvironmentOptionsDialog.ShowModal = mrOk then
|
||||
if IDEOptionsDialog.ShowModal = mrOk then
|
||||
begin
|
||||
|
||||
// invalidate cached substituted macros
|
||||
IncreaseCompilerParseStamp;
|
||||
|
||||
// load settings from EnvironmentOptionsDialog to EnvironmentOptions
|
||||
// load settings from IDEOptionsDialog to EnvironmentOptions
|
||||
OldCompilerFilename:=EnvironmentOptions.CompilerFilename;
|
||||
OldLanguage:=EnvironmentOptions.LanguageID;
|
||||
EnvironmentOptionsDialog.WriteSettings(EnvironmentOptions);
|
||||
IDEOptionsDialog.WriteSettings(EnvironmentOptions);
|
||||
ShowCompileDialog:=EnvironmentOptions.ShowCompileDialog;
|
||||
|
||||
UpdateDefaultPascalFileExtensions;
|
||||
@ -3982,7 +3981,7 @@ Begin
|
||||
PkgBoss.LazarusSrcDirChanged;
|
||||
end;
|
||||
finally
|
||||
EnvironmentOptionsDialog.Free;
|
||||
IDEOptionsDialog.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
@ -37,6 +37,7 @@ uses
|
||||
IDEHelpIntf,
|
||||
IDEImagesIntf,
|
||||
IDEMsgIntf,
|
||||
IDEOptionsIntf,
|
||||
IDETextConverter,
|
||||
IDEWindowIntf,
|
||||
ImageListEditor,
|
||||
|
132
ideintf/ideoptionsintf.pas
Normal file
132
ideintf/ideoptionsintf.pas
Normal file
@ -0,0 +1,132 @@
|
||||
{
|
||||
***************************************************************************
|
||||
* *
|
||||
* This source 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 code 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. *
|
||||
* *
|
||||
* A copy of the GNU General Public License is available on the World *
|
||||
* Wide Web at <http://www.gnu.org/copyleft/gpl.html>. You can also *
|
||||
* obtain it by writing to the Free Software Foundation, *
|
||||
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
||||
* *
|
||||
***************************************************************************
|
||||
}
|
||||
unit IDEOptionsIntf;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, Forms;
|
||||
|
||||
type
|
||||
TAbstractIDEOptions = class(TPersistent)
|
||||
end;
|
||||
TAbstractIDEOptionsClass = class of TAbstractIDEOptions;
|
||||
|
||||
TOnLoadIDEOptions = procedure(Sender: TObject; AOptions: TAbstractIDEOptions) of object;
|
||||
TOnSaveIDEOptions = procedure(Sender: TObject; AOptions: TAbstractIDEOptions) of object;
|
||||
|
||||
{ TAbstractIDEOptionsEditor }
|
||||
|
||||
TAbstractIDEOptionsEditor = class(TFrame)
|
||||
private
|
||||
FOnLoadIDEOptions: TOnLoadIDEOptions;
|
||||
FOnSaveIDEOptions: TOnSaveIDEOptions;
|
||||
public
|
||||
function Check: Boolean; virtual;
|
||||
function GetTitle: String; virtual; abstract;
|
||||
procedure Setup; virtual; abstract;
|
||||
procedure ReadSettings(AOptions: TAbstractIDEOptions); virtual; abstract;
|
||||
procedure WriteSettings(AOptions: TAbstractIDEOptions); virtual; abstract;
|
||||
|
||||
property OnLoadIDEOptions: TOnLoadIDEOptions read FOnLoadIDEOptions write FOnLoadIDEOptions;
|
||||
property OnSaveIDEOptions: TOnSaveIDEOptions read FOnSaveIDEOptions write FOnSaveIDEOptions;
|
||||
end;
|
||||
|
||||
TAbstractIDEOptionsEditorClass = class of TAbstractIDEOptionsEditor;
|
||||
|
||||
{ TIDEOptionsEditorList }
|
||||
|
||||
TIDEOptionsEditorList = class(TList)
|
||||
private
|
||||
function GetItem(AIndex: Integer): TAbstractIDEOptionsEditorClass;
|
||||
procedure SetItem(AIndex: Integer; const AValue: TAbstractIDEOptionsEditorClass);
|
||||
public
|
||||
property Items[AIndex: Integer]: TAbstractIDEOptionsEditorClass read GetItem write SetItem; default;
|
||||
end;
|
||||
|
||||
procedure RegisterIDEOptionsGroup(AGroupIndex: Integer; ATitle: String);
|
||||
procedure RegisterIDEOptionsEditor(AGroupIndex: Integer; AEditor: TAbstractIDEOptionsEditorClass; AOptionsClass: TAbstractIDEOptionsClass; AIndex: Integer);
|
||||
|
||||
function IDEEditors: TIDEOptionsEditorList;
|
||||
|
||||
const
|
||||
// options groups
|
||||
GroupEnvironment = 100;
|
||||
EnvOptionsFiles = 100;
|
||||
EnvOptionsDesktop = 200;
|
||||
EnvOptionsWindow = 300;
|
||||
EnvOptionsFormEd = 400;
|
||||
EnvOptionsOI = 500;
|
||||
EnvOptionsBackup = 600;
|
||||
EnvOptionsNaming = 700;
|
||||
EnvOptionsFpDoc = 800;
|
||||
|
||||
implementation
|
||||
var
|
||||
FIDEEditors: TIDEOptionsEditorList;
|
||||
|
||||
function IDEEditors: TIDEOptionsEditorList;
|
||||
begin
|
||||
if FIDEEditors = nil then
|
||||
FIDEEditors := TIDEOptionsEditorList.Create;
|
||||
Result := FIDEEditors;
|
||||
end;
|
||||
|
||||
procedure RegisterIDEOptionsGroup(AGroupIndex: Integer; ATitle: String);
|
||||
begin
|
||||
// TODO:
|
||||
end;
|
||||
|
||||
procedure RegisterIDEOptionsEditor(AGroupIndex: Integer; AEditor: TAbstractIDEOptionsEditorClass; AOptionsClass: TAbstractIDEOptionsClass; AIndex: Integer);
|
||||
begin
|
||||
// TODO:
|
||||
if IDEEditors.IndexOf(AEditor) = -1 then
|
||||
IDEEditors.Add(AEditor);
|
||||
end;
|
||||
|
||||
{ TAbstractIDEOptionsEditor }
|
||||
|
||||
function TAbstractIDEOptionsEditor.Check: Boolean;
|
||||
begin
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
{ TIDEOptionsEditorList }
|
||||
|
||||
function TIDEOptionsEditorList.GetItem(AIndex: Integer): TAbstractIDEOptionsEditorClass;
|
||||
begin
|
||||
Result := TAbstractIDEOptionsEditorClass(inherited Get(AIndex));
|
||||
end;
|
||||
|
||||
procedure TIDEOptionsEditorList.SetItem(AIndex: Integer; const AValue: TAbstractIDEOptionsEditorClass);
|
||||
begin
|
||||
inherited Put(AIndex, AValue);
|
||||
end;
|
||||
|
||||
initialization
|
||||
FIDEEditors := nil;
|
||||
|
||||
finalization
|
||||
FIDEEditors.Free;
|
||||
FIDEEditors := nil;
|
||||
end.
|
Loading…
Reference in New Issue
Block a user