// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved. #pragma once #include "IDetailCustomization.h" #include "LocalizationTargetTypes.h" class SCulturePicker; class IPropertyHandle; class FLocalizationTargetDetailCustomization : public IDetailCustomization { public: FLocalizationTargetDetailCustomization(); virtual void CustomizeDetails(IDetailLayoutBuilder& DetailBuilder) override; FLocalizationTargetSettings* GetTargetSettings() const; TSharedPtr GetTargetSettingsPropertyHandle() const; private: FText GetTargetName() const; bool IsTargetNameUnique(const FString& Name) const; void OnTargetNameChanged(const FText& NewText); void OnTargetNameCommitted(const FText& NewText, ETextCommit::Type Type); ELocalizationTargetLoadingPolicy GetLoadingPolicy() const; void SetLoadingPolicy(const ELocalizationTargetLoadingPolicy LoadingPolicy); void OnLoadingPolicySelectionChanged(TSharedPtr LoadingPolicy, ESelectInfo::Type SelectInfo); TSharedRef GenerateWidgetForLoadingPolicy(TSharedPtr LoadingPolicy); void RebuildTargetDependenciesBox(); void RebuildTargetsList(); TSharedRef OnGenerateTargetRow(ULocalizationTarget* OtherLocalizationTarget, const TSharedRef& Table); void OnTargetDependencyCheckStateChanged(ULocalizationTarget* const OtherLocalizationTarget, const ECheckBoxState State); ECheckBoxState IsTargetDependencyChecked(ULocalizationTarget* const OtherLocalizationTarget) const; void Gather(); void ImportAllCultures(); void ExportAllCultures(); void Compile(); void RefreshWordCounts(); void UpdateTargetFromReports(); void BuildListedCulturesList(); void RebuildListedCulturesList(); TSharedRef OnGenerateCultureRow(TSharedPtr CulturePropertyHandle, const TSharedRef& Table); bool IsCultureSelectableAsSupported(FCulturePtr Culture); void OnNewSupportedCultureSelected(FCulturePtr SelectedCulture, ESelectInfo::Type SelectInfo); private: IDetailLayoutBuilder* DetailLayoutBuilder; TWeakObjectPtr TargetSet; TWeakObjectPtr LocalizationTarget; TSharedPtr TargetSettingsPropertyHandle; TSharedPtr TargetNameEditableTextBox; TSharedPtr TargetDependenciesHorizontalBox; TArray< TSharedPtr > TargetDependenciesWidgets; TArray TargetDependenciesOptionsList; TSharedPtr< SListView > TargetDependenciesListView; TArray AllCultures; TSharedPtr NativeCultureIndexPropertyHandle; TSharedPtr SupportedCulturesStatisticsPropertyHandle; FSimpleDelegate SupportedCulturesStatisticsPropertyHandle_OnNumElementsChanged; TSharedPtr< SListView< TSharedPtr > > SupportedCultureListView; TSharedPtr AddNewSupportedCultureComboButton; TSharedPtr SupportedCulturePicker; TArray< TSharedPtr > ListedCultureStatisticProperties; /* If set, the entry at the index specified needs to be initialized as soon as possible. */ int32 NewEntryIndexToBeInitialized; FCulturePtr SelectedNewCulture; };