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

#pragma once

#include "SCW_UBlueprintGeneratedClass.h"

#include "ISCW_UWidgetBlueprintGeneratedClass.h"
#include "ISCW_UWidgetTree.h"

class UWidgetBlueprintGeneratedClass;

namespace Sourcify
{
	class SCW_UWidgetBlueprintGeneratedClass : public SCW_UBlueprintGeneratedClass, public virtual ISCW_UWidgetBlueprintGeneratedClass
	{
	public:
		SCW_UWidgetBlueprintGeneratedClass(UWidgetBlueprintGeneratedClass* InWidgetBlueprintGeneratedClass);

		ISCW_UWidgetTreePtr GetWidgetTreeArchetype() const override;

		UWidgetBlueprintGeneratedClass* ToUWidgetBlueprintGeneratedClass() const;

		ISCW_UWidgetBlueprintGeneratedClassPtr ToUWidgetBlueprintGeneratedClassPtr() override;
		ISCW_UWidgetBlueprintGeneratedClassConstPtr ToUWidgetBlueprintGeneratedClassPtr() const override;

	protected:
		UWidgetBlueprintGeneratedClass* WidgetBlueprintGeneratedClass;
	};
} // namespace Sourcify