// Copyright (c) 2024 Codemongous LLC. All Rights Reserved.

#pragma once

#include "ISCW_UWidgetTree.h"
#include "SCW_UObject.h"

class UWidgetTree;

namespace Sourcify
{
	class SCW_UWidgetTree : public SCW_UObject, public virtual ISCW_UWidgetTree
	{
	public:
		SCW_UWidgetTree(UWidgetTree* InWidgetTree);

		UWidgetTree* ToUWidgetTree() const;

		ISCW_UWidgetTreePtr ToUWidgetTreePtr() override;
		ISCW_UWidgetTreeConstPtr ToUWidgetTreePtr() const override;

		ISCW_UWidgetPtr FindWidget(const wstring& Name) const override;

	protected:
		TStrongObjectPtr<UWidgetTree> WidgetTree;
	};
} // namespace Sourcify