mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-06-20 15:28:16 +02:00
codetools: h2p: inserting auto generated nodes in front of current
git-svn-id: trunk@14675 -
This commit is contained in:
parent
2c7cc21649
commit
58a80bb376
@ -141,6 +141,7 @@ type
|
||||
property NodeCount: integer read FNodeCount;
|
||||
procedure DeleteNode(ANode: TH2PBaseNode);
|
||||
procedure AddNodeAsLastChild(ParentNode, ANode: TH2PBaseNode);
|
||||
procedure AddNodeAsPreLastChild(ParentNode, ANode: TH2PBaseNode);
|
||||
procedure AddNodeInFrontOf(NextBrotherNode, ANode: TH2PBaseNode);
|
||||
procedure MoveChildsInFront(ANode: TH2PBaseNode);
|
||||
function ContainsNode(ANode: TH2PBaseNode): boolean;
|
||||
@ -257,7 +258,8 @@ type
|
||||
|
||||
function CreateH2PNode(const PascalName, CName: string; CNode: TCodeTreeNode;
|
||||
PascalDesc: TCodeTreeNodeDesc; const PascalCode: string;
|
||||
ParentNode: TH2PNode = nil; IsGlobal: boolean = true): TH2PNode;
|
||||
ParentNode: TH2PNode = nil; IsGlobal: boolean = true;
|
||||
InsertAsPreLast: boolean = false): TH2PNode;
|
||||
function CreateAutoGeneratedH2PNode(var PascalName: string; CNode: TCodeTreeNode;
|
||||
PascalDesc: TCodeTreeNodeDesc; const PascalCode: string;
|
||||
ParentNode: TH2PNode = nil; IsGlobal: boolean = true): TH2PNode;
|
||||
@ -2151,7 +2153,7 @@ end;
|
||||
function TH2PasTool.CreateH2PNode(const PascalName, CName: string;
|
||||
CNode: TCodeTreeNode; PascalDesc: TCodeTreeNodeDesc;
|
||||
const PascalCode: string;
|
||||
ParentNode: TH2PNode; IsGlobal: boolean): TH2PNode;
|
||||
ParentNode: TH2PNode; IsGlobal: boolean; InsertAsPreLast: boolean): TH2PNode;
|
||||
begin
|
||||
Result:=TH2PNode.Create;
|
||||
Result.PascalName:=PascalName;
|
||||
@ -2159,7 +2161,10 @@ begin
|
||||
Result.CNode:=CNode;
|
||||
Result.PascalDesc:=PascalDesc;
|
||||
Result.PascalCode:=PascalCode;
|
||||
Tree.AddNodeAsLastChild(ParentNode,Result);
|
||||
if InsertAsPreLast then
|
||||
Tree.AddNodeAsPreLastChild(ParentNode,Result)
|
||||
else
|
||||
Tree.AddNodeAsLastChild(ParentNode,Result);
|
||||
if IsGlobal then begin
|
||||
if PascalName<>'' then
|
||||
FPascalNames.Add(Result);
|
||||
@ -2178,7 +2183,7 @@ function TH2PasTool.CreateAutoGeneratedH2PNode(var PascalName: string;
|
||||
begin
|
||||
Node:=FindH2PNodeWithPascalName(TestName);
|
||||
if (Node=nil) then begin
|
||||
Node:=CreateH2PNode(TestName,'',CNode,PascalDesc,PascalCode);
|
||||
Node:=CreateH2PNode(TestName,'',CNode,PascalDesc,PascalCode,nil,true,true);
|
||||
Result:=true;
|
||||
end else if ((Node.CNode=CNode) and (Node.PascalDesc=PascalDesc)
|
||||
and (Node.PascalCode=PascalCode)
|
||||
@ -2749,6 +2754,16 @@ begin
|
||||
inc(FNodeCount);
|
||||
end;
|
||||
|
||||
procedure TH2PTree.AddNodeAsPreLastChild(ParentNode, ANode: TH2PBaseNode);
|
||||
begin
|
||||
if (ParentNode=nil) and (LastRoot<>nil) then
|
||||
AddNodeInFrontOf(LastRoot,ANode)
|
||||
else if (ParentNode<>nil) and (ParentNode.FirstChild<>nil) then
|
||||
AddNodeInFrontOf(ParentNode.LastChild,ANode)
|
||||
else
|
||||
AddNodeAsLastChild(ParentNode,ANode);
|
||||
end;
|
||||
|
||||
procedure TH2PTree.AddNodeInFrontOf(NextBrotherNode, ANode: TH2PBaseNode);
|
||||
begin
|
||||
ANode.Parent:=NextBrotherNode.Parent;
|
||||
|
Loading…
Reference in New Issue
Block a user