RealtimeStyleTransferRuntime/Source/LyraGame/UI/LyraActivatableWidget.h

49 lines
1.4 KiB
C
Raw Normal View History

2022-05-23 18:41:30 +00:00
// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "CommonUserWidget.h"
#include "GameplayTagContainer.h"
#include "CommonActivatableWidget.h"
#include "LyraActivatableWidget.generated.h"
UENUM(BlueprintType)
enum class ELyraWidgetInputMode : uint8
{
Default,
GameAndMenu,
Game,
Menu
};
// An activatable widget that automatically drives the desired input config when activated
UCLASS(Abstract, Blueprintable)
class ULyraActivatableWidget : public UCommonActivatableWidget
{
GENERATED_BODY()
public:
ULyraActivatableWidget(const FObjectInitializer& ObjectInitializer);
public:
//~UCommonActivatableWidget interface
virtual TOptional<FUIInputConfig> GetDesiredInputConfig() const override;
//~End of UCommonActivatableWidget interface
#if WITH_EDITOR
virtual void ValidateCompiledWidgetTree(const UWidgetTree& BlueprintWidgetTree, class IWidgetCompilerLog& CompileLog) const override;
#endif
protected:
/** The desired input mode to use while this UI is activated, for example do you want key presses to still reach the game/player controller? */
UPROPERTY(EditDefaultsOnly, Category = Input)
ELyraWidgetInputMode InputConfig = ELyraWidgetInputMode::Default;
/** The desired mouse behavior when the game gets input. */
UPROPERTY(EditDefaultsOnly, Category = Input)
EMouseCaptureMode GameMouseCaptureMode = EMouseCaptureMode::CapturePermanently;
};