UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
TypedElementAttributeBindingText.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "Containers/Map.h"
9#include "Misc/Attribute.h"
11
13{
14
15 //
16 // FTextAttributeFormatted
17 //
18
20 {
21 friend class FAttributeBinder;
22
23 public:
25
26 template <TDataColumnType ColumnType>
29
30 template <TDataColumnType ColumnType>
31 FTextAttributeFormatted& Arg(FString Name, FString ColumnType::* Variable, FFormatArgumentValue Default = {},
33
34 template <TDataColumnType ColumnType>
35 FTextAttributeFormatted& Arg(FString Name, FName ColumnType::* Variable, FFormatArgumentValue Default = {},
37
38 template <typename DataType, TDataColumnType ColumnType>
39 FTextAttributeFormatted& Arg(
40 FString Name,
41 DataType ColumnType::* Variable,
42 const TFunction<FText(const DataType&)>& Converter,
45
46 template <typename DataType, TDataColumnType ColumnType, typename FunctionType>
47 requires DataStorage::Private::AttributeBinderInvocable<FunctionType, DataType>
48 FTextAttributeFormatted& Arg(FString Name, DataType ColumnType::* Variable, FunctionType Converter, FFormatArgumentValue Default = {},
50
52
53 private:
54 FTextAttributeFormatted(FTextFormat InFormat, RowHandle InTargetRow, ICoreProvider* InDataStorage);
55
56 struct FPropertyInfo
57 {
58 DataStorage::Private::TProperty<FText> Property;
60 FName DynamicColumnIdentifier;
61 };
62 TMap<FString, FPropertyInfo> NamedProperties;
63 FTextFormat Format;
64
65 // The target row for this binder
66 RowHandle TargetRow;
67 // A ptr to the data storage for quick access
68 ICoreProvider* DataStorage;
69 };
70
71 template <TDataColumnType ColumnType>
74 {
76 Prop.Bind(Variable);
77 NamedProperties.Add(MoveTemp(Name), FPropertyInfo{ .Property = MoveTemp(Prop), .Default = MoveTemp(Default),
78 .DynamicColumnIdentifier = ColumnIdentifier});
79
80 return *this;
81 }
82
83 template <TDataColumnType ColumnType>
85 FString Name, FString ColumnType::* Variable, FFormatArgumentValue Default, FName ColumnIdentifier)
86 {
87 return Arg(MoveTemp(Name), Variable, [](const FString& Value) { return FText::FromString(Value); }, MoveTemp(Default), ColumnIdentifier);
88 }
89
90 template <TDataColumnType ColumnType>
96
97 template <typename DataType, TDataColumnType ColumnType>
99 FString Name,
100 DataType ColumnType::* Variable,
101 const TFunction<FText(const DataType&)>& Converter,
104 {
106 Prop.Bind(Variable, Converter);
107 NamedProperties.Add(MoveTemp(Name), FPropertyInfo{ .Property = MoveTemp(Prop), .Default = MoveTemp(Default),
108 .DynamicColumnIdentifier = ColumnIdentifier });
109
110 return *this;
111 }
112
113 template <typename DataType, TDataColumnType ColumnType, typename FunctionType>
116 FString Name,
117 DataType ColumnType::* Variable,
118 FunctionType Converter,
121 {
122 return Arg(MoveTemp(Name), Variable, TFunction<FText(const DataType&)>(MoveTemp(Converter)), MoveTemp(Default), ColumnIdentifier);
123 }
124
125}
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition Text.h:928
Definition NameTypes.h:617
Definition Text.h:278
Definition Text.h:385
static CORE_API FText FromString(const ANSICHAR *String)
Definition Text.cpp:1081
static CORE_API FText FromName(const FName &Val)
Definition Text.cpp:1076
Definition Attribute.h:17
Definition AndroidPlatformMisc.h:14
Definition UnrealString.h.inl:34
Definition TypedElementAttributeBinding.h:25
Definition TypedElementAttributeBindingText.h:20
TYPEDELEMENTFRAMEWORK_API FTextAttributeFormatted & Arg(FString Name, FFormatArgumentValue Value)
Definition TypedElementtAttributeBindingText.cpp:15
Definition TypedElementAttributeBindingProperty.h:83
void Bind(PropertyType ObjectType::*Variable)
Definition TypedElementAttributeBindingProperty.h:187
Definition TypedElementAttributeBindingProperty.h:17
const Type Default
Definition AIController.h:54
Definition CommonTypes.cpp:10
uint64 RowHandle
Definition Handles.h:15