UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
TreeView.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "ListView.h"
7#include "TreeView.generated.h"
8
11
19UCLASS(MinimalAPI)
21{
23
24public:
26 UMG_API virtual void ReleaseSlateResources(bool bReleaseChildren) override;
27
29 UFUNCTION(BlueprintCallable, Category = TreeView)
30 UMG_API void SetItemExpansion(UObject* Item, bool bExpandItem);
31
33 UFUNCTION(BlueprintCallable, Category = TreeView)
34 UMG_API void ExpandAll();
35
37 UFUNCTION(BlueprintCallable, Category = TreeView)
38 UMG_API void CollapseAll();
39
40 template <typename ObjectT>
42 {
43 static_assert(TIsDerivedFrom<ObjectT, UObject>::IsDerived, "Only UObject ptrs can be passed directly when binding to SetOnGetItemChildren. Pass a shared ref for non-UObject binders.");
45 }
46 template <typename ObjectT>
51
52protected:
53 UMG_API virtual TSharedRef<STableViewBase> RebuildListWidget() override;
54 UMG_API virtual void OnItemClickedInternal(UObject* ListItem) override;
55
56 UMG_API virtual void OnItemExpansionChangedInternal(UObject* Item, bool bIsExpanded) override;
57 UMG_API virtual void OnGetChildrenInternal(UObject* Item, TArray<UObject*>& OutChildren) const override;
58
60 template <template<typename> class TreeViewT = STreeView>
62 {
63 FTreeViewConstructArgs Args;
64 Args.bClearSelectionOnClick = bClearSelectionOnClick;
65 Args.SelectionMode = SelectionMode;
66 Args.ConsumeMouseWheel = ConsumeMouseWheel;
67 Args.bReturnFocusToSelection = bReturnFocusToSelection;
68 Args.TreeViewStyle = &WidgetStyle;
69 Args.ScrollBarStyle = &ScrollBarStyle;
70
71 MyListView = MyTreeView = ITypedUMGListView<UObject*>::ConstructTreeView<TreeViewT>(this, ListItems, Args);
73 return StaticCastSharedRef<TreeViewT<UObject*>>(MyTreeView.ToSharedRef());
74 }
75
76
78
79private:
81 UPROPERTY(EditAnywhere, Category = Events, meta = (IsBindableEvent, AllowPrivateAccess = true, DisplayName = "On Get Item Children"))
82 FOnGetItemChildrenDynamic BP_OnGetItemChildren;
83
84 UPROPERTY(BlueprintAssignable, Category = Events, meta = (AllowPrivateAccess = true, DisplayName = "On Item Expansion Changed"))
85 FOnItemExpansionChangedDynamic BP_OnItemExpansionChanged;
86
87 TSlateDelegates<UObject*>::FOnGetChildren OnGetItemChildren;
88 FOnItemExpansionChanged OnItemExpansionChangedEvent;
89};
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(DelegateName, Param1Type, Param1Name, Param2Type, Param2Name)
Definition DelegateCombinations.h:62
#define DECLARE_DYNAMIC_DELEGATE_TwoParams(DelegateName, Param1Type, Param1Name, Param2Type, Param2Name)
Definition DelegateCombinations.h:61
return true
Definition ExternalRpcRegistry.cpp:601
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define UCLASS(...)
Definition ObjectMacros.h:776
Definition UObjectGlobals.h:1292
Definition ListViewBase.h:40
Definition SListView.h:66
Definition STreeView.h:90
Definition Array.h:670
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition SlateDelegates.h:134
Definition ListView.h:39
UMG_API void HandleOnEntryInitializedInternal(UObject *Item, const TSharedRef< ITableRow > &TableRow)
Definition ListView.cpp:154
Definition Object.h:95
Definition TreeView.h:21
TSharedPtr< STreeView< UObject * > > MyTreeView
Definition TreeView.h:77
void SetOnGetItemChildren(ObjectT *InUserObject, typename TSlateDelegates< UObject * >::FOnGetChildren::TMethodPtr< ObjectT > InMethodPtr)
Definition TreeView.h:41
TSharedRef< TreeViewT< UObject * > > ConstructTreeView()
Definition TreeView.h:61
void SetOnGetItemChildren(TSharedRef< ObjectT > InUserObject, typename TSlateDelegates< UObject * >::FOnGetChildren::TMethodPtr< ObjectT > InMethodPtr)
Definition TreeView.h:47
Definition UnrealTypeTraits.h:40