// 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 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; };