Change all use of heroclass to use RAID_CLASS_COLORS instead. This can be changed to CUSTOM_CLASS_COLORS later with a color picker for each class, but to support CoA classes need to go back to being colored properly.
Fix remaining lua errors covered by ascension patches Add Addon Skins Add Enhanced Friends List
This commit is contained in:
+7
-1
@@ -296,7 +296,13 @@ ElvUF.Tags.Methods["namecolor"] = function(unit)
|
||||
local unitReaction = UnitReaction(unit, "player")
|
||||
local unitPlayer = UnitIsPlayer(unit)
|
||||
if unitPlayer then
|
||||
return Hex(E.media.herocolor.r, E.media.herocolor.g, E.media.herocolor.b)
|
||||
if UnitIsUnit(unit, "player") then
|
||||
return Hex(E.media.herocolor.r, E.media.herocolor.g, E.media.herocolor.b)
|
||||
else
|
||||
local _, class = UnitClass(unit)
|
||||
local color = RAID_CLASS_COLORS[class]
|
||||
return Hex(color.r, color.g, color.b)
|
||||
end
|
||||
elseif unitReaction then
|
||||
local reaction = ElvUF.colors.reaction[unitReaction]
|
||||
return Hex(reaction[1], reaction[2], reaction[3])
|
||||
|
||||
@@ -30,6 +30,10 @@ local colors = {
|
||||
threat = {},
|
||||
}
|
||||
|
||||
for classToken, color in next, RAID_CLASS_COLORS do
|
||||
colors.class[classToken] = {color.r, color.g, color.b}
|
||||
end
|
||||
|
||||
for debuffType, color in next, DebuffTypeColor do
|
||||
colors.debuff[debuffType] = {color.r, color.g, color.b}
|
||||
end
|
||||
|
||||
@@ -76,7 +76,12 @@ local function UpdateColor(self, event, unit, powertype)
|
||||
if(element.colorPower) then
|
||||
t = self.colors.power[ADDITIONAL_POWER_BAR_INDEX]
|
||||
elseif(element.colorClass and UnitIsPlayer(unit)) then
|
||||
t = oUF.herocolor
|
||||
if UnitIsUnit("player", unit) then
|
||||
t = oUF.herocolor
|
||||
else
|
||||
local _, class = UnitClass(unit)
|
||||
t = self.colors.class[class]
|
||||
end
|
||||
elseif(element.colorSmooth) then
|
||||
r, g, b = self:ColorGradient(element.cur or 1, element.max or 1, unpack(element.smoothGradient or self.colors.smooth))
|
||||
end
|
||||
|
||||
@@ -101,7 +101,12 @@ local function UpdateColor(self, event, unit)
|
||||
elseif(element.colorClass and UnitIsPlayer(unit)) or
|
||||
(element.colorClassNPC and not UnitIsPlayer(unit)) or
|
||||
(element.colorClassPet and UnitPlayerControlled(unit) and not UnitIsPlayer(unit)) then
|
||||
t = oUF.herocolor
|
||||
if UnitIsUnit("player", unit) then
|
||||
t = oUF.herocolor
|
||||
else
|
||||
local _, class = UnitClass(unit)
|
||||
t = self.colors.class[class]
|
||||
end
|
||||
elseif(element.colorReaction and UnitReaction(unit, 'player')) then
|
||||
t = self.colors.reaction[UnitReaction(unit, 'player')]
|
||||
elseif(element.colorSmooth) then
|
||||
|
||||
@@ -125,7 +125,12 @@ local function UpdateColor(self, event, unit)
|
||||
elseif(element.colorClass and UnitIsPlayer(unit)) or
|
||||
(element.colorClassNPC and not UnitIsPlayer(unit)) or
|
||||
(element.colorClassPet and UnitPlayerControlled(unit) and not UnitIsPlayer(unit)) then
|
||||
t = oUF.herocolor
|
||||
if UnitIsUnit("player", unit) then
|
||||
t = oUF.herocolor
|
||||
else
|
||||
local _, class = UnitClass(unit)
|
||||
t = self.colors.class[class]
|
||||
end
|
||||
elseif(element.colorReaction and UnitReaction(unit, 'player')) then
|
||||
t = self.colors.reaction[UnitReaction(unit, 'player')]
|
||||
elseif(element.colorSmooth) then
|
||||
|
||||
@@ -805,4 +805,5 @@ if(global) then
|
||||
end
|
||||
end
|
||||
|
||||
oUF.herocolor = {0.0, 1.0, 0.0}
|
||||
local _, myClass = UnitClass("player")
|
||||
oUF.herocolor = RAID_CLASS_COLORS[myClass]
|
||||
@@ -939,7 +939,10 @@ function CH:GetColoredName(event, _, arg2, _, _, _, _, _, arg8, _, _, _, arg12)
|
||||
local _, englishClass = GetPlayerInfoByGUID(arg12)
|
||||
|
||||
if englishClass then
|
||||
local classColorTable = E.media.herocolor
|
||||
local classColorTable = RAID_CLASS_COLORS[englishClass]
|
||||
if arg12 == UnitName("player") then
|
||||
classColorTable = E.media.herocolor
|
||||
end
|
||||
if not classColorTable then
|
||||
return arg2
|
||||
end
|
||||
@@ -1439,7 +1442,7 @@ function CH:CheckKeyword(message, author)
|
||||
local wordMatch = classMatch and lowerCaseWord
|
||||
|
||||
if wordMatch and not E.global.chat.classColorMentionExcludedNames[wordMatch] then
|
||||
local classColorTable = E.media.herocolor
|
||||
local classColorTable = RAID_CLASS_COLORS[classMatch]
|
||||
word = gsub(word, gsub(tempWord, "%-", "%%-"), format("\124cff%.2x%.2x%.2x%s\124r", classColorTable.r*255, classColorTable.g*255, classColorTable.b*255, tempWord))
|
||||
end
|
||||
end
|
||||
|
||||
@@ -57,7 +57,7 @@ function DT:BattlegroundStats()
|
||||
for i = 1, GetNumBattlefieldScores() do
|
||||
local name = GetBattlefieldScore(i)
|
||||
if name and name == E.myname then
|
||||
local classColor = E.media.herocolor
|
||||
local classColor = RAID_CLASS_COLORS[E.myclass]
|
||||
|
||||
DT.tooltip:AddDoubleLine(L["Stats For:"], name, 1, 1, 1, classColor.r, classColor.g, classColor.b)
|
||||
DT.tooltip:AddLine(" ")
|
||||
|
||||
@@ -155,7 +155,7 @@ local function OnClick(_, btn)
|
||||
end
|
||||
|
||||
if not shouldSkip then
|
||||
classc = E.media.herocolor
|
||||
classc = RAID_CLASS_COLORS[info[3]]
|
||||
classc = classc or GetQuestDifficultyColor(info[2])
|
||||
levelc = GetQuestDifficultyColor(info[2])
|
||||
|
||||
|
||||
@@ -30,7 +30,8 @@ local function BuildDataTable()
|
||||
|
||||
for charName in pairs(ElvDB.gold[E.myrealm]) do
|
||||
if ElvDB.gold[E.myrealm][charName] then
|
||||
local color = E.media.herocolor
|
||||
local class = ElvDB.class[E.myrealm][charName]
|
||||
local color = class and RAID_CLASS_COLORS[class] or E.media.herocolor
|
||||
|
||||
tinsert(dataTable,
|
||||
{
|
||||
|
||||
@@ -140,7 +140,7 @@ local function OnClick(_, btn)
|
||||
info = dataTable[i]
|
||||
|
||||
if info[7] and info[1] ~= E.myname then
|
||||
classc = E.media.herocolor
|
||||
classc = RAID_CLASS_COLORS[info[9]]
|
||||
levelc = GetQuestDifficultyColor(info[3])
|
||||
|
||||
if UnitInParty(info[1]) or UnitInRaid(info[1]) then
|
||||
@@ -222,7 +222,7 @@ local function OnEnter(self, _, noUpdate)
|
||||
zonec = inactivezone
|
||||
end
|
||||
|
||||
classc = E.media.herocolor
|
||||
classc = RAID_CLASS_COLORS[info[9]]
|
||||
|
||||
if shiftKeyDown then
|
||||
DT.tooltip:AddDoubleLine(
|
||||
|
||||
@@ -50,7 +50,7 @@ function M:UpdateBubbleBorder()
|
||||
wordMatch = classMatch and lowerCaseWord
|
||||
|
||||
if wordMatch and not E.global.chat.classColorMentionExcludedNames[wordMatch] then
|
||||
classColorTable = E.media.herocolor
|
||||
classColorTable = RAID_CLASS_COLORS[classMatch]
|
||||
word = gsub(word, gsub(tempWord, "%-", "%%-"), format("\124cff%.2x%.2x%.2x%s\124r", classColorTable.r*255, classColorTable.g*255, classColorTable.b*255, tempWord))
|
||||
end
|
||||
|
||||
@@ -76,7 +76,7 @@ function M:AddChatBubbleName(chatBubble, guid, name)
|
||||
if guid and guid ~= "" then
|
||||
local _, class = GetPlayerInfoByGUID(guid)
|
||||
if class then
|
||||
color = E:RGBToHex(E.media.herocolor.r, E.media.herocolor.g, E.media.herocolor.b)
|
||||
color = RAID_CLASS_COLORS[class].hex
|
||||
end
|
||||
else
|
||||
color = "|cffffffff"
|
||||
|
||||
@@ -141,7 +141,7 @@ local function buttonOnEnter(self)
|
||||
|
||||
for playerName, rollData in pairs(self.parent.rollResults) do
|
||||
if self.rollType == rollData[1] and rollData[2] then
|
||||
local classColor = E.media.herocolor
|
||||
local classColor = RAID_CLASS_COLORS[rollData[2]]
|
||||
GameTooltip:AddLine(playerName, classColor.r, classColor.g, classColor.b)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -49,12 +49,13 @@ end
|
||||
|
||||
function THREAT:GetColor(unit)
|
||||
if UnitIsPlayer(unit) then
|
||||
local class = E.media.herocolor
|
||||
if not class then
|
||||
local _, class = UnitClass(unit)
|
||||
local color = UnitIsUnit("player", unit) and E.media.herocolor or RAID_CLASS_COLORS[class]
|
||||
if not color then
|
||||
return 194, 194, 194
|
||||
end
|
||||
|
||||
return class.r*255, class.g*255, class.b*255
|
||||
return color.r*255, color.g*255, color.b*255
|
||||
end
|
||||
|
||||
local unitReaction = UnitReaction(unit, "player")
|
||||
|
||||
@@ -21,7 +21,8 @@ function NP:Update_HealthColor(frame)
|
||||
local r, g, b
|
||||
local scale = 1
|
||||
|
||||
local classColor = E.media.herocolor
|
||||
local class = frame.UnitClass
|
||||
local classColor = RAID_CLASS_COLORS[class]
|
||||
local useClassColor = NP.db.units[frame.UnitType].health.useClassColor
|
||||
if classColor and ((frame.UnitType == "FRIENDLY_PLAYER" and useClassColor) or (frame.UnitType == "ENEMY_PLAYER" and useClassColor)) then
|
||||
r, g, b = classColor.r, classColor.g, classColor.b
|
||||
|
||||
@@ -52,7 +52,7 @@ function NP:Update_Name(frame, triggered)
|
||||
|
||||
local classColor, useClassColor
|
||||
if class then
|
||||
classColor = E.media.herocolor
|
||||
classColor = RAID_CLASS_COLORS[class]
|
||||
useClassColor = self.db.units[frame.UnitType].name and self.db.units[frame.UnitType].name.useClassColor
|
||||
end
|
||||
|
||||
|
||||
@@ -90,7 +90,7 @@ S:AddCallback("Skin_WorldStateScore", function()
|
||||
name = format("%s|cffffffff - |r%s%s|r", name, color, realm)
|
||||
end
|
||||
|
||||
classTextColor = E.media.herocolor
|
||||
classTextColor = RAID_CLASS_COLORS[classToken]
|
||||
|
||||
nameText = _G["WorldStateScoreButton"..i.."NameText"]
|
||||
nameText:SetText(name)
|
||||
|
||||
@@ -199,7 +199,7 @@ S:AddCallback("Skin_Friends", function()
|
||||
_, _, level, _, _, _, classFileName = GetWhoInfo(button.whoIndex)
|
||||
|
||||
if classFileName then
|
||||
classTextColor = E.media.herocolor
|
||||
classTextColor = RAID_CLASS_COLORS[classFileName]
|
||||
button.icon:Show()
|
||||
button.icon:SetTexCoord(unpack(CLASS_ICON_TCOORDS[classFileName]))
|
||||
else
|
||||
@@ -327,7 +327,7 @@ S:AddCallback("Skin_Friends", function()
|
||||
_, _, _, level, _, _, _, _, online, _, classFileName = GetGuildRosterInfo(button.guildIndex)
|
||||
if classFileName then
|
||||
if online then
|
||||
classTextColor = E.media.herocolor
|
||||
classTextColor = RAID_CLASS_COLORS[classFileName]
|
||||
levelTextColor = GetQuestDifficultyColor(level)
|
||||
buttonText = _G["GuildFrameButton"..i.."Name"]
|
||||
buttonText:SetTextColor(classTextColor.r, classTextColor.g, classTextColor.b)
|
||||
@@ -343,7 +343,7 @@ S:AddCallback("Skin_Friends", function()
|
||||
_, _, _, _, _, _, _, _, online, _, classFileName = GetGuildRosterInfo(button.guildIndex)
|
||||
if classFileName then
|
||||
if online then
|
||||
classTextColor = E.media.herocolor
|
||||
classTextColor = RAID_CLASS_COLORS[classFileName]
|
||||
_G["GuildFrameGuildStatusButton"..i.."Name"]:SetTextColor(classTextColor.r, classTextColor.g, classTextColor.b)
|
||||
_G["GuildFrameGuildStatusButton"..i.."Online"]:SetTextColor(1.0, 1.0, 1.0)
|
||||
end
|
||||
|
||||
@@ -222,7 +222,7 @@ function TT:SetUnitText(tt, unit, level, isShiftKeyDown)
|
||||
local guildName, guildRankName = GetGuildInfo(unit)
|
||||
local pvpName = UnitPVPName(unit)
|
||||
|
||||
color = E.media.herocolor
|
||||
color = UnitIsUnit("player", unit) and E.media.herocolor or RAID_CLASS_COLORS[class]
|
||||
|
||||
if self.db.playerTitles and pvpName then
|
||||
name = pvpName
|
||||
@@ -276,7 +276,7 @@ function TT:SetUnitText(tt, unit, level, isShiftKeyDown)
|
||||
end
|
||||
|
||||
if not color then
|
||||
color = E.media.herocolor
|
||||
color = UnitIsUnit("player", unit) and E.media.herocolor or RAID_CLASS_COLORS[class]
|
||||
end
|
||||
|
||||
local levelLine = self:GetLevelLine(tt, 2)
|
||||
@@ -379,13 +379,15 @@ function TT:GameTooltip_OnTooltipSetUnit(tt)
|
||||
if unit ~= "player" and UnitExists(unitTarget) then
|
||||
local targetColor
|
||||
if UnitIsPlayer(unitTarget) and not UnitHasVehicleUI(unitTarget) then
|
||||
targetColor = E.media.herocolor
|
||||
local _, class = UnitClass(unitTarget)
|
||||
targetColor = UnitIsUnit("player", unitTarget) and E.media.herocolor or RAID_CLASS_COLORS[class]
|
||||
else
|
||||
targetColor = E.db.tooltip.useCustomFactionColors and E.db.tooltip.factionColors[UnitReaction(unitTarget, "player")] or FACTION_BAR_COLORS[UnitReaction(unitTarget, "player")]
|
||||
end
|
||||
|
||||
if not targetColor then
|
||||
targetColor = E.media.herocolor
|
||||
local _, class = UnitClass(unitTarget)
|
||||
targetColor = UnitIsUnit("player", unitTarget) and E.media.herocolor or RAID_CLASS_COLORS[class]
|
||||
end
|
||||
|
||||
tt:AddDoubleLine(format("%s:", TARGET), format("|cff%02x%02x%02x%s|r", targetColor.r * 255, targetColor.g * 255, targetColor.b * 255, UnitName(unitTarget)))
|
||||
@@ -400,7 +402,8 @@ function TT:GameTooltip_OnTooltipSetUnit(tt)
|
||||
local groupUnit = (inRaid and "raid"..i or "party"..i)
|
||||
|
||||
if not UnitIsUnit(groupUnit, "player") and UnitIsUnit(groupUnit.."target", unit) then
|
||||
local classColor = E.media.herocolor
|
||||
local _, class = UnitClass(groupUnit)
|
||||
local classColor = RAID_CLASS_COLORS[class]
|
||||
|
||||
tinsert(targetList, format("%s%s", E:RGBToHex(classColor.r, classColor.g, classColor.b), UnitName(groupUnit)))
|
||||
end
|
||||
@@ -560,7 +563,8 @@ function TT:SetUnitAura(tt, ...)
|
||||
if id and self.db.spellID then
|
||||
if caster then
|
||||
local name = UnitName(caster)
|
||||
local color = E.media.herocolor
|
||||
local _, class = UnitClass(caster)
|
||||
local color = UnitIsUnit("player", caster) and E.media.herocolor or RAID_CLASS_COLORS[class]
|
||||
tt:AddDoubleLine(format("|cFFCA3C3C%s|r %d", ID, id), format("%s%s", E:RGBToHex(color.r, color.g, color.b), name))
|
||||
else
|
||||
tt:AddLine(format("|cFFCA3C3C%s|r %d", ID, id))
|
||||
|
||||
@@ -384,7 +384,8 @@ function UF:PostCastStart(unit)
|
||||
if (self.notInterruptible and unit ~= "player") and UnitCanAttack("player", unit) then
|
||||
r, g, b = colors.castNoInterrupt[1], colors.castNoInterrupt[2], colors.castNoInterrupt[3]
|
||||
elseif UF.db.colors.castClassColor and UnitIsPlayer(unit) then
|
||||
local t = E.media.herocolor
|
||||
local _, class = UnitClass(unit)
|
||||
local t = UnitIsUnit("player", unit) and E.media.herocolor or RAID_CLASS_COLORS[class]
|
||||
if t then r, g, b = t[1], t[2], t[3] end
|
||||
elseif UF.db.colors.castReactionColor then
|
||||
local Reaction = UnitReaction(unit, "player")
|
||||
@@ -411,7 +412,8 @@ function UF:PostCastInterruptible(unit)
|
||||
if self.notInterruptible and UnitCanAttack("player", unit) then
|
||||
r, g, b = colors.castNoInterrupt[1], colors.castNoInterrupt[2], colors.castNoInterrupt[3]
|
||||
elseif UF.db.colors.castClassColor and UnitIsPlayer(unit) then
|
||||
local t = E.media.herocolor
|
||||
local _, class = UnitClass(unit)
|
||||
local t = UnitIsUnit("player", unit) and E.media.herocolor or RAID_CLASS_COLORS[class]
|
||||
if t then r, g, b = t[1], t[2], t[3] end
|
||||
elseif UF.db.colors.castReactionColor then
|
||||
local Reaction = UnitReaction(unit, "player")
|
||||
|
||||
@@ -186,7 +186,7 @@ function UF:FrameGlow_SetGlowColor(glow, unit, which)
|
||||
if isPlayer then
|
||||
local _, class = UnitClass(unit)
|
||||
if class then
|
||||
local color = E.media.herocolor
|
||||
local color = UnitIsUnit("player", unit) and E.media.herocolor or RAID_CLASS_COLORS[class]
|
||||
if color then
|
||||
r, g, b = color.r, color.g, color.b
|
||||
end
|
||||
|
||||
@@ -43,6 +43,149 @@ G.unitframe = {
|
||||
otherFilter = "CCDebuffs",
|
||||
},
|
||||
spellRangeCheck = {
|
||||
PRIEST = {
|
||||
enemySpells = {
|
||||
[585] = true, -- Smite (30 yards)
|
||||
},
|
||||
longEnemySpells = {
|
||||
[589] = true, -- Shadow Word: Pain (30 yards)
|
||||
},
|
||||
friendlySpells = {
|
||||
[2050] = true, -- Lesser Heal (40 yards)
|
||||
},
|
||||
resSpells = {
|
||||
[2006] = true, -- Resurrection (40 yards)
|
||||
},
|
||||
petSpells = {},
|
||||
},
|
||||
DRUID = {
|
||||
enemySpells = {
|
||||
[33786] = true, -- Cyclone (20 yards)
|
||||
},
|
||||
longEnemySpells = {
|
||||
[5176] = true, -- Wrath (30 yards)
|
||||
},
|
||||
friendlySpells = {
|
||||
[5185] = true, -- Healing Touch (40 yards)
|
||||
},
|
||||
resSpells = {
|
||||
[50769] = true, -- Revive (30 yards)
|
||||
[20484] = true, -- Rebirth (30 yards)
|
||||
},
|
||||
petSpells = {},
|
||||
},
|
||||
PALADIN = {
|
||||
enemySpells = {
|
||||
[20271] = true, -- Judgement (10 yards)
|
||||
},
|
||||
longEnemySpells = {
|
||||
[879] = true, -- Exorcism (30 yards)
|
||||
},
|
||||
friendlySpells = {
|
||||
[635] = true, -- Holy Light (40 yards)
|
||||
},
|
||||
resSpells = {
|
||||
[7328] = true, -- Redemption (30 yards)
|
||||
},
|
||||
petSpells = {},
|
||||
},
|
||||
SHAMAN = {
|
||||
enemySpells = {
|
||||
[51514] = true, -- Hex (20 yards)
|
||||
[8042] = true, -- Earth Shock (25 yards)
|
||||
},
|
||||
longEnemySpells = {
|
||||
[403] = true, -- Lightning Bolt (30 yards)
|
||||
},
|
||||
friendlySpells = {
|
||||
[331] = true, -- Healing Wave (40 yards)
|
||||
},
|
||||
resSpells = {
|
||||
[2008] = true, -- Ancestral Spirit (30 yards)
|
||||
},
|
||||
petSpells = {},
|
||||
},
|
||||
WARLOCK = {
|
||||
enemySpells = {
|
||||
[5782] = true, -- Fear (20 yards)
|
||||
},
|
||||
longEnemySpells = {
|
||||
[686] = true, -- Shadow Bolt (30 yards)
|
||||
},
|
||||
friendlySpells = {
|
||||
[5697] = true, -- Unending Breath (30 yards)
|
||||
},
|
||||
resSpells = {},
|
||||
petSpells = {
|
||||
[755] = true, -- Health Funnel (45 yards)
|
||||
},
|
||||
},
|
||||
MAGE = {
|
||||
enemySpells = {
|
||||
[2136] = true, -- Fire Blast (20 yards)
|
||||
[12826] = true, -- Polymorph (30 yards)
|
||||
},
|
||||
longEnemySpells = {
|
||||
[133] = true, -- Fireball (35 yards)
|
||||
[44614] = true, -- Frostfire Bolt (40 yards)
|
||||
},
|
||||
friendlySpells = {
|
||||
[475] = true, -- Remove Curse (40 yards)
|
||||
},
|
||||
resSpells = {},
|
||||
petSpells = {},
|
||||
},
|
||||
HUNTER = {
|
||||
enemySpells = {
|
||||
[75] = true, -- Auto Shot (35 yards)
|
||||
},
|
||||
longEnemySpells = {},
|
||||
friendlySpells = {},
|
||||
resSpells = {},
|
||||
petSpells = {
|
||||
[136] = true, -- Mend Pet (45 yards)
|
||||
},
|
||||
},
|
||||
DEATHKNIGHT = {
|
||||
enemySpells = {
|
||||
[49576] = true, -- Death Grip (30 yards)
|
||||
},
|
||||
longEnemySpells = {},
|
||||
friendlySpells = {
|
||||
[47541] = true, -- Death Coil (40 yards)
|
||||
},
|
||||
resSpells = {
|
||||
[61999] = true, -- Raise Ally (30 yards)
|
||||
},
|
||||
petSpells = {},
|
||||
},
|
||||
ROGUE = {
|
||||
enemySpells = {
|
||||
[2094] = true, -- Blind (10 yards)
|
||||
},
|
||||
longEnemySpells = {
|
||||
[26679] = true, -- Deadly Throw (30 yards)
|
||||
},
|
||||
friendlySpells = {
|
||||
[57934] = true, -- Tricks of the Trade (20 yards)
|
||||
},
|
||||
resSpells = {},
|
||||
petSpells = {},
|
||||
},
|
||||
WARRIOR = {
|
||||
enemySpells = {
|
||||
[5246] = true, -- Intimidating Shout (8 yards)
|
||||
[100] = true, -- Charge (25 yards)
|
||||
},
|
||||
longEnemySpells = {
|
||||
[355] = true, -- Taunt (30 yards)
|
||||
},
|
||||
friendlySpells = {
|
||||
[3411] = true, -- Intervene (25 yards)
|
||||
},
|
||||
resSpells = {},
|
||||
petSpells = {},
|
||||
},
|
||||
HERO = {
|
||||
enemySpells = {
|
||||
[5246] = true, -- Intimidating Shout (8 yards)
|
||||
@@ -113,6 +256,153 @@ G.unitframe = {
|
||||
[34026] = true, -- Kill Command (45 yards)
|
||||
},
|
||||
},
|
||||
NECROMANCER = {
|
||||
enemySpells = {}, -- Damage Spells
|
||||
longEnemySpells = {}, -- Dots
|
||||
friendlySpells = {}, -- Heals
|
||||
resSpells = {}, -- Rez Spells
|
||||
petSpells = {}, -- Pet Abilities
|
||||
},
|
||||
PYROMANCER = {
|
||||
enemySpells = {}, -- Damage Spells
|
||||
longEnemySpells = {}, -- Dots
|
||||
friendlySpells = {}, -- Heals
|
||||
resSpells = {}, -- Rez Spells
|
||||
petSpells = {}, -- Pet Abilities
|
||||
},
|
||||
CULTIST = {
|
||||
enemySpells = {}, -- Damage Spells
|
||||
longEnemySpells = {}, -- Dots
|
||||
friendlySpells = {}, -- Heals
|
||||
resSpells = {}, -- Rez Spells
|
||||
petSpells = {}, -- Pet Abilities
|
||||
},
|
||||
STARCALLER = {
|
||||
enemySpells = {}, -- Damage Spells
|
||||
longEnemySpells = {}, -- Dots
|
||||
friendlySpells = {}, -- Heals
|
||||
resSpells = {}, -- Rez Spells
|
||||
petSpells = {}, -- Pet Abilities
|
||||
},
|
||||
SUNCLERIC = {
|
||||
enemySpells = {}, -- Damage Spells
|
||||
longEnemySpells = {}, -- Dots
|
||||
friendlySpells = {}, -- Heals
|
||||
resSpells = {}, -- Rez Spells
|
||||
petSpells = {}, -- Pet Abilities
|
||||
},
|
||||
TINKER = {
|
||||
enemySpells = {}, -- Damage Spells
|
||||
longEnemySpells = {}, -- Dots
|
||||
friendlySpells = {}, -- Heals
|
||||
resSpells = {}, -- Rez Spells
|
||||
petSpells = {}, -- Pet Abilities
|
||||
},
|
||||
SPIRITMAGE = {
|
||||
enemySpells = {}, -- Damage Spells
|
||||
longEnemySpells = {}, -- Dots
|
||||
friendlySpells = {}, -- Heals
|
||||
resSpells = {}, -- Rez Spells
|
||||
petSpells = {}, -- Pet Abilities
|
||||
},
|
||||
WILDWALKER = {
|
||||
enemySpells = {}, -- Damage Spells
|
||||
longEnemySpells = {}, -- Dots
|
||||
friendlySpells = {}, -- Heals
|
||||
resSpells = {}, -- Rez Spells
|
||||
petSpells = {}, -- Pet Abilities
|
||||
},
|
||||
REAPER = {
|
||||
enemySpells = {}, -- Damage Spells
|
||||
longEnemySpells = {}, -- Dots
|
||||
friendlySpells = {}, -- Heals
|
||||
resSpells = {}, -- Rez Spells
|
||||
petSpells = {}, -- Pet Abilities
|
||||
},
|
||||
PROPHET = {
|
||||
enemySpells = {}, -- Damage Spells
|
||||
longEnemySpells = {}, -- Dots
|
||||
friendlySpells = {}, -- Heals
|
||||
resSpells = {}, -- Rez Spells
|
||||
petSpells = {}, -- Pet Abilities
|
||||
},
|
||||
CHRONOMANCER = {
|
||||
enemySpells = {}, -- Damage Spells
|
||||
longEnemySpells = {}, -- Dots
|
||||
friendlySpells = {}, -- Heals
|
||||
resSpells = {}, -- Rez Spells
|
||||
petSpells = {}, -- Pet Abilities
|
||||
},
|
||||
SONOFARUGAL = {
|
||||
enemySpells = {}, -- Damage Spells
|
||||
longEnemySpells = {}, -- Dots
|
||||
friendlySpells = {}, -- Heals
|
||||
resSpells = {}, -- Rez Spells
|
||||
petSpells = {}, -- Pet Abilities
|
||||
},
|
||||
GUARDIAN = {
|
||||
enemySpells = {}, -- Damage Spells
|
||||
longEnemySpells = {}, -- Dots
|
||||
friendlySpells = {}, -- Heals
|
||||
resSpells = {}, -- Rez Spells
|
||||
petSpells = {}, -- Pet Abilities
|
||||
},
|
||||
STORMBRINGER = {
|
||||
enemySpells = {}, -- Damage Spells
|
||||
longEnemySpells = {}, -- Dots
|
||||
friendlySpells = {}, -- Heals
|
||||
resSpells = {}, -- Rez Spells
|
||||
petSpells = {}, -- Pet Abilities
|
||||
},
|
||||
DEMONHUNTER = {
|
||||
enemySpells = {}, -- Damage Spells
|
||||
longEnemySpells = {}, -- Dots
|
||||
friendlySpells = {}, -- Heals
|
||||
resSpells = {}, -- Rez Spells
|
||||
petSpells = {}, -- Pet Abilities
|
||||
},
|
||||
BARBARIAN = {
|
||||
enemySpells = {}, -- Damage Spells
|
||||
longEnemySpells = {}, -- Dots
|
||||
friendlySpells = {}, -- Heals
|
||||
resSpells = {}, -- Rez Spells
|
||||
petSpells = {}, -- Pet Abilities
|
||||
},
|
||||
WITCHDOCTOR = {
|
||||
enemySpells = {}, -- Damage Spells
|
||||
longEnemySpells = {}, -- Dots
|
||||
friendlySpells = {}, -- Heals
|
||||
resSpells = {}, -- Rez Spells
|
||||
petSpells = {}, -- Pet Abilities
|
||||
},
|
||||
WITCHHUNTER = {
|
||||
enemySpells = {}, -- Damage Spells
|
||||
longEnemySpells = {}, -- Dots
|
||||
friendlySpells = {}, -- Heals
|
||||
resSpells = {}, -- Rez Spells
|
||||
petSpells = {}, -- Pet Abilities
|
||||
},
|
||||
FLESHWARDEN = {
|
||||
enemySpells = {}, -- Damage Spells
|
||||
longEnemySpells = {}, -- Dots
|
||||
friendlySpells = {}, -- Heals
|
||||
resSpells = {}, -- Rez Spells
|
||||
petSpells = {}, -- Pet Abilities
|
||||
},
|
||||
MONK = {
|
||||
enemySpells = {}, -- Damage Spells
|
||||
longEnemySpells = {}, -- Dots
|
||||
friendlySpells = {}, -- Heals
|
||||
resSpells = {}, -- Rez Spells
|
||||
petSpells = {}, -- Pet Abilities
|
||||
},
|
||||
RANGER = {
|
||||
enemySpells = {}, -- Damage Spells
|
||||
longEnemySpells = {}, -- Dots
|
||||
friendlySpells = {}, -- Heals
|
||||
resSpells = {}, -- Rez Spells
|
||||
petSpells = {}, -- Pet Abilities
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ P.general = {
|
||||
backdropcolor = {r = 0.1, g = 0.1, b = 0.1},
|
||||
backdropfadecolor = {r = 0.06, g = 0.06, b = 0.06, a = 0.8},
|
||||
valuecolor = {r = 0.99, g = 0.48, b = 0.17},
|
||||
herocolor = {r = 0.0, g = 1.0, b = 0.0},
|
||||
herocolor = RAID_CLASS_COLORS[E.myclass],
|
||||
cropIcon = 2,
|
||||
minimap = {
|
||||
size = 176,
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
## Interface: 30300
|
||||
## Author: Bunny, Azilroka, Sortokk
|
||||
## Version: 1.06
|
||||
## Title: |cff1784d1E|r|cffe5e3e3lvUI|r |cff1784d1A|r|cffe5e3e3dd|r|cff1784d1O|r|cffe5e3e3n|r |cff1784d1S|r|cffe5e3e3kins|r
|
||||
## Notes: AddOn skins for ElvUI :)
|
||||
## RequiredDeps: ElvUI
|
||||
|
||||
Locales\Load_Locales.xml
|
||||
Settings\Load_Settings.xml
|
||||
Core.lua
|
||||
Skins\Load_Skins.xml
|
||||
Modules\Load_Modules.xml
|
||||
@@ -0,0 +1,11 @@
|
||||
<Ui xmlns="http://www.blizzard.com/wow/ui/">
|
||||
<Script file="enUS.lua"/>
|
||||
<Script file="deDE.lua"/>
|
||||
<Script file="esMX.lua"/>
|
||||
<Script file="frFR.lua"/>
|
||||
<Script file="koKR.lua"/>
|
||||
<Script file="ptBR.lua"/>
|
||||
<Script file="ruRU.lua"/>
|
||||
<Script file="zhTW.lua"/>
|
||||
<Script file="zhCN.lua"/>
|
||||
</Ui>
|
||||
@@ -0,0 +1,22 @@
|
||||
local E = unpack(ElvUI); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local L = E.Libs.ACL:NewLocale("ElvUI", "deDE")
|
||||
|
||||
L["AddOn Skins"] = true
|
||||
L["AuraBar Backdrop"] = true
|
||||
L["DBM Half-bar Skin"] = "DBM Halbeleisten Skin"
|
||||
L["Default"] = true
|
||||
L["Double"] = true
|
||||
L["Embed Type"] = true
|
||||
L["Font Size"] = true
|
||||
L["Icon Cooldown"] = true
|
||||
L["Left Panel"] = true
|
||||
L["Left Window Width"] = true
|
||||
L["Misc Options"] = true
|
||||
L["None"] = "Nichts"
|
||||
L["Right Panel"] = true
|
||||
L["Single"] = true
|
||||
L["Template Gloss"] = true
|
||||
L["Template"] = true
|
||||
L["Title Template Gloss"] = true
|
||||
L["Title Template"] = true
|
||||
L["Toggle Embedded Addon"] = true
|
||||
@@ -0,0 +1,22 @@
|
||||
local E = unpack(ElvUI); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local L = E.Libs.ACL:NewLocale("ElvUI", "enUS", true, true)
|
||||
|
||||
L["AddOn Skins"] = true
|
||||
L["AuraBar Backdrop"] = true
|
||||
L["DBM Half-bar Skin"] = true
|
||||
L["Default"] = true
|
||||
L["Double"] = true
|
||||
L["Embed Type"] = true
|
||||
L["Font Size"] = true
|
||||
L["Icon Cooldown"] = true
|
||||
L["Left Panel"] = true
|
||||
L["Left Window Width"] = true
|
||||
L["Misc Options"] = true
|
||||
L["None"] = true
|
||||
L["Right Panel"] = true
|
||||
L["Single"] = true
|
||||
L["Template Gloss"] = true
|
||||
L["Template"] = true
|
||||
L["Title Template Gloss"] = true
|
||||
L["Title Template"] = true
|
||||
L["Toggle Embedded Addon"] = true
|
||||
@@ -0,0 +1,22 @@
|
||||
local E = unpack(ElvUI); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local L = E.Libs.ACL:NewLocale("ElvUI", "esMX")
|
||||
|
||||
L["AddOn Skins"] = true
|
||||
L["AuraBar Backdrop"] = true
|
||||
L["DBM Half-bar Skin"] = true
|
||||
L["Default"] = true
|
||||
L["Double"] = true
|
||||
L["Embed Type"] = true
|
||||
L["Font Size"] = true
|
||||
L["Icon Cooldown"] = true
|
||||
L["Left Panel"] = true
|
||||
L["Left Window Width"] = true
|
||||
L["Misc Options"] = true
|
||||
L["None"] = true
|
||||
L["Right Panel"] = true
|
||||
L["Single"] = true
|
||||
L["Template Gloss"] = true
|
||||
L["Template"] = true
|
||||
L["Title Template Gloss"] = true
|
||||
L["Title Template"] = true
|
||||
L["Toggle Embedded Addon"] = true
|
||||
@@ -0,0 +1,22 @@
|
||||
local E = unpack(ElvUI); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local L = E.Libs.ACL:NewLocale("ElvUI", "frFR")
|
||||
|
||||
L["AddOn Skins"] = "Skins d'AddOn"
|
||||
L["AuraBar Backdrop"] = true
|
||||
L["DBM Half-bar Skin"] = "Skin Demi-Bar pour DBM"
|
||||
L["Default"] = true
|
||||
L["Double"] = true
|
||||
L["Embed Type"] = true
|
||||
L["Font Size"] = true
|
||||
L["Icon Cooldown"] = true
|
||||
L["Left Panel"] = true
|
||||
L["Left Window Width"] = true
|
||||
L["Misc Options"] = true
|
||||
L["None"] = "Aucun"
|
||||
L["Right Panel"] = true
|
||||
L["Single"] = true
|
||||
L["Template Gloss"] = true
|
||||
L["Template"] = true
|
||||
L["Title Template Gloss"] = true
|
||||
L["Title Template"] = true
|
||||
L["Toggle Embedded Addon"] = true
|
||||
@@ -0,0 +1,22 @@
|
||||
local E = unpack(ElvUI); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local L = E.Libs.ACL:NewLocale("ElvUI", "koKR")
|
||||
|
||||
L["AddOn Skins"] = true
|
||||
L["AuraBar Backdrop"] = true
|
||||
L["DBM Half-bar Skin"] = true
|
||||
L["Default"] = true
|
||||
L["Double"] = true
|
||||
L["Embed Type"] = true
|
||||
L["Font Size"] = true
|
||||
L["Icon Cooldown"] = true
|
||||
L["Left Panel"] = true
|
||||
L["Left Window Width"] = true
|
||||
L["Misc Options"] = true
|
||||
L["None"] = true
|
||||
L["Right Panel"] = true
|
||||
L["Single"] = true
|
||||
L["Template Gloss"] = true
|
||||
L["Template"] = true
|
||||
L["Title Template Gloss"] = true
|
||||
L["Title Template"] = true
|
||||
L["Toggle Embedded Addon"] = true
|
||||
@@ -0,0 +1,22 @@
|
||||
local E = unpack(ElvUI); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local L = E.Libs.ACL:NewLocale("ElvUI", "ptBR")
|
||||
|
||||
L["AddOn Skins"] = true
|
||||
L["AuraBar Backdrop"] = true
|
||||
L["DBM Half-bar Skin"] = "Skin Meia-barra para DBM"
|
||||
L["Default"] = true
|
||||
L["Double"] = true
|
||||
L["Embed Type"] = true
|
||||
L["Font Size"] = true
|
||||
L["Icon Cooldown"] = true
|
||||
L["Left Panel"] = true
|
||||
L["Left Window Width"] = true
|
||||
L["Misc Options"] = true
|
||||
L["None"] = true
|
||||
L["Right Panel"] = true
|
||||
L["Single"] = true
|
||||
L["Template Gloss"] = true
|
||||
L["Template"] = true
|
||||
L["Title Template Gloss"] = true
|
||||
L["Title Template"] = true
|
||||
L["Toggle Embedded Addon"] = true
|
||||
@@ -0,0 +1,22 @@
|
||||
local E = unpack(ElvUI); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local L = E.Libs.ACL:NewLocale("ElvUI", "ruRU")
|
||||
|
||||
L["AddOn Skins"] = "Скины аддонов"
|
||||
L["AuraBar Backdrop"] = true
|
||||
L["DBM Half-bar Skin"] = "DBM режим тонких полос"
|
||||
L["Default"] = true
|
||||
L["Double"] = "Двойной"
|
||||
L["Embed Type"] = "Тип встраивания"
|
||||
L["Font Size"] = true
|
||||
L["Icon Cooldown"] = true
|
||||
L["Left Panel"] = "Левое окно"
|
||||
L["Left Window Width"] = "Ширина левого окна"
|
||||
L["Misc Options"] = true
|
||||
L["None"] = "Нет"
|
||||
L["Right Panel"] = "Правое окно"
|
||||
L["Single"] = "Одинарный"
|
||||
L["Template Gloss"] = true
|
||||
L["Template"] = true
|
||||
L["Title Template Gloss"] = true
|
||||
L["Title Template"] = true
|
||||
L["Toggle Embedded Addon"] = true
|
||||
@@ -0,0 +1,22 @@
|
||||
local E = unpack(ElvUI); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local L = E.Libs.ACL:NewLocale("ElvUI", "zhCN")
|
||||
|
||||
L["AddOn Skins"] = "插件皮肤"
|
||||
L["AuraBar Backdrop"] = "光环条背景"
|
||||
L["DBM Half-bar Skin"] = "DBM 半高计时条"
|
||||
L["Default"] = "默认"
|
||||
L["Double"] = "双内嵌"
|
||||
L["Embed Type"] = "内嵌样式"
|
||||
L["Font Size"] = "字体大小"
|
||||
L["Icon Cooldown"] = "图标冷却"
|
||||
L["Left Panel"] = "左面板"
|
||||
L["Left Window Width"] = "左窗口宽度"
|
||||
L["Misc Options"] = "其它选项"
|
||||
L["None"] = "无"
|
||||
L["Right Panel"] = "右面板"
|
||||
L["Single"] = "单内嵌"
|
||||
L["Template Gloss"] = "样式光泽"
|
||||
L["Template"] = "样式"
|
||||
L["Title Template Gloss"] = "标题样式光泽"
|
||||
L["Title Template"] = "标题样式"
|
||||
L["Toggle Embedded Addon"] = "调试内嵌插件"
|
||||
@@ -0,0 +1,22 @@
|
||||
local E = unpack(ElvUI); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local L = E.Libs.ACL:NewLocale("ElvUI", "zhTW")
|
||||
|
||||
L["AddOn Skins"] = "插件美化"
|
||||
L["AuraBar Backdrop"] = true
|
||||
L["DBM Half-bar Skin"] = "DBM 計時條美化"
|
||||
L["Default"] = true
|
||||
L["Double"] = true
|
||||
L["Embed Type"] = true
|
||||
L["Font Size"] = true
|
||||
L["Icon Cooldown"] = true
|
||||
L["Left Panel"] = true
|
||||
L["Left Window Width"] = true
|
||||
L["Misc Options"] = true
|
||||
L["None"] = "無"
|
||||
L["Right Panel"] = true
|
||||
L["Single"] = true
|
||||
L["Template Gloss"] = true
|
||||
L["Template"] = true
|
||||
L["Title Template Gloss"] = true
|
||||
L["Title Template"] = true
|
||||
L["Toggle Embedded Addon"] = true
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 16 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 1.0 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 1.0 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,3 @@
|
||||
<Ui xmlns="http://www.blizzard.com/wow/ui/">
|
||||
<Script file="Embed.lua"/>
|
||||
</Ui>
|
||||
@@ -0,0 +1,569 @@
|
||||
local E, L, V, P, G = unpack(ElvUI)
|
||||
local EMB = E:NewModule("EmbedSystem")
|
||||
local AS = E:GetModule("AddOnSkins")
|
||||
|
||||
local _G = _G
|
||||
local pairs = pairs
|
||||
local floor = math.floor
|
||||
local lower, match = string.lower, string.match
|
||||
local tinsert = table.insert
|
||||
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
local NUM_CHAT_WINDOWS = NUM_CHAT_WINDOWS
|
||||
|
||||
function EMB:GetChatWindowInfo()
|
||||
local chatTabInfo = {["NONE"] = "NONE"}
|
||||
for i = 1, NUM_CHAT_WINDOWS do
|
||||
chatTabInfo["ChatFrame"..i] = _G["ChatFrame"..i.."Tab"]:GetText()
|
||||
end
|
||||
return chatTabInfo
|
||||
end
|
||||
|
||||
function EMB:ToggleChatFrame(hide)
|
||||
local chatFrame = E.db.addOnSkins.embed.hideChat
|
||||
if chatFrame == "NONE" then return end
|
||||
|
||||
if hide then
|
||||
_G[chatFrame].originalParent = _G[chatFrame]:GetParent()
|
||||
_G[chatFrame]:SetParent(E.HiddenFrame)
|
||||
|
||||
_G[chatFrame.."Tab"].originalParent = _G[chatFrame.."Tab"]:GetParent()
|
||||
_G[chatFrame.."Tab"]:SetParent(E.HiddenFrame)
|
||||
else
|
||||
if _G[chatFrame].originalParent then
|
||||
_G[chatFrame]:SetParent(_G[chatFrame].originalParent)
|
||||
_G[chatFrame.."Tab"]:SetParent(_G[chatFrame.."Tab"].originalParent)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function EMB:EmbedShow()
|
||||
if _G[self.leftFrame.frameName] then
|
||||
_G[self.leftFrame.frameName]:Show()
|
||||
end
|
||||
|
||||
if E.db.addOnSkins.embed.embedType == "DOUBLE" then
|
||||
if _G[self.rightFrame.frameName] then
|
||||
_G[self.rightFrame.frameName]:Show()
|
||||
end
|
||||
end
|
||||
|
||||
self:ToggleChatFrame(true)
|
||||
self.switchButton:SetAlpha(1)
|
||||
end
|
||||
|
||||
function EMB:EmbedHide()
|
||||
if _G[self.leftFrame.frameName] then
|
||||
_G[self.leftFrame.frameName]:Hide()
|
||||
end
|
||||
|
||||
if E.db.addOnSkins.embed.embedType == "DOUBLE" then
|
||||
if _G[self.rightFrame.frameName] then
|
||||
_G[self.rightFrame.frameName]:Hide()
|
||||
end
|
||||
end
|
||||
|
||||
self:ToggleChatFrame(false)
|
||||
self.switchButton:SetAlpha(0.6)
|
||||
end
|
||||
|
||||
function EMB:CheckEmbed(addon)
|
||||
local db = E.db.addOnSkins.embed
|
||||
local left, right, embed = lower(db.leftWindow), lower(db.rightWindow), lower(addon)
|
||||
|
||||
if AS:IsAddonEnabled(addon) and ((db.embedType == "SINGLE" and match(left, embed)) or db.embedType == "DOUBLE" and (match(left, embed) or match(right, embed))) then
|
||||
return true
|
||||
else
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
function EMB:EmbedUpdate()
|
||||
if E.db.addOnSkins.embed.embedType == "DISABLE" then return end
|
||||
|
||||
if not self.embedCreated then
|
||||
self:EmbedCreate()
|
||||
end
|
||||
|
||||
self:WindowResize()
|
||||
|
||||
if self:CheckEmbed("Omen") then self:EmbedOmen() end
|
||||
if self:CheckEmbed("Recount") then self:EmbedRecount() end
|
||||
if self:CheckEmbed("Skada") then self:EmbedSkada() end
|
||||
if self:CheckEmbed("Details") then self:EmbedDetails() end
|
||||
end
|
||||
|
||||
function EMB:SetHooks()
|
||||
hooksecurefunc(E:GetModule("Chat"), "PositionChat", function(self, override)
|
||||
if override then
|
||||
EMB:EmbedUpdate()
|
||||
end
|
||||
end)
|
||||
hooksecurefunc(E:GetModule("Layout"), "ToggleChatPanels", function() EMB:EmbedUpdate() end)
|
||||
|
||||
hooksecurefunc(LeftChatPanel, "fadeFunc", function()
|
||||
LeftChatPanel:Hide()
|
||||
if not E.db.addOnSkins.embed.rightChatPanel then
|
||||
EMB.switchButton:Hide()
|
||||
end
|
||||
end)
|
||||
hooksecurefunc(RightChatPanel, "fadeFunc", function()
|
||||
RightChatPanel:Hide()
|
||||
if E.db.addOnSkins.embed.rightChatPanel then
|
||||
EMB.switchButton:Hide()
|
||||
end
|
||||
end)
|
||||
|
||||
local rightChatToggleOnClickOriginal = RightChatToggleButton:GetScript("OnClick")
|
||||
RightChatToggleButton:RegisterForClicks("AnyDown")
|
||||
RightChatToggleButton:SetScript("OnClick", function(self, btn)
|
||||
if btn == "RightButton" then
|
||||
if E.db.addOnSkins.embed.rightChatPanel then
|
||||
if EMB.mainFrame:IsShown() then
|
||||
EMB.mainFrame:Hide()
|
||||
else
|
||||
EMB.mainFrame:Show()
|
||||
end
|
||||
end
|
||||
else
|
||||
rightChatToggleOnClickOriginal(self, btn)
|
||||
end
|
||||
EMB:UpdateSwitchButton()
|
||||
end)
|
||||
|
||||
RightChatToggleButton:HookScript("OnEnter", function()
|
||||
if E.db.addOnSkins.embed.rightChatPanel then
|
||||
GameTooltip:AddDoubleLine(L["Right Click:"], L["Toggle Embedded Addon"], 1, 1, 1)
|
||||
GameTooltip:Show()
|
||||
EMB:UpdateSwitchButton()
|
||||
end
|
||||
end)
|
||||
|
||||
local leftChatToggleOnClickOriginal = LeftChatToggleButton:GetScript("OnClick")
|
||||
LeftChatToggleButton:RegisterForClicks("AnyDown")
|
||||
LeftChatToggleButton:SetScript("OnClick", function(self, btn)
|
||||
if btn == "RightButton" then
|
||||
if not E.db.addOnSkins.embed.rightChatPanel then
|
||||
if EMB.mainFrame:IsShown() then
|
||||
EMB.mainFrame:Hide()
|
||||
else
|
||||
EMB.mainFrame:Show()
|
||||
end
|
||||
end
|
||||
else
|
||||
leftChatToggleOnClickOriginal(self, btn)
|
||||
end
|
||||
EMB:UpdateSwitchButton()
|
||||
end)
|
||||
|
||||
LeftChatToggleButton:HookScript("OnEnter", function()
|
||||
if not E.db.addOnSkins.embed.rightChatPanel then
|
||||
GameTooltip:AddDoubleLine(L["Right Click:"], L["Toggle Embedded Addon"], 1, 1, 1)
|
||||
GameTooltip:Show()
|
||||
EMB:UpdateSwitchButton()
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
function EMB:WindowResize()
|
||||
if not self.embedCreated then return end
|
||||
|
||||
local db = E.db.addOnSkins.embed
|
||||
local SPACING = E.Border + E.Spacing
|
||||
local chatPanel = db.rightChatPanel and RightChatPanel or LeftChatPanel
|
||||
local chatTab = db.rightChatPanel and RightChatTab or LeftChatTab
|
||||
local chatData = db.rightChatPanel and RightChatDataPanel or LeftChatToggleButton
|
||||
local topRight = chatData == RightChatDataPanel and (E.db.datatexts.rightChatPanel and "TOPLEFT" or "BOTTOMLEFT") or chatData == LeftChatToggleButton and (E.db.datatexts.leftChatPanel and "TOPLEFT" or "BOTTOMLEFT")
|
||||
local yOffset = (chatData == RightChatDataPanel and E.db.datatexts.rightChatPanel and SPACING) or (chatData == LeftChatToggleButton and E.db.datatexts.leftChatPanel and SPACING) or 0
|
||||
local xOffset = (E.db.chat.panelBackdrop == "RIGHT" and db.rightChatPanel and 0) or (E.db.chat.panelBackdrop == "LEFT" and not db.rightChatPanel and 0) or (E.db.chat.panelBackdrop == "SHOWBOTH" and 0) or E.Border*3 - E.Spacing
|
||||
local isDouble = db.embedType == "DOUBLE"
|
||||
|
||||
self.mainFrame:SetParent(chatPanel)
|
||||
self.mainFrame:ClearAllPoints()
|
||||
|
||||
self.mainFrame:Point("BOTTOMLEFT", chatData, topRight, 0, yOffset)
|
||||
self.mainFrame:Point("TOPRIGHT", chatTab, db.belowTopTab and "BOTTOMRIGHT" or "TOPRIGHT", xOffset, db.belowTopTab and -SPACING or 0)
|
||||
|
||||
if isDouble then
|
||||
self.leftFrame:ClearAllPoints()
|
||||
self.leftFrame:Point("TOPLEFT", self.mainFrame)
|
||||
self.leftFrame:Point("BOTTOMRIGHT", self.mainFrame, "BOTTOMRIGHT", -(self.mainFrame:GetWidth() - db.leftWindowWidth + SPACING), 0)
|
||||
|
||||
self.rightFrame:ClearAllPoints()
|
||||
self.rightFrame:Point("TOPLEFT", self.leftFrame, "TOPRIGHT", SPACING, 0)
|
||||
self.rightFrame:Point("BOTTOMRIGHT", self.mainFrame)
|
||||
else
|
||||
self.leftFrame:ClearAllPoints()
|
||||
self.leftFrame:Point("TOPLEFT", self.mainFrame)
|
||||
self.leftFrame:Point("BOTTOMRIGHT", self.mainFrame)
|
||||
end
|
||||
|
||||
self:UpdateSwitchButton()
|
||||
|
||||
if IsAddOnLoaded("ElvUI_Config") then
|
||||
E.Options.args.addOnSkins.args.embed.args.leftWindowWidth.min = floor(chatPanel:GetWidth() * .25)
|
||||
E.Options.args.addOnSkins.args.embed.args.leftWindowWidth.max = floor(chatPanel:GetWidth() * .75)
|
||||
end
|
||||
end
|
||||
|
||||
function EMB:UpdateSwitchButton()
|
||||
local db = E.db.addOnSkins.embed
|
||||
local chatPanel = db.rightChatPanel and RightChatPanel or LeftChatPanel
|
||||
local chatTab = db.rightChatPanel and RightChatTab or LeftChatTab
|
||||
local isDouble = db.embedType == "DOUBLE"
|
||||
|
||||
self.switchButton:SetParent(chatPanel)
|
||||
|
||||
if db.belowTopTab and chatPanel:IsShown() then
|
||||
self.switchButton:Show()
|
||||
self.switchButton.text:SetText(isDouble and db.leftWindow.." / "..db.rightWindow or db.leftWindow)
|
||||
self.switchButton:ClearAllPoints()
|
||||
|
||||
if E.Chat.RightChatWindowID and _G["ChatFrame"..E.Chat.RightChatWindowID.."Tab"]:IsVisible() then
|
||||
self.switchButton:Point("LEFT", _G["ChatFrame"..E.Chat.RightChatWindowID.."Tab"], "RIGHT", 0, 0)
|
||||
else
|
||||
self.switchButton:Point(db.rightChatPanel and "LEFT" or "RIGHT", chatTab, 5, 4)
|
||||
end
|
||||
elseif self.switchButton:IsShown() then
|
||||
self.switchButton:Hide()
|
||||
end
|
||||
end
|
||||
|
||||
function EMB:EmbedCreate()
|
||||
if self.embedCreated then return end
|
||||
|
||||
self.mainFrame = CreateFrame("Frame", "ElvUI_AddOnSkins_Embed_MainWindow", UIParent)
|
||||
self.leftFrame = CreateFrame("Frame", "ElvUI_AddOnSkins_Embed_LeftWindow", self.mainFrame)
|
||||
self.rightFrame = CreateFrame("Frame", "ElvUI_AddOnSkins_Embed_RightWindow", self.mainFrame)
|
||||
|
||||
self.switchButton = CreateFrame("Button", "ElvUI_AddOnSkins_Embed_SwitchButton", UIParent)
|
||||
self.switchButton:Size(120, 32)
|
||||
self.switchButton:RegisterForClicks("AnyUp")
|
||||
|
||||
self.switchButton.text = self.switchButton:CreateFontString(nil, "OVERLAY")
|
||||
self.switchButton.text:FontTemplate(E.LSM:Fetch("font", E.db.chat.tabFont), E.db.chat.tabFontSize, E.db.chat.tabFontOutline)
|
||||
self.switchButton.text:SetTextColor(unpack(E["media"].rgbvaluecolor))
|
||||
self.switchButton.text:SetPoint("LEFT", 16, -5)
|
||||
|
||||
self.switchButton:SetScript("OnClick", function(self, button)
|
||||
if EMB.mainFrame:IsShown() then
|
||||
EMB.mainFrame:Hide()
|
||||
self:SetAlpha(0.6)
|
||||
else
|
||||
EMB.mainFrame:Show()
|
||||
self:SetAlpha(1)
|
||||
end
|
||||
EMB:UpdateSwitchButton()
|
||||
end)
|
||||
|
||||
self.switchButton:SetScript("OnMouseDown", function(self) self.text:Point("LEFT", 18, -7) end)
|
||||
self.switchButton:SetScript("OnMouseUp", function(self) self.text:Point("LEFT", 16, -5) end)
|
||||
|
||||
self.mainFrame:SetScript("OnShow", function() EMB:EmbedShow() end)
|
||||
self.mainFrame:SetScript("OnHide", function() EMB:EmbedHide() end)
|
||||
|
||||
self.embedCreated = true
|
||||
|
||||
self:SetHooks()
|
||||
self:ToggleChatFrame(false)
|
||||
self:EmbedUpdate()
|
||||
end
|
||||
|
||||
if AS:IsAddonLODorEnabled("Recount") then
|
||||
function EMB:EmbedRecount()
|
||||
local parent = self.leftFrame
|
||||
if E.db.addOnSkins.embed.embedType == "DOUBLE" then
|
||||
parent = E.db.addOnSkins.embed.rightWindow == "Recount" and self.rightFrame or self.leftFrame
|
||||
end
|
||||
parent.frameName = "Recount_MainWindow"
|
||||
|
||||
Recount_MainWindow:SetParent(parent)
|
||||
Recount_MainWindow:ClearAllPoints()
|
||||
Recount_MainWindow:SetPoint("TOPLEFT", parent, "TOPLEFT", E.PixelMode and -1 or 0, E.PixelMode and 8 or 7)
|
||||
Recount_MainWindow:SetPoint("BOTTOMRIGHT", parent, "BOTTOMRIGHT", E.PixelMode and 1 or 0, E.PixelMode and -1 or 0)
|
||||
|
||||
Recount.db.profile.Locked = true
|
||||
Recount.db.profile.Scaling = 1
|
||||
Recount.db.profile.ClampToScreen = true
|
||||
Recount.db.profile.FrameStrata = "2-LOW"
|
||||
Recount:SetStrataAndClamp()
|
||||
Recount:LockWindows(true)
|
||||
|
||||
Recount_MainWindow:StartSizing("BOTTOMLEFT")
|
||||
Recount_MainWindow:StopMovingOrSizing()
|
||||
Recount:ResizeMainWindow()
|
||||
end
|
||||
end
|
||||
|
||||
if AS:IsAddonLODorEnabled("Omen") then
|
||||
function EMB:EmbedOmen()
|
||||
local parent = self.leftFrame
|
||||
if E.db.addOnSkins.embed.embedType == "DOUBLE" then
|
||||
parent = E.db.addOnSkins.embed.rightWindow == "Omen" and self.rightFrame or self.leftFrame
|
||||
end
|
||||
parent.frameName = "OmenAnchor"
|
||||
|
||||
local db = Omen.db
|
||||
db.profile.Scale = 1
|
||||
db.profile.Bar.Spacing = 1
|
||||
db.profile.Background.EdgeSize = 1
|
||||
db.profile.Background.BarInset = 1
|
||||
-- db.profile.TitleBar.Height = 22
|
||||
db.profile.TitleBar.UseSameBG = true
|
||||
db.profile.ShowWith.UseShowWith = false
|
||||
db.profile.Locked = true
|
||||
db.profile.TitleBar.ShowTitleBar = true
|
||||
db.profile.FrameStrata = "2-LOW"
|
||||
|
||||
OmenAnchor:SetParent(parent)
|
||||
OmenAnchor:ClearAllPoints()
|
||||
OmenAnchor:SetAllPoints()
|
||||
|
||||
if not self.omenHooked then
|
||||
hooksecurefunc(Omen, "SetAnchors", function(self, useDB)
|
||||
if useDB then
|
||||
self.Anchor:SetParent(parent)
|
||||
self.Anchor:SetInside(parent, 0, 0)
|
||||
end
|
||||
end)
|
||||
|
||||
self.omenHooked = true
|
||||
end
|
||||
|
||||
Omen:UpdateBackdrop()
|
||||
end
|
||||
end
|
||||
|
||||
if AS:IsAddonLODorEnabled("Skada") then
|
||||
EMB.skadaWindows = {}
|
||||
|
||||
local function EmbedWindow(window, width, height, point, relativeFrame, relativePoint, ofsx, ofsy)
|
||||
if not window then return end
|
||||
local barmod = Skada.displays["bar"]
|
||||
|
||||
window.db.barwidth = width
|
||||
|
||||
window.db.spark = false
|
||||
window.db.barslocked = true
|
||||
window.db.enablebackground = true
|
||||
|
||||
window.bargroup:SetParent(relativeFrame)
|
||||
window.bargroup:SetFrameStrata("LOW")
|
||||
|
||||
if Skada.revisited then
|
||||
local offsety = window.db.reversegrowth and -E.Border or E.Border
|
||||
|
||||
window.db.scale = 1
|
||||
window.db.background.height = height - (E.Border * 2)
|
||||
|
||||
window.bargroup.ClearAllPoints = nil
|
||||
window.bargroup:ClearAllPoints()
|
||||
window.bargroup.ClearAllPoints = E.noop
|
||||
|
||||
window.bargroup.SetPoint = nil
|
||||
window.bargroup:SetPoint(point, relativeFrame, relativePoint, ofsx, -offsety)
|
||||
window.bargroup.SetPoint = E.noop
|
||||
|
||||
if window.bargroup.backdrop then
|
||||
window.bargroup.backdrop:SetFrameStrata("LOW")
|
||||
window.bargroup.backdrop:SetFrameLevel(window.bargroup:GetFrameLevel() - 1)
|
||||
end
|
||||
else
|
||||
window.db.background.height = height - (window.db.enabletitle and window.db.barheight or -(E.Border + E.Spacing)) - (E.Border + E.Spacing)
|
||||
window.db.enablebackground = true
|
||||
|
||||
window.bargroup:ClearAllPoints()
|
||||
window.bargroup:SetPoint(point, relativeFrame, relativePoint, ofsx, window.db.reversegrowth and ofsy or -ofsy)
|
||||
|
||||
window.bargroup.bgframe:SetFrameStrata("LOW")
|
||||
window.bargroup.bgframe:SetFrameLevel(window.bargroup:GetFrameLevel() - 1)
|
||||
end
|
||||
|
||||
barmod.ApplySettings(barmod, window)
|
||||
|
||||
if Skada.revisited then
|
||||
window:Toggle()
|
||||
end
|
||||
end
|
||||
|
||||
function EMB:EmbedSkada()
|
||||
wipe(self.skadaWindows)
|
||||
for _, window in ipairs(Skada:GetWindows()) do
|
||||
tinsert(self.skadaWindows, window)
|
||||
end
|
||||
|
||||
local db = E.db.addOnSkins.embed
|
||||
local numberToEmbed = 0
|
||||
|
||||
if db.embedType == "SINGLE" then
|
||||
numberToEmbed = 1
|
||||
elseif db.embedType == "DOUBLE" then
|
||||
if db.rightWindow == "Skada" then numberToEmbed = numberToEmbed + 1 end
|
||||
if db.leftWindow == "Skada" then numberToEmbed = numberToEmbed + 1 end
|
||||
end
|
||||
|
||||
local point
|
||||
if numberToEmbed == 1 then
|
||||
local parent = self.leftFrame
|
||||
if db.embedType == "DOUBLE" then
|
||||
parent = db.rightWindow == "Skada" and self.rightFrame or self.leftFrame
|
||||
end
|
||||
|
||||
point = self.skadaWindows[1].db.reversegrowth and "BOTTOMLEFT" or "TOPLEFT"
|
||||
EmbedWindow(self.skadaWindows[1], parent:GetWidth() -(E.Border*2), parent:GetHeight(), point, parent, point, E.Border, E.Border)
|
||||
elseif numberToEmbed == 2 then
|
||||
point = self.skadaWindows[1].db.reversegrowth and "BOTTOMLEFT" or "TOPLEFT"
|
||||
EmbedWindow(self.skadaWindows[1], self.leftFrame:GetWidth() -(E.Border*2), self.leftFrame:GetHeight(), point, self.leftFrame, point, E.Border, E.Border)
|
||||
|
||||
if not self.skadaWindows[2] then
|
||||
E:Print("Please Create Skada Windows 2")
|
||||
return
|
||||
end
|
||||
|
||||
point = self.skadaWindows[2].db.reversegrowth and "BOTTOMRIGHT" or "TOPRIGHT"
|
||||
EmbedWindow(self.skadaWindows[2], self.rightFrame:GetWidth() -(E.Border*2), self.rightFrame:GetHeight(), point, self.rightFrame, point, -E.Border, E.Border)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if AS:IsAddonLODorEnabled("Details") then
|
||||
local Details = _G._details or _G._detalhes
|
||||
|
||||
local numberToEmbed = 0
|
||||
|
||||
EMB.DetailsInstances = {}
|
||||
|
||||
local listener = Details:CreateEventListener()
|
||||
listener:RegisterEvent("DETAILS_INSTANCE_OPEN")
|
||||
listener:RegisterEvent("DETAILS_INSTANCE_CLOSE")
|
||||
|
||||
function listener:OnDetailsEvent(event, instance)
|
||||
if event == "DETAILS_INSTANCE_CLOSE" then
|
||||
if instance._ElvUIEmbed and _G.DetailsOptionsWindow and _G.DetailsOptionsWindow:IsShown() then
|
||||
Details:Msg("You just closed a window Embed on ElvUI, if wasn't intended click on Reopen.") --> need localization
|
||||
end
|
||||
elseif event == "DETAILS_INSTANCE_OPEN" then
|
||||
if instance._ElvUIEmbed then
|
||||
if #EMB.DetailsInstances >= 2 then
|
||||
EMB.DetailsInstances[1]:UngroupInstance()
|
||||
EMB.DetailsInstances[2]:UngroupInstance()
|
||||
|
||||
EMB.DetailsInstances[1].baseframe:ClearAllPoints()
|
||||
EMB.DetailsInstances[2].baseframe:ClearAllPoints()
|
||||
|
||||
EMB.DetailsInstances[1]:RestoreMainWindowPosition()
|
||||
EMB.DetailsInstances[2]:RestoreMainWindowPosition()
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function EmbedWindow(window, width, height, point, relativeFrame, relativePoint, ofsx, ofsy)
|
||||
if not window then return end
|
||||
|
||||
if not window:IsEnabled() then
|
||||
window:EnableInstance()
|
||||
end
|
||||
|
||||
window._ElvUIEmbed = true
|
||||
|
||||
if window.bars_grow_direction == 2 then
|
||||
ofsy = -2
|
||||
else
|
||||
ofsy = -20
|
||||
end
|
||||
|
||||
window:UngroupInstance()
|
||||
|
||||
window.baseframe:ClearAllPoints()
|
||||
window.baseframe:SetParent(relativeFrame)
|
||||
window.baseframe:SetFrameStrata(relativeFrame:GetFrameStrata())
|
||||
window.baseframe:SetFrameLevel(relativeFrame:GetFrameLevel())
|
||||
|
||||
ofsx = ofsx - 1
|
||||
|
||||
if window.show_statusbar then
|
||||
height = height - 13
|
||||
end
|
||||
|
||||
window:SetSize(width, height - 20)
|
||||
|
||||
window.baseframe:SetPoint(point, relativeFrame, relativePoint, ofsx, ofsy)
|
||||
window:SaveMainWindowPosition()
|
||||
window:RestoreMainWindowPosition()
|
||||
|
||||
window:LockInstance(true)
|
||||
|
||||
if window:GetId() == 1 then
|
||||
DetailsRowFrame1:SetParent(DetailsBaseFrame1)
|
||||
DetailsRowFrame1:SetFrameLevel(DetailsBaseFrame1:GetFrameLevel() + 1)
|
||||
elseif window:GetId() == 2 then
|
||||
DetailsRowFrame2:SetParent(DetailsBaseFrame2)
|
||||
DetailsRowFrame2:SetFrameLevel(DetailsBaseFrame2:GetFrameLevel() + 1)
|
||||
end
|
||||
|
||||
if window:GetSegment() ~= 0 then
|
||||
window:SetDisplay(0)
|
||||
end
|
||||
end
|
||||
|
||||
function EMB:EmbedDetails()
|
||||
wipe(self.DetailsInstances)
|
||||
|
||||
for _, instance in Details:ListInstances() do
|
||||
tinsert(self.DetailsInstances, instance)
|
||||
end
|
||||
|
||||
local db = E.db.addOnSkins.embed
|
||||
numberToEmbed = 0
|
||||
if db.embedType == "SINGLE" then
|
||||
numberToEmbed = 1
|
||||
end
|
||||
|
||||
if db.embedType == "DOUBLE" then
|
||||
if db.rightWindow == "Details" then numberToEmbed = numberToEmbed + 1 end
|
||||
if db.leftWindow == "Details" then numberToEmbed = numberToEmbed + 1 end
|
||||
end
|
||||
|
||||
if Details:GetMaxInstancesAmount() < numberToEmbed then
|
||||
Details:SetMaxInstancesAmount(numberToEmbed)
|
||||
end
|
||||
|
||||
local instances_amount = Details:GetNumInstancesAmount()
|
||||
|
||||
for i = instances_amount + 1, numberToEmbed do
|
||||
local new_instance = Details:CreateInstance(i)
|
||||
|
||||
if type(new_instance) == "table" then
|
||||
tinsert(self.DetailsInstances, new_instance)
|
||||
end
|
||||
end
|
||||
|
||||
if numberToEmbed == 1 then
|
||||
local parent = self.leftFrame
|
||||
if db.embedType == "DOUBLE" then
|
||||
parent = db.rightWindow == "Details" and self.rightFrame or self.leftFrame
|
||||
end
|
||||
EmbedWindow(self.DetailsInstances[1], parent:GetWidth() - (E.Border*2), parent:GetHeight(), "TOPLEFT", parent, "TOPLEFT", 2, 0)
|
||||
|
||||
if self.DetailsInstances[2] then
|
||||
self.DetailsInstances[2]._ElvUIEmbed = nil
|
||||
end
|
||||
elseif numberToEmbed == 2 then
|
||||
EmbedWindow(self.DetailsInstances[1], self.leftFrame:GetWidth() - (E.Border*2), self.leftFrame:GetHeight(), "TOPLEFT", self.leftFrame, "TOPLEFT", E.Border, E.Border)
|
||||
EmbedWindow(self.DetailsInstances[2], self.rightFrame:GetWidth() - (E.Border*2), self.rightFrame:GetHeight(), "TOPRIGHT", self.rightFrame, "TOPRIGHT", -E.Border, E.Border)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function EMB:Initialize()
|
||||
if E.db.addOnSkins.embed.embedType == "DISABLE" then return end
|
||||
|
||||
self:EmbedCreate()
|
||||
end
|
||||
|
||||
local function InitializeCallback()
|
||||
EMB:Initialize()
|
||||
end
|
||||
|
||||
E:RegisterModule(EMB:GetName(), InitializeCallback)
|
||||
@@ -0,0 +1,3 @@
|
||||
<Ui xmlns="http://www.blizzard.com/wow/ui/">
|
||||
<Script file="Profile.lua"/>
|
||||
</Ui>
|
||||
@@ -0,0 +1,49 @@
|
||||
local E, L, V, P, G = unpack(ElvUI)
|
||||
|
||||
P.addOnSkins = {
|
||||
skadaTemplate = "Default",
|
||||
skadaTemplateGloss = false,
|
||||
skadaTitleTemplate = "Default",
|
||||
skadaTitleTemplateGloss = true,
|
||||
|
||||
recountTemplate = "Transparent",
|
||||
recountTemplateGloss = false,
|
||||
recountTitleTemplate = "Default",
|
||||
recountTitleTemplateGloss = true,
|
||||
|
||||
omenTemplate = "Transparent",
|
||||
omenTemplateGloss = false,
|
||||
omenTitleTemplate = "Default",
|
||||
omenTitleTemplateGloss = true,
|
||||
|
||||
dbmBarHeight = 22,
|
||||
dbmFont = "PT Sans Narrow",
|
||||
dbmFontSize = 12,
|
||||
dbmFontOutline = "OUTLINE",
|
||||
dbmIconSize = 1,
|
||||
dbmTemplate = "Default",
|
||||
DBMSkinHalf = false,
|
||||
|
||||
weakAuraAuraBar = true,
|
||||
weakAuraIconCooldown = true,
|
||||
|
||||
chatBarSize = 16,
|
||||
chatBarSpacing = 1,
|
||||
chatBarTextPoint = "CENTER",
|
||||
chatBarTextXOffset = -1,
|
||||
chatBarTextYOffset = 0,
|
||||
|
||||
bigwigsBarHeight = 14,
|
||||
bigwigsFontSize = 10,
|
||||
bigwigsFontOutline = "NONE",
|
||||
|
||||
embed = {
|
||||
embedType = "DISABLE",
|
||||
leftWindow = "Omen",
|
||||
rightWindow = "Recount",
|
||||
rightChatPanel = true,
|
||||
leftWindowWidth = 203,
|
||||
belowTopTab = false,
|
||||
hideChat = "NONE",
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,258 @@
|
||||
local E, L, V, P, G = unpack(ElvUI)
|
||||
local S = E:GetModule("Skins")
|
||||
local AS = E:GetModule("AddOnSkins")
|
||||
|
||||
if not AS:IsAddonLODorEnabled("ArkInventory") then return end
|
||||
|
||||
local _G = _G
|
||||
local ipairs = ipairs
|
||||
local unpack = unpack
|
||||
local format = string.format
|
||||
|
||||
-- ArkInventory 3.02.54
|
||||
-- https://www.wowace.com/projects/ark-inventory/files/458795
|
||||
|
||||
S:AddCallbackForAddon("ArkInventory", "ArkInventory", function()
|
||||
if not E.private.addOnSkins.ArkInventory then return end
|
||||
|
||||
local function skinIcon(frame)
|
||||
if frame.isSkinned then return end
|
||||
|
||||
local icon = frame:GetNormalTexture()
|
||||
|
||||
frame:SetTemplate("Default", true)
|
||||
frame:StyleButton()
|
||||
|
||||
icon:SetInside()
|
||||
icon:SetTexCoord(unpack(E.TexCoords))
|
||||
icon.SetTexCoord = E.noop
|
||||
|
||||
frame.isSkinned = true
|
||||
end
|
||||
|
||||
for i = 1, #ArkInventory.Global.Location do
|
||||
local frameName = format("%s%d", ArkInventory.Const.Frame.Main.Name, i)
|
||||
local frame = _G[frameName]
|
||||
|
||||
if frame then
|
||||
-- Title
|
||||
S:HandleCloseButton(_G[format("%s%s%s", frameName, ArkInventory.Const.Frame.Title.Name, "Close")])
|
||||
|
||||
skinIcon(_G[format("%s%s%s", frameName, ArkInventory.Const.Frame.Title.Name, "Location0")])
|
||||
skinIcon(_G[format("%s%s%s", frameName, ArkInventory.Const.Frame.Title.Name, "ActionButton11")])
|
||||
skinIcon(_G[format("%s%s%s", frameName, ArkInventory.Const.Frame.Title.Name, "ActionButton12")])
|
||||
skinIcon(_G[format("%s%s%s", frameName, ArkInventory.Const.Frame.Title.Name, "ActionButton13")])
|
||||
skinIcon(_G[format("%s%s%s", frameName, ArkInventory.Const.Frame.Title.Name, "ActionButton14")])
|
||||
skinIcon(_G[format("%s%s%s", frameName, ArkInventory.Const.Frame.Title.Name, "ActionButton21")])
|
||||
skinIcon(_G[format("%s%s%s", frameName, ArkInventory.Const.Frame.Title.Name, "ActionButton22")])
|
||||
skinIcon(_G[format("%s%s%s", frameName, ArkInventory.Const.Frame.Title.Name, "ActionButton23")])
|
||||
skinIcon(_G[format("%s%s%s", frameName, ArkInventory.Const.Frame.Title.Name, "ActionButton24")])
|
||||
|
||||
-- Search
|
||||
S:HandleEditBox(_G[format("%s%s%s", frame:GetName(), ArkInventory.Const.Frame.Search.Name, "Filter")])
|
||||
end
|
||||
end
|
||||
|
||||
hooksecurefunc(ArkInventory, "Frame_Main_Anchor_Set", function(loc_id)
|
||||
local frameName = format("%s%d", ArkInventory.Const.Frame.Main.Name, loc_id)
|
||||
|
||||
local anchor = ArkInventory.LocationOptionGet(loc_id, "anchor", loc_id, "point")
|
||||
|
||||
local title = _G[format("%s%s", frameName, ArkInventory.Const.Frame.Title.Name)]
|
||||
local search = _G[format("%s%s", frameName, ArkInventory.Const.Frame.Search.Name)]
|
||||
local container = _G[format("%s%s", frameName, ArkInventory.Const.Frame.Container.Name)]
|
||||
local changer = _G[format("%s%s", frameName, ArkInventory.Const.Frame.Changer.Name)]
|
||||
local status = _G[format("%s%s", frameName, ArkInventory.Const.Frame.Status.Name)]
|
||||
|
||||
if anchor == ArkInventory.Const.Anchor.BottomRight then
|
||||
changer:Point("BOTTOMRIGHT", status, "TOPRIGHT", 0, -1)
|
||||
container:Point("BOTTOMRIGHT", changer, "TOPRIGHT", 0, -1)
|
||||
search:Point("BOTTOMRIGHT", container, "TOPRIGHT", 0, -1)
|
||||
title:Point("BOTTOMRIGHT", search, "TOPRIGHT", 0, -1)
|
||||
elseif anchor == ArkInventory.Const.Anchor.BottomLeft then
|
||||
changer:Point("BOTTOMLEFT", status, "TOPLEFT", 0, -1)
|
||||
container:Point("BOTTOMLEFT", changer, "TOPLEFT", 0, -1)
|
||||
search:Point("BOTTOMLEFT", container, "TOPLEFT", 0, -1)
|
||||
title:Point("BOTTOMLEFT", search, "TOPLEFT", 0, -1)
|
||||
elseif anchor == ArkInventory.Const.Anchor.TopLeft then
|
||||
search:Point("TOPLEFT", title, "BOTTOMLEFT", 0, 1)
|
||||
container:Point("TOPLEFT", search, "BOTTOMLEFT", 0, 1)
|
||||
changer:Point("TOPLEFT", container, "BOTTOMLEFT", 0, 1)
|
||||
status:Point("TOPLEFT", changer, "BOTTOMLEFT", 0, 1)
|
||||
else
|
||||
search:Point("TOPRIGHT", title, "BOTTOMRIGHT", 0, 1)
|
||||
container:Point("TOPRIGHT", search, "BOTTOMRIGHT", 0, 1)
|
||||
changer:Point("TOPRIGHT", container, "BOTTOMRIGHT", 0, 1)
|
||||
status:Point("TOPRIGHT", changer, "BOTTOMRIGHT", 0, 1)
|
||||
end
|
||||
end)
|
||||
|
||||
ArkInventory.Frame_Main_Paint = function(frame)
|
||||
if not ArkInventory.ValidFrame(frame, true) then return end
|
||||
|
||||
for _, child in ipairs({frame:GetChildren()}) do
|
||||
if not child.isSkinned then
|
||||
child:SetTemplate("Transparent")
|
||||
|
||||
local frameName = child:GetName()
|
||||
if frameName then
|
||||
local bg = _G[format("%s%s", frameName, "Background")]
|
||||
local border = _G[format("%s%s", frameName, "ArkBorder")]
|
||||
|
||||
if bg then
|
||||
bg:Hide()
|
||||
end
|
||||
if border then
|
||||
border:Hide()
|
||||
end
|
||||
end
|
||||
|
||||
child.isSkinned = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local defaultColors = ArkInventory.Const.Slot.DefaultColour
|
||||
|
||||
ArkInventory.Frame_Border_Paint = function(border, slot, file, size, offset, scale, r, g, b, a)
|
||||
if not border.parent then return end
|
||||
|
||||
if r == defaultColors.r and g == defaultColors.g and b == defaultColors.b then
|
||||
r, g, b = unpack(E.media.bordercolor)
|
||||
border.parent:SetBackdropBorderColor(r, g, b, 1)
|
||||
else
|
||||
border.parent:SetBackdropBorderColor(r or 0, g or 0, b or 0, a)
|
||||
end
|
||||
end
|
||||
|
||||
local TEXTURE_ITEM_QUEST_BORDER = TEXTURE_ITEM_QUEST_BORDER
|
||||
local questColors = {
|
||||
["questStarter"] = {E.db.bags.colors.items.questStarter.r, E.db.bags.colors.items.questStarter.g, E.db.bags.colors.items.questStarter.b},
|
||||
["questItem"] = {E.db.bags.colors.items.questItem.r, E.db.bags.colors.items.questItem.g, E.db.bags.colors.items.questItem.b}
|
||||
}
|
||||
|
||||
local function updateQuestIcon(self, texture)
|
||||
if texture == TEXTURE_ITEM_QUEST_BORDER then
|
||||
self.parent:SetBackdropBorderColor(unpack(questColors.questItem))
|
||||
self:SetAlpha(0)
|
||||
else
|
||||
self.parent:SetBackdropBorderColor(unpack(questColors.questStarter))
|
||||
self:SetAlpha(1)
|
||||
end
|
||||
end
|
||||
|
||||
local function skinItemButton(frame)
|
||||
if frame.isSkinned then return end
|
||||
|
||||
local frameName = frame:GetName()
|
||||
local icon = _G[format("%s%s", frameName, "IconTexture")]
|
||||
local border = _G[format("%s%s", frameName, "ArkBorder")]
|
||||
local questIcon = _G[format("%s%s", frameName, "IconQuestTexture")]
|
||||
local cooldown = _G[format("%s%s", frameName, "Cooldown")]
|
||||
|
||||
frame:SetNormalTexture(nil)
|
||||
frame:SetTemplate("Default", true)
|
||||
frame:StyleButton()
|
||||
|
||||
icon:SetInside()
|
||||
icon:SetTexCoord(unpack(E.TexCoords))
|
||||
icon.SetTexCoord = E.noop
|
||||
|
||||
border:Kill()
|
||||
border.parent = frame
|
||||
|
||||
if questIcon then
|
||||
questIcon:SetInside()
|
||||
questIcon:SetTexture(E.Media.Textures.BagQuestIcon)
|
||||
questIcon.SetTexture = updateQuestIcon
|
||||
questIcon.parent = frame
|
||||
end
|
||||
|
||||
if cooldown then
|
||||
cooldown.CooldownOverride = "bags"
|
||||
E:RegisterCooldown(cooldown)
|
||||
end
|
||||
|
||||
frame.isSkinned = true
|
||||
end
|
||||
|
||||
hooksecurefunc(ArkInventory, "Frame_Item_Update_Border", function(frame)
|
||||
if not ArkInventory.ValidFrame(frame, true) then return end
|
||||
skinItemButton(frame)
|
||||
end)
|
||||
|
||||
-- GuildBank
|
||||
S:HandleButton(ARKINV_Frame4ChangerWindowPurchaseInfoPurchaseButton)
|
||||
S:HandleButton(ARKINV_Frame4ChangerWindowDepositButton)
|
||||
S:HandleButton(ARKINV_Frame4ChangerWindowWithdrawButton)
|
||||
|
||||
S:HandleNextPrevButton(ARKINV_Frame4LogScrollUp, "up")
|
||||
S:HandleNextPrevButton(ARKINV_Frame4LogScrollDown, "down")
|
||||
|
||||
S:HandleButton(ARKINV_Frame4InfoSave)
|
||||
S:HandleScrollBar(ARKINV_Frame4InfoScrollScrollBar)
|
||||
|
||||
-- Search Frame
|
||||
ARKINV_SearchTitleBackground:Kill()
|
||||
ARKINV_SearchFrameBackground:Kill()
|
||||
|
||||
ARKINV_SearchTitle:SetTemplate("Transparent")
|
||||
ARKINV_SearchFrame:SetTemplate("Transparent")
|
||||
|
||||
ARKINV_Rules:SetHeight(570)
|
||||
ARKINV_SearchFrame:Point("TOPLEFT", ARKINV_SearchTitle, "BOTTOMLEFT", 0, 1)
|
||||
|
||||
S:HandleCloseButton(ARKINV_SearchTitleClose)
|
||||
S:HandleEditBox(ARKINV_SearchFrameViewSearchFilter)
|
||||
S:HandleScrollBar(ARKINV_SearchFrameViewTableScrollScrollBar)
|
||||
|
||||
AS:SkinLibrary("ArkDewdrop-3.0")
|
||||
end)
|
||||
|
||||
S:AddCallbackForAddon("ArkInventoryRules", "ArkInventoryRules", function()
|
||||
if not E.private.addOnSkins.ArkInventory then return end
|
||||
|
||||
ArkInventoryRules.Frame_Rules_Paint_Border = E.noop
|
||||
|
||||
-- Rules
|
||||
ARKINV_RulesTitleBackground:Kill()
|
||||
ARKINV_RulesFrameBackground:Kill()
|
||||
|
||||
ARKINV_RulesTitle:SetTemplate("Transparent")
|
||||
ARKINV_RulesFrame:SetTemplate("Transparent")
|
||||
|
||||
ARKINV_RulesFrameViewSearch:SetTemplate("Transparent")
|
||||
ARKINV_RulesFrameViewTable:SetTemplate("Transparent")
|
||||
|
||||
ARKINV_RulesFrame:Point("TOPLEFT", ARKINV_RulesTitle, "BOTTOMLEFT", 0, 1)
|
||||
ARKINV_RulesFrameViewTitle:SetPoint("TOP")
|
||||
|
||||
S:HandleCloseButton(ARKINV_RulesTitleClose)
|
||||
|
||||
S:HandleEditBox(ARKINV_RulesFrameViewSearchFilter)
|
||||
S:HandleScrollBar(ARKINV_RulesFrameViewTableScrollScrollBar)
|
||||
|
||||
S:HandleButton(ARKINV_RulesFrameViewMenuAdd)
|
||||
S:HandleButton(ARKINV_RulesFrameViewMenuEdit)
|
||||
S:HandleButton(ARKINV_RulesFrameViewMenuRemove)
|
||||
|
||||
-- Add Rule
|
||||
ARKINV_RulesFrameModifyTitle:SetPoint("TOP")
|
||||
|
||||
S:HandleCheckBox(ARKINV_RulesFrameModifyDataEnabled)
|
||||
|
||||
ARKINV_RulesFrameModifyDataOrder:Height(22)
|
||||
S:HandleEditBox(ARKINV_RulesFrameModifyDataOrder)
|
||||
ARKINV_RulesFrameModifyDataDescription:Height(22)
|
||||
S:HandleEditBox(ARKINV_RulesFrameModifyDataDescription)
|
||||
|
||||
ARKINV_RulesFrameModifyDataScrollTextBorder:SetTemplate("Transparent")
|
||||
|
||||
S:HandleScrollBar(ARKINV_RulesFrameModifyDataScrollScrollBar)
|
||||
|
||||
ARKINV_RulesFrameModifyDataScrollScrollBar:Point("TOPLEFT", ARKINV_RulesFrameModifyDataScroll, "TOPRIGHT", 8, -13)
|
||||
ARKINV_RulesFrameModifyDataScrollScrollBar:Point("BOTTOMLEFT", ARKINV_RulesFrameModifyDataScroll, "BOTTOMRIGHT", 8, 13)
|
||||
|
||||
S:HandleButton(ARKINV_RulesFrameModifyMenuOk)
|
||||
S:HandleButton(ARKINV_RulesFrameModifyMenuCancel)
|
||||
end)
|
||||
@@ -0,0 +1,88 @@
|
||||
local E, L, V, P, G = unpack(ElvUI)
|
||||
local S = E:GetModule("Skins")
|
||||
local AS = E:GetModule("AddOnSkins")
|
||||
|
||||
if not AS:IsAddonLODorEnabled("CLCRet") then return end
|
||||
|
||||
local _G = _G
|
||||
local unpack = unpack
|
||||
|
||||
-- CLCRet 1.3.03.025
|
||||
-- https://www.curseforge.com/wow/addons/clcret/files/439502
|
||||
|
||||
S:AddCallbackForAddon("CLCRet", "CLCRet", function()
|
||||
if not E.private.addOnSkins.CLCRet then return end
|
||||
|
||||
local function styleButton(button, icon, height, width)
|
||||
button:SetScale(1)
|
||||
button:Size(width or height, height)
|
||||
|
||||
icon:SetTexCoord(unpack(E.TexCoords))
|
||||
button.border:Hide()
|
||||
end
|
||||
|
||||
S:RawHook(clcret, "CreateButton", function(self, name, size, ...)
|
||||
local button = S.hooks[self].CreateButton(self, name, size, ...)
|
||||
|
||||
button:CreateBackdrop("Default")
|
||||
button.texture:SetDrawLayer("BORDER")
|
||||
|
||||
styleButton(button, button.texture, size)
|
||||
|
||||
return button
|
||||
end)
|
||||
|
||||
hooksecurefunc(clcret, "UpdateButtonLayout", function(self, button, opt)
|
||||
styleButton(button, button.texture, opt.size)
|
||||
end)
|
||||
|
||||
S:RawHook(clcret, "CreateSovBar", function(self, ...)
|
||||
local frame = S.hooks[self].CreateSovBar(self, ...)
|
||||
|
||||
frame:CreateBackdrop("Default")
|
||||
frame.icon:CreateBackdrop("Default")
|
||||
frame.icon:SetDrawLayer("BORDER")
|
||||
frame.icon.backdrop:Hide()
|
||||
|
||||
frame.bgtexture:SetTexture(nil)
|
||||
frame.texture:SetTexture(E.media.normTex)
|
||||
E:RegisterStatusBar(frame.texture)
|
||||
|
||||
styleButton(frame, frame.icon, self.db.profile.sov.height)
|
||||
|
||||
return frame
|
||||
end)
|
||||
|
||||
local MAX_SOVBARS = 5
|
||||
|
||||
hooksecurefunc(clcret, "UpdateSovBarsLayout", function(self)
|
||||
local db = self.db.profile.sov
|
||||
local bar
|
||||
|
||||
for i = 1, MAX_SOVBARS do
|
||||
bar = _G["clcretSovBar"..i]
|
||||
|
||||
styleButton(bar, bar.icon, db.height, db.useButtons and db.height or (db.width - db.height))
|
||||
|
||||
if db.useButtons then
|
||||
bar.icon.backdrop:Hide()
|
||||
else
|
||||
bar.icon.backdrop:Show()
|
||||
bar.icon:Point("RIGHT", bar, "LEFT", -1, 0)
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
S:SecureHook(clcret, "InitSwingBar", function(self)
|
||||
local frame = clcretswingBar
|
||||
|
||||
frame:CreateBackdrop("Default")
|
||||
|
||||
frame.bgtexture:SetTexture(nil)
|
||||
frame.texture:SetTexture(E.media.normTex)
|
||||
E:RegisterStatusBar(frame.texture)
|
||||
|
||||
S:Unhook(self, "InitSwingBar")
|
||||
end)
|
||||
|
||||
end)
|
||||
@@ -0,0 +1,156 @@
|
||||
local E, L, V, P, G = unpack(ElvUI)
|
||||
local S = E:GetModule("Skins")
|
||||
local AS = E:GetModule("AddOnSkins")
|
||||
|
||||
if not AS:IsAddonLODorEnabled("!ElvinCDs") then return end
|
||||
|
||||
local format = string.format
|
||||
|
||||
-- !ElvinCDs 0.1b
|
||||
-- https://github.com/bkader/ElvinCDs
|
||||
|
||||
S:AddCallbackForAddon("!ElvinCDs", "!ElvinCDs", function()
|
||||
if not E.private.addOnSkins.ElvinCDs then return end
|
||||
|
||||
hooksecurefunc(ElvinCDs.utils, "showHide", function(obj)
|
||||
if not obj.isSkinned then
|
||||
local objectType = obj:GetObjectType()
|
||||
|
||||
if objectType == "Frame" then
|
||||
local objName = obj:GetName()
|
||||
local bars = _G[format("%sBars", objName)]
|
||||
|
||||
if bars then
|
||||
_G[format("%sBackground", objName)]:StripTextures()
|
||||
|
||||
local title = _G[format("%sTitle", objName)]
|
||||
title:SetBackdrop(nil)
|
||||
title:CreateBackdrop("Transparent")
|
||||
title.backdrop:Point("TOPRIGHT", 19, -1)
|
||||
|
||||
bars:Point("TOPLEFT", title, "BOTTOMLEFT", 0, -1)
|
||||
end
|
||||
elseif objectType == "StatusBar" then
|
||||
obj:CreateBackdrop("Transparent")
|
||||
obj:SetStatusBarTexture(E.media.normTex)
|
||||
E:RegisterStatusBar(obj)
|
||||
end
|
||||
|
||||
obj.isSkinned = true
|
||||
end
|
||||
end)
|
||||
|
||||
-- logs
|
||||
ElvinCDs_Logs:SetTemplate("Transparent")
|
||||
ElvinCDs_LogsList:SetBackdrop(nil)
|
||||
|
||||
S:HandleCloseButton(ElvinCDs_LogsCloseButton, ElvinCDs_Logs)
|
||||
S:HandleScrollBar(ElvinCDs_LogsListScrollFrameScrollBar)
|
||||
|
||||
ElvinCDs_LogsListScrollFrameScrollBar:Point("TOPLEFT", ElvinCDs_LogsListScrollFrame, "TOPRIGHT", 5, -13)
|
||||
ElvinCDs_LogsListScrollFrameScrollBar:Point("BOTTOMLEFT", ElvinCDs_LogsListScrollFrame, "BOTTOMRIGHT", 5, 19)
|
||||
|
||||
-- options
|
||||
E:GetModule("Tooltip"):HookScript(ElvinCDs_Tooltip, "OnShow", "SetStyle")
|
||||
|
||||
ElvinCDs_Config:SetTemplate("Transparent")
|
||||
ElvinCDs_ConfigTitleBG:StripTextures()
|
||||
|
||||
ElvinCDs_Config_SpellsList:SetTemplate("Transparent")
|
||||
|
||||
S:HandleTab(ElvinCDs_ConfigTab1)
|
||||
S:HandleTab(ElvinCDs_ConfigTab2)
|
||||
|
||||
S:HandleButton(ElvinCDs_ConfigClose)
|
||||
S:HandleButton(ElvinCDs_Config_GeneralDefault)
|
||||
S:HandleButton(ElvinCDs_Config_SpellsSave)
|
||||
|
||||
S:HandleSliderFrame(ElvinCDs_Config_General_width)
|
||||
S:HandleSliderFrame(ElvinCDs_Config_General_height)
|
||||
S:HandleSliderFrame(ElvinCDs_Config_General_opacity)
|
||||
S:HandleSliderFrame(ElvinCDs_Config_General_spacing)
|
||||
|
||||
S:HandleEditBox(ElvinCDs_Config_SpellsSearch)
|
||||
S:HandleEditBox(ElvinCDs_Config_SpellsSpellId)
|
||||
S:HandleEditBox(ElvinCDs_Config_SpellsCooldown)
|
||||
|
||||
S:HandleScrollBar(ElvinCDs_Config_SpellsListScrollFrameScrollBar)
|
||||
|
||||
local checkBoxes = {
|
||||
ElvinCDs_Config_General_enabled,
|
||||
ElvinCDs_Config_General_icons,
|
||||
ElvinCDs_Config_General_strict,
|
||||
ElvinCDs_Config_General_announce,
|
||||
ElvinCDs_Config_General_shout,
|
||||
ElvinCDs_Config_General_verbose,
|
||||
ElvinCDs_Config_General_locked,
|
||||
ElvinCDs_Config_General_sync,
|
||||
ElvinCDs_Config_General_showInBG,
|
||||
ElvinCDs_Config_General_showInRaid,
|
||||
ElvinCDs_Config_General_showInParty,
|
||||
ElvinCDs_Config_General_showWhenSolo,
|
||||
|
||||
ElvinCDs_Config_SpellsCustom,
|
||||
ElvinCDs_Config_SpellsDefaults,
|
||||
ElvinCDs_Config_SpellsDisplay,
|
||||
ElvinCDs_Config_SpellsTrack,
|
||||
ElvinCDs_Config_SpellsBlind,
|
||||
ElvinCDs_Config_SpellsShout,
|
||||
ElvinCDs_Config_SpellsWhisper,
|
||||
ElvinCDs_Config_SpellsSpecial,
|
||||
}
|
||||
|
||||
for _, checkBox in ipairs(checkBoxes) do
|
||||
S:HandleCheckBox(checkBox)
|
||||
end
|
||||
|
||||
ElvinCDs_Config_SpellsSearch:Height(22)
|
||||
ElvinCDs_Config_SpellsSpellId:Height(22)
|
||||
ElvinCDs_Config_SpellsCooldown:Height(22)
|
||||
|
||||
ElvinCDs_ConfigTab1:Point("CENTER", ElvinCDs_Config, "BOTTOMLEFT", 60, -14)
|
||||
ElvinCDs_ConfigClose:Point("TOPRIGHT", -6, -6)
|
||||
|
||||
ElvinCDs_Config_SpellsListScrollFrameScrollBar:Point("TOPLEFT", ElvinCDs_Config_SpellsListScrollFrame, "TOPRIGHT", 5, -15)
|
||||
ElvinCDs_Config_SpellsListScrollFrameScrollBar:Point("BOTTOMLEFT", ElvinCDs_Config_SpellsListScrollFrame, "BOTTOMRIGHT", 5, 14)
|
||||
|
||||
ElvinCDs_Config_SpellsSpellId:Point("TOPLEFT", ElvinCDs_Config_SpellsList, "BOTTOMLEFT", 8, -10)
|
||||
|
||||
--[[
|
||||
local options = {
|
||||
"Display",
|
||||
"Track",
|
||||
"Blind",
|
||||
"Shout",
|
||||
"Whisper",
|
||||
"Special",
|
||||
}
|
||||
|
||||
local skinnedCheckboxes = 0
|
||||
local function skinButtons()
|
||||
local i = skinnedCheckboxes + 1
|
||||
local button = _G["ElvinCDs_Config_Spells_SpellBtn_"..i]
|
||||
while button do
|
||||
for _, affix in ipairs(options) do
|
||||
S:HandleCheckBox(_G["ElvinCDs_Config_Spells_SpellBtn_"..i..affix])
|
||||
end
|
||||
i = i + 1
|
||||
button = _G["ElvinCDs_Config_Spells_SpellBtn_"..i]
|
||||
end
|
||||
skinnedCheckboxes = i - 1
|
||||
end
|
||||
|
||||
local _SetChecked = ElvinCDs_Config_SpellsDefaults.SetChecked
|
||||
ElvinCDs_Config_SpellsDefaults.SetChecked = function(self, checked, ...)
|
||||
skinButtons()
|
||||
|
||||
_SetChecked(self, checked, ...)
|
||||
self.SetChecked = _SetChecked
|
||||
end
|
||||
|
||||
hooksecurefunc(ElvinCDs.Config.Spells, "save", function(self, button)
|
||||
if not button then return end
|
||||
skinButtons()
|
||||
end)
|
||||
--]]
|
||||
end)
|
||||
@@ -0,0 +1,234 @@
|
||||
local E, L, V, P, G = unpack(ElvUI)
|
||||
local S = E:GetModule("Skins")
|
||||
local AS = E:GetModule("AddOnSkins")
|
||||
|
||||
if not AS:IsAddonLODorEnabled("Examiner") then return end
|
||||
|
||||
local select = select
|
||||
local unpack = unpack
|
||||
|
||||
-- Examiner 10.08.14
|
||||
-- https://www.curseforge.com/wow/addons/examiner/files/445178
|
||||
|
||||
S:AddCallbackForAddon("Examiner", "Examiner", function()
|
||||
if not E.private.addOnSkins.Examiner then return end
|
||||
|
||||
UIPanelWindows["Examiner"].width = 348
|
||||
|
||||
Examiner:CreateBackdrop("Transparent")
|
||||
Examiner.backdrop:Point("TOPLEFT", 11, -12)
|
||||
Examiner.backdrop:Point("BOTTOMRIGHT", -32, 4)
|
||||
|
||||
S:SetBackdropHitRect(Examiner)
|
||||
|
||||
Examiner.dlgTopLeft:Hide()
|
||||
Examiner.dlgTopRight:Hide()
|
||||
Examiner.dlgBottomLeft:Hide()
|
||||
Examiner.dlgBottomRight:Hide()
|
||||
|
||||
Examiner.portrait:Hide()
|
||||
|
||||
S:HandleCloseButton((Examiner:GetChildren()), Examiner.backdrop)
|
||||
|
||||
Examiner.model:Size(325, 352)
|
||||
Examiner.model:Point("BOTTOM", -11, 12)
|
||||
|
||||
do -- Talents background
|
||||
local talantsPage
|
||||
for _, mod in ipairs(Examiner.modules) do
|
||||
if mod.token == "Talents" then
|
||||
talantsPage = mod.page
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
local bgTextures = {
|
||||
Examiner.bgTopLeft,
|
||||
Examiner.bgTopRight,
|
||||
Examiner.bgBottomLeft,
|
||||
Examiner.bgBottomRight
|
||||
}
|
||||
|
||||
for _, texture in ipairs(bgTextures) do
|
||||
texture:SetParent(talantsPage)
|
||||
texture.SetWidth = E.noop
|
||||
end
|
||||
|
||||
Examiner.bgTopLeft:Point("TOPLEFT", Examiner, "TOPLEFT", 20, -77)
|
||||
|
||||
Examiner.bgTopLeft:Size(256, 256)
|
||||
Examiner.bgTopRight:Size(67, 256)
|
||||
Examiner.bgBottomLeft:Size(256, 112)
|
||||
Examiner.bgBottomRight:Size(67, 112)
|
||||
end
|
||||
|
||||
local dropdownArrowColor = {1, 0.8, 0}
|
||||
local function skinAzDropdown(frame)
|
||||
frame:SetTemplate()
|
||||
|
||||
S:HandleNextPrevButton(frame.button, "down", dropdownArrowColor)
|
||||
frame.button:Point("TOPRIGHT", -2, -2)
|
||||
frame.button:Point("BOTTOMRIGHT", -2, 2)
|
||||
frame.button:Size(20)
|
||||
end
|
||||
|
||||
local function setSlotBackdropColor(self, r, g, b)
|
||||
self.parent:SetBackdropBorderColor(r, g, b)
|
||||
end
|
||||
|
||||
local function setSlotBackdropDefault(self)
|
||||
self.parent:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
||||
end
|
||||
|
||||
local buttonReposition
|
||||
|
||||
for _, mod in ipairs(Examiner.modules) do
|
||||
if mod.page then
|
||||
mod.page:SetTemplate("Transparent")
|
||||
|
||||
if mod.token == "Talents" then
|
||||
mod.page:SetTemplate("Transparent")
|
||||
mod.page:Point("BOTTOM", -21, 40)
|
||||
mod.page:Size(304, 324)
|
||||
elseif mod.showItems then
|
||||
mod.page:Size(237, 284)
|
||||
else
|
||||
mod.page:Size(325, 324)
|
||||
end
|
||||
end
|
||||
|
||||
if mod.button then
|
||||
if not buttonReposition then
|
||||
mod.button:Point("BOTTOMLEFT", 24, 12)
|
||||
buttonReposition = true
|
||||
end
|
||||
|
||||
S:HandleButton(mod.button)
|
||||
end
|
||||
|
||||
if mod.token == "ItemSlots" then
|
||||
for i, slot in ipairs(mod.slotBtns) do
|
||||
slot:StripTextures()
|
||||
slot:StyleButton(false)
|
||||
slot:SetTemplate("Default", true, true)
|
||||
|
||||
slot.texture:SetDrawLayer("BORDER")
|
||||
slot.texture:SetInside()
|
||||
slot.texture:SetTexCoord(unpack(E.TexCoords))
|
||||
|
||||
slot.border:Kill()
|
||||
slot.border.parent = slot
|
||||
slot.border.SetVertexColor = setSlotBackdropColor
|
||||
slot.border.Hide = setSlotBackdropDefault
|
||||
|
||||
if i == 1 then
|
||||
slot:SetPoint("TOPLEFT", 0, 0)
|
||||
elseif i == 9 then
|
||||
slot:SetPoint("TOPRIGHT", 0, 0)
|
||||
elseif i == 17 then
|
||||
slot:Point("BOTTOM", -42, 28)
|
||||
elseif i <= 16 then
|
||||
slot:Point("TOP", mod.slotBtns[i - 1], "BOTTOM", 0, -4)
|
||||
else
|
||||
slot:Point("LEFT", mod.slotBtns[i - 1], "RIGHT", 5, 0)
|
||||
end
|
||||
end
|
||||
elseif mod.token == "Config" then
|
||||
skinAzDropdown((mod.page:GetChildren()))
|
||||
|
||||
for i = 2, mod.page:GetNumChildren() do
|
||||
local child = select(i, mod.page:GetChildren())
|
||||
S:HandleCheckBox(child)
|
||||
end
|
||||
elseif mod.token == "Cache" then
|
||||
S:HandleScrollBar(ExaminerCacheScrollScrollBar)
|
||||
ExaminerCacheScrollScrollBar:Point("TOPLEFT", ExaminerCacheScroll, "TOPRIGHT", 3, -19)
|
||||
ExaminerCacheScrollScrollBar:Point("BOTTOMLEFT", ExaminerCacheScroll, "BOTTOMRIGHT", 3, 19)
|
||||
elseif mod.token == "Stats" then
|
||||
for i = 1, 5 do
|
||||
local child = select(i, mod.page:GetChildren())
|
||||
|
||||
child:Size(24)
|
||||
child:SetTemplate("Transparent")
|
||||
|
||||
if i == 1 then
|
||||
child:Point("TOPLEFT", 58, -9)
|
||||
end
|
||||
|
||||
child.texture:SetInside()
|
||||
child.texture:SetDrawLayer("ARTWORK")
|
||||
|
||||
if i == 3 then -- Arcane
|
||||
-- texWidth, texHeight, cropWidth, cropHeight, offsetX, offsetY = 32, 256, 18, 18, 8, 64
|
||||
child.texture:SetTexCoord(0.25, 0.8125, 0.25, 0.3203125)
|
||||
elseif i == 1 then -- Fire
|
||||
-- texWidth, texHeight, cropWidth, cropHeight, offsetX, offsetY = 32, 256, 18, 18, 8, 6
|
||||
child.texture:SetTexCoord(0.25, 0.8125, 0.0234375, 0.09375)
|
||||
elseif i == 2 then -- Nature
|
||||
-- texWidth, texHeight, cropWidth, cropHeight, offsetX, offsetY = 32, 256, 18, 18, 8, 35
|
||||
child.texture:SetTexCoord(0.25, 0.8125, 0.13671875, 0.20703125)
|
||||
elseif i == 4 then -- Frost
|
||||
-- texWidth, texHeight, cropWidth, cropHeight, offsetX, offsetY = 32, 256, 18, 18, 8, 94
|
||||
child.texture:SetTexCoord(0.25, 0.8125, 0.3671875, 0.4375)
|
||||
elseif i == 5 then -- Shadow
|
||||
-- texWidth, texHeight, cropWidth, cropHeight, offsetX, offsetY = 32, 256, 18, 18, 8, 122
|
||||
child.texture:SetTexCoord(0.25, 0.8125, 0.4765625, 0.546875)
|
||||
end
|
||||
end
|
||||
|
||||
S:HandleScrollBar(ExaminerStatScrollScrollBar)
|
||||
ExaminerStatScrollScrollBar:Point("TOPLEFT", ExaminerStatScroll, "TOPRIGHT", 10, -20)
|
||||
ExaminerStatScrollScrollBar:Point("BOTTOMLEFT", ExaminerStatScroll, "BOTTOMRIGHT", 10, 20)
|
||||
elseif mod.token == "PvP" then
|
||||
for i = 2, 4 do
|
||||
local child = select(i, mod.page:GetChildren())
|
||||
child:SetTemplate("Transparent")
|
||||
end
|
||||
elseif mod.token == "Feats" then
|
||||
skinAzDropdown((mod.page:GetChildren()))
|
||||
|
||||
S:HandleScrollBar(ExaminerFeatsScrollScrollBar)
|
||||
ExaminerFeatsScrollScrollBar:Point("TOPLEFT", ExaminerFeatsScroll, "TOPRIGHT", 6, -19)
|
||||
ExaminerFeatsScrollScrollBar:Point("BOTTOMLEFT", ExaminerFeatsScroll, "BOTTOMRIGHT", 6, 19)
|
||||
elseif mod.token == "Talents" then
|
||||
for i = 1, MAX_TALENT_TABS do
|
||||
local tab = _G["ExaminerTab"..i]
|
||||
tab:StripTextures()
|
||||
tab:CreateBackdrop("Default", true)
|
||||
|
||||
tab.backdrop:Point("TOPLEFT", 2, -7)
|
||||
tab.backdrop:Point("BOTTOMRIGHT", -1, -1)
|
||||
|
||||
S:SetBackdropHitRect(tab)
|
||||
end
|
||||
|
||||
for i, button in ipairs({ExaminerScrollChildFrame:GetChildren()}) do
|
||||
if i > 40 then break end
|
||||
|
||||
button:StripTextures()
|
||||
button:SetTemplate("Default")
|
||||
button:StyleButton()
|
||||
|
||||
button.icon:SetInside()
|
||||
button.icon:SetTexCoord(unpack(E.TexCoords))
|
||||
button.icon:SetDrawLayer("ARTWORK")
|
||||
|
||||
button.slot:Hide()
|
||||
button.rankBorder:Hide()
|
||||
|
||||
button.rank:SetFont(E.LSM:Fetch("font", E.db.general.font), 12, "OUTLINE")
|
||||
end
|
||||
|
||||
S:HandleScrollBar(ExaminerTalentsScrollChildScrollBar)
|
||||
ExaminerTalentsScrollChildScrollBar:Point("TOPLEFT", ExaminerTalentsScrollChild, "TOPRIGHT", 4, -18)
|
||||
ExaminerTalentsScrollChildScrollBar:Point("BOTTOMLEFT", ExaminerTalentsScrollChild, "BOTTOMRIGHT", 4, 17)
|
||||
|
||||
ExaminerTalentsScrollChild:ClearAllPoints()
|
||||
ExaminerTalentsScrollChild:Point("TOPLEFT", 1, -1)
|
||||
ExaminerTalentsScrollChild:Point("BOTTOMRIGHT", -1, 2)
|
||||
end
|
||||
end
|
||||
|
||||
AS:SkinLibrary("AzDialog")
|
||||
AS:SkinLibrary("AzDropDown")
|
||||
end)
|
||||
@@ -0,0 +1,100 @@
|
||||
local E, L, V, P, G = unpack(ElvUI)
|
||||
local S = E:GetModule("Skins")
|
||||
local AS = E:GetModule("AddOnSkins")
|
||||
|
||||
if not AS:IsAddonLODorEnabled("LootCouncil_Lite") then return end
|
||||
|
||||
-- Loot Council Lite 1.011
|
||||
-- https://www.curseforge.com/wow/addons/lootcouncil-lite/files/457971
|
||||
|
||||
S:AddCallbackForAddon("LootCouncil_Lite", "LootCouncil_Lite", function()
|
||||
if not E.private.addOnSkins.LootCouncil_Lite then return end
|
||||
|
||||
-- Main Frame
|
||||
MainFrame:SetTemplate("Transparent")
|
||||
|
||||
EntryFrame:SetTemplate("Transparent")
|
||||
|
||||
EmptyTexture:Kill()
|
||||
|
||||
local icons = {
|
||||
CurrentItemTexture,
|
||||
CurrentSelectionTexture,
|
||||
DualItemTexture1,
|
||||
DualItemTexture2,
|
||||
}
|
||||
|
||||
local showBackdrop = function(self) self.backdrop:Show() end
|
||||
local hideBackdrop = function(self) self.backdrop:Hide() end
|
||||
for _, icon in ipairs(icons) do
|
||||
icon:SetTexCoord(unpack(E.TexCoords))
|
||||
icon:CreateBackdrop()
|
||||
icon.backdrop:Hide()
|
||||
|
||||
hooksecurefunc(icon, "Show", showBackdrop)
|
||||
hooksecurefunc(icon, "Hide", hideBackdrop)
|
||||
end
|
||||
|
||||
DisenchantButton:Point("TOPLEFT", MainFrame, "BOTTOMLEFT", 480, 73)
|
||||
|
||||
if SyncButton then
|
||||
S:HandleButton(SyncButton)
|
||||
end
|
||||
|
||||
S:HandleButton(AwardButton)
|
||||
S:HandleButton(RemoveButton)
|
||||
S:HandleButton(DisenchantButton)
|
||||
S:HandleButton(AbortButton)
|
||||
S:HandleButton(ClearSelectionButton)
|
||||
S:HandleButton(CloseButton)
|
||||
|
||||
-- S:HandleDropDownBox(GroupLootDropDownLCL)
|
||||
|
||||
-- Options
|
||||
LCOptionsFrame:SetTemplate("Transparent")
|
||||
|
||||
S:HandleDropDownBox(OptDropDown)
|
||||
|
||||
S:HandleButton(OptAcceptButton)
|
||||
S:HandleButton(OptCancelButton)
|
||||
|
||||
S:HandleSliderFrame(ScaleSlider)
|
||||
|
||||
local checkBoxes = {
|
||||
PrivateVoteMode,
|
||||
SingleVoteMode,
|
||||
SelfVoteMode,
|
||||
DisplaySpecMode,
|
||||
WhisperLinkMode,
|
||||
OfficerLinkMode,
|
||||
RaidLinkMode,
|
||||
ConfirmEnding,
|
||||
MasterLootIntegration,
|
||||
GuildLinkMode,
|
||||
}
|
||||
|
||||
for _, checkbox in ipairs(checkBoxes) do
|
||||
local p1, a, p2, x, y = checkbox:GetPoint()
|
||||
checkbox:Point(p1, a, p2, x, y - 8)
|
||||
checkbox:Size(24)
|
||||
|
||||
S:HandleCheckBox(checkbox)
|
||||
end
|
||||
|
||||
-- RankFrame
|
||||
RankFrame:EnableMouse(true)
|
||||
RankFrame:SetTemplate("Transparent")
|
||||
|
||||
S:HandleDropDownBox(RankDropDown)
|
||||
|
||||
S:HandleButton(RankAcceptButton)
|
||||
S:HandleButton(RankCancelButton)
|
||||
|
||||
-- TestFrame
|
||||
if LCTestFrame then
|
||||
LCTestFrame:SetTemplate("Transparent")
|
||||
|
||||
S:HandleButton(RunTestButton)
|
||||
S:HandleButton(TestCancelButton)
|
||||
end
|
||||
end)
|
||||
@@ -0,0 +1,74 @@
|
||||
local E, L, V, P, G = unpack(ElvUI)
|
||||
local S = E:GetModule("Skins")
|
||||
|
||||
local select = select
|
||||
local unpack = unpack
|
||||
|
||||
local GetItemInfo = GetItemInfo
|
||||
local GetItemQualityColor = GetItemQualityColor
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
-- LootWonAlert 1.3
|
||||
-- https://gitlab.com/Artur91425/LootWonAlert
|
||||
|
||||
S:AddCallbackForAddon("LootWonAlert", "LootWonAlert", function()
|
||||
if not E.private.addOnSkins.LootWonAlert then return end
|
||||
|
||||
local function skinFrame(frame)
|
||||
if frame.isSkinned then return end
|
||||
|
||||
frame:Size(300, 88)
|
||||
frame.Background:Hide()
|
||||
frame.lootItem.IconBorder:Hide()
|
||||
|
||||
frame:CreateBackdrop("Transparent")
|
||||
frame.backdrop:Point("TOPLEFT", 0, -6)
|
||||
frame.backdrop:Point("BOTTOMRIGHT", 0, 6)
|
||||
|
||||
S:SetBackdropHitRect(frame)
|
||||
|
||||
frame.glow:Size(336, 116)
|
||||
|
||||
frame.shine:Size(158, 66)
|
||||
frame.shine:Point("TOPLEFT", -10, -12)
|
||||
|
||||
frame.lootItem:SetTemplate("Transparent")
|
||||
frame.lootItem:Point("TOPLEFT", 12, -18)
|
||||
|
||||
frame.lootItem.Icon:CreateBackdrop("Transparent")
|
||||
|
||||
frame.isSkinned = true
|
||||
end
|
||||
|
||||
S:RawHook("LootWonAlertFrame_Create", function(self, ...)
|
||||
local frame = S.hooks.LootWonAlertFrame_Create(self, ...)
|
||||
skinFrame(frame)
|
||||
return frame
|
||||
end)
|
||||
|
||||
hooksecurefunc("LootWonAlertFrame_SetUp", function(self, itemLink)
|
||||
if itemLink then
|
||||
local quality = select(3, GetItemInfo(itemLink))
|
||||
if quality then
|
||||
local r, g, b = GetItemQualityColor(quality)
|
||||
self:SetBackdropBorderColor(r, g, b)
|
||||
-- self.backdrop:SetBackdropBorderColor(r, g, b)
|
||||
self.lootItem.Icon.backdrop:SetBackdropBorderColor(r, g, b)
|
||||
else
|
||||
self:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
||||
-- self.backdrop:SetBackdropBorderColor(r, g, b)
|
||||
self.lootItem.Icon.backdrop:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
do
|
||||
local i = 1
|
||||
local frame = _G["LootWonAlertFrame"..i]
|
||||
while frame do
|
||||
skinFrame(frame)
|
||||
i = i + 1
|
||||
frame = _G["LootWonAlertFrame"..i]
|
||||
end
|
||||
end
|
||||
end)
|
||||
@@ -0,0 +1,173 @@
|
||||
local E, L, V, P, G = unpack(ElvUI)
|
||||
local S = E:GetModule("Skins")
|
||||
local AS = E:GetModule("AddOnSkins")
|
||||
|
||||
if not AS:IsAddonLODorEnabled("Mapster") then return end
|
||||
|
||||
-- Mapster 1.3.9
|
||||
-- https://www.wowace.com/projects/mapster/files/436697
|
||||
|
||||
S:AddCallbackForAddon("Mapster", "Mapster", function()
|
||||
if not E.private.addOnSkins.Mapster then return end
|
||||
|
||||
local Mapster = LibStub("AceAddon-3.0"):GetAddon("Mapster", true)
|
||||
if not Mapster then return end
|
||||
|
||||
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.worldmap then
|
||||
WorldMapFrame:CreateBackdrop()
|
||||
WorldMapFrame.backdrop:Point("TOPRIGHT", WorldMapFrameCloseButton, -3, 0)
|
||||
WorldMapFrame.backdrop:Point("BOTTOMRIGHT", WorldMapTrackQuest, 0, -3)
|
||||
|
||||
WorldMapFrame:DisableDrawLayer("BACKGROUND")
|
||||
WorldMapFrame:DisableDrawLayer("ARTWORK")
|
||||
WorldMapFrame:DisableDrawLayer("OVERLAY")
|
||||
|
||||
WorldMapFrameTitle:SetDrawLayer("BORDER")
|
||||
|
||||
WorldMapDetailFrame:CreateBackdrop()
|
||||
WorldMapDetailFrame.backdrop:Point("TOPLEFT", -2, 2)
|
||||
WorldMapDetailFrame.backdrop:Point("BOTTOMRIGHT", 2, -1)
|
||||
|
||||
WorldMapQuestDetailScrollFrame:Width(348)
|
||||
WorldMapQuestDetailScrollFrame:Point("BOTTOMLEFT", WorldMapDetailFrame, "BOTTOMLEFT", -25, -207)
|
||||
WorldMapQuestDetailScrollFrame:CreateBackdrop("Transparent")
|
||||
WorldMapQuestDetailScrollFrame.backdrop:Point("TOPLEFT", 24, 2)
|
||||
WorldMapQuestDetailScrollFrame.backdrop:Point("BOTTOMRIGHT", 23, -4)
|
||||
WorldMapQuestDetailScrollFrame:SetHitRectInsets(24, -23, 0, -2)
|
||||
WorldMapQuestDetailScrollFrame.backdrop:SetFrameLevel(WorldMapQuestDetailScrollFrame:GetFrameLevel())
|
||||
|
||||
WorldMapQuestDetailScrollFrameTrack:Kill()
|
||||
|
||||
WorldMapQuestRewardScrollFrame:Width(340)
|
||||
WorldMapQuestRewardScrollFrame:Point("LEFT", WorldMapQuestDetailScrollFrame, "RIGHT", 8, 0)
|
||||
WorldMapQuestRewardScrollFrame:CreateBackdrop("Transparent")
|
||||
WorldMapQuestRewardScrollFrame.backdrop:Point("TOPLEFT", 20, 2)
|
||||
WorldMapQuestRewardScrollFrame.backdrop:Point("BOTTOMRIGHT", 22, -4)
|
||||
WorldMapQuestRewardScrollFrame:SetHitRectInsets(20, -22, 0, -2)
|
||||
WorldMapQuestRewardScrollFrame.backdrop:SetFrameLevel(WorldMapQuestRewardScrollFrame:GetFrameLevel())
|
||||
|
||||
WorldMapQuestRewardScrollChildFrame:SetScale(1)
|
||||
|
||||
WorldMapQuestScrollFrame:CreateBackdrop("Transparent")
|
||||
WorldMapQuestScrollFrame.backdrop:Point("TOPLEFT", 0, 2)
|
||||
WorldMapQuestScrollFrame.backdrop:Point("BOTTOMRIGHT", 25, -3)
|
||||
WorldMapQuestScrollFrame.backdrop:SetFrameLevel(WorldMapQuestScrollFrame:GetFrameLevel())
|
||||
|
||||
WorldMapQuestSelectBar:SetTexture(E.Media.Textures.Highlight)
|
||||
WorldMapQuestSelectBar:SetAlpha(0.35)
|
||||
|
||||
WorldMapQuestHighlightBar:SetTexture(E.Media.Textures.Highlight)
|
||||
WorldMapQuestHighlightBar:SetAlpha(0.35)
|
||||
|
||||
S:HandleScrollBar(WorldMapQuestScrollFrameScrollBar)
|
||||
S:HandleScrollBar(WorldMapQuestDetailScrollFrameScrollBar)
|
||||
S:HandleScrollBar(WorldMapQuestRewardScrollFrameScrollBar)
|
||||
|
||||
S:HandleCloseButton(WorldMapFrameCloseButton)
|
||||
|
||||
WorldMapFrameSizeDownButton:ClearAllPoints()
|
||||
WorldMapFrameSizeDownButton:Point("RIGHT", WorldMapFrameCloseButton, "LEFT", 4, 0)
|
||||
WorldMapFrameSizeDownButton.SetPoint = E.noop
|
||||
WorldMapFrameSizeDownButton:GetHighlightTexture():Kill()
|
||||
S:HandleNextPrevButton(WorldMapFrameSizeDownButton, nil, nil, true)
|
||||
WorldMapFrameSizeDownButton:Size(26)
|
||||
|
||||
WorldMapFrameSizeUpButton:ClearAllPoints()
|
||||
WorldMapFrameSizeUpButton:Point("RIGHT", WorldMapFrameCloseButton, "LEFT", 4, 0)
|
||||
WorldMapFrameSizeUpButton:GetHighlightTexture():Kill()
|
||||
S:HandleNextPrevButton(WorldMapFrameSizeUpButton, nil, nil, true)
|
||||
WorldMapFrameSizeUpButton:Size(26)
|
||||
|
||||
S:HandleDropDownBox(WorldMapLevelDropDown)
|
||||
S:HandleDropDownBox(WorldMapZoneMinimapDropDown)
|
||||
S:HandleDropDownBox(WorldMapContinentDropDown)
|
||||
S:HandleDropDownBox(WorldMapZoneDropDown)
|
||||
|
||||
S:HandleButton(WorldMapZoomOutButton)
|
||||
WorldMapZoomOutButton:Point("LEFT", WorldMapZoneDropDown, "RIGHT", 0, 3)
|
||||
|
||||
S:HandleCheckBox(WorldMapTrackQuest)
|
||||
S:HandleCheckBox(WorldMapQuestShowObjectives)
|
||||
|
||||
WorldMapFrameAreaLabel:FontTemplate(nil, 50, "OUTLINE")
|
||||
WorldMapFrameAreaLabel:SetShadowOffset(2, -2)
|
||||
WorldMapFrameAreaLabel:SetTextColor(0.90, 0.8294, 0.6407)
|
||||
|
||||
WorldMapFrameAreaDescription:FontTemplate(nil, 40, "OUTLINE")
|
||||
WorldMapFrameAreaDescription:SetShadowOffset(2, -2)
|
||||
|
||||
WorldMapZoneInfo:FontTemplate(nil, 27, "OUTLINE")
|
||||
WorldMapZoneInfo:SetShadowOffset(2, -2)
|
||||
else
|
||||
WorldMapDetailFrame.backdrop:Hide()
|
||||
end
|
||||
|
||||
local function sizeDown()
|
||||
WorldMapFrame.backdrop:Point("TOPLEFT", WorldMapDetailFrame, "TOPLEFT", -14, 27)
|
||||
WorldMapDetailFrame.backdrop:Hide()
|
||||
end
|
||||
local function sizeUp()
|
||||
WorldMapFrame.backdrop:Point("TOPLEFT", WorldMapDetailFrame, "TOPLEFT", -14, 70)
|
||||
WorldMapDetailFrame.backdrop:Show()
|
||||
end
|
||||
|
||||
S:SecureHook(Mapster, "SizeDown", sizeDown)
|
||||
S:SecureHook(Mapster, "SizeUp", sizeUp)
|
||||
|
||||
if WorldMapFrame.sizedDown or WORLDMAP_SETTINGS and WORLDMAP_SETTINGS.size == WORLDMAP_WINDOWED_SIZE then
|
||||
sizeDown()
|
||||
else
|
||||
sizeUp()
|
||||
end
|
||||
|
||||
S:SecureHook(Mapster, "UpdateBorderVisibility", function(self)
|
||||
if self.bordersVisible then
|
||||
WorldMapFrame.backdrop:Show()
|
||||
else
|
||||
WorldMapFrame.backdrop:Hide()
|
||||
end
|
||||
end)
|
||||
|
||||
MapsterOptionsButton:Point("TOPRIGHT", WorldMapPositioningGuide, "TOPRIGHT", -50, -3)
|
||||
MapsterOptionsButton.SetPoint = E.noop
|
||||
|
||||
MapsterQuestObjectivesDropDown:Point("BOTTOMRIGHT", WorldMapPositioningGuide, "BOTTOMRIGHT", -7, -4)
|
||||
|
||||
S:HandleButton(MapsterOptionsButton)
|
||||
S:HandleDropDownBox(MapsterQuestObjectivesDropDown)
|
||||
|
||||
do -- Scaler
|
||||
local Scale = Mapster:GetModule("Scale", true)
|
||||
local scaler = WorldMapPositioningGuide:GetRegions()
|
||||
|
||||
local function updateScalerPoint(mini)
|
||||
if mini then
|
||||
scaler:Point("BOTTOMRIGHT", -25, -8)
|
||||
elseif Mapster.bordersVisible then
|
||||
scaler:Point("BOTTOMRIGHT", -1, 3)
|
||||
end
|
||||
end
|
||||
|
||||
if scaler then
|
||||
scaler:Size(14)
|
||||
updateScalerPoint(Mapster.miniMap)
|
||||
else
|
||||
if Scale then
|
||||
S:SecureHook(Scale, "OnEnable", function(self)
|
||||
scaler = WorldMapPositioningGuide:GetRegions()
|
||||
scaler:Size(14)
|
||||
updateScalerPoint(Mapster.miniMap)
|
||||
|
||||
S:Unhook(self, "OnEnable")
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
||||
if Scale then
|
||||
function Scale:UpdateMapsize(mini)
|
||||
if not scaler then return end
|
||||
updateScalerPoint(mini)
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
@@ -0,0 +1,185 @@
|
||||
local E, L, V, P, G = unpack(ElvUI)
|
||||
local S = E:GetModule("Skins")
|
||||
local AS = E:GetModule("AddOnSkins")
|
||||
|
||||
if not AS:IsAddonLODorEnabled("QDKP2_GUI") then return end
|
||||
|
||||
-- Quick DKP V2 - GUI v 2.6.7 and v 2.7.5
|
||||
|
||||
S:AddCallbackForAddon("QDKP2_GUI", "QDKP2_GUI", function()
|
||||
if not E.private.addOnSkins.QDKP2_GUI then return end
|
||||
--Roster Frame
|
||||
QDKP2_Frame2:StripTextures()
|
||||
QDKP2_Frame2:CreateBackdrop("Transparent")
|
||||
QDKP2_Frame2:Size(780, 400)
|
||||
QDKP2_frame2_title:Size(725, 14)
|
||||
QDKP2_frame2_scrollbar:StripTextures()
|
||||
QDKP2_frame2_scrollbar:Point("TOPLEFT", 15, - 55)
|
||||
QDKP2_frame2_scrollbar:Point("BOTTOMRIGHT", - 30, 41)
|
||||
QDKP2_frame2_title_name:Size(105, 14)
|
||||
QDKP2_frame2_title_class:Size(80, 14)
|
||||
QDKP2_frame2_title_net:Size(60, 14)
|
||||
QDKP2_frame2_title_total:Size(60, 14)
|
||||
QDKP2_frame2_title_spent:Size(60, 14)
|
||||
QDKP2_Frame2_Bid_Item:ClearAllPoints()
|
||||
QDKP2_Frame2_Bid_Item:Point("BottomLeft", QDKP2_frame2_showRaid, "BottomLeft", - 60, - 2)
|
||||
|
||||
for i = 10, 29 do
|
||||
local child = select(i, QDKP2_Frame2:GetChildren())
|
||||
if child:IsObjectType("Button") then
|
||||
child:StripTextures()
|
||||
child:SetHighlightTexture("Interface\\AddOns\\ElvUI\\Media\\Textures\\Highlight.tga", "Add")
|
||||
S:HandleButtonHighlight(child, 1, 0.8, 0.1)
|
||||
end
|
||||
end
|
||||
|
||||
for i = 1, 20 do
|
||||
_G["QDKP2_frame2_entry" .. i]:Size(725, 14)
|
||||
_G["QDKP2_frame2_entry" .. i .. "_name"]:Size(105, 14)
|
||||
_G["QDKP2_frame2_entry" .. i .. "_class"]:Size(80, 14)
|
||||
_G["QDKP2_frame2_entry" .. i .. "_net"]:Size(60, 14)
|
||||
_G["QDKP2_frame2_entry" .. i .. "_total"]:Size(60, 14)
|
||||
_G["QDKP2_frame2_entry" .. i .. "_spent"]:Size(60, 14)
|
||||
|
||||
local highlight = _G["QDKP2_frame2_entry" .. i .. "_Highlight"]
|
||||
highlight:SetAllPoints(true)
|
||||
highlight:SetTexture(E.Media.Textures.Highlight)
|
||||
highlight:SetVertexColor(0.8, 0.6, 0.2, 0.5)
|
||||
end
|
||||
|
||||
S:HandleScrollBar(QDKP2_frame2_scrollbarScrollBar)
|
||||
S:HandleButton(QDKP2_Frame2_SortBtn_name)
|
||||
S:HandleButton(QDKP2_Frame2_SortBtn_rank)
|
||||
S:HandleButton(QDKP2_Frame2_SortBtn_class)
|
||||
S:HandleButton(QDKP2_Frame2_SortBtn_net)
|
||||
S:HandleButton(QDKP2_Frame2_SortBtn_total)
|
||||
S:HandleButton(QDKP2_Frame2_SortBtn_spent)
|
||||
S:HandleButton(QDKP2_Frame2_SortBtn_hours)
|
||||
S:HandleButton(QDKP2_Frame2_SortBtn_deltatotal)
|
||||
S:HandleButton(QDKP2_Frame2_SortBtn_deltaspent)
|
||||
S:HandleButton(QDKP2_frame2_showRaid)
|
||||
S:HandleButton(QDKP2_Frame2_Bid_Button)
|
||||
S:HandleButton(QDKP2_Frame2_Bid_ButtonWin)
|
||||
S:HandleButton(QDKP2_Frame2_SortBtn_roll)
|
||||
S:HandleButton(QDKP2_Frame2_SortBtn_bid)
|
||||
S:HandleButton(QDKP2_Frame2_SortBtn_value)
|
||||
S:HandleEditBox(QDKP2_Frame2_Bid_Item)
|
||||
S:HandleCheckBox(QDKP2frame2_selectList_guild)
|
||||
if QDKP2frame2_selectList_guildOnline then
|
||||
S:HandleCheckBox(QDKP2frame2_selectList_guildOnline)
|
||||
elseif QDKP2frame2_selectList_Custom then
|
||||
S:HandleCheckBox(QDKP2frame2_selectList_Custom)
|
||||
end
|
||||
S:HandleCheckBox(QDKP2frame2_selectList_Raid)
|
||||
S:HandleCheckBox(QDKP2frame2_selectList_Bid)
|
||||
S:HandleCloseButton(QDKP2_Frame2_Button1, QDKP2_Frame2)
|
||||
|
||||
--RaidLog Frame
|
||||
QDKP2_Frame5:StripTextures()
|
||||
QDKP2_Frame5:CreateBackdrop("Transparent")
|
||||
QDKP2_frame5_scrollbar:StripTextures()
|
||||
S:HandleCloseButton(QDKP2_Frame5_Button1, QDKP2_Frame5)
|
||||
S:HandleScrollBar(QDKP2_frame5_scrollbarScrollBar)
|
||||
QDKP2_frame5_intest_net:Size(40, 14)
|
||||
QDKP2_frame5_intest_mod:Size(40, 14)
|
||||
for i = 1, 25 do
|
||||
_G["QDKP2_frame5_entry" .. i .. "_net"]:Size(40, 14)
|
||||
_G["QDKP2_frame5_entry" .. i .. "_mod"]:Size(40, 14)
|
||||
end
|
||||
for i = 4, 28 do
|
||||
local child = select(i, QDKP2_Frame5:GetChildren())
|
||||
if child:IsObjectType("Button") then
|
||||
child:StripTextures()
|
||||
child:SetHighlightTexture("Interface\\AddOns\\ElvUI\\Media\\Textures\\Highlight.tga", "Add")
|
||||
S:HandleButtonHighlight(child, 1, 0.8, 0.1)
|
||||
end
|
||||
end
|
||||
|
||||
--Frame 1
|
||||
QDKP2_Frame1:StripTextures()
|
||||
QDKP2_Frame1:CreateBackdrop("Transparent")
|
||||
S:HandleCloseButton(QDKP2_Frame1_Button1, QDKP2_Frame1)
|
||||
S:HandleButton(QDKP2frame1_newSession)
|
||||
S:HandleButton(QDKP2frame1_closeSession)
|
||||
S:HandleButton(QDKP2frame1_upload)
|
||||
S:HandleButton(QDKP2frame1_revert)
|
||||
S:HandleButton(QDKP2frame1_backup)
|
||||
S:HandleButton(QDKP2frame1_restore)
|
||||
S:HandleButton(QDKP2frame1_exportTXT)
|
||||
S:HandleButton(QDKP2frame1_list)
|
||||
S:HandleButton(QDKP2frame1_log)
|
||||
S:HandleButton(QDKP2frame1_award)
|
||||
S:HandleButton(QDKP2frame1_dkpBox_perhr)
|
||||
S:HandleButton(QDKP2frame1_dkpBox_IM)
|
||||
S:HandleButton(QDKP2frame1_ironman)
|
||||
S:HandleButton(QDKP2frame1_onOff)
|
||||
S:HandleButton(QDKP2frame1_dkpBox)
|
||||
S:HandleNextPrevButton(QDKP2frame1_upbutton, "up")
|
||||
S:HandleNextPrevButton(QDKP2frame1_downbutton, "down")
|
||||
S:HandleNextPrevButton(QDKP2frame1_hourlybonus_upbutton, "up")
|
||||
S:HandleNextPrevButton(QDKP2frame1_hourlybonus_downbutton, "down")
|
||||
S:HandleNextPrevButton(QDKP2frame1_IMbonus_upbutton, "up")
|
||||
S:HandleNextPrevButton(QDKP2frame1_IMbonus_downbutton, "down")
|
||||
S:HandleCheckBox(QDKP2frame1_UseBossMod)
|
||||
S:HandleCheckBox(QDKP2frame1_DetectBids)
|
||||
S:HandleCheckBox(QDKP2frame1_FixedPrice)
|
||||
QDKP2_frame1_BackupDate:Point("CENTER", 0, - 3)
|
||||
QDKP2_Frame1_raidDKP_text:Point("LEFT", 4, 0)
|
||||
QDKP2_Frame1_timerDKP_text:Point("LEFT", 4, 0)
|
||||
QDKP2_Frame1_IMDKP_text:Point("LEFT", 4, 0)
|
||||
QDKP2frame1_exportTXT:Size(60, 20)
|
||||
QDKP2frame1_exportTXT:Point("Left", QDKP2frame1_upload, "RIGHT", 5, - 22)
|
||||
QDKP2frame1_log:Point("CENTER", QDKP2_Frame1, "TOP", - 2, - 55)
|
||||
QDKP2frame1_newSession:Point("RIGHT", QDKP2_Frame1, "TOP", - 2, - 103)
|
||||
QDKP2frame1_backup:Point("RIGHT", QDKP2_frame1_BackupDate_Parent, "TOP", - 36, 5)
|
||||
QDKP2frame1_restore:Point("LEFT", QDKP2_frame1_BackupDate_Parent, "TOP", - 35, 5)
|
||||
QDKP2frame1_backup:Size(89, 20)
|
||||
QDKP2frame1_restore:Size(89, 20)
|
||||
|
||||
--Frame 3
|
||||
QDKP2_Frame3:StripTextures()
|
||||
QDKP2_Frame3:CreateBackdrop("Transparent")
|
||||
QDKP2frame3_dkpBox:Size(45, 20)
|
||||
QDKP2frame3_reasonBox:Size(137, 20)
|
||||
QDKP2frame3_reasonBox:Point("LEFT", QDKP2frame3_For, "RIGHT", 4, - 2)
|
||||
QDKP2frame3_changePlayerInfo:Point("CENTER", QDKP2_Frame3, "BOTTOM", 0, 23)
|
||||
S:HandleCloseButton(QDKP2_Frame3_Button1)
|
||||
S:HandleEditBox(QDKP2frame3_dkpBox)
|
||||
S:HandleEditBox(QDKP2frame3_reasonBox)
|
||||
S:HandleButton(QDKP2frame3_award)
|
||||
S:HandleButton(QDKP2frame3_spend)
|
||||
S:HandleButton(QDKP2frame3_zsBtn)
|
||||
S:HandleButton(QDKP2frame3_PopupLog)
|
||||
S:HandleButton(QDKP2frame3_changePlayerInfo)
|
||||
|
||||
--Frame 4
|
||||
QDKP2_Frame4:StripTextures()
|
||||
QDKP2_Frame4:CreateBackdrop("Transparent")
|
||||
S:HandleCloseButton(QDKP2_Frame4_Button1)
|
||||
QDKP2frame4_NetBox:Size(100, 15)
|
||||
QDKP2frame4_TotalBox:Size(100, 15)
|
||||
QDKP2frame4_HoursBox:Size(70, 15)
|
||||
QDKP2frame4_NetBox:Point("TopLeft", QDKP2_Frame4, "TopLeft", 70, - 31)
|
||||
QDKP2frame4_TotalBox:Point("TopLeft", QDKP2_Frame4, "TopLeft", 70, - 51)
|
||||
QDKP2frame4_HoursBox:Point("TopLeft", QDKP2_Frame4, "TopLeft", 70, - 71)
|
||||
S:HandleEditBox(QDKP2frame4_NetBox)
|
||||
S:HandleEditBox(QDKP2frame4_TotalBox)
|
||||
S:HandleEditBox(QDKP2frame4_HoursBox)
|
||||
S:HandleButton(QDKP2Frame4_Set)
|
||||
|
||||
--QDKP2_modify_log_entry
|
||||
QDKP2_modify_log_entry:StripTextures()
|
||||
QDKP2_modify_log_entry:CreateBackdrop("Transparent")
|
||||
S:HandleCloseButton(QDKP2_modify_log_entry_ButtonClose)
|
||||
QDKP2_modify_log_entry:Size(230, 160)
|
||||
QDKP2frame6_GainedBox:Size(50, 20)
|
||||
QDKP2frame6_SpentBox:Size(50, 20)
|
||||
QDKP2frame6_ReasonBox:Size(160, 20)
|
||||
QDKP2frame6_ReasonBox:Point("TOP", 19, - 70)
|
||||
QDKP2_modify_log_entry_for:Point("TOPLEFT", 5, - 74)
|
||||
S:HandleEditBox(QDKP2frame6_GainedBox)
|
||||
S:HandleEditBox(QDKP2frame6_SpentBox)
|
||||
S:HandleEditBox(QDKP2frame6_ReasonBox)
|
||||
S:HandleButton(QDKP2_modify_log_entry_Apply)
|
||||
S:HandleButton(QDKP2_modify_log_entry_Cancel)
|
||||
end)
|
||||
@@ -0,0 +1,513 @@
|
||||
local E, L, V, P, G = unpack(ElvUI)
|
||||
local S = E:GetModule("Skins")
|
||||
local AS = E:GetModule("AddOnSkins")
|
||||
|
||||
if not AS:IsAddonLODorEnabled("QuestGuru") then return end
|
||||
|
||||
local _G = _G
|
||||
local select = select
|
||||
local unpack = unpack
|
||||
|
||||
local GetItemInfo = GetItemInfo
|
||||
local GetItemQualityColor = GetItemQualityColor
|
||||
local GetQuestLogChoiceInfo = GetQuestLogChoiceInfo
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
-- QuestGuru 1.4.1
|
||||
|
||||
S:AddCallbackForAddon("QuestGuru", "QuestGuru", function()
|
||||
if not E.private.addOnSkins.QuestGuru then return end
|
||||
|
||||
local origCount = QUESTGURU_QUESTS_DISPLAYED
|
||||
QUESTS_DISPLAYED = 21
|
||||
QUESTGURU_QUESTS_DISPLAYED = 21
|
||||
|
||||
for i = QUESTS_DISPLAYED + 1, origCount do
|
||||
_G["QuestGuru_QuestLogTitle"..i]:Hide()
|
||||
_G["QuestGuru_QuestAbandonTitle"..i]:Hide()
|
||||
end
|
||||
|
||||
QuestGuru_UpdateGossipFrame = E.noop
|
||||
QuestGuru_UpdateProgressFrame = E.noop
|
||||
QuestGuru_UpdateDetailFrame = E.noop
|
||||
QuestGuru_QuestFrameGreetingPanel_OnShow = E.noop
|
||||
|
||||
QuestGuru_QuestLogFrame:Size(682, 447)
|
||||
|
||||
if not QuestGuru_QuestLogFrame.backdrop then
|
||||
QuestGuru_QuestLogFrame:StripTextures()
|
||||
QuestGuru_QuestLogFrame:CreateBackdrop("Transparent")
|
||||
QuestGuru_QuestLogFrame.backdrop:Point("TOPLEFT", 11, -12)
|
||||
QuestGuru_QuestLogFrame.backdrop:Point("BOTTOMRIGHT", -1, 11)
|
||||
end
|
||||
|
||||
S:SetUIPanelWindowInfo(QuestGuru_QuestLogFrame, "xoffset", -50)
|
||||
|
||||
S:HandleCloseButton(QuestGuru_QuestLogFrameCloseButton, QuestLogFrame.backdrop)
|
||||
|
||||
QuestGuru_QuestLogTitleText:Point("TOP", 0, -16)
|
||||
|
||||
QuestGuruShowMapButton:StripTextures()
|
||||
S:HandleButton(QuestGuruShowMapButton)
|
||||
QuestGuruShowMapButton:Width(82)
|
||||
QuestGuruShowMapButton:Point("TOPRIGHT", 1, 32)
|
||||
QuestGuruShowMapButton.text:ClearAllPoints()
|
||||
QuestGuruShowMapButton.text:SetPoint("CENTER")
|
||||
|
||||
QuestGuru_QuestLogCount:StripTextures()
|
||||
QuestGuru_QuestLogCount:Point("TOPRIGHT", -118, -23)
|
||||
QuestGuru_QuestLogCount.SetPoint = E.noop
|
||||
QuestGuru_QuestLogCount:CreateBackdrop("Transparent")
|
||||
QuestGuru_QuestLogCount.backdrop:Point("TOPLEFT", -1, 0)
|
||||
QuestGuru_QuestLogCount.backdrop:Point("BOTTOMRIGHT", 1, -4)
|
||||
|
||||
S:HandleButton(QuestGuru_QuestFrameExpandCollapseButton)
|
||||
QuestGuru_QuestFrameExpandCollapseButton:Point("TOPLEFT", 19, -39)
|
||||
|
||||
QuestGuru_QuestLogFrameTab1:StripTextures()
|
||||
QuestGuru_QuestLogFrameTab1:SetTemplate()
|
||||
QuestGuru_QuestLogFrameTab1:Height(24)
|
||||
QuestGuru_QuestLogFrameTab1:Point("TOPLEFT", 40, -35)
|
||||
QuestGuru_QuestLogFrameTab1.SetPoint = E.noop
|
||||
QuestGuru_QuestLogFrameTab1:SetHitRectInsets(0, 0, 0, 0)
|
||||
QuestGuru_QuestLogFrameTab1:HookScript("OnEnter", S.SetModifiedBackdrop)
|
||||
QuestGuru_QuestLogFrameTab1:HookScript("OnLeave", S.SetOriginalBackdrop)
|
||||
|
||||
QuestGuru_QuestLogFrameTab2:StripTextures()
|
||||
QuestGuru_QuestLogFrameTab2:SetTemplate()
|
||||
QuestGuru_QuestLogFrameTab2:Height(24)
|
||||
QuestGuru_QuestLogFrameTab2:Point("LEFT", QuestGuru_QuestLogFrameTab1, "RIGHT", 1, 0)
|
||||
QuestGuru_QuestLogFrameTab2.SetPoint = E.noop
|
||||
QuestGuru_QuestLogFrameTab2:SetHitRectInsets(0, 0, 0, 0)
|
||||
QuestGuru_QuestLogFrameTab2:HookScript("OnEnter", S.SetModifiedBackdrop)
|
||||
QuestGuru_QuestLogFrameTab2:HookScript("OnLeave", S.SetOriginalBackdrop)
|
||||
|
||||
QuestGuru_QuestLogTitle1:ClearAllPoints()
|
||||
QuestGuru_QuestLogTitle1:SetPoint("TOPLEFT", QuestGuru_QuestLogListScrollFrame)
|
||||
|
||||
QuestGuru_QuestLogListScrollFrame:Size(305, 335)
|
||||
QuestGuru_QuestLogListScrollFrame:ClearAllPoints()
|
||||
QuestGuru_QuestLogListScrollFrame:Point("TOPLEFT", QuestGuru_QuestLogFrame, 19, -62)
|
||||
QuestGuru_QuestLogListScrollFrame:CreateBackdrop("Transparent")
|
||||
QuestGuru_QuestLogListScrollFrame.backdrop:Point("TOPLEFT", 0, 2)
|
||||
QuestGuru_QuestLogListScrollFrame.backdrop:Point("BOTTOMRIGHT", 0, -2)
|
||||
QuestGuru_QuestLogListScrollFrame:Show()
|
||||
QuestGuru_QuestLogListScrollFrame.Hide = QuestGuru_QuestLogListScrollFrame.Show
|
||||
|
||||
S:HandleScrollBar(QuestGuru_QuestLogListScrollFrameScrollBar)
|
||||
QuestGuru_QuestLogListScrollFrameScrollBar:Point("TOPLEFT", QuestGuru_QuestLogListScrollFrame, "TOPRIGHT", 3, -17)
|
||||
QuestGuru_QuestLogListScrollFrameScrollBar:Point("BOTTOMLEFT", QuestGuru_QuestLogListScrollFrame, "BOTTOMRIGHT", 3, 17)
|
||||
|
||||
QuestGuru_QuestLogDetailScrollFrame:Size(304, 336)
|
||||
QuestGuru_QuestLogDetailScrollFrame:ClearAllPoints()
|
||||
QuestGuru_QuestLogDetailScrollFrame:Point("TOPRIGHT", QuestGuru_QuestLogFrame, -30, -61)
|
||||
QuestGuru_QuestLogDetailScrollFrame:StripTextures()
|
||||
QuestGuru_QuestLogDetailScrollFrame:CreateBackdrop("Transparent")
|
||||
QuestGuru_QuestLogDetailScrollFrame.backdrop:Point("TOPLEFT", 0, 1)
|
||||
QuestGuru_QuestLogDetailScrollFrame.backdrop:Point("BOTTOMRIGHT", 0, -2)
|
||||
|
||||
S:HandleScrollBar(QuestGuru_QuestLogDetailScrollFrameScrollBar)
|
||||
QuestGuru_QuestLogDetailScrollFrameScrollBar:Point("TOPLEFT", QuestGuru_QuestLogDetailScrollFrame, "TOPRIGHT", 3, -18)
|
||||
QuestGuru_QuestLogDetailScrollFrameScrollBar:Point("BOTTOMLEFT", QuestGuru_QuestLogDetailScrollFrame, "BOTTOMRIGHT", 3, 17)
|
||||
|
||||
S:HandleButton(QuestGuru_QuestLogFrameAbandonButton)
|
||||
S:HandleButton(QuestGuru_QuestFramePushQuestButton)
|
||||
S:HandleButton(QuestGuru_QuestFrameOptionsButton)
|
||||
S:HandleButton(QuestGuru_QuestFrameExitButton)
|
||||
|
||||
QuestGuru_QuestLogFrameAbandonButton:Height(22)
|
||||
QuestGuru_QuestFramePushQuestButton:Height(22)
|
||||
QuestGuru_QuestFrameOptionsButton:Height(22)
|
||||
QuestGuru_QuestFrameExitButton:Height(22)
|
||||
|
||||
QuestGuru_QuestLogFrameAbandonButton:Point("BOTTOMLEFT", QuestGuru_QuestLogFrame, "BOTTOMLEFT", 19, 19)
|
||||
QuestGuru_QuestFramePushQuestButton:Point("LEFT", QuestGuru_QuestLogFrameAbandonButton, "RIGHT", 3, 0)
|
||||
|
||||
QuestGuru_QuestFrameExitButton:Point("BOTTOMRIGHT", -9, 19)
|
||||
QuestGuru_QuestFrameOptionsButton:Point("RIGHT", QuestGuru_QuestFrameExitButton, "LEFT", -3, 0)
|
||||
|
||||
-- Abandoned
|
||||
QuestGuru_QuestAbandonTitle1:ClearAllPoints()
|
||||
QuestGuru_QuestAbandonTitle1:SetPoint("TOPLEFT", QuestGuru_QuestAbandonListScrollFrame)
|
||||
|
||||
QuestGuru_QuestAbandonListScrollFrame:Size(305, 335)
|
||||
QuestGuru_QuestAbandonListScrollFrame:ClearAllPoints()
|
||||
QuestGuru_QuestAbandonListScrollFrame:Point("TOPLEFT", QuestGuru_QuestLogFrame, 19, -62)
|
||||
QuestGuru_QuestAbandonListScrollFrame:CreateBackdrop("Transparent")
|
||||
QuestGuru_QuestAbandonListScrollFrame.backdrop:Point("TOPLEFT", 0, 2)
|
||||
QuestGuru_QuestAbandonListScrollFrame.backdrop:Point("BOTTOMRIGHT", 0, -2)
|
||||
QuestGuru_QuestAbandonListScrollFrame:Show()
|
||||
QuestGuru_QuestAbandonListScrollFrame.Hide = QuestGuru_QuestAbandonListScrollFrame.Show
|
||||
|
||||
S:HandleScrollBar(QuestGuru_QuestAbandonListScrollFrameScrollBar)
|
||||
QuestGuru_QuestAbandonListScrollFrameScrollBar:Point("TOPLEFT", QuestGuru_QuestAbandonListScrollFrame, "TOPRIGHT", 3, -17)
|
||||
QuestGuru_QuestAbandonListScrollFrameScrollBar:Point("BOTTOMLEFT", QuestGuru_QuestAbandonListScrollFrame, "BOTTOMRIGHT", 3, 17)
|
||||
|
||||
QuestGuru_QuestAbandonDetailScrollFrame:Size(304, 336)
|
||||
QuestGuru_QuestAbandonDetailScrollFrame:ClearAllPoints()
|
||||
QuestGuru_QuestAbandonDetailScrollFrame:Point("TOPRIGHT", QuestGuru_QuestLogFrame, -30, -61)
|
||||
QuestGuru_QuestAbandonDetailScrollFrame:StripTextures()
|
||||
QuestGuru_QuestAbandonDetailScrollFrame:CreateBackdrop("Transparent")
|
||||
QuestGuru_QuestAbandonDetailScrollFrame.backdrop:Point("TOPLEFT", 0, 1)
|
||||
QuestGuru_QuestAbandonDetailScrollFrame.backdrop:Point("BOTTOMRIGHT", 0, -2)
|
||||
|
||||
S:HandleScrollBar(QuestGuru_QuestAbandonDetailScrollFrameScrollBar)
|
||||
QuestGuru_QuestAbandonDetailScrollFrameScrollBar:Point("TOPLEFT", QuestGuru_QuestAbandonDetailScrollFrame, "TOPRIGHT", 3, -18)
|
||||
QuestGuru_QuestAbandonDetailScrollFrameScrollBar:Point("BOTTOMLEFT", QuestGuru_QuestAbandonDetailScrollFrame, "BOTTOMRIGHT", 3, 17)
|
||||
|
||||
S:HandleEditBox(QuestGuru_QuestAbandonSearch)
|
||||
QuestGuru_QuestAbandonSearch:Point("LEFT", QuestGuru_QuestAbandonSearchText, "RIGHT", 4, -1)
|
||||
|
||||
S:HandleButton(QuestGuru_QuestAbandonClearList)
|
||||
QuestGuru_QuestAbandonClearList:Height(22)
|
||||
QuestGuru_QuestAbandonClearList:Point("LEFT", QuestGuru_QuestAbandonSearch, "RIGHT", 8, 0)
|
||||
|
||||
local function skinOptions(f)
|
||||
for i = 1, f:GetNumChildren() do
|
||||
local child = select(i, f:GetChildren())
|
||||
if child then
|
||||
if child:IsObjectType("CheckButton") then
|
||||
S:HandleCheckBox(child)
|
||||
elseif child:IsObjectType("EditBox") then
|
||||
S:HandleEditBox(child)
|
||||
elseif child:IsObjectType("Button") then
|
||||
S:HandleButton(child)
|
||||
elseif child:IsObjectType("Frame") then
|
||||
S:HandleDropDownBox(child, 240)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
skinOptions(QuestGuru_OptionsFrameGeneral)
|
||||
skinOptions(QuestGuru_OptionsFrameSound)
|
||||
skinOptions(QuestGuru_AnnounceFrame)
|
||||
|
||||
local function skinLogEntry(questLogTitle, index)
|
||||
questLogTitle:Width(300)
|
||||
|
||||
if index > 1 then
|
||||
questLogTitle:SetPoint("TOPLEFT", _G["QuestGuru_QuestLogTitle"..(index-1)], "BOTTOMLEFT", 0, 0)
|
||||
end
|
||||
|
||||
if questLogTitle.check then
|
||||
questLogTitle.check:CreateBackdrop()
|
||||
questLogTitle.check.backdrop:SetInside()
|
||||
questLogTitle.check:SetNormalTexture(nil)
|
||||
questLogTitle.check:SetPushedTexture(nil)
|
||||
questLogTitle.check:SetHighlightTexture(nil)
|
||||
end
|
||||
|
||||
S:HandleCollapseExpandButton(questLogTitle)
|
||||
end
|
||||
|
||||
for i = 1, QUESTS_DISPLAYED do
|
||||
skinLogEntry(_G["QuestGuru_QuestLogTitle"..i], i)
|
||||
skinLogEntry(_G["QuestGuru_QuestAbandonTitle"..i], i)
|
||||
end
|
||||
|
||||
-- QuestStart Tooltip
|
||||
QuestGuru_QuestStartInfoFrame:StripTextures()
|
||||
QuestGuru_QuestStartInfoFrame:SetTemplate("Transparent")
|
||||
|
||||
-- Quest items
|
||||
local function updateItemQuality(self, texture)
|
||||
if self.parent.link or self.parent.type == "choice" then
|
||||
local quality
|
||||
|
||||
if self.parent.link then
|
||||
quality = select(3, GetItemInfo(self.parent.link))
|
||||
elseif self.parent.type == "choice" then
|
||||
quality = select(4, GetQuestLogChoiceInfo(self.parent:GetID()))
|
||||
end
|
||||
|
||||
if quality then
|
||||
local r, g, b = GetItemQualityColor(quality)
|
||||
|
||||
self.parent:SetBackdropBorderColor(r, g, b)
|
||||
self.parent.backdrop:SetBackdropBorderColor(r, g, b)
|
||||
|
||||
self.parent.text:SetTextColor(r, g, b)
|
||||
else
|
||||
self.parent:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
||||
self.parent.backdrop:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
||||
|
||||
self.parent.text:SetTextColor(1, 1, 1)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local items = {
|
||||
["QuestGuru_QuestLogItem"] = 10,
|
||||
["QuestGuru_QuestLogObjectiveItem"] = 10,
|
||||
["QuestGuru_QuestAbandonItem"] = 10,
|
||||
}
|
||||
for frame, numItems in pairs(items) do
|
||||
for i = 1, numItems do
|
||||
local item = _G[frame..i]
|
||||
local icon = _G[frame..i.."IconTexture"]
|
||||
local count = _G[frame..i.."Count"]
|
||||
|
||||
item:StripTextures()
|
||||
item:SetTemplate("Default")
|
||||
item:StyleButton()
|
||||
item:Size(143, 40)
|
||||
item:SetFrameLevel(item:GetFrameLevel() + 2)
|
||||
|
||||
icon:Size(E.PixelMode and 38 or 32)
|
||||
icon:SetDrawLayer("OVERLAY")
|
||||
icon:Point("TOPLEFT", E.PixelMode and 1 or 4, -(E.PixelMode and 1 or 4))
|
||||
S:HandleIcon(icon)
|
||||
|
||||
item.text = _G[frame..i.."Name"]
|
||||
icon.parent = item
|
||||
hooksecurefunc(icon, "SetTexture", updateItemQuality)
|
||||
|
||||
count:SetParent(item.backdrop)
|
||||
count:SetDrawLayer("OVERLAY")
|
||||
end
|
||||
end
|
||||
|
||||
do -- Fonts
|
||||
local function fixFontColor(obj, r, g, b)
|
||||
obj:SetTextColor(r, g, b)
|
||||
obj.SetTextColor = E.noop
|
||||
end
|
||||
|
||||
fixFontColor(QuestGuru_QuestStartInfoTitle, 1, 0.8, 0.1)
|
||||
fixFontColor(QuestGuru_QuestStartInfoNPC, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestStartInfoPOS, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestStartInfoArea, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestStartInfoTimeLabel, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestStartInfoTime, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestStartInfoLevelLabel, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestStartInfoLevel, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestLogQuestTitle, 1, 0.8, 0.1)
|
||||
fixFontColor(QuestGuru_QuestLogObjectivesText, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestLogTimerText, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestLogObjective1, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestLogObjective2, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestLogObjective3, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestLogObjective4, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestLogObjective5, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestLogObjective6, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestLogObjective7, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestLogObjective8, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestLogObjective9, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestLogObjective10, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestLogRequiredMoneyText, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestLogSuggestedGroupNum, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestLogDescriptionTitle, 1, 0.8, 0.1)
|
||||
fixFontColor(QuestGuru_QuestLogQuestDescription, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestLogRewardTitleText, 1, 0.8, 0.1)
|
||||
fixFontColor(QuestGuru_QuestLogItemChooseText, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestLogItemReceiveText, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestLogSpellLearnText, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestLogPlayerTitleText, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestLogStartLabel, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestLogFinishLabel, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestLogFinishPos, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestLogFinishNPCName, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestLogHonorFrameReceiveText, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestLogTalentFrameReceiveText, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestLogXPFrameReceiveText, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestAbandonQuestTitle, 1, 0.8, 0.1)
|
||||
fixFontColor(QuestGuru_QuestAbandonObjectivesText, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestAbandonTimerText, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestAbandonObjective1, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestAbandonObjective2, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestAbandonObjective3, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestAbandonObjective4, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestAbandonObjective5, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestAbandonObjective6, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestAbandonObjective7, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestAbandonObjective8, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestAbandonObjective9, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestAbandonObjective10, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestAbandonRequiredMoneyText, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestAbandonSuggestedGroupNum, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestAbandonDescriptionTitle, 1, 0.8, 0.1)
|
||||
fixFontColor(QuestGuru_QuestAbandonQuestDescription, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestAbandonRewardTitleText, 1, 0.8, 0.1)
|
||||
fixFontColor(QuestGuru_QuestAbandonItemChooseText, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestAbandonItemReceiveText, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestAbandonSpellLearnText, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestAbandonPlayerTitleText, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestAbandonStartLabel, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestAbandonFinishLabel, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestAbandonFinishPos, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestAbandonFinishNPCName, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestAbandonHonorFrameReceiveText, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestAbandonTalentFrameReceiveText, 1, 1, 1)
|
||||
end
|
||||
end)
|
||||
|
||||
S:AddCallbackForAddon("QuestGuru_History", "QuestGuru_History", function()
|
||||
if not E.private.addOnSkins.QuestGuru then return end
|
||||
|
||||
QuestGuru_QuestLogFrameTab3:StripTextures()
|
||||
QuestGuru_QuestLogFrameTab3:SetTemplate()
|
||||
QuestGuru_QuestLogFrameTab3:Height(24)
|
||||
QuestGuru_QuestLogFrameTab3:Point("LEFT", QuestGuru_QuestLogFrameTab2, "RIGHT", 1, 0)
|
||||
QuestGuru_QuestLogFrameTab3.SetPoint = E.noop
|
||||
QuestGuru_QuestLogFrameTab3:SetHitRectInsets(0, 0, 0, 0)
|
||||
QuestGuru_QuestLogFrameTab3:HookScript("OnEnter", S.SetModifiedBackdrop)
|
||||
QuestGuru_QuestLogFrameTab3:HookScript("OnLeave", S.SetOriginalBackdrop)
|
||||
|
||||
QuestGuru_QuestLogFrameTab2.SetPoint = nil
|
||||
QuestGuru_QuestLogFrameTab2:Point("LEFT", QuestGuru_QuestLogFrameTab1, "RIGHT", 1, 0)
|
||||
QuestGuru_QuestLogFrameTab2.SetPoint = E.noop
|
||||
|
||||
QuestGuru_QuestHistoryTitle1:ClearAllPoints()
|
||||
QuestGuru_QuestHistoryTitle1:SetPoint("TOPLEFT", QuestGuru_QuestHistoryListScrollFrame)
|
||||
|
||||
QuestGuru_QuestHistoryListScrollFrame:Size(305, 335)
|
||||
QuestGuru_QuestHistoryListScrollFrame:ClearAllPoints()
|
||||
QuestGuru_QuestHistoryListScrollFrame:Point("TOPLEFT", QuestGuru_QuestLogFrame, 19, -62)
|
||||
QuestGuru_QuestHistoryListScrollFrame:CreateBackdrop("Transparent")
|
||||
QuestGuru_QuestHistoryListScrollFrame.backdrop:Point("TOPLEFT", 0, 2)
|
||||
QuestGuru_QuestHistoryListScrollFrame.backdrop:Point("BOTTOMRIGHT", 0, -2)
|
||||
QuestGuru_QuestHistoryListScrollFrame:Show()
|
||||
QuestGuru_QuestHistoryListScrollFrame.Hide = QuestGuru_QuestHistoryListScrollFrame.Show
|
||||
|
||||
S:HandleScrollBar(QuestGuru_QuestHistoryListScrollFrameScrollBar)
|
||||
QuestGuru_QuestHistoryListScrollFrameScrollBar:Point("TOPLEFT", QuestGuru_QuestHistoryListScrollFrame, "TOPRIGHT", 3, -17)
|
||||
QuestGuru_QuestHistoryListScrollFrameScrollBar:Point("BOTTOMLEFT", QuestGuru_QuestHistoryListScrollFrame, "BOTTOMRIGHT", 3, 17)
|
||||
|
||||
QuestGuru_QuestHistoryDetailScrollFrame:Size(304, 336)
|
||||
QuestGuru_QuestHistoryDetailScrollFrame:ClearAllPoints()
|
||||
QuestGuru_QuestHistoryDetailScrollFrame:Point("TOPRIGHT", QuestGuru_QuestLogFrame, -30, -61)
|
||||
QuestGuru_QuestHistoryDetailScrollFrame:StripTextures()
|
||||
QuestGuru_QuestHistoryDetailScrollFrame:CreateBackdrop("Transparent")
|
||||
QuestGuru_QuestHistoryDetailScrollFrame.backdrop:Point("TOPLEFT", 0, 1)
|
||||
QuestGuru_QuestHistoryDetailScrollFrame.backdrop:Point("BOTTOMRIGHT", 0, -2)
|
||||
|
||||
S:HandleScrollBar(QuestGuru_QuestHistoryDetailScrollFrameScrollBar)
|
||||
QuestGuru_QuestHistoryDetailScrollFrameScrollBar:Point("TOPLEFT", QuestGuru_QuestHistoryDetailScrollFrame, "TOPRIGHT", 3, -18)
|
||||
QuestGuru_QuestHistoryDetailScrollFrameScrollBar:Point("BOTTOMLEFT", QuestGuru_QuestHistoryDetailScrollFrame, "BOTTOMRIGHT", 3, 17)
|
||||
|
||||
S:HandleEditBox(QuestGuru_QuestHistorySearch)
|
||||
QuestGuru_QuestHistorySearch:Width(143)
|
||||
QuestGuru_QuestHistorySearch:Point("LEFT", QuestGuru_QuestHistorySearchText, "RIGHT", 4, -1)
|
||||
|
||||
S:HandleButton(QuestGuru_HistoryListFrameShowButton)
|
||||
QuestGuru_HistoryListFrameShowButton:Point("LEFT", QuestGuru_QuestHistorySearch, "RIGHT", 4, 0)
|
||||
|
||||
local function skinLogEntry(questLogTitle, index)
|
||||
questLogTitle:Width(300)
|
||||
|
||||
if index > 1 then
|
||||
questLogTitle:SetPoint("TOPLEFT", _G["QuestGuru_QuestLogTitle"..(index-1)], "BOTTOMLEFT", 0, 0)
|
||||
end
|
||||
|
||||
if questLogTitle.check then
|
||||
questLogTitle.check:CreateBackdrop()
|
||||
questLogTitle.check.backdrop:SetInside()
|
||||
questLogTitle.check:SetNormalTexture(nil)
|
||||
questLogTitle.check:SetPushedTexture(nil)
|
||||
questLogTitle.check:SetHighlightTexture(nil)
|
||||
end
|
||||
|
||||
S:HandleCollapseExpandButton(questLogTitle)
|
||||
end
|
||||
|
||||
for i = 1, QUESTS_DISPLAYED do
|
||||
skinLogEntry(_G["QuestGuru_QuestHistoryTitle"..i], i)
|
||||
end
|
||||
|
||||
-- Quest items
|
||||
local function updateItemQuality(self, texture)
|
||||
if self.parent.link or self.parent.type == "choice" then
|
||||
local quality
|
||||
|
||||
if self.parent.link then
|
||||
quality = select(3, GetItemInfo(self.parent.link))
|
||||
elseif self.parent.type == "choice" then
|
||||
quality = select(4, GetQuestLogChoiceInfo(self.parent:GetID()))
|
||||
end
|
||||
|
||||
if quality then
|
||||
local r, g, b = GetItemQualityColor(quality)
|
||||
|
||||
self.parent:SetBackdropBorderColor(r, g, b)
|
||||
self.parent.backdrop:SetBackdropBorderColor(r, g, b)
|
||||
|
||||
self.parent.text:SetTextColor(r, g, b)
|
||||
else
|
||||
self.parent:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
||||
self.parent.backdrop:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
||||
|
||||
self.parent.text:SetTextColor(1, 1, 1)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local items = {
|
||||
["QuestGuru_QuestHistoryItem"] = 10,
|
||||
}
|
||||
for frame, numItems in pairs(items) do
|
||||
for i = 1, numItems do
|
||||
local item = _G[frame..i]
|
||||
local icon = _G[frame..i.."IconTexture"]
|
||||
local count = _G[frame..i.."Count"]
|
||||
|
||||
item:StripTextures()
|
||||
item:SetTemplate("Default")
|
||||
item:StyleButton()
|
||||
item:Size(143, 40)
|
||||
item:SetFrameLevel(item:GetFrameLevel() + 2)
|
||||
|
||||
icon:Size(E.PixelMode and 38 or 32)
|
||||
icon:SetDrawLayer("OVERLAY")
|
||||
icon:Point("TOPLEFT", E.PixelMode and 1 or 4, -(E.PixelMode and 1 or 4))
|
||||
S:HandleIcon(icon)
|
||||
|
||||
item.text = _G[frame..i.."Name"]
|
||||
icon.parent = item
|
||||
hooksecurefunc(icon, "SetTexture", updateItemQuality)
|
||||
|
||||
count:SetParent(item.backdrop)
|
||||
count:SetDrawLayer("OVERLAY")
|
||||
end
|
||||
end
|
||||
|
||||
do -- Fonts
|
||||
local function fixFontColor(obj, r, g, b)
|
||||
obj:SetTextColor(r, g, b)
|
||||
obj.SetTextColor = E.noop
|
||||
end
|
||||
|
||||
fixFontColor(QuestGuru_QuestHistoryQuestTitle, 1, 0.8, 0.1)
|
||||
fixFontColor(QuestGuru_QuestHistoryObjectivesText, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestHistoryTimerText, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestHistoryObjective1, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestHistoryObjective2, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestHistoryObjective3, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestHistoryObjective4, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestHistoryObjective5, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestHistoryObjective6, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestHistoryObjective7, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestHistoryObjective8, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestHistoryObjective9, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestHistoryObjective10, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestHistoryRequiredMoneyText, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestHistorySuggestedGroupNum, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestHistoryDescriptionTitle, 1, 0.8, 0.1)
|
||||
fixFontColor(QuestGuru_QuestHistoryQuestDescription, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestHistoryRewardTitleText, 1, 0.8, 0.1)
|
||||
fixFontColor(QuestGuru_QuestHistoryItemChooseText, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestHistoryItemReceiveText, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestHistorySpellLearnText, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestHistoryPlayerTitleText, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestHistoryXPText, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestHistoryRepText, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestHistoryStartLabel, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestHistoryStartPos, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestHistoryStartNPCName, 0.4, 0.8, 1)
|
||||
fixFontColor(QuestGuru_QuestHistoryFinishLabel, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestHistoryFinishPos, 0.6, 0.6, 0.6)
|
||||
fixFontColor(QuestGuru_QuestHistoryFinishNPCName, 0.4, 0.8, 1)
|
||||
fixFontColor(QuestGuru_QuestHistoryHonorFrameReceiveText, 1, 1, 1)
|
||||
fixFontColor(QuestGuru_QuestHistoryTalentFrameReceiveText, 1, 1, 1)
|
||||
end
|
||||
end)
|
||||
@@ -0,0 +1,445 @@
|
||||
local E, L, V, P, G = unpack(ElvUI)
|
||||
local S = E:GetModule("Skins")
|
||||
local AS = E:GetModule("AddOnSkins")
|
||||
|
||||
if not AS:IsAddonLODorEnabled("QuestGuru_Tracker") then return end
|
||||
|
||||
-- QuestGuru_Tracker 1.4.4
|
||||
|
||||
S:AddCallbackForAddon("QuestGuru_Tracker", "QuestGuru_Tracker", function()
|
||||
if not E.private.addOnSkins.QuestGuru_Tracker then return end
|
||||
|
||||
E:GetModule("Tooltip"):SetStyle(QGT_QuestWatchFrameTooltip)
|
||||
QGT_QuestWatchFrameTooltip.SetBackdropColor = E.noop
|
||||
QGT_QuestWatchFrameTooltip.SetBackdropBorderColor = E.noop
|
||||
|
||||
QGT_QuestWatchFrame:SetBackdrop(nil)
|
||||
QGT_QuestWatchFrame:CreateBackdrop(QGT_Settings.ShowBorder and "Transparent" or "NoBackdrop")
|
||||
QGT_QuestWatchFrame:SetHitRectInsets(0, 0, 0, 0)
|
||||
QGT_QuestWatchFrameBackground:Hide()
|
||||
|
||||
QGT_AchievementWatchFrame:SetBackdrop(nil)
|
||||
QGT_AchievementWatchFrame:CreateBackdrop(QGT_Settings.ShowBorder and "Transparent" or "NoBackdrop")
|
||||
QGT_AchievementWatchFrame:SetHitRectInsets(0, 0, 0, 0)
|
||||
QGT_AchievementWatchFrameBackground:Hide()
|
||||
|
||||
S:HandleButton(QGT_QuestWatchFrameToggle)
|
||||
S:HandleButton(QGT_QuestWatchFrameMinimize)
|
||||
S:HandleButton(QGT_QuestWatchFrameOptions)
|
||||
S:HandleButton(QGT_AchievementWatchFrameToggle)
|
||||
S:HandleButton(QGT_AchievementWatchFrameMinimize)
|
||||
S:HandleButton(QGT_AchievementWatchFrameOptions)
|
||||
|
||||
QGT_QuestWatchFrameMinimize:Point("RIGHT", QGT_QuestWatchFrameOptions, "LEFT", -1, 0)
|
||||
QGT_QuestWatchFrameToggle:Point("RIGHT", QGT_QuestWatchFrameMinimize, "LEFT", -2, 0)
|
||||
|
||||
QGT_AchievementWatchFrameMinimize:Point("RIGHT", QGT_AchievementWatchFrameOptions, "LEFT", -1, 0)
|
||||
QGT_AchievementWatchFrameToggle:Point("RIGHT", QGT_AchievementWatchFrameMinimize, "LEFT", -2, 0)
|
||||
|
||||
local _SetPoint = QGT_QuestWatchFrameSlider.SetPoint
|
||||
local function sliderSetPoint(self, point)
|
||||
if point == "TOPLEFT" then
|
||||
_SetPoint(self, "TOPLEFT", -12, -17)
|
||||
else
|
||||
_SetPoint(self, "TOPRIGHT", 12, -17)
|
||||
end
|
||||
end
|
||||
|
||||
S:HandleSliderFrame(QGT_QuestWatchFrameSlider)
|
||||
QGT_QuestWatchFrameSlider.SetPoint = sliderSetPoint
|
||||
|
||||
S:HandleSliderFrame(QGT_AchievementWatchFrameSlider)
|
||||
QGT_AchievementWatchFrameSlider.SetPoint = sliderSetPoint
|
||||
|
||||
local function skinOptions(f)
|
||||
for i = 1, f:GetNumChildren() do
|
||||
local child = select(i, f:GetChildren())
|
||||
if child then
|
||||
if child:IsObjectType("CheckButton") then
|
||||
S:HandleCheckBox(child)
|
||||
elseif child:IsObjectType("EditBox") then
|
||||
S:HandleEditBox(child)
|
||||
elseif child:IsObjectType("Button") then
|
||||
S:HandleButton(child)
|
||||
elseif child:IsObjectType("Slider") then
|
||||
S:HandleSliderFrame(child)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
skinOptions(QGT_OptionsFrameTracker)
|
||||
|
||||
for i = 1, 40 do
|
||||
local frame = _G["QGT_AchievementWatchLine"..i]
|
||||
local icon = _G["QGT_AchievementWatchLine"..i.."Icon"]
|
||||
|
||||
icon:Size(14)
|
||||
icon:SetTexCoord(unpack(E.TexCoords))
|
||||
|
||||
frame.statusBar:StripTextures()
|
||||
frame.statusBar:CreateBackdrop("Transparent")
|
||||
|
||||
frame.statusBar:SetStatusBarTexture(E.media.normTex)
|
||||
E:RegisterStatusBar(frame.statusBar)
|
||||
end
|
||||
|
||||
do
|
||||
local alpha = QGT_Settings.Alpha
|
||||
local backdropR, backdropG, backdropB = unpack(E.media.backdropfadecolor, 1, 3)
|
||||
local borderR, borderG, borderB = unpack(E.media.bordercolor, 1, 3)
|
||||
|
||||
QGT_QuestWatchFrame.backdrop:SetBackdropColor(backdropR, backdropG, backdropB, alpha)
|
||||
QGT_QuestWatchFrame.backdrop:SetBackdropBorderColor(borderR, borderG, borderB, alpha)
|
||||
QGT_AchievementWatchFrame.backdrop:SetBackdropColor(backdropR, backdropG, backdropB, alpha)
|
||||
QGT_AchievementWatchFrame.backdrop:SetBackdropBorderColor(borderR, borderG, borderB, alpha)
|
||||
end
|
||||
|
||||
QGT_SetQuestWatchBorder = function(enabled)
|
||||
if enabled then
|
||||
QGT_QuestWatchFrame.backdrop:SetTemplate("Transparent", nil, true)
|
||||
else
|
||||
QGT_QuestWatchFrame.backdrop:SetTemplate("NoBackdrop", nil, true)
|
||||
end
|
||||
end
|
||||
|
||||
QGT_SetAchievementWatchBorder = function(enabled)
|
||||
if enabled then
|
||||
QGT_AchievementWatchFrame.backdrop:SetTemplate("Transparent", nil, true)
|
||||
else
|
||||
QGT_AchievementWatchFrame.backdrop:SetTemplate("NoBackdrop", nil, true)
|
||||
end
|
||||
end
|
||||
|
||||
QGT_OptionsFrameTrackerAlpha:SetScript("OnValueChanged", function(self)
|
||||
local alpha = self:GetValue()
|
||||
local backdropR, backdropG, backdropB = unpack(E.media.backdropfadecolor, 1, 3)
|
||||
local borderR, borderG, borderB = unpack(E.media.bordercolor, 1, 3)
|
||||
|
||||
QGT_Settings.Alpha = alpha
|
||||
|
||||
QGT_QuestWatchFrame.backdrop:SetBackdropColor(backdropR, backdropG, backdropB, alpha)
|
||||
QGT_QuestWatchFrame.backdrop:SetBackdropBorderColor(borderR, borderG, borderB, alpha)
|
||||
QGT_AchievementWatchFrame.backdrop:SetBackdropColor(backdropR, backdropG, backdropB, alpha)
|
||||
QGT_AchievementWatchFrame.backdrop:SetBackdropBorderColor(borderR, borderG, borderB, alpha)
|
||||
|
||||
QGT_OptionsFrameTrackerAlphaText:SetFormattedText("%s (%d%%)", QG_OPT_TRACKER_ALPHA, math.abs(math.ceil(alpha * 100 - 0.5)))
|
||||
end)
|
||||
|
||||
local skinnedButtons = 0
|
||||
hooksecurefunc("QGT_QuestWatch_Update", function()
|
||||
local questItemIcons = QGT_Settings.QuestItemIcons
|
||||
|
||||
if questItemIcons or QGT_WATCHFRAME_NUM_ITEMS > skinnedButtons then
|
||||
local leftSide = (QGT_Settings.QuestWatch.Left * QGT_Settings.Scale) < 32
|
||||
local sliderVisible = QGT_QuestWatchFrameSlider:GetAlpha() > 0
|
||||
local sliderRightVisible = sliderVisible and ((QGT_Settings.QuestWatch.Left + 256) * QGT_Settings.Scale) > (UIParent:GetWidth() - 16)
|
||||
|
||||
for i = questItemIcons and 1 or skinnedButtons + 1, QGT_WATCHFRAME_NUM_ITEMS do
|
||||
local button = _G["WatchFrameItem"..i]
|
||||
|
||||
if button then
|
||||
if not button.isSkinned then
|
||||
local icon = _G["WatchFrameItem"..i.."IconTexture"]
|
||||
local normal = _G["WatchFrameItem"..i.."NormalTexture"]
|
||||
local cooldown = _G["WatchFrameItem"..i.."Cooldown"]
|
||||
|
||||
button:CreateBackdrop()
|
||||
button.backdrop:SetAllPoints()
|
||||
button:StyleButton()
|
||||
button:Size(25)
|
||||
|
||||
normal:SetAlpha(0)
|
||||
|
||||
icon:SetInside()
|
||||
icon:SetTexCoord(unpack(E.TexCoords))
|
||||
|
||||
E:RegisterCooldown(cooldown)
|
||||
|
||||
button.isSkinned = true
|
||||
end
|
||||
|
||||
if questItemIcons then
|
||||
local _, watchText = button:GetPoint()
|
||||
|
||||
if leftSide then
|
||||
if sliderVisible then
|
||||
button:Point("TOPLEFT", watchText, "TOPRIGHT", 19, 0)
|
||||
else
|
||||
button:Point("TOPLEFT", watchText, "TOPRIGHT", 8, 0)
|
||||
end
|
||||
else
|
||||
if sliderRightVisible then
|
||||
button:Point("TOPRIGHT", watchText, "TOPLEFT", -19, 0)
|
||||
else
|
||||
button:Point("TOPRIGHT", watchText, "TOPLEFT", -8, 0)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
skinnedButtons = QGT_WATCHFRAME_NUM_ITEMS
|
||||
end
|
||||
end)
|
||||
|
||||
do -- Fixes
|
||||
local _G = _G
|
||||
local tonumber = tonumber
|
||||
local len, sub = string.len, string.sub
|
||||
|
||||
local ChatEdit_ChooseBoxForSend = ChatEdit_ChooseBoxForSend
|
||||
local GetAchievementLink = GetAchievementLink
|
||||
local GetItemInfo = GetItemInfo
|
||||
local GetQuestLink = GetQuestLink
|
||||
local GetQuestLogTitle = GetQuestLogTitle
|
||||
local IsShiftKeyDown = IsShiftKeyDown
|
||||
local QuestLog_OpenToQuest = QuestLog_OpenToQuest
|
||||
local QuestLog_SetSelection = QuestLog_SetSelection
|
||||
local RemoveTrackedAchievement = RemoveTrackedAchievement
|
||||
local WatchFrame_Update = WatchFrame_Update
|
||||
|
||||
local function questOnClick(self, button)
|
||||
local qID = self.qID
|
||||
|
||||
if button == "LeftButton" then
|
||||
if IsShiftKeyDown() then
|
||||
local ChatFrameEditBox = ChatEdit_ChooseBoxForSend()
|
||||
|
||||
-- header line
|
||||
if not qID then
|
||||
if ChatFrameEditBox:IsVisible() then
|
||||
ChatFrameEditBox:Insert(self:GetText())
|
||||
end
|
||||
-- objective line
|
||||
elseif not tonumber(qID) then
|
||||
local objName = sub(self:GetText(), 3 + len(QGT_Settings.Bullet))
|
||||
local objText
|
||||
|
||||
if qID == "item" then
|
||||
local _, itemLink = GetItemInfo(objName)
|
||||
|
||||
if not itemLink then
|
||||
objText = objName
|
||||
else
|
||||
objText = itemLink
|
||||
end
|
||||
else
|
||||
objText = objName
|
||||
end
|
||||
|
||||
if ChatFrameEditBox:IsVisible() then
|
||||
ChatFrameEditBox:Insert(objText)
|
||||
end
|
||||
-- quest number
|
||||
else
|
||||
if ChatFrameEditBox:IsVisible() then
|
||||
ChatFrameEditBox:Insert(GetQuestLink(qID))
|
||||
end
|
||||
end
|
||||
else
|
||||
-- header line
|
||||
if not qID then
|
||||
local headName = self:GetText()
|
||||
if QGT_WatchHeaders[headName] then
|
||||
QGT_WatchHeaders[headName] = false
|
||||
else
|
||||
QGT_WatchHeaders[headName] = true
|
||||
end
|
||||
|
||||
WatchFrame_Update()
|
||||
-- objective line
|
||||
elseif not tonumber(qID) then
|
||||
local objName = sub(self:GetText(), 3 + len(QGT_Settings.Bullet))
|
||||
if qID == "item" then
|
||||
local _, itemLink = GetItemInfo(objName)
|
||||
if itemLink then
|
||||
SetItemRef(itemLink, nil, button)
|
||||
end
|
||||
end
|
||||
-- title line
|
||||
else
|
||||
QuestLog_OpenToQuest(qID)
|
||||
|
||||
if QuestGuru_QuestLogFrame then
|
||||
QuestGuru_QuestLogFrame:Show()
|
||||
end
|
||||
end
|
||||
end
|
||||
elseif button == "RightButton" then
|
||||
if IsShiftKeyDown() then
|
||||
if qID and tonumber(qID) then
|
||||
QuestLog_SetSelection(qID, button)
|
||||
QuestLog_Update()
|
||||
ToggleDropDownMenu(1, nil, QGT_QuestWatchTitleMenu, self:GetName(), 0, 0)
|
||||
end
|
||||
else
|
||||
-- header line
|
||||
if not qID then
|
||||
local headName = self:GetText()
|
||||
if QGT_WatchHeaders[headName] then
|
||||
QGT_WatchHeaders[headName] = false
|
||||
else
|
||||
QGT_WatchHeaders[headName] = true
|
||||
end
|
||||
|
||||
WatchFrame_Update()
|
||||
-- title line
|
||||
elseif tonumber(qID) then
|
||||
local qName = GetQuestLogTitle(qID)
|
||||
|
||||
if QGT_WatchQuests[qName] then
|
||||
QGT_WatchQuests[qName] = false
|
||||
else
|
||||
QGT_WatchQuests[qName] = true
|
||||
end
|
||||
|
||||
WatchFrame_Update()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
QGT_ShowQuestTrackerSlider(true)
|
||||
end
|
||||
|
||||
local function achievementOnClick(self)
|
||||
if self.achievementID then
|
||||
if IsShiftKeyDown() then
|
||||
local ChatFrameEditBox = ChatEdit_ChooseBoxForSend()
|
||||
|
||||
if ChatFrameEditBox:IsVisible() then
|
||||
ChatFrameEditBox:Insert(GetAchievementLink(self.achievementID))
|
||||
else
|
||||
RemoveTrackedAchievement(self.achievementID)
|
||||
end
|
||||
else
|
||||
if not AchievementFrame then
|
||||
AchievementFrame_LoadUI()
|
||||
end
|
||||
|
||||
if not AchievementFrame:IsShown() then
|
||||
AchievementFrame_ToggleAchievementFrame()
|
||||
AchievementFrame_SelectAchievement(self.achievementID)
|
||||
elseif AchievementFrameAchievements.selection ~= self.achievementID then
|
||||
AchievementFrame_SelectAchievement(self.achievementID)
|
||||
else
|
||||
AchievementFrame_ToggleAchievementFrame()
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local frame1, frame2
|
||||
for i = 1, 40 do
|
||||
frame1 = _G["QGT_QuestWatchLine"..i]
|
||||
frame2 = _G["QGT_AchievementWatchLine"..i]
|
||||
|
||||
if frame1 then
|
||||
frame1:SetScript("OnClick", questOnClick)
|
||||
end
|
||||
if frame2 then
|
||||
frame2:SetScript("OnClick", achievementOnClick)
|
||||
end
|
||||
end
|
||||
|
||||
QGT_QuestWatchButton_OnClick = questOnClick
|
||||
end
|
||||
|
||||
do -- Adjustments
|
||||
local function updateQuestHeader(flag)
|
||||
if flag then
|
||||
local width = 20
|
||||
|
||||
QGT_QuestWatchQuestName:ClearAllPoints()
|
||||
QGT_QuestWatchNumQuests:ClearAllPoints()
|
||||
|
||||
if QGT_QuestWatchFrameToggle:IsShown() then
|
||||
width = width + 60
|
||||
QGT_QuestWatchNumQuests:Point("TOPRIGHT", -60, -6)
|
||||
else
|
||||
width = width + 42
|
||||
QGT_QuestWatchNumQuests:Point("TOPRIGHT", -42, -6)
|
||||
end
|
||||
|
||||
QGT_QuestWatchQuestName:Point("RIGHT", QGT_QuestWatchNumQuests, "LEFT", -12, 0)
|
||||
|
||||
-- width = width + QGT_QuestWatchQuestName:GetWidth() + QGT_QuestWatchNumQuests:GetWidth()
|
||||
width = width + QGT_QuestWatchQuestName:GetWidth() + 32
|
||||
|
||||
QGT_QuestWatchFrame.backdrop:ClearAllPoints()
|
||||
QGT_QuestWatchFrame.backdrop:Point("TOPRIGHT", 1, 1)
|
||||
QGT_QuestWatchFrame.backdrop:Point("BOTTOMLEFT", QGT_QuestWatchFrame:GetWidth() - width, 1)
|
||||
else
|
||||
QGT_QuestWatchFrame.backdrop:ClearAllPoints()
|
||||
QGT_QuestWatchFrame.backdrop:Point("TOPLEFT", -1, 1)
|
||||
QGT_QuestWatchFrame.backdrop:Point("BOTTOMRIGHT", 1, -1)
|
||||
|
||||
QGT_QuestWatchQuestName:ClearAllPoints()
|
||||
QGT_QuestWatchQuestName:Point("TOPLEFT", 8, -6)
|
||||
|
||||
QGT_QuestWatchNumQuests:ClearAllPoints()
|
||||
QGT_QuestWatchNumQuests:Point("LEFT", QGT_QuestWatchQuestName, "RIGHT", 12, 0)
|
||||
end
|
||||
end
|
||||
local function updateAchievemtHeader(flag)
|
||||
if flag then
|
||||
local width = 20
|
||||
|
||||
QGT_AchievementWatchName:ClearAllPoints()
|
||||
QGT_AchievementWatchNum:ClearAllPoints()
|
||||
|
||||
if QGT_AchievementWatchFrameToggle:IsShown() then
|
||||
width = width + 60
|
||||
QGT_AchievementWatchNum:Point("TOPRIGHT", -60, -6)
|
||||
else
|
||||
width = width + 42
|
||||
QGT_AchievementWatchNum:Point("TOPRIGHT", -42, -6)
|
||||
end
|
||||
|
||||
QGT_AchievementWatchName:Point("RIGHT", QGT_AchievementWatchNum, "LEFT", -12, 0)
|
||||
|
||||
-- width = width + QGT_AchievementWatchName:GetWidth() + QGT_AchievementWatchNum:GetWidth()
|
||||
width = width + QGT_AchievementWatchName:GetWidth() + 8
|
||||
|
||||
QGT_AchievementWatchFrame.backdrop:ClearAllPoints()
|
||||
QGT_AchievementWatchFrame.backdrop:Point("TOPRIGHT", 1, 1)
|
||||
QGT_AchievementWatchFrame.backdrop:Point("BOTTOMLEFT", QGT_AchievementWatchFrame:GetWidth() - width, 1)
|
||||
else
|
||||
QGT_AchievementWatchFrame.backdrop:ClearAllPoints()
|
||||
QGT_AchievementWatchFrame.backdrop:Point("TOPLEFT", -1, 1)
|
||||
QGT_AchievementWatchFrame.backdrop:Point("BOTTOMRIGHT", 1, -1)
|
||||
|
||||
QGT_AchievementWatchName:ClearAllPoints()
|
||||
QGT_AchievementWatchName:Point("TOPLEFT", 8, -6)
|
||||
|
||||
QGT_AchievementWatchNum:ClearAllPoints()
|
||||
QGT_AchievementWatchNum:Point("LEFT", QGT_AchievementWatchName, "RIGHT", 12, 0)
|
||||
end
|
||||
end
|
||||
|
||||
QGT_QuestWatchFrameToggle:HookScript("OnClick", function()
|
||||
updateAchievemtHeader(QGT_Settings.AchievementWatch.Minimized)
|
||||
end)
|
||||
QGT_AchievementWatchFrameToggle:HookScript("OnClick", function()
|
||||
updateQuestHeader(QGT_Settings.QuestWatch.Minimized)
|
||||
end)
|
||||
|
||||
QGT_QuestWatchFrameMinimize:HookScript("OnClick", function(self, button)
|
||||
if button == "LeftButton" then
|
||||
updateQuestHeader(QGT_Settings.QuestWatch.Minimized)
|
||||
end
|
||||
end)
|
||||
QGT_AchievementWatchFrameMinimize:HookScript("OnClick", function(self, button)
|
||||
if button == "LeftButton" then
|
||||
updateAchievemtHeader(QGT_Settings.AchievementWatch.Minimized)
|
||||
end
|
||||
end)
|
||||
|
||||
if QGT_Settings.QuestWatch.Minimized then
|
||||
updateQuestHeader(true)
|
||||
end
|
||||
if QGT_Settings.AchievementWatch.Minimized then
|
||||
updateAchievemtHeader(true)
|
||||
end
|
||||
end
|
||||
end)
|
||||
@@ -0,0 +1,140 @@
|
||||
local E, L, V, P, G = unpack(ElvUI)
|
||||
local S = E:GetModule("Skins")
|
||||
local AS = E:GetModule("AddOnSkins")
|
||||
|
||||
if not AS:IsAddonLODorEnabled("RCLootCouncil") then return end
|
||||
|
||||
-- RCLootCouncil 2.0.4
|
||||
-- https://github.com/ajseward/RcLootCouncil-Wotlk
|
||||
|
||||
S:AddCallbackForAddon("RCLootCouncil", "RCLootCouncil", function()
|
||||
if not E.private.addOnSkins.RCLootCouncil then return end
|
||||
|
||||
local addon = LibStub("AceAddon-3.0"):GetAddon("RCLootCouncil", true)
|
||||
if not addon then return end
|
||||
|
||||
AS:SkinLibrary("DropDownMenu")
|
||||
AS:SkinLibrary("LibDialog-1.0")
|
||||
AS:SkinLibrary("ScrollingTable")
|
||||
|
||||
S:RawHook(addon, "CreateFrame", function(self, ...)
|
||||
local frame = S.hooks[self].CreateFrame(self, ...)
|
||||
|
||||
frame:SetScale(UIParent:GetScale())
|
||||
frame.title:SetTemplate("Default")
|
||||
frame.content:SetTemplate("Transparent")
|
||||
|
||||
frame.title:SetFrameLevel(frame:GetFrameLevel() + 3)
|
||||
|
||||
return frame
|
||||
end)
|
||||
|
||||
S:RawHook(addon, "CreateButton", function(self, ...)
|
||||
local button = S.hooks[self].CreateButton(self, ...)
|
||||
|
||||
S:HandleButton(button)
|
||||
|
||||
return button
|
||||
end)
|
||||
|
||||
local function updateTexCoord(self)
|
||||
local normalTexture = self:GetNormalTexture()
|
||||
normalTexture:SetTexCoord(unpack(E.TexCoords))
|
||||
normalTexture:SetInside()
|
||||
end
|
||||
|
||||
local function skinIconButton(button)
|
||||
button:SetTemplate()
|
||||
button:StyleButton(nil, true, true)
|
||||
button:GetNormalTexture():SetDrawLayer("ARTWORK")
|
||||
hooksecurefunc(button, "SetNormalTexture", updateTexCoord)
|
||||
end
|
||||
|
||||
local votingFrame = addon:GetModule("RCVotingFrame", true)
|
||||
if votingFrame then
|
||||
local function moreInfoSetTexture(self, texture)
|
||||
local normalTexture = self:GetNormalTexture()
|
||||
local pushedTexture = self:GetPushedTexture()
|
||||
|
||||
local arrowDir = texture == "Interface\\Buttons\\UI-SpellbookIcon-PrevPage-Up" and "left" or "right"
|
||||
normalTexture:SetRotation(S.ArrowRotation[arrowDir])
|
||||
pushedTexture:SetRotation(S.ArrowRotation[arrowDir])
|
||||
end
|
||||
|
||||
local function setBackdropBorderColor(self, r, g, b)
|
||||
if r == 1 and g == 1 and b == 1 then
|
||||
self:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
||||
end
|
||||
end
|
||||
|
||||
S:RawHook(votingFrame, "GetFrame", function(self, ...)
|
||||
local frame = S.hooks[self].GetFrame(self, ...)
|
||||
S:Unhook(self, "GetFrame")
|
||||
|
||||
skinIconButton(frame.itemIcon)
|
||||
|
||||
S:HandleNextPrevButton(frame.moreInfoBtn, "right")
|
||||
|
||||
frame.moreInfoBtn.SetNormalTexture = moreInfoSetTexture
|
||||
frame.moreInfoBtn.SetPushedTexture = E.noop
|
||||
|
||||
E:GetModule("Tooltip"):HookScript(frame.moreInfo, "OnShow", "SetStyle")
|
||||
|
||||
frame.filter:HookScript("OnEnter", S.SetModifiedBackdrop)
|
||||
frame.filter:HookScript("OnLeave", S.SetOriginalBackdrop)
|
||||
|
||||
return frame
|
||||
end)
|
||||
|
||||
S:RawHook(votingFrame, "UpdateSessionButton", function(self, ...)
|
||||
local button = S.hooks[self].UpdateSessionButton(self, ...)
|
||||
|
||||
if not button.isSkinned then
|
||||
hooksecurefunc(button, "SetBackdropBorderColor", setBackdropBorderColor)
|
||||
skinIconButton(button)
|
||||
button.SetBackdrop = E.noop
|
||||
button.isSkinned = true
|
||||
end
|
||||
|
||||
return button
|
||||
end)
|
||||
end
|
||||
|
||||
local lootFrame = addon:GetModule("RCLootFrame", true)
|
||||
if lootFrame then
|
||||
local function updateTexCoord(self)
|
||||
self.icon:GetNormalTexture():SetTexCoord(unpack(E.TexCoords))
|
||||
end
|
||||
|
||||
S:RawHook(lootFrame, "GetEntry", function(self, ...)
|
||||
local frame = S.hooks[self].GetEntry(self, ...)
|
||||
|
||||
frame:SetTemplate("Transparent")
|
||||
skinIconButton(frame.icon)
|
||||
hooksecurefunc(frame, "Show", updateTexCoord)
|
||||
|
||||
return frame
|
||||
end)
|
||||
end
|
||||
|
||||
local sessionFrame = addon:GetModule("RCSessionFrame", true)
|
||||
if sessionFrame then
|
||||
S:RawHook(sessionFrame, "GetFrame", function(self, ...)
|
||||
local frame = S.hooks[self].GetFrame(self, ...)
|
||||
S:Unhook(self, "GetFrame")
|
||||
|
||||
S:HandleCheckBox(frame.toggle)
|
||||
|
||||
return frame
|
||||
end)
|
||||
|
||||
S:SecureHook(sessionFrame, "SetCellItemIcon", function(_, frame)
|
||||
frame:SetTemplate()
|
||||
frame:StyleButton(nil, true, true)
|
||||
local normalTexture = frame:GetNormalTexture()
|
||||
normalTexture:SetDrawLayer("ARTWORK")
|
||||
normalTexture:SetTexCoord(unpack(E.TexCoords))
|
||||
normalTexture:SetInside()
|
||||
end)
|
||||
end
|
||||
end)
|
||||
@@ -0,0 +1,87 @@
|
||||
local E, L, V, P, G = unpack(ElvUI)
|
||||
local S = E:GetModule("Skins")
|
||||
local AS = E:GetModule("AddOnSkins")
|
||||
|
||||
if not AS:IsAddonLODorEnabled("SatrinaBuffFrame") then return end
|
||||
|
||||
local _G = _G
|
||||
local ipairs = ipairs
|
||||
local unpack = unpack
|
||||
|
||||
-- SatrinaBuffFrame 3.1.20
|
||||
|
||||
S:AddCallbackForAddon("SatrinaBuffFrame", "SatrinaBuffFrame", function()
|
||||
if not E.private.addOnSkins.SatrinaBuffFrame then return end
|
||||
|
||||
local SBF = LibStub("AceAddon-3.0"):GetAddon("SBF", true)
|
||||
if not SBF then return end
|
||||
|
||||
local function skinIcon(frame)
|
||||
if frame.isSkinned then return end
|
||||
|
||||
frame.icon:SetTexCoord(unpack(E.TexCoords))
|
||||
frame.icon:CreateBackdrop("Default")
|
||||
|
||||
frame.border:Kill()
|
||||
|
||||
frame.isSkinned = true
|
||||
end
|
||||
|
||||
local function skinBar(frame)
|
||||
if frame.isSkinned then return end
|
||||
|
||||
frame:SetFrameLevel(frame:GetFrameLevel() + 1)
|
||||
frame:StripTextures()
|
||||
frame:CreateBackdrop("Transparent")
|
||||
|
||||
frame.isSkinned = true
|
||||
end
|
||||
|
||||
do
|
||||
local iconCount = 0
|
||||
local barCount = 0
|
||||
|
||||
for _, frame in ipairs(SBF.frames) do
|
||||
for _, slot in ipairs(frame.slots) do
|
||||
if slot.icon then
|
||||
skinIcon(slot.icon)
|
||||
iconCount = iconCount + 1
|
||||
end
|
||||
if slot.bar then
|
||||
skinBar(slot.bar)
|
||||
barCount = barCount + 1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local i = iconCount + 1
|
||||
local frame = _G["SBFBuffIcon"..i]
|
||||
|
||||
while frame do
|
||||
skinIcon(frame)
|
||||
i = i + 1
|
||||
frame = _G["SBFBuffIcon"..i]
|
||||
end
|
||||
|
||||
i = barCount + 1
|
||||
frame = _G["SBFBuffBar"..i]
|
||||
|
||||
while frame do
|
||||
skinBar(frame)
|
||||
i = i + 1
|
||||
frame = _G["SBFBuffBar"..i]
|
||||
end
|
||||
end
|
||||
|
||||
S:RawHook(SBF, "GetIcon", function(self)
|
||||
local element = S.hooks[SBF].GetIcon(self)
|
||||
skinIcon(element)
|
||||
return element
|
||||
end)
|
||||
|
||||
S:RawHook(SBF, "GetBar", function(self)
|
||||
local element = S.hooks[SBF].GetBar(self)
|
||||
skinBar(element)
|
||||
return element
|
||||
end)
|
||||
end)
|
||||
@@ -0,0 +1,22 @@
|
||||
local E, L, V, P, G = unpack(ElvUI)
|
||||
local S = E:GetModule("Skins")
|
||||
local AS = E:GetModule("AddOnSkins")
|
||||
|
||||
if not AS:IsAddonLODorEnabled("SlideBar") then return end
|
||||
|
||||
-- SlideBar 5.8.4723
|
||||
-- https://www.curseforge.com/wow/addons/auctionator/files/426882
|
||||
|
||||
S:AddCallbackForAddon("SlideBar", "SlideBar", function()
|
||||
if not E.private.addOnSkins.SlideBar then return end
|
||||
|
||||
local lib = LibStub("SlideBar", true)
|
||||
if not lib then return end
|
||||
|
||||
lib.frame:SetTemplate("Transparent")
|
||||
|
||||
local TT = E:GetModule("Tooltip")
|
||||
hooksecurefunc(lib, "SetTip", function(self)
|
||||
TT:SetStyle(self.tooltip)
|
||||
end)
|
||||
end)
|
||||
@@ -0,0 +1,313 @@
|
||||
local E, L, V, P, G = unpack(ElvUI)
|
||||
local S = E:GetModule("Skins")
|
||||
local AS = E:GetModule("AddOnSkins")
|
||||
|
||||
if not AS:IsAddonLODorEnabled("WIM") then return end
|
||||
|
||||
local format = string.format
|
||||
|
||||
-- WIM 3.3.7
|
||||
-- https://www.wowace.com/projects/wim-3/files/439176
|
||||
|
||||
S:AddCallbackForAddon("WIM", "WIM", function()
|
||||
if not E.private.addOnSkins.WIM then return end
|
||||
|
||||
local function formatDetails(window, guild, level, race, class)
|
||||
if guild == "" then
|
||||
return format("|cffffffff %s %s %s|r", level, race, class)
|
||||
else
|
||||
return format("|cffffffff<%s> %s %s %s|r", guild, level, race, class)
|
||||
end
|
||||
end
|
||||
|
||||
local WIM_Elvui = {
|
||||
title = "WIM ElvUI",
|
||||
version = "1.0.0",
|
||||
author = "Divico",
|
||||
website = "",
|
||||
message_window = {
|
||||
texture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\message_window",
|
||||
min_width = 256,
|
||||
min_height = 128,
|
||||
backdrop = {
|
||||
top_left = {
|
||||
width = 64,
|
||||
height = 64,
|
||||
offset = {0, 0},
|
||||
texture_coord = {0, 0, 0, .25, .25, 0, .25, .25}
|
||||
},
|
||||
top_right = {
|
||||
width = 64,
|
||||
height = 64,
|
||||
offset = {0, 0},
|
||||
texture_coord = {.75, 0, .75, .25, 1, 0, 1, .25}
|
||||
},
|
||||
bottom_left = {
|
||||
width = 64,
|
||||
height = 64,
|
||||
offset = {0, 0},
|
||||
texture_coord = {0, .75, 0, 1, .25, .75, .25, 1}
|
||||
},
|
||||
bottom_right = {
|
||||
width = 64,
|
||||
height = 64,
|
||||
offset = {0, 0},
|
||||
texture_coord = {.75, .75, .75, 1, 1, .75, 1, 1}
|
||||
},
|
||||
top = {
|
||||
tile = false,
|
||||
texture_coord = {.25, 0, .25, .25, .75, 0, .75, .25}
|
||||
},
|
||||
bottom = {
|
||||
tile = false,
|
||||
texture_coord = {.25, .75, .25, 1, .75, .75, .75, 1}
|
||||
},
|
||||
left = {
|
||||
tile = false,
|
||||
texture_coord = {0, .25, 0, .75, .25, .25, .25, .75}
|
||||
},
|
||||
right = {
|
||||
tile = false,
|
||||
texture_coord = {.75, .25, .75, .75, 1, .25, 1, .75}
|
||||
},
|
||||
background = {
|
||||
tile = false,
|
||||
texture_coord = {.25, .25, .25, .75, .75, .25, .75, .75}
|
||||
}
|
||||
},
|
||||
widgets = {
|
||||
class_icon = {
|
||||
texture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\class_icons",
|
||||
chatAlphaMask = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\chatAlphaMask",
|
||||
width = 16, -- 64
|
||||
height = 16, -- 64
|
||||
points = {
|
||||
{"TOPLEFT", "window", "TOPLEFT", 4, -4} -- "TOPLEFT", "window", "TOPLEFT", -10, 12
|
||||
},
|
||||
is_round = false, -- true
|
||||
blank = {.5, .5, .5, .75, .75, .5, .75, .75},
|
||||
druid = {0, 0, 0, .25, .25, 0, .25, .25},
|
||||
hunter = {.25, 0, .25, .25, .5, 0, .5, .25},
|
||||
mage = {.5, 0, .5, .25, .75, 0, .75, .25},
|
||||
paladin = {.75, 0, .75, .25, 1, 0, 1, .25},
|
||||
priest = {0, .25, 0, .5, .25, .25, .25, .5},
|
||||
rogue = {.25, .25, .25, .5, .5, .25, .5, .5},
|
||||
shaman = {.5, .25, .5, .5, .75, .25, .75, .5},
|
||||
warlock = {.75, .25, .75, .5, 1, .25, 1, .5},
|
||||
warrior = {0, .5, 0, .75, .25, .5, .25, .75},
|
||||
deathknight = {.75, .5, .75, .75, 1, .5, 1, .75},
|
||||
gm = {.25, .5, .25, .75, .5, .5, .5, .75}
|
||||
},
|
||||
from = {
|
||||
points = {
|
||||
{"TOPLEFT", "window", "TOPLEFT", 24, -7} -- "TOPLEFT", "window", "TOPLEFT", 50, -8
|
||||
},
|
||||
font = "FriendsFont_Normal", -- GameFontNormalLarge
|
||||
font_color = "ffffff",
|
||||
font_height = 11, -- 16
|
||||
font_flags = "",
|
||||
use_class_color = true
|
||||
},
|
||||
char_info = {
|
||||
format = formatDetails,
|
||||
points = {
|
||||
{"TOPRIGHT", "window", "TOPRIGHT", -25, -7} -- "TOP", "window", "TOP", 0, -30
|
||||
},
|
||||
font = "FriendsFont_Normal", -- GameFontNormal
|
||||
font_color = "1883d1" -- ffffff
|
||||
},
|
||||
close = {
|
||||
state_hide = {
|
||||
NormalTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\hide",
|
||||
PushedTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\hide_pushed",
|
||||
HighlightTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\button_highlight",
|
||||
HighlightAlphaMode = "ADD"
|
||||
},
|
||||
state_close = {
|
||||
NormalTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\close",
|
||||
PushedTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\close_pushed",
|
||||
HighlightTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\button_highlight",
|
||||
HighlightAlphaMode = "ADD"
|
||||
},
|
||||
width = 16, -- 32
|
||||
height = 16, -- 32
|
||||
points = {
|
||||
{"TOPRIGHT", "window", "TOPRIGHT", -4, -4} -- "TOPRIGHT", "window", "TOPRIGHT", 4, 1
|
||||
}
|
||||
},
|
||||
history = {
|
||||
NormalTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\history",
|
||||
PushedTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\history_pushed",
|
||||
HighlightTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\button_highlight",
|
||||
HighlightAlphaMode = "ADD",
|
||||
width = 16, -- 18
|
||||
height = 16, -- 18
|
||||
points = {
|
||||
{"BOTTOMRIGHT", "window", "BOTTOMRIGHT", -3, 44} -- "TOPRIGHT", "window", "TOPRIGHT", -28, -6
|
||||
}
|
||||
},
|
||||
w2w = {
|
||||
NormalTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\w2w",
|
||||
PushedTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\w2w",
|
||||
HighlightTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\w2w",
|
||||
HighlightAlphaMode = "ADD",
|
||||
points = {
|
||||
{"TOPLEFT", "class_icon", 14, -14},
|
||||
{"BOTTOMRIGHT", "class_icon", -14, 14}
|
||||
}
|
||||
},
|
||||
chat_info = {
|
||||
NormalTexture = "",
|
||||
PushedTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\w2w",
|
||||
HighlightTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\w2w",
|
||||
HighlightAlphaMode = "ADD",
|
||||
points = {
|
||||
{"TOPLEFT", "class_icon", 14, -14},
|
||||
{"BOTTOMRIGHT", "class_icon", -14, 14}
|
||||
}
|
||||
},
|
||||
chatting = {
|
||||
NormalTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\chatting",
|
||||
PushedTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\chatting",
|
||||
width = 16,
|
||||
height = 16,
|
||||
points = {
|
||||
{"TOPLEFT", "window", -3, -23} -- "TOPLEFT", "window", 45, -28
|
||||
}
|
||||
},
|
||||
scroll_up = {
|
||||
NormalTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\scroll_up",
|
||||
PushedTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\scroll_up_pushed",
|
||||
HighlightTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\button_highlight",
|
||||
DisabledTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\button_disabled",
|
||||
HighlightAlphaMode = "ADD",
|
||||
width = 16, -- 32
|
||||
height = 16, -- 32
|
||||
points = {
|
||||
{"TOPRIGHT", "window", "TOPRIGHT", -3, -23} -- "TOPRIGHT", "window", "TOPRIGHT", -4, -39
|
||||
}
|
||||
},
|
||||
scroll_down = {
|
||||
NormalTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\scroll_down",
|
||||
PushedTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\scroll_down_pushed",
|
||||
HighlightTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\button_highlight",
|
||||
DisabledTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\button_disabled",
|
||||
HighlightAlphaMode = "ADD",
|
||||
width = 16, -- 32
|
||||
height = 16, -- 32
|
||||
points = {
|
||||
{"BOTTOMRIGHT", "window", "BOTTOMRIGHT", -3, 27} -- "BOTTOMRIGHT", "window", "BOTTOMRIGHT", -4, 24
|
||||
}
|
||||
},
|
||||
chat_display = {
|
||||
points = {
|
||||
{"TOPLEFT", "window", "TOPLEFT", 4, -24}, -- "TOPLEFT", "window", "TOPLEFT", 24, -46
|
||||
{"BOTTOMRIGHT", "window", "BOTTOMRIGHT", -22, 27} -- "BOTTOMRIGHT", "window", "BOTTOMRIGHT", -38, 39
|
||||
},
|
||||
font = "FriendsFont_UserText", -- ChatFontNormal
|
||||
font_height = 12,
|
||||
font_flags = ""
|
||||
},
|
||||
msg_box = {
|
||||
font = "FriendsFont_UserText", -- ChatFontNormal
|
||||
font_height = 14,
|
||||
font_color = {1,1,1},
|
||||
points = {
|
||||
{"TOPLEFT", "window", "BOTTOMLEFT", 6, 25}, -- "TOPLEFT", "window", "BOTTOMLEFT", 24, 30
|
||||
{"BOTTOMRIGHT", "window", "BOTTOMRIGHT", -3, 1} -- "BOTTOMRIGHT", "window", "BOTTOMRIGHT", -10, 4
|
||||
}
|
||||
},
|
||||
resize = {
|
||||
NormalTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\resize",
|
||||
PushedTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\resize",
|
||||
HighlightTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\resize",
|
||||
HighlightAlphaMode = "ADD",
|
||||
width = 16, -- 25
|
||||
height = 16, -- 25
|
||||
points = {
|
||||
{"BOTTOMLEFT", "window", "BOTTOMRIGHT", -16, 0} -- "BOTTOMRIGHT", "window", "BOTTOMRIGHT", 5, -5
|
||||
}
|
||||
},
|
||||
shortcuts = {
|
||||
stack = "DOWN",
|
||||
spacing = 1, -- 2
|
||||
points = {
|
||||
{"TOPLEFT", "window", "TOPRIGHT", -19, -40}, -- "TOPLEFT", "window", "TOPRIGHT", -30, -70
|
||||
{"BOTTOMRIGHT", "window", "BOTTOMRIGHT", -3, 105} -- "BOTTOMRIGHT", "window", "BOTTOMRIGHT", -8, 55
|
||||
},
|
||||
buttons = {
|
||||
NormalTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\button_frame",
|
||||
PushedTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\button_pushed",
|
||||
HighlightTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\button_highlight",
|
||||
HighlightAlphaMode = "ADD",
|
||||
icons = {
|
||||
location = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\location",
|
||||
invite = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\invite",
|
||||
friend = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\friend",
|
||||
ignore = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\ignore"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
tab_strip = {
|
||||
textures = {
|
||||
tab = {
|
||||
NormalTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\tab_normal",
|
||||
PushedTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\tab_selected",
|
||||
HighlightTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\tab_flash",
|
||||
-- HighlightTexture = "Interface\\PaperDollInfoFrame\\UI-Character-Tab-Highlight",
|
||||
HighlightAlphaMode = "ADD"
|
||||
},
|
||||
prev = {
|
||||
NormalTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\prev",
|
||||
PushedTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\prev_pushed",
|
||||
DisabledTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\prev",
|
||||
HighlightTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\button_highlight",
|
||||
HighlightAlphaMode = "ADD",
|
||||
height = 16, -- 20
|
||||
width = 16 -- 20
|
||||
},
|
||||
next = {
|
||||
NormalTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\next",
|
||||
PushedTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\next_pushed",
|
||||
DisabledTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\next",
|
||||
HighlightTexture = "Interface\\AddOns\\ElvUI_AddOnSkins\\media\\wim\\icons\\button_highlight",
|
||||
HighlightAlphaMode = "ADD",
|
||||
height = 16, -- 20
|
||||
width = 16 -- 20
|
||||
}
|
||||
},
|
||||
height = 20, -- 26
|
||||
points = {
|
||||
{"BOTTOMLEFT", "window", "TOPLEFT", 18, 4}, -- "BOTTOMLEFT", "window", "TOPLEFT", 38, -4
|
||||
{"BOTTOMRIGHT", "window", "TOPRIGHT", -18, 4} -- "BOTTOMRIGHT", "window", "TOPRIGHT", -20, -4
|
||||
},
|
||||
text = {
|
||||
font = "SystemFont_Small", -- ChatFontNormal
|
||||
font_color = {1, 1, 1},
|
||||
font_height = 11, -- 12
|
||||
font_flags = ""
|
||||
},
|
||||
vertical = false
|
||||
}
|
||||
}
|
||||
|
||||
local function ApplySkin(self)
|
||||
self.db.skin.selected = "WIM ElvUI"
|
||||
self.RegisterSkin(WIM_Elvui)
|
||||
end
|
||||
|
||||
if WIM.db then
|
||||
ApplySkin(WIM)
|
||||
else
|
||||
hooksecurefunc(WIM, "VARIABLES_LOADED", function(self)
|
||||
ApplySkin(self)
|
||||
end)
|
||||
end
|
||||
|
||||
TutorialFrameTop.Show = E.noop
|
||||
TutorialFrameTop:Hide()
|
||||
TutorialFrameBottom.Show = E.noop
|
||||
TutorialFrameBottom:Hide()
|
||||
end)
|
||||
@@ -0,0 +1,144 @@
|
||||
local E, L, V, P, G = unpack(ElvUI)
|
||||
local S = E:GetModule("Skins")
|
||||
local AS = E:GetModule("AddOnSkins")
|
||||
|
||||
if not AS:IsAddonLODorEnabled("ZOMGBuffs") then return end
|
||||
|
||||
local pairs = pairs
|
||||
local unpack = unpack
|
||||
|
||||
-- ZOMGBuffs r156
|
||||
-- https://www.wowace.com/projects/zomgbuffs/files/424938
|
||||
|
||||
S:AddCallbackForAddon("ZOMGBuffs", "ZOMGBuffs", function()
|
||||
if not E.private.addOnSkins.ZOMGBuffs then return end
|
||||
|
||||
if ZOMGBuffsButton then
|
||||
ZOMGBuffsButton:SetNormalTexture(nil)
|
||||
ZOMGBuffsButton.SetNormalTexture = E.noop
|
||||
ZOMGBuffsButton:SetHighlightTexture(nil)
|
||||
ZOMGBuffsButton:SetPushedTexture(nil)
|
||||
else
|
||||
S:SecureHook(ZOMGBuffs, "OnStartup", function(self)
|
||||
self.icon:SetNormalTexture(nil)
|
||||
self.icon.SetNormalTexture = E.noop
|
||||
self.icon:SetHighlightTexture(nil)
|
||||
self.icon:SetPushedTexture(nil)
|
||||
|
||||
S:Unhook(ZOMGBuffs, "OnStartup")
|
||||
end)
|
||||
end
|
||||
|
||||
S:RawHook(ZOMGBuffs, "CreateHelpFrame", function(self)
|
||||
local frame = S.hooks[self].CreateHelpFrame(self)
|
||||
|
||||
frame:SetScale(E:Scale(0.9))
|
||||
frame:SetTemplate("Transparent")
|
||||
frame.close:StripTextures()
|
||||
S:HandleButton((frame:GetChildren()))
|
||||
|
||||
S:Unhook(ZOMGBuffs, "CreateHelpFrame")
|
||||
|
||||
return frame
|
||||
end, true)
|
||||
|
||||
AS:SkinLibrary("AceAddon-2.0")
|
||||
AS:SkinLibrary("Dewdrop-2.0")
|
||||
AS:SkinLibrary("Tablet-2.0")
|
||||
AS:SkinLibrary("ZFrame-1.0")
|
||||
end)
|
||||
|
||||
S:AddCallbackForAddon("ZOMGBuffs_BlessingsManager", "ZOMGBuffs_BlessingsManager", function()
|
||||
if not E.private.addOnSkins.ZOMGBuffs then return end
|
||||
|
||||
local ZBM = ZOMGBuffs:GetModule("ZOMGBlessingsManager", true)
|
||||
if not ZBM then return end
|
||||
|
||||
S:SecureHook(ZBM, "SplitInitialize", function(self)
|
||||
local frame = self.splitframe
|
||||
|
||||
S:HandleButton(frame.autoButton)
|
||||
S:HandleCheckBox(frame.useGuild)
|
||||
|
||||
for i = 1, #frame.column do
|
||||
frame.column[i]:SetTemplate("Transparent")
|
||||
S:HandleScrollBar(frame.column[i].scroll.bar)
|
||||
|
||||
for j = 1, 10 do
|
||||
frame.column[i].list[j].icon:SetTexCoord(unpack(E.TexCoords))
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
S:RawHook(ZBM, "CreateMainMainFrame", function(self)
|
||||
local frame = S.hooks[self].CreateMainMainFrame(self)
|
||||
|
||||
S:HandleButton(frame.configure)
|
||||
S:HandleButton(frame.help)
|
||||
S:HandleButton(frame.generate)
|
||||
S:HandleButton(frame.broadcast)
|
||||
S:HandleButton(frame.groups)
|
||||
S:HandleButton(frame.autoroles)
|
||||
|
||||
for _, button in pairs(frame.classTitle.cell) do
|
||||
button.highlightTex:SetTexture(1, 1, 1, 0.3)
|
||||
end
|
||||
|
||||
S:Unhook(ZOMGBlessingsManager, "CreateMainMainFrame")
|
||||
|
||||
return frame
|
||||
end)
|
||||
|
||||
local function SkinActionButton(button)
|
||||
if button.isSkinned then return end
|
||||
|
||||
button:StyleButton()
|
||||
button:SetTemplate("Default")
|
||||
button:SetNormalTexture(nil)
|
||||
button.SetNormalTexture = E.noop
|
||||
|
||||
button.icon:SetTexCoord(unpack(E.TexCoords))
|
||||
button.icon:SetInside()
|
||||
button.icon:SetDrawLayer("ARTWORK")
|
||||
|
||||
button.isSkinned = true
|
||||
end
|
||||
|
||||
S:SecureHook(ZBM, "SplitPanelColumnPopulate", function(self, col)
|
||||
if not self.expandpanel.class then return end
|
||||
|
||||
for i in pairs(col.cell) do
|
||||
SkinActionButton(col.cell[i])
|
||||
end
|
||||
end)
|
||||
|
||||
S:SecureHook(ZBM, "DrawAll", function(self)
|
||||
if not self.configuring then return end
|
||||
|
||||
local f = self.frame
|
||||
|
||||
for i = 1, #f.row do
|
||||
for j in pairs(f.row[i].cell) do
|
||||
SkinActionButton(f.row[i].cell[j])
|
||||
end
|
||||
end
|
||||
|
||||
S:Unhook(ZBM, "DrawAll")
|
||||
end)
|
||||
end)
|
||||
|
||||
S:AddCallbackForAddon("ZOMGBuffs_Log", "ZOMGBuffs_Log", function()
|
||||
if not E.private.addOnSkins.ZOMGBuffs then return end
|
||||
|
||||
local ZL = ZOMGBuffs:GetModule("ZOMGLog", true)
|
||||
if not ZL then return end
|
||||
|
||||
S:RawHook(ZL, "CreateLogFrame", function(self)
|
||||
local frame = S.hooks[self].CreateLogFrame(self)
|
||||
|
||||
S:HandleScrollBar(frame.scrollBar.slider)
|
||||
frame.scrollBar.slider:Height(24)
|
||||
|
||||
return frame
|
||||
end, true)
|
||||
end)
|
||||
@@ -0,0 +1,35 @@
|
||||
local E, L, V, P, G = unpack(ElvUI)
|
||||
local S = E:GetModule("Skins")
|
||||
local AS = E:GetModule("AddOnSkins")
|
||||
|
||||
if not AS:IsAddonLODorEnabled("_NPCScan") then return end
|
||||
|
||||
-- NPCScan 3.3.5.5
|
||||
-- https://www.curseforge.com/wow/addons/npcscan/files/441050
|
||||
|
||||
S:AddCallbackForAddon("_NPCScan", "_NPCScan", function()
|
||||
if not E.private.addOnSkins._NPCScan then return end
|
||||
|
||||
_NPCScanButton:SetScale(1)
|
||||
_NPCScanButton.SetScale = E.noop
|
||||
|
||||
_NPCScanButton:StripTextures()
|
||||
_NPCScanButton:SetTemplate("Default", true)
|
||||
|
||||
_NPCScanButton:HookScript("OnEnter", S.SetModifiedBackdrop)
|
||||
_NPCScanButton:HookScript("OnLeave", S.SetOriginalBackdrop)
|
||||
|
||||
for i = 1, _NPCScanButton:GetNumChildren() do
|
||||
local child = select(i, _NPCScanButton:GetChildren())
|
||||
if child and child:IsObjectType("Button") then
|
||||
S:HandleCloseButton(child)
|
||||
child:ClearAllPoints()
|
||||
child:Point("TOPRIGHT", _NPCScanButton, "TOPRIGHT", 4, 5)
|
||||
child:SetScale(1)
|
||||
end
|
||||
end
|
||||
|
||||
local NPCFoundText = select(4, _NPCScanButton:GetRegions())
|
||||
NPCFoundText:SetTextColor(1, 1, 1, 1)
|
||||
NPCFoundText:SetShadowOffset(1, -1)
|
||||
end)
|
||||
@@ -0,0 +1,35 @@
|
||||
local E, L, V, P, G = unpack(ElvUI)
|
||||
local S = E:GetModule("Skins")
|
||||
local AS = E:GetModule("AddOnSkins")
|
||||
|
||||
if not AS:IsAddonLODorEnabled("_NPCScan.Overlay") then return end
|
||||
|
||||
-- NPCScan Overlay 3.3.5.1
|
||||
-- https://www.curseforge.com/wow/addons/npcscan-overlay/files/434851
|
||||
|
||||
S:AddCallbackForAddon("_NPCScan.Overlay", "_NPCScan.Overlay", function()
|
||||
if not E.private.addOnSkins._NPCScanOverlay then return end
|
||||
|
||||
S:HandleCheckBox(_NPCScanOverlayWorldMapToggle)
|
||||
_NPCScanOverlayWorldMapToggle:Size(24)
|
||||
|
||||
local worldMapKey = _NPCScan.Overlay.Modules.List.WorldMap.KeyParent.Key
|
||||
|
||||
worldMapKey:SetTemplate("Transparent")
|
||||
worldMapKey.Body:SetBackdrop(nil)
|
||||
worldMapKey.Body:DisableDrawLayer("BORDER")
|
||||
|
||||
local bottomPoint
|
||||
worldMapKey:SetScript("OnEnter", function(self)
|
||||
bottomPoint = not bottomPoint
|
||||
self:ClearAllPoints()
|
||||
if bottomPoint then
|
||||
self:Point("BOTTOMRIGHT", 1, -1)
|
||||
else
|
||||
self:Point("TOPRIGHT", 1, 1)
|
||||
end
|
||||
end)
|
||||
|
||||
worldMapKey:ClearAllPoints()
|
||||
worldMapKey:Point("TOPRIGHT", 1, 1)
|
||||
end)
|
||||
@@ -0,0 +1,90 @@
|
||||
local E, L, V, P, G = unpack(ElvUI)
|
||||
local S = E:GetModule("Skins")
|
||||
local AS = E:GetModule("AddOnSkins")
|
||||
|
||||
if not AS:IsAddonLODorEnabled("ACP") then return end
|
||||
|
||||
local _G = _G
|
||||
|
||||
-- Addon Control Panel 3.3.7
|
||||
-- https://www.curseforge.com/wow/addons/acp/files/453071
|
||||
|
||||
S:AddCallbackForAddon("ACP", "ACP", function()
|
||||
if not E.private.addOnSkins.ACP then return end
|
||||
|
||||
S:HandleButton(GameMenuButtonAddOns)
|
||||
|
||||
ACP_AddonList:SetParent(UIParent)
|
||||
ACP_AddonList:SetFrameStrata("HIGH")
|
||||
ACP_AddonList:SetHitRectInsets(0, 0, 0, 0)
|
||||
|
||||
ACP_AddonList:StripTextures()
|
||||
ACP_AddonList:SetTemplate("Transparent")
|
||||
ACP_AddonList:Size(580, 488)
|
||||
|
||||
S:HandleCloseButton(ACP_AddonListCloseButton, ACP_AddonList)
|
||||
|
||||
S:HandleDropDownBox(ACP_AddonListSortDropDown, 145)
|
||||
ACP_AddonListSortDropDown:Point("TOPLEFT", 50, -5)
|
||||
|
||||
ACP_AddonListCollapseAll:Point("TOPLEFT", 12, -17)
|
||||
ACP_AddonListEntry1:Point("TOPLEFT", 29, -44)
|
||||
|
||||
ACP_AddonList_ScrollFrame:StripTextures()
|
||||
ACP_AddonList_ScrollFrame:SetTemplate("Transparent")
|
||||
ACP_AddonList_ScrollFrame:Size(543, 414)
|
||||
ACP_AddonList_ScrollFrame:Point("TOPLEFT", 8, -35)
|
||||
|
||||
S:HandleScrollBar(ACP_AddonList_ScrollFrameScrollBar)
|
||||
ACP_AddonList_ScrollFrameScrollBar:Point("TOPLEFT", ACP_AddonList_ScrollFrame, "TOPRIGHT", 3, -19)
|
||||
ACP_AddonList_ScrollFrameScrollBar:Point("BOTTOMLEFT", ACP_AddonList_ScrollFrame, "BOTTOMRIGHT", 3, 19)
|
||||
|
||||
S:HandleButton(ACP_AddonListSetButton)
|
||||
S:HandleButton(ACP_AddonListDisableAll)
|
||||
S:HandleButton(ACP_AddonListEnableAll)
|
||||
S:HandleButton(ACP_AddonList_ReloadUI)
|
||||
S:HandleButton(ACP_AddonListBottomClose)
|
||||
|
||||
S:HandleCheckBox(ACP_AddonList_NoRecurse)
|
||||
|
||||
ACP_AddonListSetButton:Point("BOTTOMLEFT", 8, 8)
|
||||
ACP_AddonListDisableAll:Point("BOTTOMLEFT", 78, 8)
|
||||
ACP_AddonListEnableAll:Point("BOTTOMLEFT", 163, 8)
|
||||
ACP_AddonList_ReloadUI:Point("BOTTOMRIGHT", -121, 8)
|
||||
ACP_AddonListBottomClose:Point("BOTTOMRIGHT", -8, 8)
|
||||
|
||||
local function collapseSetTexture(self, texture)
|
||||
if texture == "Interface\\Minimap\\UI-Minimap-ZoomInButton-Up" then
|
||||
self:_SetTexture(E.Media.Textures.Plus)
|
||||
else
|
||||
self:_SetTexture(E.Media.Textures.Minus)
|
||||
end
|
||||
end
|
||||
|
||||
local function skinCollapseIcon(frame)
|
||||
frame:SetTexture(E.Media.Textures.Minus)
|
||||
|
||||
frame._SetTexture = frame.SetTexture
|
||||
frame.SetTexture = collapseSetTexture
|
||||
end
|
||||
|
||||
local function updateCheckboxSize(self, size)
|
||||
if size == 32 then
|
||||
self:Size(24)
|
||||
else
|
||||
self:Size(20)
|
||||
end
|
||||
end
|
||||
|
||||
skinCollapseIcon(ACP_AddonListCollapseAllIcon)
|
||||
|
||||
for i = 1, 20 do
|
||||
local checkbox = _G["ACP_AddonListEntry" .. i.. "Enabled"]
|
||||
S:HandleCheckBox(checkbox)
|
||||
checkbox.SetHeight = updateCheckboxSize
|
||||
|
||||
skinCollapseIcon(_G["ACP_AddonListEntry" .. i.. "CollapseIcon"])
|
||||
|
||||
S:HandleButton(_G["ACP_AddonListEntry" .. i .. "LoadNow"])
|
||||
end
|
||||
end)
|
||||
@@ -0,0 +1,365 @@
|
||||
local E, L, V, P, G = unpack(ElvUI)
|
||||
local S = E:GetModule("Skins")
|
||||
local AS = E:GetModule("AddOnSkins")
|
||||
|
||||
if not AS:IsAddonLODorEnabled("AckisRecipeList") then return end
|
||||
|
||||
local ipairs, select, unpack = ipairs, select, unpack
|
||||
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
-- AckisRecipeList 2.01.14
|
||||
-- https://www.curseforge.com/wow/addons/arl/files/458020
|
||||
|
||||
S:AddCallbackForAddon("AckisRecipeList", "AckisRecipeList", function()
|
||||
if not E.private.addOnSkins.AckisRecipeList then return end
|
||||
|
||||
local addon = LibStub("AceAddon-3.0"):GetAddon("Ackis Recipe List", true)
|
||||
if not addon then return end
|
||||
|
||||
local function HandleScrollBar(frame)
|
||||
local UpButton, DownButton = frame:GetChildren()
|
||||
|
||||
S:HandleNextPrevButton(UpButton, "up")
|
||||
UpButton:Size(20, 18)
|
||||
|
||||
S:HandleNextPrevButton(DownButton)
|
||||
DownButton:Size(20, 18)
|
||||
|
||||
frame.trackbg = CreateFrame("Frame", nil, frame)
|
||||
frame.trackbg:Point("TOPLEFT", UpButton, "BOTTOMLEFT", 0, -1)
|
||||
frame.trackbg:Point("BOTTOMRIGHT", DownButton, "TOPRIGHT", 0, 1)
|
||||
frame.trackbg:SetTemplate()
|
||||
|
||||
frame:GetThumbTexture():SetAlpha(0)
|
||||
|
||||
frame.thumbbg = CreateFrame("Frame", nil, frame)
|
||||
frame.thumbbg:Point("TOPLEFT", frame:GetThumbTexture(), "TOPLEFT", 8, -7)
|
||||
frame.thumbbg:Point("BOTTOMRIGHT", frame:GetThumbTexture(), "BOTTOMRIGHT", -8, 7)
|
||||
frame.thumbbg:SetTemplate("Default", true, true)
|
||||
frame.thumbbg:SetBackdropColor(0.6, 0.6, 0.6)
|
||||
frame.thumbbg:SetFrameLevel(frame.trackbg:GetFrameLevel() + 1)
|
||||
end
|
||||
|
||||
local function SkinButton(button, strip)
|
||||
S:HandleButton(button, strip)
|
||||
|
||||
button.SetNormalTexture = E.noop
|
||||
button.SetHighlightTexture = E.noop
|
||||
button.SetPushedTexture = E.noop
|
||||
button.SetDisabledTexture = E.noop
|
||||
end
|
||||
|
||||
local function ChangeTexture(texture)
|
||||
texture:SetInside()
|
||||
texture:SetTexCoord(0.22, 0.78, 0.22, 0.78)
|
||||
end
|
||||
|
||||
local function ExpansionButton(button)
|
||||
button:GetRegions():SetDesaturated(true)
|
||||
|
||||
button:GetPushedTexture():SetTexture(nil)
|
||||
button:GetHighlightTexture():SetTexture(nil)
|
||||
button:GetCheckedTexture():SetTexture(nil)
|
||||
|
||||
hooksecurefunc(button, "SetChecked", function(self, state)
|
||||
self:GetRegions():SetDesaturated(state)
|
||||
end)
|
||||
end
|
||||
|
||||
S:HandleButton(addon.scan_button)
|
||||
|
||||
hooksecurefunc(addon, "TRADE_SKILL_SHOW", function(self)
|
||||
if self.scan_button:GetParent() == TradeSkillFrame then
|
||||
self.scan_button:SetFrameLevel(TradeSkillFrame:GetFrameLevel() + 10)
|
||||
end
|
||||
end)
|
||||
|
||||
S:SecureHook(addon, "Scan", function(self)
|
||||
S:Unhook(self, "Scan")
|
||||
|
||||
local ARL_MainPanel = ARL_MainPanel
|
||||
|
||||
ARL_MainPanel:StripTextures()
|
||||
ARL_MainPanel:CreateBackdrop("Transparent")
|
||||
ARL_MainPanel.backdrop:Point("TOPLEFT", 11, -12)
|
||||
ARL_MainPanel.backdrop:Point("BOTTOMRIGHT", -32, 76)
|
||||
|
||||
S:SetBackdropHitRect(ARL_MainPanel, ARL_MainPanel.backdrop, true)
|
||||
|
||||
hooksecurefunc(ARL_MainPanel, "ToggleState", function(self)
|
||||
if self.is_expanded then
|
||||
self.backdrop:Point("BOTTOMRIGHT", -87, 76)
|
||||
S:SetBackdropHitRect(self, self.backdrop, true)
|
||||
else
|
||||
self.backdrop:Point("BOTTOMRIGHT", -32, 76)
|
||||
S:SetBackdropHitRect(self, self.backdrop, true)
|
||||
end
|
||||
end)
|
||||
|
||||
S:HandleCloseButton(ARL_MainPanel.xclose_button, ARL_MainPanel.backdrop)
|
||||
|
||||
ARL_MainPanel.title_bar:Hide()
|
||||
|
||||
ARL_MainPanel.top_left:Hide()
|
||||
ARL_MainPanel.top_right:Hide()
|
||||
ARL_MainPanel.bottom_left:Hide()
|
||||
ARL_MainPanel.bottom_right:Hide()
|
||||
|
||||
ARL_MainPanel.top_left.Show = E.noop
|
||||
ARL_MainPanel.top_right.Show = E.noop
|
||||
ARL_MainPanel.bottom_left.Show = E.noop
|
||||
ARL_MainPanel.bottom_right.Show = E.noop
|
||||
|
||||
ARL_MainPanel.prof_button:SetTemplate()
|
||||
ARL_MainPanel.prof_button:Size(32)
|
||||
ARL_MainPanel.prof_button:Point("TOPLEFT", 19, -20)
|
||||
|
||||
local prof_buttonHighlight = ARL_MainPanel.prof_button:GetHighlightTexture()
|
||||
prof_buttonHighlight:SetInside()
|
||||
prof_buttonHighlight:SetTexture(1, 1, 1, 0.3)
|
||||
prof_buttonHighlight:SetTexture()
|
||||
|
||||
ChangeTexture(ARL_MainPanel.prof_button._normal)
|
||||
ChangeTexture(ARL_MainPanel.prof_button._pushed)
|
||||
ChangeTexture(ARL_MainPanel.prof_button._disabled)
|
||||
|
||||
hooksecurefunc(ARL_MainPanel.prof_button, "ChangeTexture", function(self)
|
||||
ChangeTexture(self._normal)
|
||||
ChangeTexture(self._pushed)
|
||||
ChangeTexture(self._disabled)
|
||||
end)
|
||||
|
||||
S:HandleEditBox(ARL_MainPanel.search_editbox)
|
||||
ARL_MainPanel.search_editbox.backdrop:Point("TOPLEFT", -2, 0)
|
||||
ARL_MainPanel.search_editbox:Point("TOPLEFT", ARL_MainPanel, "TOPLEFT", 90, -50)
|
||||
ARL_MainPanel.search_editbox:DisableDrawLayer("BACKGROUND")
|
||||
ARL_MainPanel.search_editbox:Size(140, 17)
|
||||
|
||||
for i = 1, ARL_MainPanel:GetNumChildren() do
|
||||
local child = select(i, ARL_MainPanel:GetChildren())
|
||||
if child and child:IsObjectType("CheckButton") and child.text then
|
||||
-- SkillToggle
|
||||
S:HandleCheckBox(child, true)
|
||||
child:Size(14)
|
||||
child:Point("TOPLEFT", ARL_MainPanel.search_editbox, "TOPRIGHT", -142, 34)
|
||||
child.text:Point("LEFT", child, "RIGHT", 3, 0)
|
||||
|
||||
local excludeToggle = select(i + 1, ARL_MainPanel:GetChildren())
|
||||
S:HandleCheckBox(excludeToggle, true)
|
||||
excludeToggle:Size(14)
|
||||
excludeToggle:Point("TOP", child, "BOTTOM", 0, -3)
|
||||
excludeToggle.text:Point("LEFT", excludeToggle, "RIGHT", 3, 0)
|
||||
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
select(2, ARL_MainPanel.expand_button:GetPoint()):GetParent():Hide()
|
||||
S:HandleCollapseExpandButton(ARL_MainPanel.expand_button, "+")
|
||||
ARL_MainPanel.expand_button:ClearAllPoints()
|
||||
ARL_MainPanel.expand_button:Point("BOTTOMRIGHT", ARL_MainPanel.search_editbox, "BOTTOMLEFT", -53, -2)
|
||||
|
||||
ARL_MainPanel.list_frame:SetBackdrop(nil)
|
||||
ARL_MainPanel.list_frame:CreateBackdrop("Transparent")
|
||||
ARL_MainPanel.list_frame.backdrop:Point("TOPLEFT", -2, 2)
|
||||
ARL_MainPanel.list_frame.backdrop:Point("BOTTOMRIGHT", 5, 5)
|
||||
ARL_MainPanel.list_frame:Point("TOPLEFT", ARL_MainPanel, "TOPLEFT", 21, -73)
|
||||
|
||||
HandleScrollBar(ARL_MainPanel.list_frame.scroll_bar)
|
||||
ARL_MainPanel.list_frame.scroll_bar:Point("TOPLEFT", ARL_MainPanel.list_frame, "TOPRIGHT", 6, -12)
|
||||
ARL_MainPanel.list_frame.scroll_bar:Point("BOTTOMLEFT", ARL_MainPanel.list_frame, "BOTTOMRIGHT", 6, 19)
|
||||
ARL_MainPanel.list_frame.scroll_bar.Hide = E.noop
|
||||
ARL_MainPanel.list_frame.scroll_bar:Show()
|
||||
|
||||
for i = 1, 25 do
|
||||
S:HandleCollapseExpandButton(ARL_MainPanel.list_frame.state_buttons[i], "+")
|
||||
S:HandleButtonHighlight(ARL_MainPanel.list_frame.entry_buttons[i])
|
||||
end
|
||||
|
||||
S:HandleNextPrevButton(ARL_MainPanel.sort_button, "down", nil, true)
|
||||
ARL_MainPanel.sort_button:Size(22)
|
||||
ARL_MainPanel.sort_button:ClearAllPoints()
|
||||
ARL_MainPanel.sort_button:Point("LEFT", ARL_MainPanel.expand_button, "RIGHT", 20, 0)
|
||||
|
||||
ARL_MainPanel.sort_button.SetTextures = function(self)
|
||||
local normal, pushed = self:GetNormalTexture(), self:GetPushedTexture()
|
||||
|
||||
if addon.db.profile.sorting == "Ascending" then
|
||||
normal:SetRotation(3.14)
|
||||
pushed:SetRotation(3.14)
|
||||
else
|
||||
normal:SetRotation(0)
|
||||
pushed:SetRotation(0)
|
||||
end
|
||||
end
|
||||
|
||||
ARL_MainPanel.progress_bar:StripTextures()
|
||||
ARL_MainPanel.progress_bar:CreateBackdrop()
|
||||
ARL_MainPanel.progress_bar:Size(209, 20)
|
||||
ARL_MainPanel.progress_bar:Point("BOTTOMLEFT", ARL_MainPanel, 20, 85)
|
||||
ARL_MainPanel.progress_bar:SetStatusBarTexture(E.media.normTex)
|
||||
ARL_MainPanel.progress_bar:SetStatusBarColor(0.22, 0.39, 0.84)
|
||||
E:RegisterStatusBar(ARL_MainPanel.progress_bar)
|
||||
|
||||
ARL_MainPanel.close_button:Height(22)
|
||||
ARL_MainPanel.close_button:Point("LEFT", ARL_MainPanel.progress_bar, "RIGHT", 4, 0)
|
||||
SkinButton(ARL_MainPanel.close_button, true)
|
||||
|
||||
for i, tab in ipairs(ARL_MainPanel.tabs) do
|
||||
tab:StripTextures()
|
||||
tab.left.SetTexture = E.noop
|
||||
tab.middle.SetTexture = E.noop
|
||||
tab.right.SetTexture = E.noop
|
||||
|
||||
tab:CreateBackdrop()
|
||||
tab.backdrop:Point("TOPLEFT", 10, E.PixelMode and -1 or -3)
|
||||
tab.backdrop:Point("BOTTOMRIGHT", -10, 3)
|
||||
|
||||
tab:SetHitRectInsets(10, 10, E.PixelMode and 1 or 3, 3)
|
||||
|
||||
if i == 1 then
|
||||
tab:Point("TOPLEFT", ARL_MainPanel, "BOTTOMLEFT", 11, 78)
|
||||
else
|
||||
tab:Point("LEFT", ARL_MainPanel.tabs[i-1], "RIGHT", -15, 0)
|
||||
end
|
||||
end
|
||||
|
||||
if not (TipTac and TipTac.AddModifiedTip) then
|
||||
E:GetModule("Tooltip"):SecureHookScript(AckisRecipeList_SpellTooltip, "OnShow", "SetStyle")
|
||||
AS:SkinLibrary("LibQTip-1.0")
|
||||
end
|
||||
|
||||
S:HandleNextPrevButton(ARL_MainPanel.filter_toggle, "right", nil, true)
|
||||
ARL_MainPanel.filter_toggle:Point("TOPLEFT", ARL_MainPanel, "TOPLEFT", 324, -39)
|
||||
ARL_MainPanel.filter_toggle:Size(28)
|
||||
|
||||
ARL_MainPanel.filter_toggle.SetTextures = function(self)
|
||||
local normal, pushed = self:GetNormalTexture(), self:GetPushedTexture()
|
||||
if ARL_MainPanel.is_expanded then
|
||||
normal:SetRotation(1.57)
|
||||
pushed:SetRotation(1.57)
|
||||
else
|
||||
normal:SetRotation(-1.57)
|
||||
pushed:SetRotation(-1.57)
|
||||
end
|
||||
|
||||
self:HookScript("OnEnter", function()
|
||||
normal:SetVertexColor(unpack(E.media.rgbvaluecolor))
|
||||
end)
|
||||
self:HookScript("OnLeave", function()
|
||||
normal:SetVertexColor(1, 1, 1)
|
||||
end)
|
||||
end
|
||||
|
||||
ARL_MainPanel.filter_toggle:HookScript("OnClick", function(self)
|
||||
if self.isFrameSkinned then return end
|
||||
self.isFrameSkinned = true
|
||||
|
||||
ARL_MainPanel.filter_menu:SetTemplate("Transparent")
|
||||
ARL_MainPanel.filter_menu:Size(326, 332)
|
||||
ARL_MainPanel.filter_menu:Point("TOPRIGHT", ARL_MainPanel, "TOPRIGHT", -95, -71)
|
||||
|
||||
ARL_MainPanel.filter_reset:Point("BOTTOMRIGHT", ARL_MainPanel, "BOTTOMRIGHT", -95, 84)
|
||||
SkinButton(ARL_MainPanel.filter_reset, true)
|
||||
|
||||
local menuIcons = {
|
||||
"menu_toggle_general",
|
||||
"menu_toggle_obtain",
|
||||
"menu_toggle_binding",
|
||||
"menu_toggle_item",
|
||||
"menu_toggle_quality",
|
||||
"menu_toggle_player",
|
||||
"menu_toggle_rep",
|
||||
"menu_toggle_misc"
|
||||
}
|
||||
|
||||
for i, menuIcon in ipairs(menuIcons) do
|
||||
local iconEntry = ARL_MainPanel[menuIcon]
|
||||
|
||||
if i == 1 then
|
||||
iconEntry:Point("LEFT", ARL_MainPanel.filter_toggle, "RIGHT", 17, 0)
|
||||
end
|
||||
|
||||
iconEntry:SetTemplate()
|
||||
iconEntry:StyleButton()
|
||||
iconEntry:DisableDrawLayer("BACKGROUND")
|
||||
|
||||
local region = select(2, iconEntry:GetRegions())
|
||||
region:SetInside()
|
||||
region:SetTexCoord(unpack(E.TexCoords))
|
||||
end
|
||||
|
||||
local filterMenus = {
|
||||
"general",
|
||||
"obtain",
|
||||
"binding",
|
||||
"item",
|
||||
"quality",
|
||||
"player",
|
||||
"rep",
|
||||
"misc"
|
||||
}
|
||||
|
||||
for _, menu in ipairs(filterMenus) do
|
||||
local menuEntry = ARL_MainPanel.filter_menu[menu]
|
||||
|
||||
if menu == "misc" then
|
||||
for i = 1, menuEntry:GetNumChildren() do
|
||||
local child = select(i, menuEntry:GetChildren())
|
||||
|
||||
if child and child:IsObjectType("Button") then
|
||||
S:HandleNextPrevButton(child)
|
||||
select(2, child:GetPoint()):SetTextColor(1, 1, 1)
|
||||
end
|
||||
end
|
||||
elseif menu == "rep" then
|
||||
for expNum = 0, 2 do
|
||||
for i = 1, menuEntry["expansion"..expNum]:GetNumChildren() do
|
||||
local child = select(i, menuEntry["expansion"..expNum]:GetChildren())
|
||||
|
||||
if child and (child:IsObjectType("Button") and child.text and not child:IsObjectType("CheckButton")) then
|
||||
child:StripTextures()
|
||||
child.text:SetTextColor(1, 0.8, 0.1)
|
||||
elseif child and child:IsObjectType("CheckButton") and child.text then
|
||||
S:HandleCheckBox(child)
|
||||
child.text:SetTextColor(1, 1, 1)
|
||||
end
|
||||
end
|
||||
end
|
||||
else
|
||||
for i = 1, menuEntry:GetNumChildren() do
|
||||
local child = select(i, menuEntry:GetChildren())
|
||||
|
||||
if child and (child:IsObjectType("Button") and child.text and not child:IsObjectType("CheckButton")) then
|
||||
child:StripTextures()
|
||||
child.text:SetTextColor(1, 0.8, 0.1)
|
||||
elseif child and child:IsObjectType("CheckButton") and child.text then
|
||||
S:HandleCheckBox(child)
|
||||
child.text:SetTextColor(1, 1, 1)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
ExpansionButton(ARL_MainPanel.filter_menu.rep.toggle_expansion0)
|
||||
ExpansionButton(ARL_MainPanel.filter_menu.rep.toggle_expansion1)
|
||||
ExpansionButton(ARL_MainPanel.filter_menu.rep.toggle_expansion2)
|
||||
end)
|
||||
end)
|
||||
|
||||
ARLCopyFrame:StripTextures()
|
||||
ARLCopyFrame:SetTemplate("Transparent")
|
||||
|
||||
S:HandleScrollBar(ARLCopyScrollScrollBar)
|
||||
|
||||
for i = 1, ARLCopyFrame:GetNumChildren() do
|
||||
local child = select(i, ARLCopyFrame:GetChildren())
|
||||
if child and child:IsObjectType("Button") then
|
||||
child:ClearAllPoints()
|
||||
child:Point("TOPRIGHT", ARLCopyFrame, "TOPRIGHT", 1, 0)
|
||||
S:HandleCloseButton(child)
|
||||
break
|
||||
end
|
||||
end
|
||||
end)
|
||||
@@ -0,0 +1,201 @@
|
||||
local E, L, V, P, G = unpack(ElvUI)
|
||||
local S = E:GetModule("Skins")
|
||||
local AS = E:GetModule("AddOnSkins")
|
||||
|
||||
if not AS:IsAddonLODorEnabled("AdiBags") then return end
|
||||
|
||||
local _G = _G
|
||||
local ipairs = ipairs
|
||||
local type = type
|
||||
local unpack = unpack
|
||||
|
||||
local GetItemInfo = GetItemInfo
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
local ITEM_QUALITY_POOR = ITEM_QUALITY_POOR
|
||||
local ITEM_QUALITY_UNCOMMON = ITEM_QUALITY_UNCOMMON
|
||||
local TEXTURE_ITEM_QUEST_BANG = TEXTURE_ITEM_QUEST_BANG
|
||||
local TEXTURE_ITEM_QUEST_BORDER = TEXTURE_ITEM_QUEST_BORDER
|
||||
|
||||
-- AdiBags 1.1 beta 7
|
||||
-- https://www.curseforge.com/wow/addons/adibags/files/452440
|
||||
|
||||
S:AddCallbackForAddon("AdiBags", "AdiBags", function()
|
||||
if not E.private.addOnSkins.AdiBags then return end
|
||||
|
||||
local AdiBags = LibStub("AceAddon-3.0"):GetAddon("AdiBags", true)
|
||||
if not AdiBags then return end
|
||||
|
||||
hooksecurefunc(AdiBags, "ResetBagPositions", function(self)
|
||||
self.db.profile.scale = 1
|
||||
self:LayoutBags()
|
||||
end)
|
||||
|
||||
local function SkinContainer(frame)
|
||||
frame:SetTemplate("Transparent")
|
||||
S:HandleCloseButton(frame.CloseButton)
|
||||
|
||||
local bagSlots = frame.HeaderLeftRegion.widgets[1].widget
|
||||
bagSlots:SetTemplate()
|
||||
bagSlots:StyleButton(nil, true)
|
||||
|
||||
local bagSlotsTex = bagSlots:GetNormalTexture()
|
||||
bagSlotsTex:SetInside()
|
||||
bagSlotsTex:SetTexCoord(unpack(E.TexCoords))
|
||||
|
||||
frame.BagSlotPanel:SetTemplate("Transparent")
|
||||
|
||||
for _, bag in ipairs(frame.BagSlotPanel.buttons) do
|
||||
bag:StripTextures()
|
||||
bag:SetTemplate()
|
||||
bag:StyleButton()
|
||||
|
||||
local icon = _G[bag:GetName().."IconTexture"]
|
||||
icon:SetInside()
|
||||
icon:SetTexCoord(unpack(E.TexCoords))
|
||||
end
|
||||
end
|
||||
|
||||
S:RawHook(AdiBags, "CreateContainerFrame", function(self, ...)
|
||||
local frame = S.hooks[self].CreateContainerFrame(self, ...)
|
||||
|
||||
SkinContainer(frame)
|
||||
|
||||
return frame
|
||||
end)
|
||||
|
||||
local qualityColors = {
|
||||
["questStarter"] = {E.db.bags.colors.items.questStarter.r, E.db.bags.colors.items.questStarter.g, E.db.bags.colors.items.questStarter.b},
|
||||
["questItem"] = {E.db.bags.colors.items.questItem.r, E.db.bags.colors.items.questItem.g, E.db.bags.colors.items.questItem.b}
|
||||
}
|
||||
for i = 0, 7 do
|
||||
qualityColors[i] = {GetItemQualityColor(i)}
|
||||
end
|
||||
|
||||
local LayeredRegionClass = AdiBags:GetClass("LayeredRegion")
|
||||
hooksecurefunc(LayeredRegionClass.prototype, "AddWidget", function(self, widget)
|
||||
if widget:IsObjectType("Button") then
|
||||
if widget:GetText() then
|
||||
S:HandleButton(widget)
|
||||
else
|
||||
widget:StyleButton(true, true)
|
||||
widget:GetNormalTexture():SetTexCoord(unpack(E.TexCoords))
|
||||
widget:GetCheckedTexture():SetTexCoord(unpack(E.TexCoords))
|
||||
end
|
||||
elseif widget.editBox and widget.editBox.clearButton then
|
||||
widget.editBox:DisableDrawLayer("BACKGROUND")
|
||||
S:HandleEditBox(widget.editBox)
|
||||
|
||||
S:HandleButton(widget.editBox.clearButton)
|
||||
end
|
||||
end)
|
||||
|
||||
local function updateBorderTexture(self, texture, g, b)
|
||||
if texture == TEXTURE_ITEM_QUEST_BANG then
|
||||
self:SetAlpha(1)
|
||||
self.parent:SetBackdropBorderColor(unpack(qualityColors.questStarter))
|
||||
self.parent._itemQuality = "questStarter"
|
||||
else
|
||||
self:SetAlpha(0)
|
||||
|
||||
if texture == TEXTURE_ITEM_QUEST_BORDER then
|
||||
self.parent:SetBackdropBorderColor(unpack(qualityColors.questItem))
|
||||
self.parent._itemQuality = "questItem"
|
||||
elseif texture == "Interface\\Buttons\\UI-ActionButton-Border" then
|
||||
-- await for vertex color
|
||||
self.awaitColor = true
|
||||
|
||||
local _, _, quality = GetItemInfo(self.parent.itemId)
|
||||
if quality and quality >= ITEM_QUALITY_UNCOMMON then
|
||||
self.parent._itemQuality = quality
|
||||
elseif quality == ITEM_QUALITY_POOR and AdiBags.db.profile.dimJunk then
|
||||
self.parent._itemQuality = 1 - 0.5 * AdiBags.db.profile.qualityOpacity
|
||||
end
|
||||
|
||||
return
|
||||
elseif type(texture) == "number" then
|
||||
self.parent._itemQuality = 1
|
||||
self.parent:SetBackdropBorderColor(texture, g, b)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function updateBorderVertexColor(self, r, g, b)
|
||||
if not self.awaitColor then return end
|
||||
|
||||
self.parent:SetBackdropBorderColor(r, g, b)
|
||||
self.awaitColor = nil
|
||||
end
|
||||
|
||||
local function updateDimJunk(self, mode)
|
||||
if mode == "MOD" and AdiBags.db.profile.dimJunk then
|
||||
local alpha = 1 - 0.5 * AdiBags.db.profile.qualityOpacity
|
||||
self.parent.IconTexture:SetVertexColor(1, 1, 1, alpha)
|
||||
self._dimmed = true
|
||||
elseif self.dimmed then
|
||||
self.parent.IconTexture:SetVertexColor(1, 1, 1, 1)
|
||||
self._dimmed = nil
|
||||
end
|
||||
end
|
||||
|
||||
local function updateBorderOnHide(self)
|
||||
if not self._searchMode then
|
||||
if self._restoreBorder then
|
||||
local color = qualityColors[self.parent._itemQuality]
|
||||
self.parent:SetBackdropBorderColor(color[1], color[2], color[3], 1)
|
||||
self._restoreBorder = nil
|
||||
end
|
||||
|
||||
self.parent:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
||||
self.parent.IconTexture:SetVertexColor(1, 1, 1, 1)
|
||||
elseif self.parent._itemQuality then
|
||||
self._restoreBorder = true
|
||||
|
||||
local color = qualityColors[self.parent._itemQuality]
|
||||
if color then
|
||||
self.parent:SetBackdropBorderColor(color[1], color[2], color[3], 0.2)
|
||||
else
|
||||
color = self.parent._itemQuality
|
||||
self.parent:SetBackdropBorderColor(color, color, color, 0.2)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local ItemButtonClass = AdiBags:GetClass("ItemButton")
|
||||
hooksecurefunc(ItemButtonClass.prototype, "OnCreate", function(self)
|
||||
self.NormalTexture:SetTexture(nil)
|
||||
self:SetTemplate("Default", true)
|
||||
self:StyleButton()
|
||||
|
||||
self.IconTexture:SetInside()
|
||||
self.IconTexture:SetTexCoord(unpack(E.TexCoords))
|
||||
self.IconTexture.SetTexCoord = E.noop
|
||||
|
||||
self.IconQuestTexture:SetInside()
|
||||
self.IconQuestTexture:SetTexture(E.Media.Textures.BagQuestIcon)
|
||||
self.IconQuestTexture:SetTexCoord(unpack(E.TexCoords))
|
||||
self.IconQuestTexture.SetTexCoord = E.noop
|
||||
self.IconQuestTexture.parent = self
|
||||
self.IconQuestTexture.SetTexture = updateBorderTexture
|
||||
self.IconQuestTexture.SetVertexColor = updateBorderVertexColor
|
||||
self.IconQuestTexture.SetBlendMode = updateDimJunk
|
||||
hooksecurefunc(self.IconQuestTexture, "Hide", updateBorderOnHide)
|
||||
|
||||
E:RegisterCooldown(self.Cooldown)
|
||||
end)
|
||||
|
||||
hooksecurefunc(ItemButtonClass.prototype, "Update", function(self)
|
||||
if not self:CanUpdate() then return end
|
||||
|
||||
if not self.texture then
|
||||
self.IconTexture:SetTexture(nil)
|
||||
end
|
||||
end)
|
||||
|
||||
local AdiBags_SearchHighlight = AdiBags:GetModule("SearchHighlight", true)
|
||||
S:RawHook(AdiBags_SearchHighlight, "UpdateButton", function(self, event, button)
|
||||
button.IconQuestTexture._searchMode = true
|
||||
S.hooks[self].UpdateButton(self, event, button)
|
||||
button.IconQuestTexture._searchMode = nil
|
||||
end)
|
||||
end)
|
||||
@@ -0,0 +1,368 @@
|
||||
local E, L, V, P, G = unpack(ElvUI)
|
||||
local S = E:GetModule("Skins")
|
||||
local AS = E:GetModule("AddOnSkins")
|
||||
|
||||
if not AS:IsAddonLODorEnabled("AdvancedTradeSkillWindow") then return end
|
||||
|
||||
local _G = _G
|
||||
local ipairs = ipairs
|
||||
local unpack = unpack
|
||||
|
||||
local GetTradeSkillListLink = GetTradeSkillListLink
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
-- AdvancedTradeSkillWindow 0.7.8
|
||||
-- https://www.curseforge.com/wow/addons/advanced-trade-skill-window/files/400569
|
||||
|
||||
S:AddCallbackForAddon("AdvancedTradeSkillWindow", "AdvancedTradeSkillWindow", function()
|
||||
if not E.private.addOnSkins.AdvancedTradeSkillWindow then return end
|
||||
|
||||
local scrollBars = {
|
||||
-- Main Frame
|
||||
"ATSWListScrollFrameScrollBar",
|
||||
"ATSWQueueScrollFrameScrollBar",
|
||||
-- Sorting Editor
|
||||
"ATSWCSUListScrollFrameScrollBar",
|
||||
"ATSWCSSListScrollFrameScrollBar",
|
||||
-- ShoppingList Frame
|
||||
"ATSWSLScrollFrameScrollBar",
|
||||
}
|
||||
|
||||
local buttons = {
|
||||
-- Scan
|
||||
"ATSWScanDelayFrameSkipButton",
|
||||
"ATSWScanDelayFrameAbortButton",
|
||||
-- Main Frame
|
||||
"ATSWCSButton",
|
||||
"ATSWOptionsButton",
|
||||
"ATSWQueueAllButton",
|
||||
"ATSWCreateAllButton",
|
||||
"ATSWCreateButton",
|
||||
"ATSWQueueButton",
|
||||
"ATSWQueueStartStopButton",
|
||||
"ATSWQueueDeleteButton",
|
||||
"ATSWReagentsButton",
|
||||
-- Sorting Editor
|
||||
"ATSWAddCategoryButton",
|
||||
-- Reagent Frame
|
||||
"ATSWBuyReagentsButton",
|
||||
-- Options
|
||||
"ATSWOptionsFrameOKButton",
|
||||
-- Merchant Frame
|
||||
"ATSWAutoBuyButton",
|
||||
}
|
||||
|
||||
local checkBoxes = {
|
||||
-- Main Frame
|
||||
"ATSWHeaderSortButton",
|
||||
"ATSWNameSortButton",
|
||||
"ATSWDifficultySortButton",
|
||||
"ATSWCustomSortButton",
|
||||
"ATSWOnlyCreatableButton",
|
||||
-- Options
|
||||
"ATSWOFUnifiedCounterButton",
|
||||
"ATSWOFSeparateCounterButton",
|
||||
"ATSWOFIncludeBankButton",
|
||||
"ATSWOFIncludeAltsButton",
|
||||
"ATSWOFIncludeMerchantsButton",
|
||||
"ATSWOFAutoBuyButton",
|
||||
"ATSWOFTooltipButton",
|
||||
"ATSWOFShoppingListButton",
|
||||
"ATSWOFReagentListButton",
|
||||
"ATSWOFNewRecipeLinkButton",
|
||||
}
|
||||
|
||||
local editBoxes = {
|
||||
-- Main Frame
|
||||
"ATSWFilterBox",
|
||||
"ATSWInputBox",
|
||||
-- Sorting Editor
|
||||
"ATSWCSNewCategoryBox",
|
||||
}
|
||||
|
||||
local dropDownBoxes = {
|
||||
-- Main Frame
|
||||
"ATSWSubClassDropDown",
|
||||
"ATSWInvSlotDropDown",
|
||||
}
|
||||
|
||||
local closeButtons = {
|
||||
-- Main Frame
|
||||
"ATSWFrameCloseButton",
|
||||
-- Reagent Frame
|
||||
"ATSWReagentFrameCloseButton",
|
||||
-- Sorting Editor
|
||||
"ATSWCSFrameCloseButton",
|
||||
}
|
||||
|
||||
local statusBars = {
|
||||
-- Scan
|
||||
"ATSWScanDelayFrameBar",
|
||||
-- Main Frame
|
||||
"ATSWRankFrame",
|
||||
}
|
||||
|
||||
for _, scrollBar in ipairs(scrollBars) do
|
||||
scrollBar = _G[scrollBar]
|
||||
scrollBar:GetParent():StripTextures()
|
||||
S:HandleScrollBar(scrollBar)
|
||||
end
|
||||
for _, button in ipairs(buttons) do
|
||||
S:HandleButton(_G[button])
|
||||
end
|
||||
for _, checkBox in ipairs(checkBoxes) do
|
||||
S:HandleCheckBox(_G[checkBox])
|
||||
end
|
||||
for _, editBox in ipairs(editBoxes) do
|
||||
S:HandleEditBox(_G[editBox])
|
||||
end
|
||||
for _, dropDownBox in ipairs(dropDownBoxes) do
|
||||
S:HandleDropDownBox(_G[dropDownBox])
|
||||
end
|
||||
for _, closeButton in ipairs(closeButtons) do
|
||||
closeButton = _G[closeButton]
|
||||
S:HandleCloseButton(closeButton, closeButton:GetParent().backdrop)
|
||||
end
|
||||
for _, statusBar in ipairs(statusBars) do
|
||||
statusBar = _G[statusBar]
|
||||
statusBar:StripTextures()
|
||||
statusBar:CreateBackdrop()
|
||||
statusBar:SetStatusBarTexture(E.media.normTex)
|
||||
E:RegisterStatusBar(statusBar)
|
||||
end
|
||||
|
||||
E:GetModule("Tooltip"):SecureHookScript(ATSWTradeskillTooltip, "OnShow", "SetStyle")
|
||||
|
||||
-- ScanDelay Frame
|
||||
ATSWScanDelayFrame:Size(400, 151) -- fix pixelperfect
|
||||
ATSWScanDelayFrame:StripTextures()
|
||||
ATSWScanDelayFrame:SetTemplate("Transparent")
|
||||
|
||||
-- Options Frame
|
||||
ATSWOptionsFrame:SetParent(UIParent)
|
||||
ATSWOptionsFrame:StripTextures()
|
||||
ATSWOptionsFrame:SetTemplate("Transparent")
|
||||
|
||||
-- Main Frame
|
||||
ATSWFrame:StripTextures()
|
||||
ATSWFrame:CreateBackdrop("Transparent")
|
||||
ATSWFrame.backdrop:Point("TOPLEFT", 11, -12)
|
||||
ATSWFrame.backdrop:Point("BOTTOMRIGHT", -32, 10)
|
||||
ATSWFrame:SetClampedToScreen(true)
|
||||
S:SetBackdropHitRect(ATSWFrame, nil, true)
|
||||
|
||||
ATSWFramePortrait:Hide()
|
||||
|
||||
S:HandleNextPrevButton(ATSWDecrementButton)
|
||||
S:HandleNextPrevButton(ATSWIncrementButton)
|
||||
|
||||
ATSWExpandButtonFrame:StripTextures()
|
||||
|
||||
ATSWRankFrameBorder:StripTextures()
|
||||
ATSWRankFrameBorder:Hide()
|
||||
|
||||
for i = 0, ATSW_TRADE_SKILLS_DISPLAYED or 23 do
|
||||
if i == 0 then
|
||||
S:HandleCollapseExpandButton(ATSWCollapseAllButton)
|
||||
|
||||
local onClick = function(self)
|
||||
if self.collapsed then
|
||||
self:GetNormalTexture():SetTexture(E.Media.Textures.Minus)
|
||||
self:GetPushedTexture():SetTexture(E.Media.Textures.Minus)
|
||||
self:GetDisabledTexture():SetTexture(E.Media.Textures.Minus)
|
||||
else
|
||||
self:GetNormalTexture():SetTexture(E.Media.Textures.Plus)
|
||||
self:GetPushedTexture():SetTexture(E.Media.Textures.Plus)
|
||||
self:GetDisabledTexture():SetTexture(E.Media.Textures.Plus)
|
||||
end
|
||||
end
|
||||
|
||||
onClick(ATSWCollapseAllButton)
|
||||
ATSWCollapseAllButton:HookScript("OnClick", onClick)
|
||||
else
|
||||
local button = _G["ATSWSkill"..i]
|
||||
if button then
|
||||
S:HandleCollapseExpandButton(button)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinIcon(reagent, icon, count)
|
||||
reagent:StripTextures()
|
||||
|
||||
icon:SetTexCoord(unpack(E.TexCoords))
|
||||
icon:SetDrawLayer("OVERLAY")
|
||||
|
||||
icon.backdrop = CreateFrame("Frame", nil, reagent)
|
||||
icon.backdrop:SetFrameLevel(reagent:GetFrameLevel() - 1)
|
||||
icon.backdrop:SetTemplate("Default")
|
||||
icon.backdrop:SetOutside(icon)
|
||||
|
||||
icon:SetParent(icon.backdrop)
|
||||
count:SetParent(icon.backdrop)
|
||||
count:SetDrawLayer("OVERLAY")
|
||||
end
|
||||
|
||||
for i = 1, ATSW_MAX_TRADE_SKILL_REAGENTS do
|
||||
local reagent = _G["ATSWReagent" .. i]
|
||||
local icon = _G["ATSWReagent" .. i .. "IconTexture"]
|
||||
local count = _G["ATSWReagent" .. i .. "Count"]
|
||||
|
||||
SkinIcon(reagent, icon, count)
|
||||
end
|
||||
|
||||
hooksecurefunc(ATSWSkillIcon, "SetNormalTexture", function(self)
|
||||
if self.skinned then
|
||||
self:GetNormalTexture():SetTexCoord(unpack(E.TexCoords))
|
||||
else
|
||||
local reagent = _G["ATSWSkillIcon"]
|
||||
local icon = _G["ATSWSkillIcon"]:GetNormalTexture()
|
||||
local count = _G["ATSWSkillIconCount"]
|
||||
|
||||
SkinIcon(reagent, icon, count)
|
||||
|
||||
self.skinned = true
|
||||
end
|
||||
end)
|
||||
|
||||
for i = 1, 4 do
|
||||
local button = _G["ATSWQueueItem"..i.."DeleteButton"]
|
||||
S:HandleButton(button)
|
||||
button:Size(20, 21)
|
||||
end
|
||||
|
||||
ATSWHeaderSortButton:Point("TOPLEFT", 29, -30)
|
||||
ATSWNameSortButton:Point("TOPLEFT", 29, -45)
|
||||
ATSWDifficultySortButton:Point("TOPLEFT", 189, -30)
|
||||
ATSWCustomSortButton:Point("TOPLEFT", 189, -45)
|
||||
|
||||
ATSWOnlyCreatableButton:Point("TOPLEFT", 349, -37)
|
||||
|
||||
ATSWCSButton:Point("CENTER", ATSWFrame, "TOPLEFT", 594, -44)
|
||||
|
||||
ATSWOptionsButton:Height(20)
|
||||
ATSWOptionsButton:Point("CENTER", ATSWFrame, "TOPLEFT", 683, -44)
|
||||
|
||||
ATSWRankFrame:Point("TOPLEFT", 459, -62)
|
||||
|
||||
ATSWInvSlotDropDown:Point("TOPRIGHT", -421, -65)
|
||||
ATSWSubClassDropDown:Point("RIGHT", ATSWInvSlotDropDown, "LEFT", 20, 0)
|
||||
|
||||
ATSWFilterBox:Width(212)
|
||||
|
||||
ATSWExpandButtonFrame:Point("TOPLEFT", 14, -95)
|
||||
|
||||
ATSWListScrollFrame:SetTemplate("Transparent")
|
||||
ATSWListScrollFrame:Size(299, 374)
|
||||
ATSWListScrollFrame:Point("TOPLEFT", 19, -120)
|
||||
ATSWListScrollFrame.Hide = E.noop
|
||||
|
||||
ATSWListScrollFrameScrollBar:Point("TOPLEFT", ATSWListScrollFrame, "TOPRIGHT", 3, -19)
|
||||
ATSWListScrollFrameScrollBar:Point("BOTTOMLEFT", ATSWListScrollFrame, "BOTTOMRIGHT", 3, 19)
|
||||
|
||||
ATSWSkill1:Point("TOPLEFT", 22, -123)
|
||||
|
||||
ATSWCreateButton:Point("CENTER", ATSWFrame, "TOPLEFT", 625, -349)
|
||||
ATSWQueueButton:Point("LEFT", ATSWCreateButton, "RIGHT", 3, 0)
|
||||
|
||||
ATSWCreateAllButton:Point("RIGHT", ATSWCreateButton, "LEFT", -84, 0)
|
||||
ATSWQueueAllButton:Point("RIGHT", ATSWCreateAllButton, "LEFT", -3, 0)
|
||||
|
||||
ATSWDecrementButton:Point("LEFT", ATSWCreateAllButton, "RIGHT", 5, 0)
|
||||
ATSWInputBox:Point("LEFT", ATSWDecrementButton, "RIGHT", 4, 0)
|
||||
ATSWIncrementButton:Point("RIGHT", ATSWCreateButton, "LEFT", -5, 0)
|
||||
|
||||
ATSWQueueItem1:Point("TOPLEFT", 355, -373)
|
||||
|
||||
ATSWQueueScrollFrameScrollBar:Point("TOPLEFT", ATSWQueueScrollFrame, "TOPRIGHT", 8, -16)
|
||||
ATSWQueueScrollFrameScrollBar:Point("BOTTOMLEFT", ATSWQueueScrollFrame, "BOTTOMRIGHT", 8, 16)
|
||||
|
||||
ATSWReagentsButton:Point("CENTER", ATSWFrame, "TOPLEFT", 683, -483)
|
||||
ATSWQueueStartStopButton:Point("CENTER", ATSWFrame, "TOPLEFT", 421, -483)
|
||||
|
||||
ATSWQueueDeleteButton:ClearAllPoints()
|
||||
ATSWQueueDeleteButton:Point("LEFT", ATSWQueueStartStopButton, "RIGHT", 3, 0)
|
||||
ATSWQueueDeleteButton:Point("RIGHT", ATSWReagentsButton, "LEFT", -3, 0)
|
||||
|
||||
-- Reagent Frame
|
||||
ATSWReagentFrame:StripTextures()
|
||||
ATSWReagentFrame:CreateBackdrop("Transparent")
|
||||
ATSWReagentFrame.backdrop:Point("TOPLEFT", 12, -14)
|
||||
ATSWReagentFrame.backdrop:Point("BOTTOMRIGHT", -34, 74)
|
||||
S:SetBackdropHitRect(ATSWReagentFrame, nil, true)
|
||||
|
||||
-- SortingEditor Frame
|
||||
ATSWCSFrame:StripTextures()
|
||||
ATSWCSFrame:CreateBackdrop("Transparent")
|
||||
ATSWCSFrame.backdrop:Point("TOPLEFT", 11, -12)
|
||||
ATSWCSFrame.backdrop:Point("BOTTOMRIGHT", -32, 10)
|
||||
ATSWCSFrame:SetClampedToScreen(true)
|
||||
S:SetBackdropHitRect(ATSWCSFrame, nil, true)
|
||||
|
||||
ATSWCSUListScrollFrame:SetTemplate("Transparent")
|
||||
ATSWCSUListScrollFrame:Size(342, 383) -- 311, 383
|
||||
ATSWCSUListScrollFrame:Point("TOPLEFT", 19, -111)
|
||||
ATSWCSSkill1:Point("TOPLEFT", 28, -120)
|
||||
|
||||
ATSWCSUListScrollFrameScrollBar:Point("TOPLEFT", ATSWCSUListScrollFrame, "TOPRIGHT", 3, -19)
|
||||
ATSWCSUListScrollFrameScrollBar:Point("BOTTOMLEFT", ATSWCSUListScrollFrame, "BOTTOMRIGHT", 3, 19)
|
||||
|
||||
ATSWCSSListScrollFrame:SetTemplate("Transparent")
|
||||
ATSWCSSListScrollFrame:Size(322, 354)
|
||||
ATSWCSSListScrollFrame:Point("TOPLEFT", 385, -111)
|
||||
ATSWCSCSkill1:Point("TOPLEFT", 394, -120)
|
||||
|
||||
ATSWCSSListScrollFrameScrollBar:Point("TOPLEFT", ATSWCSSListScrollFrame, "TOPRIGHT", 3, -19)
|
||||
ATSWCSSListScrollFrameScrollBar:Point("BOTTOMLEFT", ATSWCSSListScrollFrame, "BOTTOMRIGHT", 3, 19)
|
||||
|
||||
for i = 1, 17 do
|
||||
local buttonDelete = _G["ATSWCSCSkill" .. i .. "Delete"]
|
||||
local buttonUp = _G["ATSWCSCSkill" .. i .. "MoveUp"]
|
||||
local buttonDown = _G["ATSWCSCSkill" .. i .. "MoveDown"]
|
||||
local skillButton = _G["ATSWCSCSkill" .. i .. "SkillButton"]
|
||||
|
||||
buttonDelete:Size(17)
|
||||
buttonUp:Size(24)
|
||||
buttonDown:Size(24)
|
||||
|
||||
S:HandleButton(buttonDelete)
|
||||
S:HandleNextPrevButton(buttonUp, "up")
|
||||
S:HandleNextPrevButton(buttonDown, "down")
|
||||
|
||||
S:HandleCollapseExpandButton(skillButton)
|
||||
end
|
||||
|
||||
ATSWCSNewCategoryBox:Point("TOPLEFT", 424, -473)
|
||||
|
||||
ATSWAddCategoryButton:Point("LEFT", ATSWCSNewCategoryBox, "RIGHT", 4, 0)
|
||||
|
||||
-- ShoppingList
|
||||
ATSWShoppingListFrame:StripTextures()
|
||||
ATSWShoppingListFrame:CreateBackdrop("Transparent")
|
||||
ATSWShoppingListFrame.backdrop:Point("TOPLEFT", 12, 0)
|
||||
ATSWShoppingListFrame.backdrop:Point("BOTTOMRIGHT", -35, 59)
|
||||
|
||||
S:SetBackdropHitRect(ATSWShoppingListFrame)
|
||||
|
||||
S:HandleCloseButton(ATSWSLCloseButton)
|
||||
ATSWSLCloseButton:Point("BOTTOMRIGHT", -39, 177)
|
||||
ATSWSLCloseButton:SetHitRectInsets(1, 0, 1, 0)
|
||||
ATSWSLCloseButton:SetText(nil)
|
||||
|
||||
ATSWSLScrollFrameScrollBar:Point("TOPLEFT", ATSWSLScrollFrame, "TOPRIGHT", 5, -18)
|
||||
ATSWSLScrollFrameScrollBar:Point("BOTTOMLEFT", ATSWSLScrollFrame, "BOTTOMRIGHT", 5, 22)
|
||||
|
||||
ATSWShoppingListFrame.SetPoint = function(self)
|
||||
ATSWSLCloseButton.SetPoint(ATSWShoppingListFrame, "TOPLEFT", AuctionFrame, "TOPLEFT", 355, -446)
|
||||
end
|
||||
|
||||
-- ChatLink fix
|
||||
ATSWTradeSkillLinkButton:SetScript("OnClick", function()
|
||||
local ChatFrameEditBox = ChatEdit_ChooseBoxForSend()
|
||||
if not ChatFrameEditBox:IsShown() then
|
||||
ChatEdit_ActivateChat(ChatFrameEditBox)
|
||||
end
|
||||
|
||||
ChatFrameEditBox:Insert(GetTradeSkillListLink())
|
||||
end)
|
||||
end)
|
||||
@@ -0,0 +1,26 @@
|
||||
local E, L, V, P, G = unpack(ElvUI)
|
||||
local S = E:GetModule("Skins")
|
||||
local AS = E:GetModule("AddOnSkins")
|
||||
|
||||
if not AS:IsAddonLODorEnabled("AllStats") then return end
|
||||
|
||||
-- All Stats 1.1
|
||||
-- https://www.curseforge.com/wow/addons/all-stats/files/430951
|
||||
|
||||
S:AddCallbackForAddon("AllStats", "AllStats", function()
|
||||
if not E.private.addOnSkins.AllStats then return end
|
||||
|
||||
AllStatsFrame:StripTextures()
|
||||
AllStatsFrame:SetTemplate("Transparent")
|
||||
AllStatsFrame:Height(424)
|
||||
AllStatsFrame:Point("TOPLEFT", PaperDollFrame, "TOPLEFT", 351, -12)
|
||||
|
||||
S:HandleButton(AllStatsButtonShowFrame)
|
||||
AllStatsButtonShowFrame:Height(21)
|
||||
|
||||
if CharacterFrameExpandButton then
|
||||
AllStatsButtonShowFrame:Point("BOTTOMRIGHT", -40, 84)
|
||||
else
|
||||
AllStatsButtonShowFrame:Point("BOTTOMRIGHT", -60, 84)
|
||||
end
|
||||
end)
|
||||
@@ -0,0 +1,402 @@
|
||||
local E, L, V, P, G = unpack(ElvUI)
|
||||
local S = E:GetModule("Skins")
|
||||
local AS = E:GetModule("AddOnSkins")
|
||||
|
||||
if not AS:IsAddonLODorEnabled("Altoholic") then return end
|
||||
|
||||
local _G = _G
|
||||
local pairs = pairs
|
||||
local unpack = unpack
|
||||
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
-- Altoholic 3.3.002b
|
||||
|
||||
S:AddCallbackForAddon("Altoholic", "Altoholic", function()
|
||||
if not E.private.addOnSkins.Altoholic then return end
|
||||
|
||||
local function AltoItem(item)
|
||||
local name = item:GetName()
|
||||
item:SetTemplate()
|
||||
item:StyleButton()
|
||||
|
||||
item:SetNormalTexture("")
|
||||
_G[name.."IconTexture"]:SetInside()
|
||||
_G[name.."IconTexture"]:SetTexCoord(unpack(E.TexCoords))
|
||||
|
||||
local cooldown = _G[name.."Cooldown"]
|
||||
if cooldown then
|
||||
E:RegisterCooldown(cooldown)
|
||||
end
|
||||
end
|
||||
|
||||
AltoTooltip:HookScript("OnShow", function(self)
|
||||
self:SetTemplate("Transparent", nil, true) --ignore updates
|
||||
|
||||
local r, g, b = self:GetBackdropColor()
|
||||
self:SetBackdropColor(r, g, b, E.db.tooltip.colorAlpha)
|
||||
end)
|
||||
|
||||
AltoholicFrame:StripTextures()
|
||||
AltoholicFrame:CreateBackdrop("Transparent")
|
||||
AltoholicFrame.backdrop:Point("TOPLEFT", 11, -12)
|
||||
AltoholicFrame.backdrop:Point("BOTTOMRIGHT", -1, 11)
|
||||
|
||||
AltoholicFramePortrait:Hide()
|
||||
|
||||
S:HandleCloseButton(AltoholicFrameCloseButton, AltoholicFrame.backdrop)
|
||||
|
||||
for i = 1, 5 do
|
||||
local tab = _G["AltoholicFrameTab"..i]
|
||||
|
||||
if i == 1 then
|
||||
tab:Point("TOPLEFT", AltoholicFrame, "BOTTOMLEFT", 11, 13)
|
||||
else
|
||||
tab:Point("TOPLEFT", _G["AltoholicFrameTab"..(i - 1)], "TOPRIGHT", -15, 0)
|
||||
end
|
||||
|
||||
S:HandleTab(tab)
|
||||
end
|
||||
|
||||
S:HandleEditBox(AltoholicFrame_SearchEditBox)
|
||||
S:HandleButton(AltoholicFrame_ResetButton)
|
||||
AltoholicFrame_ResetButton:Point("TOPLEFT", "$parent_SearchEditBox", "BOTTOMLEFT", -40, -3)
|
||||
S:HandleButton(AltoholicFrame_SearchButton)
|
||||
|
||||
local function ClassesItemItemTexure_SetTexCoord(self, left, right, top, bottom)
|
||||
if self.customTexCoord then return end
|
||||
self.customTexCoord = true
|
||||
self:SetTexCoord(left + 0.02, right - 0.02, top + 0.02, bottom - 0.02)
|
||||
self.customTexCoord = nil
|
||||
end
|
||||
|
||||
local function ClassesItem_OnShow(self)
|
||||
if self.border:IsShown() then
|
||||
self:SetBackdropBorderColor(self.border:GetVertexColor())
|
||||
else
|
||||
self:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
||||
end
|
||||
|
||||
_G[self:GetName().."IconTexture"]:SetInside()
|
||||
|
||||
self.border:SetTexture("")
|
||||
end
|
||||
|
||||
for i = 1, 10 do
|
||||
local item = _G["AltoholicFrameClassesItem"..i]
|
||||
AltoItem(item)
|
||||
|
||||
hooksecurefunc(_G[item:GetName().."IconTexture"], "SetTexCoord", ClassesItemItemTexure_SetTexCoord)
|
||||
|
||||
item:HookScript("OnShow", ClassesItem_OnShow)
|
||||
end
|
||||
|
||||
AltoMsgBox:SetTemplate("Transparent")
|
||||
S:HandleButton(AltoMsgBoxYesButton)
|
||||
S:HandleButton(AltoMsgBoxNoButton)
|
||||
|
||||
AltoAccountSharing:SetTemplate("Transparent")
|
||||
|
||||
S:HandleEditBox(AltoAccountSharing_AccNameEditBox)
|
||||
S:HandleButton(AltoAccountSharing_InfoButton)
|
||||
S:HandleEditBox(AltoAccountSharing_AccTargetEditBox)
|
||||
S:HandleButton(AltoAccountSharing_SendButton)
|
||||
S:HandleButton(AltoAccountSharing_CancelButton)
|
||||
|
||||
S:HandleCollapseExpandButton(AltoAccountSharing_ToggleAll, "-")
|
||||
|
||||
S:HandleCheckBox(AltoAccountSharing_CheckAll)
|
||||
|
||||
-- AccountSummary
|
||||
AltoholicFrameSummaryScrollFrame:StripTextures()
|
||||
S:HandleScrollBar(AltoholicFrameSummaryScrollFrameScrollBar)
|
||||
|
||||
for i = 1, 14 do
|
||||
S:HandleCollapseExpandButton(_G["AltoholicFrameSummaryEntry"..i.."Collapse"], "-")
|
||||
end
|
||||
|
||||
-- Activity
|
||||
AltoholicFrameActivityScrollFrame:StripTextures()
|
||||
S:HandleScrollBar(AltoholicFrameActivityScrollFrameScrollBar)
|
||||
|
||||
for i = 1, 14 do
|
||||
S:HandleCollapseExpandButton(_G["AltoholicFrameActivityEntry"..i.."Collapse"], "-")
|
||||
end
|
||||
|
||||
-- AuctionHouse
|
||||
AltoholicFrameAuctionsScrollFrame:StripTextures()
|
||||
S:HandleScrollBar(AltoholicFrameAuctionsScrollFrameScrollBar)
|
||||
|
||||
for i = 1, 7 do
|
||||
AltoItem(_G["AltoholicFrameAuctionsEntry"..i.."Item"])
|
||||
end
|
||||
|
||||
-- BagUsage
|
||||
AltoholicFrameBagUsageScrollFrame:StripTextures()
|
||||
S:HandleScrollBar(AltoholicFrameBagUsageScrollFrameScrollBar)
|
||||
|
||||
for i = 1, 14 do
|
||||
S:HandleCollapseExpandButton(_G["AltoholicFrameBagUsageEntry"..i.."Collapse"], "-")
|
||||
end
|
||||
|
||||
-- Calendar
|
||||
S:HandleNextPrevButton(AltoholicFrameCalendar_PrevMonth)
|
||||
S:HandleNextPrevButton(AltoholicFrameCalendar_NextMonth)
|
||||
|
||||
AltoholicFrameCalendarScrollFrame:StripTextures()
|
||||
S:HandleScrollBar(AltoholicFrameCalendarScrollFrameScrollBar)
|
||||
|
||||
-- Containers
|
||||
S:HandleDropDownBox(AltoholicFrameContainers_SelectContainerView)
|
||||
S:HandleDropDownBox(AltoholicFrameContainers_SelectRarity)
|
||||
|
||||
AltoholicFrameContainersScrollFrame:StripTextures()
|
||||
S:HandleScrollBar(AltoholicFrameContainersScrollFrameScrollBar)
|
||||
|
||||
for i = 1, 7 do
|
||||
for j = 1, 14 do
|
||||
AltoItem(_G["AltoholicFrameContainersEntry"..i.."Item"..j])
|
||||
end
|
||||
end
|
||||
|
||||
-- Currencies
|
||||
S:HandleDropDownBox(AltoholicFrameCurrencies_SelectCurrencies)
|
||||
|
||||
AltoholicFrameCurrenciesScrollFrame:StripTextures()
|
||||
S:HandleScrollBar(AltoholicFrameCurrenciesScrollFrameScrollBar)
|
||||
|
||||
--[[
|
||||
for i = 1, 8 do
|
||||
for j = 1, 10 do
|
||||
_G["AltoholicFrameCurrenciesEntry"..i.."Item"..j]
|
||||
end
|
||||
end
|
||||
]]
|
||||
|
||||
-- Equipment
|
||||
AltoholicFrameEquipmentScrollFrame:StripTextures()
|
||||
S:HandleScrollBar(AltoholicFrameEquipmentScrollFrameScrollBar)
|
||||
|
||||
for i = 1, 7 do
|
||||
for j = 1, 10 do
|
||||
AltoItem(_G["AltoholicFrameEquipmentEntry"..i.."Item"..j])
|
||||
end
|
||||
end
|
||||
|
||||
-- GuildBank
|
||||
for i = 1, 7 do
|
||||
for j = 1, 14 do
|
||||
AltoItem(_G["AltoGuildBankEntry"..i.."Item"..j])
|
||||
end
|
||||
end
|
||||
|
||||
-- GuildBankTabs
|
||||
AltoholicFrameGuildBankTabsScrollFrame:StripTextures()
|
||||
S:HandleScrollBar(AltoholicFrameGuildBankTabsScrollFrameScrollBar)
|
||||
|
||||
for i = 1, 14 do
|
||||
S:HandleCollapseExpandButton(_G["AltoholicFrameGuildBankTabsEntry"..i.."Collapse"], "-")
|
||||
S:HandleButton(_G["AltoholicFrameGuildBankTabsEntry"..i.."UpdateTab"])
|
||||
end
|
||||
|
||||
-- GuildMembers
|
||||
AltoholicFrameGuildMembersScrollFrame:StripTextures()
|
||||
S:HandleScrollBar(AltoholicFrameGuildMembersScrollFrameScrollBar)
|
||||
|
||||
for i = 1, 14 do
|
||||
S:HandleCollapseExpandButton(_G["AltoholicFrameGuildMembersEntry"..i.."Collapse"], "-")
|
||||
end
|
||||
|
||||
for i = 1, 19 do
|
||||
AltoItem(_G["AltoholicFrameGuildMembersItem"..i])
|
||||
end
|
||||
|
||||
-- GuildProfessions
|
||||
AltoholicFrameGuildProfessionsScrollFrame:StripTextures()
|
||||
S:HandleScrollBar(AltoholicFrameGuildProfessionsScrollFrameScrollBar)
|
||||
|
||||
for i = 1, 14 do
|
||||
S:HandleCollapseExpandButton(_G["AltoholicFrameGuildProfessionsEntry"..i.."Collapse"], "-")
|
||||
end
|
||||
|
||||
-- Mails
|
||||
AltoholicFrameMailScrollFrame:StripTextures()
|
||||
S:HandleScrollBar(AltoholicFrameMailScrollFrameScrollBar)
|
||||
|
||||
for i = 1, 7 do
|
||||
AltoItem(_G["AltoholicFrameMailEntry"..i.."Item"])
|
||||
end
|
||||
|
||||
-- Pets
|
||||
S:HandleDropDownBox(AltoholicFramePets_SelectPetView)
|
||||
S:HandleRotateButton(AltoholicFramePetsNormal_ModelFrameRotateLeftButton)
|
||||
S:HandleRotateButton(AltoholicFramePetsNormal_ModelFrameRotateRightButton)
|
||||
|
||||
for i = 1, 12 do
|
||||
local button = _G["AltoholicFramePetsNormal_Button"..i]
|
||||
button:SetTemplate()
|
||||
button:StyleButton(nil, true)
|
||||
button:GetDisabledTexture():SetInside()
|
||||
button:SetNormalTexture("")
|
||||
button:GetNormalTexture():SetDrawLayer("BORDER")
|
||||
button:GetNormalTexture():SetInside()
|
||||
button:GetNormalTexture():SetTexCoord(unpack(E.TexCoords))
|
||||
end
|
||||
|
||||
S:HandleNextPrevButton(AltoholicFramePetsNormalPrevPage, nil, nil, true)
|
||||
AltoholicFramePetsNormalPrevPage:Size(32)
|
||||
S:HandleNextPrevButton(AltoholicFramePetsNormalNextPage, nil, nil, true)
|
||||
AltoholicFramePetsNormalNextPage:Size(32)
|
||||
|
||||
AltoholicFramePetsAllInOneScrollFrame:StripTextures()
|
||||
S:HandleScrollBar(AltoholicFramePetsAllInOneScrollFrameScrollBar)
|
||||
|
||||
-- Quests
|
||||
AltoholicFrameQuestsScrollFrame:StripTextures()
|
||||
S:HandleScrollBar(AltoholicFrameQuestsScrollFrameScrollBar)
|
||||
|
||||
for i = 1, 14 do
|
||||
S:HandleCollapseExpandButton(_G["AltoholicFrameQuestsEntry"..i.."Collapse"], "-")
|
||||
end
|
||||
|
||||
-- Recipes
|
||||
S:HandleCollapseExpandButton(AltoholicFrameRecipesInfo_ToggleAll, "-")
|
||||
S:HandleDropDownBox(AltoholicFrameRecipesInfo_SelectColor)
|
||||
S:HandleDropDownBox(AltoholicFrameRecipesInfo_SelectSubclass)
|
||||
S:HandleDropDownBox(AltoholicFrameRecipesInfo_SelectInvSlot)
|
||||
|
||||
AltoholicFrameRecipesScrollFrame:StripTextures()
|
||||
S:HandleScrollBar(AltoholicFrameRecipesScrollFrameScrollBar)
|
||||
|
||||
for i = 1, 14 do
|
||||
S:HandleCollapseExpandButton(_G["AltoholicFrameRecipesEntry"..i.."Collapse"], "-")
|
||||
AltoItem(_G["AltoholicFrameRecipesEntry"..i.."Craft"])
|
||||
|
||||
for j = 1, 8 do
|
||||
AltoItem(_G["AltoholicFrameRecipesEntry"..i.."Item"..j])
|
||||
end
|
||||
end
|
||||
|
||||
-- Reputations
|
||||
S:HandleDropDownBox(AltoholicFrameReputations_SelectFaction)
|
||||
AltoholicFrameReputationsScrollFrame:StripTextures()
|
||||
S:HandleScrollBar(AltoholicFrameReputationsScrollFrameScrollBar)
|
||||
|
||||
for i = 1, 8 do
|
||||
for j = 1, 10 do
|
||||
local item = _G["AltoholicFrameReputationsEntry"..i.."Item"..j]
|
||||
local bg = _G["AltoholicFrameReputationsEntry"..i.."Item"..j.."_Background"]
|
||||
|
||||
item:SetTemplate()
|
||||
item:StyleButton()
|
||||
|
||||
bg:SetDrawLayer("BORDER")
|
||||
bg:SetInside()
|
||||
bg:SetTexCoord(unpack(E.TexCoords))
|
||||
end
|
||||
end
|
||||
|
||||
-- Search
|
||||
AltoholicFrameSearchScrollFrame:StripTextures()
|
||||
S:HandleScrollBar(AltoholicFrameSearchScrollFrameScrollBar)
|
||||
|
||||
for i = 1, 7 do
|
||||
E:RegisterCooldown(_G["AltoholicFrameSearchEntry"..i.."Cooldown"])
|
||||
AltoItem(_G["AltoholicFrameSearchEntry"..i.."Item"])
|
||||
end
|
||||
|
||||
-- Skills
|
||||
AltoholicFrameSkillsScrollFrame:StripTextures()
|
||||
S:HandleScrollBar(AltoholicFrameSkillsScrollFrameScrollBar)
|
||||
|
||||
for i = 1, 14 do
|
||||
S:HandleCollapseExpandButton(_G["AltoholicFrameSkillsEntry"..i.."Collapse"], "-")
|
||||
end
|
||||
|
||||
-- TabCharacters
|
||||
S:HandleDropDownBox(AltoholicTabCharacters_SelectRealm)
|
||||
S:HandleDropDownBox(AltoholicTabCharacters_SelectChar)
|
||||
|
||||
local tabCharacters = {"_Bags", "_Equipment", "_Quests", "_Talents", "_Auctions", "_Bids", "_Mails", "_Pets", "_Mounts", "_Factions", "_Tokens", "_Cooking", "_FirstAid", "_Prof1", "_Prof2"}
|
||||
for _, tab in pairs(tabCharacters) do
|
||||
AltoItem(_G["AltoholicTabCharacters"..tab])
|
||||
end
|
||||
|
||||
for i = 1, 4 do
|
||||
_G["AltoholicTabCharacters_Sort"..i]:StripTextures()
|
||||
end
|
||||
|
||||
-- TabGuildBank
|
||||
S:HandleDropDownBox(AltoholicTabGuildBank_SelectGuild)
|
||||
S:HandleButton(AltoholicTabGuildBank_DeleteGuildButton)
|
||||
S:HandleCheckBox(AltoholicTabGuildBank_HideInTooltip)
|
||||
|
||||
for i = 1, 6 do
|
||||
_G["AltoholicTabGuildBankMenuItem"..i]:StripTextures()
|
||||
end
|
||||
|
||||
-- TabSearch
|
||||
for i = 1, 15 do
|
||||
_G["AltoholicTabSearchMenuItem"..i]:StripTextures()
|
||||
end
|
||||
|
||||
AltoholicSearchMenuScrollFrame:StripTextures()
|
||||
S:HandleScrollBar(AltoholicSearchMenuScrollFrameScrollBar)
|
||||
S:HandleEditBox(AltoholicTabSearch_MinLevel)
|
||||
S:HandleEditBox(AltoholicTabSearch_MaxLevel)
|
||||
S:HandleDropDownBox(AltoholicTabSearch_SelectRarity)
|
||||
S:HandleDropDownBox(AltoholicTabSearch_SelectSlot, 140)
|
||||
S:HandleDropDownBox(AltoholicTabSearch_SelectLocation, 200)
|
||||
|
||||
for i = 1, 8 do
|
||||
_G["AltoholicTabSearch_Sort"..i]:StripTextures()
|
||||
end
|
||||
|
||||
-- TabSummary
|
||||
for i = 1, 8 do
|
||||
_G["AltoholicTabSummaryMenuItem"..i]:StripTextures()
|
||||
_G["AltoholicTabSummary_Sort"..i]:StripTextures()
|
||||
end
|
||||
|
||||
S:HandleCollapseExpandButton(AltoholicTabSummaryToggleView, "-")
|
||||
|
||||
S:HandleDropDownBox(AltoholicTabSummary_SelectLocation, 200)
|
||||
S:HandleButton(AltoholicTabSummary_OptionsDataStore)
|
||||
S:HandleButton(AltoholicTabSummary_Options)
|
||||
S:HandleButton(AltoholicTabSummary_RequestSharing)
|
||||
|
||||
-- Telents
|
||||
for i = 1, 3 do
|
||||
AltoItem(_G["AltoholicFrameTalents_SpecIcon"..i])
|
||||
end
|
||||
|
||||
S:HandleScrollBar(AltoholicFrameTalents_ScrollFrameScrollBar)
|
||||
|
||||
for i = 1, 40 do
|
||||
AltoItem(_G["AltoholicFrameTalents_ScrollFrameTalent"..i])
|
||||
end
|
||||
end)
|
||||
|
||||
S:AddCallbackForAddon("Altoholic_Achievements", "Altoholic_Achievements", function()
|
||||
if not E.private.addOnSkins.Altoholic then return end
|
||||
|
||||
AltoholicFrameAchievementsScrollFrame:StripTextures()
|
||||
S:HandleScrollBar(AltoholicFrameAchievementsScrollFrameScrollBar)
|
||||
|
||||
for i = 1, 8 do
|
||||
for j = 1, 10 do
|
||||
_G["AltoholicFrameAchievementsEntry"..i.."Item"..j]:SetTemplate()
|
||||
_G["AltoholicFrameAchievementsEntry"..i.."Item"..j]:StyleButton()
|
||||
_G["AltoholicFrameAchievementsEntry"..i.."Item"..j.."_Background"]:SetDrawLayer("BORDER")
|
||||
_G["AltoholicFrameAchievementsEntry"..i.."Item"..j.."_Background"]:SetInside()
|
||||
_G["AltoholicFrameAchievementsEntry"..i.."Item"..j.."_Background"]:SetTexCoord(unpack(E.TexCoords))
|
||||
end
|
||||
end
|
||||
|
||||
for i = 1, 15 do
|
||||
_G["AltoholicTabAchievementsMenuItem"..i]:StripTextures()
|
||||
end
|
||||
|
||||
AltoholicAchievementsMenuScrollFrame:StripTextures()
|
||||
S:HandleScrollBar(AltoholicAchievementsMenuScrollFrameScrollBar)
|
||||
end)
|
||||
@@ -0,0 +1,85 @@
|
||||
local E, L, V, P, G = unpack(ElvUI)
|
||||
local S = E:GetModule("Skins")
|
||||
local AS = E:GetModule("AddOnSkins")
|
||||
|
||||
if not AS:IsAddonLODorEnabled("Atlas") then return end
|
||||
|
||||
-- Atlas 1.18.1
|
||||
|
||||
S:AddCallbackForAddon("Atlas", "Atlas", function()
|
||||
if not E.private.addOnSkins.Atlas then return end
|
||||
|
||||
AtlasFrame:StripTextures()
|
||||
AtlasFrame:SetTemplate("Transparent")
|
||||
AtlasFrame:SetClampRectInsets(0, 0, 0, 0)
|
||||
|
||||
S:HandleCloseButton(AtlasFrameCloseButton, AtlasFrame)
|
||||
|
||||
AtlasFrameLockButton:Point("RIGHT", AtlasFrameCloseButton, "LEFT", 12, -1)
|
||||
AtlasFrameLockButton:SetHitRectInsets(6, 6, 6, 6)
|
||||
|
||||
AtlasLockNorm:SetInside(AtlasFrameLockButton, 10, 10)
|
||||
AtlasLockPush:SetInside(AtlasFrameLockButton, 10, 10)
|
||||
AtlasLockNorm:SetTexCoord(.36, .65, .32, .73)
|
||||
AtlasLockPush:SetTexCoord(.36, .60, .38, .76)
|
||||
|
||||
AtlasMap:SetDrawLayer("ARTWORK")
|
||||
AtlasMap:CreateBackdrop()
|
||||
|
||||
hooksecurefunc("Atlas_UpdateLock", function()
|
||||
AtlasLockNorm:SetDesaturated(true)
|
||||
AtlasLockPush:SetDesaturated(true)
|
||||
end)
|
||||
Atlas_UpdateLock()
|
||||
|
||||
S:HandleDropDownBox(AtlasFrameDropDownType)
|
||||
S:HandleDropDownBox(AtlasFrameDropDown)
|
||||
|
||||
S:HandleEditBox(AtlasSearchEditBox)
|
||||
AtlasSearchEditBox:Height(22)
|
||||
|
||||
S:HandleButton(AtlasSwitchButton)
|
||||
S:HandleButton(AtlasSearchButton)
|
||||
S:HandleButton(AtlasSearchClearButton)
|
||||
S:HandleButton(AtlasFrameOptionsButton)
|
||||
|
||||
S:HandleScrollBar(AtlasScrollBarScrollBar)
|
||||
|
||||
AtlasFrameDropDownType:Point("TOPLEFT", 24, -40)
|
||||
AtlasFrameDropDown:Point("LEFT", AtlasFrameDropDownType, "RIGHT", 2, 0)
|
||||
|
||||
AtlasFrameOptionsButton:Point("TOPRIGHT", -14, -43)
|
||||
|
||||
AtlasMap:Point("TOPLEFT", 15, -74)
|
||||
AtlasMap.ClearAllPoints = E.noop
|
||||
AtlasMap.SetPoint = E.noop
|
||||
|
||||
AtlasSwitchButton:Height(24)
|
||||
AtlasSearchButton:Height(24)
|
||||
AtlasSearchClearButton:Size(62, 24)
|
||||
|
||||
AtlasSearchEditBox:Point("BOTTOMRIGHT", -152, 15)
|
||||
AtlasSwitchButton:Point("RIGHT", AtlasSearchEditBox, "LEFT", -4, 0)
|
||||
AtlasSearchButton:Point("LEFT", AtlasSearchEditBox, "RIGHT", 4, 0)
|
||||
AtlasSearchClearButton:Point("LEFT", AtlasSearchButton, "RIGHT", 3, 0)
|
||||
|
||||
AtlasScrollBarScrollBar:Point("TOPLEFT", AtlasScrollBar, "TOPRIGHT", 8, -16)
|
||||
AtlasScrollBarScrollBar:Point("BOTTOMLEFT", AtlasScrollBar, "BOTTOMRIGHT", 8, 16)
|
||||
|
||||
-- options
|
||||
S:HandleCheckBox(AtlasOptionsFrameToggleButton)
|
||||
S:HandleCheckBox(AtlasOptionsFrameAutoSelect)
|
||||
S:HandleCheckBox(AtlasOptionsFrameRightClick)
|
||||
S:HandleCheckBox(AtlasOptionsFrameAcronyms)
|
||||
S:HandleCheckBox(AtlasOptionsFrameClamped)
|
||||
S:HandleCheckBox(AtlasOptionsFrameCtrl)
|
||||
|
||||
S:HandleSliderFrame(AtlasOptionsFrameSliderButtonPos)
|
||||
S:HandleSliderFrame(AtlasOptionsFrameSliderButtonRad)
|
||||
S:HandleSliderFrame(AtlasOptionsFrameSliderAlpha)
|
||||
S:HandleSliderFrame(AtlasOptionsFrameSliderScale)
|
||||
|
||||
S:HandleDropDownBox(AtlasOptionsFrameDropDownCats)
|
||||
|
||||
S:HandleButton(AtlasOptionsFrameResetPosition)
|
||||
end)
|
||||
@@ -0,0 +1,191 @@
|
||||
local E, L, V, P, G = unpack(ElvUI)
|
||||
local S = E:GetModule("Skins")
|
||||
local AS = E:GetModule("AddOnSkins")
|
||||
|
||||
if not AS:IsAddonLODorEnabled("AtlasLoot") then return end
|
||||
|
||||
local select = select
|
||||
local unpack = unpack
|
||||
|
||||
-- AtlasLoot Enhanced 5.11.04
|
||||
-- https://www.curseforge.com/wow/addons/atlasloot-enhanced/files/445202
|
||||
|
||||
S:AddCallbackForAddon("AtlasLoot", "AtlasLoot", function()
|
||||
if not E.private.addOnSkins.AtlasLoot then return end
|
||||
|
||||
AtlasLootTooltip:HookScript("OnShow", function(self)
|
||||
self:SetTemplate("Transparent", nil, true)
|
||||
|
||||
local r, g, b = self:GetBackdropColor()
|
||||
self:SetBackdropColor(r, g, b, E.db.tooltip.colorAlpha)
|
||||
|
||||
local iLink = select(2, self:GetItem())
|
||||
local quality = iLink and select(3, GetItemInfo(iLink))
|
||||
if quality and quality >= 2 then
|
||||
self:SetBackdropBorderColor(GetItemQualityColor(quality))
|
||||
else
|
||||
self:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
||||
end
|
||||
end)
|
||||
|
||||
AtlasLootDefaultFrame:StripTextures()
|
||||
AtlasLootDefaultFrame:SetTemplate("Transparent")
|
||||
|
||||
S:HandleCloseButton(AtlasLootDefaultFrame_CloseButton, AtlasLootDefaultFrame)
|
||||
|
||||
S:HandleButton(AtlasLootDefaultFrame_Options)
|
||||
S:HandleButton(AtlasLootDefaultFrame_LoadModules)
|
||||
S:HandleButton(AtlasLootDefaultFrame_Menu)
|
||||
S:HandleButton(AtlasLootDefaultFrame_SubMenu)
|
||||
|
||||
AtlasLootDefaultFrame_LootBackground_Back:SetTexture()
|
||||
AtlasLootDefaultFrame_LootBackground:SetTemplate("Transparent")
|
||||
|
||||
S:HandleButton(AtlasLootDefaultFrame_Preset1)
|
||||
S:HandleButton(AtlasLootDefaultFrame_Preset2)
|
||||
S:HandleButton(AtlasLootDefaultFrame_Preset3)
|
||||
S:HandleButton(AtlasLootDefaultFrame_Preset4)
|
||||
|
||||
S:HandleButton(AtlasLootDefaultFrameWishListButton)
|
||||
S:HandleEditBox(AtlasLootDefaultFrameSearchBox)
|
||||
S:HandleButton(AtlasLootDefaultFrameSearchButton)
|
||||
S:HandleNextPrevButton(AtlasLootDefaultFrameSearchOptionsButton)
|
||||
S:HandleButton(AtlasLootDefaultFrameSearchClearButton)
|
||||
S:HandleButton(AtlasLootDefaultFrameLastResultButton)
|
||||
|
||||
AtlasLootDefaultFrame_Options:Point("TOPLEFT", 43, -11)
|
||||
AtlasLootDefaultFrame_LoadModules:Point("TOPRIGHT", -42, -11)
|
||||
|
||||
AtlasLootDefaultFrame_Preset1:Point("BOTTOMLEFT", 83, 59)
|
||||
|
||||
AtlasLootDefaultFrameSearchBox:Height(22)
|
||||
AtlasLootDefaultFrameSearchBox:Point("BOTTOM", AtlasLootDefaultFrame, "BOTTOM", -83, 29)
|
||||
|
||||
AtlasLootDefaultFrameSearchButton:Point("LEFT", AtlasLootDefaultFrameSearchBox, "RIGHT", 6, 0)
|
||||
|
||||
AtlasLootDefaultFrameSearchOptionsButton:Size(24)
|
||||
AtlasLootDefaultFrameSearchOptionsButton:Point("LEFT", AtlasLootDefaultFrameSearchButton, "RIGHT", 5, 0)
|
||||
AtlasLootDefaultFrameSearchClearButton:Point("LEFT", AtlasLootDefaultFrameSearchOptionsButton, "RIGHT", 5, 0)
|
||||
AtlasLootDefaultFrameLastResultButton:Point("LEFT", AtlasLootDefaultFrameSearchClearButton, "RIGHT", 5, 0)
|
||||
AtlasLootDefaultFrameWishListButton:Point("RIGHT", AtlasLootDefaultFrameSearchBox, "LEFT", -6, 0)
|
||||
|
||||
AtlasLootDefaultFrame_Notice:Point("BOTTOM", 0, 9)
|
||||
|
||||
S:HandleCloseButton(AtlasLootItemsFrame_CloseButton)
|
||||
|
||||
S:HandleButton(AtlasLootInfoHidePanel)
|
||||
|
||||
for i = 1, 30 do
|
||||
_G["AtlasLootItem_" .. i .. "_Icon"]:SetTexCoord(unpack(E.TexCoords))
|
||||
_G["AtlasLootItem_" .. i]:CreateBackdrop("Default")
|
||||
_G["AtlasLootItem_" .. i].backdrop:SetOutside(_G["AtlasLootItem_" .. i .. "_Icon"])
|
||||
|
||||
_G["AtlasLootMenuItem_" .. i .. "_Icon"]:SetTexCoord(unpack(E.TexCoords))
|
||||
_G["AtlasLootMenuItem_" .. i]:CreateBackdrop("Default")
|
||||
_G["AtlasLootMenuItem_" .. i].backdrop:SetOutside(_G["AtlasLootMenuItem_" .. i .. "_Icon"])
|
||||
end
|
||||
|
||||
S:HandleButton(AtlasLoot10Man25ManSwitch)
|
||||
S:HandleButton(AtlasLootServerQueryButton)
|
||||
S:HandleCheckBox(AtlasLootItemsFrame_Heroic)
|
||||
S:HandleCheckBox(AtlasLootFilterCheck)
|
||||
S:HandleButton(AtlasLootItemsFrame_BACK)
|
||||
S:HandleNextPrevButton(AtlasLootQuickLooksButton)
|
||||
S:HandleNextPrevButton(AtlasLootItemsFrame_PREV)
|
||||
S:HandleNextPrevButton(AtlasLootItemsFrame_NEXT)
|
||||
|
||||
AtlasLootItemsFrame_Back:SetTexture()
|
||||
|
||||
AtlasLoot10Man25ManSwitch:Height(24)
|
||||
AtlasLootServerQueryButton:Height(24)
|
||||
AtlasLootItemsFrame_BACK:Height(24)
|
||||
|
||||
AtlasLoot10Man25ManSwitch:Point("BOTTOM", -130, 3)
|
||||
AtlasLootServerQueryButton:Point("BOTTOM", 131, 3)
|
||||
AtlasLootItemsFrame_BACK:Point("BOTTOM", 0, 3)
|
||||
|
||||
AtlasLootItemsFrame_Heroic:Point("BOTTOM", -185, 28)
|
||||
AtlasLootFilterCheck:Point("BOTTOM", 115, 28)
|
||||
AtlasLootQuickLooksButton:Point("BOTTOM", 58, 32)
|
||||
|
||||
AtlasLootItemsFrame_PREV:Point("BOTTOMLEFT", 7, 6)
|
||||
AtlasLootItemsFrame_NEXT:Point("BOTTOMRIGHT", -6, 6)
|
||||
|
||||
S:HandleCheckBox(AtlasLootOptionsFrameDefaultTT)
|
||||
S:HandleCheckBox(AtlasLootOptionsFrameLootlinkTT)
|
||||
S:HandleCheckBox(AtlasLootOptionsFrameItemSyncTT)
|
||||
S:HandleCheckBox(AtlasLootOptionsFrameOpaque)
|
||||
S:HandleCheckBox(AtlasLootOptionsFrameItemID)
|
||||
S:HandleCheckBox(AtlasLootOptionsFrameLoDStartup)
|
||||
S:HandleCheckBox(AtlasLootOptionsFrameSafeLinks)
|
||||
S:HandleCheckBox(AtlasLootOptionsFrameEquipCompare)
|
||||
S:HandleCheckBox(AtlasLootOptionsFrameItemSpam)
|
||||
S:HandleCheckBox(AtlasLootOptionsFrameHidePanel)
|
||||
|
||||
S:HandleDropDownBox(AtlasLoot_SelectLootBrowserStyle)
|
||||
S:HandleDropDownBox(AtlasLoot_CraftingLink)
|
||||
|
||||
S:HandleSliderFrame(AtlasLootOptionsFrameLootBrowserScale)
|
||||
|
||||
S:HandleButton(AtlasLootOptionsFrame_ResetWishlist)
|
||||
S:HandleButton(AtlasLootOptionsFrame_ResetAtlasLoot)
|
||||
S:HandleButton(AtlasLootOptionsFrame_ResetQuicklooks)
|
||||
S:HandleButton(AtlasLootOptionsFrame_FuBarShow)
|
||||
S:HandleButton(AtlasLootOptionsFrame_FuBarHide)
|
||||
|
||||
AtlasLootPanel:StripTextures()
|
||||
AtlasLootPanel:SetTemplate("Transparent")
|
||||
|
||||
S:HandleButton(AtlasLootPanel_WorldEvents)
|
||||
AtlasLootPanel_WorldEvents:Point("LEFT", AtlasLootPanel, "LEFT", 7, 29)
|
||||
S:HandleButton(AtlasLootPanel_Sets)
|
||||
AtlasLootPanel_Sets:Point("LEFT", AtlasLootPanel_WorldEvents, "RIGHT", 2, 0)
|
||||
S:HandleButton(AtlasLootPanel_Reputation)
|
||||
AtlasLootPanel_Reputation:Point("LEFT", AtlasLootPanel_Sets, "RIGHT", 2, 0)
|
||||
S:HandleButton(AtlasLootPanel_PvP)
|
||||
AtlasLootPanel_PvP:Point("LEFT", AtlasLootPanel_Reputation, "RIGHT", 2, 0)
|
||||
S:HandleButton(AtlasLootPanel_Crafting)
|
||||
AtlasLootPanel_Crafting:Point("LEFT", AtlasLootPanel_PvP, "RIGHT", 2, 0)
|
||||
S:HandleButton(AtlasLootPanel_WishList)
|
||||
AtlasLootPanel_WishList:Point("LEFT", AtlasLootPanel_Crafting, "RIGHT", 2, 0)
|
||||
S:HandleButton(AtlasLootPanel_Options)
|
||||
S:HandleButton(AtlasLootPanel_LoadModules)
|
||||
S:HandleButton(AtlasLootPanel_Preset1)
|
||||
S:HandleButton(AtlasLootPanel_Preset2)
|
||||
S:HandleButton(AtlasLootPanel_Preset3)
|
||||
S:HandleButton(AtlasLootPanel_Preset4)
|
||||
|
||||
S:HandleEditBox(AtlasLootSearchBox)
|
||||
AtlasLootSearchBox:Height(20)
|
||||
S:HandleButton(AtlasLootSearchButton)
|
||||
AtlasLootSearchButton:Height(22)
|
||||
AtlasLootSearchButton:Point("LEFT", AtlasLootSearchBox, "RIGHT", 3, 0)
|
||||
S:HandleNextPrevButton(AtlasLootSearchOptionsButton)
|
||||
AtlasLootSearchOptionsButton:Point("LEFT", AtlasLootSearchButton, "RIGHT", 2, 0)
|
||||
S:HandleButton(AtlasLootSearchClearButton)
|
||||
AtlasLootSearchClearButton:Height(22)
|
||||
AtlasLootSearchClearButton:Point("LEFT", AtlasLootSearchOptionsButton, "RIGHT", 2, 0)
|
||||
S:HandleButton(AtlasLootLastResultButton)
|
||||
AtlasLootLastResultButton:Height(22)
|
||||
AtlasLootLastResultButton:Point("LEFT", AtlasLootSearchClearButton, "RIGHT", 2, 0)
|
||||
|
||||
if AS:IsAddonEnabled("Atlas") then
|
||||
hooksecurefunc("AtlasLoot_SetupForAtlas", function()
|
||||
AtlasLootInfo:Point("TOPLEFT", 546, 15)
|
||||
AtlasLootPanel:Point("TOP", "AtlasFrame", "BOTTOM", 0, 1)
|
||||
end)
|
||||
|
||||
hooksecurefunc("AtlasLoot_SetItemInfoFrame", function(pFrame)
|
||||
if not pFrame or pFrame == AtlasFrame then
|
||||
AtlasLootItemsFrame:Point("TOPLEFT", 15, -74)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
AS:SkinLibrary("Dewdrop-2.0")
|
||||
end)
|
||||
|
||||
S:AddCallbackForAddon("AtlasLootFu", "AtlasLootFu", function()
|
||||
AS:SkinLibrary("AceAddon-2.0")
|
||||
AS:SkinLibrary("Tablet-2.0")
|
||||
end)
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user