49 lines
1.4 KiB
C++
49 lines
1.4 KiB
C++
// 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;
|
|
};
|