diff --git a/SVUI_!Core/assets/textures/CHATBUBBLE-BACKDROP.blp b/SVUI_!Core/assets/textures/CHATBUBBLE-BACKDROP.blp new file mode 100644 index 0000000..a000ecc Binary files /dev/null and b/SVUI_!Core/assets/textures/CHATBUBBLE-BACKDROP.blp differ diff --git a/SVUI_!Core/assets/textures/CHATBUBBLE-BG.blp b/SVUI_!Core/assets/textures/CHATBUBBLE-BG.blp new file mode 100644 index 0000000..9b7cc4b Binary files /dev/null and b/SVUI_!Core/assets/textures/CHATBUBBLE-BG.blp differ diff --git a/SVUI_!Core/assets/textures/CHATBUBBLE-TAIL-DOWN.blp b/SVUI_!Core/assets/textures/CHATBUBBLE-TAIL-DOWN.blp new file mode 100644 index 0000000..ce84495 Binary files /dev/null and b/SVUI_!Core/assets/textures/CHATBUBBLE-TAIL-DOWN.blp differ diff --git a/SVUI_!Core/assets/textures/CHATBUBBLE-TAIL-LEFT.blp b/SVUI_!Core/assets/textures/CHATBUBBLE-TAIL-LEFT.blp new file mode 100644 index 0000000..61b47d4 Binary files /dev/null and b/SVUI_!Core/assets/textures/CHATBUBBLE-TAIL-LEFT.blp differ diff --git a/SVUI_!Core/assets/textures/CHATBUBBLE-TAIL-RIGHT.blp b/SVUI_!Core/assets/textures/CHATBUBBLE-TAIL-RIGHT.blp new file mode 100644 index 0000000..12ddd0f Binary files /dev/null and b/SVUI_!Core/assets/textures/CHATBUBBLE-TAIL-RIGHT.blp differ diff --git a/SVUI_!Core/assets/textures/CHATBUBBLE-TAIL-UP.blp b/SVUI_!Core/assets/textures/CHATBUBBLE-TAIL-UP.blp new file mode 100644 index 0000000..722e039 Binary files /dev/null and b/SVUI_!Core/assets/textures/CHATBUBBLE-TAIL-UP.blp differ diff --git a/SVUI_!Core/assets/textures/CHATBUBBLE-TAIL.blp b/SVUI_!Core/assets/textures/CHATBUBBLE-TAIL.blp new file mode 100644 index 0000000..17e10a6 Binary files /dev/null and b/SVUI_!Core/assets/textures/CHATBUBBLE-TAIL.blp differ diff --git a/SVUI_!Core/system/dock.lua b/SVUI_!Core/system/dock.lua index 7d7b122..cdf9a03 100644 --- a/SVUI_!Core/system/dock.lua +++ b/SVUI_!Core/system/dock.lua @@ -1980,7 +1980,7 @@ function MOD:Load() end self:MakeSharable(); - self:IgnoreSharedKeys('AllFaded','LeftFaded','RightFaded','LeftExpanded','RightExpanded'); + self:IgnoreSharedKeys('AllFaded','LeftFaded','RightFaded','LeftExpanded','RightExpanded','Embed1','Embed2'); local buttonsize = SV.db.Dock.buttonSize; local spacing = SV.db.Dock.buttonSpacing; diff --git a/SVUI_Skins/components/addons/Storyline.lua b/SVUI_Skins/components/addons/Storyline.lua index 1ca5045..839a6f8 100644 --- a/SVUI_Skins/components/addons/Storyline.lua +++ b/SVUI_Skins/components/addons/Storyline.lua @@ -14,11 +14,44 @@ local SV = _G['SVUI']; local L = SV.L; local MOD = SV.Skins; local Schema = MOD.Schema; + +local bubbleBackdrop = { + bgFile = [[Interface\AddOns\SVUI_!Core\assets\textures\CHATBUBBLE-BG]], + tile = false, + tileSize = 0, + edgeFile = [[Interface\AddOns\SVUI_!Core\assets\textures\CHATBUBBLE-BACKDROP]], + edgeSize = 15, + insets = + { + left = 15, + right = 15, + top = 15, + bottom = 15, + }, +}; --[[ ########################################################## STYLE (IN DEVELOPMENT) ########################################################## ]]-- +local function SetCalloutStyle(frame) + frame:RemoveTextures() + --frame:SetStyle("!_Frame", 'Transparent') + local callout = CreateFrame("Frame", nil, frame) + callout:SetPoint("TOPLEFT", frame, "TOPLEFT", 0, 15) + callout:SetPoint("BOTTOMRIGHT", frame, "BOTTOMRIGHT", 0, -15) + callout:SetBackdrop(bubbleBackdrop) + + local tail = callout:CreateTexture(nil, 'OVERLAY') + tail:SetSize(20,20) + tail:SetPoint("RIGHT", callout, "LEFT", 2, 0) + tail:SetTexture([[Interface\AddOns\SVUI_!Core\assets\textures\CHATBUBBLE-TAIL-LEFT]]) + + local level = frame:GetFrameLevel() + callout:SetFrameLevel(level) + frame:SetFrameLevel(level + 2) +end + local function StyleStoryline() assert(_G.Storyline_NPCFrame, "AddOn Not Loaded"); @@ -37,24 +70,84 @@ local function StyleStoryline() rightBG:SetStyle("Frame", 'Model', false, 3, 2, 2) Storyline_NPCFrameModels:SetParent(leftBG) - Storyline_NPCFrameChat:RemoveTextures() - Storyline_NPCFrameChat:SetStyle("!_Frame", 'Transparent') - Storyline_NPCFrameChat:SetParent(Storyline_NPCFrameModels) - SV.API:Set("Button", Storyline_NPCFrameConfigButton, true) + --SV.API:Set("Button", Storyline_NPCFrameConfigButton, true) + Storyline_NPCFrameConfigButton:RemoveTextures() Storyline_NPCFrameConfigButton:SetParent(Storyline_NPCFrameModels) Storyline_NPCFrameConfigButton:ClearAllPoints() + Storyline_NPCFrameConfigButton:SetSize(24,24) Storyline_NPCFrameConfigButton:SetPoint("BOTTOMLEFT", Storyline_NPCFrame, "BOTTOMLEFT", 0, 0) + Storyline_NPCFrameConfigButton:SetNormalTexture([[Interface\WorldMap\Gear_64Grey]]) + Storyline_NPCFrameConfigButton:GetNormalTexture():SetTexCoord(0,1,0,1) + Storyline_NPCFrameConfigButton:SetPushedTexture([[Interface\WorldMap\Gear_64Grey]]) + Storyline_NPCFrameConfigButton:GetPushedTexture():SetTexCoord(0,1,0,1) + Storyline_NPCFrameConfigButton:SetHighlightTexture([[Interface\WorldMap\Gear_64Grey]]) - SV.API:Set("Button", Storyline_NPCFrameResizeButton, true) + --SV.API:Set("Button", Storyline_NPCFrameResizeButton, true) + Storyline_NPCFrameResizeButton:RemoveTextures() Storyline_NPCFrameResizeButton:SetParent(Storyline_NPCFrameModels) Storyline_NPCFrameResizeButton:ClearAllPoints() + Storyline_NPCFrameResizeButton:SetSize(24,24) Storyline_NPCFrameResizeButton:SetPoint("BOTTOMRIGHT", Storyline_NPCFrame, "BOTTOMRIGHT", 0, 0) + Storyline_NPCFrameResizeButton:SetNormalTexture([[Interface\ChatFrame\UI-ChatIM-SizeGrabber-Up]]) + Storyline_NPCFrameResizeButton:GetNormalTexture():SetTexCoord(0,1,0,1) + Storyline_NPCFrameResizeButton:SetPushedTexture([[Interface\ChatFrame\UI-ChatIM-SizeGrabber-Down]]) + Storyline_NPCFrameResizeButton:GetPushedTexture():SetTexCoord(0,1,0,1) + Storyline_NPCFrameResizeButton:SetHighlightTexture([[Interface\ChatFrame\UI-ChatIM-SizeGrabber-Highlight]]) SV.API:Set("CloseButton", Storyline_NPCFrameClose) Storyline_NPCFrameClose:SetParent(Storyline_NPCFrameModels) Storyline_NPCFrameClose:ClearAllPoints() Storyline_NPCFrameClose:SetPoint("TOPRIGHT", Storyline_NPCFrame, "TOPRIGHT", 0, 0) + + Storyline_NPCFrameChat:RemoveTextures() + Storyline_NPCFrameChat:SetBackdrop(bubbleBackdrop) + Storyline_NPCFrameChat:SetParent(Storyline_NPCFrameModels) + local tail0 = Storyline_NPCFrameChat:CreateTexture(nil, 'OVERLAY') + tail0:SetSize(20,20) + tail0:SetPoint("BOTTOMRIGHT", Storyline_NPCFrameChat, "TOPRIGHT", -60, -2) + tail0:SetTexture([[Interface\AddOns\SVUI_!Core\assets\textures\CHATBUBBLE-TAIL-UP]]) + + SetCalloutStyle(Storyline_NPCFrameChatOption1) + SetCalloutStyle(Storyline_NPCFrameChatOption2) + SetCalloutStyle(Storyline_NPCFrameChatOption3) + + Storyline_NPCFrameChatPrevious:RemoveTextures() + Storyline_NPCFrameChatPrevious:SetSize(18,18) + Storyline_NPCFrameChatPrevious:SetNormalTexture([[Interface\Buttons\UI-RefreshButton]]) + Storyline_NPCFrameChatPrevious:GetNormalTexture():SetTexCoord(0,1,0,1) + Storyline_NPCFrameChatPrevious:SetPushedTexture([[Interface\Buttons\UI-RefreshButton]]) + Storyline_NPCFrameChatPrevious:GetPushedTexture():SetTexCoord(0,1,0,1) + Storyline_NPCFrameChatPrevious:SetHighlightTexture([[Interface\Buttons\UI-RefreshButton]]) + + Storyline_NPCFrameConfig:RemoveTextures() + Storyline_NPCFrameConfig:SetStyle("Frame", "Paper") + Storyline_NPCFrameConfig:ClearAllPoints() + Storyline_NPCFrameConfig:SetPoint("TOPLEFT", Storyline_NPCFrame, "BOTTOMLEFT", 20, -10) + Storyline_NPCFrameConfig:SetPoint("TOPRIGHT", Storyline_NPCFrame, "BOTTOMRIGHT", -20, -10) + Storyline_NPCFrameConfig:SetHeight(150) + + SV.API:Set("DropDown", Storyline_NPCFrameConfigLocale) + Storyline_NPCFrameConfigLocale:ClearAllPoints() + Storyline_NPCFrameConfigLocale:SetPoint("TOP", Storyline_NPCFrameConfigText, "BOTTOM", 0, -10); + + SV.API:Set("ScrollBar", Storyline_NPCFrameConfigSpeedSlider) + Storyline_NPCFrameConfigSpeedSliderValText:ClearAllPoints() + Storyline_NPCFrameConfigSpeedSliderValText:SetPoint("BOTTOMLEFT", Storyline_NPCFrameConfigSpeedSlider, "TOPLEFT", 0, 4) + Storyline_NPCFrameConfigSpeedSliderValText:SetPoint("BOTTOMRIGHT", Storyline_NPCFrameConfigSpeedSlider, "TOPRIGHT", 0, 4) + + Storyline_NPCFrameConfigSpeedSlider:ClearAllPoints() + Storyline_NPCFrameConfigSpeedSlider:SetPoint("TOPLEFT", Storyline_NPCFrameConfigText, "BOTTOMLEFT", 0, -70); + + SV.API:Set("CheckButton", Storyline_NPCFrameConfigAutoEquip) + Storyline_NPCFrameConfigAutoEquipText:ClearAllPoints() + Storyline_NPCFrameConfigAutoEquipText:SetPoint("LEFT", Storyline_NPCFrameConfigAutoEquip, "RIGHT", 10, 0) + + Storyline_NPCFrameObjectives:SetFrameLevel(Storyline_NPCFrameModels:GetFrameLevel() + 20) + + if(SV.Tooltip) then + SV.Tooltip:SetCustomStyle(Storyline_MainTooltip) + end end --[[ ########################################################## diff --git a/SVUI_Tooltip/SVUI_Tooltip.lua b/SVUI_Tooltip/SVUI_Tooltip.lua index 5444b07..d7e18fa 100644 --- a/SVUI_Tooltip/SVUI_Tooltip.lua +++ b/SVUI_Tooltip/SVUI_Tooltip.lua @@ -567,7 +567,7 @@ local _hook_GameTooltip_OnTooltipSetItem = function(self) -- self:AddLine(("|cffFFFF00 Equip: %s|r"):format(equipSlot)) -- self:AddLine(("|cffFFFF00 Quality: %s|r"):format(quality)) - if(self.InjectedDouble[8]) then + if(self.InjectedDouble and self.InjectedDouble[8]) then self:AddLine(" "); self:AddDoubleLine(unpack(self.InjectedDouble)); end @@ -748,7 +748,9 @@ local _hook_OnTipHide = function(self) --print('Hide') tipbackground(self) self.SuperBorder:ClearMaskColors(true) - wipe(self.InjectedDouble) + if(self.InjectedDouble) then + wipe(self.InjectedDouble) + end end local _hook_OnSizeChanged = function(self) @@ -763,105 +765,109 @@ local _hook_OnSizeChanged = function(self) self.SuperBorder[4]:SetSize(heightScale,heightScale) end - -local function ApplyTooltipSkins() +function MOD:SetCustomStyle(tooltip) + if(not tooltip) then return end local barHeight = GameTooltipStatusBar:GetHeight() + local barOffset = 0 + local alpha = 0.2 + if(tooltip == GameTooltip) then + barOffset = (barHeight + 6) * -1 + alpha = 0.5 + end + local mask = CreateFrame("Frame", nil, tooltip) + mask:SetPoint("TOPLEFT", tooltip, "TOPLEFT", -1, 1) + mask:SetPoint("BOTTOMRIGHT", tooltip, "BOTTOMRIGHT", 1, barOffset) + mask:SetFrameLevel(0) + mask.ToggleHeight = barOffset + mask.ToggleAlpha = alpha + + --[[ STARBURST TOP ]] + mask[1] = mask:CreateTexture(nil, "BACKGROUND") + mask[1]:SetPoint("BOTTOMLEFT", mask, "TOPLEFT", 0, 0) + mask[1]:SetHeight(mask:GetWidth() * 0.25) + mask[1]:SetWidth(mask:GetWidth() * 0.25) + -- mask[1]:SetTexture(MOD.media.topArt) + -- mask[1]:SetVertexColor(0,0,0) + -- mask[1]:SetBlendMode("BLEND") + -- mask[1]:SetAlpha(alpha) + --[[ STARBURST BOTTOM ]] + mask[2] = mask:CreateTexture(nil, "BACKGROUND") + mask[2]:SetPoint("TOPRIGHT", mask, "BOTTOMRIGHT", 0, 0) + mask[2]:SetHeight(mask:GetWidth() * 0.25) + mask[2]:SetWidth(mask:GetWidth() * 0.25) + --mask[2]:SetTexture(MOD.media.bottomArt) + --mask[2]:SetVertexColor(0,0,0) + --mask[2]:SetBlendMode("BLEND") + --mask[2]:SetAlpha(alpha) + --[[ HALFTONE RIGHT ]] + mask[3] = mask:CreateTexture(nil, "BACKGROUND") + mask[3]:SetPoint("LEFT", mask, "RIGHT", 0, 0) + mask[3]:SetSize(64,64) + -- mask[3]:SetTexture(MOD.media.rightArt) + -- mask[3]:SetVertexColor(0,0,0) + -- mask[3]:SetBlendMode("BLEND") + -- mask[3]:SetAlpha(alpha) + --[[ HALFTONE LEFT ]] + mask[4] = mask:CreateTexture(nil, "BACKGROUND") + mask[4]:SetPoint("RIGHT", mask, "LEFT", 0, 0) + mask[4]:SetSize(64,64) + -- mask[4]:SetTexture(MOD.media.leftArt) + -- mask[4]:SetVertexColor(0,0,0) + -- mask[4]:SetBlendMode("BLEND") + -- mask[4]:SetAlpha(alpha) + + --[[ BORDER TOP ]] + mask[5] = mask:CreateTexture(nil, "OVERLAY") + mask[5]:SetPoint("TOPLEFT", mask, "TOPLEFT", 0, 0) + mask[5]:SetPoint("TOPRIGHT", mask, "TOPRIGHT", 0, 0) + mask[5]:SetHeight(1) + mask[5]:SetTexture(0,0,0) + --[[ BORDER BOTTOM ]] + mask[6] = mask:CreateTexture(nil, "OVERLAY") + mask[6]:SetPoint("BOTTOMLEFT", mask, "BOTTOMLEFT", 0, 0) + mask[6]:SetPoint("BOTTOMRIGHT", mask, "BOTTOMRIGHT", 0, 0) + mask[6]:SetHeight(1) + mask[6]:SetTexture(0,0,0) + --[[ BORDER RIGHT ]] + mask[7] = mask:CreateTexture(nil, "OVERLAY") + mask[7]:SetPoint("TOPRIGHT", mask, "TOPRIGHT", 0, 0) + mask[7]:SetPoint("BOTTOMRIGHT", mask, "BOTTOMRIGHT", 0, 0) + mask[7]:SetWidth(1) + mask[7]:SetTexture(0,0,0) + --[[ BORDER LEFT ]] + mask[8] = mask:CreateTexture(nil, "OVERLAY") + mask[8]:SetPoint("TOPLEFT", mask, "TOPLEFT", 0, 0) + mask[8]:SetPoint("BOTTOMLEFT", mask, "BOTTOMLEFT", 0, 0) + mask[8]:SetWidth(1) + mask[8]:SetTexture(0,0,0) + + mask:SetBackdrop(SV.media.backdrop.tooltip) + --mask:SetBackdropBorderColor(0, 0, 0) + + mask.SetMaskBorderColor = SetMaskBorderColor + mask.ClearMaskColors = ClearMaskColors + + tooltip.SuperBorder = mask; + + SV.API:Set("Tooltip", tooltip) + + NewHook(tooltip, "SetBackdropColor", Override_BGColor) + --NewHook(tooltip, "SetBackdropBorderColor", Override_BorderColor) + tooltip:HookScript("OnShow", _hook_OnTipShow) + tooltip:HookScript("OnHide", _hook_OnTipHide) + tooltip:HookScript("OnSizeChanged", _hook_OnSizeChanged) +end + + +local function ApplyTooltipSkins() for i, tooltip in pairs(tooltips) do if(not tooltip) then return end if(not tooltip.InjectedDouble) then tooltip.InjectedDouble = {} end if(not tooltip.SuperBorder) then - local barOffset = 0 - local alpha = 0.2 - if(tooltip == GameTooltip) then - barOffset = (barHeight + 6) * -1 - alpha = 0.5 - end - - local mask = CreateFrame("Frame", nil, tooltip) - mask:SetPoint("TOPLEFT", tooltip, "TOPLEFT", -1, 1) - mask:SetPoint("BOTTOMRIGHT", tooltip, "BOTTOMRIGHT", 1, barOffset) - mask:SetFrameLevel(0) - mask.ToggleHeight = barOffset - mask.ToggleAlpha = alpha - - --[[ STARBURST TOP ]] - mask[1] = mask:CreateTexture(nil, "BACKGROUND") - mask[1]:SetPoint("BOTTOMLEFT", mask, "TOPLEFT", 0, 0) - mask[1]:SetHeight(mask:GetWidth() * 0.25) - mask[1]:SetWidth(mask:GetWidth() * 0.25) - -- mask[1]:SetTexture(MOD.media.topArt) - -- mask[1]:SetVertexColor(0,0,0) - -- mask[1]:SetBlendMode("BLEND") - -- mask[1]:SetAlpha(alpha) - --[[ STARBURST BOTTOM ]] - mask[2] = mask:CreateTexture(nil, "BACKGROUND") - mask[2]:SetPoint("TOPRIGHT", mask, "BOTTOMRIGHT", 0, 0) - mask[2]:SetHeight(mask:GetWidth() * 0.25) - mask[2]:SetWidth(mask:GetWidth() * 0.25) - --mask[2]:SetTexture(MOD.media.bottomArt) - --mask[2]:SetVertexColor(0,0,0) - --mask[2]:SetBlendMode("BLEND") - --mask[2]:SetAlpha(alpha) - --[[ HALFTONE RIGHT ]] - mask[3] = mask:CreateTexture(nil, "BACKGROUND") - mask[3]:SetPoint("LEFT", mask, "RIGHT", 0, 0) - mask[3]:SetSize(64,64) - -- mask[3]:SetTexture(MOD.media.rightArt) - -- mask[3]:SetVertexColor(0,0,0) - -- mask[3]:SetBlendMode("BLEND") - -- mask[3]:SetAlpha(alpha) - --[[ HALFTONE LEFT ]] - mask[4] = mask:CreateTexture(nil, "BACKGROUND") - mask[4]:SetPoint("RIGHT", mask, "LEFT", 0, 0) - mask[4]:SetSize(64,64) - -- mask[4]:SetTexture(MOD.media.leftArt) - -- mask[4]:SetVertexColor(0,0,0) - -- mask[4]:SetBlendMode("BLEND") - -- mask[4]:SetAlpha(alpha) - - --[[ BORDER TOP ]] - mask[5] = mask:CreateTexture(nil, "OVERLAY") - mask[5]:SetPoint("TOPLEFT", mask, "TOPLEFT", 0, 0) - mask[5]:SetPoint("TOPRIGHT", mask, "TOPRIGHT", 0, 0) - mask[5]:SetHeight(1) - mask[5]:SetTexture(0,0,0) - --[[ BORDER BOTTOM ]] - mask[6] = mask:CreateTexture(nil, "OVERLAY") - mask[6]:SetPoint("BOTTOMLEFT", mask, "BOTTOMLEFT", 0, 0) - mask[6]:SetPoint("BOTTOMRIGHT", mask, "BOTTOMRIGHT", 0, 0) - mask[6]:SetHeight(1) - mask[6]:SetTexture(0,0,0) - --[[ BORDER RIGHT ]] - mask[7] = mask:CreateTexture(nil, "OVERLAY") - mask[7]:SetPoint("TOPRIGHT", mask, "TOPRIGHT", 0, 0) - mask[7]:SetPoint("BOTTOMRIGHT", mask, "BOTTOMRIGHT", 0, 0) - mask[7]:SetWidth(1) - mask[7]:SetTexture(0,0,0) - --[[ BORDER LEFT ]] - mask[8] = mask:CreateTexture(nil, "OVERLAY") - mask[8]:SetPoint("TOPLEFT", mask, "TOPLEFT", 0, 0) - mask[8]:SetPoint("BOTTOMLEFT", mask, "BOTTOMLEFT", 0, 0) - mask[8]:SetWidth(1) - mask[8]:SetTexture(0,0,0) - - mask:SetBackdrop(SV.media.backdrop.tooltip) - --mask:SetBackdropBorderColor(0, 0, 0) - - mask.SetMaskBorderColor = SetMaskBorderColor - mask.ClearMaskColors = ClearMaskColors - - tooltip.SuperBorder = mask; - - SV.API:Set("Tooltip", tooltip) - - NewHook(tooltip, "SetBackdropColor", Override_BGColor) - --NewHook(tooltip, "SetBackdropBorderColor", Override_BorderColor) - tooltip:HookScript("OnShow", _hook_OnTipShow) - tooltip:HookScript("OnHide", _hook_OnTipHide) - tooltip:HookScript("OnSizeChanged", _hook_OnSizeChanged) + MOD:SetCustomStyle(tooltip) tremove(tooltips, i) end end