diff --git a/Interface/AddOns/SVUI/framework/api/api_layout.lua b/Interface/AddOns/SVUI/framework/api/api_layout.lua index a37486e..c09ed41 100644 --- a/Interface/AddOns/SVUI/framework/api/api_layout.lua +++ b/Interface/AddOns/SVUI/framework/api/api_layout.lua @@ -126,13 +126,14 @@ local _purgatory = CreateFrame("Frame", nil) _purgatory:Hide() local function Die(self) - if self.UnregisterAllEvents then + if(self.SetAtlas) then self.SetAtlas = SV.fubar end + if(self.UnregisterAllEvents) then self:UnregisterAllEvents() self:SetParent(_purgatory) else self:Hide() self.Show = SV.fubar - end + end end local function RemoveTextures(self, option) diff --git a/Interface/AddOns/SVUI/framework/api/api_templates.lua b/Interface/AddOns/SVUI/framework/api/api_templates.lua index 8db352e..a7dc2a1 100644 --- a/Interface/AddOns/SVUI/framework/api/api_templates.lua +++ b/Interface/AddOns/SVUI/framework/api/api_templates.lua @@ -276,14 +276,16 @@ end COOLDOWN HELPER ########################################################## ]]-- -local function CreateCooldown(button) +local function CreateCooldown(button, muted) local cooldown = button:GetName() and _G[button:GetName().."Cooldown"] if(cooldown) then if(not SV.db.general or (SV.db.general and (not SV.db.general.cooldown))) then return end cooldown:ClearAllPoints() cooldown:FillInner() - cooldown:SetSwipeColor(0, 0, 0, 1) - cooldown:SetHideCountdownNumbers(true) + cooldown:SetDrawEdge(false) + if(not muted) then + cooldown:SetSwipeColor(0, 0, 0, 1) + end if(not cooldown.HookedCooldown) then hooksecurefunc(cooldown, "SetCooldown", _hook_Cooldown_SetCooldown) @@ -410,7 +412,7 @@ local function CreatePanelTemplate(frame, templateName, underlay, noupdate, padd end end -local function CreateButtonPanel(frame, noChecked, brightChecked) +local function CreateButtonPanel(frame, noChecked, brightChecked, mutedCooldown) if(frame.Left) then frame.Left:SetAlpha(0) @@ -475,7 +477,7 @@ local function CreateButtonPanel(frame, noChecked, brightChecked) frame:SetCheckedTexture(frame.checked) end - CreateCooldown(frame) + CreateCooldown(frame, mutedCooldown) end --[[ ########################################################## @@ -715,11 +717,11 @@ local function SetButtonTemplate(self, invisible, overridePadding, xOffset, yOff CreateCooldown(self) end -local function SetSlotTemplate(self, underlay, padding, x, y, shadowAlpha) +local function SetSlotTemplate(self, underlay, padding, x, y, shadowAlpha, mutedCooldown) if(not self or (self and self.Panel)) then return end padding = padding or 1 CreatePanelTemplate(self, "Slot", underlay, true, padding, x, y) - CreateButtonPanel(self, true) + CreateButtonPanel(self, true, nil, mutedCooldown) if(shadowAlpha) then self.Panel.Shadow:SetAttribute("shadowAlpha", shadowAlpha) end @@ -740,15 +742,6 @@ local function SetCheckboxTemplate(self, shrink, x, y) self:SetSize(width, height) CreatePanelTemplate(self, "Inset", true, true, 1, x, y) - --CreateButtonPanel(self, false, true) - - -- hooksecurefunc(self, "SetChecked", function(self, checked) - -- local r,g,b = 0,0,0 - -- if(checked == true) then - -- r,g,b = self:GetCheckedTexture():GetVertexColor() - -- end - -- self:SetBackdropBorderColor(r,g,b) - -- end) end local function SetEditboxTemplate(self, x, y, fixed) diff --git a/Interface/AddOns/SVUI/framework/movers/mover_mentalo.lua b/Interface/AddOns/SVUI/framework/movers/mover_mentalo.lua index 53fec21..27d6ca9 100644 --- a/Interface/AddOns/SVUI/framework/movers/mover_mentalo.lua +++ b/Interface/AddOns/SVUI/framework/movers/mover_mentalo.lua @@ -1005,6 +1005,13 @@ function Mentalo:Initialize() MentaloDraggablesUpdate(self) self:SetPositions() + + --PET JOURNAL TAINT FIX (STILL NEEDED?) + local info = UIPanelWindows["PetJournalParent"]; + for name, value in pairs(info) do + PetJournalParent:SetAttribute("UIPanelLayout-"..name, value); + end + PetJournalParent:SetAttribute("UIPanelLayout-defined", true); end SV.Mentalo = Mentalo \ No newline at end of file diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_AuraWatch/oUF_AuraWatch.lua b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_AuraWatch/oUF_AuraWatch.lua index d2bd366..3e83575 100644 --- a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_AuraWatch/oUF_AuraWatch.lua +++ b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_AuraWatch/oUF_AuraWatch.lua @@ -216,7 +216,7 @@ local function setupIcons(self) icon.name = name if not icon.cd and not (watch.hideCooldown or icon.hideCooldown) then - local cd = CreateFrame("Cooldown", nil, icon) + local cd = CreateFrame("Cooldown", nil, icon, "CooldownFrameTemplate") cd:SetAllPoints(icon) icon.cd = cd end diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Combatant/oUF_Combatant.lua b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Combatant/oUF_Combatant.lua index f95e27d..833d224 100644 --- a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Combatant/oUF_Combatant.lua +++ b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Combatant/oUF_Combatant.lua @@ -134,7 +134,7 @@ local Enable = function(self, unit) self:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED", Update) self:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED", Update) if not trinket.CD then - trinket.CD = CreateFrame("Cooldown", nil, trinket) + trinket.CD = CreateFrame("Cooldown", nil, trinket, "CooldownFrameTemplate") trinket.CD:SetAllPoints(trinket) end diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/oUF/elements/aura.lua b/Interface/AddOns/SVUI/libs/oUF_Villain/oUF/elements/aura.lua index ccaba42..e723054 100644 --- a/Interface/AddOns/SVUI/libs/oUF_Villain/oUF/elements/aura.lua +++ b/Interface/AddOns/SVUI/libs/oUF_Villain/oUF/elements/aura.lua @@ -30,24 +30,15 @@ local createAuraIcon = function(icons, index) button:SetWidth(icons.size or 16) button:SetHeight(icons.size or 16) - local cd = CreateFrame("Cooldown", nil, button) - cd:SetPoint("TOPLEFT", button, "TOPLEFT", 1, -1) - cd:SetPoint("BOTTOMRIGHT", button, "BOTTOMRIGHT", -1, 1) + local cd = CreateFrame("Cooldown", nil, button, "CooldownFrameTemplate") + cd:SetAllPoints(button) - local text = cd:CreateFontString(nil, "OVERLAY") - text:SetFont(icons.textFont or [[Fonts\FRIZQT__.TTF]], icons.textSize or 10, icons.textOutline or "NONE") - text:SetPoint("CENTER", 1, 1) - text:SetJustifyH("CENTER") - - local icon = button:CreateTexture(nil, "ARTWORK") - icon:SetTexCoord(0.1, 0.9, 0.1, 0.9) - icon:SetPoint("TOPLEFT", button, "TOPLEFT", 1, -1) - icon:SetPoint("BOTTOMRIGHT", button, "BOTTOMRIGHT", -1, 1) + local icon = button:CreateTexture(nil, "BORDER") + icon:SetAllPoints(button) local count = button:CreateFontString(nil, "OVERLAY") - count:SetFont(icons.textFont or [[Fonts\FRIZQT__.TTF]], icons.textSize or 10, icons.textOutline or "NONE") + count:SetFontObject(NumberFontNormal) count:SetPoint("BOTTOMRIGHT", button, "BOTTOMRIGHT", -1, 0) - count:SetJustifyH("RIGHT") local overlay = button:CreateTexture(nil, "OVERLAY") overlay:SetTexture"Interface\\Buttons\\UI-Debuff-Overlays" @@ -72,7 +63,6 @@ local createAuraIcon = function(icons, index) button.icon = icon button.count = count button.cd = cd - button.text = text if(icons.PostCreateIcon) then icons:PostCreateIcon(button) end diff --git a/Interface/AddOns/SVUI/packages/actionbar/SVBar.lua b/Interface/AddOns/SVUI/packages/actionbar/SVBar.lua index 3f7a44d..f46681c 100644 --- a/Interface/AddOns/SVUI/packages/actionbar/SVBar.lua +++ b/Interface/AddOns/SVUI/packages/actionbar/SVBar.lua @@ -263,7 +263,7 @@ local function SaveActionButton(parent) end MOD:FixKeybindText(parent) MOD.ButtonCache[parent] = true - parent:SetSlotTemplate(true, 2, 0, 0, 0.75) + parent:SetSlotTemplate(true, 2, 0, 0, 0.75, true) parent:SetCheckedTexture("") end @@ -633,7 +633,7 @@ do local Button_OnEnter = function(self) local parent = self:GetParent() if parent and parent._fade then - if self.cd then + if(self.cd) then self.cd:SetSwipeColor(0, 0, 0, 1) self.cd:SetDrawBling(true) end @@ -645,7 +645,7 @@ do local parent = self:GetParent() GameTooltip:Hide() if parent and parent._fade then - if self.cd then + if(self.cd) then self.cd:SetSwipeColor(0, 0, 0, 0) self.cd:SetDrawBling(false) end @@ -670,14 +670,23 @@ do if(selfcast) then button:SetAttribute("unit2", "player") - end + end + + if(bar._fade) then + if button.cd then + button.cd:SetSwipeColor(0, 0, 0, 0) + button.cd:SetDrawBling(false) + end + else + if button.cd then + button.cd:SetSwipeColor(0, 0, 0, 1) + button.cd:SetDrawBling(true) + end + end - if(not button._hookFade) then + if(not button._hookFade) then button:HookScript('OnEnter', Button_OnEnter) button:HookScript('OnLeave', Button_OnLeave) - -- if(hideByScale) then - -- NewHook(button, "SetAlpha", function(self) print(self:GetName());print(self:GetAlpha()) end) - -- end button._hookFade = true; end diff --git a/Interface/AddOns/SVUI/packages/aura/SVAura.lua b/Interface/AddOns/SVUI/packages/aura/SVAura.lua index f8a39f9..8e7ce52 100644 --- a/Interface/AddOns/SVUI/packages/aura/SVAura.lua +++ b/Interface/AddOns/SVUI/packages/aura/SVAura.lua @@ -103,6 +103,9 @@ local AURA_ICONS = { [[Interface\Addons\SVUI\assets\artwork\Icons\AURA-MULTISTRIKE]], [[Interface\Addons\SVUI\assets\artwork\Icons\AURA-VERSATILITY]] }; + +local BASIC_TEXTURE = [[Interface\AddOns\SVUI\assets\artwork\Bars\DEFAULT]]; + -- local RefHyperBuffs = { -- [1]={1126,115921,20217}, -- [2]={21562,109773,469}, @@ -208,7 +211,7 @@ do if name then if val > 0 and expires then local timeLeft = expires - GetTime() - if not self.timeLeft then + if(not self.timeLeft) then self.timeLeft = timeLeft; self:SetScript("OnUpdate", RefreshAuraTime) else @@ -241,15 +244,16 @@ do self.texture:SetTexture(tex) local offset = 2; local enchantIndex = self:GetName():sub(-1) - if enchantIndex:match("2") then + if(enchantIndex:match("2")) then offset = 5 end + if(quality) then + self:SetBackdropBorderColor(GetItemQualityColor(quality)) + end + local enchantInfo = select(offset, GetWeaponEnchantInfo()) - if(enchantInfo) then - if quality then - self:SetBackdropBorderColor(GetItemQualityColor(quality)) - end + if(enchantInfo) then self.offset = offset; self:SetScript("OnUpdate", RefreshAuraTime) self.nextUpdate = -1; @@ -265,48 +269,43 @@ do end function MOD:CreateIcon(aura) - if(not aura.Skinned) then - if aura.SetNormalTexture then aura:SetNormalTexture("") end - if aura.SetHighlightTexture then aura:SetHighlightTexture("") end - if aura.SetPushedTexture then aura:SetPushedTexture("") end - if aura.SetDisabledTexture then aura:SetDisabledTexture("") end - aura:SetBackdrop({ - bgFile = [[Interface\BUTTONS\WHITE8X8]], - tile = false, - tileSize = 0, - edgeFile = [[Interface\BUTTONS\WHITE8X8]], - edgeSize = 2, - insets = { - left = 0, - right = 0, - top = 0, - bottom = 0 - } - }) - aura:SetBackdropColor(0, 0, 0) - aura:SetBackdropBorderColor(0, 0, 0) - local cd = aura:GetName() and _G[aura:GetName().."Cooldown"] - if cd then - cd:ClearAllPoints() - cd:FillInner(aura, 0, 0) - end - aura.Skinned = true - end - local font = LSM:Fetch("font", SV.db.SVAura.font) + + aura:SetBackdrop({ + bgFile = [[Interface\BUTTONS\WHITE8X8]], + tile = false, + tileSize = 0, + edgeFile = [[Interface\BUTTONS\WHITE8X8]], + edgeSize = 2, + insets = { + left = 0, + right = 0, + top = 0, + bottom = 0 + } + }) + aura:SetBackdropColor(0, 0, 0) + aura:SetBackdropBorderColor(0, 0, 0) + aura.texture = aura:CreateTexture(nil, "BORDER") aura.texture:FillInner(aura, 2, 2) aura.texture:SetTexCoord(0.1, 0.9, 0.1, 0.9) + aura.count = aura:CreateFontString(nil, "ARTWORK") aura.count:SetPoint("BOTTOMRIGHT", (-1 + SV.db.SVAura.countOffsetH), (1 + SV.db.SVAura.countOffsetV)) aura.count:FontManager(font, SV.db.SVAura.fontSize, SV.db.SVAura.fontOutline) + aura.time = aura:CreateFontString(nil, "ARTWORK") aura.time:SetPoint("TOP", aura, "BOTTOM", 1 + SV.db.SVAura.timeOffsetH, 0 + SV.db.SVAura.timeOffsetV) aura.time:FontManager(font, SV.db.SVAura.fontSize, SV.db.SVAura.fontOutline) + aura.highlight = aura:CreateTexture(nil, "HIGHLIGHT") - aura.highlight:SetTexture(0, 0, 0, 0.45) - aura.highlight:FillInner() + aura.highlight:SetTexture(BASIC_TEXTURE) + aura.highlight:SetVertexColor(1, 1, 1, 0.45) + aura.highlight:FillInner(aura, 2, 2) + SV.Animate:Flash(aura) + aura:SetScript("OnAttributeChanged", Aura_OnAttributeChanged) end end @@ -487,14 +486,14 @@ function MOD:UpdateAuraHeader(auraHeader, auraType) local showBy = db.showBy local font = LSM:Fetch("font", SV.db.SVAura.font) - if auraType == "buffs" then + if(auraType == "buffs") then auraHeader:SetAttribute("consolidateTo", SV.db.SVAura.hyperBuffs.enable == true and 1 or 0) auraHeader:SetAttribute("weaponTemplate", ("SVUI_AuraTemplate%d"):format(db.size)) end auraHeader:SetAttribute("separateOwn", db.isolate) auraHeader:SetAttribute("sortMethod", db.sortMethod) - auraHeader:SetAttribute("sortDir", db.sortDir) + auraHeader:SetAttribute("sortDirection", db.sortDir) auraHeader:SetAttribute("maxWraps", db.maxWraps) auraHeader:SetAttribute("wrapAfter", db.wrapAfter) diff --git a/Interface/AddOns/SVUI/packages/map/SVMap.lua b/Interface/AddOns/SVUI/packages/map/SVMap.lua index be789bf..d6ec9c2 100644 --- a/Interface/AddOns/SVUI/packages/map/SVMap.lua +++ b/Interface/AddOns/SVUI/packages/map/SVMap.lua @@ -837,11 +837,6 @@ function MOD:Load() Minimap:SetScript("OnMouseWheel", MiniMap_MouseWheel) Minimap:SetScript("OnMouseUp", MiniMap_MouseUp) - local info = UIPanelWindows["PetJournalParent"]; - for name, value in pairs(info) do - PetJournalParent:SetAttribute("UIPanelLayout-"..name, value); - end - PetJournalParent:SetAttribute("UIPanelLayout-defined", true); SV.Mentalo:Add(mapHolder, L["Minimap"]) if(SV.db.SVMap.tinyWorldMap) then diff --git a/Interface/AddOns/SVUI/packages/plates/SVPlate.lua b/Interface/AddOns/SVUI/packages/plates/SVPlate.lua index b0b7783..fe1f198 100644 --- a/Interface/AddOns/SVUI/packages/plates/SVPlate.lua +++ b/Interface/AddOns/SVUI/packages/plates/SVPlate.lua @@ -877,33 +877,36 @@ do function UpdatePlateElements(plate, frame) ColorizeAndScale(plate, frame) local region = select(4, plate:GetRegions()) - if region and region:GetObjectType() == 'FontString' then + if(region and region:GetObjectType() == 'FontString') then plate.ref.level = region end - if plate.ref.level:IsShown() then + + if(plate.ref.level:IsShown()) then local level = plate.ref.level:GetObjectType() == 'FontString' and tonumber(plate.ref.level:GetText()) or nil local elite, boss, mylevel = plate.ref.eliteicon:IsShown(), plate.ref.skullicon:IsShown(), UnitLevel("player") frame.health.eliteborder:Hide() - if boss then + if(boss) then frame.level:SetText("??") frame.level:SetTextColor(0.8, 0.05, 0) frame.health.eliteborder:Show() - elseif level then + elseif(level) then frame.level:SetText(level..(elite and "+" or "")) frame.level:SetTextColor(plate.ref.level:GetTextColor()) if(elite) then frame.health.eliteborder:Show() end end - elseif plate.ref.skullicon:IsShown() and frame.level:GetText() ~= '??' then + elseif(plate.ref.skullicon:IsShown() and frame.level:GetText() ~= '??') then frame.level:SetText("??") frame.level:SetTextColor(0.8, 0.05, 0) end + if plate.setting.tiny then frame.level:SetText("") frame.level:Hide() - elseif not frame.level:IsShown() then + elseif(not frame.level:IsShown()) then frame.level:Show() end - if frame.name.SetText then + + if(frame.name.SetText) then frame.name:SetText(plate.name:GetText()) end end diff --git a/Interface/AddOns/SVUI/packages/stats/SVStats.lua b/Interface/AddOns/SVUI/packages/stats/SVStats.lua index 2339abb..e44b31e 100644 --- a/Interface/AddOns/SVUI/packages/stats/SVStats.lua +++ b/Interface/AddOns/SVUI/packages/stats/SVStats.lua @@ -357,27 +357,34 @@ do parent:RegisterEvent(event) end end + if config["event_handler"]then parent:SetScript("OnEvent", config["event_handler"]) config["event_handler"](parent, "SVUI_FORCE_RUN") end + if config["update_handler"]then parent:SetScript("OnUpdate", config["update_handler"]) config["update_handler"](parent, 20000) end + if config["click_handler"]then parent.onClick = config["click_handler"] end parent:SetScript("OnClick", Parent_OnClick) + if config["focus_handler"]then parent:SetScript("OnEnter", config["focus_handler"]) end + if config["blur_handler"]then parent:SetScript("OnLeave", config["blur_handler"]) else parent:SetScript("OnLeave", Stat_OnLeave) end + parent:Show() + if config["init_handler"]then config["init_handler"](parent) end @@ -576,7 +583,7 @@ function MOD:Load() self.Accountant[playerRealm]["gold"] = self.Accountant[playerRealm]["gold"] or {}; self.Accountant[playerRealm]["gold"][playerName] = self.Accountant[playerRealm]["gold"][playerName] or 0; self.Accountant[playerRealm]["tokens"] = self.Accountant[playerRealm]["tokens"] or {}; - self.Accountant[playerRealm]["tokens"][playerName] = self.Accountant[playerRealm]["tokens"][playerName] or 738; + self.Accountant[playerRealm]["tokens"][playerName] = self.Accountant[playerRealm]["tokens"][playerName] or {}; self:NewAnchor(SV.Dock.BottomCenter.Left, 3, "ANCHOR_CURSOR") self:NewAnchor(SV.Dock.BottomCenter.Right, 3, "ANCHOR_CURSOR") @@ -585,7 +592,6 @@ function MOD:Load() self:LoadServerGold() self:CacheRepData() - self:CacheTokenData() self.tooltip:SetParent(SV.Screen) self.tooltip:SetFrameStrata("DIALOG") diff --git a/Interface/AddOns/SVUI/packages/stats/stats/tokens.lua b/Interface/AddOns/SVUI/packages/stats/stats/tokens.lua index db26bed..af41ed9 100644 --- a/Interface/AddOns/SVUI/packages/stats/stats/tokens.lua +++ b/Interface/AddOns/SVUI/packages/stats/stats/tokens.lua @@ -43,8 +43,6 @@ local playerName = UnitName("player"); local playerRealm = GetRealmName(); local TokenEvents = {'PLAYER_ENTERING_WORLD','PLAYER_MONEY','CURRENCY_DISPLAY_UPDATE'}; -local TokenMenuList = {}; -local TokenParent; local function TokenInquiry(id, weekly, capped) local name, amount, tex, week, weekmax, maxed, discovered = GetCurrencyInfo(id) @@ -80,73 +78,73 @@ end local function TokensEventHandler(self, event,...) if not IsLoggedIn() or not self then return end - local id = MOD.Accountant[playerRealm]["tokens"][playerName]; + local id = MOD.Accountant[playerRealm]["tokens"][playerName][self.TokenStatIndex]; local _, current, tex = GetCurrencyInfo(id) local currentText = ("\124T%s:12\124t %s"):format(tex, current); self.text:SetText(currentText) end -local function AddToTokenMenu(id) +local function AddToTokenMenu(self, id) local name, _, tex, _, _, _, _ = GetCurrencyInfo(id) local itemName = "\124T"..tex..":12\124t "..name; local fn = function() - MOD.Accountant[playerRealm]["tokens"][playerName] = id; - TokensEventHandler(TokenParent) + MOD.Accountant[playerRealm]["tokens"][playerName][self.TokenStatIndex] = id; + TokensEventHandler(self) end - tinsert(TokenMenuList, {text = itemName, func = fn}); + tinsert(self.TokenMenuList, {text = itemName, func = fn}); end -function MOD:CacheTokenData() - twipe(TokenMenuList) +local function CacheTokenData(self) + twipe(self.TokenMenuList) local prof1, prof2, archaeology, _, cooking = GetProfessions() if archaeology then - AddToTokenMenu(398) - AddToTokenMenu(384) - AddToTokenMenu(393) - AddToTokenMenu(677) - AddToTokenMenu(400) - AddToTokenMenu(394) - AddToTokenMenu(397) - AddToTokenMenu(676) - AddToTokenMenu(401) - AddToTokenMenu(385) - AddToTokenMenu(399) - AddToTokenMenu(821) - AddToTokenMenu(829) - AddToTokenMenu(944) + AddToTokenMenu(self, 398) + AddToTokenMenu(self, 384) + AddToTokenMenu(self, 393) + AddToTokenMenu(self, 677) + AddToTokenMenu(self, 400) + AddToTokenMenu(self, 394) + AddToTokenMenu(self, 397) + AddToTokenMenu(self, 676) + AddToTokenMenu(self, 401) + AddToTokenMenu(self, 385) + AddToTokenMenu(self, 399) + AddToTokenMenu(self, 821) + AddToTokenMenu(self, 829) + AddToTokenMenu(self, 944) end if cooking then - AddToTokenMenu(81) - AddToTokenMenu(402) + AddToTokenMenu(self, 81) + AddToTokenMenu(self, 402) end if(prof1 == 9 or prof2 == 9) then - AddToTokenMenu(61) - AddToTokenMenu(361) - AddToTokenMenu(698) - - AddToTokenMenu(910) - AddToTokenMenu(999) - AddToTokenMenu(1020) - AddToTokenMenu(1008) - AddToTokenMenu(1017) + AddToTokenMenu(self, 61) + AddToTokenMenu(self, 361) + AddToTokenMenu(self, 698) + + AddToTokenMenu(self, 910) + AddToTokenMenu(self, 999) + AddToTokenMenu(self, 1020) + AddToTokenMenu(self, 1008) + AddToTokenMenu(self, 1017) end - AddToTokenMenu(697, false, true) - AddToTokenMenu(738) - AddToTokenMenu(615) - AddToTokenMenu(614) - AddToTokenMenu(395, false, true) - AddToTokenMenu(396, false, true) - AddToTokenMenu(390, true) - AddToTokenMenu(392, false, true) - AddToTokenMenu(391) - AddToTokenMenu(241) - AddToTokenMenu(416) - AddToTokenMenu(515) - AddToTokenMenu(776) - AddToTokenMenu(777) - AddToTokenMenu(789) - AddToTokenMenu(823) - AddToTokenMenu(824) + AddToTokenMenu(self, 697, false, true) + AddToTokenMenu(self, 738) + AddToTokenMenu(self, 615) + AddToTokenMenu(self, 614) + AddToTokenMenu(self, 395, false, true) + AddToTokenMenu(self, 396, false, true) + AddToTokenMenu(self, 390, true) + AddToTokenMenu(self, 392, false, true) + AddToTokenMenu(self, 391) + AddToTokenMenu(self, 241) + AddToTokenMenu(self, 416) + AddToTokenMenu(self, 515) + AddToTokenMenu(self, 776) + AddToTokenMenu(self, 777) + AddToTokenMenu(self, 789) + AddToTokenMenu(self, 823) + AddToTokenMenu(self, 824) end local function Tokens_OnEnter(self) @@ -223,9 +221,15 @@ local function Tokens_OnEnter(self) end local function Tokens_OnClick(self, button) - TokenParent = self; - MOD:CacheTokenData() - SV.Dropdown:Open(self, TokenMenuList) -end + CacheTokenData(self); + SV.Dropdown:Open(self, self.TokenMenuList) +end + +local function Tokens_OnInit(self) + self.TokenStatIndex = self:GetName() + self.TokenMenuList = {}; + MOD.Accountant[playerRealm]["tokens"][playerName][self.TokenStatIndex] = MOD.Accountant[playerRealm]["tokens"][playerName][self.TokenStatIndex] or 738; + CacheTokenData(self); +end -MOD:Extend('Tokens', TokenEvents, TokensEventHandler, nil, Tokens_OnClick, Tokens_OnEnter) \ No newline at end of file +MOD:Extend('Tokens', TokenEvents, TokensEventHandler, nil, Tokens_OnClick, Tokens_OnEnter, nil, Tokens_OnInit) \ No newline at end of file diff --git a/Interface/AddOns/SVUI/packages/tools/components/garrison.lua b/Interface/AddOns/SVUI/packages/tools/components/garrison.lua index ff827b0..539f00d 100644 --- a/Interface/AddOns/SVUI/packages/tools/components/garrison.lua +++ b/Interface/AddOns/SVUI/packages/tools/components/garrison.lua @@ -311,6 +311,6 @@ function MOD:UpdateGarrisonTool() end function MOD:LoadGarrisonTool() - if((not SV.db.SVTools.garrison) or self.GarrisonLoaded) then return end + if((not SV.db.SVTools.garrison) or self.GarrisonLoaded or (not GarrisonLandingPageMinimapButton)) then return end SV.Timers:ExecuteTimer(LoadToolBarGarrison, 5) end \ No newline at end of file diff --git a/Interface/AddOns/SVUI/packages/tools/components/questwatch.lua b/Interface/AddOns/SVUI/packages/tools/components/questwatch.lua index 879d79f..e916ddb 100644 --- a/Interface/AddOns/SVUI/packages/tools/components/questwatch.lua +++ b/Interface/AddOns/SVUI/packages/tools/components/questwatch.lua @@ -85,6 +85,26 @@ function MOD:QUEST_AUTOCOMPLETE(event) end end +local ShowSubDocklet = function(self) + local frame = self.FrameLink + if(frame and frame.Show) then + if(InCombatLockdown() and (frame.IsProtected and frame:IsProtected())) then return end + if(not frame:IsShown()) then + frame:Show() + end + end +end + +local HideSubDocklet = function(self) + local frame = self.FrameLink + if(frame and frame.Hide) then + if(InCombatLockdown() and (frame.IsProtected and frame:IsProtected())) then return end + if(frame:IsShown()) then + frame:Hide() + end + end +end + function MOD:LoadQuestWatch() local ObjectiveTrackerFrame = _G.ObjectiveTrackerFrame @@ -99,7 +119,6 @@ function MOD:LoadQuestWatch() ObjectiveTrackerFrame:ClearAllPoints() ObjectiveTrackerFrame:SetClampedToScreen(false) - ObjectiveTrackerFrame:SetParent(self.QuestWatch) ObjectiveTrackerFrame:SetAllPoints(self.QuestWatch) ObjectiveTrackerFrame:SetFrameLevel(self.QuestWatch:GetFrameLevel() + 1) ObjectiveTrackerFrame.ClearAllPoints = SV.fubar; @@ -170,7 +189,6 @@ function MOD:LoadQuestWatch() ObjectiveTrackerFrame:ClearAllPoints() ObjectiveTrackerFrame:SetClampedToScreen(false) - ObjectiveTrackerFrame:SetParent(listFrame) ObjectiveTrackerFrame:SetHeight(500) ObjectiveTrackerFrame:SetWidth(WIDTH) ObjectiveTrackerFrame:SetPoint("TOPRIGHT", listFrame, "TOPRIGHT", -31, 0) @@ -212,5 +230,9 @@ function MOD:LoadQuestWatch() self.QuestWatch.DockButton:MakeDefault(); self.QuestWatch:Show(); self:RegisterEvent("QUEST_AUTOCOMPLETE"); + + self.QuestWatch.FrameLink = ObjectiveTrackerFrame + self.QuestWatch:SetScript('OnShow', ShowSubDocklet); + self.QuestWatch:SetScript('OnHide', HideSubDocklet); end end \ No newline at end of file diff --git a/Interface/AddOns/SVUI/packages/unit/elements/auras.lua b/Interface/AddOns/SVUI/packages/unit/elements/auras.lua index faed861..94a8766 100644 --- a/Interface/AddOns/SVUI/packages/unit/elements/auras.lua +++ b/Interface/AddOns/SVUI/packages/unit/elements/auras.lua @@ -70,6 +70,7 @@ local CustomAuraFilter,CustomBarFilter; local AURA_FONT = [[Interface\AddOns\SVUI\assets\fonts\Display.ttf]]; local AURA_FONTSIZE = 11; local AURA_OUTLINE = "OUTLINE"; +local BASIC_TEXTURE = [[Interface\AddOns\SVUI\assets\artwork\Bars\DEFAULT]]; local shadowTex = [[Interface\AddOns\SVUI\assets\artwork\Template\GLOW]]; local counterOffsets = { ["TOPLEFT"] = {6, 1}, @@ -96,7 +97,7 @@ local textCounterOffsets = { LOCAL FUNCTIONS ########################################################## ]]-- -local AuraRemover_OnClick = function(self) +local AuraIcon_OnClick = function(self) if not IsShiftKeyDown() then return end local name = self.name; if name then @@ -106,35 +107,31 @@ local AuraRemover_OnClick = function(self) end end -local AuraBarRemover_OnClick = function(self) - if not IsShiftKeyDown() then return end - local name = self:GetParent().aura.name - if name then - SV:AddonMessage((L["The spell '%s' has been added to the Blocked unitframe aura filter."]):format(name)) - SV.filters["Blocked"][name] = {["enable"] = true, ["priority"] = 0} - MOD:RefreshUnitFrames() - end +local AuraIcon_OnEnter = function(self) + if(not self:IsVisible()) then return end + + GameTooltip:SetOwner(self, "ANCHOR_BOTTOMRIGHT") + self:UpdateTooltip() end -local PostCreateAuraBars = function(self) - self.iconHolder:RegisterForClicks("RightButtonUp") - self.iconHolder:SetScript("OnClick", AuraBarRemover_OnClick) -end +local AuraIcon_OnLeave = function() + GameTooltip:Hide() +end -local PostCreateAuraIcon = function(self, aura) - aura.cd.noOCC = true; - aura.cd.noCooldownCount = true; - aura.cd:SetReverse(true) - aura.overlay:SetTexture(0,0,0,0) - aura.stealable:SetTexture(0,0,0,0) - - if aura.styled then return end - if aura.SetNormalTexture then aura:SetNormalTexture("") end - if aura.SetHighlightTexture then aura:SetHighlightTexture("") end - if aura.SetPushedTexture then aura:SetPushedTexture("") end - if aura.SetDisabledTexture then aura:SetDisabledTexture("") end +local Aura_UpdateTooltip = function(self) + GameTooltip:SetUnitAura(self.parent.__owner.unit, self:GetID(), self.filter) +end + +local CreateAuraIcon = function(icons, index) + local aura = CreateFrame("Button", nil, icons) + aura:RemoveTextures() + aura:EnableMouse(true) + aura:RegisterForClicks('RightButtonUp') - aura:SetBackdrop({ + aura:SetWidth(icons.size or 16) + aura:SetHeight(icons.size or 16) + + aura:SetBackdrop({ bgFile = [[Interface\BUTTONS\WHITE8X8]], tile = false, tileSize = 0, @@ -149,110 +146,120 @@ local PostCreateAuraIcon = function(self, aura) }) aura:SetBackdropColor(0, 0, 0, 0) aura:SetBackdropBorderColor(0, 0, 0) - aura.icon:FillInner(aura, 1, 1) - aura.icon:SetTexCoord(0.1, 0.9, 0.1, 0.9) - aura:RegisterForClicks("RightButtonUp") - aura:SetScript("OnClick", AuraRemover_OnClick) - aura.styled = true -end -local ColorizeAuraBars = function(self) - local bars = self.bars; - for i = 1, #bars do - local auraBar = bars[i] - if not auraBar:IsVisible()then break end - local color - local spellName = auraBar.statusBar.aura.name; - local spellID = auraBar.statusBar.aura.spellID; - if(SV.filters["Defense"][spellName]) then - color = oUF_Villain.colors.shield_bars - elseif(SV.db.media.unitframes.spellcolor[spellName]) then - color = SV.db.media.unitframes.spellcolor[spellName] - end - if color then - auraBar.statusBar:SetStatusBarColor(unpack(color)) - auraBar:SetBackdropColor(color[1] * 0.25, color[2] * 0.25, color[3] * 0.25, 0.5) - else - local r, g, b = auraBar.statusBar:GetStatusBarColor() - auraBar:SetBackdropColor(r * 0.25, g * 0.25, b * 0.25, 0.5) - end - end + local cd = CreateFrame("Cooldown", nil, aura, "CooldownFrameTemplate"); + cd:FillInner(aura, 1, 1); + cd.noOCC = true; + cd.noCooldownCount = true; + cd:SetReverse(true); + cd:SetHideCountdownNumbers(true); + + local text = cd:CreateFontString(nil, 'OVERLAY'); + text:SetFontObject(NumberFontNormal); + text:SetPoint('CENTER', aura, 'CENTER', 1, 1); + text:SetJustifyH('CENTER'); + + local count = aura:CreateFontString(nil, "OVERLAY"); + count:SetFontObject(NumberFontNormal); + count:SetPoint("BOTTOMRIGHT", aura, "BOTTOMRIGHT", -1, 0); + + local icon = aura:CreateTexture(nil, "BORDER"); + icon:SetAllPoints(aura); + icon:FillInner(aura, 1, 1); + icon:SetTexCoord(0.1, 0.9, 0.1, 0.9); + + local overlay = aura:CreateTexture(nil, "OVERLAY"); + overlay:SetAllPoints(aura); + overlay:SetTexture(BASIC_TEXTURE); + overlay:SetVertexColor(0, 0, 0); + overlay:Hide(); + + -- local stealable = aura:CreateTexture(nil, 'OVERLAY') + -- stealable:SetTexture(0,0,0,0) + -- stealable:SetPoint('TOPLEFT', -3, 3) + -- stealable:SetPoint('BOTTOMRIGHT', 3, -3) + -- aura.stealable = stealable + + aura.UpdateTooltip = Aura_UpdateTooltip; + aura:SetScript("OnEnter", AuraIcon_OnEnter); + aura:SetScript("OnLeave", AuraIcon_OnLeave); + aura:SetScript("OnClick", AuraIcon_OnClick); + + tinsert(icons, aura); + + aura.parent = icons; + aura.cd = cd; + aura.text = text; + aura.icon = icon; + aura.count = count; + aura.overlay = overlay; + + return aura end local UpdateAuraTimer = function(self, elapsed) self.expiration = self.expiration - elapsed; - - if(self.expiration <= 0) then + if(self.nextUpdate > 0) then + self.nextUpdate = self.nextUpdate - elapsed; + elseif(self.expiration <= 0) then self:SetScript("OnUpdate", nil) - if(self.text:GetFont()) then - self.text:SetText("") + self.text:SetText('') + else + local expires = self.expiration; + local calc, timeLeft = 0, 0; + local timeFormat; + if expires < 60 then + if expires >= 4 then + timeLeft = floor(expires) + timeFormat = "|cffffff00%d|r" + self.nextUpdate = 0.51 + else + timeLeft = expires + timeFormat = "|cffff0000%.1f|r" + self.nextUpdate = 0.051 + end + elseif expires < 3600 then + timeFormat = "|cffffffff%dm|r" + timeLeft = ceil(expires / 60); + calc = floor((expires / 60) + .5); + self.nextUpdate = calc > 1 and ((expires - calc) * 29.5) or (expires - 59.5); + elseif expires < 86400 then + timeFormat = "|cff66ffff%dh|r" + timeLeft = ceil(expires / 3600); + calc = floor((expires / 3600) + .5); + self.nextUpdate = calc > 1 and ((expires - calc) * 1799.5) or (expires - 3570); + else + timeFormat = "|cff6666ff%dd|r" + timeLeft = ceil(expires / 86400); + calc = floor((expires / 86400) + .5); + self.nextUpdate = calc > 1 and ((expires - calc) * 43199.5) or (expires - 86400); end - return - end - - if(self.nextUpdate > 0) then - self.nextUpdate = self.nextUpdate - elapsed; - return - end - - local expires = self.expiration; - local calc, timeLeft = 0, 0; - local timeFormat; - if expires < 60 then - if expires >= 4 then - timeLeft = floor(expires) - timeFormat = "|cffffff00%d|r" - self.nextUpdate = 0.51 - else - timeLeft = expires - timeFormat = "|cffff0000%.1f|r" - self.nextUpdate = 0.051 - end - elseif expires < 3600 then - timeFormat = "|cffffffff%dm|r" - timeLeft = ceil(expires / 60); - calc = floor((expires / 60) + .5); - self.nextUpdate = calc > 1 and ((expires - calc) * 29.5) or (expires - 59.5); - elseif expires < 86400 then - timeFormat = "|cff66ffff%dh|r" - timeLeft = ceil(expires / 3600); - calc = floor((expires / 3600) + .5); - self.nextUpdate = calc > 1 and ((expires - calc) * 1799.5) or (expires - 3570); - else - timeFormat = "|cff6666ff%dd|r" - timeLeft = ceil(expires / 86400); - calc = floor((expires / 86400) + .5); - self.nextUpdate = calc > 1 and ((expires - calc) * 43199.5) or (expires - 86400); - end - if self.text:GetFont() then - self.text:SetFormattedText(timeFormat, timeLeft) - else self.text:SetFormattedText(timeFormat, timeLeft) end end local PostUpdateAuraIcon = function(self, unit, button, index, offset) local name, _, _, _, dtype, duration, expiration, _, isStealable = UnitAura(unit, index, button.filter) - local isFriend = UnitIsFriend('player', unit) == 1 and true or false + local isFriend = (UnitIsFriend('player', unit) == 1) and true or false if button.isDebuff then if(not isFriend and button.owner and button.owner ~= "player" and button.owner ~= "vehicle") then - button:SetBackdropBorderColor(0.9, 0.1, 0.1) + button:SetBackdropBorderColor(0.9, 0.1, 0.1, 1) button.icon:SetDesaturated((unit and not unit:find('arena%d')) and true or false) else local color = DebuffTypeColor[dtype] or DebuffTypeColor.none if (name == "Unstable Affliction" or name == "Vampiric Touch") and SV.class ~= "WARLOCK" then - button:SetBackdropBorderColor(0.05, 0.85, 0.94) + button:SetBackdropBorderColor(0.05, 0.85, 0.94, 1) else - button:SetBackdropBorderColor(color.r * 0.6, color.g * 0.6, color.b * 0.6) + button:SetBackdropBorderColor(color.r * 0.6, color.g * 0.6, color.b * 0.6, 1) end button.icon:SetDesaturated(false) end else if (isStealable) and not isFriend then - button:SetBackdropBorderColor(237/255, 234/255, 142/255) + button:SetBackdropBorderColor(0.92, 0.91, 0.55, 1) else - button:SetBackdropBorderColor(0,0,0,1) + button:SetBackdropBorderColor(0, 0, 0, 1) end end @@ -263,7 +270,7 @@ local PostUpdateAuraIcon = function(self, unit, button, index, offset) button.spell = name button.isStealable = isStealable - if expiration and duration ~= 0 then + if(expiration and duration ~= 0) then if(not button:GetScript('OnUpdate')) then button.expirationTime = expiration button.expiration = expiration - GetTime() @@ -275,14 +282,55 @@ local PostUpdateAuraIcon = function(self, unit, button, index, offset) button.nextUpdate = -1 end end - if duration == 0 or expiration == 0 then + if((duration == 0) or (expiration == 0)) then button:SetScript('OnUpdate', nil) - if(button.text:GetFont()) then - button.text:SetText('') - end + button.text:SetText('') end +end + + +--[[ AURABAR HANDLERS ]]-- + +local AuraBar_OnClick = function(self) + if not IsShiftKeyDown() then return end + local name = self:GetParent().aura.name + if name then + SV:AddonMessage((L["The spell '%s' has been added to the Blocked unitframe aura filter."]):format(name)) + SV.filters["Blocked"][name] = {["enable"] = true, ["priority"] = 0} + MOD:RefreshUnitFrames() + end +end + +local PostCreateAuraBars = function(self) + self.iconHolder:RegisterForClicks("RightButtonUp") + self.iconHolder:SetScript("OnClick", AuraBar_OnClick) end +local ColorizeAuraBars = function(self) + local bars = self.bars; + for i = 1, #bars do + local auraBar = bars[i] + if not auraBar:IsVisible()then break end + local color + local spellName = auraBar.statusBar.aura.name; + local spellID = auraBar.statusBar.aura.spellID; + if(SV.filters["Defense"][spellName]) then + color = oUF_Villain.colors.shield_bars + elseif(SV.db.media.unitframes.spellcolor[spellName]) then + color = SV.db.media.unitframes.spellcolor[spellName] + end + if color then + auraBar.statusBar:SetStatusBarColor(unpack(color)) + auraBar:SetBackdropColor(color[1] * 0.25, color[2] * 0.25, color[3] * 0.25, 0.5) + else + local r, g, b = auraBar.statusBar:GetStatusBarColor() + auraBar:SetBackdropColor(r * 0.25, g * 0.25, b * 0.25, 0.5) + end + end +end + +--[[ AURA FILTERING ]]-- + do local function _test(setting, helpful) local friend, enemy = false, false @@ -464,7 +512,7 @@ function MOD:CreateBuffs(frame, unit) local aura = CreateFrame("Frame", nil, frame) aura.___key = unit aura.spacing = 2; - aura.PostCreateIcon = PostCreateAuraIcon; + aura.CreateIcon = CreateAuraIcon; aura.PostUpdateIcon = PostUpdateAuraIcon; aura.CustomFilter = CustomAuraFilter; aura:SetFrameLevel(10) @@ -479,7 +527,7 @@ function MOD:CreateDebuffs(frame, unit) local aura = CreateFrame("Frame", nil, frame) aura.___key = unit aura.spacing = 2; - aura.PostCreateIcon = PostCreateAuraIcon; + aura.CreateIcon = CreateAuraIcon; aura.PostUpdateIcon = PostUpdateAuraIcon; aura.CustomFilter = CustomAuraFilter; aura.type = "debuffs" @@ -672,9 +720,10 @@ function MOD:UpdateAuraWatch(frame, key, override) watchedAura.border:SetVertexColor(0, 0, 0) end if not watchedAura.cd then - watchedAura.cd = CreateFrame("Cooldown", nil, watchedAura) + watchedAura.cd = CreateFrame("Cooldown", nil, watchedAura, "CooldownFrameTemplate") watchedAura.cd:SetAllPoints(watchedAura) watchedAura.cd:SetReverse(true) + watchedAura.cd:SetHideCountdownNumbers(true) watchedAura.cd:SetFrameLevel(watchedAura:GetFrameLevel()) end if watchedAura.style == "coloredIcon"then diff --git a/Interface/AddOns/SVUI/packages/unit/groups.lua b/Interface/AddOns/SVUI/packages/unit/groups.lua index 2f4c6fa..ddf354f 100644 --- a/Interface/AddOns/SVUI/packages/unit/groups.lua +++ b/Interface/AddOns/SVUI/packages/unit/groups.lua @@ -859,7 +859,7 @@ local HeaderUnsetAttributes = function(self) self:SetAttribute("maxColumns", nil) self:SetAttribute("nameList", nil) self:SetAttribute("point", nil) - self:SetAttribute("sortDir", nil) + self:SetAttribute("sortDirection", nil) self:SetAttribute("sortMethod", "NAME") self:SetAttribute("startingIndex", nil) self:SetAttribute("strictFiltering", nil) @@ -1030,7 +1030,7 @@ local GroupConfigure = function(self) frame:SetAttribute("maxColumns", 1) frame:SetAttribute("unitsPerColumn", 5) GroupDistributor[sortMethod](frame) - frame:SetAttribute("sortDir", settings.sortDir) + frame:SetAttribute("sortDirection", settings.sortDir) frame:SetAttribute("showPlayer", settings.showPlayer) end diff --git a/Interface/AddOns/SVUI_StyleOMatic/components/blizzard/alert.lua b/Interface/AddOns/SVUI_StyleOMatic/components/blizzard/alert.lua index 85f59d4..030bad2 100644 --- a/Interface/AddOns/SVUI_StyleOMatic/components/blizzard/alert.lua +++ b/Interface/AddOns/SVUI_StyleOMatic/components/blizzard/alert.lua @@ -24,97 +24,257 @@ local PLUGIN = select(2, ...); local Schema = PLUGIN.Schema; --[[ ########################################################## -HELPERS +OVERRIDES AND HOOKS ########################################################## ]]-- local AlphaBlock = function() return end -local function StyleLootFrame(frame) - frame:SetAlpha(1) - frame.SetAlpha = AlphaBlock - frame.Background:Die() +local _hook_DisableBackground = function(self) + self:DisableDrawLayer("BACKGROUND") +end; - frame.Icon:SetTexCoord(0.1, 0.9, 0.1, 0.9) - frame.IconBorder:Die() +local _hook_DisableBorder = function(self) + self:DisableDrawLayer("BORDER") +end; - frame.Icon.Underlay = CreateFrame("Frame", nil, frame) - frame.Icon.Underlay:WrapOuter(frame.Icon) - frame.Icon.Underlay:SetSlotTemplate(true, 2, 0, 0) - frame.Icon:SetParent(frame.Icon.Underlay) +local _hook_DisableBoth = function(self) + self:DisableDrawLayer("BACKGROUND") + self:DisableDrawLayer("BORDER") +end; - frame.Underlay = CreateFrame("Frame", nil, frame) - frame.Underlay:SetPoint("TOPLEFT", frame.Icon.Underlay, "TOPLEFT", -4, 4) - frame.Underlay:SetPoint("BOTTOMRIGHT", frame.Icon.Underlay, "BOTTOMRIGHT", 180, -4) +local _hook_DisableOverlay = function(self) + self:DisableDrawLayer("OVERLAY") +end; +--[[ +########################################################## +HELPERS +########################################################## +]]-- +local function StyleAlertIcon(frame, icon) + if((not frame) or (not icon)) then return end - PLUGIN:ApplyPopupStyle(frame.Underlay) + icon:SetTexCoord(0.1, 0.9, 0.1, 0.9) + + if(not frame.IconSlot) then + frame.IconSlot = CreateFrame("Frame", nil, frame) + frame.IconSlot:WrapOuter(icon) + frame.IconSlot:SetSlotTemplate() + icon:SetParent(frame.IconSlot) + end end --- /script GarrisonMissionAlertFrame:Show() -local function StyleGarrisonMissionAlertFrame() - local frameName = "GarrisonMissionAlertFrame" - local frame = _G[frameName] - if(frame and (not frame.Panel)) then + +local function StyleLootFrame(frame) + if(not frame) then return end + + if(not frame.Panel) then frame:SetAlpha(1) frame.SetAlpha = AlphaBlock - frame.AlphaHooked = true - frame:DisableDrawLayer("BACKGROUND") - PLUGIN:ApplyAlertStyle(frame) - frame:ChangeAlertColor('blue') + PLUGIN:ApplyAlertStyle(frame, 2) + frame:AlertColor(0.28, 0.31, 0.32) + + if(frame.Background) then frame.Background:Die() end + if(frame.BGAtlas) then frame.BGAtlas:Die() end + if(frame.IconBorder) then frame.IconBorder:Die() end + if(frame.SpecIcon) then frame.SpecIcon:Die() end + if(frame.SpecRing) then frame.SpecRing:Die() end + end - frame.IconBG:SetTexture('') + if(frame.Icon and (not frame.IconSlot)) then + frame.Icon:ClearAllPoints() + frame.Icon:SetPoint("LEFT", frame, "LEFT", 14, 0) + StyleAlertIcon(frame, frame.Icon) + end +end - frame.Title:FontManager(nil, 12) - frame.Title:SetTextColor(1, 1, 1) +local function StyleUpgradeFrame(frame) + if(not frame) then return end - _G[frameName.."Glow"]:Die() - _G[frameName.."Shine"]:Die() + if(not frame.Panel) then + frame:SetAlpha(1) + frame.SetAlpha = AlphaBlock + PLUGIN:ApplyAlertStyle(frame, 2) + frame:AlertColor(0.28, 0.31, 0.32) + + frame.Background:Die() + frame.BorderGlow:Die() + frame.BaseQualityBorder:Die() + frame.UpgradeQualityBorder:Die() + + frame:DisableDrawLayer("OVERLAY") + frame:HookScript("OnShow", _hook_DisableOverlay) + end + + if(frame.Icon and (not frame.IconSlot)) then + frame.Icon:ClearAllPoints() + frame.Icon:SetPoint("LEFT", frame, "LEFT", 12, 0) + StyleAlertIcon(frame, frame.Icon) end end --- /script GarrisonBuildingAlertFrame:Show() -local function StyleGarrisonBuildingAlertFrame() - local frameName = "GarrisonBuildingAlertFrame" - local frame = _G[frameName] - if(frame and (not frame.Panel)) then + +local function AchievementStyle() + for i = 1, MAX_ACHIEVEMENT_ALERTS do + local frameName = "AchievementAlertFrame"..i + local frame = _G[frameName] + if(frame and (not frame.Panel)) then + frame:SetAlpha(1) + frame.SetAlpha = AlphaBlock + + PLUGIN:ApplyAlertStyle(frame) + frame:AlertColor(0.08, 0.25, 0.72) + + local icon = _G[frameName.."IconTexture"]; + icon:ClearAllPoints() + icon:SetPoint("LEFT", frame, "LEFT", 12, 0) + + StyleAlertIcon(frame, icon) + + if(_G[frameName .. 'Glow']) then _G[frameName .. 'Glow']:Die() end + if(_G[frameName .. 'Shine']) then _G[frameName .. 'Shine']:Die() end + if(_G[frameName .. 'Background']) then _G[frameName .. 'Background']:SetTexture(0,0,0,0) end + if(_G[frameName .. 'IconOverlay']) then _G[frameName .. 'IconOverlay']:Die() end + if(_G[frameName .. 'GuildBanner']) then _G[frameName .. 'GuildBanner']:Die() end + if(_G[frameName .. 'GuildBorder']) then _G[frameName .. 'GuildBorder']:Die() end + if(_G[frameName .. 'OldAchievement']) then _G[frameName .. 'OldAchievement']:Die() end + end + end +end + +local function DungeonCompletionStyle() + local frameName = "DungeonCompletionAlertFrame1" + local frame = _G[frameName] + if(frame and (not frame.Panel)) then frame:SetAlpha(1) frame.SetAlpha = AlphaBlock - frame.AlphaHooked = true - frame:DisableDrawLayer("BACKGROUND") - PLUGIN:ApplyPopupStyle(frame,0.75,0.42,0) - frame.Icon:SetTexCoord(0.1, 0.9, 0.1, 0.9) + PLUGIN:ApplyAlertStyle(frame) + frame:AlertColor(0.08, 0.25, 0.72) + + local icon = frame.dungeonTexture; + if(icon) then + icon:SetDrawLayer("OVERLAY") + icon:ClearAllPoints() + icon:SetPoint("LEFT", frame, "LEFT", 12, 0) + StyleAlertIcon(frame, icon) + end + + if(_G[frameName .. 'GlowFrame']) then + if(_G[frameName .. 'GlowFrame'].glow) then _G[frameName .. 'GlowFrame'].glow:Die() end + _G[frameName .. 'GlowFrame']:Die() + end + if(_G[frameName .. 'Shine']) then _G[frameName .. 'Shine']:Die() end - frame.Title:FontManager(nil, 12) - frame.Title:SetTextColor(1, 1, 1) + frame:DisableDrawLayer("BORDER") + frame:HookScript("OnShow", _hook_DisableBorder) + end +end - _G[frameName.."Glow"]:Die() - _G[frameName.."Shine"]:Die() - end +local function GuildChallengeStyle() + local frameName = "GuildChallengeAlertFrame" + local frame = _G[frameName]; + if(frame and (not frame.Panel)) then + frame:SetAlpha(1) + frame.SetAlpha = AlphaBlock + + PLUGIN:ApplyAlertStyle(frame) + frame:AlertColor(0.33, 0.25, 0.13) + + local icon = _G[frameName .. 'EmblemIcon']; + if(icon) then + StyleAlertIcon(frame, icon) + SetLargeGuildTabardTextures("player", icon, nil, nil) + end + + if(_G[frameName .. 'Glow']) then _G[frameName .. 'Glow']:Die() end + if(_G[frameName .. 'Shine']) then _G[frameName .. 'Shine']:Die() end + + frame:DisableDrawLayer("BACKGROUND") + frame:DisableDrawLayer("BORDER") + frame:HookScript("OnShow", _hook_DisableBoth) + end end --- /script GarrisonFollowerAlertFrame:Show() -local function StyleGarrisonFollowerAlertFrame() - local frameName = "GarrisonFollowerAlertFrame" - local frame = _G[frameName] - if(frame and (not frame.Panel)) then + +local function ChallengeModeStyle() + local frameName = "ChallengeModeAlertFrame1" + local frame = _G[frameName]; + if(frame and (not frame.Panel)) then frame:SetAlpha(1) frame.SetAlpha = AlphaBlock - frame.AlphaHooked = true + + PLUGIN:ApplyAlertStyle(frame) + frame:AlertColor(0.33, 0.25, 0.13) + + local icon = _G[frameName .. 'DungeonTexture']; + if(icon) then + icon:ClearAllPoints() + icon:SetPoint("LEFT", frame, "LEFT", 12, 0) + StyleAlertIcon(frame, icon) + end + + if(_G[frameName .. 'GlowFrame']) then + if(_G[frameName .. 'GlowFrame'].glow) then _G[frameName .. 'GlowFrame'].glow:Die() end + _G[frameName .. 'GlowFrame']:Die() + end + if(_G[frameName .. 'Shine']) then _G[frameName .. 'Shine']:Die() end + if(_G[frameName .. 'Border']) then _G[frameName .. 'Border']:Die() end + frame:DisableDrawLayer("BACKGROUND") - PLUGIN:ApplyPopupStyle(frame) + frame:HookScript("OnShow", _hook_DisableBackground) + end +end - frame.FollowerBG:SetTexCoord(0.1, 0.9, 0.1, 0.9) +local function ScenarioStyle() + local frameName = "ScenarioAlertFrame1" + local frame = _G[frameName]; + if(frame and (not frame.Panel)) then + frame:SetAlpha(1) + frame.SetAlpha = AlphaBlock + + PLUGIN:ApplyAlertStyle(frame) + frame:AlertColor(0.33, 0.25, 0.13) - frame.Title:FontManager(nil, 12) - frame.Title:SetTextColor(1, 1, 1) + local icon = _G[frameName .. 'DungeonTexture']; + if(icon) then + icon:ClearAllPoints() + icon:SetPoint("LEFT", frame, "LEFT", 12, 0) + StyleAlertIcon(frame, icon) + end - _G[frameName.."Glow"]:Die() - _G[frameName.."Shine"]:Die() - end + if(_G[frameName .. 'GlowFrame']) then + if(_G[frameName .. 'GlowFrame'].glow) then _G[frameName .. 'GlowFrame'].glow:Die() end + _G[frameName .. 'GlowFrame']:Die() + end + if(_G[frameName .. 'Shine']) then _G[frameName .. 'Shine']:Die() end - if(frame.PortraitFrame) then - --frame.PortraitFrame:SetPanelTemplate('Blackout') - frame.PortraitFrame.PortraitRing:SetTexture([[Interface\AddOns\SVUI\assets\artwork\Unitframe\FOLLOWER-RING]]) - frame.PortraitFrame.PortraitRingQuality:SetTexture('') - frame.PortraitFrame.LevelBorder:SetTexture('') - end + frame:DisableDrawLayer("BORDER") + frame:HookScript("OnShow", _hook_DisableBorder) + end +end + +local function CriteriaStyle() + for i = 1, MAX_ACHIEVEMENT_ALERTS do + local frameName = "CriteriaAlertFrame"..i + local frame = _G[frameName] + if(frame and (not frame.Panel)) then + frame:SetAlpha(1) + frame.SetAlpha = AlphaBlock + + PLUGIN:ApplyAlertStyle(frame) + frame:AlertColor(0.08, 0.25, 0.72) + + local icon = _G[frameName .. 'IconTexture']; + if(icon) then + icon:ClearAllPoints() + icon:SetPoint("LEFT", frame, "LEFT", 12, 0) + StyleAlertIcon(frame, icon) + end + + if(_G[frameName .. 'Glow']) then _G[frameName .. 'Glow']:Die() end + if(_G[frameName .. 'Shine']) then _G[frameName .. 'Shine']:Die() end + if(_G[frameName .. 'Background']) then _G[frameName .. 'Background']:SetTexture(0,0,0,0) end + if(_G[frameName .. 'IconOverlay']) then _G[frameName .. 'IconOverlay']:Die() end + if(_G[frameName .. 'IconBling']) then _G[frameName .. 'IconBling']:Die() end + end + end end --[[ ########################################################## @@ -122,292 +282,194 @@ ALERTFRAME STYLES ########################################################## ]]-- local function AlertStyle() - if PLUGIN.db.blizzard.enable ~= true or PLUGIN.db.blizzard.alertframes ~= true then return end + if PLUGIN.db.blizzard.enable ~= true or PLUGIN.db.blizzard.alertframes ~= true then return end + --[[ SVUI ]]-- for i = 1, 4 do - local alert = _G["SVUI_SystemAlert"..i]; - if(alert) then - for b = 1, 3 do - alert.buttons[b]:SetButtonTemplate() + frame = _G["SVUI_SystemAlert"..i]; + if(frame) then + frame:RemoveTextures() + + PLUGIN:ApplyAlertStyle(frame) + + frame.buttons[1]:SetButtonTemplate() + frame.buttons[2]:SetButtonTemplate() + frame.buttons[3]:SetButtonTemplate() + + frame.gold:SetEditboxTemplate() + frame.silver:SetEditboxTemplate() + frame.copper:SetEditboxTemplate() + + frame.input:SetEditboxTemplate() + frame.input.Panel:Point("TOPLEFT", -2, -4) + frame.input.Panel:Point("BOTTOMRIGHT", 2, 4) + end + end + + --[[ LOOT WON ]]-- + do + for i = 1, #LOOT_WON_ALERT_FRAMES do + StyleLootFrame(LOOT_WON_ALERT_FRAMES[i]) + end + StyleLootFrame(BonusRollLootWonFrame) + hooksecurefunc("AlertFrame_SetLootWonAnchors", function() + for i = 1, #LOOT_WON_ALERT_FRAMES do + local frame = LOOT_WON_ALERT_FRAMES[i] + if(frame) then StyleLootFrame(frame) end end - alert:RemoveTextures() - PLUGIN:ApplyAlertStyle(alert) - alert.input:SetEditboxTemplate() - alert.input.Panel:Point("TOPLEFT", -2, -4) - alert.input.Panel:Point("BOTTOMRIGHT", 2, 4) - alert.gold:SetEditboxTemplate() - alert.silver:SetEditboxTemplate() - alert.copper:SetEditboxTemplate() + end) + hooksecurefunc("LootWonAlertFrame_SetUp", function(self, itemLink, ...) + local itemName, itemHyperLink, itemRarity, itemTexture; + if (self.isCurrency) then + itemName, _, itemTexture, _, _, _, _, itemRarity = GetCurrencyInfo(itemLink); + itemHyperLink = itemLink; + else + itemName, itemHyperLink, itemRarity, _, _, _, _, _, _, itemTexture = GetItemInfo(itemLink); + end + local color = ITEM_QUALITY_COLORS[itemRarity]; + if(not self.IconSlot) then return end; + self.IconSlot:SetBackdropColor(color.r, color.g, color.b); + end) + end + + --[[ MONEY WON ]]-- + do + for i = 1, #MONEY_WON_ALERT_FRAMES do + StyleLootFrame(MONEY_WON_ALERT_FRAMES[i]) end + StyleLootFrame(BonusRollMoneyWonFrame) + hooksecurefunc("AlertFrame_SetMoneyWonAnchors", function() + for i = 1, #MONEY_WON_ALERT_FRAMES do + local frame = MONEY_WON_ALERT_FRAMES[i] + if(frame) then StyleLootFrame(frame) end + end + end) end - StyleGarrisonMissionAlertFrame() - StyleGarrisonBuildingAlertFrame() - StyleGarrisonFollowerAlertFrame() + --[[ LOOT UPGRADE ]]-- + do + for i = 1, #LOOT_UPGRADE_ALERT_FRAMES do + StyleUpgradeFrame(LOOT_UPGRADE_ALERT_FRAMES[i]) + end + hooksecurefunc("AlertFrame_SetLootUpgradeFrameAnchors", function() + for i = 1, #LOOT_UPGRADE_ALERT_FRAMES do + local frame = LOOT_UPGRADE_ALERT_FRAMES[i] + if(frame) then StyleUpgradeFrame(frame) end + end + end) + hooksecurefunc("LootUpgradeFrame_SetUp", function(self, itemLink, ...) + local itemName, itemHyperLink, itemRarity, _, _, _, _, _, _, itemTexture = GetItemInfo(itemLink); + local color = ITEM_QUALITY_COLORS[itemRarity]; + if(not self.IconSlot) then return end; + self.IconSlot:SetBackdropColor(color.r, color.g, color.b); + end) + end - hooksecurefunc("GarrisonMissionAlertFrame_ShowAlert", function() - GarrisonMissionAlertFrame:DisableDrawLayer("BACKGROUND") - end) + --[[ ACHIEVEMENT ]]-- + AchievementStyle() + hooksecurefunc("AlertFrame_SetAchievementAnchors", AchievementStyle) - hooksecurefunc("GarrisonBuildingAlertFrame_ShowAlert", function() - GarrisonBuildingAlertFrame:DisableDrawLayer("BACKGROUND") - end) + --[[ DUNGEON ]]-- + DungeonCompletionStyle() + hooksecurefunc("AlertFrame_SetDungeonCompletionAnchors", DungeonCompletionStyle) - hooksecurefunc("GarrisonFollowerAlertFrame_ShowAlert", function() - GarrisonFollowerAlertFrame:DisableDrawLayer("BACKGROUND") - end) + --[[ GUILD CHALLENGE ]]-- + GuildChallengeStyle() + hooksecurefunc("AlertFrame_SetGuildChallengeAnchors", GuildChallengeStyle) - hooksecurefunc("AlertFrame_SetAchievementAnchors", function() - for i = 1, MAX_ACHIEVEMENT_ALERTS do - local frameName = "AchievementAlertFrame"..i - local frame = _G[frameName] - if(frame and (not frame.Panel)) then - frame:SetAlpha(1) - frame.SetAlpha = AlphaBlock - frame.AlphaHooked = true - PLUGIN:ApplyAlertStyle(frame) - frame:ChangeAlertColor('blue') + --[[ CHALLENGE MODE ]]-- + ChallengeModeStyle() + hooksecurefunc("AlertFrame_SetChallengeModeAnchors", ChallengeModeStyle) - _G[frameName.."Background"]:SetTexture(0,0,0,0) - _G[frameName.."Unlocked"]:FontManager(nil, 12) - _G[frameName.."Unlocked"]:SetTextColor(1, 1, 1) - _G[frameName.."Name"]:FontManager(nil, 12) + --[[ SCENARIO ]]-- + ScenarioStyle() + hooksecurefunc("AlertFrame_SetScenarioAnchors", ScenarioStyle) - local icon = _G[frameName.."IconTexture"]; - icon:SetTexCoord(0.1, 0.9, 0.1, 0.9) - icon:ClearAllPoints() - icon:Point("LEFT", frame, 7, 0) - icon.Underlay = CreateFrame("Frame", nil, frame) - icon.Underlay:WrapOuter(icon) - icon.Underlay:SetSlotTemplate() - icon:SetParent(icon.Underlay) - - _G[frameName.."IconOverlay"]:Die() - _G[frameName.."OldAchievement"]:Die() - _G[frameName.."Glow"]:Die() - _G[frameName.."Shine"]:Die() - _G[frameName.."GuildBanner"]:Die() - _G[frameName.."GuildBorder"]:Die() - end - end - end) + --[[ CRITERIA ]]-- + CriteriaStyle() + hooksecurefunc("AlertFrame_SetCriteriaAnchors", CriteriaStyle) - hooksecurefunc("AlertFrame_SetDungeonCompletionAnchors", function() - for i = 1, DUNGEON_COMPLETION_MAX_REWARDS do - local frame = _G["DungeonCompletionAlertFrame"..i] - if(frame and (not frame.Panel)) then - frame:SetAlpha(1) - frame.SetAlpha = AlphaBlock - frame.AlphaHooked = true - - PLUGIN:ApplyAlertStyle(frame) - frame:ChangeAlertColor('blue') - - frame.dungeonTexture:SetTexCoord(0.1, 0.9, 0.1, 0.9) - frame.dungeonTexture:SetDrawLayer("OVERLAY") - frame.dungeonTexture:ClearAllPoints() - frame.dungeonTexture:Point("LEFT", frame, 7, 0) - frame.dungeonTexture.Underlay = CreateFrame("Frame", nil, frame) - frame.dungeonTexture.Underlay:WrapOuter(frame.dungeonTexture) - frame.dungeonTexture.Underlay:SetSlotTemplate() - frame.dungeonTexture:SetParent(frame.dungeonTexture.Underlay) - - -- frame.Shine:Die() - -- frame.GlowFrame:Die() - -- frame.GlowFrame.Glow:Die() - frame.raidArt:Die() - frame.dungeonArt1:Die() - frame.dungeonArt2:Die() - frame.dungeonArt3:Die() - frame.dungeonArt4:Die() - frame.heroicIcon:Die() - end - end - end) + --[[ GARRISON ]]-- + do + local frameName, frame; - hooksecurefunc("AlertFrame_SetGuildChallengeAnchors", function() - local frame = GuildChallengeAlertFrame; - if frame then + --Garrison Mission + frameName = "GarrisonMissionAlertFrame" + frame = _G[frameName] + if(frame and (not frame.Panel)) then frame:SetAlpha(1) - - if(not frame.AlphaHooked) then - frame.SetAlpha = AlphaBlock - frame.AlphaHooked = true - end + frame.SetAlpha = AlphaBlock + frame:DisableDrawLayer("BACKGROUND") - if(not frame.Panel) then - frame:SetBasicPanel() - frame.Panel:Point("TOPLEFT", frame, "TOPLEFT", -2, -6) - frame.Panel:Point("BOTTOMRIGHT", frame, "BOTTOMRIGHT", -2, 6) - end + PLUGIN:ApplyAlertStyle(frame) + frame:AlertColor(0.28, 0.31, 0.32) - local j = select(2, frame:GetRegions()) - if j:GetObjectType() == "Texture"then - if j:GetTexture() == "Interface\\GuildFrame\\GuildChallenges"then j:Die()end - end + frame.IconBG:SetTexture('') + frame.Title:FontManager(nil, 12) + frame.Title:SetTextColor(1, 1, 1) - GuildChallengeAlertFrameGlow:Die() - GuildChallengeAlertFrameShine:Die() - GuildChallengeAlertFrameEmblemBorder:Die() - if not GuildChallengeAlertFrameEmblemIcon.b then - GuildChallengeAlertFrameEmblemIcon.b = CreateFrame("Frame", nil, frame) - GuildChallengeAlertFrameEmblemIcon.b:SetFixedPanelTemplate("Default") - GuildChallengeAlertFrameEmblemIcon.b:Point("TOPLEFT", GuildChallengeAlertFrameEmblemIcon, "TOPLEFT", -3, 3) - GuildChallengeAlertFrameEmblemIcon.b:Point("BOTTOMRIGHT", GuildChallengeAlertFrameEmblemIcon, "BOTTOMRIGHT", 3, -2) - GuildChallengeAlertFrameEmblemIcon:SetParent(GuildChallengeAlertFrameEmblemIcon.b) - end - SetLargeGuildTabardTextures("player", GuildChallengeAlertFrameEmblemIcon, nil, nil) - end - end) + if(_G[frameName .. 'Glow']) then _G[frameName .. 'Glow']:Die() end + if(_G[frameName .. 'Shine']) then _G[frameName .. 'Shine']:Die() end - hooksecurefunc("AlertFrame_SetChallengeModeAnchors", function() - local frame = ChallengeModeAlertFrame1; - if frame then - frame:SetAlpha(1) - frame.SetAlpha = AlphaBlock - if not frame.Panel then - frame:SetBasicPanel() - frame.Panel:Point("TOPLEFT", frame, "TOPLEFT", 19, -6) - frame.Panel:Point("BOTTOMRIGHT", frame, "BOTTOMRIGHT", -22, 6) - end - for i = 1, frame:GetNumRegions()do - local j = select(i, frame:GetRegions()) - if j:GetObjectType() == "Texture"then - if j:GetTexture() == "Interface\\Challenges\\challenges-main" then j:Die() end - end - end - -- ChallengeModeAlertFrame1Shine:Die() - -- ChallengeModeAlertFrame1GlowFrame:Die() - -- ChallengeModeAlertFrame1GlowFrame.Glow:Die() - ChallengeModeAlertFrame1Border:Die() - ChallengeModeAlertFrame1DungeonTexture:SetTexCoord(0.1, 0.9, 0.1, 0.9) - ChallengeModeAlertFrame1DungeonTexture:ClearAllPoints() - ChallengeModeAlertFrame1DungeonTexture:Point("LEFT", frame.Panel, 9, 0) - if not ChallengeModeAlertFrame1DungeonTexture.b then - ChallengeModeAlertFrame1DungeonTexture.b = CreateFrame("Frame", nil, frame) - ChallengeModeAlertFrame1DungeonTexture.b:SetFixedPanelTemplate("Default") - ChallengeModeAlertFrame1DungeonTexture.b:WrapOuter(ChallengeModeAlertFrame1DungeonTexture) - ChallengeModeAlertFrame1DungeonTexture:SetParent(ChallengeModeAlertFrame1DungeonTexture.b) - end - end - end) + frame:HookScript("OnShow", _hook_DisableBackground) + end - hooksecurefunc("AlertFrame_SetScenarioAnchors", function() - local frame = ScenarioAlertFrame1; - if frame then + --Garrison Building + frameName = "GarrisonBuildingAlertFrame" + frame = _G[frameName] + if(frame and (not frame.Panel)) then frame:SetAlpha(1) frame.SetAlpha = AlphaBlock - if not frame.Panel then - frame:SetBasicPanel() - frame.Panel:Point("TOPLEFT", frame, "TOPLEFT", 4, 4) - frame.Panel:Point("BOTTOMRIGHT", frame, "BOTTOMRIGHT", -7, 6) - end - for i = 1, frame:GetNumRegions()do - local j = select(i, frame:GetRegions()) - if j:GetObjectType() == "Texture"then - if j:GetTexture() == "Interface\\Scenarios\\ScenariosParts" then j:Die() end - end - end - -- ScenarioAlertFrame1Shine:Die() - -- ScenarioAlertFrame1GlowFrame:Die() - -- ScenarioAlertFrame1GlowFrame.Glow:Die() - ScenarioAlertFrame1DungeonTexture:SetTexCoord(0.1, 0.9, 0.1, 0.9) - ScenarioAlertFrame1DungeonTexture:ClearAllPoints() - ScenarioAlertFrame1DungeonTexture:Point("LEFT", frame.Panel, 9, 0) - if not ScenarioAlertFrame1DungeonTexture.b then - ScenarioAlertFrame1DungeonTexture.b = CreateFrame("Frame", nil, frame) - ScenarioAlertFrame1DungeonTexture.b:SetFixedPanelTemplate("Default") - ScenarioAlertFrame1DungeonTexture.b:WrapOuter(ScenarioAlertFrame1DungeonTexture) - ScenarioAlertFrame1DungeonTexture:SetParent(ScenarioAlertFrame1DungeonTexture.b) - end - end - end) + frame:DisableDrawLayer("BACKGROUND") - hooksecurefunc("AlertFrame_SetCriteriaAnchors", function() - for i = 1, MAX_ACHIEVEMENT_ALERTS do - local frameName = "CriteriaAlertFrame"..i - local frame = _G[frameName] - if(frame and (not frame.Panel)) then - frame:SetAlpha(1) - frame.SetAlpha = AlphaBlock - frame.AlphaHooked = true - PLUGIN:ApplyAlertStyle(frame) - frame:ChangeAlertColor('blue') + PLUGIN:ApplyAlertStyle(frame, 2) + frame:AlertColor(0.75, 0.42, 0) - _G[frameName.."Background"]:SetTexture(0,0,0,0) - _G[frameName.."Unlocked"]:FontManager(nil, 12) - _G[frameName.."Unlocked"]:SetTextColor(1, 1, 1) - _G[frameName.."Name"]:FontManager(nil, 12) + frame.Icon:SetTexCoord(0.1, 0.9, 0.1, 0.9) + frame.Title:FontManager(nil, 12) + frame.Title:SetTextColor(1, 1, 1) - local icon = _G[frameName.."IconTexture"]; - icon:SetTexCoord(0.1, 0.9, 0.1, 0.9) - icon:ClearAllPoints() - icon:Point("LEFT", frame, 7, 0) - icon.Underlay = CreateFrame("Frame", nil, frame) - icon.Underlay:WrapOuter(icon) - icon.Underlay:SetSlotTemplate() - icon:SetParent(icon.Underlay) - - _G[frameName.."IconOverlay"]:Die() - _G[frameName.."Glow"]:Die() - _G[frameName.."Shine"]:Die() - _G[frameName.."IconBling"]:Die() - end - end - end) + if(_G[frameName .. 'Glow']) then _G[frameName .. 'Glow']:Die() end + if(_G[frameName .. 'Shine']) then _G[frameName .. 'Shine']:Die() end - hooksecurefunc("AlertFrame_SetLootWonAnchors", function() - for i = 1, #LOOT_WON_ALERT_FRAMES do - local frame = LOOT_WON_ALERT_FRAMES[i] - if(frame and (not frame.Panel)) then - frame:SetAlpha(1) - frame.SetAlpha = AlphaBlock - PLUGIN:ApplyPopupStyle(frame) - frame.Background:Die() - frame.Icon:SetTexCoord(0.1, 0.9, 0.1, 0.9) - frame.IconBorder:Die() - -- frame.Glow:Die() - -- frame.Shine:Die() - frame.Icon.Underlay = CreateFrame("Frame", nil, frame) - frame.Icon.Underlay:WrapOuter(frame.Icon) - frame.Icon.Underlay:SetSlotTemplate() - frame.Icon:SetParent(frame.Icon.Underlay) - end - end - end) + frame:HookScript("OnShow", _hook_DisableBackground) + end - hooksecurefunc("AlertFrame_SetMoneyWonAnchors", function() - for i = 1, #MONEY_WON_ALERT_FRAMES do - local frame = MONEY_WON_ALERT_FRAMES[i] - if(frame and (not frame.Panel)) then + --Garrison Follower + frameName = "GarrisonFollowerAlertFrame" + frame = _G[frameName] + if(frame) then + if(not frame.Panel) then frame:SetAlpha(1) frame.SetAlpha = AlphaBlock - PLUGIN:ApplyPopupStyle(frame) - frame.Background:Die() - frame.Icon:SetTexCoord(0.1, 0.9, 0.1, 0.9) - frame.IconBorder:Die() - -- frame.Glow:Die() - -- frame.Shine:Die() - frame.Icon.Underlay = CreateFrame("Frame", nil, frame) - frame.Icon.Underlay:WrapOuter(frame.Icon) - frame.Icon.Underlay:SetSlotTemplate() - frame.Icon:SetParent(frame.Icon.Underlay) - end - end - end) + frame:DisableDrawLayer("BACKGROUND") + + PLUGIN:ApplyAlertStyle(frame, 2) - hooksecurefunc("LootWonAlertFrame_SetUp", function(self) - if(self.BGAtlas) then - self.BGAtlas:Hide(); - end - end) + frame.FollowerBG:SetTexCoord(0.1, 0.9, 0.1, 0.9) + frame.Title:FontManager(nil, 12) + frame.Title:SetTextColor(1, 1, 1) - StyleLootFrame(BonusRollMoneyWonFrame) - StyleLootFrame(BonusRollLootWonFrame) + if(_G[frameName .. 'Glow']) then _G[frameName .. 'Glow']:Die() end + if(_G[frameName .. 'Shine']) then _G[frameName .. 'Shine']:Die() end + + frame:HookScript("OnShow", _hook_DisableBackground) + end + + if(frame.PortraitFrame) then + frame.PortraitFrame.PortraitRing:SetTexture([[Interface\AddOns\SVUI\assets\artwork\Unitframe\FOLLOWER-RING]]) + frame.PortraitFrame.PortraitRingQuality:SetTexture('') + frame.PortraitFrame.LevelBorder:SetTexture('') + end + end + end end --[[ ########################################################## PLUGIN LOADING ########################################################## ]]-- -PLUGIN:SaveCustomStyle(AlertStyle) \ No newline at end of file +PLUGIN:SaveCustomStyle(AlertStyle) +-- /script GarrisonMissionAlertFrame:Show() +-- /script GarrisonBuildingAlertFrame:Show() +-- /script GarrisonFollowerAlertFrame:Show() \ No newline at end of file diff --git a/Interface/AddOns/SVUI_StyleOMatic/components/blizzard/character.lua b/Interface/AddOns/SVUI_StyleOMatic/components/blizzard/character.lua index 484d48b..118cd08 100644 --- a/Interface/AddOns/SVUI_StyleOMatic/components/blizzard/character.lua +++ b/Interface/AddOns/SVUI_StyleOMatic/components/blizzard/character.lua @@ -279,16 +279,12 @@ local function CharacterFrameStyle() PLUGIN:ApplyPaginationStyle(CharacterFrameExpandButton) hooksecurefunc('CharacterFrame_Collapse', function() - CharacterFrameExpandButton:SetNormalTexture(nil) - CharacterFrameExpandButton:SetPushedTexture(nil) - CharacterFrameExpandButton:SetDisabledTexture(nil) + CharacterFrameExpandButton:RemoveTextures() SquareButton_SetIcon(CharacterFrameExpandButton, 'RIGHT') end) hooksecurefunc('CharacterFrame_Expand', function() - CharacterFrameExpandButton:SetNormalTexture(nil) - CharacterFrameExpandButton:SetPushedTexture(nil) - CharacterFrameExpandButton:SetDisabledTexture(nil) + CharacterFrameExpandButton:RemoveTextures() SquareButton_SetIcon(CharacterFrameExpandButton, 'LEFT') end) @@ -314,10 +310,7 @@ local function CharacterFrameStyle() PLUGIN:ApplyScrollFrameStyle(_G["PaperDollEquipmentManagerPaneScrollBar"], 5) for _,gName in pairs(CharFrameList) do - local frame = _G[gName] - if(frame) then - frame:RemoveTextures(true) - end + if(_G[gName]) then _G[gName]:RemoveTextures(true) end end CharacterModelFrameBackgroundTopLeft:SetTexture(0,0,0,0) diff --git a/Interface/AddOns/SVUI_StyleOMatic/components/style_methods.lua b/Interface/AddOns/SVUI_StyleOMatic/components/style_methods.lua index 2f88483..75b2c3c 100644 --- a/Interface/AddOns/SVUI_StyleOMatic/components/style_methods.lua +++ b/Interface/AddOns/SVUI_StyleOMatic/components/style_methods.lua @@ -579,7 +579,7 @@ function PLUGIN:ApplyDropdownStyle(this, width) NewHook(ddButton, "SetPoint", _hook_DropDownButton_SetPoint) - PLUGIN:ApplyPaginationStyle(ddButton, true) + self:ApplyPaginationStyle(ddButton, true) local currentLevel = this:GetFrameLevel() if(currentLevel == 0) then @@ -636,105 +636,88 @@ end |__/ |__/|________/|________/|__/ |__/ |__/ ########################################################## --]] -local ChangeAlertColor = function(self, colorName) - local r,g,b = unpack(SV.Media.color[colorName]) - self.AlertPanel[1]:SetBackdropColor(r,g,b) - self.AlertPanel[2]:SetVertexColor(r,g,b) +local ALERT_TEMPLATE = { + { + COLOR = {0.8, 0.2, 0.2}, + BG = [[Interface\AddOns\SVUI\assets\artwork\Template\Alert\ALERT-BG]], + LEFT = [[Interface\AddOns\SVUI\assets\artwork\Template\Alert\ALERT-LEFT]], + RIGHT = [[Interface\AddOns\SVUI\assets\artwork\Template\Alert\ALERT-RIGHT]], + TOP = [[Interface\AddOns\SVUI\assets\artwork\Template\Alert\ALERT-TOP]], + BOTTOM = [[Interface\AddOns\SVUI\assets\artwork\Template\Alert\ALERT-BOTTOM]], + }, + { + COLOR = {0.08, 0.4, 0}, + BG = [[Interface\AddOns\SVUI\assets\artwork\Template\Alert\ALERT-BG-2]], + LEFT = [[Interface\AddOns\SVUI\assets\artwork\Template\Alert\ALERT-LEFT-2]], + RIGHT = [[Interface\AddOns\SVUI\assets\artwork\Template\Alert\ALERT-RIGHT-2]], + TOP = [[Interface\AddOns\SVUI\assets\artwork\Template\Alert\ALERT-TOP]], + BOTTOM = [[Interface\AddOns\SVUI\assets\artwork\Template\Alert\ALERT-BOTTOM]], + }, +} + +local SetAlertColor = function(self, r, g, b) + self.AlertPanel:SetBackdropColor(r,g,b) + self.AlertPanel.left:SetVertexColor(r,g,b) + self.AlertPanel.right:SetVertexColor(r,g,b) + self.AlertPanel.top:SetVertexColor(r,g,b) + self.AlertPanel.bottom:SetVertexColor(r,g,b) end -function PLUGIN:ApplyAlertStyle(frame) - if(not frame or (frame and frame.AlertPanel)) then return end - - local lvl = frame:GetFrameLevel() - if lvl < 1 then lvl = 1 end - local alertpanel = CreateFrame("Frame", nil, frame) - alertpanel:SetAllPoints(frame) - alertpanel:SetFrameLevel(lvl - 1) - alertpanel:SetBackdrop({ - bgFile = [[Interface\AddOns\SVUI\assets\artwork\Template\Alert\ALERT-BG]] - }) - alertpanel:SetBackdropColor(0.8, 0.2, 0.2) - - --[[ LEFT ]]-- - local left = alertpanel:CreateTexture(nil, "BORDER") - left:SetTexture([[Interface\AddOns\SVUI\assets\artwork\Template\Alert\ALERT-LEFT]]) - left:Point("TOPRIGHT", alertpanel,"TOPLEFT", 0, 0) - left:Point("BOTTOMRIGHT", alertpanel, "BOTTOMLEFT", 0, 0) - left:Width(frame:GetHeight()) - - --[[ RIGHT ]]-- - local right = alertpanel:CreateTexture(nil, "BORDER") - right:SetTexture([[Interface\AddOns\SVUI\assets\artwork\Template\Alert\ALERT-RIGHT]]) - right:SetVertexColor(0.8, 0.2, 0.2) - right:Point("TOPLEFT", alertpanel,"TOPRIGHT", 0, 0) - right:Point("BOTTOMLEFT", alertpanel, "BOTTOMRIGHT", 0, 0) - right:Width(frame:GetHeight() * 2) +function PLUGIN:ApplyAlertStyle(frame, alertType) + if(not frame or (frame and frame.AlertPanel)) then return end - --[[ TOP ]]-- - local top = alertpanel:CreateTexture(nil, "BORDER") - top:SetTexture([[Interface\AddOns\SVUI\assets\artwork\Template\Alert\ALERT-TOP]]) - top:Point("BOTTOMLEFT", alertpanel,"TOPLEFT", 0, 0) - top:Point("BOTTOMRIGHT", alertpanel, "TOPRIGHT", 0, 0) - top:Height(frame:GetHeight() * 0.5) + alertType = alertType or 1; - --[[ BOTTOM ]]-- - local bottom = alertpanel:CreateTexture(nil, "BORDER") - bottom:SetTexture([[Interface\AddOns\SVUI\assets\artwork\Template\Alert\ALERT-BOTTOM]]) - bottom:Point("TOPLEFT", alertpanel,"BOTTOMLEFT", 0, 0) - bottom:Point("TOPRIGHT", alertpanel, "BOTTOMRIGHT", 0, 0) - bottom:Width(frame:GetHeight() * 0.5) - - frame.AlertPanel = {alertpanel, right} - frame.ChangeAlertColor = ChangeAlertColor -end + local TEMPLATE = ALERT_TEMPLATE[alertType]; + local r,g,b = unpack(TEMPLATE.COLOR); + local size = frame:GetHeight(); + local half = size * 0.5; + local offset = size * 0.1; + local lvl = frame:GetFrameLevel(); -function PLUGIN:ApplyPopupStyle(frame,r,g,b) - if(not frame or (frame and frame.AlertPanel)) then return end - r = r or 0.08 - g = g or 0.4 - b = b or 0 - local lvl = frame:GetFrameLevel() if lvl < 1 then lvl = 1 end + local alertpanel = CreateFrame("Frame", nil, frame) - alertpanel:SetAllPoints(frame) + alertpanel:SetPoint("TOPLEFT", frame, "TOPLEFT", offset, 0) + alertpanel:SetPoint("BOTTOMRIGHT", frame, "BOTTOMRIGHT", -offset, 0) alertpanel:SetFrameLevel(lvl - 1) alertpanel:SetBackdrop({ - bgFile = [[Interface\AddOns\SVUI\assets\artwork\Template\Alert\ALERT-BG-2]] + bgFile = TEMPLATE.BG }) alertpanel:SetBackdropColor(r,g,b) --[[ LEFT ]]-- - local left = alertpanel:CreateTexture(nil, "BORDER") - left:SetTexture([[Interface\AddOns\SVUI\assets\artwork\Template\Alert\ALERT-LEFT-2]]) - left:SetVertexColor(r,g,b) - left:SetPoint("TOPRIGHT", alertpanel,"TOPLEFT", 0, 0) - left:SetPoint("BOTTOMRIGHT", alertpanel, "BOTTOMLEFT", 0, 0) - left:SetWidth(frame:GetHeight()) + alertpanel.left = alertpanel:CreateTexture(nil, "BORDER") + alertpanel.left:SetTexture(TEMPLATE.LEFT) + alertpanel.left:SetVertexColor(r,g,b) + alertpanel.left:SetPoint("TOPRIGHT", alertpanel, "TOPLEFT", 0, 0) + alertpanel.left:SetPoint("BOTTOMRIGHT", alertpanel, "BOTTOMLEFT", 0, 0) + alertpanel.left:SetWidth(size) --[[ RIGHT ]]-- - local right = alertpanel:CreateTexture(nil, "BORDER") - right:SetTexture([[Interface\AddOns\SVUI\assets\artwork\Template\Alert\ALERT-RIGHT-2]]) - right:SetVertexColor(r,g,b) - right:SetPoint("TOPLEFT", alertpanel,"TOPRIGHT", 0, 0) - right:SetPoint("BOTTOMLEFT", alertpanel, "BOTTOMRIGHT", 0, 0) - right:SetWidth(frame:GetHeight() * 2) + alertpanel.right = alertpanel:CreateTexture(nil, "BORDER") + alertpanel.right:SetTexture(TEMPLATE.RIGHT) + alertpanel.right:SetVertexColor(r,g,b) + alertpanel.right:SetPoint("TOPLEFT", alertpanel, "TOPRIGHT", 0, 0) + alertpanel.right:SetPoint("BOTTOMLEFT", alertpanel, "BOTTOMRIGHT", 0, 0) + alertpanel.right:SetWidth(size * 2) --[[ TOP ]]-- - local top = alertpanel:CreateTexture(nil, "BORDER") - top:SetTexture([[Interface\AddOns\SVUI\assets\artwork\Template\Alert\ALERT-TOP]]) - top:SetPoint("BOTTOMLEFT", alertpanel,"TOPLEFT", 0, 0) - top:SetPoint("BOTTOMRIGHT", alertpanel, "TOPRIGHT", 0, 0) - top:SetHeight(frame:GetHeight() * 0.5) + alertpanel.top = alertpanel:CreateTexture(nil, "BORDER") + alertpanel.top:SetTexture(TEMPLATE.TOP) + alertpanel.top:SetPoint("BOTTOMLEFT", alertpanel, "TOPLEFT", 0, 0) + alertpanel.top:SetPoint("BOTTOMRIGHT", alertpanel, "TOPRIGHT", 0, 0) + alertpanel.top:SetHeight(half) --[[ BOTTOM ]]-- - local bottom = alertpanel:CreateTexture(nil, "BORDER") - bottom:SetTexture([[Interface\AddOns\SVUI\assets\artwork\Template\Alert\ALERT-BOTTOM]]) - bottom:SetPoint("TOPLEFT", alertpanel,"BOTTOMLEFT", 0, 0) - bottom:SetPoint("TOPRIGHT", alertpanel, "BOTTOMRIGHT", 0, 0) - bottom:SetHeight(frame:GetHeight() * 0.5) - - frame.AlertPanel = {alertpanel, right} - frame.ChangeAlertColor = ChangeAlertColor + alertpanel.bottom = alertpanel:CreateTexture(nil, "BORDER") + alertpanel.bottom:SetTexture(TEMPLATE.BOTTOM) + alertpanel.bottom:SetPoint("TOPLEFT", alertpanel, "BOTTOMLEFT", 0, 0) + alertpanel.bottom:SetPoint("TOPRIGHT", alertpanel, "BOTTOMRIGHT", 0, 0) + alertpanel.bottom:SetWidth(half) + + frame.AlertPanel = alertpanel + frame.AlertColor = SetAlertColor end --[[ ##########################################################