本文整理汇总了C++中TSharedRef::CreatePropertyNameWidget方法的典型用法代码示例。如果您正苦于以下问题:C++ TSharedRef::CreatePropertyNameWidget方法的具体用法?C++ TSharedRef::CreatePropertyNameWidget怎么用?C++ TSharedRef::CreatePropertyNameWidget使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TSharedRef
的用法示例。
在下文中一共展示了TSharedRef::CreatePropertyNameWidget方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CustomizeHeader
void FPrimaryAssetIdCustomization::CustomizeHeader(TSharedRef<class IPropertyHandle> InStructPropertyHandle, class FDetailWidgetRow& HeaderRow, IPropertyTypeCustomizationUtils& StructCustomizationUtils)
{
if (!UAssetManager::IsValid())
{
HeaderRow
.NameContent()
[
InStructPropertyHandle->CreatePropertyNameWidget()
]
.ValueContent()
.MinDesiredWidth(250.0f)
.MaxDesiredWidth(0.0f)
[
SNew(STextBlock)
.Text(LOCTEXT("NoAssetManager", "Enable Asset Manager to edit Primary Asset Ids"))
];
return;
}
StructPropertyHandle = InStructPropertyHandle;
const FString& TypeFilterString = StructPropertyHandle->GetMetaData("AllowedTypes");
if( !TypeFilterString.IsEmpty() )
{
TArray<FString> CustomTypeFilterNames;
TypeFilterString.ParseIntoArray(CustomTypeFilterNames, TEXT(","), true);
for(auto It = CustomTypeFilterNames.CreateConstIterator(); It; ++It)
{
const FString& TypeName = *It;
AllowedTypes.Add(*TypeName);
}
}
FOnShouldFilterAsset AssetFilter = FOnShouldFilterAsset::CreateStatic(&IAssetManagerEditorModule::OnShouldFilterPrimaryAsset, AllowedTypes);
// Can the field be cleared
const bool bAllowClear = !(StructPropertyHandle->GetMetaDataProperty()->PropertyFlags & CPF_NoClear);
HeaderRow
.NameContent()
[
InStructPropertyHandle->CreatePropertyNameWidget()
]
.ValueContent()
.MinDesiredWidth(250.0f)
.MaxDesiredWidth(0.0f)
[
// Add an object entry box. Even though this isn't an object entry, we will simulate one
SNew( SObjectPropertyEntryBox )
.ObjectPath(this, &FPrimaryAssetIdCustomization::OnGetObjectPath)
.PropertyHandle(InStructPropertyHandle)
.ThumbnailPool(StructCustomizationUtils.GetThumbnailPool())
.OnShouldFilterAsset(AssetFilter)
.OnObjectChanged(this, &FPrimaryAssetIdCustomization::OnSetObject)
.AllowClear(bAllowClear)
];
}
示例2: GenerateHeaderRowContent
void FReplaceVectorWithLinearColorBuilder::GenerateHeaderRowContent(FDetailWidgetRow& NodeRow)
{
// Only generate a header row if the handle has a valid UProperty.
// Note that it's possible for the Property to be NULL if the property node is an FObjectPropertyNode - however we still want to create children in this case.
if (PropertyHandle->GetProperty() != nullptr)
{
NodeRow.NameContent()
[
PropertyHandle->CreatePropertyNameWidget()
];
if (bIsVectorProperty)
{
// Customization - make FVector look like an FLinearColor
NodeRow.ValueContent()
.MinDesiredWidth(250.0f)
.MaxDesiredWidth(250.0f)
[
CreateColorWidget(PropertyHandle)
];
}
else
{
// Otherwise, use the default property widget
NodeRow.ValueContent()
.MinDesiredWidth(1)
.MaxDesiredWidth(4096)
[
PropertyHandle->CreatePropertyValueWidget()
];
}
}
}
示例3: CustomizeStructHeader
void FSlateSoundStructCustomization::CustomizeStructHeader(TSharedRef<IPropertyHandle> StructPropertyHandle, FDetailWidgetRow& HeaderRow, IStructCustomizationUtils& StructCustomizationUtils)
{
TSharedPtr<IPropertyHandle> ResourceObjectProperty = StructPropertyHandle->GetChildHandle(TEXT("ResourceObject"));
check(ResourceObjectProperty.IsValid());
TArray<void*> StructPtrs;
StructPropertyHandle->AccessRawData(StructPtrs);
for(auto It = StructPtrs.CreateConstIterator(); It; ++It)
{
FSlateSound* const SlateSound = reinterpret_cast<FSlateSound*>(*It);
SlateSoundStructs.Add(SlateSound);
}
HeaderRow
.NameContent()
[
StructPropertyHandle->CreatePropertyNameWidget()
]
.ValueContent()
.MinDesiredWidth(250.0f)
[
SNew(SObjectPropertyEntryBox)
.PropertyHandle(ResourceObjectProperty)
.AllowedClass(USoundBase::StaticClass())
.OnObjectChanged(this, &FSlateSoundStructCustomization::OnObjectChanged)
];
}
示例4: CustomizeHeader
void FStringClassReferenceCustomization::CustomizeHeader(TSharedRef<IPropertyHandle> InPropertyHandle, FDetailWidgetRow& HeaderRow, IPropertyTypeCustomizationUtils& StructCustomizationUtils)
{
PropertyHandle = InPropertyHandle;
const FString& MetaClassName = PropertyHandle->GetMetaData("MetaClass");
const FString& RequiredInterfaceName = PropertyHandle->GetMetaData("RequiredInterface");
const bool bAllowAbstract = PropertyHandle->GetBoolMetaData("AllowAbstract");
const bool bIsBlueprintBaseOnly = PropertyHandle->GetBoolMetaData("IsBlueprintBaseOnly");
const bool bAllowNone = !(PropertyHandle->GetMetaDataProperty()->PropertyFlags & CPF_NoClear);
const UClass* const MetaClass = !MetaClassName.IsEmpty()
? FEditorClassUtils::GetClassFromString(MetaClassName)
: UClass::StaticClass();
const UClass* const RequiredInterface = FEditorClassUtils::GetClassFromString(RequiredInterfaceName);
HeaderRow
.NameContent()
[
InPropertyHandle->CreatePropertyNameWidget()
]
.ValueContent()
.MinDesiredWidth(250.0f)
.MaxDesiredWidth(0.0f)
[
// Add a class entry box. Even though this isn't an class entry, we will simulate one
SNew(SClassPropertyEntryBox)
.MetaClass(MetaClass)
.RequiredInterface(RequiredInterface)
.AllowAbstract(bAllowAbstract)
.IsBlueprintBaseOnly(bIsBlueprintBaseOnly)
.AllowNone(bAllowNone)
.SelectedClass(this, &FStringClassReferenceCustomization::OnGetClass)
.OnSetClass(this, &FStringClassReferenceCustomization::OnSetClass)
];
}
示例5: GenerateArrayElementWidget
void FMoviePlayerSettingsDetails::GenerateArrayElementWidget(TSharedRef<IPropertyHandle> PropertyHandle, int32 ArrayIndex, IDetailChildrenBuilder& ChildrenBuilder)
{
IDetailPropertyRow& FilePathRow = ChildrenBuilder.AddChildProperty( PropertyHandle );
{
FilePathRow.CustomWidget(false)
.NameContent()
[
PropertyHandle->CreatePropertyNameWidget()
]
.ValueContent()
.MaxDesiredWidth(0.0f)
.MinDesiredWidth(125.0f)
[
SNew(SFilePathPicker)
.BrowseButtonImage(FEditorStyle::GetBrush("PropertyWindow.Button_Ellipsis"))
.BrowseButtonStyle(FEditorStyle::Get(), "HoverHintOnly")
.BrowseButtonToolTip(LOCTEXT("FileButtonToolTipText", "Choose a file from this computer"))
.BrowseDirectory(FEditorDirectories::Get().GetLastDirectory(ELastDirectory::GENERIC_OPEN))
.BrowseTitle(LOCTEXT("PropertyEditorTitle", "File picker..."))
.FilePath(this, &FMoviePlayerSettingsDetails::HandleFilePathPickerFilePath, PropertyHandle)
.FileTypeFilter(TEXT("MPEG-4 Movie (*.mp4)|*.mp4"))
.OnPathPicked(this, &FMoviePlayerSettingsDetails::HandleFilePathPickerPathPicked, PropertyHandle)
];
}
};
示例6: CustomizeHeader
void FCameraLensSettingsCustomization::CustomizeHeader(TSharedRef<IPropertyHandle> StructPropertyHandle, FDetailWidgetRow& HeaderRow, IPropertyTypeCustomizationUtils& CustomizationUtils)
{
HeaderRow.
NameContent()
[
StructPropertyHandle->CreatePropertyNameWidget()
]
.ValueContent()
.MaxDesiredWidth(0.f)
[
SAssignNew(PresetComboBox, SComboBox< TSharedPtr<FString> >)
.OptionsSource(&PresetComboList)
.OnGenerateWidget(this, &FCameraLensSettingsCustomization::MakePresetComboWidget)
.OnSelectionChanged(this, &FCameraLensSettingsCustomization::OnPresetChanged)
.IsEnabled(FSlateApplication::Get().GetNormalExecutionAttribute())
.ContentPadding(2)
.Content()
[
SNew(STextBlock)
.Text(this, &FCameraLensSettingsCustomization::GetPresetComboBoxContent)
.Font(IDetailLayoutBuilder::GetDetailFont())
.ToolTipText(this, &FCameraLensSettingsCustomization::GetPresetComboBoxContent)
]
];
}
示例7: CustomizeHeader
void FMarginStructCustomization::CustomizeHeader( TSharedRef<class IPropertyHandle> StructPropertyHandle, class FDetailWidgetRow& HeaderRow, IPropertyTypeCustomizationUtils& StructCustomizationUtils )
{
this->StructPropertyHandle = StructPropertyHandle;
const FString UVSpaceString( StructPropertyHandle->GetProperty()->GetMetaData( TEXT( "UVSpace" ) ) );
bIsMarginUsingUVSpace = UVSpaceString.Len() > 0 && UVSpaceString == TEXT( "true" );
uint32 NumChildren;
StructPropertyHandle->GetNumChildren( NumChildren );
for( uint32 ChildIndex = 0; ChildIndex < NumChildren; ++ChildIndex )
{
ChildPropertyHandles.Add( StructPropertyHandle->GetChildHandle( ChildIndex ).ToSharedRef() );
}
TSharedPtr<SHorizontalBox> HorizontalBox;
HeaderRow.NameContent()
[
StructPropertyHandle->CreatePropertyNameWidget()
]
.ValueContent()
.MinDesiredWidth( 250.0f )
.MaxDesiredWidth( 250.0f )
[
SAssignNew( HorizontalBox, SHorizontalBox )
];
HorizontalBox->AddSlot()
[
MakePropertyWidget()
];
}
示例8: CustomizeStructHeader
BEGIN_SLATE_FUNCTION_BUILD_OPTIMIZATION
void FBlackboardSelectorDetails::CustomizeStructHeader( TSharedRef<class IPropertyHandle> StructPropertyHandle, class FDetailWidgetRow& HeaderRow, IStructCustomizationUtils& StructCustomizationUtils )
{
MyStructProperty = StructPropertyHandle;
CacheBlackboardData();
HeaderRow.NameContent()
[
StructPropertyHandle->CreatePropertyNameWidget()
]
.ValueContent()
[
SNew(SComboButton)
.OnGetMenuContent(this, &FBlackboardSelectorDetails::OnGetKeyContent)
.ContentPadding(FMargin( 2.0f, 2.0f ))
.IsEnabled_Static(&FBehaviorTreeDebugger::IsPIENotSimulating)
.ButtonContent()
[
SNew(STextBlock)
.Text(this, &FBlackboardSelectorDetails::GetCurrentKeyDesc)
.Font(IDetailLayoutBuilder::GetDetailFont())
]
];
InitKeyFromProperty();
}
示例9: MakeHeaderRow
void FMathStructCustomization::MakeHeaderRow( TSharedRef<class IPropertyHandle>& StructPropertyHandle, FDetailWidgetRow& Row )
{
// We'll set up reset to default ourselves
const bool bDisplayResetToDefault = false;
const FString DisplayNameOverride = TEXT("");
TSharedPtr<SHorizontalBox> HorizontalBox;
Row.NameContent()
[
StructPropertyHandle->CreatePropertyNameWidget( DisplayNameOverride, bDisplayResetToDefault )
]
.ValueContent()
// Make enough space for each child handle
.MinDesiredWidth(125.0f * SortedChildHandles.Num() )
.MaxDesiredWidth(125.0f * SortedChildHandles.Num() )
[
SAssignNew( HorizontalBox, SHorizontalBox )
];
for( int32 ChildIndex = 0; ChildIndex < SortedChildHandles.Num(); ++ChildIndex )
{
TSharedRef<IPropertyHandle> ChildHandle = SortedChildHandles[ChildIndex];
const bool bLastChild = SortedChildHandles.Num()-1 == ChildIndex;
// Make a widget for each property. The vector component properties will be displayed in the header
HorizontalBox->AddSlot()
.Padding( FMargin(0.0f, 2.0f, bLastChild ? 0.0f : 3.0f, 2.0f ) )
[
MakeChildWidget( ChildHandle )
];
}
}
示例10: CustomizeHeader
void FBlackboardSelectorDetails::CustomizeHeader( TSharedRef<class IPropertyHandle> StructPropertyHandle, class FDetailWidgetRow& HeaderRow, IPropertyTypeCustomizationUtils& StructCustomizationUtils )
{
MyStructProperty = StructPropertyHandle;
PropUtils = StructCustomizationUtils.GetPropertyUtilities().Get();
CacheBlackboardData();
HeaderRow.IsEnabled(TAttribute<bool>::Create(TAttribute<bool>::FGetter::CreateSP(this, &FBlackboardSelectorDetails::IsEditingEnabled)))
.NameContent()
[
StructPropertyHandle->CreatePropertyNameWidget()
]
.ValueContent()
[
SNew(SComboButton)
.OnGetMenuContent(this, &FBlackboardSelectorDetails::OnGetKeyContent)
.ContentPadding(FMargin( 2.0f, 2.0f ))
.IsEnabled(this, &FBlackboardSelectorDetails::IsEditingEnabled)
.ButtonContent()
[
SNew(STextBlock)
.Text(this, &FBlackboardSelectorDetails::GetCurrentKeyDesc)
.Font(IDetailLayoutBuilder::GetDetailFont())
]
];
InitKeyFromProperty();
}
示例11: CustomizeHeader
void FAttributeBasedFloatDetails::CustomizeHeader(TSharedRef<IPropertyHandle> StructPropertyHandle, FDetailWidgetRow& HeaderRow, IPropertyTypeCustomizationUtils& StructCustomizationUtils)
{
HeaderRow
.NameContent()
[
StructPropertyHandle->CreatePropertyNameWidget()
];
}
示例12: CustomizeHeader
void FEnvQueryParamSetupCustomization::CustomizeHeader( TSharedRef<class IPropertyHandle> StructPropertyHandle, class FDetailWidgetRow& HeaderRow, IPropertyTypeCustomizationUtils& StructCustomizationUtils )
{
PropertyHandle = StructPropertyHandle;
CacheMyValues();
// create struct header
HeaderRow.NameContent()
[
StructPropertyHandle->CreatePropertyNameWidget()
]
.ValueContent()
[
SNew(SHorizontalBox)
+SHorizontalBox::Slot()
.Padding(0.0f, 2.0f, 5.0f, 2.0f)
.VAlign(VAlign_Center)
.AutoWidth()
[
SNew(SButton)
.OnClicked( this, &FEnvQueryParamSetupCustomization::ToggleMode )
.ContentPadding(2.0f)
.VAlign(VAlign_Center)
.Content()
[
SNew(STextBlock)
.Text(this, &FEnvQueryParamSetupCustomization::GetComboText)
.Font(IDetailLayoutBuilder::GetDetailFont())
.ToolTipText(this, &FEnvQueryParamSetupCustomization::GetComboTooltip)
]
]
+SHorizontalBox::Slot()
.Padding(0.0f, 2.0f, 5.0f, 2.0f)
[
SAssignNew(TextBox, SEditableTextBox)
.Visibility(this, &FEnvQueryParamSetupCustomization::GetParamNameVisibility)
.OnTextCommitted(this, &FEnvQueryParamSetupCustomization::OnParamNameCommitted)
]
+SHorizontalBox::Slot()
.Padding(0.0f, 2.0f, 5.0f, 2.0f)
[
SNew(SNumericEntryBox<float>)
.AllowSpin(false)
.Visibility(this, &FEnvQueryParamSetupCustomization::GetParamNumValueVisibility)
.Value(this, &FEnvQueryParamSetupCustomization::GetParamNumValue)
.OnValueChanged(this, &FEnvQueryParamSetupCustomization::OnParamNumValueChanged)
]
+SHorizontalBox::Slot()
.Padding(0.0f, 2.0f, 5.0f, 2.0f)
[
SNew(SCheckBox)
.Visibility(this, &FEnvQueryParamSetupCustomization::GetParamBoolValueVisibility)
.IsChecked(this, &FEnvQueryParamSetupCustomization::GetParamBoolValue )
.OnCheckStateChanged(this, &FEnvQueryParamSetupCustomization::OnParamBoolValueChanged )
]
];
OnModeChanged();
}
示例13: CustomizeHeader
void FInputAxisConfigCustomization::CustomizeHeader( TSharedRef<class IPropertyHandle> InStructPropertyHandle, class FDetailWidgetRow& HeaderRow, IPropertyTypeCustomizationUtils& StructCustomizationUtils )
{
FString AxisKeyName;
InStructPropertyHandle->GetChildHandle(GET_MEMBER_NAME_CHECKED(FInputAxisConfigEntry, AxisKeyName))->GetValue(AxisKeyName);
HeaderRow.NameContent()
[
InStructPropertyHandle->CreatePropertyNameWidget(AxisKeyName)
];
}
示例14: CustomizeHeader
void FStreamingLevelDetailsCustomization::CustomizeHeader(TSharedRef<class IPropertyHandle> StructPropertyHandle,
class FDetailWidgetRow& HeaderRow,
IPropertyTypeCustomizationUtils& StructCustomizationUtils )
{
HeaderRow
.NameContent()
[
StructPropertyHandle->CreatePropertyNameWidget()
];
}
示例15: CustomizeHeader
void FVehicleTransmissionDataCustomization::CustomizeHeader(TSharedRef<IPropertyHandle> StructPropertyHandle, FDetailWidgetRow& HeaderRow, IPropertyTypeCustomizationUtils& StructCustomizationUtils)
{
HeaderRow.
NameContent()
[
StructPropertyHandle->CreatePropertyNameWidget()
]
.ValueContent()
[
StructPropertyHandle->CreatePropertyValueWidget()
];
}
开发者ID:JustDo1989,项目名称:UnrealEngine4.11-HairWorks,代码行数:12,代码来源:VehicleTransmissionDataCustomization.cpp