#pragma once #include #include namespace PalUIExtension::Api { // ================================================================== // UWidgetBlueprintGeneratedClass -- the CLASS object behind every WBP_... // ================================================================== class WidgetBlueprintGeneratedClass : public UnrealWrapper { public: static auto ClassPath() -> const TCHAR* { return STR("/Script/UMG.WidgetBlueprintGeneratedClass"); } static auto DebugTag() -> const TCHAR* { return STR("WBPGeneratedClass"); } WidgetBlueprintGeneratedClass() = default; explicit WidgetBlueprintGeneratedClass(UObject* Obj) : UnrealWrapper(Obj, ClassOf(), DebugTag()) {} static auto Of(UObject* Instance) -> WidgetBlueprintGeneratedClass { if (!Instance) return WidgetBlueprintGeneratedClass{}; UClass* Cls = Instance->GetClassPrivate(); if (!Cls) return WidgetBlueprintGeneratedClass{}; UClass* Expected = ClassOf(); if (!Expected || !Cls->IsA(Expected)) return WidgetBlueprintGeneratedClass{}; return WidgetBlueprintGeneratedClass{ static_cast(Cls) }; } auto TemplateTree() const -> WidgetTree { UObject* Tree = TryObjectProperty(STR("WidgetTree")); return Tree ? WidgetTree{ Tree } : WidgetTree{}; } auto TemplateTreeObject() const -> UObject* { return TryObjectProperty(STR("WidgetTree")); } }; }