text: // Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.
  
  #pragma once
  
  #include "WidgetTemplateClass.h"
  #include "AssetData.h"
  
  class UUserWidget;
  
  /**
  * A template for classes generated by UWidgetBlueprint assets
  * Accounts for the possibility that a the blueprint may not be loaded when the palette is created
  */
  class FWidgetTemplateBlueprintClass : public FWidgetTemplateClass
  {
  public:
  	/** 
  	* Constructor
  	* @param InWidgetAssetData The FAssetData for the widget blueprint asset
  	* @param InUserWidgetClass The user-created widget class that will be created by this template
  	*/
  	FWidgetTemplateBlueprintClass(const FAssetData& InWidgetAssetData, TSubclassOf<UUserWidget> InUserWidgetClass = nullptr);
  
  	/** Destructor */
  	virtual ~FWidgetTemplateBlueprintClass();
  
  	/** Gets the category for the widget */
  	virtual FText GetCategory() const override;
  
  	/** Creates an instance of the widget for the tree. */
  	virtual UWidget* Create(UWidgetTree* Tree) override;
  
  	/** The icon coming from the default object of the class */
  	virtual const FSlateBrush* GetIcon() const override;
  
  	/** Gets the tooltip widget for this palette item. */
  	virtual TSharedRef<IToolTip> GetToolTip() const override;
  
  	/** Opens the widget blueprint for edit */
  	virtual FReply OnDoubleClicked() override;
  
  protected:
  	/** The asset data for the widget blueprint */
  	FAssetData WidgetAssetData;
  };
  