mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-06-22 06:08:17 +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;
|
property NodeCount: integer read FNodeCount;
|
||||||
procedure DeleteNode(ANode: TH2PBaseNode);
|
procedure DeleteNode(ANode: TH2PBaseNode);
|
||||||
procedure AddNodeAsLastChild(ParentNode, ANode: TH2PBaseNode);
|
procedure AddNodeAsLastChild(ParentNode, ANode: TH2PBaseNode);
|
||||||
|
procedure AddNodeAsPreLastChild(ParentNode, ANode: TH2PBaseNode);
|
||||||
procedure AddNodeInFrontOf(NextBrotherNode, ANode: TH2PBaseNode);
|
procedure AddNodeInFrontOf(NextBrotherNode, ANode: TH2PBaseNode);
|
||||||
procedure MoveChildsInFront(ANode: TH2PBaseNode);
|
procedure MoveChildsInFront(ANode: TH2PBaseNode);
|
||||||
function ContainsNode(ANode: TH2PBaseNode): boolean;
|
function ContainsNode(ANode: TH2PBaseNode): boolean;
|
||||||
@ -257,7 +258,8 @@ type
|
|||||||
|
|
||||||
function CreateH2PNode(const PascalName, CName: string; CNode: TCodeTreeNode;
|
function CreateH2PNode(const PascalName, CName: string; CNode: TCodeTreeNode;
|
||||||
PascalDesc: TCodeTreeNodeDesc; const PascalCode: string;
|
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;
|
function CreateAutoGeneratedH2PNode(var PascalName: string; CNode: TCodeTreeNode;
|
||||||
PascalDesc: TCodeTreeNodeDesc; const PascalCode: string;
|
PascalDesc: TCodeTreeNodeDesc; const PascalCode: string;
|
||||||
ParentNode: TH2PNode = nil; IsGlobal: boolean = true): TH2PNode;
|
ParentNode: TH2PNode = nil; IsGlobal: boolean = true): TH2PNode;
|
||||||
@ -2151,7 +2153,7 @@ end;
|
|||||||
function TH2PasTool.CreateH2PNode(const PascalName, CName: string;
|
function TH2PasTool.CreateH2PNode(const PascalName, CName: string;
|
||||||
CNode: TCodeTreeNode; PascalDesc: TCodeTreeNodeDesc;
|
CNode: TCodeTreeNode; PascalDesc: TCodeTreeNodeDesc;
|
||||||
const PascalCode: string;
|
const PascalCode: string;
|
||||||
ParentNode: TH2PNode; IsGlobal: boolean): TH2PNode;
|
ParentNode: TH2PNode; IsGlobal: boolean; InsertAsPreLast: boolean): TH2PNode;
|
||||||
begin
|
begin
|
||||||
Result:=TH2PNode.Create;
|
Result:=TH2PNode.Create;
|
||||||
Result.PascalName:=PascalName;
|
Result.PascalName:=PascalName;
|
||||||
@ -2159,6 +2161,9 @@ begin
|
|||||||
Result.CNode:=CNode;
|
Result.CNode:=CNode;
|
||||||
Result.PascalDesc:=PascalDesc;
|
Result.PascalDesc:=PascalDesc;
|
||||||
Result.PascalCode:=PascalCode;
|
Result.PascalCode:=PascalCode;
|
||||||
|
if InsertAsPreLast then
|
||||||
|
Tree.AddNodeAsPreLastChild(ParentNode,Result)
|
||||||
|
else
|
||||||
Tree.AddNodeAsLastChild(ParentNode,Result);
|
Tree.AddNodeAsLastChild(ParentNode,Result);
|
||||||
if IsGlobal then begin
|
if IsGlobal then begin
|
||||||
if PascalName<>'' then
|
if PascalName<>'' then
|
||||||
@ -2178,7 +2183,7 @@ function TH2PasTool.CreateAutoGeneratedH2PNode(var PascalName: string;
|
|||||||
begin
|
begin
|
||||||
Node:=FindH2PNodeWithPascalName(TestName);
|
Node:=FindH2PNodeWithPascalName(TestName);
|
||||||
if (Node=nil) then begin
|
if (Node=nil) then begin
|
||||||
Node:=CreateH2PNode(TestName,'',CNode,PascalDesc,PascalCode);
|
Node:=CreateH2PNode(TestName,'',CNode,PascalDesc,PascalCode,nil,true,true);
|
||||||
Result:=true;
|
Result:=true;
|
||||||
end else if ((Node.CNode=CNode) and (Node.PascalDesc=PascalDesc)
|
end else if ((Node.CNode=CNode) and (Node.PascalDesc=PascalDesc)
|
||||||
and (Node.PascalCode=PascalCode)
|
and (Node.PascalCode=PascalCode)
|
||||||
@ -2749,6 +2754,16 @@ begin
|
|||||||
inc(FNodeCount);
|
inc(FNodeCount);
|
||||||
end;
|
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);
|
procedure TH2PTree.AddNodeInFrontOf(NextBrotherNode, ANode: TH2PBaseNode);
|
||||||
begin
|
begin
|
||||||
ANode.Parent:=NextBrotherNode.Parent;
|
ANode.Parent:=NextBrotherNode.Parent;
|
||||||
|
Loading…
Reference in New Issue
Block a user