Initial code for radial rendering
This commit is contained in:
@@ -6,8 +6,11 @@
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "Components/Widget.h"
|
||||
#include "RadialMenu.generated.h"
|
||||
|
||||
class SRadialMenu;
|
||||
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
struct FRadialMenuItem
|
||||
@@ -21,7 +24,7 @@ struct FRadialMenuItem
|
||||
};
|
||||
|
||||
UCLASS(BlueprintType)
|
||||
class URadialMenu : public UObject
|
||||
class URadialMenuLayout : public UObject
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -36,7 +39,7 @@ public:
|
||||
int32 RightNum() const { return NumRight; }
|
||||
|
||||
UFUNCTION(BlueprintCallable)
|
||||
const TArray<FRadialMenuItem> GetItems() const { return Items; }
|
||||
const TArray<FRadialMenuItem> &GetItems() const { return Items; }
|
||||
|
||||
|
||||
private:
|
||||
@@ -75,3 +78,27 @@ private:
|
||||
int32 NumRight = 0;
|
||||
};
|
||||
|
||||
|
||||
UCLASS(BlueprintType, Blueprintable)
|
||||
class URadialMenuWidget : public UWidget
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
UFUNCTION(BlueprintCallable)
|
||||
void Configure(int32 NItems, float ItemHeight, float InnerRadius, float MinSpoke, float Spread);
|
||||
|
||||
UFUNCTION(BlueprintCallable)
|
||||
URadialMenuLayout* GetLayout() const { return Layout; }
|
||||
|
||||
protected:
|
||||
virtual TSharedRef<SWidget> RebuildWidget() override;
|
||||
virtual void ReleaseSlateResources(bool bReleaseChildren) override;
|
||||
|
||||
private:
|
||||
UPROPERTY()
|
||||
TObjectPtr<URadialMenuLayout> Layout;
|
||||
|
||||
TSharedPtr<SRadialMenu> MySlateWidget;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user