Touch Interface Designer 2025.2
Create touch interface with a visual editor and manage all mobile inputs like gestures
Loading...
Searching...
No Matches
TouchInterfaceSubsystem.h
Go to the documentation of this file.
1// Copyright 2022 Lost in Game Studio. All Rights Reserved.
2
3#pragma once
4
5#include "Subsystems/LocalPlayerSubsystem.h"
7#include "Runtime/Launch/Resources/Version.h"
8#include "TouchInterfaceSubsystem.generated.h"
9
10struct FLayoutSaveData;
17class UWorld;
18class ULocalPlayer;
19
20DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnStateChangedSignature, bool, Value);
21DECLARE_DYNAMIC_MULTICAST_DELEGATE(FOnSubsystemNotification);
22
23USTRUCT(BlueprintType)
25{
26 GENERATED_BODY()
27
28 UPROPERTY(Category="Touch Interface", EditAnywhere, BlueprintReadWrite)
30
31 UPROPERTY(Category="Touch Interface", EditAnywhere, BlueprintReadWrite)
33
34 UPROPERTY(Category="Touch Interface", EditAnywhere, BlueprintReadWrite)
36
37 UPROPERTY(Category="Touch Interface", EditAnywhere, BlueprintReadWrite)
39
40 UPROPERTY(Category="Touch Interface", EditAnywhere, BlueprintReadWrite)
41 int32 UserIndex;
42
43 UPROPERTY(Category="Touch Interface", EditAnywhere, BlueprintReadWrite)
45
47 IsVisible(true),
48 bBlockInput(false),
49 bBlockRecognizers(false),
50 bLoadConfiguration(false),
51 UserIndex(0),
53 {
54
55 }
56};
57
58UENUM(BlueprintType)
65
68UCLASS()
69class TOUCHINTERFACE_API UTouchInterfaceSubsystem : public ULocalPlayerSubsystem
70{
71 GENERATED_BODY()
72
73public:
75
76 virtual bool ShouldCreateSubsystem(UObject* Outer) const override;
77
78 virtual void Initialize(FSubsystemCollectionBase& Collection) override;
79 virtual void Deinitialize() override;
80
81 // Register this component to receive input
82 UFUNCTION(Category="Touch Interface", BlueprintCallable)
84
87 UFUNCTION(Category="Touch Interface", BlueprintCallable)
89
90private:
91 bool ShouldDisplayTouchInterface();
92
93public:
94 UVirtualInputEvent* CreateAndRegisterVirtualInputEvent(TSubclassOf<UVirtualInputEvent> Class);
95
96 UFUNCTION(Category="Touch Interface", BlueprintCallable, meta=(AutoCreateRefTerm = "State", DeprecatedFunction, DepreciationMessage="Use Add Touch Interface instead"))
97 virtual void AddToPlayerScreen(UVirtualControlSetup* NewTouchInterface, const FTouchInterfaceInit& State);
98
104 UFUNCTION(Category="Touch Interface", BlueprintCallable)
105 virtual UTouchInterfaceLayout* AddTouchInterface(UTouchInterfaceLayout* Layout = nullptr/*, bool bDeferredConstruction*/, const bool bLoadSave = false, const int32 SnapshotID = 0);
106
107 //TODO: Allow dev to add touch interface to screen later (construction, then add to screen later).
108
109 // Add new touch interface from virtual control setup
110 //UFUNCTION(Category="Touch Interface", BlueprintCallable)
111 //virtual void AddTouchInterface(UVirtualControlSetup* TouchInterface);
112
113 // Add new touch interface from configuration saved in disk
114 //UFUNCTION(Category="Touch Interface", BlueprintCallable)
115 //virtual void AddTouchInterfaceFromSave(int32 UserIndex, int32 ConfigIndex);
116
117 // Remove touch interface from player screen
118 UFUNCTION(Category="Touch Interface", BlueprintCallable, meta=(DeprecatedFunction, DeprecationMessage="Use Remove Touch Interface instead"))
119 virtual void RemoveFromPlayerScreen();
120
121 UFUNCTION(Category="Touch Interface", BlueprintCallable)
122 virtual void RemoveTouchInterface();
123
127
131
132 UFUNCTION(Category="Touch Interface", BlueprintCallable, BlueprintPure)
133 UTouchInterfaceLayout* GetLayoutInstance() const { return LayoutInstance.Get(); }
134
135 UFUNCTION(Category="Touch Interface", BlueprintCallable)
136 const FGeometry& GetTouchInterfaceGeometry() const;
137
138 //VISIBILITY
139
140 // Display touch interface
141 UFUNCTION(Category="Touch Interface|Visibility", BlueprintCallable, meta=(DeprecatedFunction, DeprecationMessage="Use Show Touch Interface instead"))
142 virtual void ShowWidget(bool bEnableInput, bool bEnableGesture);
143
144 //Set touch interface widget to visible
145 UFUNCTION(Category="Touch Interface|Visibility", BlueprintCallable)
146 virtual void ShowTouchInterface();
147
148 //Todo: Replace by bKeepGestureEnabled ?
150 UFUNCTION(Category="Touch Interface|Visibility", BlueprintCallable, meta=(DeprecatedFunction, DeprecationMessage="Use Hide Touch Interface instead"))
151 virtual void HideWidget(bool bDisableGesture);
152
153 //TODO: Allow to choose if gesture continue to work and only layout is hidden? Use hide function in layout object
154
155 //Set touch interface widget to hidden (no interaction)
156 UFUNCTION(Category="Touch Interface|Visibility", BlueprintCallable)
157 virtual void HideTouchInterface();
158
159 UFUNCTION(Category="Touch Interface|Visibility", BlueprintCallable)
160 virtual void ShowVirtualControl(const FName Name, bool bIncludeChild);
161
162 UFUNCTION(Category="Touch Interface|Visibility", BlueprintCallable)
163 virtual void HideVirtualControl(const FName Name, bool bIncludeChild);
164
165 // Displays all virtual inputs in touch interface
166 UFUNCTION(Category="Touch Interface|Visibility", BlueprintCallable)
167 virtual void ShowAllVirtualInput();
168
169 // Hide all virtual inputs in touch interface
170 UFUNCTION(Category="Touch Interface|Visibility", BlueprintCallable)
171 virtual void HideAllVirtualInput();
172
173 // Displays all virtual inputs except the named one
174 UFUNCTION(Category="Touch Interface|Visibility", BlueprintCallable)
175 virtual void ShowAllExcept(const FName Name);
176
177 // Hide all virtual inputs except the named one
178 UFUNCTION(Category="Touch Interface|Visibility", BlueprintCallable)
179 virtual void HideAllExcept(const FName Name);
180
181 // Displays all virtual inputs except the named one
182 UFUNCTION(Category="Touch Interface|Visibility", BlueprintCallable)
183 virtual void ShowAllExceptNamedOnes(const TArray<FName> Names);
184
185 // Hide all virtual inputs except the named one
186 UFUNCTION(Category="Touch Interface|Visibility", BlueprintCallable)
187 virtual void HideAllExceptNamedOnes(const TArray<FName> Names);
188
189 // Get opacity value of virtual input
190 UFUNCTION(Category="Touch Interface|Visibility", BlueprintCallable)
191 float GetVirtualInputOpacity(const FName InputName);
192
193 // Set opacity value of virtual input
194 UFUNCTION(Category="Touch Interface|Visibility", BlueprintCallable)
195 void SetVirtualInputOpacity(const FName InputName, const float NewOpacity);
196
197
198 //DRAWER
199
200 // Add drawer widget to player screen
201 UFUNCTION(Category="Touch Interface|Drawer", BlueprintCallable)
202 virtual UVirtualShapeDrawer* AddDrawer(TSubclassOf<UVirtualShapeDrawer> Drawer, int32 ZOrder = 1);
203
204 // Get instance of widget added to player screen
205 UFUNCTION(Category="Touch Interface|Drawer", BlueprintCallable, BlueprintPure)
206 UVirtualShapeDrawer* GetDrawerInstance() const;
207
208 // Display drawer widget
209 UFUNCTION(Category="Touch Interface|Drawer", BlueprintCallable)
210 virtual void ShowDrawer();
211
212 // Hide drawer widget
213 UFUNCTION(Category="Touch Interface|Drawer", BlueprintCallable)
214 virtual void HideDrawer();
215
216 // Remove drawer widget from player screen
217 UFUNCTION(Category="Touch Interface|Drawer", BlueprintCallable)
218 virtual void RemoveDrawer();
219
220
221 //INPUT
222
223 // Enable input in touch interface
224 UFUNCTION(Category="Touch Interface|Input", BlueprintCallable)
225 virtual void EnableInput();
226
227 // Disable input in touch interface (no interaction)
228 UFUNCTION(Category="Touch Interface|Input", BlueprintCallable)
229 virtual void DisableInput();
230
231 // Enable virtual input
232 UFUNCTION(Category="Touch Interface|Input", BlueprintCallable, meta=(DeprecatedFunction))
233 virtual void EnableVirtualInput(const FName InputName);
234
235 // Disable virtual input (no interaction)
236 UFUNCTION(Category="Touch Interface|Input", BlueprintCallable)
237 virtual void DisableVirtualInput(const FName InputName);
238
239 // Enable gesture in touch interface
240 UFUNCTION(Category="Touch Interface|Input", BlueprintCallable)
241 virtual void EnableGesture();
242
243 // Disable gesture in touch interface (no interaction)
244 UFUNCTION(Category="Touch Interface|Input", BlueprintCallable)
245 virtual void DisableGesture();
246
250 UFUNCTION(Category="Touch Interface|Input", BlueprintCallable)
251 virtual void TryRecognizeShape();
252
259 UFUNCTION(Category="Touch Interface|Input", BlueprintCallable)
260 bool SetInputAction(const FName ControlName, UInputAction* InputAction);
261
262
263 //DATA
264
265 // Get virtual control data by ref
266 UFUNCTION(Category="Touch Interface|Data", BlueprintCallable)
267 virtual bool GetVirtualControlDataByRef(const FName ControlName, FVirtualControl& Data);
268
269 // Get a reference of virtual control data
270 UFUNCTION(Category="Touch Interface|Data", BlueprintCallable)
271 virtual FVirtualControl& GetVirtualControlDataRef(const FName ControlName);
272
273 // Get a copy of virtual control data
274 UFUNCTION(Category="Touch Interface|Data", BlueprintCallable)
275 virtual bool GetVirtualControlData(const FName ControlName, FVirtualControl& Data);
276
281 UFUNCTION(Category="Touch Interface|Data", BlueprintCallable)
282 virtual void AddVirtualInput(class UVirtualInput* VirtualInput, FVector2D LandscapePosition, FVector2D PortraitPosition);
283
284 UFUNCTION(Category="Touch Interface|Data", BlueprintCallable)
285 virtual void RemoveVirtualInput(class UVirtualInput* VirtualInput);
286
287 UFUNCTION(Category="Touch Interface|Data", BlueprintCallable)
288 virtual void ResetToDefault();
289
294 UFUNCTION(Category ="Touch Interface|Data", BlueprintCallable, meta=(DeterminesOutputType = "Class", DeprecatedFunction))
295 ULCInputModifier* GetVirtualInputModifierByClass(const FName ControlName, TSubclassOf<ULCInputModifier> Class);
296
300 UFUNCTION(Category="Touch Interface|Data", BlueprintCallable, meta=(DeterminesOutputType = "Class"))
301 UVirtualInputEvent* GetVirtualInputEventByClass(const FName ControlName, TSubclassOf<UVirtualInputEvent> Class);
302
305 //UFUNCTION(Category="Touch Interface|Data", Blueprintable, meta=(DeterminesOutputType = "Class"))
306 //UVirtualInputEvent* AddVirtualInputEvent(const FName ControlName, TSubclassOf<UVirtualInputEvent> Class);
307
308 // Remove the virtual input instance
309 //UFUNCTION(Category="Touch Interface|Data", Blueprintable)
310 //bool RemoveVirtualInputEvent(const FName ControlName, UVirtualInputEvent* VirtualInputEventToRemove);
311
312 //TODO: Add virtual input event instance by class
313 //TODO: Remove virtual input event instance by class
314
315 // VISUAL
316
317 UFUNCTION(Category="Touch Interface|Visual", BlueprintCallable)
318 virtual void SetVirtualControlAppearance(const FName ControlName, TArray<FVisualLayer> Layers);
319
320 UFUNCTION(Category="Touch Interface|Visual", BlueprintCallable, BlueprintPure)
321 virtual void GetVirtualControlLayer(const FName ControlName, const FName LayerName, FVisualLayer& OutLayer);
322
323 //TODO: Ref BeginVisualModifications(const FName VirtualInputName)
324 //TODO: EndVisualModification(TArray<FVisualLayer> Layers)
325
326 //TODO: Get Visual Layer by Ref
327 //virtual FVisualLayer& GetVirtualInputLayer(const FName VirtualInputName, const FName LayerName, bool& Return);
328
329 UFUNCTION(Category="Touch Interface|Visual", BlueprintCallable)
330 virtual void SetVirtualControlLayer(const FName ControlName, const FVisualLayer& Layer);
331
332 UFUNCTION(Category="Touch Interface|Visual", BlueprintCallable)
333 virtual FName AddNewLayer(const FName ControlName, const FName LayerName, FVisualLayer Layer);
334
335 UFUNCTION(Category="Touch Interface|Visual", BlueprintCallable, meta=(ReturnDisplayName="Layer Name"))
336 virtual FName InsertNewLayer(const FName ControlName, const FName LayerName, FVisualLayer Layer, int32 Index);
337
338 UFUNCTION(Category="Touch Interface|Visual", BlueprintCallable)
339 virtual void RemoveLayer(const FName ControlName, const FName LayerName);
340
341 UFUNCTION(Category="Touch Interface|Visual", BlueprintCallable)
342 virtual void RemoveLayerAt(const FName ControlName, const int32 Index);
343
351 UFUNCTION(Category="Touch Interface|Visual", BlueprintCallable)
352 virtual bool GetDynamicMaterialInstanceFromLayer(const FName ControlName, const FName LayerName, UMaterialInstanceDynamic* &DMI);
353
354
355 //SIZE & POSITION
356
361 //void BeginModifications(const FName VirtualAnchorName);
362
363 //void BeginVirtualInputModifications(const FName VirtualAnchorName, const FName VirtualInputName);
364
365 //Should be called after BeginModification()
366 //void EndModification();
367
368 //virtual void SetVirtualInputSize(const FName VirtualInputName, const FVector2D Size);
369
370 //virtual void SetVirtualInputSizeScale(const FName VirtualInputName, float SizeScale);
371
376 UFUNCTION(Category="Touch Interface|Size and Position", BlueprintCallable)
377 virtual void ChangeButtonSize(const FName ControlName, const FVector2D NewVisualSize, const FVector2D NewInteractionSize);
378
383 UFUNCTION(Category="Touch Interface|Size and Position", BlueprintCallable)
384 virtual void ChangeJoystickSize(const FName ControlName, const FVector2D NewVisualSize, const FVector2D NewThumbSize, const FVector2D NewInteractionSize);
385
389 UFUNCTION(Category="Touch Interface|Size and Position", BlueprintCallable)
390 virtual void ChangeTouchRegionSize(const FName ControlName, const FVector2D NewInteractionSize);
391
396 UFUNCTION(Category="Touch Interface|Size and Position", BlueprintCallable)
397 virtual bool ChangePosition(const FName ControlName, const FVector2D NewCenter, const bool LandscapePosition = true);
398
399
400 // UTILITIES
401
403 UFUNCTION(Category="Touch Interface|Utility", BlueprintCallable)
404 bool TouchInterfaceExist() const;
405
406 UFUNCTION(Category="Touch Interface|Utility", BlueprintCallable)
407 EControlType GetTypeOfVirtualControl(const FName ControlName) const;
408
409 UFUNCTION(Category="Touch Interface|Utility", BlueprintCallable)
410 virtual bool ContainName(const FName ControlName);
411
412 UFUNCTION(Category="Touch Interface|Utility", BlueprintCallable)
413 virtual bool GetAllControlsName(TArray<FName>& Names);
414
415 UFUNCTION(Category="Touch Interface|Utility", BlueprintCallable)
416 virtual bool GetLayerNames(const FName ControlName, TArray<FName>& Names);
417
419 UFUNCTION(Category="Touch Interface|Utility", BlueprintCallable)
420 bool IsInterfaceActive() const;
421
423 UFUNCTION(Category="Touch Interface|Utility", BlueprintCallable)
424 bool IsVisible() const;
425
426 UFUNCTION(Category="Touch Interface|Utility", BlueprintCallable)
427 void SetScaleMultiplier(const float NewScaleMultiplier);
428
433 UFUNCTION(Category="Touch Interface|Utility", BlueprintCallable, BlueprintPure, meta=(CompactNodeTitle="To Normalized"))
434 FVector2D LocalToNormalized(const FVector2D LocalPosition) const;
435
440 UFUNCTION(Category="Touch Interface|Utility", BlueprintCallable, BlueprintPure, meta=(CompactNodeTitle="To Local"))
441 FVector2D NormalizedToLocal(const FVector2D NormalizedPosition) const;
442
447 UFUNCTION(Category="Touch Interface|Utility", BlueprintCallable, BlueprintPure, meta=(CompactNodeTitle="Absolute To Local"))
448 FVector2D AbsoluteToLocal(const FVector2D AbsolutePosition) const;
449
454 UFUNCTION(Category="Touch Interface|Utility", BlueprintCallable, BlueprintPure, meta=(CompactNodeTitle="Local To Absolute"))
455 FVector2D LocalToAbsolute(const FVector2D LocalPosition) const;
456
457
458 // SAVE
459
463 UFUNCTION(Category="Touch Interface|Save and Load", BlueprintCallable, BlueprintPure)
464 virtual bool CanSave(const int32 SnapshotId, EFailReason& FailReason);
465
468 UFUNCTION(Category="Touch Interface|Save and Load", BlueprintCallable, BlueprintPure)
469 virtual bool TouchInterfaceSaveFileExist();
470
474 UFUNCTION(Category="Touch Interface|Save and Load", BlueprintCallable, BlueprintPure)
475 virtual bool TouchInterfaceConfigurationExist(const int32 ConfigIndex);
476
479 UFUNCTION(Category="Touch Interface|Save and Load", BlueprintCallable)
480 virtual bool ConvertSaveDataByConfigIndex(const int32 UserIndex, const int32 ConfigIndex);
481
485 UFUNCTION(Category="Touch Interface|Save and Load", BlueprintCallable)
486 virtual bool ConvertSaveData(const int32 UserIndex, UVirtualControlSetup* VirtualControlSetup, UTouchInterfaceLayout* TouchInterfaceLayout);
487
492 UFUNCTION(Category="Touch Interface|Save and Load", BlueprintCallable)
493 virtual bool SaveConfigurationFromCurrentSetup(const int32 UserIndex, const int32 ConfigIndex);
494
495 UFUNCTION(Category="Touch Interface|Save and Load", BlueprintCallable)
496 virtual bool SaveConfigurationWithSetup(const int32 UserIndex, const int32 ConfigIndex, UVirtualControlSetup* Setup);
497
504 UFUNCTION(Category="Touch Interface|Save and Load", BlueprintCallable)
505 virtual bool Save(const int32 SnapshotID, UTouchInterfaceLayout* LayoutReference);
506
511 UFUNCTION(Category="Touch Interface|Save and Load", BlueprintCallable)
512 virtual bool LoadConfiguration(const int32 UserIndex, const int32 ConfigIndex);
513
517 UFUNCTION(Category="Touch Interface|Save and Load", BlueprintCallable)
518 virtual bool ApplySnapshot(const int32 SnapshotID);
519
521 UFUNCTION(Category="Touch Interface|Save and Load", BlueprintCallable, BlueprintPure)
522 virtual bool GetSnapshot(const int32 SnapshotID, FLayoutSaveData& Snapshot);
523
524 UFUNCTION(Category="Touch Interface|Save and Load", BlueprintCallable, BlueprintPure)
525 virtual bool GetConfiguration(const int32 UserIndex, const int32 ConfigIndex, FTouchInterfaceConfiguration& Configuration);
526
528 UFUNCTION(Category="Touch Interface|Save and Load", BlueprintCallable)
529 virtual bool DeleteConfiguration(const int32 UserIndex, const int32 ConfigIndex);
530
532 UFUNCTION(Category="Touch Interface|Save and Load", BlueprintCallable)
533 virtual bool DeleteSnapshot(const int32 SnapshotID);
534
536 UFUNCTION(Category="Touch Interface|Save and Load", BlueprintCallable)
537 virtual bool DeleteTouchInterfaceSaveFile(const int32 UserIndex);
538
539
540 //DEBUG
541
544 UFUNCTION(Category="Touch Interface|Debug", BlueprintCallable)
545 void EnableDebug() const;
546
547 //Hide debug data
548 UFUNCTION(Category="Touch Interface|Debug", BlueprintCallable)
549 void DisableDebug() const;
550
551 //EVENTS
552
556 UPROPERTY(Category="Touch Interface|State", BlueprintAssignable)
557 FOnStateChangedSignature OnActiveStateChanged;
558
562 UPROPERTY(Category="Touch Interface|State", BlueprintAssignable)
563 FOnStateChangedSignature OnVisibilityStateChanged;
564
565 // Called when subsystem create new touch interface and add to player's viewport
566 UPROPERTY(Category="Touch Interface|State", BlueprintAssignable)
567 FOnSubsystemNotification OnTouchInterfaceCreated;
568
569 //Called when subsystem remove touch interface from viewport's player
570 UPROPERTY(Category="Touch Interface|State", BlueprintAssignable)
571 FOnSubsystemNotification OnTouchInterfaceRemoved;
572
573 //Called when a gamepad is connected to device (can be slow or not called on some devices)
574 UPROPERTY(Category="Touch Interface|State", BlueprintAssignable)
575 FOnSubsystemNotification OnGamepadConnected;
576
577 //Called when a gamepad is disconnected from device (can be slow or not called on some devices)
578 UPROPERTY(Category="Touch Interface|State", BlueprintAssignable)
579 FOnSubsystemNotification OnGamepadDisconnected;
580
581private:
582 UFUNCTION()
583 ULocalPlayer* GetLocalPlayerInstance() const { return LocalPlayerInstance; }
584
585 void HandleOnPreLoadMap(const FString& MapName);
586
587 //void BindTouchInputOnPlayerController();
588
589 void HandleBeganTouchEvent(const int32 FingerIndex, const FVector2D LocalPosition);
590 void HandleMovedTouchEvent(const int32 FingerIndex, const FVector2D LocalPosition);
591 void HandleEndedTouchEvent(const int32 FingerIndex, const FVector2D LocalPosition);
592
593 void HandleOnActiveStateChangedEvent(const bool IsActive);
594 void HandleOnVisibilityStateChangedEvent(const bool IsVisible);
595
596 void HandleOnControllerConnexionChange(EInputDeviceConnectionState ConnectionState, FPlatformUserId UserId, FInputDeviceId DeviceId);
597
598 void HandleOnAnyKeyPressed(FKey KeyPressed);
599 void HandleOnTouch(ETouchIndex::Type Index, FVector Coordinate);
600
601 /*~ MyOtherFunction shows flags named after the values from EColorBits. */
602 /*UFUNCTION(BlueprintCallable)
603 void MyOtherFunction(UPARAM(meta=(Bitmask, BitmaskEnum = "EColorBits")) int32 ColorFlagsParam)*/
604
605
606 UPROPERTY()
607 TObjectPtr<UVirtualControlSetup> CurrentVirtualControlSetup;
608
609 UPROPERTY()
610 TObjectPtr<UTouchInterfaceLayout> LayoutInstance;
611
612 TSharedPtr<SDeprecatedTouchInterface> DeprecatedTouchInterfaceInstance;
613
614 TSharedPtr<STouchInterfaceRuntime> TouchInterfaceInstance;
615
616 UPROPERTY()
617 UVirtualShapeDrawer* VirtualShapeDrawerInstance;
618
619 UPROPERTY()
620 ULocalPlayer* LocalPlayerInstance;
621
623 uint8 bIsTouchInput:1;
624
625 UPROPERTY()
626 TMap<FName, UMaterialInstanceDynamic*> CachedMaterialInstance;
627
628 UPROPERTY()
629 UTexture2D* DebugTexture;
630
631 uint8 bIsInitialized:1;
632
633 // Virtual Input Event instance is saved here to avoid GC and memory leak
634 UPROPERTY()
635 TArray<TObjectPtr<UVirtualInputEvent>> VirtualInputEvents;
636
637 uint8 bHiddenByGamepad:1;
638};
BlueprintType
Definition ComponentDecorator_Animation.h:40
meta
Definition GestureRecognizerComp.h:274
BEGIN_SLATE_FUNCTION_BUILD_OPTIMIZATION FPlatformUserId UserId
Definition SVirtualControl.cpp:18
EFailReason
Definition TouchInterfaceSubsystem.h:60
@ NoFileInDisk
Definition TouchInterfaceSubsystem.h:61
@ LoadError
Definition TouchInterfaceSubsystem.h:62
@ InvalidSnapshot
Definition TouchInterfaceSubsystem.h:63
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FOnSubsystemNotification)
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnStateChangedSignature, bool, Value)
EControlType
Definition VirtualControlSetup.h:25
Definition SDeprecatedTouchInterface.h:47
Definition STouchInterfaceRuntime.h:30
Definition LCInputModifier.h:18
Definition TouchInterfaceLayout.h:20
Definition TouchInterfaceListener.h:16
BlueprintPure UTouchInterfaceLayout * GetLayoutInstance() const
Definition TouchInterfaceSubsystem.h:133
TSharedPtr< STouchInterfaceRuntime > GetTouchInterfaceWidget()
Definition TouchInterfaceSubsystem.cpp:523
BlueprintCallable void DisableDebug() const
Definition TouchInterfaceSubsystem.cpp:1864
BlueprintAssignable FOnStateChangedSignature OnVisibilityStateChanged
Definition TouchInterfaceSubsystem.h:563
virtual BlueprintCallable bool LoadConfiguration(const int32 UserIndex, const int32 ConfigIndex)
Definition TouchInterfaceSubsystem.cpp:1682
virtual BlueprintPure bool TouchInterfaceConfigurationExist(const int32 ConfigIndex)
Definition TouchInterfaceSubsystem.cpp:1414
virtual bool ShouldCreateSubsystem(UObject *Outer) const override
Definition TouchInterfaceSubsystem.cpp:46
virtual BlueprintCallable bool DeleteTouchInterfaceSaveFile(const int32 UserIndex)
Definition TouchInterfaceSubsystem.cpp:1844
BlueprintAssignable FOnSubsystemNotification OnGamepadDisconnected
Definition TouchInterfaceSubsystem.h:579
meta
Definition TouchInterfaceSubsystem.h:96
virtual BlueprintPure bool GetConfiguration(const int32 UserIndex, const int32 ConfigIndex, FTouchInterfaceConfiguration &Configuration)
Definition TouchInterfaceSubsystem.cpp:1774
BlueprintAssignable FOnSubsystemNotification OnTouchInterfaceRemoved
Definition TouchInterfaceSubsystem.h:571
virtual BlueprintCallable bool DeleteConfiguration(const int32 UserIndex, const int32 ConfigIndex)
Definition TouchInterfaceSubsystem.cpp:1800
virtual BlueprintCallable bool DeleteSnapshot(const int32 SnapshotID)
Definition TouchInterfaceSubsystem.cpp:1822
BlueprintAssignable FOnSubsystemNotification OnTouchInterfaceCreated
Definition TouchInterfaceSubsystem.h:567
BlueprintAssignable FOnStateChangedSignature OnActiveStateChanged
Definition TouchInterfaceSubsystem.h:557
BlueprintCallable bool RegisterTouchListenerComponent(UTouchInterfaceListener *Listener)
Definition TouchInterfaceSubsystem.cpp:95
UTouchInterfaceSubsystem()
Definition TouchInterfaceSubsystem.cpp:31
virtual BlueprintCallable bool Save(const int32 SnapshotID, UTouchInterfaceLayout *LayoutReference)
Definition TouchInterfaceSubsystem.cpp:1606
virtual BlueprintPure bool CanSave(const int32 SnapshotId, EFailReason &FailReason)
Definition TouchInterfaceSubsystem.cpp:1380
virtual BlueprintCallable bool ConvertSaveData(const int32 UserIndex, UVirtualControlSetup *VirtualControlSetup, UTouchInterfaceLayout *TouchInterfaceLayout)
Definition TouchInterfaceSubsystem.cpp:1488
virtual BlueprintCallable bool SaveConfigurationWithSetup(const int32 UserIndex, const int32 ConfigIndex, UVirtualControlSetup *Setup)
Definition TouchInterfaceSubsystem.cpp:1540
virtual BlueprintCallable bool ApplySnapshot(const int32 SnapshotID)
Definition TouchInterfaceSubsystem.cpp:1688
TSharedPtr< SDeprecatedTouchInterface > GetTouchInterfaceInstance()
Definition TouchInterfaceSubsystem.cpp:510
UVirtualInputEvent * CreateAndRegisterVirtualInputEvent(TSubclassOf< UVirtualInputEvent > Class)
Definition TouchInterfaceSubsystem.cpp:170
BlueprintCallable void EnableDebug() const
Definition TouchInterfaceSubsystem.cpp:1856
virtual BlueprintCallable bool SaveConfigurationFromCurrentSetup(const int32 UserIndex, const int32 ConfigIndex)
Definition TouchInterfaceSubsystem.cpp:1534
BlueprintCallable
Definition TouchInterfaceSubsystem.h:96
virtual BlueprintCallable bool ConvertSaveDataByConfigIndex(const int32 UserIndex, const int32 ConfigIndex)
Definition TouchInterfaceSubsystem.cpp:1435
BlueprintAssignable FOnSubsystemNotification OnGamepadConnected
Definition TouchInterfaceSubsystem.h:575
virtual BlueprintPure bool GetSnapshot(const int32 SnapshotID, FLayoutSaveData &Snapshot)
Definition TouchInterfaceSubsystem.cpp:1748
virtual void Deinitialize() override
Definition TouchInterfaceSubsystem.cpp:79
Category
Definition TouchInterfaceSubsystem.h:82
virtual BlueprintCallable UTouchInterfaceLayout * AddTouchInterface(UTouchInterfaceLayout *Layout=nullptr, const bool bLoadSave=false, const int32 SnapshotID=0)
Definition TouchInterfaceSubsystem.cpp:255
virtual BlueprintPure bool TouchInterfaceSaveFileExist()
Definition TouchInterfaceSubsystem.cpp:1406
BlueprintCallable bool UnregisterTouchListenerComponent(UTouchInterfaceListener *Listener)
Definition TouchInterfaceSubsystem.cpp:136
virtual void Initialize(FSubsystemCollectionBase &Collection) override
Definition TouchInterfaceSubsystem.cpp:60
BlueprintPure
Definition TouchInterfaceSubsystem.h:433
virtual BlueprintCallable void RemoveTouchInterface()
Definition TouchInterfaceSubsystem.cpp:484
Definition VirtualControlSetup.h:465
Definition VirtualInputEvent.h:21
Definition VirtualInput.h:26
Definition VirtualShapeDrawer.h:22
Definition TouchInterfaceSave.h:102
Definition TouchInterfaceSave.h:14
Definition TouchInterfaceSubsystem.h:25
Category
Definition TouchInterfaceSubsystem.h:28
BlueprintReadWrite int32 UserIndex
Definition TouchInterfaceSubsystem.h:41
FTouchInterfaceInit()
Definition TouchInterfaceSubsystem.h:46
BlueprintReadWrite int32 ConfigIndex
Definition TouchInterfaceSubsystem.h:44
BlueprintReadWrite bool bBlockRecognizers
Definition TouchInterfaceSubsystem.h:35
EditAnywhere
Definition TouchInterfaceSubsystem.h:28
BlueprintReadWrite bool IsVisible
Definition TouchInterfaceSubsystem.h:29
BlueprintReadWrite bool bLoadConfiguration
Definition TouchInterfaceSubsystem.h:38
BlueprintReadWrite bool bBlockInput
Definition TouchInterfaceSubsystem.h:32
Definition VirtualControlSetup.h:165
Definition VirtualControlSetup.h:62