vanilla-wow-addons – Rev 1
?pathlinks?
function oSkin:Defaults()
self:RegisterDefaults("profile", {
BackdropBorder = {r = 0.5, g = 0.5, b = 0.5, a = 1},
Backdrop = {r = 0, g = 0, b = 0, a = 0.9},
CharacterFrames = true,
PetStableFrame = true,
SpellBookFrame = true,
TalentFrame = true,
Inspect = true,
FriendsFrame = true,
TradeFrame = true,
QuestLog = true,
Tooltips = true,
MirrorTimers = true,
CastingBar = true,
StaticPopups = true,
ChatTabs = false,
ChatFrames = false,
ChatEditBox = true,
LootFrame = true,
GroupLoot = {shown=true, small=false},
ContainerFrames = true,
StackSplit = true,
ItemText = true,
WorldMap = true,
MenuFrames = true,
BankFrame = true,
MailFrame = true,
AuctionFrame = true,
MerchantFrames = true,
GossipFrame = true,
ClassTrainer = true,
TradeSkill = true,
CraftFrame = true,
TaxiFrame = true,
QuestFrame = true,
Battlefields = true,
ViewPort = {top = 64, bottom=64, YResolution=1050, scaling = 768/1050, shown=false},
TopFrame = {height = 64, width=1920, shown=false, fheight=50, xyOff = true},
BottomFrame = {height = 200, width=1920, shown=false, fheight=50, xyOff = true},
})
end
function oSkin:SetBackdrop(a1, a2, a3, a4)
if (type(a1) == "string") then
local _, _, r, g, b, a = string.find(a1, "([%d%.]+) ([%d%.]+) ([%d%.]+) ([%d%.]+)")
r = tonumber(r)
g = tonumber(g)
b = tonumber(b)
a = tonumber(a)
if (not a or not b or not r or not g) then return end
if (a > 255 or b > 255 or r > 255 or g > 255) then return end
if (g > 1) then g = (g or 0) / 255 end
if (r > 1) then r = (r or 0) / 255 end
if (b > 1) then b = (b or 0) / 255 end
if (a > 1) then a = (a or 0) / 255 end
self:SetBackdrop(r, g, b, a)
elseif (type(a1) == "number") then
if (not a2) then a2 = 0 end
if (not a3) then a3 = 0 end
if (not a4) then a4 = 0.9 end
if (not self.db.profile.Backdrop) then self.db.profile.Backdrop = {} end
self.db.profile.Backdrop.r = a1
self.db.profile.Backdrop.g = a2
self.db.profile.Backdrop.b = a3
self.db.profile.Backdrop.a = a4
end
end
function oSkin:GetBackdrop()
return string.format("%0.2f %0.2f %0.2f %0.2f", self.db.profile.Backdrop.r, self.db.profile.Backdrop.g, self.db.profile.Backdrop.b, self.db.profile.Backdrop.a)
end
function oSkin:Options()
oSkin.options = {
type = "group",
args = {
backdrop = {
type = "text",
name = "Backdrop Colors",
desc = "Set Backdrop Colors",
usage = "r g b a",
get = function() return self:GetBackdrop() end,
set = function(v) self:SetBackdrop(v) end,
},
character = {
name = "Character Frames",
type = "toggle",
desc = "Toggle the skin of the Character Frames",
get = function()
return self.db.profile.CharacterFrames
end,
set = function(v)
self.db.profile.CharacterFrames = v
self:characterFrames()
end,
},
stable = {
name = "Stable Frame",
type = "toggle",
desc = "Toggle the skin of the Stable Frame",
get = function()
return self.db.profile.PetStableFrame
end,
set = function(v)
self.db.profile.PetStableFrame = v
self:PetStableFrame()
end,
},
spellbook = {
name = "SpellBook Frame",
type = "toggle",
desc = "Toggle the skin of the SpellBook Frame",
get = function()
return self.db.profile.SpellBookFrame
end,
set = function(v)
self.db.profile.SpellBookFrame = v
self:SpellBookFrame()
end,
},
talent = {
name = "Talent Frame",
type = "toggle",
desc = "Toggle the skin of the Talent Frame",
get = function()
return self.db.profile.TalentFrame
end,
set = function(v)
self.db.profile.TalentFrame = v
self:TalentFrame()
end,
},
inspect = {
name = "Inspect Frame",
type = "toggle",
desc = "Toggle the skin of the Inspect Frame",
get = function()
return self.db.profile.Inspect
end,
set = function(v)
self.db.profile.Inspect = v
self:InspectFrame()
if IsAddOnLoaded("SuperInspect_UI") then self:SuperInspectFrame() end
end,
},
friends = {
name = "Friends Frame",
type = "toggle",
desc = "Toggle the skin of the Friends Frame",
get = function()
return self.db.profile.FriendsFrame
end,
set = function(v)
self.db.profile.FriendsFrame = v
self:FriendsFrame()
end,
},
trade = {
name = "Trade Frame",
type = "toggle",
desc = "Toggle the skin of the Trade Frame",
get = function()
return self.db.profile.TradeFrame
end,
set = function(v)
self.db.profile.TradeFrame = v
self:TradeFrame()
end,
},
questlog = {
name = "Quest Log Frame",
type = "toggle",
desc = "Toggle the skin of the Quest Log Frame",
get = function()
return self.db.profile.QuestLog
end,
set = function(v)
self.db.profile.QuestLog = v
self:QuestLog()
end,
},
tooltips = {
name = "Tooltips",
type = "toggle",
desc = "Toggle the skin of the Tooltips",
get = function()
return self.db.profile.Tooltips
end,
set = function(v)
self.db.profile.Tooltips = v
self:Tooltips()
end,
},
timers = {
name = "Timer Frames",
type = "toggle",
desc = "Toggle the skin of the Timer Frames",
get = function()
return self.db.profile.MirrorTimers
end,
set = function(v)
self.db.profile.MirrorTimers = v
self:MirrorTimers()
end,
},
castbar = {
name = "Casting Bar Frame",
type = "toggle",
desc = "Toggle the skin of the Casting Bar Frame",
get = function()
return self.db.profile.CastingBar
end,
set = function(v)
self.db.profile.CastingBar = v
self:CastingBar()
end,
},
popups = {
name = "Static Popups",
type = "toggle",
desc = "Toggle the skin of Static Popups",
get = function()
return self.db.profile.StaticPopups
end,
set = function(v)
self.db.profile.StaticPopups = v
self:StaticPopups()
if IsAddOnLoaded("Blizzard_RaidUI") then self:ReadyCheckFrame() end
end,
},
chattabs = {
name = "Chat Tabs",
type = "toggle",
desc = "Toggle the skin of the Chat Tabs",
get = function()
return self.db.profile.ChatTabs
end,
set = function(v)
self.db.profile.ChatTabs = v
self:ChatTabs()
end,
},
chatframes = {
name = "Chat Frames",
type = "toggle",
desc = "Toggle the skin of the Chat Frames",
get = function()
return self.db.profile.ChatFrames
end,
set = function(v)
self.db.profile.ChatFrames = v
self:ChatFrames()
end,
},
editbox = {
name = "Chat Edit Box",
type = "toggle",
desc = "Toggle the skin of the Chat Edit Box",
get = function()
return self.db.profile.ChatEditBox
end,
set = function(v)
self.db.profile.ChatEditBox = v
self:ChatEditBox()
end,
},
loot = {
name = "Loot Frame",
type = "toggle",
desc = "Toggle the skin of the Loot Frame",
get = function()
return self.db.profile.LootFrame
end,
set = function(v)
self.db.profile.LootFrame = v
self:LootFrame()
end,
},
grouploot = {
name = "Group Loot Frame",
desc = "Edit the GroupLoot settings",
type = "group",
args = {
show = {
name = "GroupLoot Show",
type = "toggle",
desc = "Toggle the GroupLoot frame on/off",
get = function()
return self.db.profile.GroupLoot.shown
end,
set = function (v)
self.db.profile.GroupLoot.shown = v
self:GroupLoot()
end,
},
small = {
name = "GroupLoot Size",
type = "toggle",
desc = "Toggle the GroupLoot size",
get = function()
return self.db.profile.GroupLoot.small
end,
set = function (v)
self.db.profile.GroupLoot.small = v
self:GroupLoot()
end,
},
},
},
container = {
name = "Container Frames",
type = "toggle",
desc = "Toggle the skin of the Container Frames",
get = function()
return self.db.profile.ContainerFrames
end,
set = function(v)
self.db.profile.ContainerFrames = v
self:containerFrames()
if IsAddOnLoaded("OneBank") then self:Skin_OneBank() end
if IsAddOnLoaded("OneBag") then self:Skin_OneBag() end
end,
},
stack = {
name = "Stack Split Frame",
type = "toggle",
desc = "Toggle the skin of the Stack Split Frame",
get = function()
return self.db.profile.StackSplit
end,
set = function(v)
self.db.profile.StackSplit = v
self:StackSplit()
if IsAddOnLoaded("EnhancedStackSplit") then self:EnhancedStackSplit() end
end,
},
itemtext = {
name = "Item Text Frame",
type = "toggle",
desc = "Toggle the skin of the Item Text Frame",
get = function()
return self.db.profile.ItemText
end,
set = function(v)
self.db.profile.ItemText = v
self:ItemText()
end,
},
map = {
name = "World Map Frame",
type = "toggle",
desc = "Toggle the skin of the World Map Frame",
get = function()
return self.db.profile.WorldMap
end,
set = function(v)
self.db.profile.WorldMap = v
self:WorldMap()
if IsAddOnLoaded("MetaMap") then self:MetaMap() end
end,
},
menu = {
name = "Menu Frames",
type = "toggle",
desc = "Toggle the skin of the Menu Frames",
get = function()
return self.db.profile.MenuFrames
end,
set = function(v)
self.db.profile.MenuFrames = v
self:menuFrames()
end,
},
bank = {
name = "Bank Frame",
type = "toggle",
desc = "Toggle the skin of the Bank Frame",
get = function()
return self.db.profile.BankFrame
end,
set = function(v)
self.db.profile.BankFrame = v
self:BankFrame()
end,
},
mail = {
name = "Mail Frame",
type = "toggle",
desc = "Toggle the skin of the Mail Frame",
get = function()
return self.db.profile.MailFrame
end,
set = function(v)
self.db.profile.MailFrame = v
self:MailFrame()
end,
},
auction = {
name = "Auction Frame",
type = "toggle",
desc = "Toggle the skin of the Auction Frame",
get = function()
return self.db.profile.AuctionFrame
end,
set = function(v)
self.db.profile.AuctionFrame = v
self:AuctionFrame()
end,
},
merchant = {
name = "Merchant Frames",
type = "toggle",
desc = "Toggle the skin of the Merchant Frames",
get = function()
return self.db.profile.MerchantFrames
end,
set = function(v)
self.db.profile.MerchantFrames = v
self:merchantFrames()
end,
},
gossip = {
name = "Gossip Frame",
type = "toggle",
desc = "Toggle the skin of the Gossip Frame",
get = function()
return self.db.profile.GossipFrame
end,
set = function(v)
self.db.profile.GossipFrame = v
self:GossipFrame()
end,
},
trainer = {
name = "Class Trainer Frame",
type = "toggle",
desc = "Toggle the skin of the Class Trainer Frame",
get = function()
return self.db.profile.ClassTrainer
end,
set = function(v)
self.db.profile.ClassTrainer = v
self:ClassTrainer()
end,
},
tradeskill = {
name = "Trade Skill Frame",
type = "toggle",
desc = "Toggle the skin of the Trade Skill Frame",
get = function()
return self.db.profile.TradeSkill
end,
set = function(v)
self.db.profile.TradeSkill = v
self:TradeSkill()
end,
},
craft = {
name = "Craft Frame",
type = "toggle",
desc = "Toggle the skin of the Craft Frame",
get = function()
return self.db.profile.CraftFrame
end,
set = function(v)
self.db.profile.CraftFrame = v
self:CraftFrame()
end,
},
taxi = {
name = "Taxi Frame",
type = "toggle",
desc = "Toggle the skin of the Taxi Frame",
get = function()
return self.db.profile.TaxiFrame
end,
set = function(v)
self.db.profile.TaxiFrame = v
self:TaxiFrame()
end,
},
quest = {
name = "Quest Frame",
type = "toggle",
desc = "Toggle the skin of the Quest Frame",
get = function()
return self.db.profile.QuestFrame
end,
set = function(v)
self.db.profile.QuestFrame = v
self:QuestFrame()
end,
},
battles = {
name = "Battlefields Frame",
type = "toggle",
desc = "Toggle the skin of the Battlefields Frame",
get = function()
return self.db.profile.Battlefields
end,
set = function(v)
self.db.profile.Battlefields = v
self:Battlefields()
end,
},
viewport = {
name = "View Port",
desc = "Edit the ViewPort settings",
type = "group",
args = {
top = {
name = "VP Top",
desc = "Change Height of the Top Band",
type = "range",
step = 1,
min = 0,
max = 256,
get = function ()
return self.db.profile.ViewPort.top
end,
set = function (v)
self.db.profile.ViewPort.top = v
self:ViewPort_top()
end,
},
bottom = {
name = "VP Bottom",
desc = "Change Height of the Bottom Band",
type = "range",
step = 1,
min = 0,
max = 256,
get = function ()
return self.db.profile.ViewPort.bottom
end,
set = function (v)
self.db.profile.ViewPort.bottom = v
self:ViewPort_bottom()
end,
},
yres = {
name = "VP YResolution",
desc = "Change Y Resolution",
type = "range",
step = 2,
min = 0,
max = 1600,
get = function ()
return self.db.profile.ViewPort.YResolution
end,
set = function (v)
self.db.profile.ViewPort.YResolution = v
self.db.profile.ViewPort.scaling = 768 / self.db.profile.ViewPort.YResolution
self.initialized.ViewPort = nil
self:ViewPort()
end,
},
show = {
name = "ViewPort Show",
type = "toggle",
desc = "Toggle the ViewPort on/off",
get = function()
return self.db.profile.ViewPort.shown
end,
set = function (v)
self.db.profile.ViewPort.shown = v
if self.initialized.ViewPort then
self:ViewPort_reset()
else
self:ViewPort()
end
end,
},
},
},
topframe = {
name = "Top Frame",
desc = "Edit the TopFrame settings",
type = "group",
args = {
xyOff = {
name = "TF Move Origin offscreen",
desc = "Hide Border on Left and Top",
type = "toggle",
get = function ()
return self.db.profile.TopFrame.xyOff
end,
set = function (v)
self.db.profile.TopFrame.xyOff = v
if self.initialized.TopFrame then
if self.db.profile.TopFrame.xyOff then
self.topframe:SetPoint("TOPLEFT", UIParent, "TOPLEFT", -6, 6)
else
self.topframe:SetPoint("TOPLEFT", UIParent, "TOPLEFT", -3, 3)
end
end
end,
},
height = {
name = "TF Height",
desc = "Change Height of the TopFrame",
type = "range",
step = 1,
min = 0,
max = 500,
get = function ()
return self.db.profile.TopFrame.height
end,
set = function (v)
self.db.profile.TopFrame.height = v
if self.initialized.TopFrame then
self.topframe:SetHeight(v)
end
end,
},
width = {
name = "TF Width",
desc = "Change Width of the TopFrame",
type = "range",
step = 1,
min = 0,
max = 3000,
get = function ()
return self.db.profile.TopFrame.width
end,
set = function (v)
self.db.profile.TopFrame.width = v
if self.initialized.TopFrame then
self.topframe:SetWidth(v)
end
end,
},
fadeheight = {
name = "TF Fade Height",
desc = "Change the Height of the Fade Effect",
type = "range",
step = 1,
min = 0,
max = 500,
get = function ()
return self.db.profile.TopFrame.fheight
end,
set = function (v)
self.db.profile.TopFrame.fheight = v
if self.initialized.TopFrame then
self.topframe.tfade:SetPoint("BOTTOMRIGHT", self.topframe, "TOPRIGHT", -4, -v)
end
end,
},
show = {
name = "TopFrame Show",
type = "toggle",
desc = "Toggle the TopFrame on/off",
get = function()
return self.db.profile.TopFrame.shown
end,
set = function (v)
self.db.profile.TopFrame.shown = v
if self.initialized.TopFrame then
if self.topframe:IsVisible() then
self.topframe:Hide()
else
self.topframe:Show()
end
else
self:TopFrame()
end
end,
},
},
},
bottomframe = {
name = "Bottom Frame",
desc = "Edit the BottomFrame settings",
type = "group",
args = {
xyOff = {
name = "BF Move Origin offscreen",
desc = "Hide Border on Left and Bottom",
type = "toggle",
get = function ()
return self.db.profile.BottomFrame.xyOff
end,
set = function (v)
self.db.profile.BottomFrame.xyOff = v
if self.initialized.BottomFrame then
if self.db.profile.BottomFrame.xyOff then
self.bottomframe:SetPoint("BOTTOMLEFT", UIParent, "BOTTOMLEFT", -6, -6)
else
self.bottomframe:SetPoint("BOTTOMLEFT", UIParent, "BOTTOMLEFT", -3, -3)
end
end
end,
},
height = {
name = "BF Height",
desc = "Change Height of the BottomFrame",
type = "range",
step = 1,
min = 0,
max = 500,
get = function ()
return self.db.profile.BottomFrame.height
end,
set = function (v)
self.db.profile.BottomFrame.height = v
if self.initialized.BottomFrame then
self.bottomframe:SetHeight(v)
end
end,
},
width = {
name = "BF Width",
desc = "Change Width of the BottomFrame",
type = "range",
step = 1,
min = 0,
max = 3000,
get = function ()
return self.db.profile.BottomFrame.width
end,
set = function (v)
self.db.profile.BottomFrame.width = v
if self.initialized.BottomFrame then
self.bottomframe:SetWidth(v)
end
end,
},
fadeheight = {
name = "BF Fade Height",
desc = "Change the Height of the Fade Effect",
type = "range",
step = 1,
min = 0,
max = 500,
get = function ()
return self.db.profile.BottomFrame.fheight
end,
set = function (v)
self.db.profile.BottomFrame.fheight = v
if self.initialized.BottomFrame then
self.bottomframe.tfade:SetPoint("BOTTOMRIGHT", self.bottomframe, "TOPRIGHT", -4, -v)
end
end,
},
show = {
name = "BottomFrame Show",
type = "toggle",
desc = "Toggle the BottomFrame on/off",
get = function()
return self.db.profile.BottomFrame.shown
end,
set = function (v)
self.db.profile.BottomFrame.shown = v
if self.initialized.BottomFrame then
if self.bottomframe:IsVisible() then
self.bottomframe:Hide()
else
self.bottomframe:Show()
end
else
self:BottomFrame()
end
end,
},
},
},
}
}
end