// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "Containers/Array.h" #include "Containers/BitArray.h" #include "Containers/Set.h" #include "Containers/SparseArray.h" #include "Containers/UnrealString.h" #include "Delegates/Delegate.h" #include "HAL/Platform.h" #include "HAL/PlatformCrt.h" #include "Input/Reply.h" #include "Internationalization/Text.h" #include "Math/Color.h" #include "Misc/Optional.h" #include "Serialization/Archive.h" #include "Templates/SharedPointer.h" #include "Templates/TypeHash.h" #include "Templates/UnrealTemplate.h" #include "Types/SlateEnums.h" #include "Widgets/DeclarativeSyntaxSupport.h" #include "Widgets/Input/SComboBox.h" #include "Widgets/SCompoundWidget.h" class SWidget; struct FGeometry; struct FPropertyAndParent; #define ENVLIGHT_MAX_DETAILSVIEWS 5 class SEnvironmentLightingViewer : public SCompoundWidget { public: SLATE_BEGIN_ARGS(SEnvironmentLightingViewer) { } SLATE_END_ARGS() /** * Construct the widget * * @param InArgs A declaration from which to construct the widget */ void Construct(const FArguments& InArgs); /** Gets the widget contents of the app */ virtual TSharedRef GetContent(); virtual ~SEnvironmentLightingViewer(); /** SWidget interface */ virtual void Tick(const FGeometry& AllottedGeometry, const double InCurrentTime, const float InDeltaTime) override; private: TSharedPtr DetailsViews[ENVLIGHT_MAX_DETAILSVIEWS]; FLinearColor DefaultForegroundColor; TSharedPtr CheckBoxAtmosphericLightsOnly; TSharedPtr>> ComboBoxDetailFilter; TArray> ComboBoxDetailFilterOptions; int32 SelectedComboBoxDetailFilterOptions; TSharedPtr ButtonCreateSkyLight; TSharedPtr ButtonCreateAtmosphericLight0; TSharedPtr ButtonCreateSkyAtmosphere; TSharedPtr ButtonCreateVolumetricCloud; TSharedPtr ButtonCreateHeightFog; FReply OnButtonCreateSkyLight(); FReply OnButtonCreateDirectionalLight(uint32 Index); FReply OnButtonCreateSkyAtmosphere(); FReply OnButtonCreateVolumetricCloud(); FReply OnButtonCreateHeightFog(); TSharedRef ComboBoxDetailFilterWidget(TSharedPtr InItem); void ComboBoxDetailFilterWidgetSelectionChanged(TSharedPtr NewSelection, ESelectInfo::Type SelectInfo); FText GetSelectedComboBoxDetailFilterTextLabel() const; bool GetIsPropertyVisible(const FPropertyAndParent& PropertyAndParent) const; };