UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UserInterfaceSettings.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
8#include "Curves/CurveFloat.h"
10#include "Widgets/SWidget.h"
11
12#include "UserInterfaceSettings.generated.h"
13
15
17UENUM()
29
31UENUM()
47
49UENUM()
51{
53 Standard UMETA(DisplayName = "72 DPI (Default)"),
55 Unreal UMETA(DisplayName = "96 DPI (Unreal Engine)"),
56
58};
59
60class UWidget;
62
66USTRUCT()
68{
70
71
102 UPROPERTY(EditAnywhere, Category="Hardware Cursor")
103 FName CursorPath;
104
109 UPROPERTY(EditAnywhere, Category="Hardware Cursor", meta=( ClampMin=0, ClampMax=1 ))
110 FVector2D HotSpot = FVector2D::ZeroVector;
111};
112
116UCLASS(config=Engine, defaultconfig, meta=(DisplayName="User Interface"), MinimalAPI)
118{
120
121public:
122
126 UPROPERTY(config, EditAnywhere, Category = "Focus")
127 ERenderFocusRule RenderFocusRule;
128
129 UPROPERTY(config, EditAnywhere, Category = "Hardware Cursors")
131
132 UPROPERTY(config, EditAnywhere, Category = "Software Cursors", meta = ( MetaClass = "/Script/UMG.UserWidget" ))
133 TMap<TEnumAsByte<EMouseCursor::Type>, FSoftClassPath> SoftwareCursors;
134
135 // DEPRECATED 4.16
136 UPROPERTY(config)
137 FSoftClassPath DefaultCursor_DEPRECATED;
138
139 // DEPRECATED 4.16
140 UPROPERTY(config)
141 FSoftClassPath TextEditBeamCursor_DEPRECATED;
142
143 // DEPRECATED 4.16
144 UPROPERTY(config)
145 FSoftClassPath CrosshairsCursor_DEPRECATED;
146
147 // DEPRECATED 4.16
148 UPROPERTY(config)
149 FSoftClassPath HandCursor_DEPRECATED;
150
151 // DEPRECATED 4.16
152 UPROPERTY(config)
153 FSoftClassPath GrabHandCursor_DEPRECATED;
154
155 // DEPRECATED 4.16
156 UPROPERTY(config)
157 FSoftClassPath GrabHandClosedCursor_DEPRECATED;
158
159 // DEPRECATED 4.16
160 UPROPERTY(config)
161 FSoftClassPath SlashedCircleCursor_DEPRECATED;
162
167 UPROPERTY(config, EditAnywhere, Category="DPI Scaling")
168 float ApplicationScale;
169
173 UPROPERTY(config, EditAnywhere, Category="DPI Scaling", meta=( DisplayName="DPI Scale Rule" ))
174 EUIScalingRule UIScaleRule;
175
179 UPROPERTY(config, EditAnywhere, Category="DPI Scaling", meta=( MetaClass="/Script/Engine.DPICustomScalingRule" ))
180 FSoftClassPath CustomScalingRuleClass;
181
185 UPROPERTY(config, EditAnywhere, Category="DPI Scaling", meta=(
186 DisplayName="DPI Curve",
187 XAxisName="Resolution",
188 YAxisName="Scale"))
190
195 UPROPERTY(config, EditAnywhere, Category="DPI Scaling", meta=( DisplayName="Allow High DPI in Game Mode" ))
196 bool bAllowHighDPIInGameMode;
197
199 UPROPERTY(config, EditAnywhere, Category="DPI Scaling|Scale To Fit Rule", meta=( DisplayName="Design Screen Size", ClampMin="1", UIMin="1" ))
200 FIntPoint DesignScreenSize = FIntPoint(1920, 1080);
201
205 UPROPERTY(config, EditAnywhere, Category = "Widgets")
206 bool bLoadWidgetsOnDedicatedServer;
207
213 UPROPERTY(config, EditAnywhere, Category = "Widgets")
214 bool bAuthorizeAutomaticWidgetVariableCreation;
215
216public:
217
219
221 ENGINE_API void ForceLoadResources(bool bForceLoadEverything = false) const;
222
225
226#if WITH_EDITOR
232
235
236 ENGINE_API virtual void PostEditChangeProperty(struct FPropertyChangedEvent& PropertyChangedEvent) override;
237#endif
238
239private:
240 float CalculateScale(FIntPoint Size, bool& bError) const;
241
242#if WITH_EDITOR
244 static constexpr EFontDPI ConvertToEFontDPI(uint32 inFontDPI);
247#endif
248
249#if WITH_EDITORONLY_DATA
253 UPROPERTY(config, EditAnywhere, Category = "UMG Fonts", meta = (DisplayName = "Font Resolution", EditCondition = "bUseCustomFontDPI", EditConditionHides, ClampMin = "1", ClampMax = "1000"))
255
259 UPROPERTY(config, EditAnywhere, Category = "UMG Fonts", meta = (DisplayName = "Font Resolution", EditCondition = "!bUseCustomFontDPI", EditConditionHides))
261
265 UPROPERTY(config, EditAnywhere, Category = "UMG Fonts", meta = (DisplayName = "Use Custom DPI"))
267#endif
268
269 UFUNCTION()
270 static bool ShouldDisplayDistanceFieldFontSettings();
271
272public:
273 UPROPERTY(config, EditAnywhere, Category = "UMG Fonts", meta = (EditCondition = "ShouldDisplayDistanceFieldFontSettings()", EditConditionHides))
275
276private:
277 // This is just holding on to references to prevent GC in the Editor (tied to the lifetime of this object)
279 mutable TArray<TObjectPtr<UObject>> CursorClasses;
280
282 mutable TObjectPtr<UClass> CustomScalingRuleClassInstance;
283
285 mutable TObjectPtr<UDPICustomScalingRule> CustomScalingRule;
286
287 mutable TOptional<FIntPoint> LastViewportSize;
288 mutable float CalculatedScale;
289};
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
EFontDPI
Definition UserInterfaceSettings.h:51
EUIScalingRule
Definition UserInterfaceSettings.h:33
ERenderFocusRule
Definition UserInterfaceSettings.h:19
uint32 Size
Definition VulkanMemory.cpp:4034
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Engine.Build.cs:7
Definition NameTypes.h:617
Definition Text.h:385
Definition Array.h:670
Definition EnumAsByte.h:22
Definition UnrealString.h.inl:34
Definition Class.h:3793
Definition DPICustomScalingRule.h:16
virtual ENGINE_API float GetDPIScaleBasedOnSize(FIntPoint Size) const
Definition DPICustomScalingRule.cpp:9
Definition DeveloperSettings.h:24
Definition UMG.Build.cs:6
Definition Object.h:95
virtual COREUOBJECT_API void PostInitProperties()
Definition UObjectGlobals.cpp:3961
Definition UserInterfaceSettings.h:118
Definition Widget.h:217
Definition ICursor.h:16
@ false
Definition radaudio_common.h:23
Definition UserInterfaceSettings.h:68
Definition UnrealType.h:6865
Definition CurveFloat.h:13
Definition SoftObjectPath.h:539
Definition ObjectPtr.h:488
Definition Optional.h:131
Definition IntPoint.h:25