HighDetail

HighDetail

#Overview

name: HighDetail

The value of this variable can be defined or overridden in .ini config files. 1 .ini config file referencing this setting variable.

It is referenced in 20 C++ source files.

#Summary

#Usage in the C++ source code

The purpose of HighDetail is to provide a way to define content for a high-detail view in Unreal Engine’s user interface components, particularly in graph-related widgets and nodes.

HighDetail is primarily used in the Graph Editor and various specialized graph-related plugins and modules within Unreal Engine. Based on the callsites, it’s utilized in:

  1. Environment Query Editor
  2. Property Access Node
  3. Common Conversation Graph
  4. Texture Graph Editor
  5. Niagara Editor
  6. PCG (Procedural Content Generation) Editor
  7. RigVM Editor
  8. Animation Blueprint Editor
  9. Behavior Tree Editor
  10. Kismet (Blueprint) Editor

The value of this variable is typically set as part of a widget’s construction or update process, often within methods like Construct(), UpdateGraphNode(), or CreateNodeContentArea().

HighDetail is commonly used in conjunction with other layout-related functions, such as LowDetail(). These functions work together to provide different levels of detail for graph nodes and other UI elements depending on the current view or user preferences.

Developers should be aware that:

  1. HighDetail is used to define the content that should be displayed when a more detailed view is required.
  2. It’s often paired with a corresponding LowDetail section for when less detail is needed.
  3. The content defined in HighDetail may not always be visible, depending on the current view state or user settings.

Best practices when using this variable include:

  1. Ensure that the most important and detailed information is placed within the HighDetail section.
  2. Keep the content concise and relevant, even in high-detail mode.
  3. Test the appearance and functionality of both high and low detail modes to ensure a smooth user experience.
  4. Consider performance implications when adding complex widgets to the HighDetail section, as they may impact rendering times when visible.

#Setting Variables

#References In INI files

Location: <Workspace>/Engine/Config/BaseEngine.ini:2417, section: [StaticMeshLODSettings]

#References in C++ code

#Callsites

This variable is referenced in the following C++ source code:

#Loc: <Workspace>/Engine/Plugins/AI/EnvironmentQueryEditor/Source/EnvironmentQueryEditor/Private/SGraphNode_EnvironmentQuery.cpp:271

Scope: file

Source code excerpt:

												.HeightOverride_Lambda(GetNodeTitlePlaceholderHeight)
											]
											.HighDetail()
											[
												SNew(SVerticalBox)
												+SVerticalBox::Slot()
												.AutoHeight()
												[
													SAssignNew(InlineEditableText, SInlineEditableTextBlock)

#Loc: <Workspace>/Engine/Plugins/Developer/PropertyAccessNode/Source/PropertyAccessNode/Private/SPropertyAccessNode.cpp:276

Scope (from outer to inner):

file
function     TSharedRef<SWidget> SPropertyAccessNode::UpdateTitleWidget

Source code excerpt:

			SNew(SSpacer)
		]
		.HighDetail()
		[
			SNew(SOverlay)
			+SOverlay::Slot()
			[
				PropertyBindingWidget.ToSharedRef()
			]

#Loc: <Workspace>/Engine/Plugins/Experimental/CommonConversation/Source/CommonConversationGraph/Private/SConversationGraphNode.cpp:410

Scope: file

Source code excerpt:

												.HeightOverride_Lambda(GetNodeTitlePlaceholderHeight)
											]
											.HighDetail()
											[
												SNew(SHorizontalBox)
												+SHorizontalBox::Slot()
												.AutoWidth()
												.VAlign(VAlign_Center)
												[

#Loc: <Workspace>/Engine/Plugins/Experimental/TextureGraph/Source/TextureGraphEditor/Private/EdGraph/STG_EditorGraphNode.cpp:194

Scope (from outer to inner):

file
function     BEGIN_SLATE_FUNCTION_BUILD_OPTIMIZATION void STG_EditorGraphNode::UpdateGraphNode

Source code excerpt:

			.BorderBackgroundColor(this, &STG_EditorGraphNode::GetNodeTitleColor)
		]
		.HighDetail()
		[
			DefaultTitleAreaWidget
		];


	if (!SWidget::GetToolTip().IsValid())

#Loc: <Workspace>/Engine/Plugins/FX/Niagara/Source/NiagaraEditorWidgets/Private/SNiagaraOverviewStackNode.cpp:671

Scope (from outer to inner):

file
function     TSharedRef<SWidget> SNiagaraOverviewStackNode::CreateNodeContentArea_Default

Source code excerpt:

			]
		]
		.HighDetail()
		[
			NodeWidget
		];

	ScalabilityWrapper = SNew(SOverlay)
	+ SOverlay::Slot()

#Loc: <Workspace>/Engine/Plugins/PCG/Source/PCGEditor/Private/SPCGEditorGraphNode.cpp:282

Scope (from outer to inner):

file
function     void SPCGEditorGraphNodePin::Construct

Source code excerpt:

					PinWidgetRef
				]
				.HighDetail()
				[
					PinContent.ToSharedRef()
				]
			]
		]
	);

#Loc: <Workspace>/Engine/Plugins/Runtime/RigVM/Source/RigVMEditor/Private/Widgets/SRigVMGraphNode.cpp:130

Scope (from outer to inner):

file
function     TSharedRef<SWidget> SRigVMGraphNode::CreateNodeContentArea

Source code excerpt:

			.Size(this, &SRigVMGraphNode::GetLowDetailDesiredSize)
		]
		.HighDetail()
		[
			SAssignNew(LeftNodeBox, SVerticalBox)
		];
}

bool SRigVMGraphNode::UseLowDetailPinNames() const

#Loc: <Workspace>/Engine/Source/Editor/AnimationBlueprintEditor/Private/AnimationNodes/SAnimNodeReference.cpp:40

Scope (from outer to inner):

file
function     TSharedRef<SWidget> SAnimNodeReference::UpdateTitleWidget

Source code excerpt:

			SNew(SSpacer)
		]
		.HighDetail()
		[
			SNew(SVerticalBox)
			+SVerticalBox::Slot()
			.AutoHeight()
			[
				SNew(STextBlock)

#Loc: <Workspace>/Engine/Source/Editor/AnimationBlueprintEditor/Private/AnimationNodes/SAnimationGraphNode.cpp:252

Scope (from outer to inner):

file
function     TSharedRef<SWidget> SAnimationGraphNode::CreateNodeContentArea

Source code excerpt:

			.Size(this, &SAnimationGraphNode::GetLowDetailDesiredSize)
		]
		.HighDetail()
		[
			CachedContentArea.ToSharedRef()
		];
}

bool SAnimationGraphNode::UseLowDetailNodeContent() const

#Loc: <Workspace>/Engine/Source/Editor/AnimationBlueprintEditor/Private/AnimationNodes/SAnimationGraphNode.cpp:388

Scope (from outer to inner):

file
class        class SAnimNodeFunctionsWidget : public SCompoundWidget
function     void Construct

Source code excerpt:

						.Size(FVector2D(24.0f, 24.f))
					]
					.HighDetail()
					[
						NodeWidgets.NameWidget.ToSharedRef()
					]
				];

				// Function name

#Loc: <Workspace>/Engine/Source/Editor/AnimationBlueprintEditor/Private/AnimationNodes/SAnimationGraphNode.cpp:407

Scope (from outer to inner):

file
class        class SAnimNodeFunctionsWidget : public SCompoundWidget
function     void Construct

Source code excerpt:

						.Size(FVector2D(24.0f, 24.f))
					]
					.HighDetail()
					[	
						NodeWidgets.ValueWidget.ToSharedRef()
					]
				];

				RowIndex++;

#Loc: <Workspace>/Engine/Source/Editor/AnimationBlueprintEditor/Private/AnimationNodes/SAnimationGraphNode.cpp:450

Scope (from outer to inner):

file
function     TSharedRef<SWidget> SAnimationGraphNode::CreateNodeTagWidget

Source code excerpt:

			.Size(FVector2D(24.0f, 24.f))
		]
		.HighDetail()
		[
			SNew(SBox)
			.Padding(FMargin(4.0f, 0.0f, 4.0f, 4.0f))
			[
				SNew(SInlineEditableTextBlock)
				.ToolTipText_Lambda([InAnimNode](){ return FText::Format(LOCTEXT("TagFormat_Tooltip", "Tag: {0}\nThis node can be referenced elsewhere in this Anim Blueprint using this tag"), FText::FromName(InAnimNode->GetTag())); })

#Loc: <Workspace>/Engine/Source/Editor/AnimationBlueprintEditor/Private/AnimationNodes/SGraphNodeBlendSpaceGraph.cpp:200

Scope (from outer to inner):

file
function     TSharedRef<SWidget> SGraphNodeBlendSpaceGraph::CreateNodeBody

Source code excerpt:

				.Size(FVector2D(100.0f, 100.f))
			]
			.HighDetail()
			[
				SNew(SBlendSpacePreview, CastChecked<UAnimGraphNode_Base>(GraphNode))
				.OnGetBlendSpaceSampleName(FOnGetBlendSpaceSampleName::CreateLambda([this, WeakBlendSpaceNode = TWeakObjectPtr<UAnimGraphNode_BlendSpaceGraphBase>(BlendSpaceNode)](int32 InSampleIndex) -> FName
				{
					if(WeakBlendSpaceNode.Get())
					{

#Loc: <Workspace>/Engine/Source/Editor/AnimationBlueprintEditor/Private/AnimationNodes/SGraphNodeBlendSpacePlayer.cpp:65

Scope (from outer to inner):

file
function     void SGraphNodeBlendSpacePlayer::CreateBelowPinControls

Source code excerpt:

			.Size(FVector2D(100.0f, 100.f))
		]
		.HighDetail()
		[
			SNew(SBlendSpacePreview, CastChecked<UAnimGraphNode_Base>(GraphNode))
		]
	];
}

#Loc: <Workspace>/Engine/Source/Editor/AnimationBlueprintEditor/Private/AnimationNodes/SGraphNodeSequencePlayer.cpp:175

Scope (from outer to inner):

file
function     void SGraphNodeSequencePlayer::CreateBelowPinControls

Source code excerpt:

			.Size(FVector2D(16.0f, 16.f))
		]
		.HighDetail()
		[
			SNew(SSlider)
			.Style(&FAppStyle::Get().GetWidgetStyle<FSliderStyle>("AnimBlueprint.AssetPlayerSlider"))
			.ToolTipText(this, &SGraphNodeSequencePlayer::GetPositionTooltip)
			.Visibility(this, &SGraphNodeSequencePlayer::GetSliderVisibility)
			.Value(this, &SGraphNodeSequencePlayer::GetSequencePositionRatio)

#Loc: <Workspace>/Engine/Source/Editor/BehaviorTreeEditor/Private/SGraphNode_BehaviorTree.cpp:435

Scope: file

Source code excerpt:

												.HeightOverride_Lambda(GetNodeTitlePlaceholderHeight)
											]
											.HighDetail()
											[
												SNew(SHorizontalBox)
												+SHorizontalBox::Slot()
												.AutoWidth()
												.VAlign(VAlign_Center)
												[

#Loc: <Workspace>/Engine/Source/Editor/GraphEditor/Private/KismetNodes/SGraphNodeK2Copy.cpp:160

Scope (from outer to inner):

file
class        class SCopyNodeGraphPin : public SGraphPin
function     void Construct

Source code excerpt:

						ActualPinWidget
					]
					.HighDetail()
					[
						PinContent.ToSharedRef()
					]
			]
		);

#Loc: <Workspace>/Engine/Source/Editor/GraphEditor/Private/SGraphNode.cpp:945

Scope (from outer to inner):

file
function     BEGIN_SLATE_FUNCTION_BUILD_OPTIMIZATION void SGraphNode::UpdateGraphNode

Source code excerpt:

		.BorderBackgroundColor( this, &SGraphNode::GetNodeTitleColor )
	]
	.HighDetail()
	[
		DefaultTitleAreaWidget
	];

	
	if (!SWidget::GetToolTip().IsValid())

#Loc: <Workspace>/Engine/Source/Editor/GraphEditor/Private/SGraphNodeDocumentation.cpp:158

Scope (from outer to inner):

file
function     void SGraphNodeDocumentation::UpdateGraphNode

Source code excerpt:

		.BorderBackgroundColor( this, &SGraphNodeDocumentation::GetNodeTitleColor )
	]
	.HighDetail()
	[
		DefaultTitleAreaWidget
	];

	// Create Documentation Page
	TSharedPtr<SWidget> DocumentationPage = CreateDocumentationPage();

#Loc: <Workspace>/Engine/Source/Editor/GraphEditor/Private/SGraphPin.cpp:357

Scope (from outer to inner):

file
function     void SGraphPin::Construct

Source code excerpt:

					PinWidgetRef
				]
				.HighDetail()
				[
					PinContent.ToSharedRef()
				]
			]
		]
	);