Dynamically Configuring Tooltip Widgets Using Metadata
Dynamically Configuring Tooltip Widgets Using Metadata
Use metadata to display various content types with a single tooltip widget.
Registering Custom Widget Classes
Change the widget class in plugin settings.
Dynamic Registration
Metadata Configuration
Metadata-Based Styling in Tooltip Widgets
Code Examples
Setting Metadata:
void UInventorySlot::SetItem(UItemData* Item)
{
FLayeredToolTipTriggerData TriggerData;
TriggerData.TooltipData.Add("Type", "Item");
TriggerData.TooltipData.Add("ItemId", Item->GetItemId());
TriggerData.TooltipData.Add("Rarity", Item->GetRarityString());
TriggerData.TriggerPayload = Item;
ULayeredTooltipFunctionLibrary::RegisterWidgetAsTooltipTrigger(this, TriggerData);
}
Type-Based Processing in Tooltip Widgets:
void UMyTooltipWidget::InitializeLayeredTooltip_Implementation(const FLayeredToolTipTriggerData& TriggerData)
{
FString Type = TriggerData.TooltipData.FindRef("Type");
if (Type == "Item")
{
ConfigureItemLayout(TriggerData);
}
else if (Type == "Skill")
{
ConfigureSkillLayout(TriggerData);
}
}
Conditional Styling:
void UMyTooltipWidget::ConfigureItemLayout(const FLayeredToolTipTriggerData& TriggerData)
{
// Rarity-based coloring
FString Rarity = TriggerData.TooltipData.FindRef("Rarity");
FLinearColor Color = GetRarityColor(Rarity);
BorderImage->SetColorAndOpacity(Color);
// Level-based additional information
FString Level = TriggerData.TooltipData.FindRef("Level");
if (FCString::Atoi(*Level) >= 5)
{
AdvancedPanel->SetVisibility(ESlateVisibility::Visible);
}
}