LazUtils: Add backwards compatibility to TAvgLvlTree. Needed by BGRABitmap and others.

git-svn-id: trunk@54545 -
This commit is contained in:
juha 2017-04-06 17:44:28 +00:00
parent 8eda400e32
commit 3c525fb548

View File

@ -25,18 +25,27 @@ uses
type
TAvgLvlTree = class;
TAvgLvlObjectSortCompare = function(Tree: TAvgLvlTree; Data1, Data2: Pointer): integer of object;
{ TAvgLvlTree and TAvgLvlTreeNode for backwards compatibility.
They used to be fully implemented here but now inherit from TAVLTreeNode and TAvlTree.
}
TAvgLvlTreeNode = TAVLTreeNode;
TAvgLvlTreeNodeEnumerator = TAVLTreeNodeEnumerator;
TAvgLvlTree = class(TAvlTree)
private
FOwnsObjects: boolean;
function GetObjectCompare: TAvgLvlObjectSortCompare;
procedure SetObjectCompare(AValue: TAvgLvlObjectSortCompare);
public
constructor CreateObjectCompare(const OnCompareMethod: TAvgLvlObjectSortCompare);
procedure DisposeNode(aNode: TAVLTreeNode); override;
procedure FreeAndDelete(ANode: TAVLTreeNode); override;
property OwnsObjects: boolean read FOwnsObjects write FOwnsObjects;
property OnObjectCompare: TAvgLvlObjectSortCompare read GetObjectCompare write SetObjectCompare;
end;
TAvgLvlTreeClass = class of TAvgLvlTree;
@ -375,6 +384,21 @@ end;
{ TAvgLvlTree }
constructor TAvgLvlTree.CreateObjectCompare(const OnCompareMethod: TAvgLvlObjectSortCompare);
begin
inherited CreateObjectCompare(TObjectSortCompare(OnCompareMethod));
end;
procedure TAvgLvlTree.SetObjectCompare(AValue: TAvgLvlObjectSortCompare);
begin
inherited SetOnObjectCompare(TObjectSortCompare(AValue));
end;
function TAvgLvlTree.GetObjectCompare: TAvgLvlObjectSortCompare;
begin
Result := TAvgLvlObjectSortCompare(FOnObjectCompare);
end;
procedure TAvgLvlTree.DisposeNode(aNode: TAVLTreeNode);
begin
if FOwnsObjects then