User Interface Overview¶
Widget framework for inventory interfaces with comprehensive widget hierarchies and theming.
Core Widget Interfaces¶
Base Widgets¶
IMounteaAdvancedBaseInventoryWidgetInterface
- Parent-child relationshipsIMounteaInventoryGenericWidgetInterface
- Command processing, themingIMounteaInventorySystemBaseWidgetInterface
- Main system wrapperUMounteaAdvancedInventoryBaseWidget
- Base implementation class
Specialized Interfaces¶
IMounteaAdvancedInventoryWidgetInterface
- Main inventory displayIMounteaAdvancedInventoryUIInterface
- UI management operations
Widget Hierarchy¶
UMounteaAdvancedInventoryBaseWidget (Base Class)
├── System Wrapper (IMounteaInventorySystemBaseWidgetInterface)
├── Inventory Widget (IMounteaAdvancedInventoryWidgetInterface)
├── Categories Wrapper (IMounteaAdvancedInventoryCategoriesWrapperWidgetInterface)
│ └── Category Widget (IMounteaAdvancedInventoryCategoryWidgetInterface)
├── Items Container (IMounteaAdvancedInventoryItemSlotsWrapperWidgetInterface)
│ ├── Item Slot (IMounteaAdvancedInventoryItemSlotWidgetInterface)
│ └── Item Widget (IMounteaAdvancedInventoryItemWidgetInterface)
└── Grid System (IMounteaAdvancedInventoryItemsGridWidgetInterface)
Core Implementation¶
Base Widget Setup¶
class UMyInventoryWidget : public UMounteaAdvancedInventoryBaseWidget
{
virtual void ProcessInventoryWidgetCommand_Implementation(const FString& Command, UObject* Payload) override;
virtual void ApplyTheme_Implementation() override;
virtual void RefreshWidget_Implementation() override;
};
Command System¶
void ProcessInventoryWidgetCommand_Implementation(const FString& Command, UObject* Payload)
{
if (Command == "ItemAdded")
{
HandleItemAdded(Cast<FInventoryItem>(Payload));
}
else if (Command == "CategorySelected")
{
HandleCategorySelected(Payload);
}
}
Widget Commands¶
Standard UI operations:
CreateWrapper
/RemoveWrapper
OpenInventoryWidget
/CloseInventoryWidget
ItemAdded
/ItemRemoved
/ItemModified
CategorySelected
/ItemSelected
ShowInventoryNotification
Theme Integration¶
Applying Themes¶
// Apply theme to any widget
UMounteaInventoryUIStatics::ApplyTheme(MyWidget);
// Get theme configuration
UMounteaAdvancedInventoryThemeConfig* Theme = UMounteaInventoryUIStatics::GetThemeConfig();
Theme Levels & States¶
- Levels: Primary, Secondary, Tertiary
- States: Normal, Hovered, Active, Disabled
- Types: Text, Background, Default
Related Systems¶
- Inventory UI - Main interface components
- Grid System - Spatial item layouts
- Item Widgets - Individual item presentation
- Item Preview - 3D visualization
- Slate Elements - Custom controls