// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "Containers/UnrealString.h" #include "IDetailCustomization.h" #include "Internationalization/Text.h" #include "Templates/SharedPointer.h" #include "UObject/WeakObjectPtr.h" #include "UObject/WeakObjectPtrTemplates.h" class IDetailLayoutBuilder; class IPropertyHandle; class UObject; //class FImportantToggleSettingCustomization : public IPropertyTypeCustomization //{ //public: // static TSharedRef MakeInstance(); // // /** IPropertyTypeCustomization instance */ // virtual void CustomizeHeader(TSharedRef StructPropertyHandle, FDetailWidgetRow& HeaderRow, IPropertyTypeCustomizationUtils& StructCustomizationUtils) override; // virtual void CustomizeChildren(TSharedRef StructPropertyHandle, class IDetailChildrenBuilder& ChildBuilder, IPropertyTypeCustomizationUtils& StructCustomizationUtils) override; // //protected: // TSharedPtr ToggleProperty; //}; class FImportantToggleSettingCustomization : public IDetailCustomization { public: /** Makes a new instance of this detail layout class for a specific detail view requesting it */ static TSharedRef MakeInstance(); // IDetailCustomization interface virtual void CustomizeDetails(IDetailLayoutBuilder& DetailBuilder) override; // End of IDetailCustomization interface private: //ECheckBoxState IsBoolPropertyTrue(TSharedRef PropertyHandle) const; //void OnCheckStateChanged(ECheckBoxState CheckBoxState, TSharedRef PropertyHandle); bool IsToggleValue(bool bValue) const; void OnToggledTo(bool bSetTo); void OnNavigateHyperlink(FString Url); FText GetDescriptionText() const; private: TSharedPtr TogglePropertyHandle; TWeakObjectPtr ToggleSettingObject; };