Touch Interface Designer 2025.2
Create touch interface with a visual editor and manage all mobile inputs like gestures
Loading...
Searching...
No Matches
TouchInterfaceConfigurator.h
Go to the documentation of this file.
1// Copyright 2024 Lost in Game Studio. All Rights Reserved
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "Blueprint/UserWidget.h"
8#include "TouchInterfaceConfigurator.generated.h"
9
14
15DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnVirtualInputSelectedSignature, FName, Name);
16
18UCLASS(DisplayName="Touch Interface Configurator")
19class TOUCHINTERFACE_API UTouchInterfaceConfigurator : public UWidget
20{
21 GENERATED_BODY()
22
23public:
24 UTouchInterfaceConfigurator();
25
26 //Begin UWidget
27 virtual void SynchronizeProperties() override;
28
29protected:
30 virtual TSharedRef<SWidget> RebuildWidget() override;
31
32public:
33#if WITH_EDITOR
34 virtual const FText GetPaletteCategory() override;
35 virtual void OnBeginEditByDesigner() override;
36 virtual void OnEndEditByDesigner() override;
37 virtual void OnDesignerChanged(const FDesignerChangedEventArgs& EventArgs) override;
38#endif
39 //End UWidget
40
41 //Begin UVisual
42 virtual void ReleaseSlateResources(bool bReleaseChildren) override;
43 //End UVisual
44
45 UFUNCTION(Category="Configurator", BlueprintCallable)
46 void SetPreviewEnabled(const bool bEnabled);
47
48 UFUNCTION(Category="Configurator", BlueprintCallable)
49 bool IsPreviewEnabled();
50
51 UFUNCTION(Category="Configurator", BlueprintCallable)
52 void SetPositioningEnabled(const bool bEnablePositioning);
53
54 UFUNCTION(Category="Configurator", BlueprintCallable)
55 void SetResizingEnabled(const bool bEnableResizing);
56
57 //TODO: With slider or input
58 //Make a function to list all virtual input and make button to navigate (or bind on virtual input selected)
59 //Allow dev to adjust order by type, name or define order with name
60
61 //Save touch interface modification in save file
62 UFUNCTION(Category="Configurator|Save", BlueprintCallable)
63 bool SaveConfiguration(const int32 UserIndex, const int32 ConfigIndex);
64
65 //Load touch interface modifications from save file
66 UFUNCTION(Category="Configurator|Save", BlueprintCallable)
67 bool LoadConfiguration(const int32 UserIndex, const int32 ConfigIndex);
68
69 //Get configuration in save file that contain touch interface modification
70 UFUNCTION(Category="Configurator|Load", BlueprintCallable)
71 bool GetConfiguration(const int32 UserIndex, const int32 ConfigIndex, FTouchInterfaceConfiguration& Configuration);
72
73
74 // Reset configuration to origin (virtual control Setup reference)
75 UFUNCTION(Category="Configurator|Utility", BlueprintCallable)
76 void ResetToDefault(const int32 UserIndex, const int32 ConfigIndex);
77
78 // Generate virtual input name array
79 UFUNCTION(Category="Configuration|Utility", BlueprintCallable, BlueprintPure)
80 TArray<FName> GetListOfVirtualInput(const int32 UserIndex, const int32 ConfigIndex);
81
84 UFUNCTION(Category="Configuration|Utility", BlueprintCallable, BlueprintPure)
85 FName GetSelectedVirtualInputName() const;
86
87
88 UFUNCTION(Category="Configurator|Property", BlueprintCallable, BlueprintPure)
89 void GetTouchInterfaceOpacity(float& InactiveOpacity, float& ActiveOpacity);
90
91 UFUNCTION(Category="Configurator|Property", BlueprintCallable)
92 void SetTouchInterfaceOpacity(const float InactiveOpacity, const float ActiveOpacity);
93
94
95 /*UFUNCTION(Category="Configurator|Property", BlueprintCallable)
96 UCurveFloat* GetTouchInterfaceOpacityCurve();
97
98 UFUNCTION(Category="Configurator|Property", BlueprintCallable)
99 void SetTouchInterfaceOpacityCurve(UCurveFloat* Curve);*/
100
101
102 UFUNCTION(Category="Configurator|Property", BlueprintCallable, BlueprintPure)
103 FVector2D GetVirtualInputOffset(const FName InputName);
104
105 UFUNCTION(Category="Configurator|Property", BlueprintCallable)
106 void SetVirtualInputOffset(const FName InputName, const FVector2D NewOffset);
107
108
109 UFUNCTION(Category="Configurator|Property", BlueprintCallable, BlueprintPure)
110 float GetVirtualInputSizeScale(const FName InputName);
111
112 UFUNCTION(Category="Configurator|Property", BlueprintCallable)
113 void SetVirtualInputSizeScale(const FName InputName, float NewSize);
114
115private:
116 UFUNCTION()
117 void HandleOnVirtualControlSelected(FName Name);
118
119public:
123 UPROPERTY(Category="Settings", BlueprintReadWrite, EditAnywhere)
124 uint8 bUseTouchForPositioning:1;
125
129 UPROPERTY(Category="Settings", BlueprintReadWrite, EditAnywhere)
130 uint8 bUseTouchForSizing:1;
131
132 UPROPERTY(Category="Settings", BlueprintReadOnly, EditAnywhere, meta=(ClampMin=0.1f, ClampMax=1.0f))
133 float ResizeSensibility;
134
135 UPROPERTY(Category="Settings|Visual", BlueprintReadOnly, EditAnywhere)
136 uint8 bDrawPositioningBrush:1;
137
138 // Brush used to draw max offset from origin for positioning
139 UPROPERTY(Category="Settings|Visual", BlueprintReadOnly, EditAnywhere, meta=(EditCondition="bDrawPositioningBrush"))
140 FSlateBrush PositioningBrush;
141
142 UPROPERTY(Category="Settings|Visual", BlueprintReadOnly, EditAnywhere)
143 uint8 bDrawOriginalCenter:1;
144
145 UPROPERTY(Category="Settings|Visual", BlueprintReadOnly, EditAnywhere, meta=(EditCondition="bDrawOriginalCenter"))
146 FSlateBrush OriginalCenterBrush;
147
148
149 UPROPERTY(Category="Configurator|Event", BlueprintAssignable)
150 FOnVirtualInputSelectedSignature OnVirtualControlSelected;
151
152 // Virtual Anchor
153 //TODO: Allow player to change virtual input position. Offset from anchor or associate another anchor
154
155protected:
156 TSharedPtr<STouchInterfaceConfigurator> ConfiguratorWidget;
157
158private:
159 FVector2D GeometrySize;
160 float CurrentDPIScale;
161
162 float CurrentActiveOpacity;
163 float CurrentInactiveOpacity;
164
165 TArray<FVirtualControl> CurrentVirtualControls;
166
167 FName CurrentVirtualControlNameSelected;
168
169 FVirtualControl CurrentVirtualControlSelected;
170
171 UPROPERTY()
172 UVirtualControlSetup* CurrentSetup;
173};
DisplayName
Definition DecoratorRotationAnim.h:15
meta
Definition GestureRecognizerComp.h:274
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnVirtualInputSelectedSignature, FName, Name)
Definition STouchInterfaceConfigurator.h:13
Definition TouchInterfaceSave.h:160
Definition VirtualControlSetup.h:465
EditAnywhere
Definition VirtualControlSetup.h:472
Category
Definition VirtualControlSetup.h:472
BlueprintReadOnly
Definition VirtualControlSetup.h:477
Definition TouchInterfaceSave.h:14
Definition VirtualControlSetup.h:165