You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
437 lines
13 KiB
437 lines
13 KiB
local E, L, V, P, G = unpack(ElvUI)
|
|
local S = E:GetModule('Skins')
|
|
local TT = E:GetModule('Tooltip')
|
|
|
|
local _G = _G
|
|
local next = next
|
|
local unpack = unpack
|
|
local hooksecurefunc = hooksecurefunc
|
|
|
|
local SessionCommand_ButtonAtlases = {
|
|
[Enum.QuestSessionCommand.Start] = 'QuestSharing-DialogIcon',
|
|
[Enum.QuestSessionCommand.Stop] = 'QuestSharing-Stop-DialogIcon'
|
|
}
|
|
|
|
local function UpdateExecuteCommandAtlases(frame, command)
|
|
frame.ExecuteSessionCommand:SetNormalTexture(E.ClearTexture)
|
|
frame.ExecuteSessionCommand:SetPushedTexture(E.ClearTexture)
|
|
frame.ExecuteSessionCommand:SetDisabledTexture(E.ClearTexture)
|
|
|
|
local atlas = SessionCommand_ButtonAtlases[command]
|
|
if atlas then
|
|
frame.ExecuteSessionCommand.normalIcon:SetAtlas(atlas)
|
|
end
|
|
end
|
|
|
|
local function NotifyDialogShow(_, dialog)
|
|
if dialog.IsSkinned then return end
|
|
|
|
dialog:StripTextures()
|
|
dialog:SetTemplate('Transparent')
|
|
|
|
S:HandleButton(dialog.ButtonContainer.Confirm)
|
|
S:HandleButton(dialog.ButtonContainer.Decline)
|
|
|
|
local minimize = dialog.MinimizeButton
|
|
if minimize then
|
|
minimize:StripTextures()
|
|
minimize:Size(16)
|
|
|
|
minimize.tex = minimize:CreateTexture(nil, 'OVERLAY')
|
|
minimize.tex:SetTexture(E.Media.Textures.MinusButton)
|
|
minimize.tex:SetInside()
|
|
|
|
minimize:SetHighlightTexture(130837, 'ADD') -- Interface\Buttons\UI-PlusButton-Hilight
|
|
end
|
|
|
|
dialog.IsSkinned = true
|
|
end
|
|
|
|
local function SkinHeaders(header, isCalling)
|
|
if header.IsSkinned then return end
|
|
|
|
if header.Background then header.Background:SetAlpha(.7) end
|
|
if header.TopFiligree then header.TopFiligree:Hide() end
|
|
if header.Divider then header.Divider:Hide() end
|
|
|
|
header.HighlightTexture:SetAllPoints(header.Background)
|
|
header.HighlightTexture:SetAlpha(0)
|
|
|
|
local collapseButton = isCalling and header or header.CollapseButton
|
|
if collapseButton then
|
|
collapseButton:GetPushedTexture():SetAlpha(0)
|
|
collapseButton:GetHighlightTexture():SetAlpha(0)
|
|
S:HandleCollapseTexture(collapseButton, true)
|
|
end
|
|
|
|
header.IsSkinned = true
|
|
end
|
|
|
|
local function QuestLogQuests()
|
|
local r, g, b = unpack(E.media.rgbvaluecolor)
|
|
|
|
for button in _G.QuestScrollFrame.headerFramePool:EnumerateActive() do
|
|
if button.ButtonText and not button.IsSkinned then
|
|
button:StripTextures()
|
|
button:CreateBackdrop('Transparent')
|
|
button:GetHighlightTexture():SetColorTexture(r, g, b, .25)
|
|
button.ButtonText:FontTemplate(nil, 16)
|
|
button.IsSkinned = true
|
|
end
|
|
end
|
|
|
|
for button in _G.QuestScrollFrame.titleFramePool:EnumerateActive() do
|
|
if not button.IsSkinned then
|
|
if button.Checkbox then
|
|
button.Checkbox:StripTextures(true)
|
|
button.Checkbox:CreateBackdrop()
|
|
end
|
|
|
|
button.IsSkinned = true
|
|
end
|
|
end
|
|
|
|
for header in _G.QuestScrollFrame.campaignHeaderFramePool:EnumerateActive() do
|
|
if header.Text and not header.IsSkinned then
|
|
header.Text:FontTemplate(nil, 16)
|
|
header.Progress:FontTemplate(nil, 12)
|
|
|
|
header.IsSkinned = true
|
|
end
|
|
end
|
|
|
|
for header in _G.QuestScrollFrame.campaignHeaderMinimalFramePool:EnumerateActive() do
|
|
if header.CollapseButton and not header.IsSkinned then
|
|
header:StripTextures()
|
|
header.Background:CreateBackdrop('Transparent')
|
|
header.Highlight:SetColorTexture(r, g, b, 0.75)
|
|
header.IsSkinned = true
|
|
end
|
|
end
|
|
end
|
|
|
|
local EventsFrameHookedElements = {}
|
|
local function EventsFrameHighlightTexture(element)
|
|
local rr, gg, bb = unpack(E.media.rgbvaluecolor)
|
|
element:SetTexture(E.Media.Textures.White8x8)
|
|
element:SetVertexColor(rr, gg, bb)
|
|
element:SetAlpha(0.2)
|
|
end
|
|
|
|
local function EventsFrameBackgroundNormal(element, texture)
|
|
if texture ~= E.Media.Textures.NormTex then
|
|
local r, g, b = unpack(E.media.backdropcolor)
|
|
element:SetTexture(E.Media.Textures.NormTex)
|
|
element:SetVertexColor(r, g, b)
|
|
element:SetAlpha(0.5)
|
|
|
|
local parent = element:GetParent()
|
|
if parent and parent.Highlight then
|
|
EventsFrameHighlightTexture(parent.Highlight)
|
|
end
|
|
end
|
|
end
|
|
|
|
local EventsFrameFunctions = {
|
|
function(element) -- 1: OngoingHeader
|
|
if not element.Background.backdrop then
|
|
element.Background:StripTextures()
|
|
element.Background:CreateBackdrop('Transparent')
|
|
end
|
|
|
|
element.Label:SetTextColor(1, 1, 1)
|
|
end,
|
|
function(element) -- 2: OngoingEvent
|
|
if not EventsFrameHookedElements[element] then
|
|
hooksecurefunc(element.Background, 'SetAtlas', EventsFrameBackgroundNormal)
|
|
EventsFrameHookedElements[element] = element.Background
|
|
end
|
|
end,
|
|
function(element) -- 3: ScheduledHeader
|
|
if not element.Background.backdrop then
|
|
element.Background:StripTextures()
|
|
element.Background:CreateBackdrop('Transparent')
|
|
end
|
|
|
|
element.Label:SetTextColor(1, 1, 1)
|
|
end,
|
|
function(element) -- 4: ScheduledEvent
|
|
if element.Highlight then
|
|
EventsFrameHighlightTexture(element.Highlight)
|
|
end
|
|
end
|
|
}
|
|
|
|
local function EventsFrameCallback(_, frame, elementData)
|
|
if not elementData.data then return end
|
|
|
|
local func = EventsFrameFunctions[elementData.data.entryType]
|
|
if func then
|
|
func(frame)
|
|
end
|
|
end
|
|
|
|
-- The original script here would taint the Quest Objective Tracker Button, so swapping to our own ~Simpy
|
|
function S:WorldMap_QuestMapHide()
|
|
local QuestModelScene = _G.QuestModelScene
|
|
if self:GetParent() == QuestModelScene:GetParent() then -- variant of QuestFrame_HideQuestPortrait
|
|
QuestModelScene:SetParent(nil)
|
|
QuestModelScene:Hide()
|
|
end
|
|
end
|
|
|
|
function S:WorldMapFrame()
|
|
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.worldmap) then return end
|
|
|
|
local WorldMapFrame = _G.WorldMapFrame
|
|
WorldMapFrame:StripTextures()
|
|
WorldMapFrame.ScrollContainer:SetTemplate()
|
|
WorldMapFrame:CreateBackdrop('Transparent')
|
|
WorldMapFrame.backdrop:Point('TOPLEFT', WorldMapFrame, 'TOPLEFT', -8, 0)
|
|
WorldMapFrame.backdrop:Point('BOTTOMRIGHT', WorldMapFrame, 'BOTTOMRIGHT', 6, -8)
|
|
|
|
local MapNavBar = WorldMapFrame.NavBar
|
|
MapNavBar:StripTextures()
|
|
MapNavBar.overlay:StripTextures()
|
|
MapNavBar:Point('TOPLEFT', 1, -40)
|
|
S:HandleButton(MapNavBar.homeButton)
|
|
MapNavBar.homeButton.text:FontTemplate()
|
|
S.HandleNavBarButtons(WorldMapFrame.NavBar)
|
|
|
|
-- Quest Frames
|
|
local QuestMapFrame = _G.QuestMapFrame
|
|
QuestMapFrame.VerticalSeparator:Hide()
|
|
QuestMapFrame:SetScript('OnHide', S.WorldMap_QuestMapHide)
|
|
|
|
local DetailsFrame = QuestMapFrame.DetailsFrame
|
|
S:HandleButton(DetailsFrame.BackFrame.BackButton, true)
|
|
S:HandleButton(DetailsFrame.AbandonButton, true)
|
|
DetailsFrame.ShareButton:StripTextures() -- strip the Blizz Art around from it
|
|
S:HandleButton(DetailsFrame.ShareButton, true)
|
|
S:HandleButton(DetailsFrame.TrackButton, true)
|
|
|
|
DetailsFrame.BackFrame:StripTextures()
|
|
DetailsFrame.BackFrame.BackButton:SetFrameLevel(5)
|
|
DetailsFrame.AbandonButton:SetFrameLevel(5)
|
|
DetailsFrame.ShareButton:SetFrameLevel(5)
|
|
DetailsFrame.TrackButton:SetFrameLevel(5)
|
|
DetailsFrame.TrackButton:Width(95)
|
|
|
|
local RewardsFrameContainer = DetailsFrame.RewardsFrameContainer
|
|
if E.private.skins.parchmentRemoverEnable then
|
|
DetailsFrame:StripTextures(true)
|
|
DetailsFrame.BackFrame:StripTextures()
|
|
DetailsFrame:CreateBackdrop()
|
|
DetailsFrame.backdrop:Point('TOPLEFT', -3, 5)
|
|
DetailsFrame.backdrop:Point('BOTTOMRIGHT', DetailsFrame.RewardsFrame, 'TOPRIGHT', -1, -12)
|
|
|
|
RewardsFrameContainer.RewardsFrame:StripTextures()
|
|
|
|
if QuestMapFrame.Background then
|
|
QuestMapFrame.Background:SetAlpha(0)
|
|
end
|
|
|
|
if DetailsFrame.SealMaterialBG then
|
|
DetailsFrame.SealMaterialBG:SetAlpha(0)
|
|
end
|
|
end
|
|
|
|
local QuestScrollFrame = _G.QuestScrollFrame
|
|
QuestScrollFrame:SetTemplate('Transparent')
|
|
|
|
QuestScrollFrame.Edge:SetAlpha(0)
|
|
QuestScrollFrame.BorderFrame:SetAlpha(0)
|
|
QuestScrollFrame.Contents.Separator:SetAlpha(0)
|
|
|
|
QuestScrollFrame.Background:SetDrawLayer('BACKGROUND', -1)
|
|
QuestScrollFrame.Background:SetVertexColor(1, 0.5, 0)
|
|
QuestScrollFrame.Background:SetAlpha(0.9)
|
|
|
|
if E.private.skins.parchmentRemoverEnable then
|
|
QuestScrollFrame.Background:SetAlpha(0)
|
|
else
|
|
QuestScrollFrame.Center:Hide()
|
|
end
|
|
|
|
SkinHeaders(QuestScrollFrame.Contents.StoryHeader)
|
|
S:HandleEditBox(QuestScrollFrame.SearchBox)
|
|
|
|
local QuestScrollBar = _G.QuestScrollFrame.ScrollBar
|
|
S:HandleTrimScrollBar(QuestScrollBar)
|
|
QuestScrollBar:Point('TOPLEFT', _G.QuestDetailFrame, 'TOPRIGHT', 4, -15)
|
|
QuestScrollBar:Point('BOTTOMLEFT', _G.QuestDetailFrame, 'BOTTOMRIGHT', 9, 10)
|
|
|
|
if E.private.skins.blizzard.tooltip then
|
|
TT:SetStyle(QuestMapFrame.QuestsFrame.StoryTooltip)
|
|
end
|
|
|
|
S:HandleTrimScrollBar(_G.QuestMapDetailsScrollFrame.ScrollBar)
|
|
|
|
S:HandleNextPrevButton(WorldMapFrame.SidePanelToggle.CloseButton, 'left')
|
|
S:HandleNextPrevButton(WorldMapFrame.SidePanelToggle.OpenButton, 'right')
|
|
|
|
local MapBorderFrame = WorldMapFrame.BorderFrame
|
|
MapBorderFrame:StripTextures()
|
|
MapBorderFrame:SetFrameStrata(WorldMapFrame:GetFrameStrata())
|
|
MapBorderFrame.NineSlice:Hide()
|
|
|
|
S:HandleCloseButton(MapBorderFrame.CloseButton)
|
|
S:HandleMaxMinFrame(MapBorderFrame.MaximizeMinimizeFrame)
|
|
|
|
if E.global.general.disableTutorialButtons then
|
|
MapBorderFrame.Tutorial:Kill()
|
|
end
|
|
|
|
do -- Add a hook to adjust the OverlayFrames
|
|
hooksecurefunc(WorldMapFrame, 'AddOverlayFrame', S.WorldMapMixin_AddOverlayFrame)
|
|
|
|
local Dropdown, Tracking, Pin = unpack(WorldMapFrame.overlayFrames)
|
|
S:HandleDropDownBox(Dropdown) -- NavBar handled in ElvUI/modules/skins/misc
|
|
|
|
Tracking:StripTextures()
|
|
Tracking.Icon:SetTexture(136460) -- Interface\Minimap\Tracking/None
|
|
Tracking:SetHighlightTexture(136460, 'ADD')
|
|
|
|
local TrackingHighlight = Tracking:GetHighlightTexture()
|
|
TrackingHighlight:SetAllPoints(Tracking.Icon)
|
|
|
|
Pin:StripTextures()
|
|
Pin.Icon:SetAtlas('Waypoint-MapPin-Untracked')
|
|
Pin.ActiveTexture:SetAtlas('Waypoint-MapPin-Tracked')
|
|
Pin.ActiveTexture:SetAllPoints(Pin.Icon)
|
|
Pin:SetHighlightTexture(3500068, 'ADD') -- Interface\Waypoint\WaypoinMapPinUI
|
|
|
|
local PinHighlight = Pin:GetHighlightTexture()
|
|
PinHighlight:SetAllPoints(Pin.Icon)
|
|
PinHighlight:SetTexCoord(0.3203125, 0.5546875, 0.015625, 0.484375)
|
|
end
|
|
|
|
-- 8.2.5 Party Sync | Credits Aurora/Shestak
|
|
QuestMapFrame.QuestSessionManagement:StripTextures()
|
|
|
|
local ExecuteSessionCommand = QuestMapFrame.QuestSessionManagement.ExecuteSessionCommand
|
|
ExecuteSessionCommand:SetTemplate()
|
|
ExecuteSessionCommand:StyleButton()
|
|
|
|
local ExecuteSessionIcon = ExecuteSessionCommand:CreateTexture(nil, 'ARTWORK')
|
|
ExecuteSessionIcon:Point('TOPLEFT', 0, 0)
|
|
ExecuteSessionIcon:Point('BOTTOMRIGHT', 0, 0)
|
|
ExecuteSessionCommand.normalIcon = ExecuteSessionIcon
|
|
|
|
hooksecurefunc(QuestMapFrame.QuestSessionManagement, 'UpdateExecuteCommandAtlases', UpdateExecuteCommandAtlases)
|
|
hooksecurefunc(_G.QuestSessionManager, 'NotifyDialogShow', NotifyDialogShow)
|
|
hooksecurefunc('QuestLogQuests_Update', QuestLogQuests)
|
|
|
|
local MapLegend = QuestMapFrame.MapLegend
|
|
MapLegend.TitleText:FontTemplate(nil, 16)
|
|
|
|
local MapLegendScroll = MapLegend.ScrollFrame
|
|
MapLegend.BorderFrame:SetAlpha(0)
|
|
MapLegendScroll.Background:SetDrawLayer('BACKGROUND', -1)
|
|
MapLegendScroll.Background:SetVertexColor(0, 0.5, 1)
|
|
MapLegendScroll.Background:SetAlpha(0.9)
|
|
|
|
if E.private.skins.parchmentRemoverEnable then
|
|
MapLegendScroll:StripTextures()
|
|
MapLegendScroll:SetTemplate('Transparent')
|
|
else
|
|
MapLegendScroll:SetTemplate()
|
|
MapLegendScroll.Center:Hide()
|
|
end
|
|
|
|
S:HandleTrimScrollBar(MapLegendScroll.ScrollBar)
|
|
|
|
-- 11.1 New Side Tabs
|
|
local tabs = {
|
|
QuestMapFrame.QuestsTab,
|
|
QuestMapFrame.EventsTab,
|
|
QuestMapFrame.MapLegendTab
|
|
}
|
|
|
|
local function PositionQuestTab(tab, _, _, _, x, y)
|
|
if x ~= 10 or y ~= -10 then
|
|
tab:SetPoint('TOPLEFT', QuestMapFrame, 'TOPRIGHT', 10, -10)
|
|
end
|
|
end
|
|
|
|
local function PositionTabIcons(icon, _, anchor)
|
|
if anchor then
|
|
icon:SetPoint('CENTER')
|
|
end
|
|
end
|
|
|
|
for i, tab in next, tabs do
|
|
tab:CreateBackdrop()
|
|
tab:Size(30, 40)
|
|
|
|
if i == 1 then
|
|
tab:ClearAllPoints()
|
|
tab:SetPoint('TOPLEFT', QuestMapFrame, 'TOPRIGHT', 10, -10)
|
|
|
|
hooksecurefunc(tab, 'SetPoint', PositionQuestTab)
|
|
end
|
|
|
|
if tab.Icon then
|
|
tab.Icon:ClearAllPoints()
|
|
tab.Icon:SetPoint('CENTER')
|
|
|
|
hooksecurefunc(tab.Icon, 'SetPoint', PositionTabIcons)
|
|
end
|
|
|
|
if tab.Background then
|
|
tab.Background:SetAlpha(0)
|
|
end
|
|
|
|
if tab.SelectedTexture then
|
|
tab.SelectedTexture:SetDrawLayer('ARTWORK')
|
|
tab.SelectedTexture:SetColorTexture(1, 0.82, 0, 0.3)
|
|
tab.SelectedTexture:SetAllPoints()
|
|
end
|
|
|
|
for _, region in next, { tab:GetRegions() } do
|
|
if region:IsObjectType('Texture') and region:GetAtlas() == 'QuestLog-Tab-side-Glow-hover' then
|
|
region:SetColorTexture(1, 1, 1, 0.3)
|
|
region:SetAllPoints()
|
|
end
|
|
end
|
|
end
|
|
|
|
if QuestMapFrame.QuestsTab then
|
|
QuestMapFrame.QuestsTab:ClearAllPoints()
|
|
QuestMapFrame.QuestsTab:Point('TOPLEFT', QuestMapFrame, 'TOPRIGHT', 1, 2)
|
|
end
|
|
|
|
local EventsFrame = QuestMapFrame.EventsFrame
|
|
if EventsFrame then
|
|
EventsFrame.TitleText:FontTemplate(nil, 16)
|
|
|
|
local EventsFrameScrollBox = EventsFrame.ScrollBox
|
|
EventsFrame.BorderFrame:SetAlpha(0)
|
|
EventsFrameScrollBox.Background:SetDrawLayer('BACKGROUND', -1)
|
|
EventsFrameScrollBox.Background:SetVertexColor(1, 0, 1)
|
|
EventsFrameScrollBox.Background:SetAlpha(0.9)
|
|
|
|
if E.private.skins.parchmentRemoverEnable then
|
|
EventsFrameScrollBox:StripTextures()
|
|
EventsFrameScrollBox:SetTemplate('Transparent')
|
|
else
|
|
EventsFrameScrollBox:SetTemplate()
|
|
EventsFrameScrollBox.Center:Hide()
|
|
end
|
|
|
|
for _, region in next, { EventsFrame:GetRegions() } do
|
|
if region:IsObjectType('Texture') then
|
|
region:Hide() -- some weird yellow box ?
|
|
|
|
break
|
|
end
|
|
end
|
|
|
|
S:HandleTrimScrollBar(EventsFrame.ScrollBar)
|
|
|
|
-- Blizz new function for AddOns to access items on a ScrollBox. See Interface\AddOns\Blizzard_SharedXML\Shared\Scroll\ScrollUtil.lua
|
|
_G.ScrollUtil.AddAcquiredFrameCallback(EventsFrameScrollBox, EventsFrameCallback, EventsFrame, true)
|
|
end
|
|
end
|
|
|
|
S:AddCallback('WorldMapFrame')
|
|
|