/
chatFrame.caption = UIParent:CreateFontString(nil, "OVERLAY") |
chatFrame.caption:SetAllPoints(chatTab) |
chatFrame.caption:SetFontObject("ChatTabFontNormal") |
chatFrame.caption:SetShadowOffset(1.25, -1.25) |
chatFrame.caption:SetShadowColor(unpack(colors["Background"])) |
if not chatTab:IsShown() then chatFrame.caption:Hide() end |
chatTab:SetScript("OnShow", function() chatFrame.caption:Show() end) |
chatTab:SetScript("OnHide", function() chatFrame.caption:Hide() end) |
_G[frame .. "EditBox" .. tex]:SetTexture(nil) |
end |
-- Editbox animation |
local editBoxAnimIn = editBox:CreateAnimationGroup() |
local fadeIn = editBoxAnimIn:CreateAnimation("Alpha") |
fadeIn:SetChange(1) |
fadeIn:SetDuration(1) |
fadeIn:SetSmoothing("IN_OUT") |
fadeIn:SetOrder(0) |
editBoxAnimIn:SetScript("OnFinished", function() editBox:SetAlpha(1) end) |
editBox:HookScript("OnHide", function() if editBoxAnimIn:IsPlaying() then editBoxAnimIn:Stop() end end) |
editBox:HookScript("OnShow", function() |
editBox:SetAlpha(0) |
editBoxAnimIn:Play() |
end) |
-- Copy button |
local copyFrame = CreateFrame("Frame", frame .. "Copypasta", chatFrame) |
copyFrame:SetSize(16, 16) |
{15, 1, "TOPRIGHT", "TOPRIGHT", -1, -1, 1, "horizontal"} |
} |
local tempColor = CreateColor(1, 1, 1) |
local dragButton |
local function UpdateButton(self, elapsed) |
local percent = self.timeLeft / self.durationMax |
-- THIS SO NEEDS SOME OPTIMIZATION!!! |
--[[for i = 1, 5 do |
for i = 1, 5 do |
local lowerBound, upperBound = i > 1 and statusbars[i - 1][7] or 0, statusbars[i][7] |
if percent > lowerBound and percent < upperBound then |
if self.filter == "HARMFUL" then |
elseif percent < lowerBound then |
self.statusbars[i]:Hide() |
end |
end]] |
end |
self.elapsed = 0 |
end |
local function CreateButton(name, index, filter) |
local button = _G[name .. index] |
if button and button:IsShown() then |
if _G[name .. index] and _G[name .. index]:IsShown() then |
-- Skin button |
local button = _G[name .. index] |
if not button.skinned then |
local icon, oldBorder = _G[name .. index .. "Icon"], _G[name .. index .. "Border"] |
--[[ 2do |
local hover = ...; hover = ...; self.hover = hover => self.hover = ...; self.hover:...; |
]] |
setfenv(1, select(2, ...)) |
SetCVar("spreadnameplates", 1) |
SetCVar("bloattest", 0) |
SetCVar("bloatnameplates", 0) |
SetCVar("bloatthreat", 0) |
SetCVar("ShowVKeyCastbar", 1) |
local select, unpack, RED_FONT_COLOR_CODE = select, unpack, RED_FONT_COLOR_CODE |
local WorldFrame = WorldFrame |
local tempColor = CreateColor(1, 1, 1) |
-- Modified caelNameplates by Caellian |
local f = CreateFrame("Frame", nil, UIParent) |
f:SetScript("OnEvent", function(self, event, ...) |
if type(self[event] == "function") then |
return self[event](self, event, ...) |
end |
end) |
-- Color the health bar dependent on hp% |
local function ColorHealthBar(self, value) |
local hpp, _, max = self:GetParent().hpp, self:GetMinMaxValues() |
local tempColor = colors["Red"]:GetBlend(colors["Green"], value / max) |
local select, unpack = select, unpack |
local RED_FONT_COLOR_CODE = RED_FONT_COLOR_CODE |
hpp:SetText(("%d%%"):format(value / max * 100)) |
hpp:SetTextColor(unpack(tempColor)) |
self:SetStatusBarColor(unpack(tempColor)) |
end |
local function ColorHealthBar(self) |
local hpCur, _, hpMax = self.healthBar:GetValue(), self.healthBar:GetMinMaxValues() |
local color = colors["Red"]:GetBlend(colors["Green"], hpCur / hpMax) |
-- Update spell names / interruptibility |
local function UpdateCastState(self, event, ...) |
if (event == "UNIT_SPELLCAST_START" or event == "UNIT_SPELLCAST_CHANNEL_START") and ({...})[1] == "target" then |
self.channeling = event == "UNIT_SPELLCAST_CHANNEL_START" |
local spellInfo = self.channeling and UnitChannelInfo or UnitCastingInfo |
local interruptible = UnitCanAttack("player", "target") and select(select("#", spellInfo("target")), spellInfo("target")) |
self.name:SetTextColor(unpack(colors[interruptible and "Red" or "White"])) |
self.time:SetTextColor(unpack(colors[interruptible and "Red" or "White"])) |
self.name:SetText(({...})[2]) |
end |
end |
self.hpp:SetText(("%d%%"):format(hpCur / hpMax * 100)) |
self.hpp:SetTextColor(unpack(color)) |
self.healthBar:SetStatusBarColor(unpack(color)) |
-- Update spell cast timer |
local function UpdateCastTime(self, value) |
self.time:SetText(("%.2fs"):format(self.channeling and value or select(2, self:GetMinMaxValues()) - value)) |
end |
-- Color on hover |
local function CheckMouseOver(self) |
if self.highlight:IsShown() then |
if self.hover:IsShown() then |
self.name:SetTextColor(unpack(colors["White"])) |
else |
self.name:SetTextColor(self.r, self.g, self.b) |
end |
end |
-- Show glow on aggro |
local function CheckThreat(self) |
if self.oldGlow:IsShown() then self.glow:Show() else self.glow:Hide() end |
if self._aggro:IsShown() then self.aggro:Show() else self.aggro:Hide() end |
end |
-- Poll for hover / threat updates |
local function UpdatePlate(self, elapsed) |
self.elapsed = self.elapsed + elapsed |
if self.elapsed >= 0.2 then |
end |
end |
-- Some information is not available until visibility changes |
local function ShowPlate(self) |
local statusR, statusG, statusB = self.healthBar:GetStatusBarColor() |
if statusG + statusB == 0 then |
local r, g, b = self.healthBar:GetStatusBarColor() |
if g + b == 0 then |
-- Hostile unit |
self.r, self.g, self.b = unpack(colors["Red"]) |
elseif statusR + statusB == 0 then |
elseif r + b == 0 then |
-- Friendly unit |
self.r, self.g, self.b = unpack(colors["Green"]) |
elseif statusR + statusG == 0 then |
elseif r + g == 0 then |
-- Friendly player |
self.r, self.g, self.b = unpack(colors["Blue"]) |
elseif 2 - (statusR + statusG) < 0.05 and statusB == 0 then |
elseif 2 - (r + g) < 0.05 and b == 0 then |
-- Neutral unit |
self.r, self.g, self.b = unpack(colors["Red"]:GetBlend(colors["Green"], 0.5)) |
tempColor = colors["Red"]:GetBlend(colors["Green"], 0.5) |
self.r, self.g, self.b = unpack(tempColor) |
else |
-- Hostile player - class colored. |
self.r, self.g, self.b = statusR, statusG, statusB |
self.r, self.g, self.b = r, g, b |
end |
local oldName = self.oldName:GetText() |
local newName = (string.len(oldName) > 20) and string.gsub(oldName, "%s?(.[\128-\191]*)%S+%s", "%1. ") or oldName |
self.name:SetText(newName) |
local name = self._name:GetText() |
self.name:SetText((string.len(name) > 20) and string.gsub(name, "%s?(.[\128-\191]*)%S+%s", "%1. ") or name) |
self.healthBar:SetSize(13, 13) |
self.healthBar:ClearAllPoints() |
self.level:SetText(level .. "+") |
end |
self.highlight:ClearAllPoints() |
self.highlight:SetPoint("LEFT", self.hpp, -5, 0) |
self.highlight:SetPoint("RIGHT", self.level, 5, 0) |
self.highlight:SetPoint("TOP", self.name, 0, 5) |
self.highlight:SetPoint("BOTTOM", self.name, 0, -5) |
self.hover:ClearAllPoints() |
self.hover:SetPoint("LEFT", self.hpp, -5, 0) |
self.hover:SetPoint("RIGHT", self.level, 5, 0) |
self.hover:SetPoint("TOP", self.name, 0, 5) |
self.hover:SetPoint("BOTTOM", self.name, 0, -5) |
ColorHealthBar(self) |
ColorHealthBar(self.healthBar, self.healthBar:GetValue()) |
CheckMouseOver(self) |
CheckThreat(self) |
end |
local function HidePlate(self) |
-- Won't go on it's own |
self.highlight:Hide() |
self.hover:Hide() |
end |
local function CreatePlate(frame) |
if frame.skinned then return end |
frame.skinned = true |
frame.healthBar, frame.castBar = frame:GetChildren() |
local healthBar, castBar = frame.healthBar, frame.castBar |
local glowRegion, overlayRegion, castbarOverlay, shieldedRegion, spellIconRegion, highlightRegion, nameTextRegion, levelTextRegion, bossIconRegion, raidIconRegion, stateIconRegion = frame:GetRegions() |
-- Initial skinning |
local function SkinPlate(self) |
self.healthBar, self.castBar = self:GetChildren() |
local _aggro, border, hover, _name, level, boss, raidTarget, elite = self:GetRegions() |
self._aggro, self.hover, self._name, self.level, self.boss, self.elite = _aggro, hover, _name, level, boss, elite |
local _, cbBorder, cbShield, cbIcon = self.castBar:GetRegions() |
-- Name |
local name = frame:CreateFontString() |
name:SetPoint("CENTER") |
name:SetFontObject("NameplatesFontNormal") |
name:SetShadowOffset(1.25, -1.25) |
nameTextRegion:Hide() |
self.name = self:CreateFontString() |
self.name:SetPoint("CENTER") |
self.name:SetFontObject("NameplatesFontNormal") |
self.name:SetShadowOffset(1.25, -1.25) |
-- Health bar |
local healthBarBd = CreateFrame("Frame", nil, frame) |
healthBarBd:SetSize(13, 13) |
healthBarBd:SetPoint("RIGHT", name, "LEFT", -2, 0) |
healthBarBd:SetBackdrop({ |
self.healthBarBd = CreateFrame("Frame", nil, self) |
self.healthBarBd:SetSize(13, 13) |
self.healthBarBd:SetPoint("RIGHT", self.name, "LEFT", -2, 0) |
self.healthBarBd:SetBackdrop({ |
bgFile = media.background["Flat"], |
edgeFile = media.border["hankui: Nameplates"], |
edgeSize = 4, |
insets = { left = 2, right = 2, top = 2, bottom = 2 } |
}) |
healthBarBd:SetBackdropColor(unpack(colors["Background light"])) |
healthBarBd:SetFrameLevel(healthBar:GetFrameLevel() -1 > 0 and healthBar:GetFrameLevel() - 1 or 0) |
self.healthBarBd:SetBackdropColor(unpack(colors["Background light"])) |
self.healthBarBd:SetFrameLevel(self.healthBar:GetFrameLevel() -1 > 0 and self.healthBar:GetFrameLevel() - 1 or 0) |
healthBar:SetStatusBarTexture(media.background["Flat"]) |
healthBar:SetOrientation("VERTICAL") |
healthBar:SetBackdropColor(unpack(colors["Background light"])) |
self.healthBar:SetStatusBarTexture(media.background["Flat"]) |
self.healthBar:SetOrientation("VERTICAL") |
self.healthBar:SetBackdropColor(unpack(colors["Background light"])) |
self.healthBar:SetScript("OnValueChanged", ColorHealthBar) |
-- HP% |
local hpp = frame:CreateFontString() |
hpp:SetPoint("RIGHT", healthBarBd, "LEFT") |
hpp:SetFontObject("NameplatesFontSmall") |
hpp:SetShadowOffset(1.25, -1.25) |
self.hpp = self:CreateFontString() |
self.hpp:SetPoint("RIGHT", self.healthBarBd, "LEFT") |
self.hpp:SetFontObject("NameplatesFontSmall") |
self.hpp:SetShadowOffset(1.25, -1.25) |
-- Mouseover glow |
highlightRegion:SetTexture(media.background["hankui: Nameplates aggro"]) |
highlightRegion:SetVertexColor(unpack(colors["White"])) |
highlightRegion:SetBlendMode("ADD") |
highlightRegion:SetAlpha(0.1) |
self.hover:SetTexture(media.background["hankui: Nameplates aggro"]) |
self.hover:SetVertexColor(unpack(colors["White"])) |
self.hover:SetBlendMode("ADD") |
self.hover:SetAlpha(0.1) |
-- Aggro glow |
local glow = frame:CreateTexture(nil, "BACKGROUND", healthBarBd:GetFrameLevel() - 1) |
glow:SetTexture(media.background["hankui: Nameplates aggro"]) |
glow:SetVertexColor(unpack(colors["Red"])) |
glow:SetBlendMode("ADD") |
glow:SetTexCoord(0, 1, 0, 1) |
glow:SetPoint("LEFT", hpp, -5, 0) |
glow:SetPoint("RIGHT", levelTextRegion, 5, 0) |
glow:SetPoint("TOP", name, 0, 5) |
glow:SetPoint("BOTTOM", name, 0, -5) |
glow:SetAlpha(0.25) |
self.aggro = self:CreateTexture(nil, "BACKGROUND", self.healthBarBd:GetFrameLevel() - 1) |
self.aggro:SetTexture(media.background["hankui: Nameplates aggro"]) |
self.aggro:SetVertexColor(unpack(colors["Red"])) |
self.aggro:SetBlendMode("ADD") |
self.aggro:SetTexCoord(0, 1, 0, 1) |
self.aggro:SetPoint("LEFT", self.hpp, -5, 0) |
self.aggro:SetPoint("RIGHT", level, 5, 0) |
self.aggro:SetPoint("TOP", self.name, 0, 5) |
self.aggro:SetPoint("BOTTOM", self.name, 0, -5) |
self.aggro:SetAlpha(0.25) |
frame:RegisterEvent("PLAYER_TARGET_CHANGED") |
frame:RegisterEvent("UPDATE_MOUSEOVER_UNIT") |
frame:RegisterEvent("UNIT_THREAT_SITUATION_UPDATE") |
frame:HookScript("OnEvent", function(self, event, ...) |
-- Aggro / mouseover events |
self:RegisterEvent("PLAYER_TARGET_CHANGED") |
self:RegisterEvent("UPDATE_MOUSEOVER_UNIT") |
self:RegisterEvent("UNIT_THREAT_SITUATION_UPDATE") |
self:HookScript("OnEvent", function(self, event, ...) |
-- Improve responsiveness |
if event == "PLAYER_TARGET_CHANGED" or event == "UPDATE_MOUSEOVER_UNIT" then |
CheckMouseOver(self) |
CheckThreat(self) |
end |
end) |
-- Level |
levelTextRegion:ClearAllPoints() |
levelTextRegion:SetPoint("LEFT", name, "RIGHT", -1, -3) |
levelTextRegion:SetFontObject("NameplatesFontTiny") |
levelTextRegion:SetShadowOffset(1.25, -1.25) |
self.level:ClearAllPoints() |
self.level:SetPoint("LEFT", self.name, "RIGHT", -1, -3) |
self.level:SetFontObject("NameplatesFontTiny") |
self.level:SetShadowOffset(1.25, -1.25) |
-- Raid icon |
raidIconRegion:SetSize(16, 16) |
raidIconRegion:ClearAllPoints() |
raidIconRegion:SetPoint("LEFT", name, "RIGHT", 10, 0) |
raidIconRegion:SetTexture(media.misc["Raid icons"]) |
raidTarget:SetSize(16, 16) |
raidTarget:ClearAllPoints() |
raidTarget:SetPoint("LEFT", self.name, "RIGHT", 10, 0) |
raidTarget:SetTexture(media.misc["Raid icons"]) |
-- Spell icon |
spellIconRegion:ClearAllPoints() |
spellIconRegion:SetPoint("TOP", healthBar, "BOTTOM", 0, -5) |
spellIconRegion:SetTexCoord(0.08, 0.92, 0.08, 0.92) |
spellIconRegion:SetSize(7, 7) |
cbIcon:ClearAllPoints() |
cbIcon:SetPoint("TOP", self.healthBar, "BOTTOM", 0, -5) |
cbIcon:SetTexCoord(0.08, 0.92, 0.08, 0.92) |
cbIcon:SetSize(7, 7) |
local spellIcoBd = CreateFrame("Frame", nil, castBar) |
spellIcoBd:SetPoint("TOPLEFT", spellIconRegion, -2, 2) |
spellIcoBd:SetPoint("BOTTOMRIGHT", spellIconRegion, 2, -2) |
spellIcoBd:SetBackdrop({ |
local cbIconBd = CreateFrame("Frame", nil, self.castBar) |
cbIconBd:SetPoint("TOPLEFT", cbIcon, -2, 2) |
cbIconBd:SetPoint("BOTTOMRIGHT", cbIcon, 2, -2) |
cbIconBd:SetBackdrop({ |
bgFile = media.background["Flat"], |
edgeFile = media.border["hankui: Nameplates"], |
edgeSize = 4, |
insets = { left = 2, right = 2, top = 2, bottom = 2 } |
}) |
spellIcoBd:SetBackdropColor(unpack(colors["Background light"])) |
spellIcoBd:SetFrameLevel(castBar:GetFrameLevel() -1 > 0 and castBar:GetFrameLevel() - 1 or 0) |
cbIconBd:SetBackdropColor(unpack(colors["Background light"])) |
cbIconBd:SetFrameLevel(self.castBar:GetFrameLevel() -1 > 0 and self.castBar:GetFrameLevel() - 1 or 0) |
-- Cast timer |
local castTime = castBar:CreateFontString() |
castTime:SetPoint("TOP", spellIcoBd) |
castTime:SetPoint("BOTTOM", spellIcoBd) |
castTime:SetPoint("RIGHT", hpp) |
castTime:SetFontObject("NameplatesFontTiny") |
castTime:SetShadowOffset(1.25, -1.25) |
self.castBar.time = self.castBar:CreateFontString() |
self.castBar.time:SetPoint("TOP", cbIconBd) |
self.castBar.time:SetPoint("BOTTOM", cbIconBd) |
self.castBar.time:SetPoint("RIGHT", self.hpp) |
self.castBar.time:SetFontObject("NameplatesFontTiny") |
self.castBar.time:SetShadowOffset(1.25, -1.25) |
-- Spell |
local spellName = castBar:CreateFontString() |
spellName:SetPoint("TOP", spellIcoBd) |
spellName:SetPoint("BOTTOM", spellIcoBd) |
spellName:SetPoint("LEFT", name) |
spellName:SetPoint("RIGHT", levelTextRegion) |
self.castBar.name = self.castBar:CreateFontString() |
self.castBar.name:SetPoint("TOP", cbIconBd) |
self.castBar.name:SetPoint("BOTTOM", cbIconBd) |
self.castBar.name:SetPoint("LEFT", self.name) |
self.castBar.name:SetPoint("RIGHT", self.level) |
spellName:SetFontObject("NameplatesFontTiny") |
spellName:SetJustifyH("LEFT") |
spellName:SetShadowOffset(1.25, -1.25) |
self.castBar.name:SetFontObject("NameplatesFontTiny") |
self.castBar.name:SetJustifyH("LEFT") |
self.castBar.name:SetShadowOffset(1.25, -1.25) |
-- Set spell name / interruptible color |
castBar:RegisterEvent("UNIT_SPELLCAST_START") |
castBar:RegisterEvent("UNIT_SPELLCAST_CHANNEL_START") |
castBar:HookScript("OnEvent", function(self, event, ...) |
if (event == "UNIT_SPELLCAST_START" or event == "UNIT_SPELLCAST_CHANNEL_START") and ({...})[1] == "target" then |
self.channeling = event == "UNIT_SPELLCAST_CHANNEL_START" |
local spellInfo = self.channeling and UnitChannelInfo or UnitCastingInfo |
local interruptible = UnitCanAttack("player", "target") and select(select("#", spellInfo("target")), spellInfo("target")) |
spellName:SetTextColor(unpack(colors[interruptible and "Red" or "White"])) |
castTime:SetTextColor(unpack(colors[interruptible and "Red" or "White"])) |
spellName:SetText(({...})[2]) |
end |
end) |
-- Update cast time |
castBar:HookScript("OnValueChanged", function(self, value) |
castTime:SetText(("%.2fs"):format(self.channeling and value or select(2, self:GetMinMaxValues()) - value)) |
end) |
-- Update hp bar |
healthBar:HookScript("OnValueChanged", function(self, value) |
ColorHealthBar(frame) |
end) |
self.castBar:RegisterEvent("UNIT_SPELLCAST_START") |
self.castBar:RegisterEvent("UNIT_SPELLCAST_CHANNEL_START") |
self.castBar:HookScript("OnEvent", UpdateCastState) |
self.castBar:HookScript("OnValueChanged", UpdateCastTime) |
glowRegion:SetTexture(nil) |
overlayRegion:SetTexture(nil) |
shieldedRegion:SetTexture(nil) |
castbarOverlay:SetTexture(nil) |
stateIconRegion:SetTexture(nil) |
bossIconRegion:SetTexture(nil) |
castBar:SetStatusBarTexture(nil) |
frame.name = name |
frame.oldName = nameTextRegion |
frame.healthBarBd = healthBarBd |
frame.hpp = hpp |
frame.level = levelTextRegion |
frame.elite = stateIconRegion |
frame.boss = bossIconRegion |
frame.glow = glow |
frame.oldGlow = glowRegion |
frame.highlight = highlightRegion |
ShowPlate(frame) |
frame:SetScript("OnShow", ShowPlate) |
frame:SetScript("OnHide", HidePlate) |
-- Hide stuff |
self._aggro:SetTexture(nil) |
border:SetTexture(nil) |
self._name:Hide() |
self.boss:SetTexture(nil) |
self.elite:SetTexture(nil) |
self.castBar:SetStatusBarTexture(nil) |
cbBorder:SetTexture(nil) |
cbShield:SetTexture(nil) |
frame.elapsed = 0 |
frame:SetScript("OnUpdate", UpdatePlate) |
ShowPlate(self) |
self.elapsed = 0 |
self:SetScript("OnUpdate", UpdatePlate) |
self:SetScript("OnShow", ShowPlate) |
self:SetScript("OnHide", HidePlate) |
end |
-- Find out if a frame is a nameplate |
local IsValidFrame = function(frame) |
if frame:GetName() then return end |
local overlayRegion = select(2, frame:GetRegions()) |
return overlayRegion and overlayRegion:GetObjectType() == "Texture" and overlayRegion:GetTexture() == [[Interface\Tooltips\Nameplate-Border]] |
-- Scan for new plates |
local function Scan() |
for i = 1, WorldFrame:GetNumChildren() do |
local child = select(i, WorldFrame:GetChildren()) |
if child:GetName() and child:GetName():find("NamePlate%d+") and not child.name then |
SkinPlate(child) |
end |
end |
end |
local numKids = 0 |
local lastUpdate = 0 |
-- Search for nameplates |
f:SetScript("OnUpdate", function(self, elapsed) |
lastUpdate = lastUpdate + elapsed |
local dummy = CreateFrame("Frame") |
local totalElapsed, numChildren = 0, 0 |
if lastUpdate > 0.1 then |
lastUpdate = 0 |
local newNumKids = WorldFrame:GetNumChildren() |
if newNumKids ~= numKids then |
for i = numKids + 1, newNumKids do |
local frame = select(i, WorldFrame:GetChildren()) |
if IsValidFrame(frame) then |
CreatePlate(frame) |
end |
end |
numKids = newNumKids |
end |
dummy:SetScript("OnUpdate", function(self, elapsed) |
totalElapsed = totalElapsed + elapsed |
if totalElapsed > 0.1 and WorldFrame:GetNumChildren() ~= numChildren then |
Scan() |
end |
end) |
end |
MiniMapInstanceDifficultyText:SetFontObject("MinimapFontNormal") |
-- Instance guild difficulty |
GuildInstanceDifficulty:SetSize(64, 32) |
GuildInstanceDifficulty:ClearAllPoints() |
GuildInstanceDifficulty:SetPoint("TOPLEFT", MinimapBackdrop, -8, -12) |
-- GuildInstanceDifficultyBackground (BG) => Neu setzen |
GuildInstanceDifficultyBackground:SetTexture(media.misc["Ribbon"]) |
GuildInstanceDifficultyBackground:SetVertexColor(unpack(colors["Signature color"])) |
GuildInstanceDifficultyBackground.SetVertexColor = function() end |
GuildInstanceDifficultyBackground:ClearAllPoints() |
GuildInstanceDifficultyBackground:SetAllPoints() |
GuildInstanceDifficultyBackground:SetTexCoord(0, 1, 0, 1) |
--GuildInstanceDifficultyEmblem (Gilden Icon) => Verstecken oder anordnen |
GuildInstanceDifficultyEmblem:Hide() |
GuildInstanceDifficultyBorder:Hide() |
GuildInstanceDifficultyHanger:Hide() |
GuildInstanceDifficultyDarkBackground:Hide() |
--GuildInstanceDifficultyHeroicTexture (Hero Totenkopf) => Verstecken & Funktion überschreiben |
GuildInstanceDifficultyHeroicTexture:Hide() |
GuildInstanceDifficultyHeroicTexture.Hide = function(shown) |
GuildInstanceDifficultyText:SetText((GuildInstanceDifficultyText:GetText() or "") .. (shown and " (H)" or " (N)")) |
end |
GuildInstanceDifficultyHeroicTexture.Show = function() GuildInstanceDifficultyHeroicTexture.Hide(true) end |
--GuildInstanceDifficultyText (FontString) => Funktion überschreiben |
GuildInstanceDifficultyText:ClearAllPoints() |
GuildInstanceDifficultyText:SetPoint("TOPLEFT", 10, -6) |
GuildInstanceDifficultyText:SetFontObject("MinimapFontNormal") |
GuildInstanceDifficultyText.SetPoint = function() end |
GuildInstanceDifficultyText.ClearAllPoints = function() end |
-- Coordinates |
local coords = Minimap:CreateFontString() |
coords:SetFontObject("MinimapFontNormal") |
coordThrottle = coordThrottle + elapsed |
if coordThrottle > 0.2 then |
local x, y = GetPlayerMapPosition("player") |
coords:SetText(("%.1f, %.1f"):format(x * 100, y * 100)) |
coords:SetText(("%.1f|n%.1f"):format(x * 100, y * 100)) |
coordThrottle = 0 |
end |
end) |
MiniMapBin:SetAlpha(1) |
MiniMapTracking:SetAlpha(1) |
MiniMapMailFrame:SetAlpha(1) |
coords:SetAlpha(1) |
coords:Show() |
end |
local function mouseout() |
MiniMapBin:SetAlpha(0) |
MiniMapTracking:SetAlpha(0) |
MiniMapMailFrame:SetAlpha(0) |
coords:SetAlpha(0) |
coords:Hide() |
end |
end |
or (string.find(fonts.masterfont or "", "\\") ~= nil and fonts.masterfont or media.font[fonts.masterfont]) |
fontObject:SetFont(font, size or oldSize, flags or oldFlags) |
if color then fontObject:SetTextColor(unpack(color)) end |
if color then |
color = CreateColor(color) |
fontObject:SetTextColor(unpack(color)) |
end |
if shadowx and shadowy then fontObject:SetShadowOffset(shadowx, shadowy) end |
end |
--GameFontHighlight = {nil, nil, nil, colors["Signature color"]}, |
--GameFontHighlightSmall = {nil, nil, nil, colors["Signature color"]}, |
ErrorFont = {nil, 14, "OUTLINE"}, -- "Canal Crab 9/10", "Spell is not ready yet" etc. |
ZoneTextFont = {"DIN Pro Black"}, -- "Stormwind" |
SubZoneTextFont = {"DIN Pro Black", 26, "THICKOUTLINE"}, -- "Trade District" |
}, { |
-- Whenever a font is added to the collection immediately apply it |
__newindex = function(tbl, key, val) |
local font, size, flags = unpack(val) |
local font, size, flags, color, shadowx, shadowy = unpack(val) |
rawset(tbl, key, val) |
if not _G[key] then |
CreateFont(key) |
SetFont(_G[key], font, size or 12, flags or "") |
SetFont(_G[key], font, size or 12, flags or "", color, shadowx, shadowy) |
else |
SetFont(_G[key], font, size, flags) |
SetFont(_G[key], font, size, flags, color, shadowx, shadowy) |
end |
end |
}) |
error("Opacity must be a number 0 - 1.0") |
end |
tempColor = tempColor or CreateColor(1, 1, 1) |
if not tempColor then tempColor = CreateColor(1, 1, 1) end |
tempColor[1] = self[1] |
tempColor[2] = self[2] |
tempColor[3] = self[3] |
error("Opacity must be a number 0 - 1.0") |
end |
tempColor = tempColor or CreateColor(1, 1, 1) |
if not tempColor then tempColor = CreateColor(1, 1, 1) end |
tempColor[4] = self[4] |
if mode == "MULTIPLY" then |
error("Brightness must be a number -1.0 - 1.0") |
end |
tempColor = tempColor or CreateColor(1, 1, 1) |
if not tempColor then tempColor = CreateColor(1, 1, 1) end |
tempColor[1] = self[1] + brightness > 1 and 1 or (self[1] + brightness < 0 and 0 or self[1] + brightness) |
tempColor[2] = self[2] + brightness > 1 and 1 or (self[2] + brightness < 0 and 0 or self[2] + brightness) |
tempColor[3] = self[3] + brightness > 1 and 1 or (self[3] + brightness < 0 and 0 or self[3] + brightness) |
## Interface: 40000 |
## Version: a0.3 |
## Interface: 40100 |
## Version: 0.17 |
## Title: |TInterface\AddOns\hankui\media\misc\logo.blp:14:42:0:0:128:32:0:96:0:32|t |
## Author: Hank |
## Notes: Hank's UI. Made of 100% genuine, pure |cFFff00f6aw|r|cFF00ff1ees|cFF00deffom|r|cFFff2929e.|r |
# Thanks go out to: Antiarc, cael, Elkano, haste, tekkub, zork |
elements\brokerbar.lua |
feeds\time.lua |
#feeds\durability.lua |
feeds\durability.lua |
feeds\money.lua |
#feeds\dps.lua |
hooks\skinner.lua |
- Observe taint log |
- local func = _G.func where it is really necessary (alot of OnUpdates e.g.) |
- Pretty animations: http://www.youtube.com/watch?v=6kskjJNWrWE |
- Some kind of memory hog still there (buffs.lua?) |
- Elements |
- Actionbars |
- Desaturate action button textures / SetVertexColor(SignatureColor) |
- Minimap |
- Hover animation *plop* |
- Minimap blips (also affects WatchFrame) |
- *Guild*InstanceDifficulty skin |
- Nameplates |
- Apply FixedSize() |
- Bug: Statusbar value ~= representation |
- Bug: Reaction update => No castbar fill update |
- Override SetVertexColor (?) |
- Chat |
- Minimized window |
- Tab font: SetShadow...() |
- Tab title: Alert color |
- Bug: arrow texture cropped (Tab3+ on GeneralDockManager) |
- Bug: (Chat copy) Invisible chat lines |
- Blizzard PowerAuras config / skin |
- Onebag, bank, gbank |
- Search |
- I like the Zune search box |
- Sort |
- Categories |
- Buffs |
- Fonts |
- Dig through all the ingame fonts |
- Clear conventions. When Din1451? When Tahoma Bold? |
- Skinner color font option => fonts.lua |
- Texture overrides |
- Solve loading order (Skinner) |
- Reskin? |
elseif GetPrimaryTalentTree() == 3 then |
return "hps" |
else |
for i = 7, 9 do |
for i = GLYPH_ID_PRIME_1, GLYPH_ID_PRIME_3 do |
local glyph = ({GetGlyphSocketInfo(i)})[4] |
-- Check for Glyph of Savage Roar / Shred / Tiger's Fury |
if glyph == 63055 or glyph == 54815 or glyph == 94390 then return "dps" end |
function object:OnTooltipShow() |
local durability = EquippedDurability() |
if durability == 1 then return end |
self:AddLine(("Durability: |c%s%d%%|r\n "):format(colors["Red"]:GetBlend(colors["Green"], durability):GetHex(), durability * 100)) |
for i = 1, 18 do |
-- Set up namespace |
setfenv(1, setmetatable(select(2, ...), { __index = _G })) |
-- Reload UI command |
_G.SLASH_RL1 = "/rl" |
function SlashCmdList.RL() |
ReloadUI() |
end |
local this = CreateFrame("Frame") |
this.eventCallbacks = {} |
this.addonCallbacks = {} |
function FixedScale(len) |
return 768 / GetScreenHeight() * len |
end |
-- Reload UI command |
_G.SLASH_RL1 = "/rl" |
function SlashCmdList.RL() |
ReloadUI() |
end |
self:skinDropDown{obj=child} |
end |
end |
-->>-- Sound & Voice Options |
self:addSkinFrame{obj=AudioOptionsFrame, ft=ftype, kfs=true, hdr=true} |
self:skinSlider(AudioOptionsFrameCategoryFrameListScrollBar) |
self.initialized.MacroUI = true |
-->>-- Macro Frame |
self:skinFFToggleTabs("MacroFrameTab", 2) |
self:skinScrollBar{obj=MacroButtonScrollFrame} |
self:skinScrollBar{obj=MacroFrameScrollFrame} |
self:skinEditBox{obj=MacroFrameText, noSkin=true} |
self:addButtonBorder{obj=_G[btnName], relTo=_G[btnName.."Icon"], spbt=true} |
end |
end |
-- Tabs |
for i = 1, MacroFrame.numTabs do |
tab = _G["MacroFrameTab"..i] |
self:keepRegions(tab, {7, 8}) -- N.B. region 7 is text, 8 is highlight |
self:moveObject{obj=_G["MacroFrameTab"..i.."HighlightTexture"], x=-2, y=4} |
tabSF = self:addSkinFrame{obj=tab, ft=ftype, noBdr=self.isTT, ofs=3, y1=-3, y2=-3} |
tabSF.up = true -- tabs grow upwards |
-- set textures here first time thru as it's LoD |
if i == 1 then |
if self.isTT then self:setActiveTab(tabSF) end |
else |
if self.isTT then self:setInactiveTab(tabSF) end |
end |
end |
self.tabFrames[MacroFrame] = true |
-->>-- Macro Popup Frame |
self:skinEditBox{obj=MacroPopupEditBox} |
-- Search Status Frame |
self:addSkinFrame{obj=LFDSearchStatus, ft=ftype} |
-- LFD Parent Frame |
self:addSkinFrame{obj=LFDParentFrame, ft=ftype, kfs=true, x1=10, y1=-11, x2=-1} |
if not self.isPatch then |
self:addSkinFrame{obj=LFDParentFrame, ft=ftype, kfs=true, x1=10, y1=-11, x2=-1} |
else |
self:addSkinFrame{obj=LFDParentFrame, ft=ftype, kfs=true, ri=true, y1=2, x2=1} |
self:moveObject{obj=LFDParentFrameEyeFrame, x=10, y=-10} |
end |
LowerFrameLevel(self.skinFrame[LFDParentFrame]) -- hopefully allow Random cooldown frame to appear in front now |
-- Portrait |
LFDParentFramePortraitTexture:SetAlpha(0) |
LFDParentFramePortraitIcon:SetAlpha(0) |
if not self.isPatch then |
-- Portrait |
LFDParentFramePortraitTexture:SetAlpha(0) |
LFDParentFramePortraitIcon:SetAlpha(0) |
end |
-- Queue Frame |
LFDQueueFrameBackground:SetAlpha(0) |
LFDQueueFrameLayout:SetAlpha(0) |
if not self.isPatch then |
LFDQueueFrameLayout:SetAlpha(0) |
end |
self:skinDropDown{obj=LFDQueueFrameTypeDropDown} |
self:skinScrollBar{obj=LFDQueueFrameRandomScrollFrame} |
self:SecureHook("LFDQueueFrameRandom_UpdateFrame", function() |
GhostFrame:SetFrameStrata("HIGH") -- make it appear above other frames (i.e. Corkboard) |
end |
if aObj.isPatch then |
function aObj:LookingForGuildUI() -- LoD |
if not self.db.profile.LookingForGuildUI or self.initialized.LookingForGuildUI then return end |
self.initialized.LookingForGuildUI = true |
self:addSkinFrame{obj=LookingForGuildFrame, ft=ftype, kfs=true, ri=true, y1=2, x2=1} |
self:removeMagicBtnTex("LookingForGuildRequestButton") |
self:removeMagicBtnTex("LookingForGuildBrowseButton") |
-- Start Frame (Settings) |
LookingForGuildInterestFrameBg:SetAlpha(0) |
LookingForGuildAvailabilityFrameBg:SetAlpha(0) |
LookingForGuildRolesFrameBg:SetAlpha(0) |
LookingForGuildCommentFrameBg:SetAlpha(0) |
self:skinScrollBar{obj=LookingForGuildCommentInputFrameScrollFrame} |
self:addSkinFrame{obj=LookingForGuildCommentInputFrame, ft=ftype, kfs=true, ofs=-1} |
-- Browse Frame |
self:skinSlider{obj=LookingForGuildBrowseFrameContainerScrollBar} |
for i = 1, #LookingForGuildBrowseFrameContainer.buttons do |
btn = LookingForGuildBrowseFrameContainer.buttons[i] |
self:applySkin{obj=btn} |
_G[btn:GetName().."Ring"]:SetAlpha(0) |
btn.PointsSpentBgGold:SetAlpha(0) |
self:moveObject{obj=btn.PointsSpentBgGold, x=3, y=-3} |
end |
-- Apps Frame (Requests) |
self:skinSlider{obj=LookingForGuildAppsFrameContainerScrollBar} |
for i = 1, #LookingForGuildAppsFrameContainer.buttons do |
btn = LookingForGuildAppsFrameContainer.buttons[i] |
self:applySkin{obj=btn} |
end |
-- Tabs |
for i = 1, LookingForGuildFrame.numTabs do |
tab = _G["LookingForGuildFrameTab"..i] |
self:keepRegions(tab, {7, 8}) -- N.B. region 7 is text, 8 is highlight |
self:moveObject{obj=_G["LookingForGuildFrameTab"..i.."HighlightTexture"], x=-2, y=4} |
tabSF = self:addSkinFrame{obj=tab, ft=ftype, noBdr=self.isTT, ofs=-2, y2=-2} |
tabSF.up = true -- tabs grow upwards |
-- set textures here first time thru as it's LoD |
if i == 1 then |
if self.isTT then self:setActiveTab(tabSF) end |
else |
if self.isTT then self:setInactiveTab(tabSF) end |
end |
end |
self.tabFrames[LookingForGuildFrame] = true |
-- Request Membership Frame |
self:addSkinFrame{obj=GuildFinderRequestMembershipFrameInputFrame, ft=ftype} |
self:addSkinFrame{obj=GuildFinderRequestMembershipFrame, ft=ftype} |
end |
end |
L["LFR Frame"] = "공격ëíí°ì°¾ê¸° íë ì" |
L["LevelUp Display"] = "ë 벨ì íë©´" |
L["LoD Addons Delay"] = "ìì¡´ ì ëì¨ ì§ì° ìê°" |
L["Looking for Guild Frame"] = "Looking for Guild Frame" -- Requires localization |
L["Loot Frame"] = "ì 리í íë íë ì" |
L["MF Colour"] = "ì¤ê° íë ì ìì" |
L["MF Fade Height"] = "ì¤ê° íë ì Fade ëì´" |
L["Toggle the skin of the LFD Frame"] = "ëì íí°ì°¾ê¸° íë ìì ì¤í¨ì ì íí©ëë¤." |
L["Toggle the skin of the LFR Frame"] = "공격ëíí°ì°¾ê¸° íë ìì ì¤í¨ì ì íí©ëë¤." |
L["Toggle the skin of the LevelUp Display"] = "ë 벨ì íë©´ì ì¤í¨ì ì íí©ëë¤." |
L["Toggle the skin of the Looking for Guild Frame"] = "Toggle the skin of the Looking for Guild Frame" -- Requires localization |
L["Toggle the skin of the Loot Frame"] = "ì 리í íë íë ìì ì¤í¨ì ì íí©ëë¤." |
L["Toggle the skin of the Mail Frame"] = "ì°í¸ íë ìì ì¤í¨ì ì íí©ëë¤." |
L["Toggle the skin of the Main Menu Bar"] = "주 ë©ë´ë°ì ì¤í¨ì ì íí©ëë¤." |
L["LFR Frame"] = true |
L["LevelUp Display"] = true |
L["LoD Addons Delay"] = true |
L["Looking for Guild Frame"] = true |
L["Loot Frame"] = true |
L["MF Colour"] = true |
L["MF Fade Height"] = true |
L["Toggle the skin of the LFD Frame"] = true |
L["Toggle the skin of the LFR Frame"] = true |
L["Toggle the skin of the LevelUp Display"] = true |
L["Toggle the skin of the Looking for Guild Frame"] = true |
L["Toggle the skin of the Loot Frame"] = true |
L["Toggle the skin of the Mail Frame"] = true |
L["Toggle the skin of the Main Menu Bar"] = true |
L["LFR Frame"] = "å°æ±åéæ¡æ¶" |
L["LevelUp Display"] = "åç´é¡¯ç¤º" |
L["LoD Addons Delay"] = "åæ è¼å ¥æ件延é²" |
L["Looking for Guild Frame"] = "å°æ¾å ¬ææ¡æ¶" |
L["Loot Frame"] = "æ¾åæ¡æ¶" |
L["MF Colour"] = "ä¸éæ¡æ¶é¡è²" |
L["MF Fade Height"] = "ä¸éæ¡æ¶æ·¡åé«åº¦" |
L["Toggle the skin of the LFD Frame"] = "åæå°æ±å¯æ¬æ¡æ¶ç®è" |
L["Toggle the skin of the LFR Frame"] = "åæå°æ±åéæ¡æ¶ç®è" |
L["Toggle the skin of the LevelUp Display"] = "åæåç´é¡¯ç¤ºä»é¢ç®è" |
L["Toggle the skin of the Looking for Guild Frame"] = "åæå°æ¾å ¬ææ¡æ¶ç®è" |
L["Toggle the skin of the Loot Frame"] = "åææ¾åæ¡æ¶ä»é¢" |
L["Toggle the skin of the Mail Frame"] = "åæéµä»¶æ¡æ¶ä»é¢" |
L["Toggle the skin of the Main Menu Bar"] = "åæ主åè½è¡¨åä»é¢" |
L["LFR Frame"] = "LFR Frame" -- Requires localization |
L["LevelUp Display"] = "LevelUp Display" -- Requires localization |
L["LoD Addons Delay"] = "Délai des addons LoD" |
L["Looking for Guild Frame"] = "Looking for Guild Frame" -- Requires localization |
L["Loot Frame"] = "Butin" |
L["MF Colour"] = "MF Colour" -- Requires localization |
L["MF Fade Height"] = "MF Fade Height" -- Requires localization |
L["Toggle the skin of the LFD Frame"] = "Toggle the skin of the LFD Frame" -- Requires localization |
L["Toggle the skin of the LFR Frame"] = "Toggle the skin of the LFR Frame" -- Requires localization |
L["Toggle the skin of the LevelUp Display"] = "Toggle the skin of the LevelUp Display" -- Requires localization |
L["Toggle the skin of the Looking for Guild Frame"] = "Toggle the skin of the Looking for Guild Frame" -- Requires localization |
L["Toggle the skin of the Loot Frame"] = "Skinne ou non le cadre du butin." |
L["Toggle the skin of the Mail Frame"] = "Skinne ou non le cadre du courrier." |
L["Toggle the skin of the Main Menu Bar"] = "Skinne ou non la barre de menu principale." |
L["LFR Frame"] = "Suche nach Schlachtgruppe Rahmen" |
L["LevelUp Display"] = "LevelUp Display" -- Requires localization |
L["LoD Addons Delay"] = "LoD Addons Delay" -- Requires localization |
L["Looking for Guild Frame"] = "Looking for Guild Frame" -- Requires localization |
L["Loot Frame"] = "Beute Fenster" |
L["MF Colour"] = "MF Colour" -- Requires localization |
L["MF Fade Height"] = "MF Fade Height" -- Requires localization |
L["Toggle the skin of the LFD Frame"] = "Toggle the skin of the LFD Frame" -- Requires localization |
L["Toggle the skin of the LFR Frame"] = "Toggle the skin of the LFR Frame" -- Requires localization |
L["Toggle the skin of the LevelUp Display"] = "Toggle the skin of the LevelUp Display" -- Requires localization |
L["Toggle the skin of the Looking for Guild Frame"] = "Toggle the skin of the Looking for Guild Frame" -- Requires localization |
L["Toggle the skin of the Loot Frame"] = "Toggle the skin of the Loot Frame" -- Requires localization |
L["Toggle the skin of the Mail Frame"] = "Toggle the skin of the Mail Frame" -- Requires localization |
L["Toggle the skin of the Main Menu Bar"] = "Toggle the skin of the Main Menu Bar" -- Requires localization |
L["LFR Frame"] = "寻æ±å¢éæ¡æ¶" |
L["LevelUp Display"] = "å级æ¾ç¤º" |
L["LoD Addons Delay"] = "å¨ææ件延è¿" |
L["Looking for Guild Frame"] = "寻æ¾å ¬ä¼æ¡æ¶" |
L["Loot Frame"] = "æ¾åæ¡æ¶" |
L["MF Colour"] = "ä¸é´æ¡æ¶é¢è²" |
L["MF Fade Height"] = "ä¸é´æ¡æ¶æ·¡åé«åº¦" |
L["Toggle the skin of the LFD Frame"] = "åæ¢å¯»æ±å¯æ¬æ¡æ¶ç®è¤" |
L["Toggle the skin of the LFR Frame"] = "åæ¢å¯»æ±å¢éæ¡æ¶ç®è¤" |
L["Toggle the skin of the LevelUp Display"] = "åæ¢å级æ¾ç¤ºç®è¤" |
L["Toggle the skin of the Looking for Guild Frame"] = "åæ¢å¯»æ¾å ¬ä¼æ¡æ¶ç®è¤" |
L["Toggle the skin of the Loot Frame"] = "åæ¢æ¾åæ¡æ¶ç®è¤" |
L["Toggle the skin of the Mail Frame"] = "åæ¢é®ä»¶æ¡æ¶ç®è¤" |
L["Toggle the skin of the Main Menu Bar"] = "åæ¢ä¸»èåæ ç®è¤" |
b4.13914.3 |
Jncl: |
ToDo.txt |
Updated Change_History.txt |
Bugfix PaperDollFrame skin |
b4.13914.2 |
Jncl: |
ToDo.txt |
Updated Change_History.txt |
Check for Patch rather than PTR |
b4.13914.1 |
Jncl: |
ToDo.txt |
Updated Change_History.txt |
Use rounding function to find frames instead of ceil |
Updated Ace3, ElvUI & MinimalArchaeology skins |
Bugfix for Class Colouring |
Unobsoleted BaudManifest |
Skinned ReagentRestocker |
b4.13875.1 |
Jncl: |
ToDo.txt |
Updated Change_History.txt |
PTR changes |
Updated ElvUI skin |
b4.13850.1 |
Jncl: |
ToDo.txt |
Updated Change_History.txt |
Updated ElvUI skin |
Skinned REFlex |
b4.13812.1 |
Jncl: |
ToDo.txt |
Updated Change_History.txt |
Options changes |
PVP Areana panel changes |
Tab type changes |
PTR changes |
Skinned epgp_lootmaster |
b4.13707.2 |
Jncl: |
ToDo.txt |
Updated Change_History.txt |
Bugfix for PTR changes |
Updated FlightMapEnhanced |
b4.13707.1 |
Jncl: |
ToDo.txt |
Updated Change_History.txt |
PTR changes |
Updated FlightMapEnhanced & Tukui skins |
b4.13682.1 |
Jncl: |
ToDo.txt |
Updated Change_History.txt |
PTR 4.1 changes |
Updated MagicButton skinning code |
Updated AckisRecipeList, Archy, FlightMapEnhanced, MtTrader_SkillWindow & Tukui skins |
Skinned ElvUI |
b4.13623.2 |
Jncl: |
ToDo.txt |
Updated Change_History.txt |
Removed debug print statements |
Updated AucAdvanced, PowerAuras, Quartz & Tukui skins |
Skinned Scrap |
b4.13623.1 |
Jncl: |
ToDo.txt |
Updated Change_History.txt |
Updated code to help in other skins |
Updated TOC and Locale_enUs for AceLocale changes |
Bugfix for GuildUI |
Removed remaining Cata beta checks |
Updated PowerAuras & Tukui skins |
Skinned DeathNote, Fortress & WeakAuras |
Updated Ace3 skin to support WeakAuras skin |
Updated UIButtons skin to support WeakAuras skin |
b4.13561.2 |
Jncl: |
ToDo.txt |
<script file="SkinMe\BankItems.lua"/> |
<script file="SkinMe\BasicChatMods.lua"/> |
<script file="SkinMe\BaudBag.lua"/> |
<script file="SkinMe\BaudManifest.lua"/> |
<script file="SkinMe\BeanCounter.lua"/> |
<script file="SkinMe\beql.lua"/> |
<script file="SkinMe\BetterBindingFrame.lua"/> |
<script file="SkinMe\EditingUI.lua"/> |
<script file="SkinMe\EggTimer.lua"/> |
<script file="SkinMe\ElitistGroup.lua"/> |
<script file="SkinMe\ElvUI.lua"/> |
<script file="SkinMe\EnchantMe.lua"/> |
<script file="SkinMe\Enchantrix.lua"/> |
<script file="SkinMe\EnchantrixBarker.lua"/> |
<script file="SkinMe\EnhancedStackSplit.lua"/> |
<script file="SkinMe\EnhancedTradeSkills.lua"/> |
<script file="SkinMe\epgp.lua"/> |
<script file="SkinMe\epgp_lootmaster.lua"/> |
<script file="SkinMe\EquipCompare.lua"/> |
<script file="SkinMe\EventEquip.lua"/> |
<script file="SkinMe\EveryQuest.lua"/> |
<script file="SkinMe\RaidTracker.lua"/> |
<script file="SkinMe\RaidyCheck.lua"/> |
<script file="SkinMe\RandomPet30.lua"/> |
<script file="SkinMe\ReagentRestocker.lua"/> |
<script file="SkinMe\Recap.lua"/> |
<script file="SkinMe\RecipeBook.lua"/> |
<script file="SkinMe\RecipeRadar.lua"/> |
<script file="SkinMe\Recount.lua"/> |
<script file="SkinMe\REFlex.lua"/> |
<script file="SkinMe\RicoMiniMap.lua"/> |
<script file="SkinMe\RockConfig.lua"/> |
<script file="SkinMe\SayGMOTD.lua"/> |
<script file="SkinMe\Scrap.lua"/> |
<script file="SkinMe\ScrollMaster.lua"/> |
<script file="SkinMe\ShadowDancer3.lua"/> |
<script file="SkinMe\sienasGemViewer.lua"/> |
aObj.uCls = select(2, UnitClass("player")) |
local portal = GetCVar("portal") or nil |
--check to see if running on PTR |
--check to see if running on PTR versionm |
aObj.isPTR = portal == "public-test" and true or false |
-- check to see if running on Cataclysm Beta |
-- aObj.isCata = portal == "public-beta" and true or false |
-- check to see if running on Beta version |
aObj.isBeta = portal == "public-beta" and true or false |
-- check build number, if > Live then it's a patch |
local buildInfo = {GetBuildInfo()} |
aObj.isPatch = tonumber(buildInfo[2]) > 13623 and true or false |
end |
--@end-debug@]===] |
--[===[@alpha@ |
if self.isPatch then self:Debug("Patch detected") end |
if self.isPTR then self:Debug("PTR detected") end |
-- if self.isCata then self:Debug("Cataclysm Beta detected") end |
if self.isBeta then self:Debug("Beta detected") end |
--@end-alpha@]===] |
-- setup the default DB values and register them |
self.charKeys2 = {"AchievementUI"} |
self.npcKeys = {"BarbershopUI", "TrainerUI", "ReforgingUI"} -- LoD frames |
self.uiKeys1 = {"AuctionUI", "BattlefieldMm", "BindingUI", "Calendar", "DebugTools", "GMChatUI", "GMSurveyUI", "GuildBankUI", "InspectUI", "ItemSocketingUI", "MacroUI", "TimeManager"} -- LoD frames |
if self.isPTR then |
self:add2Table(self.uiKeys1, "FeedbackUI") |
end |
if self.isPatch then |
self:add2Table(self.uiKeys1, "LookingForGuildUI") |
end |
self.uiKeys2 = {} |
-- these are used to disable the gradient |
self.gradFrames = {["c"] = {}, ["u"] = {}, ["n"] = {}, ["s"] = {}} |
-- TooltipBorder colours |
c = prdb.TooltipBorder |
self.tbColour = {c.r, c.g, c.b, c.a} |
c = prdb.ClassColours and RAID_CLASS_COLORS[self.uCls] or prdb.TooltipBorder |
self.tbColour = {c.r, c.g, c.b, c.a or 1} |
-- StatusBar colours |
c = prdb.StatusBar |
self.sbColour = {c.r, c.g, c.b, c.a} |
self.sbTexture = self.LSM:Fetch("statusbar", prdb.StatusBar.texture) |
-- Backdrop colours |
c = prdb.Backdrop |
self.bColour = {c.r, c.g, c.b, c.a} |
self.bColour = {c.r, c.g, c.b, c.a or 1} |
-- BackdropBorder colours |
c = prdb.BackdropBorder |
self.bbColour = {c.r, c.g, c.b, c.a} |
c = prdb.ClassColours and RAID_CLASS_COLORS[self.uCls] or prdb.BackdropBorder |
self.bbColour = {c.r, c.g, c.b, c.a or 1} |
-- Inactive Tab & DropDowns texture |
if prdb.TabDDFile and prdb.TabDDFile ~= "None" then |
self.itTex = self.LSM:Fetch("background", aName.." User TabDDTexture") |
local function OnEditFocusLost(self) -- EditBox |
self:HighlightText(0, 0) |
self.obj:Fire("OnEditFocusLost") |
end |
local function OnEnter(self) -- EditBox / ScrollFrame |
frame:SetScript("OnShow", nil) |
end |
local function OnFocusGained(frame) |
local function OnEditFocusGained(frame) |
AceGUI:SetFocus(frame.obj) |
frame.obj:Fire("OnEditFocusGained") |
end |
--[[----------------------------------------------------------------------------- |
if not self.frame:IsShown() then |
self.frame:SetScript("OnShow", OnShowFocus) |
end |
end |
end, |
["GetCursorPosition"] = function(self) |
return self.editBox:GetCursorPosition() |
end, |
["SetCursorPosition"] = function(self, ...) |
return self.editBox:SetCursorPosition(...) |
end, |
} |
--[[----------------------------------------------------------------------------- |
editBox:SetScript("OnReceiveDrag", OnReceiveDrag) |
editBox:SetScript("OnTextChanged", OnTextChanged) |
editBox:SetScript("OnTextSet", OnTextSet) |
editBox:SetScript("OnEditFocusGained", OnFocusGained) |
editBox:SetScript("OnEditFocusGained", OnEditFocusGained) |
scrollFrame:SetScrollChild(editBox) |
TabGroup Container |
Container that uses tabs on top to switch between groups. |
-------------------------------------------------------------------------------]] |
local Type, Version = "TabGroup", 32 |
local Type, Version = "TabGroup", 34 |
local AceGUI = LibStub and LibStub("AceGUI-3.0", true) |
if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end |
frame:_SetText(text) |
local width = frame.obj.frame.width or frame.obj.frame:GetWidth() or 0 |
if wow_406 then |
PanelTemplates_TabResize(frame, 0, nil, nil, width) |
PanelTemplates_TabResize(frame, 0, nil, nil, width, frame:GetFontString():GetStringWidth()) |
else |
PanelTemplates_TabResize(frame, 0, nil, width) |
end |
for i = starttab, endtab do |
if wow_406 then |
PanelTemplates_TabResize(tabs[i], padding + 4, nil, nil, width) |
PanelTemplates_TabResize(tabs[i], padding + 4, nil, nil, width, tabs[i]:GetFontString():GetStringWidth()) |
else |
PanelTemplates_TabResize(tabs[i], padding + 4, nil, width) |
end |
local function OnEditFocusLost(self) -- EditBox |
self:HighlightText(0, 0) |
self.obj:Fire("OnEditFocusLost") |
end |
local function OnEnter(self) -- EditBox / ScrollFrame |
frame:SetScript("OnShow", nil) |
end |
local function OnFocusGained(frame) |
local function OnEditFocusGained(frame) |
AceGUI:SetFocus(frame.obj) |
frame.obj:Fire("OnEditFocusGained") |
end |
--[[----------------------------------------------------------------------------- |
if not self.frame:IsShown() then |
self.frame:SetScript("OnShow", OnShowFocus) |
end |
end |
end, |
["GetCursorPosition"] = function(self) |
return self.editBox:GetCursorPosition() |
end, |
["SetCursorPosition"] = function(self, ...) |
return self.editBox:SetCursorPosition(...) |
end, |
} |
--[[----------------------------------------------------------------------------- |
editBox:SetScript("OnReceiveDrag", OnReceiveDrag) |
editBox:SetScript("OnTextChanged", OnTextChanged) |
editBox:SetScript("OnTextSet", OnTextSet) |
editBox:SetScript("OnEditFocusGained", OnFocusGained) |
editBox:SetScript("OnEditFocusGained", OnEditFocusGained) |
scrollFrame:SetScrollChild(editBox) |
TabGroup Container |
Container that uses tabs on top to switch between groups. |
-------------------------------------------------------------------------------]] |
local Type, Version = "TabGroup", 32 |
local Type, Version = "TabGroup", 34 |
local AceGUI = LibStub and LibStub("AceGUI-3.0", true) |
if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end |
frame:_SetText(text) |
local width = frame.obj.frame.width or frame.obj.frame:GetWidth() or 0 |
if wow_406 then |
PanelTemplates_TabResize(frame, 0, nil, nil, width) |
PanelTemplates_TabResize(frame, 0, nil, nil, width, frame:GetFontString():GetStringWidth()) |
else |
PanelTemplates_TabResize(frame, 0, nil, width) |
end |
for i = starttab, endtab do |
if wow_406 then |
PanelTemplates_TabResize(tabs[i], padding + 4, nil, nil, width) |
PanelTemplates_TabResize(tabs[i], padding + 4, nil, nil, width, tabs[i]:GetFontString():GetStringWidth()) |
else |
PanelTemplates_TabResize(tabs[i], padding + 4, nil, width) |
end |
function aObj:PaperDollFrame() |
self:keepFontStrings(PaperDollFrame) |
self:skinDropDown{obj=PlayerTitleFrame} |
self:moveObject{obj=PlayerTitleFrameButton, y=1} |
self:skinScrollBar{obj=PlayerTitlePickerScrollFrame} |
self:addSkinFrame{obj=PlayerTitlePickerFrame, kfs=true, ft=ftype} |
if not self.isPatch then |
self:skinDropDown{obj=PlayerTitleFrame} |
self:moveObject{obj=PlayerTitleFrameButton, y=1} |
self:skinScrollBar{obj=PlayerTitlePickerScrollFrame} |
self:addSkinFrame{obj=PlayerTitlePickerFrame, kfs=true, ft=ftype} |
end |
self:makeMFRotatable(CharacterModelFrame) |
-- skin slots |
for _, child in ipairs{PaperDollItemsFrame:GetChildren()} do |
child:DisableDrawLayer("BACKGROUND") |
if self.modBtnBs then |
btnFrame["bg" .. i]:SetAlpha(0) |
end |
if self.modBtnBs then |
local btn |
for i = 1, #PaperDollFrameItemFlyout.buttons do |
btn = PaperDollFrameItemFlyout.buttons[i] |
if not btn.sknrBdr then self:addButtonBorder{obj=btn, ibt=true} end |
end |
end |
end) |
self:addButtonBorder{obj=GearManagerToggleButton, x1=1, x2=-1} |
if not self.isPatch then |
self:addButtonBorder{obj=GearManagerToggleButton, x1=1, x2=-1} |
end |
if self.isPatch then |
-- Sidebar Tabs |
PaperDollSidebarTabs.DecorLeft:SetAlpha(0) |
PaperDollSidebarTabs.DecorRight:SetAlpha(0) |
for i = 1, #PAPERDOLL_SIDEBARS do |
tab = _G["PaperDollSidebarTab"..i] |
tab.TabBg:SetAlpha(0) |
tab.Hider:SetAlpha(0) |
-- use a button border to indicate the active tab |
self.modUIBtns:addButtonBorder{obj=tab, relTo=tab.Icon} -- use module function here to force creation |
tab.sknrBdr:SetBackdropBorderColor(1, 0.6, 0, 1) |
end |
-- hook this to manage the active tab |
self:SecureHook("PaperDollFrame_UpdateSidebarTabs", function() |
for i = 1, #PAPERDOLL_SIDEBARS do |
local tab = _G["PaperDollSidebarTab"..i] |
if (_G[PAPERDOLL_SIDEBARS[i].frame]:IsShown()) then |
tab.sknrBdr:Show() |
else |
tab.sknrBdr:Hide() |
end |
end |
end) |
-- Titles |
self:SecureHookScript(PaperDollTitlesPane, "OnShow", function(this) |
for i = 1, #this.buttons do |
btn = this.buttons[i] |
btn:DisableDrawLayer("BACKGROUND") |
end |
self:Unhook(PaperDollTitlesPane, "OnShow") |
end) |
self:skinSlider{obj=PaperDollTitlesPane.scrollBar, size=3} |
-- Equipment Manager |
self:SecureHookScript(PaperDollEquipmentManagerPane, "OnShow", function(this) |
for i = 1, #this.buttons do |
btn = this.buttons[i] |
btn:DisableDrawLayer("BACKGROUND") |
self:addButtonBorder{obj=btn, relTo=btn.icon} |
end |
self:Unhook(PaperDollEquipmentManagerPane, "OnShow") |
end) |
self:skinSlider{obj=PaperDollEquipmentManagerPane.scrollBar, size=3} |
end |
-- GearManagerDialog Popup Frame |
self:skinScrollBar{obj=GearManagerDialogPopupScrollFrame} |
self:skinEditBox{obj=GearManagerDialogPopupEditBox, regs={9}} |
self:addSkinFrame{obj=GearManagerDialogPopup, ft=ftype, kfs=true, x1=4, y1=-2, x2=-1, y2=3} |
end |
RaiseFrameLevel(PetPaperDollPetInfo) |
-->>-- Tabs |
self:skinFFToggleTabs("PetPaperDollFrameTab") |
-- self:skinFFToggleTabs("PetPaperDollFrameTab") -- no longer used ?? |
end |
self:glazeStatusBar(PVPFrameConquestBar, 0, PVPFrameConquestBarBG) |
PVPFrameConquestBarBorder:Hide() |
self:addSkinFrame{obj=PVPFrame, ft=ftype, kfs=true, ri=true, x1=-2, y1=2, x2=1, y2=-8} |
-- Magic Button textures |
self:removeMagicBtnTex("PVPFrameLeftButton") |
self:removeMagicBtnTex("PVPFrameRightButton") |
self:removeMagicBtnTex(PVPFrameLeftButton) |
self:removeMagicBtnTex(PVPFrameRightButton) |
-->>-- Honor frame |
self:keepFontStrings(PVPFrame.panel1) |
self:skinScrollBar{obj=PVPFrame.panel1.bgTypeScrollFrame} |
PVPHonorFrameInfoScrollFrameChildFrameRewardsInfo.description:SetTextColor(self.BTr, self.BTg, self.BTb) |
PVPHonorFrameInfoScrollFrameChildFrameRewardsInfo.winReward:DisableDrawLayer("BACKGROUND") |
PVPHonorFrameInfoScrollFrameChildFrameRewardsInfo.lossReward:DisableDrawLayer("BACKGROUND") |
-- Magic Button textures |
self:removeMagicBtnTex("PVPHonorFrameWarGameButton") |
self:removeMagicBtnTex(PVPHonorFrameWarGameButton) |
-->>-- Conquest frame |
self:keepFontStrings(PVPFrame.panel2) |
PVPFrame.panel2.winReward:DisableDrawLayer("BACKGROUND") |
self:keepFontStrings(PVPFrame.panel3) |
self:keepFontStrings(PVPTeamManagementFrameWeeklyDisplay) |
self:skinUsingBD{obj=PVPTeamManagementFrameWeeklyDisplay} |
PVPFrame.panel3.flag2.NormalHeader:SetAlpha(0) |
PVPFrame.panel3.flag3.NormalHeader:SetAlpha(0) |
PVPFrame.panel3.flag5.NormalHeader:SetAlpha(0) |
PVPFrame.panel3.flag2.NormalHeader:SetTexture(nil) |
PVPFrame.panel3.flag2.GlowHeader:SetTexture(nil) |
PVPFrame.panel3.flag3.NormalHeader:SetTexture(nil) |
PVPFrame.panel3.flag3.GlowHeader:SetTexture(nil) |
PVPFrame.panel3.flag5.NormalHeader:SetTexture(nil) |
PVPFrame.panel3.flag5.GlowHeader:SetTexture(nil) |
self:skinFFColHeads("PVPTeamManagementFrameHeader", 4) |
self:skinScrollBar{obj=PVPFrame.panel3.teamMemberScrollFrame} |
self:skinDropDown{obj=PVPTeamManagementFrameTeamDropDown} |
-->>-- Static Popup Special frame |
self:addSkinFrame{obj=PVPFramePopup, ft=ftype, kfs=true, x1=9, y1=-9, x2=-7, y2=9} |
-- Hook this to suppress the PVP Banner Header from being displayed when new team created |
self:SecureHook("CreateArenaTeam", function(size, name, ...) |
self:Debug("CreateArenaTeam: [%s, %s]", size,name) |
if size == 2 then |
PVPFrame.panel3.flag2.NormalHeader:SetTexture(nil) |
PVPFrame.panel3.flag2.GlowHeader:SetTexture(nil) |
elseif size == 3 then |
PVPFrame.panel3.flag3.NormalHeader:SetTexture(nil) |
PVPFrame.panel3.flag3.GlowHeader:SetTexture(nil) |
elseif size == 5 then |
PVPFrame.panel3.flag5.NormalHeader:SetTexture(nil) |
PVPFrame.panel3.flag5.GlowHeader:SetTexture(nil) |
end |
end) |
end |
function aObj:PetStableFrame() |
end |
-->>-- Tabs (bottom) |
local x1, y1, x2, y2 |
if self.isPTR then |
if self.isPatch then |
x1, y1, x2, y2 = 8, 1, -8, 2 |
else |
x1, y1, x2, y2 = 6, 1, -6, 2 |
RaiseFrameLevel(obj.SelectTreeButton) -- so button can be clicked |
end |
end |
-- Magic Button textures |
self:removeMagicBtnTex("PlayerTalentFrameResetButton") |
self:removeMagicBtnTex("PlayerTalentFrameLearnButton") |
self:removeMagicBtnTex("PlayerTalentFrameToggleSummariesButton") |
self:removeMagicBtnTex(PlayerTalentFrameResetButton) |
self:removeMagicBtnTex(PlayerTalentFrameLearnButton) |
self:removeMagicBtnTex(PlayerTalentFrameToggleSummariesButton) |
-->>-- Pet Talents Panel |
PlayerTalentFramePetPanel:DisableDrawLayer("BORDER") |
PlayerTalentFramePetModelBg:Hide() |
_G["DungeonCompletionAlertFrame1Reward1"]:DisableDrawLayer("OVERLAY") -- border texture |
self:addSkinFrame{obj=DungeonCompletionAlertFrame1, ft=ftype, anim=true, x1=5, y1=-13, x2=-5, y2=4} |
-- GuildChallengeAlert Frame |
if self.isPatch then |
GuildChallengeAlertFrame:DisableDrawLayer("BACKGROUND") |
GuildChallengeAlertFrame:DisableDrawLayer("BORDER") |
self:addSkinFrame{obj=GuildChallengeAlertFrame, ft=ftype, anim=true, x1=5, y1=-13, x2=-5, y2=4} |
end |
end |
self:add2Table(self.charKeys1, "FriendsFrame") |
-->>-- FriendsList Frame |
-- FriendsTabHeader Frame |
-- Tabs |
for i = 1, FriendsTabHeader.numTabs do |
tab = _G["FriendsTabHeaderTab"..i] |
self:keepRegions(tab, {7, 8}) -- N.B. region 7 is text, 8 is highlight |
self:moveObject{obj=_G["FriendsTabHeaderTab"..i.."HighlightTexture"], x=-2, y=4} |
tabSF = self:addSkinFrame{obj=tab, ft=ftype, noBdr=self.isTT, y1=-3, y2=-3} |
tabSF.up = true -- tabs grow upwards |
-- set textures here first time thru as it's LoD |
if i == 1 then |
if self.isTT then self:setActiveTab(tabSF) end |
else |
if self.isTT then self:setInactiveTab(tabSF) end |
end |
end |
self.tabFrames[FriendsTabHeader] = true |
-- FriendsList Frame |
self:skinDropDown{obj=FriendsFrameStatusDropDown} |
FriendsFrameStatusDropDownStatus:SetAlpha(1) -- display status icon |
self:adjWidth{obj=_G["FriendsFrameStatusDropDownMiddle"], adj=4} |
-- Add a skin frame to include the icon at the front |
self:skinEditBox{obj=FriendsFrameBroadcastInput, regs={9, 10}, noSkin=true} -- region 10 is icon |
self:addSkinFrame{obj=FriendsFrameBroadcastInput, nb=true, aso={bd=3, ng=true, ebc=true}, x1=-24} |
self:skinFFToggleTabs("FriendsTabHeaderTab") |
-- adjust width of FFFSF so it looks right (too thin by default) |
FriendsFrameFriendsScrollFrameScrollBar:SetPoint("BOTTOMLEFT", FriendsFrameFriendsScrollFrame, "BOTTOMRIGHT", -4, 14) |
self:skinSlider{obj=FriendsFrameFriendsScrollFrameScrollBar} |
self:addButtonBorder{obj=TradeSkillSkillIcon} |
self:skinEditBox{obj=TradeSkillInputBox, noHeight=true, x=-5} |
self:addSkinFrame{obj=TradeSkillFrame, ft=ftype, kfs=true, ri=true, x1=-3, y1=2, x2=1, y2=-5} |
-- Magic Button textures |
self:removeMagicBtnTex("TradeSkillCreateAllButton") |
self:removeMagicBtnTex("TradeSkillCancelButton") |
self:removeMagicBtnTex("TradeSkillCreateButton") |
self:removeMagicBtnTex("TradeSkillViewGuildCraftersButton") |
self:removeMagicBtnTex(TradeSkillCreateAllButton) |
self:removeMagicBtnTex(TradeSkillCancelButton) |
self:removeMagicBtnTex(TradeSkillCreateButton) |
self:removeMagicBtnTex(TradeSkillViewGuildCraftersButton) |
-- Guild sub frame |
self:addSkinFrame{obj=TradeSkillGuildFrameContainer, ft=ftype} |
self:addSkinFrame{obj=TradeSkillGuildFrame, ft=ftype, kfs=true, ofs=-7} |
self:skinAllButtons{obj=QuestLogControlPanel} -- Abandon/Push/Track |
self:addButtonBorder{obj=QuestLogFrameShowMapButton, relTo=QuestLogFrameShowMapButton.texture, x1=2, y1=-1, x2=-2, y2=1} |
self:addSkinFrame{obj=QuestLogFrame, ft=ftype, kfs=true, x1=10, y1=-11, x2=-1, y2=8} |
-- Magic Button textures |
self:removeMagicBtnTex("QuestLogFrameCompleteButton") |
self:removeMagicBtnTex(QuestLogFrameCompleteButton) |
-->>-- QuestLogDetail Frame |
QuestLogDetailTitleText:SetTextColor(self.HTr, self.HTg, self.HTb) |
self.initialized.RaidUI = true |
local function skinPulloutFrames() |
local obj, objName |
for i = 1, NUM_RAID_PULLOUT_FRAMES do |
objName = "RaidPullout"..i |
end |
-->>-- Compact Party Frame |
CompactPartyFrame.borderFrame:SetAlpha(0) |
for i = 1, MEMBERS_PER_RAID_GROUP do |
skinUnit(_G["CompactPartyFrameMember"..i]) |
end |
self:addSkinFrame{obj=CompactPartyFrame, ft=ftype, x1=2, y1=-10, x2=-3, y2=3} |
self:SecureHook("CompactPartyFrame_OnLoad", function() |
self:addSkinFrame{obj=CompactPartyFrame, ft=ftype, x1=2, y1=-10, x2=-3, y2=3} |
self:Unhook("CompactPartyFrame_OnLoad") |
end) |
-- hook this to skin any new CompactRaidGroup(s) |
self:SecureHook("CompactRaidGroup_UpdateBorder", function(frame) |
skinGrp(frame) |
end |
-- Buttons |
for _, v in pairs{"Tank", "Healer", "Damager"} do |
skinButton(_G["CompactRaidFrameManagerDisplayFrameFilterRole"..v]) |
skinButton(CompactRaidFrameManager.displayFrame.filterOptions["filterRole"..v]) |
end |
for i = 1, 8 do |
skinButton(_G["CompactRaidFrameManagerDisplayFrameFilterGroup"..i]) |
skinButton(CompactRaidFrameManager.displayFrame.filterOptions["filterGroup"..i]) |
end |
skinButton(CompactRaidFrameManagerDisplayFrameLockedModeToggle) |
skinButton(CompactRaidFrameManagerDisplayFrameHiddenModeToggle) |
-- Leader Options |
skinButton(CompactRaidFrameManagerDisplayFrameLeaderOptionsRaidWorldMarkerButton) |
CompactRaidFrameManagerDisplayFrameLeaderOptionsRaidWorldMarkerButton:GetNormalTexture():SetAlpha(1) -- icon |
skinButton(CompactRaidFrameManagerDisplayFrameLeaderOptionsInitiateReadyCheck) |
skinButton(CompactRaidFrameManagerDisplayFrameLeaderOptionsInitiateRolePoll) |
skinButton(CompactRaidFrameManager.displayFrame.leaderOptions.readyCheckButton) |
skinButton(CompactRaidFrameManager.displayFrame.leaderOptions.rolePollButton) |
-- Display Frame |
self:keepFontStrings(CompactRaidFrameManagerDisplayFrame) |
self:keepFontStrings(CompactRaidFrameManager.displayFrame) |
-- Resize Frame |
self:addSkinFrame{obj=CompactRaidFrameManagerContainerResizeFrame, ft=ftype, kfs=true, x1=-2, y1=-1, y2=4} |
self:addSkinFrame{obj=CompactRaidFrameManager.containerResizeFrame, ft=ftype, kfs=true, x1=-2, y1=-1, y2=4} |
-- Raid Frame Manager Frame |
self:addSkinFrame{obj=CompactRaidFrameManager, ft=ftype, kfs=true} |
if not self.db.profile.ArchaeologyUI or self.initialized.ArchaeologyUI then return end |
self.initialized.ArchaeologyUI = true |
self:moveObject{obj=ArchaeologyFrame.infoButton, x=-25} |
self:skinDropDown{obj=ArchaeologyFrame.raceFilterDropDown} |
ArchaeologyFrameRankBarBackground:SetAllPoints(ArchaeologyFrame.rankBar) |
ArchaeologyFrameRankBarBorder:Hide() |
if not self.db.profile.GuildUI or self.initialized.GuildUI then return end |
self.initialized.GuildUI = true |
-- Guild Panel |
-->>-- Guild Frame |
GuildFrameBottomInset:DisableDrawLayer("BACKGROUND") |
GuildFrameBottomInset:DisableDrawLayer("BORDER") |
self:skinDropDown{obj=GuildDropDown} |
GuildFactionBarShadow:SetAlpha(0) |
GuildFactionBarCap:SetTexture(self.sbTexture) |
GuildFactionBarCapMarker:SetAlpha(0) |
-- Magic Button textures |
self:removeMagicBtnTex("GuildAddMemberButton") |
self:removeMagicBtnTex("GuildControlButton") |
self:removeMagicBtnTex("GuildViewLogButton") |
self:keepRegions(GuildFrame, {8, 19, 20, 18, 21, 22}) -- regions 8, 19, 20 are text, 18, 21 & 22 are tabard |
self:moveObject{obj=GuildFrameTabardBackground, x=6, y=-10} |
self:moveObject{obj=GuildFrameTabardEmblem, x=6, y=-10} |
self:moveObject{obj=GuildFrameTabardBorder, x=6, y=-10} |
self:addSkinFrame{obj=GuildFrame, ft=ftype, ri=true, x1=-5, y1=2, x2=1, y2=-6} |
self:removeMagicBtnTex(GuildAddMemberButton) |
self:removeMagicBtnTex(GuildControlButton) |
self:removeMagicBtnTex(GuildViewLogButton) |
-- Tabs |
for i = 1, GuildFrame.numTabs do |
tab = _G["GuildFrameTab"..i] |
self:keepRegions(tab, {7, 8}) -- N.B. region 7 is text, 8 is highlight |
tabSF = self:addSkinFrame{obj=tab, ft=ftype, noBdr=self.isTT, x1=6, y1=0, x2=-6, y2=2} |
-- set textures here first time thru as it's LoD |
if i == 1 then |
if self.isTT then self:setActiveTab(tabSF) end |
else |
if self.isTT then self:setInactiveTab(tabSF) end |
end |
end |
self.tabFrames[GuildFrame] = true |
-- GuildMain Frame |
GuildPerksToggleButton:DisableDrawLayer("BACKGROUND") |
GuildNewPerksFrame:DisableDrawLayer("BACKGROUND") |
self:removeRegions(btn, {1, 2, 3, 4, 5, 6}) |
self:addButtonBorder{obj=btn, relTo=btn.icon, reParent={btn.lock}} |
end |
self:keepRegions(GuildFrame, {8, 19, 20, 18, 21, 22}) -- regions 8, 19, 20 are text, 18, 21 & 22 are tabard |
self:moveObject{obj=GuildFrameTabardBackground, x=6, y=-10} |
self:moveObject{obj=GuildFrameTabardEmblem, x=6, y=-10} |
self:moveObject{obj=GuildFrameTabardBorder, x=6, y=-10} |
self:addSkinFrame{obj=GuildFrame, ft=ftype, ri=true, x1=-5, y1=2, x2=1, y2=-6} |
-- Roster Panel |
-->>-- GuildRoster Frame |
self:skinDropDown{obj=GuildRosterViewDropdown} |
self:skinFFColHeads("GuildRosterColumnButton", 5) |
self:skinSlider{obj=GuildRosterContainerScrollBar, size=2} |
self:applySkin{obj=btn.header} |
self:addButtonBorder{obj=btn, relTo=btn.icon, hide=true, es=12} |
end |
if self.isPatch then |
self:skinDropDown{obj=GuildMemberRankDropdown} |
end |
self:addSkinFrame{obj=GuildMemberDetailFrame, ft=ftype, kfs=true, nb=true, ofs=-6} |
-- News Panel |
-->>-- GuildNews Frame |
GuildNewsFrame:DisableDrawLayer("BACKGROUND") |
self:skinSlider{obj=GuildNewsContainerScrollBar, size=2} |
for i = 1, #GuildNewsContainer.buttons do |
self:addButtonBorder{obj=btn, relTo=btn.icon, reParent={btn.lock}} |
end |
self:skinDropDown{obj=GuildRewardsDropDown} |
-- Info Panel |
-->>-- GuildInfo Frame |
self:removeRegions(GuildInfoFrame, {1, 2, 3, 4, 5, 6 ,7, 8}) -- Background textures and bars |
if self.isPatch then |
-- Tabs |
for i = 1, GuildInfoFrame.numTabs do |
tab = _G["GuildInfoFrameTab"..i] |
self:keepRegions(tab, {7, 8}) -- N.B. region 7 is text, 8 is highlight |
tabSF = self:addSkinFrame{obj=tab, ft=ftype, noBdr=self.isTT, x1=2, y1=-5, x2=2, y2=-5} |
tabSF.up = true -- tabs grow upwards |
-- set textures here first time thru as it's LoD |
if i == 1 then |
if self.isTT then self:setActiveTab(tabSF) end |
else |
if self.isTT then self:setInactiveTab(tabSF) end |
end |
end |
self.tabFrames[GuildInfoFrame] = true |
end |
-- GuildInfoFrameInfo Frame |
if self.isPatch then |
self:keepFontStrings(GuildInfoFrameInfo) |
end |
self:skinSlider{obj=GuildInfoEventsContainerScrollBar, size=2} |
GuildInfoNoEvents:SetTextColor(self.BTr, self.BTg, self.BTb) |
self:skinSlider{obj=GuildInfoDetailsFrameScrollBar, size=2} |
if self.isPatch then |
-- GuildInfoFrameRecruitment Frame |
GuildRecruitmentInterestFrameBg:SetAlpha(0) |
GuildRecruitmentAvailabilityFrameBg:SetAlpha(0) |
GuildRecruitmentRolesFrameBg:SetAlpha(0) |
GuildRecruitmentLevelFrameBg:SetAlpha(0) |
GuildRecruitmentCommentFrameBg:SetAlpha(0) |
self:skinScrollBar{obj=GuildRecruitmentCommentInputFrameScrollFrame} |
self:addSkinFrame{obj=GuildRecruitmentCommentFrame, ft=ftype, kfs=true} |
self:removeMagicBtnTex(GuildRecruitmentListGuildButton) |
-- GuildInfoFrameApplicants Frame |
for i = 1, #GuildInfoFrameApplicantsContainer.buttons do |
btn = GuildInfoFrameApplicantsContainer.buttons[i] |
self:applySkin{obj=btn} |
btn.ring:SetAlpha(0) |
btn.PointsSpentBgGold:SetAlpha(0) |
self:moveObject{obj=btn.PointsSpentBgGold, x=3, y=-3} |
end |
self:skinSlider{obj=GuildInfoFrameApplicantsContainerScrollBar} |
self:removeMagicBtnTex(GuildRecruitmentInviteButton) |
self:removeMagicBtnTex(GuildRecruitmentDeclineButton) |
self:removeMagicBtnTex(GuildRecruitmentMessageButton) |
end |
-- Guild Text Edit frame |
self:skinSlider{obj=GuildTextEditScrollFrameScrollBar, size=2} |
self:addSkinFrame{obj=GuildTextEditContainer, ft=ftype, nb=true} |
self:addSkinFrame{obj=GuildLogContainer, ft=ftype, nb=true} |
self:addSkinFrame{obj=GuildLogFrame, ft=ftype, kfs=true, nb=true, ofs=-7} |
-->>-- Tabs |
for i = 1, GuildFrame.numTabs do |
tab = _G["GuildFrameTab"..i] |
self:keepRegions(tab, {7, 8}) -- N.B. region 7 is text, 8 is highlight |
tabSF = self:addSkinFrame{obj=tab, ft=ftype, noBdr=self.isTT, x1=6, y1=0, x2=-6, y2=2} |
-- set textures here first time thru as it's LoD |
if i == 1 then |
if self.isTT then self:setActiveTab(tabSF) end |
else |
if self.isTT then self:setInactiveTab(tabSF) end |
end |
end |
self.tabFrames[GuildFrame] = true |
end |
function aObj:GuildControlUI() -- LoD |
self:skinDropDown{obj=GuildControlUI.bankTabFrame.dropdown} |
GuildControlUI.bankTabFrame.inset:DisableDrawLayer("BACKGROUND") |
GuildControlUI.bankTabFrame.inset:DisableDrawLayer("BORDER") |
-- hook this as buttons are cretaed as required |
-- hook this as buttons are created as required |
self:SecureHook("GuildControlUI_BankTabPermissions_Update", function(this) |
self:Debug("GuildControlUI_BankTabPermissions_Update: [%s]", this) |
for i = 1, MAX_BUY_GUILDBANK_TABS do |
(frame or DEFAULT_CHAT_FRAME):AddMessage(text, r, g, b, 1, 5) |
end |
local function round2(num, ndp) |
return tonumber(("%." .. (ndp or 0) .. "f"):format(num)) |
end |
--[===[@debug@ |
function printTS(...) |
print(("[%s.%03d]"):format(date("%H:%M:%S"), (GetTime() % 1) * 1000), ...) |
self:RegisterChatCommand("pl", function(msg) local itemLink = select(2, GetItemInfo(msg)) local pLink = gsub(itemLink, "|", "||") print(msg, "is", pLink) end) |
self:RegisterChatCommand("ft", function(msg) local lvl, fName = "Parent", GetMouseFocus() print(makeText("Frame is %s, %s, %s", fName, fName:GetFrameLevel(), fName:GetFrameStrata())) while fName:GetParent() do fName = fName:GetParent() print(makeText("%s is %s, %s, %s", lvl, fName, (fName:GetFrameLevel() or "<Anon>"), (fName:GetFrameStrata() or "<Anon>"))) lvl = (lvl:find("Grand") and "Great" or "Grand")..lvl end end) |
self:RegisterChatCommand("si", function(msg) self:ShowInfo(_G[msg] or GetMouseFocus(), true, false) end) |
self:RegisterChatCommand("sip", function(msg) self:ShowInfo(_G[msg] or GetMouseFocus():GetParent(), true, false) end) |
self:RegisterChatCommand("sipb", function(msg) self:ShowInfo(_G[msg] or GetMouseFocus():GetParent(), false, false) end) |
self:RegisterChatCommand("sid", function(msg) self:ShowInfo(_G[msg] or GetMouseFocus(), true, true) end) |
self:RegisterChatCommand("sib", function(msg) self:ShowInfo(_G[msg] or GetMouseFocus(), false, false) end) |
self:RegisterChatCommand("sp", function(msg) return Spew and Spew("xyz", _G[msg]) end) |
if obj:IsObjectType("Frame") then |
if obj:GetName() == nil then |
if obj:GetParent() == nil then |
if ceil(obj:GetHeight()) == height and ceil(obj:GetWidth()) == width then |
if round2(obj:GetHeight(), 2) == height and round2(obj:GetWidth(), 2) == width then |
kids = {} |
for _, child in pairs{obj:GetChildren()} do |
kids[#kids + 1] = child:GetObjectType() |
if select("#", ...) > 2 then |
-- base checks on position |
point, relativeTo, relativePoint, xOfs, yOfs = child:GetPoint() |
xOfs = xOfs and ceil(xOfs) or 0 |
yOfs = yOfs and ceil(yOfs) or 0 |
xOfs = xOfs and round2(xOfs, 2) or 0 |
yOfs = yOfs and round2(yOfs, 2) or 0 |
if point == select(1, ...) |
and relativeTo == select(2, ...) |
and relativePoint == select(3, ...) |
end |
else |
-- base checks on size |
height, width = ceil(child:GetHeight()), ceil(child:GetWidth()) |
height, width = round2(child:GetHeight(), 2), round2(child:GetWidth(), 2) |
if height == select(1, ...) |
and width == select(2, ...) then |
frame = child |
function aObj:removeMagicBtnTex(btn) |
-- Magic Button textures |
if _G[btn.."_LeftSeparator"] then _G[btn.."_LeftSeparator"]:SetAlpha(0) end |
if _G[btn.."_RightSeparator"] then _G[btn.."_RightSeparator"]:SetAlpha(0) end |
if btn.LeftSeparator then btn.LeftSeparator:SetAlpha(0) end |
if btn.RightSeparator then btn.RightSeparator:SetAlpha(0) end |
end |
end |
local function round2(num, ndp) |
return tonumber(("%." .. (ndp or 0) .. "f"):format(num)) |
end |
function aObj:ShowInfo(obj, showKids, noDepth) |
--[===[@alpha@ |
function aObj:Archy() |
Archy.db.profile.artifact.fragmentBarTexture = self.db.profile.StatusBar.texture |
local function skinFragment(obj) |
obj.fragmentBar.barBackground:Hide() |
obj.fragmentBar.barTexture.SetTexCoord = function() end |
self:glazeStatusBar(obj.fragmentBar, 0, nil) |
-- don't skin button in "Compact" form |
if not Archy.db.profile.artifact.style == "Compact" then self:skinButton{obj=v.solveButton} end |
if not Archy.db.profile.artifact.style == "Compact" then aObj:skinButton{obj=v.solveButton} end |
end |
-->>-- DigSite Frame |
end) |
end |
self:addSkinFrame{obj=ArchyDigSiteFrame, nb=true} |
-- stop frame backdrop from being changed |
ArchyDigSiteFrame.SetBackdrop = function() end |
ArchyDigSiteFrame.SetBackdropColor = function() end |
ArchyDigSiteFrame.SetBackdropBorderColor = function() end |
-- DistanceIndicator Frame |
self:skinButton{obj=ArchyDistanceIndicatorFrameSurveyButton} |
skinFragment(t[k]) |
end) |
self:addSkinFrame{obj=ArchyArtifactFrame, nb=true} |
-- stop frame backdrop from being changed |
ArchyArtifactFrame.SetBackdrop = function() end |
ArchyArtifactFrame.SetBackdropColor = function() end |
ArchyArtifactFrame.SetBackdropBorderColor = function() end |
if self.modBtns then |
self:SecureHook(Archy, "RefreshRacesDisplay", function(this) |
for _, v in pairs(ArchyArtifactFrame.children) do |
FlightMapEnhancedTaxiChoice:DisableDrawLayer("BACKGROUND") |
FlightMapEnhancedTaxiChoice:DisableDrawLayer("BORDER") |
self:addSkinFrame{obj=FlightMapEnhancedTaxiChoice, kfs=true, ofs=2} |
-- remove textures from the destination buttons |
self:SecureHookScript(FlightMapEnhancedTaxiChoice, "OnShow", function(this) |
for i = 1, #FlightMapEnhancedTaxiChoiceContainer.buttons do |
local btn = FlightMapEnhancedTaxiChoiceContainer.buttons[i] |
self:keepRegions(btn, {2, 6, 7, 8}) -- N.B. region 2 & 7 are the text, 6 is the icon, 8 is the highlight |
end |
self:Unhook(FlightMapEnhancedTaxiChoice, "OnShow") |
end) |
-- Flight Timer frame |
if FlightMapEnhanced_Config |
and FlightMapEnhanced_Config.vconf |
and FlightMapEnhanced_Config.vconf.modules |
and FlightMapEnhanced_Config.vconf.modules["ft"] == 1 then |
local bd |
-- find the frame and skin it |
for _, child in pairs{UIParent:GetChildren()} do |
if child:GetName() == nil then |
if child.GetBackdrop then |
bd = child:GetBackdrop() |
if bd and bd.bgFile and bd.bgFile:find("ftimes_frame") then |
self:addSkinFrame{obj=child, kfs=true, y1=3, y2=12} |
break |
end |
end |
end |
end |
end |
end |
function aObj:MinimalArchaeology() |
MinimalArchaeologyFrameSkillBarBorder:Hide() |
MinimalArchaeologyFrameSkillBarBackground:SetAllPoints(MinimalArchaeologyFrame.skillBar) |
self:glazeStatusBar(MinimalArchaeologyFrame.skillBar, 0, MinimalArchaeologyFrameSkillBarBackground) |
-- Buttons |
self:skinButton{obj=MinArchMain.buttonOpenHist, ob2="h"} |
self:moveObject{obj=MinArchMain.buttonOpenHist, x=self.modBtns and 2 or 8} |
self:skinButton{obj=MinArchMain.buttonOpenArch, ob2="a"} |
self:moveObject{obj=MinArchMain.buttonOpenArch, x=self.modBtns and 2 or 8} |
self:skinButton{obj=MinArchMain.openADIButton, ob2="d"} |
self:moveObject{obj=MinArchMain.openADIButton, x=self.modBtns and 2 or 8} |
self:skinButton{obj=MinArchMain.buttonClose, ob2="x"} |
self:moveObject{obj=MinArchMain.buttonClose, x=self.modBtns and 2 or 8} |
-- Skill Bar |
MinArchMainSkillBarBorder:Hide() |
MinArchMainSkillBarBackground:SetAllPoints(MinArchMain.skillBar) |
self:glazeStatusBar(MinArchMain.skillBar, 0, MinArchMainSkillBarBackground) |
-- Artifact Bars |
for i = 1, 10 do |
local objName = "MinimalArchaeologyFrameArtifactBar"..i |
local objName = "MinArchMainArtifactBar"..i |
local obj = _G[objName] |
_G[objName.."BarBG"]:Hide() |
obj:GetStatusBarTexture():SetTexCoord(0, 1, 0, 1) |
obj.progress:GetStatusBarTexture():SetTexCoord(0, 1, 0, 1) |
self:glazeStatusBar(obj, 0, nil) |
self:glazeStatusBar(obj.progress, 0, nil) |
self:skinButton{obj=obj.solveButton} |
self:skinButton{obj=obj.buttonSolve} |
end |
-- Frame |
self:addSkinFrame{obj=MinArchMain, nb=true, y1=4} |
self:skinButton{obj=MinimalArchaeologyFrame.openHistButton, ob2="h"} |
self:moveObject{obj=MinimalArchaeologyFrame.openHistButton, x=self.modBtns and 2 or 8} |
self:skinButton{obj=MinimalArchaeologyFrame.openArchButton, ob2="a"} |
self:moveObject{obj=MinimalArchaeologyFrame.openArchButton, x=self.modBtns and 2 or 8} |
self:skinButton{obj=MinimalArchaeologyFrame.closeButton, ob2="x"} |
self:moveObject{obj=MinimalArchaeologyFrame.closeButton, x=self.modBtns and 2 or 8} |
self:addSkinFrame{obj=MinimalArchaeologyFrame, nb=true, y1=4} |
-->>-- option panels |
self:addSkinFrame{obj=MinimalArchaeologyOptionPanel.hideArtifact} |
self:addSkinFrame{obj=MinimalArchaeologyOptionPanel.useKeystones} |
self:addSkinFrame{obj=MinimalArchaeologyOptionPanel.miscOptions} |
self:addSkinFrame{obj=MinimalArchaeologyOptionPanel.frameScale} |
self:addSkinFrame{obj=MinArchOptionPanel.hideArtifact} |
self:addSkinFrame{obj=MinArchOptionPanel.capArtifact} |
self:addSkinFrame{obj=MinArchOptionPanel.useKeystones} |
self:addSkinFrame{obj=MinArchOptionPanel.miscOptions} |
self:addSkinFrame{obj=MinArchOptionPanel.frameScale} |
-->>-- History Frame |
MinimalArchaeologyHistoryFrameGrad.bg:Hide() |
self:skinButton{obj=MinimalArchaeologyHistoryFrame.closeButton, ob2="x"} |
self:moveObject{obj=MinimalArchaeologyHistoryFrame.closeButton, x=self.modBtns and 2 or 8} |
self:addSkinFrame{obj=MinimalArchaeologyHistoryFrame, nb=true, y1=4} |
MinArchHistGrad.bg:Hide() |
self:skinButton{obj=MinArchHist.buttonClose, ob2="x"} |
self:moveObject{obj=MinArchHist.buttonClose, x=self.modBtns and 2 or 8} |
self:addSkinFrame{obj=MinArchHist, nb=true, y1=4} |
-- hook this to remove background textures |
self:SecureHook(MinimalArchaeology, "CreateHistoryList", function(this, raceID) |
self:SecureHook(MinArch, "CreateHistoryList", function(this, raceID) |
MinArchScrollFrame.bg:Hide() |
MinArchScrollBar.bg:Hide() |
self:Unhook(MinimalArchaeology, "CreateHistoryList") |
self:skinSlider{obj=MinArchScrollBar} |
self:Unhook(MinArch, "CreateHistoryList") |
end) |
-->>-- Digsites Frame |
MinArchDigsitesGrad.bg:Hide() |
self:addButtonBorder{obj=MinArchDigsites.kalimdorButton} |
self:addButtonBorder{obj=MinArchDigsites.easternButton} |
self:addButtonBorder{obj=MinArchDigsites.outlandsButton} |
self:addButtonBorder{obj=MinArchDigsites.northrendButton} |
self:skinButton{obj=MinArchDigsites.buttonClose, ob2="x"} |
self:moveObject{obj=MinArchDigsites.buttonClose, x=self.modBtns and 2 or 8} |
self:addSkinFrame{obj=MinArchDigsites, nb=true, y1=4} |
self:SecureHook(MinArch, "CreateDigSitesList", function(this, contID) |
MinArchDSScrollFrame.bg:Hide() |
MinArchScrollDSBar.bg:Hide() |
-- self:skinSlider{obj=MinArchScrollDSBar} |
self:Unhook(MinArch, "CreateDigSitesList") |
end) |
-->>-- Tooltip |
self:addButtonBorder{obj=MinArchTooltipIcon, relTo=MinArchTooltipIcon.icon, ofs=1} |
end |
self:skinDropDown{obj=PowaDropDownStacksTexture} |
self:skinDropDown{obj=PowaBuffStacksRelative} |
self:addSkinFrame{obj=PowaBarConfigFrameEditor6, ofs=2} |
end |
if not aObj:isAddonEnabled("PowerAurasButtons_Config") then return end |
function aObj:PowerAurasButtons() |
function aObj:PowerAurasButtons_Config() |
-- skin Module Manager frame |
self:addSkinFrame{obj=PowerAurasButtons_ModuleScrollFrame:GetParent()} |
self:SecureHook(PowerAurasButtons_Config, "CreateOptionsFrame", function(this) |
self:skinSlider{obj=PowerAurasButtons_SliderThrottle}--, size=3} |
self:Unhook(PowerAurasButtons_Config, "CreateOptionsFrame") |
end) |
self:SecureHook(PowerAurasButtons_Config, "CreateActionSettingsFrame", function(this) |
self:moveObject{obj=PowerAurasButtonsActionsFrame, x=6, y=2} |
self:addSkinFrame{obj=PowerAurasButtonsActionsFrame, kfs=true, ofs=-2} |
local AuraFrame = self:getChild(PowerAurasButtonsActionsFrame, 1) |
self:addSkinFrame{obj=AuraFrame, kfs=true, ofs=2} |
self:skinScrollBar{obj=AuraFrame.Scroll} |
self:skinButton{obj=AuraFrameList.Items[1].newAction, mp2=true, as=true} |
self:Unhook(PowerAurasButtons_Config, "CreateActionSettingsFrame") |
end) |
self:SecureHook(PowerAurasButtons_Config, "CreateAuraAction", function(this) |
for i = 2, #AuraFrameList.Items do |
local item = AuraFrameList.Items[i] |
if not self.skinned[item] then |
self:skinDropDown{obj=item.ActionType} |
self:skinEditBox{obj=item.ActionID, regs={9}} |
end |
end |
end) |
end |
if not Skinner:isAddonEnabled("Recount") then return end |
local aName, aObj = ... |
if not aObj:isAddonEnabled("Recount") then return end |
function Skinner:Recount() |
function aObj:Recount() |
local x1, y1, x2, y2 = -4, -10, 4, -4 |
-- Hook this to get window objects and skin them |
if window:GetName() == "Recount_ReportWindow" then -- report window |
self:skinEditBox{obj=window.Whisper, regs={9}, noHeight=true} |
window.Whisper:SetHeight(window.Whisper:GetHeight() + 6) |
self:skinSlider{obj=window.slider} |
x1, y1, x2, y2 = -2, -8, 2, -2 |
elseif window:GetName() == "Recount_ConfigWindow" then -- config window(s) |
self:skinSlider{obj=Recount_ConfigWindow_Scaling_Slider} |
self:skinSlider{obj=Recount_ConfigWindow_RowHeight_Slider} |
self:skinSlider{obj=Recount_ConfigWindow_RowSpacing_Slider} |
x1, y1, x2, y2 = -4, -8, 5, -2 |
end |
self:addSkinFrame{obj=window, kfs=true, x1=x1, y1=y1, x2=x2, y2=y2} |
-->>-- Main Window |
self:addSkinFrame{obj=Recount.MainWindow, kfs=true, x1=-2, y1=-8, x2=2} |
-->>-- Detail Window |
self:addSkinFrame{obj=Recount_DetailWindow, kfs=true, x1=-2, y1=-8, x2=3, y2=-2} |
self:addSkinFrame{obj=Recount.DetailWindow, kfs=true, x1=-2, y1=-8, x2=3, y2=-2} |
-->>-- Graph Window |
self:addSkinFrame{obj=Recount_GraphWindow, kfs=true, hdr=true, x1=-2, y1=-8, x2=2, y2=-2} |
self:addSkinFrame{obj=Recount.GraphWindow, kfs=true, hdr=true, x1=-2, y1=-8, x2=2, y2=-2} |
-->>-- skin Realtime frames already created |
for _, child in pairs{UIParent:GetChildren()} do |
end |
self:skinScrollBar{obj=MRTSkillListScrollFrame} |
self:glazeStatusBar(MRTSkillRankFrame, 0, MRTSkillRankFrameBackground) |
-- Magic Button textures |
self:removeMagicBtnTex("MRTSkillViewCraftersButton") |
self:removeMagicBtnTex("MRTSkillCreateButton") |
self:removeMagicBtnTex("MRTSkillCreateAllButton") |
self:skinEditBox{obj=MRTSkillInputBox, x=-6} |
self:addSkinFrame{obj=MRTSkillFrame, kfs=true, ri=true, y1=2, x2=1, y2=-2} |
-- Magic Button textures |
self:removeMagicBtnTex(MRTSkillViewCraftersButton) |
self:removeMagicBtnTex(MRTSkillCreateButton) |
self:removeMagicBtnTex(MRTSkillCreateAllButton) |
-->>-- New Category frame |
self:skinEditBox{obj=MRTNewCategoryFrameCategoryName, x=-3} |
local ARL = LibStub("AceAddon-3.0"):GetAddon("Ackis Recipe List", true) |
if not ARL then return end |
-- check version, if not a specified release or beta then don't skin it |
-- check version, if not a specified release or beta then treat it as version 10 |
local vTab = { |
["1.0 2817"] = 1, -- release |
["1.0 @project-revision@"] = 2, -- beta |
["2.1.0"] = 10, -- release |
} |
local aVer = GetAddOnMetadata("AckisRecipeList", "Version") |
local ver = vTab[aVer] |
if not ver then self:CustomPrint(1, 0, 0, "%s [%s]", "Unsupported ARL version", aVer) return end |
local ver = vTab[aVer] or 10 |
local function skinARL(frame) |
if not Skinner:isAddonEnabled("Quartz") then return end |
local aName, aObj = ... |
if not aObj:isAddonEnabled("Quartz") then return end |
function Skinner:Quartz() -- Quartz3 |
function aObj:Quartz() -- Quartz3 |
local Quartz3 = LibStub("AceAddon-3.0"):GetAddon("Quartz3", true) |
if not Quartz3 then return end |
for _, child in pairs{UIParent:GetChildren()} do |
-- if this is a Quartz Mirror/Buff Bar then skin it |
if child:IsObjectType('StatusBar') |
if child:IsObjectType('Frame') |
and child.__texture |
then |
if not Skinner.skinned[child] then |
if not aObj.skinned[child] then |
child:SetBackdrop(nil) |
child.__texture:SetTexture(self.sbTexture) |
child.__texture:SetTexture(aObj.sbTexture) |
end |
end |
end |
self:SecureHook(mod, "ApplySettings", function() |
skinSBs() |
end) |
skinSBs() |
end |
-->>-- Buff Status Bars |
mod = Quartz3:GetModule("Buff", true) |
self:SecureHook(mod, "ApplySettings", function() |
skinSBs() |
end) |
skinSBs() |
end |
-- skin any existing StatusBars |
skinSBs() |
end |
-- many thanks to acirac for the updated skin |
if not Skinner:isAddonEnabled("HealBot") then return end |
function Skinner:HealBot() -- version 4.0.3.4 |
function Skinner:HealBot() -- version 4.0.6.2 |
if not self.db.profile.Tooltips.skin then return end |
-->>-- Tooltips |
self:keepFontStrings(HealBot_Options_BarHealthType) |
self:keepFontStrings(HealBot_Options_BarHealthNumFormat1) |
self:keepFontStrings(HealBot_Options_BarHealthNumFormat2) |
self:keepFontStrings(HealBot_Options_HeadFontOutline) |
self:keepFontStrings(HealBot_Options_FontOutline) |
self:keepFontStrings(HealBot_Options_EmergencyFClass) |
self:keepFontStrings(HealBot_Options_EmergLFrame) |
if not Skinner:isAddonEnabled("Auc-Advanced") then return end |
local aName, aObj = ... |
if not aObj:isAddonEnabled("Auc-Advanced") then return end |
function Skinner:AucAdvanced() |
function aObj:AucAdvanced() |
if not self.db.profile.AuctionUI then return end |
-- check version, if not a specified release or beta then don't skin it |
-- check version, if not a specified release or beta then default the version to 9 |
local vTab = { |
["5.8"] = 1, |
["5.9"] = 2, |
["5.10"] = 3, |
} |
local aVer = GetAddOnMetadata("Auc-Advanced", "Version") |
local ver = vTab[aVer:match("(%d.%d+).%d+")] or 0 |
local ver = vTab[aVer:match("(%d.%d+).%d+")] or 9 |
-- progress bars |
local lib = ver == 1 and AucAdvanced.Scan or AucAdvanced.API |
for i = 1, #gui.tabs do |
local frame = gui.tabs[i].content |
if frame.money and frame.money.isMoneyFrame then |
Skinner:skinMoneyFrame{obj=frame.money, noWidth=true, moveSEB=true} |
aObj:skinMoneyFrame{obj=frame.money, noWidth=true, moveSEB=true} |
end |
end |
self:Unhook(mod, "MakeGuiConfig") |
if lib then |
local function skinSnatch() |
local self = Skinner |
lib.Private.frame.slot:SetTexture(self.esTex) |
self:skinEditBox{obj=lib.Private.frame.pctBox, regs={9}} |
self:skinButton{obj=lib.Private.frame.additem, as=true} -- just skin it otherwise text is hidden |
self:skinButton{obj=lib.Private.frame.removeitem, as=true} -- just skin it otherwise text is hidden |
self:skinButton{obj=lib.Private.frame.resetList, as=true} -- just skin it otherwise text is hidden |
lib.Private.frame.slot:SetTexture(aObj.esTex) |
aObj:skinEditBox{obj=lib.Private.frame.pctBox, regs={9}} |
aObj:skinButton{obj=lib.Private.frame.additem, as=true} -- just skin it otherwise text is hidden |
aObj:skinButton{obj=lib.Private.frame.removeitem, as=true} -- just skin it otherwise text is hidden |
aObj:skinButton{obj=lib.Private.frame.resetList, as=true} -- just skin it otherwise text is hidden |
end |
if lib.MakeGuiConfig then |
-- Appraiser |
local mod = AucAdvanced.Modules.Util.Appraiser |
if mod then |
function skinFrames() |
local function skinFrames() |
local self = Skinner |
local frame = mod.Private.frame |
self:skinButton{obj=frame.toggleManifest} |
self:skinButton{obj=frame.config} |
self:moveObject{obj=frame.itembox.showAuctions, x=-10} |
self:addSkinFrame{obj=frame.itembox} |
self:skinSlider(frame.scroller) |
self:skinButton{obj=frame.switchToStack, y1=1} |
self:skinButton{obj=frame.switchToStack2, y1=1} |
self:addSkinFrame{obj=frame.salebox} |
frame.salebox.slot:SetTexture(self.esTex) |
self:skinEditBox{obj=frame.salebox.stackentry, regs={9}, noWidth=true} |
self:adjWidth{obj=frame.salebox.stackentry, adj=14} |
self:skinEditBox{obj=frame.salebox.numberentry, regs={9}, noWidth=true} |
self:adjWidth{obj=frame.salebox.numberentry, adj=14} |
self:skinDropDown{obj=frame.salebox.model} |
self:skinMoneyFrame{obj=frame.salebox.bid, noWidth=true, moveSEB=true, moveGEB=true} |
self:skinMoneyFrame{obj=frame.salebox.buy, noWidth=true, moveSEB=true, moveGEB=true} |
self:skinMoneyFrame{obj=frame.salebox.bid.stack, noWidth=true, moveSEB=true, moveGEB=true} |
self:skinMoneyFrame{obj=frame.salebox.buy.stack, noWidth=true, moveSEB=true, moveGEB=true} |
self:skinButton{obj=frame.manifest.close, cb=true, x1=3, y1=-3, x2=-3, y2=3} |
self:addSkinFrame{obj=frame.manifest, bg=true} -- a.k.a. Sidebar, put behind AH frame |
self:skinButton{obj=frame.imageview.purchase.buy, x1=-1} |
self:skinButton{obj=frame.imageview.purchase.bid, x1=-1} |
aObj:skinButton{obj=frame.toggleManifest} |
aObj:skinButton{obj=frame.config} |
aObj:moveObject{obj=frame.itembox.showAuctions, x=-10} |
aObj:addSkinFrame{obj=frame.itembox} |
aObj:skinSlider(frame.scroller) |
aObj:skinButton{obj=frame.switchToStack, y1=1} |
aObj:skinButton{obj=frame.switchToStack2, y1=1} |
aObj:addSkinFrame{obj=frame.salebox} |
frame.salebox.slot:SetTexture(aObj.esTex) |
aObj:skinEditBox{obj=frame.salebox.stackentry, regs={9}, noWidth=true} |
aObj:adjWidth{obj=frame.salebox.stackentry, adj=14} |
aObj:skinEditBox{obj=frame.salebox.numberentry, regs={9}, noWidth=true} |
aObj:adjWidth{obj=frame.salebox.numberentry, adj=14} |
aObj:skinDropDown{obj=frame.salebox.model} |
aObj:skinMoneyFrame{obj=frame.salebox.bid, noWidth=true, moveSEB=true, moveGEB=true} |
aObj:skinMoneyFrame{obj=frame.salebox.buy, noWidth=true, moveSEB=true, moveGEB=true} |
aObj:skinMoneyFrame{obj=frame.salebox.bid.stack, noWidth=true, moveSEB=true, moveGEB=true} |
aObj:skinMoneyFrame{obj=frame.salebox.buy.stack, noWidth=true, moveSEB=true, moveGEB=true} |
aObj:skinButton{obj=frame.manifest.close, cb=true, x1=3, y1=-3, x2=-3, y2=3} |
aObj:addSkinFrame{obj=frame.manifest, bg=true} -- a.k.a. Sidebar, put behind AH frame |
aObj:skinButton{obj=frame.imageview.purchase.buy, x1=-1} |
aObj:skinButton{obj=frame.imageview.purchase.bid, x1=-1} |
frame.imageview.purchase:SetBackdrop(nil) |
frame.imageview.purchase:SetBackdropColor(0, 0, 0, 0) |
self:skinButton{obj=frame.go} |
self:skinButton{obj=frame.gobatch} |
self:skinButton{obj=frame.refresh} |
self:skinButton{obj=frame.cancel, x1=-2, y1=1, x2=2} |
aObj:skinButton{obj=frame.go} |
aObj:skinButton{obj=frame.gobatch} |
aObj:skinButton{obj=frame.refresh} |
aObj:skinButton{obj=frame.cancel, x1=-2, y1=1, x2=2} |
end |
if mod.Private.CreateFrames then |
local aName, aObj = ... |
if not aObj:isAddonEnabled("Tukui") then return end |
-- check for ElvUI's Tukui DB converter |
if GetAddOnMetadata("Tukui", "Author") == "Elv22" then |
aObj.Tukui = function() end |
return |
end |
function aObj:Tukui() |
-- The following code handles the Initial setup of Skinner when the TukUI is loaded |
function aObj:TukuiInit() |
-- handle version 12 & 13 |
local ver = tonumber(GetAddOnMetadata("Tukui", "Version"):sub(1, 2)) |
local mediapath = [[Interface\AddOns\Tukui\media\textures\]] |
local borderr, borderg, borderb = 0.6, 0.6, 0.6 |
local backdropr, backdropg, backdropb = 0.1, 0.1, 0.1 |
if ver == 13 then |
mediapath = [[Interface\AddOns\Tukui\medias\textures\]] |
if IsAddOnLoaded("Tukui") then |
local T, C, L = unpack(Tukui) |
borderr, borderg, borderb = unpack(C["media"].bordercolor) |
backdropr, backdropg, backdropb = unpack(C["media"].backdropcolor) |
end |
end |
self:RawHook(self, "OnInitialize", function(this) |
-- Do these before we run the function |
self.Defaults = nil -- only need to run this once |
-- Register Textures |
self.LSM:Register("background", "Tukui Background", [[Interface\AddOns\Tukui\medias\textures\blank]]) |
self.LSM:Register("border", "Tukui Border", [[Interface\AddOns\Tukui\medias\textures\blank]]) |
self.LSM:Register("statusbar", "Tukui StatusBar", [[Interface\AddOns\Tukui\medias\textures\normTex]]) |
self.LSM:Register("background", "Tukui Background", mediapath.."blank") |
self.LSM:Register("border", "Tukui Border", mediapath.."blank") |
self.LSM:Register("statusbar", "Tukui StatusBar", mediapath.."normTex") |
-- create and use a new db profile called Tukui |
local dbProfile = self.db:GetCurrentProfile() |
self.db:CopyProfile(dbProfile) -- use settings from previous profile |
-- change settings |
self.db.profile.TooltipBorder = {r = 0.6, g = 0.6, b = 0.6, a = 1} |
self.db.profile.BackdropBorder = {r = 0.6, g = 0.6, b = 0.6, a = 1} |
self.db.profile.Backdrop = {r = 0.1, g = 0.1, b = 0.1, a = 1} |
self.db.profile.TooltipBorder = {r = borderr, g = borderg, b = borderb, a = 1} |
self.db.profile.BackdropBorder = {r = borderr, g = borderg, b = borderb, a = 1} |
self.db.profile.Backdrop = {r = backdropr, g = backdropg, b = backdropb, a = 1} |
self.db.profile.BdDefault = false |
self.db.profile.BdFile = "None" |
self.db.profile.BdEdgeFile = "None" |
-- Load support for TukUI |
local success, err = aObj:checkAndRun("TukuiInit", true) |
if not success then |
print("Error running", "Tukui", err) |
print("Error running", "TukuiInit", err) |
end |
local function skinAceGUI(obj, objType) |
local objVer = AceGUI.GetWidgetVersion and AceGUI:GetWidgetVersion(objType) or 0 |
-- aObj:Debug("skinAceGUI: [%s, %s, %s]", obj, objType, objVer) |
-- aObj:Debug("skinAceGUI: [%s, %s, %s]", obj, objType, objVer) |
if obj and not aObj.skinned[obj] then |
if objType == "BlizOptionsGroup" then |
aObj:keepFontStrings(obj.frame) |
aObj:applySkin(obj.frame) |
aObj:applySkin{obj=obj.frame, kfs=true} |
elseif objType == "Dropdown" then |
aObj:skinDropDown{obj=obj.dropdown} |
aObj:applySkin(obj.pullout.frame) |
aObj:applySkin{obj=obj.pullout.frame} |
elseif objType == "Dropdown-Pullout" then |
aObj:applySkin(obj.frame) |
aObj:applySkin{obj=obj.frame} |
elseif objType == "DropdownGroup" |
or objType == "InlineGroup" |
or objType == "TabGroup" |
then |
if objVer < 20 then |
aObj:keepFontStrings(obj.border) |
aObj:applySkin(obj.border) |
aObj:applySkin{obj=obj.border, kfs=true} |
else |
aObj:keepFontStrings(obj.content:GetParent()) |
aObj:applySkin(obj.content:GetParent()) |
aObj:applySkin{obj=obj.content:GetParent(), kfs=true} |
end |
elseif objType == "EditBox" |
or objType == "NumberEditBox" |
aObj:skinButton{obj=obj.button, as=true} |
if objVer < 20 then |
aObj:skinScrollBar{obj=obj.scrollframe} |
aObj:applySkin(obj.backdrop) |
aObj:applySkin{obj=obj.backdrop} |
else |
aObj:skinScrollBar{obj=obj.scrollFrame} |
aObj:applySkin{obj=aObj:getChild(obj.frame, 2)} -- backdrop frame |
obj.editbox:SetHeight(20) |
obj.editbox:SetWidth(60) |
elseif objType == "Frame" then |
aObj:keepFontStrings(obj.frame) |
aObj:applySkin(obj.frame) |
aObj:applySkin{obj=obj.frame, kfs=true} |
if objVer < 20 then |
aObj:skinButton{obj=obj.closebutton, y1=1} |
aObj:applySkin(obj.statusbg) |
aObj:applySkin{obj=obj.statusbg} |
else |
aObj:skinButton{obj=aObj:getChild(obj.frame, 1), y1=1} |
aObj:applySkin{obj=aObj:getChild(obj.frame, 2)} -- backdrop frame |
end |
obj.titletext:SetPoint("TOP", obj.frame, "TOP", 0, -6) |
elseif objType == "Window" then |
aObj:keepFontStrings(obj.frame) |
aObj:applySkin(obj.frame) |
aObj:applySkin{obj=obj.frame, kfs=true} |
aObj:skinButton{obj=obj.closebutton, cb=true} |
obj.titletext:SetPoint("TOP", obj.frame, "TOP", 0, -6) |
elseif objType == "ScrollFrame" then |
elseif objType == "TreeGroup" then |
aObj:keepRegions(obj.scrollbar, {1}) |
aObj:skinUsingBD{obj=obj.scrollbar} |
aObj:applySkin(obj.border) |
aObj:applySkin(obj.treeframe) |
aObj:applySkin{obj=obj.border} |
aObj:applySkin{obj=obj.treeframe} |
if aObj.modBtns then |
-- hook to manage changes to button textures |
aObj:SecureHook(obj, "RefreshTree", function() |
aObj:SecureHook(obj, "RefreshTree", function(this) |
local btn |
for i = 1, #obj.buttons do |
btn = obj.buttons[i] |
for i = 1, #this.buttons do |
btn = this.buttons[i] |
if not aObj.skinned[btn.toggle] then |
aObj:skinButton{obj=btn.toggle, mp2=true, plus=true} -- default to plus |
end |
aObj:SecureHook(obj.expand, "SetNormalTexture", function(this, nTex) |
aObj.modUIBtns:checkTex{obj=this, nTex=nTex, mp2=true} |
end) |
elseif objType == "WeakAurasNewButton" then |
elseif objType == "WeakAurasDisplayButton" then |
aObj:skinEditBox{obj=obj.renamebox, regs={9}, noHeight=true} |
aObj.modUIBtns:checkTex{obj=this, nTex=nTex, mp2=true} |
end) |
-- DragDropTarget object (ReagentRestocker) |
elseif objType == "DragDropTarget" then |
-- ignore these types for now |
elseif objType == "CheckBox" |
or objType == "Dropdown-Item-Execute" |
## Interface: 40000 |
## Interface: 40100 |
## Title: Skinner |
## Notes: Changes the look of the default UI |
## Notes-esES: Cambia el aspecto del UI predeterminado |
## Notes-zhCN: æ´æ¹é»è®¤ç¨æ·çé¢çè§è§æ ·å¼ã |
## Notes-zhTW: æ´æ¹é è¨ç¨æ¶ä»é¢çè¦è¦ºæ¨£å¼ã |
## Author: Jncl |
## Version: b4.13623.1 |
## OptionalDeps: hankui |
## Version: b4.13914.4 |
## OptionalDeps: Ace3, LibSharedMedia-3.0, AceGUI-3.0-SharedMediaWidgets, LibBetterBlizzOptions-1.0, hankui |
## DefaultState: Enabled |
## LoadOnDemand: 0 |
## SavedVariables: SkinnerDB |
# |
# LibStub & Callback Handler |
## X-Curse-Packaged-Version: b4.13623.1 |
## X-Curse-Packaged-Version: b4.13914.4 |
## X-Curse-Project-Name: Skinner |
## X-Curse-Project-ID: skinner |
## X-Curse-Repository-ID: wow/skinner/mainline |
UIElements1.lua |
# |
# UIElements2 |
# inc. ModelFrames, MovieProgress, TimeManager, Calendar, Menu (inc. Video, Sound & Voice, Mac Options, Interface), BindingUI, MacroUI, Mail, MainMenuBar, CoinPickup, LFG, ItemSocketingUI, GuildBankUI, Nameplates, GMChatUI, DebugTools, RolePollPopup, LFDFrame, LFRFrame, BNFrames, CinematicFrame, LevelUpDisplay, SpellFlyout, GuildInvite, GhostFrame |
# inc. ModelFrames, MovieProgress, TimeManager, Calendar, Menu (inc. Video, Sound & Voice, Mac Options, Interface), BindingUI, MacroUI, Mail, MainMenuBar, CoinPickup, LFG, ItemSocketingUI, GuildBankUI, Nameplates, GMChatUI, DebugTools, RolePollPopup, LFDFrame, LFRFrame, BNFrames, CinematicFrame, LevelUpDisplay, SpellFlyout, GuildInvite, GhostFrame, LookingForGuildUI |
UIElements2.lua |
# |
# Modules |
if not self.db.profile.TrainerUI or self.initialized.TrainerUI then return end |
self.initialized.TrainerUI = true |
if self.isPatch then |
ClassTrainerStatusBar:DisableDrawLayer("ARTWORK") |
ClassTrainerStatusBarSkillRank:SetDrawLayer("OVERLAY") |
self:glazeStatusBar(ClassTrainerStatusBar, 0, ClassTrainerStatusBarBackground) |
end |
btn = ClassTrainerFrame.skillStepButton |
btn.disabledBG:SetAlpha(0) |
btn:GetNormalTexture():SetAlpha(0) |
btn:GetNormalTexture():SetAlpha(0) |
self:addButtonBorder{obj=btn, relTo=btn.icon} |
end |
-- Magic Button textures |
self:removeMagicBtnTex("ClassTrainerTrainButton") |
self:removeMagicBtnTex(ClassTrainerTrainButton) |
self:skinDropDown{obj=ClassTrainerFrameFilterDropDown} |
end |
self:skinEditBox{obj=PVPBannerFrameEditBox, regs={9}} |
self:keepRegions(PVPBannerFrame, {8, 29, 30, 31, 32, 33, 34, 35}) -- N.B. region 8 is the title, 29 - 32 are the emblem, 33 - 35 are the text |
self:addSkinFrame{obj=PVPBannerFrame, ft=ftype, ri=true, y1=2, x2=1, y2=-4} |
-- Magic Button textures |
self:removeMagicBtnTex("PVPBannerFrameCancelButton") |
self:removeMagicBtnTex("PVPBannerFrameAcceptButton") |
self:removeMagicBtnTex(PVPBannerFrameCancelButton) |
self:removeMagicBtnTex(PVPBannerFrameAcceptButton) |
self:removeRegions(PVPBannerFrameCustomizationFrame) |
self:keepFontStrings(PVPBannerFrameCustomization1) |
self:keepFontStrings(PVPBannerFrameCustomization2) |
self:skinDropDown{obj=ReforgingFrameFilterOldStat} |
self:skinDropDown{obj=ReforgingFrameFilterNewStat} |
self:addSkinFrame{obj=ReforgingFrame, ft=ftype, kfs=true, ri=true, y1=2, x2=1, y2=-2} |
-- Magic Button textures |
self:removeMagicBtnTex("ReforgingFrameReforgeButton") |
self:removeMagicBtnTex("ReforgingFrameRestoreButton") |
self:removeMagicBtnTex(ReforgingFrameReforgeButton) |
self:removeMagicBtnTex(ReforgingFrameRestoreButton) |
end |
local blizzFrames = { |
"CharacterFrames", "PetStableFrame", "SpellBookFrame", "DressUpFrame", "AlertFrames", -- cf1 |
"FriendsFrame", "TradeFrame", "ReadyCheck", "Buffs", "VehicleMenuBar", "WatchFrame", "GearManager", "CompactFrames", --cf2 |
"FriendsFrame", "TradeFrame", "ReadyCheck", "Buffs", "VehicleMenuBar", "WatchFrame", --[=["GearManager",--]=] "CompactFrames", --cf2 |
"MerchantFrames", "GossipFrame", "TaxiFrame", "QuestFrame", "BankFrame", "ArenaRegistrar", "GuildRegistrar", "Petition", "Tabard", -- npc |
"Minimap", "MirrorTimers", "StaticPopups", "ChatMenus", "ChatTabs", "ChatFrames", "ChatEditBox", "LootFrame", "GroupLoot", "ContainerFrames", "StackSplit", "ItemText", "ColorPicker", "WorldMap", "HelpFrame", "Tutorial", "BattleScore", "ScriptErrors", "DropDowns", -- uie1 |
"AutoComplete", "MenuFrames", "MailFrame", "CoinPickup", "PVPFrame", "RolePollPopup", "LFDFrame", "LFRFrame", "BNFrames", "CinematicFrame", "LevelUpDisplay", "SpellFlyout", "GuildInvite", "GhostFrame"-- uie2 |
-- optional frames |
if IsMacClient() then self:checkAndRun("MovieProgress") end |
-- if self.isPTR then self:add2Table(blizzFrames, "FeedbackUI") end -- uie1 |
if self.isPTR |
and IsAddOnLoaded("Blizzard_FeedbackUI") |
then |
self:add2Table(blizzFrames, "FeedbackUI") |
end -- uie1 |
if not self.isPatch then self:add2Table(blizzFrames, "GearManager") end -- cf2 |
for _, v in pairs(blizzFrames) do |
self:checkAndRun(v) |
"GMSurveyUI", "InspectUI", "BattlefieldMinimap", -- uie1 |
"TimeManager", "Calendar", "BindingUI", "MacroUI", "ItemSocketingUI", "GuildBankUI", "GMChatUI", "DebugTools", --uie2 |
} |
if aObj.isPTR then aObj:add2Table(blizzLoDFrames, "FeedbackUI") end -- uie1 |
if aObj.isPTR then |
aObj:add2Table(blizzLoDFrames, "FeedbackUI") -- uie1 |
end |
if aObj.isPatch then |
aObj:add2Table(blizzLoDFrames, "LookingForGuildUI")-- uie2 |
end |
local blizzLoD = {} |
for _, v in pairs(blizzLoDFrames) do |
blizzLoD["Blizzard_"..v] = v |
aObj.addonSkins = { |
"_NPCScan", |
"Accomplishment", "Accountant", "Acheron", "AckisRecipeList", "ACP", "AdiBags", "AdvancedTradeSkillWindow", "AISeller", "AlleyMap", "Altoholic", "Altoholic_Characters", "Altoholic_Search", "Analyst", "AnnounceIt", "Ara_Broker_Guild_Friends", "Archy", "ArkInventory", "ArkInventoryRules", "Armory", "ArmoryGuildBank", "Atlas", "AtlasLoot", "AtlasQuest", "AuctionLite", "AuctionProfitMaster", "Auctionsnatch", "AutoDecline", "AutoPartyButtons", "AutoProfit", |
"Badapples", "Baggins", "Bagnon", "Bagnon_Forever", "BankItems", "BasicChatMods", "BaudBag", "BeanCounter", "beql", "BetterInbox", "BindPad", "BlackList", "BossInfo", "BossNotes", "BriefQuestComplete", "Broker_Transport", "Buffalo", "BugSack", "Butsu", "BuyEmAll", |
"Badapples", "Baggins", "Bagnon", "Bagnon_Forever", "BankItems", "BasicChatMods", "BaudBag", "BaudManifest", "BeanCounter", "beql", "BetterInbox", "BindPad", "BlackList", "BossInfo", "BossNotes", "BriefQuestComplete", "Broker_Transport", "Buffalo", "BugSack", "Butsu", "BuyEmAll", |
"CalendarNotify", "CallToArms", "Capping", "Carbonite", "Cauldron", "CFM", "ChatBar", "Chatr", "Chatter", "Chinchilla", "Clique", "CloseUp", "Collectinator", "Combuctor", "ConcessionStand", "Converse", "Cork", "Cosplay", "CowTip", "CT_MailMod", "CT_RaidTracker", "CurseRaidTracker", |
"DaemonMailAssist", "DailiesQuestTracker", "DamageMeters", "DeathNote", "Dominos", "DragonCore", |
"EasyUnlock", "EavesDrop", "EditingUI", "EggTimer", "ElitistGroup", "EnchantMe", "EnergyWatch", "EngBags", "EnhancedColourPicker", "EnhancedFlightMap", "EnhancedStackSplit", "EnhancedTradeSkills", "epgp", "EquipCompare", "EventEquip", "EveryQuest", "Examiner", "ExtendedRaidInfo", |
"EasyUnlock", "EavesDrop", "EditingUI", "EggTimer", "ElitistGroup", "ElvUI", "EnchantMe", "EnergyWatch", "EngBags", "EnhancedColourPicker", "EnhancedFlightMap", "EnhancedStackSplit", "EnhancedTradeSkills", "epgp", "epgp_lootmaster", "epgp_lootmaster_ml", "EquipCompare", "EventEquip", "EveryQuest", "Examiner", "ExtendedRaidInfo", |
"Factionizer", "FBagOfHolding", "FB_OutfitDisplayFrame", "FB_TrackingFrame", "FeedMachine", "FishingBuddy", "FlightMap", "FlightMapEnhanced", "Fortress", "FPSideBar", "FramesResized", "FreierGeist_InstanceTime", |
"Gatherer", "GearScore", "GemHelper", "GemMe", "GnomeWorks", "GnomishVendorShrinker", "Gobling", "Gossipmonger", "Grid", "GrimReaper", "GroupCalendar", "GroupCalendar5", "GuildAds", "GuildBankAccount", "GuildGreet", "GuildLaunchCT_RaidTracker", "GupCharacter", "GupPet", |
"Hack", "Hadar_FocusFrame", "HandyNotes", "HatTrick", "HeadCount", "HealBot", "HealOrganizer", "Highlight", "HitsMode", "HoloFriends", |
"MacroBank", "MacroBrokerGUI", "MailTo", "MakeRocketGoNow", "Mapster", "MinimalArchaeology", "MinimapButtonFrame", "Misdirectionhelper", "MobMap", "MonkeyQuest", "MonkeyQuestLog", "Mountiful", "MoveAnything", "MTLove", "MuffinMOTD", "MyBags", "myClock", |
"NeatFreak", "Necrosis", "NeonChat", "nQuestLog", |
"Odyssey", "Omen", "OneBag3", "OneBank3", "oRA3", "Outfitter", "Overachiever", |
"PallyPower", "Panda", "PartyBuilder", "PassLoot", "Pawn", "Perl_CombatDisplay", "Perl_Focus", "Perl_Party", "Perl_Party_Pet", "Perl_Party_Target", "Perl_Player", "Perl_Player_Pet", "Perl_Target", "Perl_Target_Target", "PetListPlus", "PetsPlus", "PhoenixStyle", "Planner", "PlayerExpBar", "PlusOneTable", "POMAssist", "PoMTracker", "Possessions", "Postal", "PowerAuras", "PowerAurasButtons_Config", "Producer", "ProfessionsBook", "ProfessionTabs", "PvpMessages", |
"PallyPower", "Panda", "PartyBuilder", "PassLoot", "Pawn", "Perl_CombatDisplay", "Perl_Focus", "Perl_Party", "Perl_Party_Pet", "Perl_Party_Target", "Perl_Player", "Perl_Player_Pet", "Perl_Target", "Perl_Target_Target", "PetListPlus", "PetsPlus", "PhoenixStyle", "Planner", "PlayerExpBar", "PlusOneTable", "POMAssist", "PoMTracker", "Possessions", "Postal", "PowerAuras", "PowerAurasButtons", "Producer", "ProfessionsBook", "ProfessionTabs", "PvpMessages", |
"Quartz", "Quelevel", "QuestAgent", "QuestCompletist", "QuestGuru_Tracker", "QuestHelper", "QuestHistory", "QuickMark", |
"RABuffs", "RaidAchievement", "RaidAchievement_AchieveReminder", "RaidBuffStatus", "RaidChecklist", "RaidComp", "RaidTracker", "RaidyCheck", "RandomPet30", "Recap", "RecipeBook", "RecipeRadar", "Recount", "RicoMiniMap", |
"RABuffs", "RaidAchievement", "RaidAchievement_AchieveReminder", "RaidBuffStatus", "RaidChecklist", "RaidComp", "RaidTracker", "RaidyCheck", "RandomPet30", "ReagentRestocker", "Recap", "RecipeBook", "RecipeRadar", "Recount", "REFlex", "RicoMiniMap", |
"SayGMOTD", "ScrollMaster", "ShadowDancer3", "sienasGemViewer", "Skada", "Skillet", "SmoothQuest", "SnapShot", "Spew", "Squeenix", "sRaidFrames", |
"tabDB", "Talented", "TargetAnnounce", "tekBlocks", "tekDebug", "tekErr", "tekPad", "TheCollector", "TinyDPS", "TinyPad", "TipTac", "tomQuest2", "TomTom", "TooManyAddons", "Toons", "TotemCaddy", "TourGuide", "Tukui", "TwinValkyr_shieldmonitor", |
"UberQuest", "UrbanAchiever", |
"MSBTOptions", |
"oRA2_Leader", "oRA2_Participant", "Overachiever_Tabs", |
"Perl_Config_Options", |
"Squire2_Config", |
"Scrap_Merchant", "Scrap_Options", "Squire2_Config", |
"Talented_GlyphFrame", "TradeTabs", "TipTacOptions", |
"WeakAurasOptions", "WIM_Options", |
"XPerl_Options", |
if oTex:find("UI-Panel-Button-Up", 1, true) -- UI Panel Button |
or oTex:find("UI-Panel-Button-Disabled", 1, true) -- UI Panel Button (Gray template) |
or oTex:find("UI-DialogBox-Button-Up", 1, true) -- Static Popup Button |
or oTex:find("HelpButtons") -- "new" Help Button |
or oTex:find("UI-Achievement", 1, true) and oName:find("AtlasLoot") -- AtlasLoot "new" style |
and not (oName:find("AceConfig") or oName:find("AceGUI")) -- ignore AceConfig/AceGui buttons |
then |
then |
return "toast" |
end |
if oTex:find("KnowledgeBaseButtton") -- "new" KnowledgeBase Button |
then |
return "helpKB" |
end |
end |
end |
module:skinButton{obj=child, cb=true, sap=opts.sap, anim=opts.anim} |
elseif bType == "toast" then |
module:skinButton{obj=child, cb3=true, anim=opts.anim} |
elseif bType == "helpKB" then |
child:DisableDrawLayer("ARTWORK") |
module:skinButton{obj=child, as=true} |
end |
elseif child:IsObjectType("Frame") and bgen > 0 then |
opts.obj=child |
end |
function aObj:HelpFrame() |
if not self.db.profile.HelpFrame or self.initialized.HelpFrame then return end |
self.initialized.HelpFrame = true |
if not aObj.isPatch then |
function aObj:HelpFrame() |
if not self.db.profile.HelpFrame or self.initialized.HelpFrame then return end |
self.initialized.HelpFrame = true |
self:add2Table(self.uiKeys1, "HelpFrame") |
self:add2Table(self.uiKeys1, "HelpFrame") |
local hfTitle = self:getRegion(HelpFrame, 11) |
local kbTitle = self:getRegion(KnowledgeBaseFrame, 2) |
-- hook these to manage frame titles |
self:SecureHook("HelpFrame_ShowFrame", function(key) |
hfTitle:SetAlpha(0) |
kbTitle:SetAlpha(0) |
if key == "KBase" then |
kbTitle:SetAlpha(1) |
else |
hfTitle:SetAlpha(1) |
local hfTitle, kbTitle = self:getRegion(HelpFrame, 11) |
if not self.isPatch then |
kbTitle = self:getRegion(KnowledgeBaseFrame, 2) |
end |
end) |
self:SecureHook("HelpFrame_PopFrame", function() |
if HelpFrame.openFrame and HelpFrame.openFrame:GetName() == "KnowledgeBaseFrame" then |
-- hook these to manage frame titles |
self:SecureHook("HelpFrame_ShowFrame", function(key) |
hfTitle:SetAlpha(0) |
kbTitle:SetAlpha(1) |
end |
end) |
kbTitle:SetAlpha(0) |
if key == "KBase" then |
kbTitle:SetAlpha(1) |
else |
hfTitle:SetAlpha(1) |
end |
end) |
self:SecureHook("HelpFrame_PopFrame", function() |
if HelpFrame.openFrame and HelpFrame.openFrame:GetName() == "KnowledgeBaseFrame" then |
hfTitle:SetAlpha(0) |
kbTitle:SetAlpha(1) |
end |
end) |
-->>-- Ticket Status Frame |
self:addSkinFrame{obj=TicketStatusFrameButton, ft=ftype} |
-->>-- Ticket Status Frame |
self:addSkinFrame{obj=TicketStatusFrameButton, ft=ftype} |
-->>-- Help Frame |
self:moveObject{obj=hfTitle, y=-8} |
--> N.B. restrict button children traversal for KnowledgeBase button below |
self:addSkinFrame{obj=HelpFrame, ft=ftype, kfs=true, bgen=2, x1=6, y1=-6, x2=-45, y2=14} |
-->>-- Help Frame |
self:moveObject{obj=hfTitle, y=-8} |
--> N.B. restrict button children traversal for KnowledgeBase button below |
self:addSkinFrame{obj=HelpFrame, ft=ftype, kfs=true, bgen=2, x1=6, y1=-6, x2=-45, y2=14} |
-->>-- KnowledgeBase Frame |
self:keepFontStrings(KnowledgeBaseFrame) |
self:moveObject{obj=kbTitle, y=-8} |
self:skinButton{obj=GMChatOpenLog} |
self:skinEditBox{obj=KnowledgeBaseFrameEditBox} |
self:skinDropDown{obj=KnowledgeBaseFrameCategoryDropDown} |
self:skinDropDown{obj=KnowledgeBaseFrameSubCategoryDropDown} |
KnowledgeBaseFrameDivider:Hide() |
KnowledgeBaseFrameDivider2:Hide() |
-->>-- Article Scroll Frame |
self:skinScrollBar{obj=KnowledgeBaseArticleScrollFrame} |
self:skinButton{obj=KnowledgeBaseArticleScrollChildFrameBackButton, as=true} |
-->>-- Talk to a GM panel |
-->>-- Report an Issue panel |
-->>-- Character Stuck panel |
self:addButtonBorder{obj=HelpFrameStuckHearthstone, es=20} |
-->>-- Open Ticket SubFrame |
HelpFrameOpenTicketDivider:Hide() |
self:skinScrollBar{obj=HelpFrameOpenTicketScrollFrame} |
-->>-- View Response SubFrame |
self:skinScrollBar{obj=HelpFrameViewResponseIssueScrollFrame} |
HelpFrameViewResponseDivider:Hide() |
self:skinScrollBar{obj=HelpFrameViewResponseMessageScrollFrame} |
-->>-- KnowledgeBase Frame |
self:keepFontStrings(KnowledgeBaseFrame) |
self:moveObject{obj=kbTitle, y=-8} |
self:skinButton{obj=GMChatOpenLog} |
self:skinEditBox{obj=KnowledgeBaseFrameEditBox} |
self:skinDropDown{obj=KnowledgeBaseFrameCategoryDropDown} |
self:skinDropDown{obj=KnowledgeBaseFrameSubCategoryDropDown} |
KnowledgeBaseFrameDivider:Hide() |
KnowledgeBaseFrameDivider2:Hide() |
-->>-- Article Scroll Frame |
self:skinScrollBar{obj=KnowledgeBaseArticleScrollFrame} |
self:skinButton{obj=KnowledgeBaseArticleScrollChildFrameBackButton, as=true} |
-->>-- Talk to a GM panel |
-->>-- Report an Issue panel |
-->>-- Character Stuck panel |
self:addButtonBorder{obj=HelpFrameStuckHearthstone, es=20} |
-->>-- Open Ticket SubFrame |
HelpFrameOpenTicketDivider:Hide() |
self:skinScrollBar{obj=HelpFrameOpenTicketScrollFrame} |
-->>-- View Response SubFrame |
self:skinScrollBar{obj=HelpFrameViewResponseIssueScrollFrame} |
HelpFrameViewResponseDivider:Hide() |
self:skinScrollBar{obj=HelpFrameViewResponseMessageScrollFrame} |
end |
else |
function aObj:HelpFrame() |
if not self.db.profile.HelpFrame or self.initialized.HelpFrame then return end |
self.initialized.HelpFrame = true |
self:add2Table(self.uiKeys1, "HelpFrame") |
self:keepFontStrings(HelpFrame.header) |
self:moveObject{obj=HelpFrame.header, y=-12} |
HelpFrame.leftInset:DisableDrawLayer("BACKGROUND") |
HelpFrame.leftInset:DisableDrawLayer("BORDER") |
HelpFrame.mainInset:DisableDrawLayer("BACKGROUND") |
HelpFrame.mainInset:DisableDrawLayer("BORDER") |
self:addSkinFrame{obj=HelpFrame, ft=ftype, kfs=true, ofs=-10} |
-->>-- Knowledgebase panel |
self:keepFontStrings(HelpFrame.kbase) |
self:moveObject{obj=HelpFrame.kbase.searchBox.icon, x=4} |
self:skinEditBox{obj=HelpFrame.kbase.searchBox, regs={9}} |
self:skinSlider{obj=HelpFrame.kbase.scrollFrame.ScrollBar} |
self:skinSlider{obj=HelpFrame.kbase.scrollFrame2.ScrollBar} |
-- Nav Bar |
HelpFrame.kbase.navBar:DisableDrawLayer("BACKGROUND") |
HelpFrame.kbase.navBar.overlay:DisableDrawLayer("OVERLAY") |
HelpFrame.kbase.navBar.home:DisableDrawLayer("OVERLAY") |
HelpFrame.kbase.navBar.home:GetNormalTexture():SetAlpha(0) |
HelpFrame.kbase.navBar.home:GetPushedTexture():SetAlpha(0) |
HelpFrame.kbase.navBar.home.text:SetPoint("RIGHT", -20, 0) -- allow text to be fully displayed |
-->>-- Character Stuck panel |
self:addButtonBorder{obj=HelpFrameCharacterStuckHearthstone, es=20} |
-->>-- Ticket panel |
self:skinSlider{obj=HelpFrameTicketScrollFrame.ScrollBar} |
self:addSkinFrame{obj=self:getChild(HelpFrame.ticket, 4), ft=ftype} |
-->>-- Ticket Status Frame |
self:addSkinFrame{obj=TicketStatusFrameButton, ft=ftype} |
-- hook this to handle navbar buttons |
self:SecureHook("NavBar_AddButton", function(this, buttonData) |
self:Debug("NavBar_AddButton: [%s, %s]", this, buttonData) |
for i = 1, #this.navList do |
local btn = this.navList[i] |
btn:DisableDrawLayer("OVERLAY") |
btn:GetNormalTexture():SetAlpha(0) |
btn:GetPushedTexture():SetAlpha(0) |
end |
end) |
end |
end |
function aObj:Tutorial() |
-->>-- Talent Frame |
self:skinScrollBar{obj=InspectTalentFrameScrollFrame} |
self:keepFontStrings(InspectTalentFramePointsBar) |
self:skinFFToggleTabs("InspectTalentFrameTab") |
self:moveObject{obj=InspectTalentFrameTab1, x=-30} |
-- self:skinFFToggleTabs("InspectTalentFrameTab") |
-- self:moveObject{obj=InspectTalentFrameTab1, x=-30} |
if self.modBtnBs then |
-- add button borders |
for i = 1, MAX_NUM_TALENTS do |
self:addButtonBorder{obj=_G[btnName], tibt=true} |
end |
end |
-- Tabs |
for i = 1, InspectTalentFrame.numTabs do |
tab = _G["InspectTalentFrameTab"..i] |
self:keepRegions(tab, {7, 8}) -- N.B. region 7 is text, 8 is highlight |
self:moveObject{obj=_G["InspectTalentFrameTab"..i.."HighlightTexture"], x=-2, y=4} |
tabSF = self:addSkinFrame{obj=tab, ft=ftype, noBdr=self.isTT, y1=-3, y2=-3} |
tabSF.up = true -- tabs grow upwards |
-- set textures here first time thru as it's LoD |
if i == 1 then |
if self.isTT then self:setActiveTab(tabSF) end |
else |
if self.isTT then self:setInactiveTab(tabSF) end |
end |
end |
self.tabFrames[InspectTalentFrame] = true |
-->>-- Guild Frame |
InspectGuildFrameBG:SetAlpha(0) |
self:moveObject{obj=BattlefieldMinimapTabText, y=-1} -- move text down |
-->>-- Minimap |
-- change the draw layer so that the map is visible |
for i = 1, NUM_WORLDMAP_DETAIL_TILES do |
for i = 1, self.isPatch and GetNumberOfDetailTiles() or NUM_WORLDMAP_DETAIL_TILES do |
_G["BattlefieldMinimap"..i]:SetDrawLayer("ARTWORK") |
end |
if not minBtn then |
self:addSkinFrame{obj=MiniMapTracking, ft=ftype} |
end |
-- FeedbackUI Minimap Button |
if self.isPTR then |
for _, reg in ipairs{FeedbackUIButton:GetRegions()} do |
reg:SetWidth(26) |
reg:SetHeight(26) |
end |
end |
-- Instance Difficulty |
MiniMapInstanceDifficultyTexture:SetTexCoord(0.0, 0.25, 0.135, 0.5) -- remove top hanger texture |
self:moveObject{obj=MiniMapInstanceDifficulty, y=-5} |
if not self.db.profile.Feedback or self.initialized.Feedback then return end |
self.initialized.Feedback = true |
self:add2Table(self.uiKeys1, "FeedbackUI") |
local bbR, bbG, bbB, bbA = unpack(self.bbColour) |
self:keepFontStrings(FeedbackUITitleFrm) |
-- make the QuestLog Tip Label text visible |
FeedbackUIQuestLogTipLabel:SetTextColor(self.BTr, self.BTg, self.BTb) |
-- Minimap Button |
if self.db.profile.MinimapButtons.skin then |
for _, reg in ipairs{FeedbackUIButton:GetRegions()} do |
reg:SetWidth(26) |
reg:SetHeight(26) |
end |
end |
end |
end |
SpellFlyout = true, |
GuildInvite = true, |
GhostFrame = true, |
LookingForGuildUI = self.isPatch and true or nil, |
-->>-- Disabled Skins |
DisabledSkins = {}, |
-->-- Profiles |
type = "group", |
name = self.L["Default Colours"], |
get = function(info) |
print("get Colours", info[#info]) |
if info[#info] == "ClassColours" then return db[info[#info]] |
else |
local c = db[info[#info]] |
end |
end, |
set = function(info, r, g, b, a) |
print("set Colours", info[#info], r, g, b, a) |
if info[#info] == "ClassColours" then |
db[info[#info]] = r |
if r then |
desc = self.L["Set Gradient Maximum Colors"], |
hasAlpha = true, |
}, |
BagginsBBC = IsAddOnLoaded("Baggins") and self.Baggins and { |
type = "color", |
order = -1, |
width = "double", |
name = self.L["Baggins Bank Bags Colour"], |
desc = self.L["Set Baggins Bank Bags Colour"], |
hasAlpha = true, |
} or nil, |
}, |
}, |
name = self.L["Menu Frames"], |
desc = self.L["Toggle the skin of the Menu Frames"], |
}, |
MovieProgress = IsMacClient() and { |
type = "toggle", |
name = self.L["Movie Progress"], |
desc = self.L["Toggle the skinning of Movie Progress"], |
} or nil, |
MailFrame = { |
type = "toggle", |
name = self.L["Mail Frame"], |
name = self.L["Ghost Frame"], |
desc = self.L["Toggle the skin of the Ghost Frame"], |
}, |
LookingForGuildUI = self.isPatch and { |
type = "toggle", |
width = "double", |
name = self.L["Looking for Guild Frame"], |
desc = self.L["Toggle the skin of the Looking for Guild Frame"], |
} or nil, |
}, |
}, |
end |
end |
-- optional options |
if self.isPTR then |
optTables.UIFrames.args["Feedback"] = { |
type = "toggle", |
name = self.L["FeedbackUI"], |
desc = self.L["Toggle the skinning of FeedbackUI"], |
} |
end |
if IsMacClient() then |
optTables.UIFrames.args["MovieProgress"] = { |
type = "toggle", |
name = self.L["Movie Progress"], |
desc = self.L["Toggle the skinning of Movie Progress"], |
} |
end |
-- add these if Baggins & its skin are loaded |
if IsAddOnLoaded("Baggins") and self.Baggins then |
-- setup option to change the Bank Bags colour |
local bbckey = {} |
bbckey.type = "color" |
bbckey.order = -1 |
bbckey.width = "double" |
bbckey.name = self.L["Baggins Bank Bags Colour"] |
bbckey.desc = self.L["Set Baggins Bank Bags Colour"] |
bbckey.hasAlpha = true |
-- add to the colour submenu |
optTables.Colours.args["BagginsBBC"] = bbckey |
bbckey = nil |
end |
-- add DisabledSkins options |
local function addDSOpt(name, lib) |