local BaseTips = require "app/ui/tips/base_tips"
local DescTips = class("DescTips", BaseTips)

function DescTips:ctor(params)
	self.desc = (params.desc or GConst.EMPTY_STRING)
    self.tarCornerScreenPos = params.tarCornerScreenPos
    self.location = params.location
end

function DescTips:getPrefabPath()
	return "assets/prefabs/ui/tips/desc_tips.prefab"
end

function DescTips:onPressBackspace()
	self:closeUI()
end

function DescTips:init()
	local uiMap = self.root:genAllChildren()
    self.bg = uiMap["item_tips.bg1.bg"]
    self.bg1 = uiMap["item_tips.bg1"]
    self.descTx = uiMap["item_tips.bg1.bg.desc_tx"]
end

function DescTips:onLoadRootComplete()
	self:init()
    local tipsBgTransform = self.bg:getTransform()
    self.originSizeDelta = tipsBgTransform.sizeDelta
	self.originPivot = tipsBgTransform.pivot
	self.originAnchoredPosition = tipsBgTransform.anchoredPosition
	self.originLocalPosition = tipsBgTransform.localPosition
end

function DescTips:onRefresh()
	self.root:addClickListener(function ()
		self:closeUI()
	end)

	self.descTx:setText(self.desc)
	-- 这里原来是用preferredHeight,但是在中英文混合的时候这个值可能不准,只有改用renderedHeight
    -- renderedHeight必须要先调用下ForceMeshUpdate强制刷新才有效
	self.descTx:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_TEXT_MESH_PRO):ForceMeshUpdate()
	local height = self.descTx:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_TEXT_MESH_PRO).renderedHeight + 18
	if height < 130 then
		height = 130
	end
    self.bg:setSizeDeltaY(height)
    if self.tarCornerScreenPos then
        self:locate(self.location, self.originSizeDelta, self.bg, self.tarCornerScreenPos)
    end
end

function DescTips:onClose()
	if self.originSizeDelta then
		local tipsBgTransform = self.bg:getTransform()
		tipsBgTransform.sizeDelta = self.originSizeDelta
		tipsBgTransform.pivot = self.originPivot
		tipsBgTransform.anchoredPosition = self.originAnchoredPosition
		tipsBgTransform.localPosition = self.originLocalPosition
	end
end

return DescTips