Added phone app icon materials

This commit is contained in:
2026-06-02 01:06:21 +03:00
parent ff62b06802
commit 00eaaff97a
13 changed files with 41 additions and 18 deletions
@@ -6,20 +6,16 @@
#include "Components/Image.h"
#include "CommonTextBlock.h"
void UPhoneAppIconWidget::Init(const FText& InName, UTexture2D* InIcon, TSubclassOf<UPhoneAppWidget> InAppClass)
void UPhoneAppIconWidget::Init(const FText& InName, UTexture2D* InIcon, UMaterialInterface* InBgMaterial, TSubclassOf<UPhoneAppWidget> InAppClass)
{
AppClass = InAppClass;
if (NameText)
{
NameText->SetText(InName);
}
NameText->SetText(InName);
if (IconImage)
{
IconImage->SetBrushFromTexture(InIcon);
IconImage->SetVisibility(InIcon ? ESlateVisibility::HitTestInvisible : ESlateVisibility::Collapsed);
}
IconImage->SetBrushFromTexture(InIcon);
IconImage->SetVisibility(InIcon ? ESlateVisibility::HitTestInvisible : ESlateVisibility::Collapsed);
BackgroundImage->SetBrushFromMaterial(InBgMaterial);
IconButton->OnClicked.AddUniqueDynamic(this, &UPhoneAppIconWidget::HandleClicked);
}
@@ -20,19 +20,22 @@ class NAKEDDESIRE_API UPhoneAppIconWidget : public UCommonUserWidget
GENERATED_BODY()
public:
void Init(const FText& InName, UTexture2D* InIcon, TSubclassOf<UPhoneAppWidget> InAppClass);
void Init(const FText& InName, UTexture2D* InIcon, UMaterialInterface* InBgMaterial, TSubclassOf<UPhoneAppWidget> InAppClass);
DECLARE_DELEGATE_OneParam(FOnAppIconClicked, TSubclassOf<UPhoneAppWidget>);
FOnAppIconClicked OnClicked;
private:
UPROPERTY(meta = (BindWidget))
TObjectPtr<UImage> BackgroundImage;
UPROPERTY(meta = (BindWidget))
TObjectPtr<UButton> IconButton;
UPROPERTY(meta = (BindWidgetOptional))
UPROPERTY(meta = (BindWidget))
TObjectPtr<UImage> IconImage;
UPROPERTY(meta = (BindWidgetOptional))
UPROPERTY(meta = (BindWidget))
TObjectPtr<UCommonTextBlock> NameText;
UPROPERTY()
@@ -24,7 +24,7 @@ void UPhoneHomeScreenWidget::NativeConstruct()
}
UPhoneAppIconWidget* Icon = CreateWidget<UPhoneAppIconWidget>(this, AppIconWidgetClass);
Icon->Init(Entry.AppName, Entry.AppIcon, Entry.AppClass);
Icon->Init(Entry.AppName, Entry.AppIcon, Entry.BackgroundMaterial, Entry.AppClass);
Icon->OnClicked.BindUObject(this, &UPhoneHomeScreenWidget::HandleAppIconClicked);
AppContainer->AddChild(Icon);
}
@@ -25,6 +25,9 @@ struct FPhoneAppEntry
UPROPERTY(EditDefaultsOnly, Category = "Phone App")
TSubclassOf<UPhoneAppWidget> AppClass;
UPROPERTY(EditDefaultsOnly, Category = "Phone App")
TObjectPtr<UMaterialInterface> BackgroundMaterial;
};
// The phone home screen — the base of the app stack. Builds a grid of app icons from AppEntries and