MG: added define template for Delphi5

git-svn-id: trunk@1484 -
This commit is contained in:
lazarus 2002-03-08 09:30:59 +00:00
parent 7932923bca
commit e5b24ec55e
2 changed files with 98 additions and 0 deletions

View File

@ -267,6 +267,8 @@ type
const LazarusSrcDir, WidgetType: string): TDefineTemplate;
function CreateLCLProjectTemplate(const LazarusSrcDir, WidgetType,
ProjectDir: string): TDefineTemplate;
function CreateDelphi5Template(
const DelphiDirectory: string): TDefineTemplate;
procedure Clear;
constructor Create;
destructor Destroy; override;
@ -2464,6 +2466,36 @@ begin
Result.AddChild(DirTempl);
end;
function TDefinePool.CreateDelphi5Template(const DelphiDirectory: string
): TDefineTemplate;
var MainDirTempl: TDefineTemplate;
begin
MainDirTempl:=TDefineTemplate.Create('Delphi5 Directory','Delphi5 Directory',
'',DelphiDirectory,da_Directory);
MainDirTempl.AddChild(TDefineTemplate.Create('Reset','Reset all defines',
'','',da_UndefineAll));
MainDirTempl.AddChild(TDefineTemplate.Create('Define makro DELPHI',
'Define makro DELPHI','DELPHI','',da_DefineRecurse));
MainDirTempl.AddChild(TDefineTemplate.Create('Define makro FPC_DELPHI',
'Define makro FPC_DELPHI','FPC_DELPHI','',da_DefineRecurse));
MainDirTempl.AddChild(TDefineTemplate.Create(
'Define '+ExternalMacroStart+'Compiler',
'Define '+ExternalMacroStart+'Compiler variable',
ExternalMacroStart+'Compiler','DELPHI',da_DefineRecurse));
MainDirTempl.AddChild(TDefineTemplate.Create('SrcPath',
'Default SrcPath',
ExternalMacroStart+'SrcPath',
SetDirSeparators(
'$(#DefinePath)/Source/Rtl/Win;'
+'$(#DefinePath)/Source/Rtl/Sys;'
+'$(#DefinePath)/Source/Rtl/Corba;'
+'$(#DefinePath)/Source/Vcl;'
+'$(#SrcPath)'),
da_DefineRecurse));
Result:=MainDirTempl;
end;
function TDefinePool.ConsistencyCheck: integer;
var i: integer;
begin

View File

@ -104,6 +104,7 @@ type
// templates
InsertTemplateMenuItem: TMenuItem;
InsertDelphi5TemlateMenuItem: TMenuItem;
// define tree
DefineTreeView: TTreeView;
@ -158,9 +159,13 @@ type
// tools menu
procedure OpenPreviewMenuItemClick(Sender: TObject);
// template menu
procedure InsertDelphi5TemlateMenuItemClick(Sender: TObject);
private
FDefineTree: TDefineTree;
FLastSelectedNode: TTreeNode;
FBoss: TCodeToolManager;
procedure CreateComponents;
function CreateSeperator : TMenuItem;
procedure RebuildDefineTreeView;
@ -173,6 +178,7 @@ type
procedure SetTypeLabel;
function ValueToFilePathText(const AValue: string): string;
procedure InsertNewNode(Behind: boolean; Action: TDefineAction);
procedure InsertTemplate(NewTemplate: TDefineTemplate);
function FindUniqueName: string;
function ConsistencyCheck: integer;
procedure SetValuesEditable(AValue: boolean);
@ -182,6 +188,7 @@ type
constructor Create(TheOwner: TComponent); override;
destructor Destroy; override;
property DefineTree: TDefineTree read FDefineTree;
property Boss: TCodeToolManager read FBoss write FBoss;
end;
function ShowCodeToolsDefinesEditor(ACodeToolBoss: TCodeToolManager;
@ -696,6 +703,13 @@ begin
BringWindowToTop(DefinePreview.Handle);
end;
procedure TCodeToolsDefinesEditor.InsertDelphi5TemlateMenuItemClick(
Sender: TObject);
begin
InsertTemplate(Boss.DefinePool.CreateDelphi5Template(
SetDirSeparators('/Borland')));
end;
procedure TCodeToolsDefinesEditor.ProjectSpecificCheckBoxClick(Sender: TObject);
var
SelTreeNode: TTreeNode;
@ -961,6 +975,9 @@ begin
// templates
AddMenuItem(InsertTemplateMenuItem,'InsertTemplateMenuItem',
'Insert Template',nil);
AddMenuItem(InsertDelphi5TemlateMenuItem,'InsertDelphi5TemlateMenuItem',
'Insert Delphi 5 Template',InsertTemplateMenuItem);
InsertDelphi5TemlateMenuItem.OnClick:=@InsertDelphi5TemlateMenuItemClick;
// define tree----------------------------------------------------------------
@ -1324,6 +1341,54 @@ begin
ShowSelectedValues;
end;
procedure TCodeToolsDefinesEditor.InsertTemplate(NewTemplate: TDefineTemplate);
procedure AddChilds(ATreeNode: TTreeNode);
var ADefNode, ChildDefNode: TDefineTemplate;
ChildTreeNode: TTreeNode;
begin
if ATreeNode=nil then exit;
ADefNode:=TDefineTemplate(ATreeNode.Data);
ChildDefNode:=ADefNode.FirstChild;
while ChildDefNode<>nil do begin
ChildTreeNode:=DefineTreeView.Items.AddChildObject(ATreeNode,
ChildDefNode.Name,ChildDefNode);
AddChilds(ChildTreeNode);
ChildDefNode:=ChildDefNode.Next;
end;
end;
var
SelTreeNode, NewTreeNode: TTreeNode;
SelDefNode: TDefineTemplate;
begin
SaveSelectedValues;
if NewTemplate=nil then exit;
FLastSelectedNode:=nil;
SelTreeNode:=DefineTreeView.Selected;
if SelTreeNode<>nil then begin
// insert behind selected node
SelDefNode:=TDefineTemplate(SelTreeNode.Data);
// insert in TreeView
NewTreeNode:=DefineTreeView.Items.InsertObjectBehind(SelTreeNode,
NewTemplate.Name,NewTemplate);
// insert in DefineTree
NewTemplate.InsertBehind(SelDefNode);
end else begin
// add as last root node
// add in TreeView
NewTreeNode:=DefineTreeView.Items.AddObject(nil,NewTemplate.Name,NewTemplate);
// add in DefineTree
DefineTree.Add(NewTemplate);
end;
// add childs to TreeView
AddChilds(NewTreeNode);
// show and select
SetNodeImages(NewTreeNode,true);
NewTreeNode.Selected:=true;
ShowSelectedValues;
end;
function TCodeToolsDefinesEditor.FindUniqueName: string;
var i: integer;
begin
@ -1420,6 +1485,7 @@ procedure TCodeToolsDefinesEditor.Assign(ACodeToolBoss: TCodeToolManager;
Options: TCodeToolsOptions);
begin
FLastSelectedNode:=nil;
FBoss:=ACodeToolBoss;
FDefineTree.Assign(ACodeToolBoss.DefineTree);
RebuildDefineTreeView;
ShowSelectedValues;