class VisualTooltipController extends ItemTooltipCommonController
{

	protected override function UpdateLayout()
	{
		UpdateHeaderModule();
		UpdateClothingInfoModule();
		UpdateDetailsModule();
		UpdateTransmogModule();
		if( IsStringValid( m_data.description ) )
		{
			inkWidgetRef.SetVisible( m_descriptionWrapper, true );
			inkTextRef.SetText( m_descriptionText, GetLocalizedText( m_data.description ) );
		}
		else
		{
			inkWidgetRef.SetVisible( m_descriptionWrapper, false );
		}
	}

	protected override function UpdateTransmogModule()
	{
		if( ItemID.IsValid( m_data.transmogItem ) )
		{
			RequestModule( m_itemActionContainer, 'itemTransmog', 'OnTransmogModuleSpawned' );
			inkWidgetRef.SetVisible( m_itemActionContainer, true );
		}
		else
		{
			inkWidgetRef.SetVisible( m_itemActionContainer, false );
		}
	}

	protected event OnTransmogModuleSpawned( widget : inkWidget, userData : IScriptable )
	{
		HandleModuleSpawned( widget, ( ( ItemTooltipModuleSpawnedCallbackData )( userData ) ) );
	}

}

class ItemTooltipTransmogModule extends ItemTooltipModuleController
{
	private editable var m_buttonHintWidgetRef : inkWidgetRef;
	private editable var m_labelRef : inkTextRef;
	private var m_buttonHint : weak< LabelInputDisplayController >;

	protected event OnInitialize()
	{
		m_buttonHint = ( ( LabelInputDisplayController )( inkWidgetRef.GetController( m_buttonHintWidgetRef ) ) );
	}

	public override function Update( data : MinimalItemTooltipData )
	{
		m_buttonHint.SetInputAction( 'click' );
		inkTextRef.SetLocalizedText( m_labelRef, 'UI-UserActions-UnequipVisuals' );
	}

	public override function NEW_Update( data : weak< UIInventoryItem > )
	{
		m_buttonHint.SetInputAction( 'click' );
		inkTextRef.SetLocalizedText( m_labelRef, 'UI-UserActions-UnequipVisuals' );
	}

}

