// Copyright PICO Technology Co., Ltd. All rights reserved. // This plugin incorporates portions of the Unreal® Engine. Unreal® is a trademark or registered trademark of Epic Games, Inc. in the United States of America and elsewhere. // Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "Modules/ModuleManager.h" #include "IDetailCustomization.h" #include "GameFramework/InputSettings.h" #include "GameFramework/PlayerInput.h" #include "Input/Reply.h" class FToolBarBuilder; class FMenuBuilder; class SWidget; class FPICOXREditorModule : public IModuleInterface { public: /** IModuleInterface implementation */ virtual void StartupModule() override; virtual void ShutdownModule() override; /** These functions will be bound to Commands */ void PluginButtonClicked(); ; void LaunchAPIReferenceURL(); void LaunchSampleDemoURL(); void LaunchOfficialWebsiteURL(); void LaunchMarketplaceURL(); void AddSampleInputs(); void ClearSampleInputs(); void RegisterSettings(); void UnregisterSettings(); private: bool AddNewSampleAxisMapping(TArray ExistingAxisKeys, UInputSettings* InputSettings, FName ActionName, FKey ActionKey); bool AddNewSampleActionMapping(TArray ExistingActionKeys, UInputSettings* InputSettings, FName ActionName, FKey ActionKey); bool RemoveSampleAxisMapping(TArray ExistingAxisKeys, UInputSettings* InputSettings, FName ActionName, FKey ActionKey); bool RemoveSampleActionMapping(TArray ExistingActionKeys, UInputSettings* InputSettings, FName ActionName, FKey ActionKey); bool AddUniqueAxisMapping(TArray ExistingAxisKeys, UInputSettings* InputSettings, FName ActionName, FKey ActionKey); bool AddUniqueActionMapping(TArray ExistingActionKeys, UInputSettings* InputSettings, FName ActionName, FKey ActionKey); bool ShowPICOXRInputToolbarDropdown(); TSharedPtr PluginCommands; TSharedRef FillComboButton(TSharedPtr Commands); };