local AS, _, S, R = unpack(AddOnSkins) if not AS:CheckAddOn('ElvUI') then return end local _G = _G local hooksecurefunc = hooksecurefunc local UIFrameFadeIn, UIFrameFadeOut = UIFrameFadeIn, UIFrameFadeOut local UnitAffectingCombat = UnitAffectingCombat local ES = AS.EmbedSystem local E, L = unpack(ElvUI) function AS:UpdateMedia() S.Media.Blank = AS.Libs.LSM:Fetch('background', 'ElvUI Blank') S.Media.StatusBar = AS.Libs.LSM:Fetch('statusbar', E.private.general.normTex) S.Media.defaultBackdrop = E.media.backdropcolor S.Media.transparentBackdrop = E.media.backdropfadecolor S.Media.borderColor = E.media.bordercolor S.Media.valueColor = E.media.rgbvaluecolor S.Media.TexCoords = { 0, 1, 0, 1 } local modifier = 0.04 * E.db.general.cropIcon for i, v in ipairs(S.Media.TexCoords) do if i % 2 == 0 then S.Media.TexCoords[i] = v - modifier else S.Media.TexCoords[i] = v + modifier end end end function ES:Hooks() if not E then E, L = unpack(ElvUI) end hooksecurefunc(E:GetModule('Chat'), 'PositionChat', function(_, override) if override then ES:Check() end end) hooksecurefunc(E:GetModule('Layout'), 'ToggleChatPanels', function() ES:Check() end) if RightChatToggleButton then RightChatToggleButton:RegisterForClicks('AnyDown') RightChatToggleButton:SetScript('OnClick', function(s, btn) if btn == 'RightButton' then if ES.Main:IsShown() then AS:SetOption('EmbedIsHidden', true) else AS:SetOption('EmbedIsHidden', false) end ES.Main:SetShown(not AS:CheckOption('EmbedIsHidden')) else if E.db[s.parent:GetName()..'Faded'] then E.db[s.parent:GetName()..'Faded'] = nil UIFrameFadeIn(s.parent, 0.2, s.parent:GetAlpha(), 1) UIFrameFadeIn(s, 0.2, s:GetAlpha(), 1) if not AS:CheckOption('EmbedIsHidden') then ES.Main:Show() end else E.db[s.parent:GetName()..'Faded'] = true UIFrameFadeOut(s.parent, 0.2, s.parent:GetAlpha(), 0) UIFrameFadeOut(s, 0.2, s:GetAlpha(), 0) s.parent.fadeInfo.finishedFunc = s.parent.fadeFunc end end end) RightChatToggleButton:SetScript('OnEnter', function(s) if E.db[s.parent:GetName()..'Faded'] then s.parent:Show() UIFrameFadeIn(s.parent, 0.2, s.parent:GetAlpha(), 1) UIFrameFadeIn(s, 0.2, s:GetAlpha(), 1) if not AS:CheckOption('EmbedIsHidden') then ES.Main:Show() end end if not s.parent.editboxforced then _G.GameTooltip:SetOwner(s, 'ANCHOR_TOPLEFT', 0, 4) _G.GameTooltip:ClearLines() _G.GameTooltip:AddDoubleLine(L["Left Click:"], L["Toggle Chat Frame"], 1, 1, 1) _G.GameTooltip:AddDoubleLine(L["Right Click:"], L["Toggle Embedded Addon"], 1, 1, 1) _G.GameTooltip:Show() end end) end end function ES:Resize() if UnitAffectingCombat('player') then return end local ChatPanel = AS:CheckOption('EmbedRightChat') and _G.RightChatPanel or _G.LeftChatPanel local ChatTab = AS:CheckOption('EmbedRightChat') and _G.RightChatTab or _G.LeftChatTab ES.Main:SetParent(ChatPanel) ES.Main:ClearAllPoints() ES.Main:SetPoint('TOPRIGHT', ChatTab, AS:CheckOption('EmbedBelowTop') and 'BOTTOMRIGHT' or 'TOPRIGHT', 0, AS:CheckOption('EmbedBelowTop') and -1 or 0) ES.Main:SetPoint('BOTTOMLEFT', ChatPanel, 'BOTTOMLEFT', 0, (E.PixelMode and 0 or -1)) ES.Left:SetSize(AS:CheckOption('EmbedLeftWidth'), ES.Main:GetHeight()) ES.Right:SetSize((ES.Main:GetWidth() - AS:CheckOption('EmbedLeftWidth')) - 1, ES.Main:GetHeight()) ES.Left:SetPoint('LEFT', ES.Main, 'LEFT', 0, 0) ES.Left:SetPoint('RIGHT', ES.Right, 'LEFT', 0, 0) ES.Right:SetPoint('RIGHT', ES.Main, 'RIGHT', 0, 0) end