/Interface/AddOns/Skinner
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 |
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) |
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 |
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@ |
## 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 |
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 |
-- 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("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 |
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 |
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 |
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" |
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 |
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 |
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 |
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) |
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} |
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 |