diff --git a/Engine/Source/Developer/HTML5/HTML5PlatformEditor/Private/HTML5TargetSettingsCustomization.cpp b/Engine/Source/Developer/HTML5/HTML5PlatformEditor/Private/HTML5TargetSettingsCustomization.cpp index ded9bd0e7892..3c5cb86f6107 100644 --- a/Engine/Source/Developer/HTML5/HTML5PlatformEditor/Private/HTML5TargetSettingsCustomization.cpp +++ b/Engine/Source/Developer/HTML5/HTML5PlatformEditor/Private/HTML5TargetSettingsCustomization.cpp @@ -8,6 +8,20 @@ #include "DetailCategoryBuilder.h" #include "Misc/EngineBuildSettings.h" +#include "DetailWidgetRow.h" +//#include "Widgets/DeclarativeSyntaxSupport.h" +//#include "Widgets/SBoxPanel.h" +#include "Widgets/SCompoundWidget.h" +//#include "Widgets/SWidget.h" +#include "Widgets/Images/SImage.h" +//#include "Widgets/Input/SButton.h" +#include "Widgets/Layout/SBorder.h" +//#include "Widgets/Layout/SBox.h" +//#include "Widgets/Layout/SWidgetSwitcher.h" +//#include "Widgets/Notifications/SNotificationList.h" +//#include "Widgets/Text/SRichTextBlock.h" +#include "Widgets/Text/STextBlock.h" + #define LOCTEXT_NAMESPACE "HTML5TargetSettings" DEFINE_LOG_CATEGORY_STATIC(LogIOSTargetSettings, Log, All); @@ -19,6 +33,60 @@ namespace FHTML5TargetSettingsCustomizationConstants } +////////////////////////////////////////////////////////////////////////// +class HTML5DeprecationBanner : public SCompoundWidget +{ + SLATE_BEGIN_ARGS(HTML5DeprecationBanner) + {} + SLATE_END_ARGS() + + void Construct(const FArguments& InArgs) + { + ChildSlot + [ + SNew(SBorder) + .BorderBackgroundColor(this, &HTML5DeprecationBanner::GetBorderColor) + .BorderImage(FEditorStyle::GetBrush("ToolPanel.LightGroupBorder")) + .Padding(8.0f) + [ + SNew(SHorizontalBox) + // .ToolTipText(Tooltip) + + // Status icon + +SHorizontalBox::Slot() + .AutoWidth() + .VAlign(VAlign_Center) + [ + SNew(SImage) + .Image(FEditorStyle::GetBrush("SettingsEditor.WarningIcon")) + ] + + // Notice + + SHorizontalBox::Slot() + .FillWidth(1.0f) + .Padding(16.0f, 0.0f) + .VAlign(VAlign_Center) + [ + SNew(STextBlock) + .ColorAndOpacity(FLinearColor::White) + .ShadowColorAndOpacity(FLinearColor::Black) + .ShadowOffset(FVector2D::UnitVector) + .Text(LOCTEXT("HTML5DeprecatedPlatformMessageText", + "The HTML5 platform will be migrated from:\n\tan officialy supported (integrated) platform,\nand be moved to:\n\tas a community supported (plugin) platform.")) + ] + ] + ]; + } + + FSlateColor GetBorderColor() const + { + return FLinearColor(0.8f, 0, 0); + } +}; + +////////////////////////////////////////////////////////////////////////// + + TSharedRef FHTML5TargetSettingsCustomization::MakeInstance() { return MakeShareable(new FHTML5TargetSettingsCustomization); @@ -33,6 +101,14 @@ FHTML5TargetSettingsCustomization::~FHTML5TargetSettingsCustomization() } void FHTML5TargetSettingsCustomization::CustomizeDetails(IDetailLayoutBuilder& DetailLayout) +{ + BuildDeprecationMessage(DetailLayout); // !!! HTML5 Deprecation Message + // -------------------------------------------------- + BuildEmscriptenCategory(DetailLayout); // !!! HTML5 Deprecation Message + AudioPluginWidgetManager.BuildAudioCategory(DetailLayout, EAudioPlatform::HTML5); +} + +void FHTML5TargetSettingsCustomization::BuildEmscriptenCategory(IDetailLayoutBuilder& DetailLayout) { IDetailCategoryBuilder& EmscriptenCategory = DetailLayout.EditCategory(TEXT("Emscripten")); @@ -47,8 +123,17 @@ void FHTML5TargetSettingsCustomization::CustomizeDetails(IDetailLayoutBuilder& D SETUP_SOURCEONLY_PROP(EnableIndexedDB, EmscriptenCategory); SETUP_SOURCEONLY_PROP(EnableMultithreading, EmscriptenCategory); +} - AudioPluginWidgetManager.BuildAudioCategory(DetailLayout, EAudioPlatform::HTML5); +void FHTML5TargetSettingsCustomization::BuildDeprecationMessage(IDetailLayoutBuilder& DetailLayout) +{ + IDetailCategoryBuilder& HTML5PlatformDeprecatedCategory = DetailLayout.EditCategory(TEXT("HTML5 as a UE4 Platform Note:")); + TSharedRef PlatformSetupMessage = SNew(HTML5DeprecationBanner); + HTML5PlatformDeprecatedCategory.AddCustomRow(LOCTEXT("Warning", "Warning"), false) + .WholeRowWidget + [ + PlatformSetupMessage + ]; } ////////////////////////////////////////////////////////////////////////// diff --git a/Engine/Source/Developer/HTML5/HTML5PlatformEditor/Private/HTML5TargetSettingsCustomization.h b/Engine/Source/Developer/HTML5/HTML5PlatformEditor/Private/HTML5TargetSettingsCustomization.h index e90220b3412e..a6bd006bbe3a 100644 --- a/Engine/Source/Developer/HTML5/HTML5PlatformEditor/Private/HTML5TargetSettingsCustomization.h +++ b/Engine/Source/Developer/HTML5/HTML5PlatformEditor/Private/HTML5TargetSettingsCustomization.h @@ -9,6 +9,8 @@ #include "IDetailCustomization.h" #include "TargetPlatformAudioCustomization.h" +#include "Widgets/SCompoundWidget.h" + class IPropertyHandle; class SEditableTextBox; class SErrorText; @@ -32,6 +34,9 @@ public: private: FHTML5TargetSettingsCustomization(); + void BuildDeprecationMessage(IDetailLayoutBuilder& DetailLayout); + void BuildEmscriptenCategory(IDetailLayoutBuilder& DetailLayout); + //Audio plugin widget builder: FAudioPluginWidgetManager AudioPluginWidgetManager; };