// Copyright (c) Microsoft Corporation. 
// Licensed under the MIT license.

#pragma once

#include "CoreMinimal.h"
#include "Widgets/DeclarativeSyntaxSupport.h"
#include "Widgets/SCompoundWidget.h"
//#include "Widgets/Views/STableViewBase.h"
//#include "Widgets/Views/STableRow.h"

class SAllowMorphTargetsWidget : public SCompoundWidget
{
	SLATE_BEGIN_ARGS(SAllowMorphTargetsWidget)
	{
	}

	SLATE_END_ARGS()

	/** Widget constructor */
	void Construct(const FArguments& Args, const TWeakObjectPtr<class ULODRecipe> LODRecipe);

	class ULODRecipe* GetLODRecipe() { return LODRecipeWeak.Get(); };

	/** @return Returns the currently selected skeletal mesh item */
	TSharedPtr<class FSkeletalMeshItem> GetSelectedSkeletalMesh() const;

	/** Called when selected skeletal mesh changes so we can refresh morph targets list */
	void OnSkeletalMeshSelectionChanged();
private:

	/** The skeletal mesh list widget */
	TSharedPtr< class SAllowMorphTargetsMeshView > SkeletalMeshesWidget;

	/** The morph targets to remove widget */
	TSharedPtr< class SAllowMorphTargetsList > MorphTargetsWidget;

	/** The allow morph targets per LOD widget */
	TSharedPtr< class SAllowMorphTargetsPerLOD > AllowMorphTargetPerLODWidget;

	TWeakObjectPtr<ULODRecipe> LODRecipeWeak;
};