From a75fd5dca4293f2f68f89b5f307bf66d4319fa01 Mon Sep 17 00:00:00 2001 From: Artur Morozov Date: Thu, 13 Jun 2019 14:24:34 +0300 Subject: [PATCH] skins: add a bunch of tbc compatible skins * add skin for: auction, character, game_menu guild_registrar, inspect, macro, mail, merchant, options-interface, options-sound, options-video, popup_dialogs, professions, questlog, talents, tracking, guildbank, socket, readycheck, arena_registrar, arena, time_manager, LFG * add mail highlighting the quality of items * add quality borders of guildbank items --- compat/tbc.lua | 1 - compat/vanilla.lua | 1 - init/skins.xml | 9 ++ modules/autovendor.lua | 2 +- modules/thirdparty.lua | 2 +- skins/blizzard/arena.lua | 55 ++++++++++ skins/blizzard/arena_registrar.lua | 119 +++++++++++++++++++++ skins/blizzard/auction.lua | 20 ++-- skins/blizzard/character.lua | 30 ++++-- skins/blizzard/game_menu.lua | 6 +- skins/blizzard/guild_registrar.lua | 19 ++-- skins/blizzard/guildbank.lua | 131 +++++++++++++++++++++++ skins/blizzard/inspect.lua | 149 ++++++++++++++++++++++---- skins/blizzard/lfg.lua | 70 ++++++++++++ skins/blizzard/macro.lua | 4 +- skins/blizzard/mail.lua | 154 +++++++++++++++++++++------ skins/blizzard/merchant.lua | 19 +++- skins/blizzard/options-interface.lua | 75 +++++++++++++ skins/blizzard/options-sound.lua | 55 +++++++--- skins/blizzard/options-video.lua | 70 +++++++++--- skins/blizzard/popup_dialogs.lua | 10 +- skins/blizzard/professions.lua | 78 ++++++++++---- skins/blizzard/questlog.lua | 30 ++++-- skins/blizzard/readycheck.lua | 12 ++- skins/blizzard/socket.lua | 39 +++++++ skins/blizzard/talents.lua | 62 ++++++----- skins/blizzard/time_manager.lua | 136 +++++++++++++++++++++++ skins/blizzard/tracking.lua | 8 ++ 28 files changed, 1180 insertions(+), 186 deletions(-) create mode 100644 skins/blizzard/arena.lua create mode 100644 skins/blizzard/arena_registrar.lua create mode 100644 skins/blizzard/guildbank.lua create mode 100644 skins/blizzard/lfg.lua create mode 100644 skins/blizzard/socket.lua create mode 100644 skins/blizzard/time_manager.lua create mode 100644 skins/blizzard/tracking.lua diff --git a/compat/tbc.lua b/compat/tbc.lua index 546f5191..d9eb1551 100644 --- a/compat/tbc.lua +++ b/compat/tbc.lua @@ -18,7 +18,6 @@ NAMEPLATE_OBJECTORDER = { "border", "_", "_", "glow", "name", "level", "levelico NAMEPLATE_FRAMETYPE = "Frame" MINIMAP_TRACKING_FRAME = _G.MiniMapTracking -UI_OPTIONS_FRAME = _G.InterfaceOptionsFrame FRIENDS_NAME_LOCATION = "ButtonTextLocation" diff --git a/compat/vanilla.lua b/compat/vanilla.lua index ec8bd8fa..37a6f44e 100644 --- a/compat/vanilla.lua +++ b/compat/vanilla.lua @@ -18,7 +18,6 @@ NAMEPLATE_OBJECTORDER = { "border", "glow", "name", "level", "levelicon", "raidi NAMEPLATE_FRAMETYPE = "Button" MINIMAP_TRACKING_FRAME = _G.MiniMapTrackingFrame -UI_OPTIONS_FRAME = _G.UIOptionsFrame FRIENDS_NAME_LOCATION = "ButtonTextNameLocation" diff --git a/init/skins.xml b/init/skins.xml index 031f94fe..010e2b96 100644 --- a/init/skins.xml +++ b/init/skins.xml @@ -34,4 +34,13 @@ + + + + + + + + + diff --git a/modules/autovendor.lua b/modules/autovendor.lua index 379fda65..4aabe2d6 100644 --- a/modules/autovendor.lua +++ b/modules/autovendor.lua @@ -100,7 +100,7 @@ pfUI:RegisterModule("autovendor", "vanilla:tbc", function () autovendor.button:SetPoint("RIGHT", MerchantRepairItemButton, "LEFT", -4*bpad, 0) else autovendor.button:ClearAllPoints() - autovendor.button:SetPoint("RIGHT", MerchantBuyBackItemItemButton, "LEFT", -20, 0) + autovendor.button:SetPoint("RIGHT", MerchantBuyBackItemItemButton, "LEFT", -14, 0) end end end) diff --git a/modules/thirdparty.lua b/modules/thirdparty.lua index 2938a572..3f288b43 100644 --- a/modules/thirdparty.lua +++ b/modules/thirdparty.lua @@ -636,7 +636,7 @@ pfUI:RegisterModule("thirdparty", "vanilla", function () return pfUI.chat:HandleLink(text) end - -- replace wim class colors with pfUI ones + -- replace wim class colors with pfUI ones hooksecurefunc("WIM_InitClassProps", function() for class in pairs(RAID_CLASS_COLORS) do local wimclass = _G[format("WIM_LOCALIZED_%s",class)] diff --git a/skins/blizzard/arena.lua b/skins/blizzard/arena.lua new file mode 100644 index 00000000..d87c98eb --- /dev/null +++ b/skins/blizzard/arena.lua @@ -0,0 +1,55 @@ +pfUI:RegisterSkin("Arena", "tbc", function () + StripTextures(ArenaFrame) + CreateBackdrop(ArenaFrame, nil, nil, .75) + CreateBackdropShadow(ArenaFrame) + + ArenaFrame.backdrop:SetPoint("TOPLEFT", 10, -10) + ArenaFrame.backdrop:SetPoint("BOTTOMRIGHT", -32, 72) + ArenaFrame:SetHitRectInsets(10,32,10,72) + EnableMovable(ArenaFrame) + + SkinCloseButton(ArenaFrameCloseButton, ArenaFrame.backdrop, -6, -6) + + ArenaFrame:DisableDrawLayer("BACKGROUND") + + ArenaFrameFrameLabel:ClearAllPoints() + ArenaFrameFrameLabel:SetPoint("TOP", TabardFrame.backdrop, "TOP", 0, -10) + + ArenaFrame.zones_bg = CreateFrame("Frame", "ArenaFrameZonesBackground", ArenaFrame) + CreateBackdrop(ArenaFrame.zones_bg, nil, nil, .7) + ArenaFrame.zones_bg:SetWidth(324) + ArenaFrame.zones_bg:SetHeight(204) + ArenaFrame.zones_bg:SetPoint("TOPLEFT", ArenaFrame.backdrop, "TOPLEFT", 9, -62) + + ArenaFrame.tex1 = ArenaFrame.backdrop:CreateTexture("ArenaFrameWorldMap1", "ARTWORK") + ArenaFrame.tex1:SetTexture("Interface\\BattlefieldFrame\\UI-Battlefield-WorldMap1") + ArenaFrame.tex1:SetPoint("TOPLEFT", 11, -64) + ArenaFrame.tex1:SetHeight(240) + ArenaFrame.tex2 = ArenaFrame.backdrop:CreateTexture("ArenaFrameWorldMap2", "ARTWORK") + ArenaFrame.tex2:SetTexture("Interface\\BattlefieldFrame\\UI-Battlefield-WorldMap2") + ArenaFrame.tex2:SetPoint("LEFT", ArenaFrame.tex1, "RIGHT", 0, 0) + ArenaFrame.tex2:SetHeight(240) + + ArenaFrameNameHeader:ClearAllPoints() + ArenaFrameNameHeader:SetPoint("BOTTOMLEFT", ArenaFrameDivider, "TOPLEFT", 14, 70) + local shift = 28 + ArenaZone1:ClearAllPoints() + ArenaZone1:SetPoint("TOPLEFT", ArenaFrame, "TOPLEFT", 23, -79 - shift) + ArenaZone4:ClearAllPoints() + ArenaZone4:SetPoint("TOPLEFT", ArenaZone3, "TOPLEFT", 0, -85 + shift) + + ArenaFrame.textbox = CreateFrame("Frame", "ArenaFrameTextBox", ArenaFrame) + ArenaFrame.textbox:SetWidth(324) + ArenaFrame.textbox:SetHeight(110) + CreateBackdrop(ArenaFrame.textbox) + ArenaFrame.textbox:SetPoint("BOTTOM", ArenaFrame.backdrop, "BOTTOM", 0, 36) + + ArenaFrameZoneDescription:SetFontObject(GameFontWhite) + ArenaFrameZoneDescription:ClearAllPoints() + ArenaFrameZoneDescription:SetPoint("TOPLEFT", ArenaFrame.textbox, "TOPLEFT", 4, -4) + ArenaFrameZoneDescription:SetPoint("BOTTOMRIGHT", ArenaFrame.textbox, "BOTTOMRIGHT", -4, 4) + + SkinButton(ArenaFrameCancelButton) + SkinButton(ArenaFrameJoinButton) + SkinButton(ArenaFrameGroupJoinButton) +end) diff --git a/skins/blizzard/arena_registrar.lua b/skins/blizzard/arena_registrar.lua new file mode 100644 index 00000000..39e9e57e --- /dev/null +++ b/skins/blizzard/arena_registrar.lua @@ -0,0 +1,119 @@ +pfUI:RegisterSkin("Arena Registrar", "tbc", function () + local border = tonumber(pfUI_config.appearance.border.default) + local bpad = border > 1 and border - 1 or 1 + + do -- ArenaRegistrarFrame + StripTextures(ArenaRegistrarFrame) + StripTextures(ArenaRegistrarGreetingFrame) + CreateBackdrop(ArenaRegistrarFrame, nil, nil, .75) + CreateBackdropShadow(ArenaRegistrarFrame) + + ArenaRegistrarFrame.backdrop:SetPoint("TOPLEFT", 14, -18) + ArenaRegistrarFrame.backdrop:SetPoint("BOTTOMRIGHT", -28, 66) + ArenaRegistrarFrame:SetHitRectInsets(14,28,18,66) + EnableMovable(ArenaRegistrarFrame) + + SkinCloseButton(ArenaRegistrarFrameCloseButton, ArenaRegistrarFrame.backdrop, -6, -6) + + ArenaRegistrarFrame:DisableDrawLayer("BACKGROUND") + + ArenaRegistrarFrameNpcNameText:ClearAllPoints() + ArenaRegistrarFrameNpcNameText:SetPoint("TOP", ArenaRegistrarFrame.backdrop, "TOP", 0, -10) + + SkinButton(ArenaRegistrarFrameGoodbyeButton) + SkinButton(ArenaRegistrarFrameCancelButton) + SkinButton(ArenaRegistrarFramePurchaseButton) + + ArenaRegistrarCostLabel:SetFontObject("GameFontWhite") + ArenaRegistrarFrameEditBox:DisableDrawLayer("BACKGROUND") + CreateBackdrop(ArenaRegistrarFrameEditBox, nil, nil, 1) + ArenaRegistrarFrameEditBox:SetHeight(16) + + local bg = ArenaRegistrarFrame:CreateTexture(nil, "LOW") + bg:SetTexCoord(.1,1,0,1) + bg:SetTexture("Interface\\Stationery\\StationeryTest1") + bg:SetPoint("TOPLEFT", 23, -81) + bg:SetPoint("BOTTOMRIGHT", -40, 100) + end + + do -- PVPBannerFrame + StripTextures(PVPBannerFrame) + CreateBackdrop(PVPBannerFrame, nil, nil, .75) + CreateBackdropShadow(PVPBannerFrame) + + PVPBannerFrame.backdrop:SetPoint("TOPLEFT", 10, -12) + PVPBannerFrame.backdrop:SetPoint("BOTTOMRIGHT", -32, 72) + PVPBannerFrame:SetHitRectInsets(10,32,12,72) + EnableMovable(PVPBannerFrame) + + SkinCloseButton(PVPBannerFrameCloseButton, PVPBannerFrame.backdrop, -6, -6) + + PVPBannerFrame:DisableDrawLayer("BACKGROUND") + + PVPBannerFrameNameText:ClearAllPoints() + PVPBannerFrameNameText:SetPoint("TOP", ArenaRegistrarFrame.backdrop, "TOP", 0, -10) + PVPBannerFrameGreetingText:ClearAllPoints() + PVPBannerFrameGreetingText:SetPoint("TOP", PVPBannerFrameNameText, "TOP", 0, -10) + + PVPBannerFrameCustomizationBorder:Hide() + PVPBannerFrameCustomization1:ClearAllPoints() + PVPBannerFrameCustomization1:SetPoint("TOPLEFT", PVPBannerFrameCustomizationBorder, "TOPLEFT", 48, -45) + for i = 1, 2 do + local frame = _G["PVPBannerFrameCustomization"..i] + StripTextures(frame) + CreateBackdrop(frame, nil, true) + frame:SetHeight(25) + + local left = _G["PVPBannerFrameCustomization"..i.."LeftButton"] + StripTextures(left) + SkinArrowButton(left, "left", 25) + left:ClearAllPoints() + left:SetPoint("LEFT", 0, 0) + + local right = _G["PVPBannerFrameCustomization"..i.."RightButton"] + StripTextures(right) + SkinArrowButton(right, "right", 25) + right:ClearAllPoints() + right:SetPoint("RIGHT", 0, 0) + + local text = _G["PVPBannerFrameCustomization"..i.."Text"] + text:ClearAllPoints() + text:SetPoint("CENTER", 0, 0) + end + + local width = PVPBannerFrameCustomization2:GetWidth() + for i = 1, 3 do + local btn = _G["PVPColorPickerButton"..i] + local prev = _G["PVPColorPickerButton"..(i-1)] + + SkinButton(btn) + btn:SetWidth(width) + btn:ClearAllPoints() + if prev then + btn:SetPoint("TOPLEFT", prev, "BOTTOMLEFT", 0, -5) + else + btn:SetPoint("TOPLEFT", PVPBannerFrameCustomization2, "BOTTOMLEFT", 0, -5) + end + end + + local PVPBannerFrameCancelButton + do -- fix Blizzard bug. A button with the same name is created twice. + for k,v in ipairs({PVPBannerFrameCustomizationFrame:GetChildren()}) do + if v:GetName() == "PVPBannerFrameCancelButton" then v:Hide() end -- This is the wrong and broken button. + end + + for k,v in ipairs({PVPBannerFrame:GetChildren()}) do + if v:GetName() == "PVPBannerFrameCancelButton" then PVPBannerFrameCancelButton = v end + end + end + + SkinButton(PVPBannerFrameSaveButton) + + SkinButton(PVPBannerFrameCancelButton) + PVPBannerFrameCancelButton:ClearAllPoints() + PVPBannerFrameCancelButton:SetPoint("TOPRIGHT", PVPColorPickerButton3, "BOTTOMRIGHT", 0, -10) + SkinButton(PVPBannerFrameAcceptButton) + PVPBannerFrameAcceptButton:ClearAllPoints() + PVPBannerFrameAcceptButton:SetPoint("RIGHT", PVPBannerFrameCancelButton, "LEFT", -2*bpad, 0) + end +end) diff --git a/skins/blizzard/auction.lua b/skins/blizzard/auction.lua index 77a57559..b28c0aa8 100644 --- a/skins/blizzard/auction.lua +++ b/skins/blizzard/auction.lua @@ -1,8 +1,17 @@ -pfUI:RegisterSkin("Auctionhouse", "vanilla", function () +pfUI:RegisterSkin("Auctionhouse", "vanilla:tbc", function () local border = tonumber(pfUI_config.appearance.border.default) local bpad = border > 1 and border - 1 or 1 - HookAddonOrVariable("Blizzard_AuctionUI", function() + -- Compatibility + if BrowseResetButton then -- tbc + SkinButton(BrowseResetButton) + else -- vanilla + SkinArrowButton(BidPrevPageButton, "left", 18) + SkinArrowButton(BidNextPageButton, "right", 18) + SkinArrowButton(AuctionsPrevPageButton, "left", 18) + SkinArrowButton(AuctionsNextPageButton, "right", 18) + end + hooksecurefunc("AuctionFrame_OnShow", function() AuctionFrame:ClearAllPoints() AuctionFrame:SetPoint("TOPLEFT", 10, -104) @@ -88,7 +97,6 @@ pfUI:RegisterSkin("Auctionhouse", "vanilla", function () BrowseLevelHyphen:SetPoint("LEFT", BrowseMinLevel, "RIGHT", 4, 0) SkinDropDown(BrowseDropDown) - BrowseDropDown:SetWidth(160) BrowseDropDown:ClearAllPoints() BrowseDropDown:SetPoint("LEFT", BrowseMaxLevel, "RIGHT", 20, 0) @@ -135,9 +143,6 @@ pfUI:RegisterSkin("Auctionhouse", "vanilla", function () end end, 1) - SkinArrowButton(BidPrevPageButton, "left", 18) - SkinArrowButton(BidNextPageButton, "right", 18) - SkinMoneyInputFrame(BidBidPrice) BidBidPrice:ClearAllPoints() BidBidPrice:SetPoint("BOTTOM", 25, 18) @@ -184,9 +189,6 @@ pfUI:RegisterSkin("Auctionhouse", "vanilla", function () end end, 1) - SkinArrowButton(AuctionsPrevPageButton, "left", 18) - SkinArrowButton(AuctionsNextPageButton, "right", 18) - SkinButton(AuctionsItemButton) hooksecurefunc("AuctionSellItemButton_OnEvent", function() if event ~= "NEW_AUCTION_UPDATE" then return end diff --git a/skins/blizzard/character.lua b/skins/blizzard/character.lua index 12166343..0920c173 100644 --- a/skins/blizzard/character.lua +++ b/skins/blizzard/character.lua @@ -1,7 +1,27 @@ -pfUI:RegisterSkin("Character", "vanilla", function () +pfUI:RegisterSkin("Character", "vanilla:tbc", function () local border = tonumber(pfUI_config.appearance.border.default) local bpad = border > 1 and border - 1 or 1 + -- Compatibility + if PlayerTitleDropDown then -- tbc, wotlk + -- Character Tab + SkinDropDown(PlayerTitleDropDown) + PlayerTitleDropDown:SetPoint("TOP", CharacterLevelText, "BOTTOM", 0, -2) + PlayerTitleDropDownText:SetPoint("LEFT", PlayerTitleDropDown.backdrop, "LEFT", 6, 2) + SkinDropDown(PlayerStatFrameLeftDropDown) + SkinDropDown(PlayerStatFrameRightDropDown) + + -- Honor Tab + StripTextures(PVPFrame) + else -- vanilla + -- Honor Tab + StripTextures(HonorFrame) + + HonorFrameProgressBar:SetStatusBarTexture(pfUI.media["img:bar"]) + CreateBackdrop(HonorFrameProgressBar) + HonorFrameProgressBar:SetHeight(24) + end + local magicResTextureCords = { {0.21875, 0.78125, 0.25, 0.3203125}, {0.21875, 0.78125, 0.0234375, 0.09375}, @@ -273,12 +293,4 @@ pfUI:RegisterSkin("Character", "vanilla", function () SkillDetailStatusBarUnlearnButton:SetPushedTexture(nil) SkillDetailStatusBarUnlearnButton:SetNormalTexture("Interface\\Buttons\\UI-GroupLoot-Pass-Up") end - - do -- Honor Tab - StripTextures(HonorFrame) - - HonorFrameProgressBar:SetStatusBarTexture(pfUI.media["img:bar"]) - CreateBackdrop(HonorFrameProgressBar) - HonorFrameProgressBar:SetHeight(24) - end end) diff --git a/skins/blizzard/game_menu.lua b/skins/blizzard/game_menu.lua index 10528e4f..9fb7f511 100644 --- a/skins/blizzard/game_menu.lua +++ b/skins/blizzard/game_menu.lua @@ -3,8 +3,12 @@ pfUI:RegisterSkin("Game Menu", "vanilla:tbc", function () CreateBackdrop(GameMenuFrame, nil, true, .75) CreateBackdropShadow(GameMenuFrame) - GameMenuFrame:SetHeight(GameMenuFrame:GetHeight() + 2) GameMenuFrame:SetWidth(GameMenuFrame:GetWidth() - 30) + if pfUI.expansion == 'tbc' then + GameMenuFrame:SetHeight(GameMenuFrame:GetHeight() + 10) + elseif pfUI.expansion == 'vanilla' then + GameMenuFrame:SetHeight(GameMenuFrame:GetHeight() + 6) + end local title = GetNoNameObject(GameMenuFrame, "FontString", "ARTWORK", MAIN_MENU) title:SetTextColor(1,1,1,1) diff --git a/skins/blizzard/guild_registrar.lua b/skins/blizzard/guild_registrar.lua index 86823e64..44c1459d 100644 --- a/skins/blizzard/guild_registrar.lua +++ b/skins/blizzard/guild_registrar.lua @@ -1,4 +1,4 @@ -pfUI:RegisterSkin("Guild Registrar", "vanilla", function () +pfUI:RegisterSkin("Guild Registrar", "vanilla:tbc", function () StripTextures(GuildRegistrarFrame) StripTextures(GuildRegistrarGreetingFrame) CreateBackdrop(GuildRegistrarFrame, nil, nil, .75) @@ -25,16 +25,9 @@ pfUI:RegisterSkin("Guild Registrar", "vanilla", function () CreateBackdrop(GuildRegistrarFrameEditBox, nil, nil, 1) GuildRegistrarFrameEditBox:SetHeight(16) - local texture = "StationeryTest" - if date("%m%d") == "0223" then texture = "Stationery_Val" end - local tex_Left = GuildRegistrarFrame:CreateTexture("BACKGROUND") - tex_Left:SetTexture("Interface\\Stationery\\"..texture.."1") - tex_Left:SetPoint("TOPLEFT", 23, -81) - tex_Left:SetWidth(tex_Left:GetWidth() + 10) - tex_Left:SetHeight(330) - local tex_Right = GuildRegistrarFrame:CreateTexture("BACKGROUND") - tex_Right:SetTexture("Interface\\Stationery\\"..texture.."2") - tex_Right:SetPoint("LEFT", tex_Left, "RIGHT", 0, 0) - tex_Right:SetWidth(tex_Right:GetWidth() + 10) - tex_Right:SetHeight(330) + local bg = GuildRegistrarFrame:CreateTexture(nil, "LOW") + bg:SetTexCoord(.1,1,0,1) + bg:SetTexture("Interface\\Stationery\\StationeryTest1") + bg:SetPoint("TOPLEFT", 23, -81) + bg:SetPoint("BOTTOMRIGHT", -40, 100) end) diff --git a/skins/blizzard/guildbank.lua b/skins/blizzard/guildbank.lua new file mode 100644 index 00000000..d428fb3c --- /dev/null +++ b/skins/blizzard/guildbank.lua @@ -0,0 +1,131 @@ +pfUI:RegisterSkin("Guild Bank", "tbc", function () + local border = tonumber(pfUI_config.appearance.border.default) + local bpad = border > 1 and border - 1 or 1 + + HookAddonOrVariable("Blizzard_GuildBankUI", function() + do -- GuildBankFrame + StripTextures(GuildBankFrame) + CreateBackdrop(GuildBankFrame, nil, nil, .75) + CreateBackdropShadow(GuildBankFrame) + GuildBankFrame.backdrop:SetPoint("TOPLEFT", 10, -30) + GuildBankFrame.backdrop:SetPoint("BOTTOMRIGHT", 0, 4) + GuildBankFrame:SetHitRectInsets(10,0,30,4) + EnableMovable(GuildBankFrame) + + SkinCloseButton(GetNoNameObject(GuildBankFrame, "Button", nil, "UI-Panel-MinimizeButton-Up"), GuildBankFrame.backdrop, -6, -6) + + GuildBankEmblemFrame:ClearAllPoints() + GuildBankEmblemFrame:SetPoint("BOTTOM", GuildBankFrame.backdrop, "TOP", -70, 0) + + for i = 1, 4 do + local tab = _G["GuildBankFrameTab"..i] + local lastTab = _G["GuildBankFrameTab"..(i-1)] + tab:ClearAllPoints() + if lastTab then + tab:SetPoint("LEFT", lastTab, "RIGHT", border*2 + 1, 0) + else + tab:SetPoint("TOPLEFT", GuildBankFrame.backdrop, "BOTTOMLEFT", bpad, -(border + (border == 1 and 1 or 2))) + end + SkinTab(tab) + end + for i = 1, 6 do + local frame = _G["GuildBankTab"..i] + local button = _G["GuildBankTab"..i.."Button"] + local lastbutton = _G["GuildBankTab"..(i-1).."Button"] + local texture = _G["GuildBankTab"..i.."ButtonIconTexture"] + + StripTextures(frame) + SkinButton(button, nil, nil, nil, texture) + + button:ClearAllPoints() + if lastbutton then + button:SetPoint("TOP", lastbutton, "BOTTOM", 0, - (border + (border == 1 and 1 or 2) + bpad)) + else + button:SetPoint("TOPLEFT", 6, -60) + end + + function button.SetChecked(self, checked) + if checked then + self.locked = true + self:SetBackdropBorderColor(1,1,1) + else + self.locked = false + self:SetBackdropBorderColor(GetStringColor(pfUI_config.appearance.border.color)) + end + end + end + + for i = 1, NUM_GUILDBANK_COLUMNS do + local column = _G["GuildBankColumn"..i] + StripTextures(column) + for j = 1, NUM_SLOTS_PER_GUILDBANK_GROUP do + local slot = _G["GuildBankColumn"..i.."Button"..j] + SkinButton(slot, nil, nil, nil, _G[slot:GetName().."IconTexture"], true) + end + end + + hooksecurefunc("GuildBankFrame_Update", function() + if GuildBankFrame.mode ~= "bank" then return end + + for i = 1, MAX_GUILDBANK_SLOTS_PER_TAB do + local index = math.fmod(i, NUM_SLOTS_PER_GUILDBANK_GROUP) + if index == 0 then index = NUM_SLOTS_PER_GUILDBANK_GROUP end + local column = ceil((i-.5)/NUM_SLOTS_PER_GUILDBANK_GROUP) + local slot = _G["GuildBankColumn"..column.."Button"..index] + local tab = GetCurrentGuildBankTab() + local link = GetGuildBankItemLink(tab, i) + if link then + local r,g,b = GetItemQualityColor(select(3, GetItemInfo(link))) + slot:SetBackdropBorderColor(r,g,b,1) + else + slot:SetBackdropBorderColor(GetStringColor(pfUI_config.appearance.border.color)) + end + end + end) + + SkinButton(GuildBankFrameDepositButton) + SkinButton(GuildBankFrameWithdrawButton) + GuildBankFrameWithdrawButton:ClearAllPoints() + GuildBankFrameWithdrawButton:SetPoint("RIGHT", GuildBankFrameDepositButton, "LEFT", -2*bpad, 0) + + SkinButton(GuildBankInfoSaveButton) + GuildBankInfoScrollFrameScrollBar:Hide() + end + + do -- GuildBankPopupFrame + StripTextures(GuildBankPopupFrame) + CreateBackdrop(GuildBankPopupFrame, nil, nil, .75) + CreateBackdropShadow(GuildBankPopupFrame) + GuildBankPopupFrame.backdrop:SetPoint("TOPLEFT", 0, -6) + GuildBankPopupFrame.backdrop:SetPoint("BOTTOMRIGHT", -26, 26) + GuildBankPopupFrame:SetHitRectInsets(0,26,6,26) + + GuildBankPopupFrame.backdrop:SetPoint("TOPLEFT", GuildBankFrame.backdrop, "TOPRIGHT", 2*border, 0) + + GuildBankPopupEditBox:DisableDrawLayer("BACKGROUND") + CreateBackdrop(GuildBankPopupEditBox) + + StripTextures(GuildBankPopupScrollFrame) + CreateBackdrop(GuildBankPopupScrollFrame) + SkinScrollbar(GuildBankPopupScrollFrameScrollBar) + GuildBankPopupScrollFrame:ClearAllPoints() + GuildBankPopupScrollFrame:SetPoint("TOPLEFT", GuildBankPopupEditBox, "BOTTOMLEFT", -11, -14) + GuildBankPopupScrollFrame:SetWidth(182) + GuildBankPopupScrollFrame:SetHeight(178) + + for i = 1, 16 do + local slot = _G["GuildBankPopupButton"..i] + StripTextures(slot) + SkinButton(slot, nil, nil, nil, _G["GuildBankPopupButton"..i.."Icon"], true) + end + + GuildBankPopupButton1:ClearAllPoints() + GuildBankPopupButton1:SetPoint("TOPLEFT", GuildBankPopupScrollFrame, "TOPLEFT", 4, -4) + + SkinButton(GuildBankPopupCancelButton) + SkinButton(GuildBankPopupOkayButton) + GuildBankPopupOkayButton:ClearAllPoints() + GuildBankPopupOkayButton:SetPoint("RIGHT", GuildBankPopupCancelButton, "LEFT", -2*bpad, 0) + end + end) +end) diff --git a/skins/blizzard/inspect.lua b/skins/blizzard/inspect.lua index 03a25d08..b93fe2b0 100644 --- a/skins/blizzard/inspect.lua +++ b/skins/blizzard/inspect.lua @@ -1,3 +1,130 @@ +local slots = { + "HeadSlot", + "NeckSlot", + "ShoulderSlot", + "BackSlot", + "ChestSlot", + "ShirtSlot", + "TabardSlot", + "WristSlot", + "HandsSlot", + "WaistSlot", + "LegsSlot", + "FeetSlot", + "Finger0Slot", + "Finger1Slot", + "Trinket0Slot", + "Trinket1Slot", + "MainHandSlot", + "SecondaryHandSlot", + "RangedSlot", +} + +pfUI:RegisterSkin("Inspect", "tbc", function () + local border = tonumber(pfUI_config.appearance.border.default) + local bpad = border > 1 and border - 1 or 1 + + HookAddonOrVariable("Blizzard_InspectUI", function() + CreateBackdrop(InspectFrame, nil, nil, .75) + CreateBackdropShadow(InspectFrame) + + InspectFrame.backdrop:SetPoint("TOPLEFT", 10, -10) + InspectFrame.backdrop:SetPoint("BOTTOMRIGHT", -30, 72) + InspectFrame:SetHitRectInsets(10,30,10,72) + EnableMovable("InspectFrame", "Blizzard_InspectUI", INSPECTFRAME_SUBFRAMES) + + SkinCloseButton(InspectFrameCloseButton, InspectFrame.backdrop, -6, -6) + + InspectFrame:DisableDrawLayer("ARTWORK") + + InspectNameText:ClearAllPoints() + InspectNameText:SetPoint("TOP", InspectFrame.backdrop, "TOP", 0, -10) + InspectGuildText:Show() + InspectGuildText:ClearAllPoints() + InspectGuildText:SetPoint("TOP", InspectLevelText, "BOTTOM", 0, -1) + + for i = 1, 3 do + local tab = _G["InspectFrameTab"..i] + local lastTab = _G["InspectFrameTab"..(i-1)] + tab:ClearAllPoints() + if lastTab then + tab:SetPoint("LEFT", lastTab, "RIGHT", border*2 + 1, 0) + else + tab:SetPoint("TOPLEFT", InspectFrame.backdrop, "BOTTOMLEFT", bpad, -(border + (border == 1 and 1 or 2))) + end + SkinTab(tab) + end + + do -- Character Tab + StripTextures(InspectPaperDollFrame) + + EnableClickRotate(InspectModelFrame) + InspectModelRotateLeftButton:Hide() + InspectModelRotateRightButton:Hide() + + for _, slot in pairs(slots) do + local frame = _G["Inspect"..slot] + SkinButton(frame, nil, nil, nil, _G["Inspect"..slot.."IconTexture"], true) + end + + hooksecurefunc("InspectPaperDollFrame_OnShow", function() + local guild, title = GetGuildInfo(InspectFrame.unit) + local text = guild and format(TEXT(GUILD_TITLE_TEMPLATE), title, guild) or "" + InspectGuildText:SetText(text) + end) + + hooksecurefunc("InspectPaperDollItemSlotButton_Update", function(button) + local unit = InspectFrame.unit + local link = GetInventoryItemLink(unit, button:GetID()) + if link then + local quality = select(3, GetItemInfo(link)) + button:SetBackdropBorderColor(GetItemQualityColor(quality)) + else + button:SetBackdropBorderColor(pfUI.cache.er, pfUI.cache.eg, pfUI.cache.eb, pfUI.cache.ea) + end + end) + end + + do -- PVP Tab + StripTextures(InspectPVPFrame) + end + + do -- Talent Tab + StripTextures(InspectTalentFrame) + InspectTalentFrameCancelButton:Hide() + InspectTalentFrameCloseButton:Hide() + + InspectTalentFrameSpentPoints:ClearAllPoints() + InspectTalentFrameSpentPoints:SetPoint("BOTTOMRIGHT", InspectTalentFrame, "BOTTOMRIGHT", 0, 83) + + StripTextures(InspectTalentFrameScrollFrame) + SkinScrollbar(InspectTalentFrameScrollFrameScrollBar) + + for i = 1, MAX_NUM_TALENTS do + local talent = _G["InspectTalentFrameTalent"..i] + if talent then + StripTextures(talent) + SkinButton(talent, nil, nil, nil, _G["InspectTalentFrameTalent"..i.."IconTexture"]) + + _G["InspectTalentFrameTalent"..i.."Rank"]:SetFont(pfUI.font_default, C.global.font_size, "OUTLINE") + end + end + + for i = 1, 3 do + local tab = _G["InspectTalentFrameTab"..i] + local lastTab = _G["InspectTalentFrameTab"..(i-1)] + tab:ClearAllPoints() + if lastTab then + tab:SetPoint("LEFT", lastTab, "RIGHT", border*2 + 1, 0) + else + tab:SetPoint("TOPLEFT", 70, -50) + end + SkinTab(tab) + end + end + end) +end) + pfUI:RegisterSkin("Inspect", "vanilla", function () local border = tonumber(pfUI_config.appearance.border.default) local bpad = border > 1 and border - 1 or 1 @@ -34,28 +161,6 @@ pfUI:RegisterSkin("Inspect", "vanilla", function () InspectModelRotateLeftButton:Hide() InspectModelRotateRightButton:Hide() - local slots = { - "HeadSlot", - "NeckSlot", - "ShoulderSlot", - "BackSlot", - "ChestSlot", - "ShirtSlot", - "TabardSlot", - "WristSlot", - "HandsSlot", - "WaistSlot", - "LegsSlot", - "FeetSlot", - "Finger0Slot", - "Finger1Slot", - "Trinket0Slot", - "Trinket1Slot", - "MainHandSlot", - "SecondaryHandSlot", - "RangedSlot", - } - for _, slot in pairs(slots) do local frame = _G["Inspect"..slot] StripTextures(frame) diff --git a/skins/blizzard/lfg.lua b/skins/blizzard/lfg.lua new file mode 100644 index 00000000..7ced0a66 --- /dev/null +++ b/skins/blizzard/lfg.lua @@ -0,0 +1,70 @@ +pfUI:RegisterSkin("Looking for group", "tbc", function () + local border = tonumber(pfUI_config.appearance.border.default) + local bpad = border > 1 and border - 1 or 1 + + CreateBackdrop(LFGParentFrame, nil, nil, .75) + CreateBackdropShadow(LFGParentFrame) + + LFGParentFrame.backdrop:SetPoint("TOPLEFT", 14, -10) + LFGParentFrame.backdrop:SetPoint("BOTTOMRIGHT", -26, 72) + LFGParentFrame:SetHitRectInsets(14,26,10,72) + EnableMovable(LFGParentFrame) + + SkinCloseButton(GetNoNameObject(LFGParentFrame, 'Button', nil, "UI-Panel-MinimizeButton-Up"), LFGParentFrame.backdrop, -6, -6) + + LFGParentFrame:DisableDrawLayer("BACKGROUND") + + LFGParentFrameTitle:ClearAllPoints() + LFGParentFrameTitle:SetPoint("TOP", LFGParentFrame.backdrop, "TOP", 0, -10) + + SkinTab(LFGParentFrameTab1) + LFGParentFrameTab1:ClearAllPoints() + LFGParentFrameTab1:SetPoint("TOPLEFT", LFGParentFrame.backdrop, "BOTTOMLEFT", bpad, -(border + (border == 1 and 1 or 2))) + SkinTab(LFGParentFrameTab2) + LFGParentFrameTab2:ClearAllPoints() + LFGParentFrameTab2:SetPoint("LEFT", LFGParentFrameTab1, "RIGHT", border*2 + 1, 0) + + LFGParentFrameBackground:Hide() + + do -- LFGWizardFrame + SkinButton(LFGWizardFrameLFGButton) + SkinButton(LFGWizardFrameLFMButton) + end + + do -- LFGFrame + StripTextures(AutoJoinBackground) + + SkinCheckbox(AutoJoinCheckButton) + + SkinDropDown(LFGFrameTypeDropDown1) + SkinDropDown(LFGFrameNameDropDown1) + SkinDropDown(LFGFrameTypeDropDown2) + SkinDropDown(LFGFrameNameDropDown2) + SkinDropDown(LFGFrameTypeDropDown3) + SkinDropDown(LFGFrameNameDropDown3) + + SkinButton(LFGFrameDoneButton) + SkinButton(LFGFrameClearAllButton) + LFGFrameClearAllButton:ClearAllPoints() + LFGFrameClearAllButton:SetPoint("RIGHT", LFGFrameDoneButton, "LEFT", -2*bpad, 0) + + CreateBackdrop(LFGComment) + end + + do -- LFMFrame + StripTextures(AddMemberBackground) + + SkinCheckbox(AutoAddMembersCheckButton) + + SkinDropDown(LFMFrameTypeDropDown, nil, nil, nil, true) + SkinDropDown(LFMFrameNameDropDown, nil, nil, nil, true) + + for i=1, 4 do + SkinButton(_G["LFMFrameColumnHeader"..i]) + end + + SkinButton(LFMFrameGroupInviteButton) + SkinButton(LFMFrameSendMessageButton) + SkinButton(LFMFrameSearchButton) + end +end) diff --git a/skins/blizzard/macro.lua b/skins/blizzard/macro.lua index 7a1e32ec..a2d91fc9 100644 --- a/skins/blizzard/macro.lua +++ b/skins/blizzard/macro.lua @@ -1,4 +1,4 @@ -pfUI:RegisterSkin("Macro", "vanilla", function () +pfUI:RegisterSkin("Macro", "vanilla:tbc", function () local border = tonumber(pfUI_config.appearance.border.default) local bpad = border > 1 and border - 1 or 1 @@ -28,7 +28,6 @@ pfUI:RegisterSkin("Macro", "vanilla", function () local icon = _G["MacroButton"..i..'Icon'] StripTextures(button) SkinButton(button, nil, nil, nil, icon) - button:SetCheckedTexture([[Interface\Buttons\CheckButtonHilight]]) end StripTextures(MacroFrameSelectedMacroButton) SkinButton(MacroFrameSelectedMacroButton, nil, nil, nil, MacroFrameSelectedMacroButtonIcon, true) @@ -81,7 +80,6 @@ pfUI:RegisterSkin("Macro", "vanilla", function () local icon = _G["MacroPopupButton"..i..'Icon'] StripTextures(button) SkinButton(button, nil, nil, nil, icon) - button:SetCheckedTexture([[Interface\Buttons\CheckButtonHilight]]) end SkinButton(MacroPopupCancelButton) SkinButton(MacroPopupOkayButton) diff --git a/skins/blizzard/mail.lua b/skins/blizzard/mail.lua index 996be3db..e3a51e84 100644 --- a/skins/blizzard/mail.lua +++ b/skins/blizzard/mail.lua @@ -1,18 +1,128 @@ -pfUI:RegisterSkin("Mailbox", "vanilla", function () +pfUI:RegisterSkin("Mailbox", "vanilla:tbc", function () local border = tonumber(pfUI_config.appearance.border.default) local bpad = border > 1 and border - 1 or 1 - local skin = CreateFrame("Frame") - skin:SetScript("OnEvent", function() - this:UnregisterEvent("MAIL_SHOW") - if not this._Mail then - StripTextures(SendMailPackageButton) - SkinButton(SendMailPackageButton) + + -- Compatibility + local StationeryBackgroundLeft, StationeryBackgroundRight + if ATTACHMENTS_MAX_SEND then -- tbc + do -- SendMailFrame + for i = 1, ATTACHMENTS_MAX_SEND do + local btn = _G["SendMailAttachment"..i] + StripTextures(btn) + SkinButton(btn, nil, nil, nil, nil, true) + end + hooksecurefunc("SendMailFrame_Update", function() - HandleIcon(SendMailPackageButton, SendMailPackageButton:GetNormalTexture()) - end, 1) + for i = 1, ATTACHMENTS_MAX_SEND do + local btn = _G["SendMailAttachment"..i] + HandleIcon(btn, btn:GetNormalTexture()) + + local link = GetSendMailItemLink(i) + if link then + local r,g,b = GetItemQualityColor(select(3, GetItemInfo(link))) + btn:SetBackdropBorderColor(r,g,b,1) + else + btn:SetBackdropBorderColor(GetStringColor(pfUI_config.appearance.border.color)) + end + end + end) + + StationeryBackgroundLeft, StationeryBackgroundRight = SendStationeryBackgroundLeft, SendStationeryBackgroundRight end - end) - skin:RegisterEvent("MAIL_SHOW") + + do -- OpenMailFrame + for i = 1, ATTACHMENTS_MAX_RECEIVE do + SkinButton(_G["OpenMailAttachmentButton"..i], nil, nil, nil, _G["OpenMailAttachmentButton"..i.."IconTexture"], true) + end + + hooksecurefunc("InboxFrame_OnClick", function(index) + for i=1, ATTACHMENTS_MAX_RECEIVE do + local link = GetInboxItemLink(index, i) + if not link then return end + local r,g,b = GetItemQualityColor(select(3, GetItemInfo(link))) + _G["OpenMailAttachmentButton"..i]:SetBackdropBorderColor(r,g,b,1) + end + end) + + SkinButton(OpenMailReportSpamButton) + end + else -- vanilla + do -- SendMailFrame + local skin = CreateFrame("Frame") + skin:SetScript("OnEvent", function() + this:UnregisterEvent("MAIL_SHOW") + if not this._Mail then + StripTextures(SendMailPackageButton) + SkinButton(SendMailPackageButton, nil, nil, nil, nil, true) + + hooksecurefunc("SendMailFrame_Update", function() + HandleIcon(SendMailPackageButton, SendMailPackageButton:GetNormalTexture()) + + local link = GetItemLinkByName(GetSendMailItem()) + if link then + local _,_,linkstr = string.find(link, "(item:%d+:%d+:%d+:%d+)") + local _,_,quality = GetItemInfo(linkstr) + local r,g,b = GetItemQualityColor(quality) + SendMailPackageButton:SetBackdropBorderColor(r,g,b,1) + else + SendMailPackageButton:SetBackdropBorderColor(GetStringColor(pfUI_config.appearance.border.color)) + end + end, 1) + end + end) + skin:RegisterEvent("MAIL_SHOW") + + HookAddonOrVariable("Mail", function() + skin._Mail = true + for i = 1, 21 do + local button = _G["MailAttachment"..i] + StripTextures(button) + + SkinButton(button, nil, nil, nil, nil, true) + local orig = button.SetNormalTexture + button.SetNormalTexture = function(self, tex) + orig(self, tex) + + if button.item then + HandleIcon(self, self:GetNormalTexture()) + + local link = GetContainerItemLink(button.item[1], button.item[2]) + local _,_,linkstr = string.find(link, "(item:%d+:%d+:%d+:%d+)") + local _,_,quality = GetItemInfo(linkstr) + local r,g,b = GetItemQualityColor(quality) + self:SetBackdropBorderColor(r,g,b,1) + else + self:SetBackdropBorderColor(GetStringColor(pfUI_config.appearance.border.color)) + end + end + end + SkinButton(GetNoNameObject(InboxFrame, "Button", nil, "UI-Panel-Button-Up", OPENMAIL)) + local button = GetNoNameObject(SendMailFrame, "Button", nil, "UI-Panel-Button-Up", SEND_LABEL) -- this is SendMailMailButton + SkinButton(button) -- hack! only it happened to do it + button:ClearAllPoints() + button:SetPoint("RIGHT", SendMailCancelButton, "LEFT", -2*bpad, 0) + end) + + StationeryBackgroundLeft, StationeryBackgroundRight = _G.StationeryBackgroundLeft, _G.StationeryBackgroundRight + end + + do -- OpenMailFrame + SkinButton(OpenMailPackageButton, nil, nil, nil, OpenMailPackageButtonIconTexture) + + hooksecurefunc("InboxFrame_OnClick", function(index) + local name = GetInboxItem(index) + if name then + local link = GetItemLinkByName(name) + local _,_,linkstr = string.find(link, "(item:%d+:%d+:%d+:%d+)") + local _,_,quality = GetItemInfo(linkstr) + local r,g,b = GetItemQualityColor(quality) + OpenMailPackageButton:SetBackdropBorderColor(r,g,b,1) + else + OpenMailPackageButton:SetBackdropBorderColor(GetStringColor(pfUI_config.appearance.border.color)) + end + end) + end + end StripTextures(MailFrame, true) CreateBackdrop(MailFrame, nil, nil, .75) @@ -106,7 +216,6 @@ pfUI:RegisterSkin("Mailbox", "vanilla", function () OpenMailReplyButton:SetPoint("RIGHT", OpenMailDeleteButton, "LEFT", -2*bpad, 0) SkinButton(OpenMailMoneyButton, nil, nil, nil, OpenMailMoneyButtonIconTexture) - SkinButton(OpenMailPackageButton, nil, nil, nil, OpenMailPackageButtonIconTexture) SkinButton(OpenMailLetterButton, nil, nil, nil, OpenMailLetterButtonIconTexture) StripTextures(OpenMailScrollFrame) @@ -118,25 +227,4 @@ pfUI:RegisterSkin("Mailbox", "vanilla", function () OpenStationeryBackgroundLeft:SetAllPoints() OpenStationeryBackgroundRight:Hide() end - - HookAddonOrVariable("Mail", function() - skin._Mail = true - for i = 1, 21 do - local button = _G["MailAttachment"..i] - StripTextures(button) - SkinButton(button) - - button.icon = button:CreateTexture(button:GetName().."Icon", "ARTWORK") - HandleIcon(button, button.icon) - button.SetNormalTexture = function(self, tex) - button.icon:SetTexture(tex) - end - end - SkinButton(GetNoNameObject(InboxFrame, "Button", nil, "UI-Panel-Button-Up", OPENMAIL)) - local button = GetNoNameObject(SendMailFrame, "Button", nil, "UI-Panel-Button-Up", SEND_LABEL) -- this is SendMailMailButton - SkinButton(button) -- hack! only it happened to do it - button:ClearAllPoints() - button:SetPoint("RIGHT", SendMailCancelButton, "LEFT", -2*bpad, 0) - end) - end) diff --git a/skins/blizzard/merchant.lua b/skins/blizzard/merchant.lua index f6e75c36..ed2f224d 100644 --- a/skins/blizzard/merchant.lua +++ b/skins/blizzard/merchant.lua @@ -1,7 +1,22 @@ -pfUI:RegisterSkin("Merchant", "vanilla", function () +pfUI:RegisterSkin("Merchant", "vanilla:tbc", function () local border = tonumber(pfUI_config.appearance.border.default) local bpad = border > 1 and border - 1 or 1 + -- Compatibility + if MerchantGuildBankRepairButton then -- tbc + SkinButton(MerchantGuildBankRepairButton, nil, nil, nil, MerchantGuildBankRepairButtonIcon) + MerchantGuildBankRepairButtonIcon:SetTexCoord(.59, .82, .06, .54) + hooksecurefunc("MerchantFrame_UpdateRepairButtons", function() + MerchantGuildBankRepairButton:ClearAllPoints() + MerchantGuildBankRepairButton:SetPoint("RIGHT", MerchantBuyBackItemItemButton, "LEFT", -14, 0) + MerchantRepairAllButton:ClearAllPoints() + MerchantRepairAllButton:SetPoint("RIGHT", MerchantGuildBankRepairButton, "LEFT", -6, 0) + end) + else -- vanilla + MerchantRepairAllButton:ClearAllPoints() + MerchantRepairAllButton:SetPoint("RIGHT", MerchantBuyBackItemItemButton, "LEFT", -6, 0) + end + StripTextures(MerchantFrame) CreateBackdrop(MerchantFrame, nil, nil, .75) CreateBackdropShadow(MerchantFrame) @@ -64,8 +79,6 @@ pfUI:RegisterSkin("Merchant", "vanilla", function () SkinButton(MerchantBuyBackItemItemButton, nil, nil, nil, _G[MerchantBuyBackItemItemButton:GetName()..'IconTexture']) SkinButton(MerchantRepairAllButton, nil, nil, nil, MerchantRepairAllIcon) - MerchantRepairAllButton:ClearAllPoints() - MerchantRepairAllButton:SetPoint("RIGHT", MerchantBuyBackItemItemButton, "LEFT", -20, 0) MerchantRepairAllIcon:SetTexCoord(.31, .53, .06, .52) StripTextures(MerchantRepairItemButton) diff --git a/skins/blizzard/options-interface.lua b/skins/blizzard/options-interface.lua index a70fab6a..59de0e64 100644 --- a/skins/blizzard/options-interface.lua +++ b/skins/blizzard/options-interface.lua @@ -1,3 +1,78 @@ +pfUI:RegisterSkin("Options - Interface", "tbc", function () + local border = tonumber(pfUI_config.appearance.border.default) + local bpad = border > 1 and border - 1 or 1 + + StripTextures(InterfaceOptionsFrame) + CreateBackdrop(InterfaceOptionsFrame, nil, nil, .75) + CreateBackdropShadow(InterfaceOptionsFrame) + + EnableMovable(InterfaceOptionsFrame) + + InterfaceOptionsFrameHeaderText:ClearAllPoints() + InterfaceOptionsFrameHeaderText:SetPoint("TOP", InterfaceOptionsFrame.backdrop, "TOP", 0, -10) + + StripTextures(InterfaceOptionsFrameCategories) + CreateBackdrop(InterfaceOptionsFrameCategories, nil, true, .75) + StripTextures(InterfaceOptionsFrameAddOns) + CreateBackdrop(InterfaceOptionsFrameAddOns, nil, true, .75) + CreateBackdrop(InterfaceOptionsFramePanelContainer, nil, true, .75) + + SkinTab(InterfaceOptionsFrameTab1) + InterfaceOptionsFrameTab1:ClearAllPoints() + InterfaceOptionsFrameTab1:SetPoint("BOTTOMLEFT", InterfaceOptionsFrameCategories, "TOPLEFT", bpad, border + (border == 1 and 1 or 2)) + SkinTab(InterfaceOptionsFrameTab2) + InterfaceOptionsFrameTab2:ClearAllPoints() + InterfaceOptionsFrameTab2:SetPoint("LEFT", InterfaceOptionsFrameTab1, "RIGHT", border*2 + 1, 0) + + SkinButton(InterfaceOptionsFrameDefaults) + InterfaceOptionsFrameDefaults:ClearAllPoints() + InterfaceOptionsFrameDefaults:SetPoint("TOPLEFT", InterfaceOptionsFrameCategories, "BOTTOMLEFT", 0, -10) + SkinButton(InterfaceOptionsFrameCancel) + InterfaceOptionsFrameCancel:ClearAllPoints() + InterfaceOptionsFrameCancel:SetPoint("TOPRIGHT", InterfaceOptionsFramePanelContainer, "BOTTOMRIGHT", 0, -10) + SkinButton(InterfaceOptionsFrameOkay) + InterfaceOptionsFrameOkay:ClearAllPoints() + InterfaceOptionsFrameOkay:SetPoint("RIGHT", InterfaceOptionsFrameCancel, "LEFT", -2*bpad, 0) + + -- universal code for handling any frames! + local function SkinAllObjects(frame) + for _,obj in ipairs({frame:GetChildren()}) do + local obj_type = obj:GetObjectType() + if obj_type == "CheckButton" then + local size = obj:GetHeight() + if size > 26 then size = 26 end + SkinCheckbox(obj, size) + elseif obj_type == "Button" then + SkinButton(obj) + elseif obj_type == "Slider" then + SkinSlider(obj) + elseif obj_type == "Frame" then + if _G[obj:GetName().."Button"] then + SkinDropDown(obj) + else + SkinAllObjects(obj) + end + end + end + end + + local blizzardCategories = { + InterfaceOptionsControlsPanel, InterfaceOptionsCombatPanel, InterfaceOptionsDisplayPanel, + InterfaceOptionsQuestsPanel, InterfaceOptionsSocialPanel, InterfaceOptionsActionBarsPanel, + InterfaceOptionsNamesPanel, InterfaceOptionsCombatTextPanel, InterfaceOptionsStatusTextPanel, + InterfaceOptionsPartyRaidPanel, InterfaceOptionsCameraPanel, InterfaceOptionsMousePanel, + InterfaceOptionsHelpPanel, InterfaceOptionsLanguagesPanel + } + for _,frame in ipairs(blizzardCategories) do + SkinAllObjects(frame) + end + + -- skin the option panel of any addon + for _,frame in pairs(INTERFACEOPTIONS_ADDONCATEGORIES) do + SkinAllObjects(frame) + end +end) + pfUI:RegisterSkin("Options - Interface", "vanilla", function () local border = tonumber(pfUI_config.appearance.border.default) local bpad = border > 1 and border - 1 or 1 diff --git a/skins/blizzard/options-sound.lua b/skins/blizzard/options-sound.lua index f0c934ed..5594665e 100644 --- a/skins/blizzard/options-sound.lua +++ b/skins/blizzard/options-sound.lua @@ -1,7 +1,42 @@ -pfUI:RegisterSkin("Options - Sound", "vanilla", function () +pfUI:RegisterSkin("Options - Sound", "vanilla:tbc", function () local border = tonumber(pfUI_config.appearance.border.default) local bpad = border > 1 and border - 1 or 1 + -- Compatibility + local SoundOptionsFrameHeaderText, NUM_CHECKBOXES, NUM_SLIDERS + if SOUND_OPTIONS then -- tbc + SoundOptionsFrameHeaderText = GetNoNameObject(SoundOptionsFrame, "FontString", "BACKGROUND", SOUND_OPTIONS) + NUM_CHECKBOXES = 11 + NUM_SLIDERS = 6 + + StripTextures(AudioOptionsFrame) + CreateBackdrop(SoundOptionsFramePlayback, nil, true, .75) + CreateBackdrop(SoundOptionsFrameHardware, nil, true, .75) + CreateBackdrop(SoundOptionsFrameVolume, nil, true, .75) + + SkinDropDown(SoundOptionsOutputDropDown) + + SoundOptionsFrameDefaults:ClearAllPoints() + SoundOptionsFrameDefaults:SetPoint("TOPLEFT", SoundOptionsFramePlayback, "BOTTOMLEFT", 0, -10) + SoundOptionsFrameCancel:ClearAllPoints() + SoundOptionsFrameCancel:SetPoint("TOPRIGHT", SoundOptionsFrameVolume, "BOTTOMRIGHT", 0, -10) + SoundOptionsFrameOkay:ClearAllPoints() + SoundOptionsFrameOkay:SetPoint("RIGHT", SoundOptionsFrameCancel, "LEFT", -2*bpad, 0) + else -- vanilla + SoundOptionsFrameHeaderText = GetNoNameObject(SoundOptionsFrame, "FontString", "ARTWORK", SOUNDOPTIONS_MENU) + NUM_CHECKBOXES = 8 + NUM_SLIDERS = 4 + + SoundOptionsFrameOkay:ClearAllPoints() + SoundOptionsFrameOkay:SetPoint("RIGHT", SoundOptionsFrameCancel, "LEFT", -2*bpad, 0) + SoundOptionsFrameSlider1:ClearAllPoints() + SoundOptionsFrameSlider1:SetPoint("TOPRIGHT", SoundOptionsFrame, "TOPRIGHT", -18, -43) + for i=2, NUM_SLIDERS do + _G["SoundOptionsFrameSlider"..i]:ClearAllPoints() + _G["SoundOptionsFrameSlider"..i]:SetPoint("TOP", _G["SoundOptionsFrameSlider"..i-1], "BOTTOM", 0, -30) + end + end + StripTextures(SoundOptionsFrame) CreateBackdrop(SoundOptionsFrame, nil, true, .75) CreateBackdropShadow(SoundOptionsFrame) @@ -13,27 +48,21 @@ pfUI:RegisterSkin("Options - Sound", "vanilla", function () this:SetPoint("CENTER", 0, 0) end) - local SoundOptionsFrameHeaderText = GetNoNameObject(SoundOptionsFrame, "FontString", "ARTWORK", SOUNDOPTIONS_MENU) SoundOptionsFrameHeaderText:ClearAllPoints() SoundOptionsFrameHeaderText:SetPoint("TOP", 0, -10) SkinButton(SoundOptionsFrameDefaults) SkinButton(SoundOptionsFrameCancel) SkinButton(SoundOptionsFrameOkay) - SoundOptionsFrameOkay:ClearAllPoints() - SoundOptionsFrameOkay:SetPoint("RIGHT", SoundOptionsFrameCancel, "LEFT", -2*bpad, 0) - for i=1, 8 do - if i == 3 then i = 4 end -- Blizzard missed this number... - SkinCheckbox(_G["SoundOptionsFrameCheckButton"..i], 28) + for i=1, NUM_CHECKBOXES do + local btn = _G["SoundOptionsFrameCheckButton"..i] + if btn then + SkinCheckbox(btn, 28) + end end - SkinSlider(SoundOptionsFrameSlider1) - SoundOptionsFrameSlider1:ClearAllPoints() - SoundOptionsFrameSlider1:SetPoint("TOPRIGHT", SoundOptionsFrame, "TOPRIGHT", -18, -43) - for i=2, 4 do + for i=1, NUM_SLIDERS do SkinSlider(_G["SoundOptionsFrameSlider"..i]) - _G["SoundOptionsFrameSlider"..i]:ClearAllPoints() - _G["SoundOptionsFrameSlider"..i]:SetPoint("TOP", _G["SoundOptionsFrameSlider"..i-1], "BOTTOM", 0, -30) end end) diff --git a/skins/blizzard/options-video.lua b/skins/blizzard/options-video.lua index d4816fe3..85ed3424 100644 --- a/skins/blizzard/options-video.lua +++ b/skins/blizzard/options-video.lua @@ -1,7 +1,47 @@ -pfUI:RegisterSkin("Options - Video", "vanilla", function () +pfUI:RegisterSkin("Options - Video", "vanilla:tbc", function () local border = tonumber(pfUI_config.appearance.border.default) local bpad = border > 1 and border - 1 or 1 + -- Compatibility + local MAX_SLIDERS, MAX_CHECKBOXES + if OptionsFrameSlider10 then -- tbc + MAX_SLIDERS = 11 + MAX_CHECKBOXES = 19 + + for i=1, MAX_SLIDERS do + local slider = _G["OptionsFrameSlider"..i] + local shift = 0 + if i == 4 or i == 5 or i == 7 or i == 8 or i == 10 or i == 11 then shift = 10 end + local point, anchor, anchorPoint, x, y = slider:GetPoint() + slider:ClearAllPoints() + slider:SetPoint(point, anchor, anchorPoint, x, y - shift) + end + + hooksecurefunc("OptionsFrame_Load", function() + OptionsFramePixelShaders:SetWidth(230) + OptionsFrameMiscellaneous:ClearAllPoints() + OptionsFrameMiscellaneous:SetPoint("LEFT", OptionsFramePixelShaders, "RIGHT", 6, 0) + end) + OptionsFrameDefaults:ClearAllPoints() + OptionsFrameDefaults:SetPoint("TOPLEFT", OptionsFramePixelShaders, "BOTTOMLEFT", 0, -10) + OptionsFrameCancel:ClearAllPoints() + OptionsFrameCancel:SetPoint("TOPRIGHT", OptionsFrameMiscellaneous, "BOTTOMRIGHT", 0, -10) + else -- vanilla + MAX_SLIDERS = 9 + MAX_CHECKBOXES = 18 + + for i=1, MAX_SLIDERS do + local slider = _G["OptionsFrameSlider"..i] + local shift = 0 + if i == 1 or i == 6 then shift = 4 + elseif i == 4 or i == 8 then shift = 10 + end + local point, anchor, anchorPoint, x, y = slider:GetPoint() + slider:ClearAllPoints() + slider:SetPoint(point, anchor, anchorPoint, x, y - shift) + end + end + CreateBackdrop(OptionsFrame, nil, nil, .75) CreateBackdropShadow(OptionsFrame) @@ -17,6 +57,12 @@ pfUI:RegisterSkin("Options - Video", "vanilla", function () OptionsFrameHeaderText:ClearAllPoints() OptionsFrameHeaderText:SetPoint("TOP", OptionsFrame.backdrop, "TOP", 0, -10) + CreateBackdrop(OptionsFrameDisplay, nil, true, .75) + CreateBackdrop(OptionsFrameWorldAppearance, nil, true, .75) + CreateBackdrop(OptionsFrameBrightness, nil, true, .75) + CreateBackdrop(OptionsFramePixelShaders, nil, true, .75) + CreateBackdrop(OptionsFrameMiscellaneous, nil, true, .75) + SkinButton(OptionsFrameDefaults) SkinButton(OptionsFrameCancel) SkinButton(OptionsFrameOkay) @@ -27,24 +73,14 @@ pfUI:RegisterSkin("Options - Video", "vanilla", function () SkinDropDown(OptionsFrameRefreshDropDown) SkinDropDown(OptionsFrameMultiSampleDropDown) - CreateBackdrop(OptionsFrameDisplay, nil, true, .75) - CreateBackdrop(OptionsFrameWorldAppearance, nil, true, .75) - CreateBackdrop(OptionsFrameBrightness, nil, true, .75) - CreateBackdrop(OptionsFramePixelShaders, nil, true, .75) - CreateBackdrop(OptionsFrameMiscellaneous, nil, true, .75) - - for i=1, 9 do - local shift = 0 - if i == 1 or i == 6 then shift = 4 - elseif i == 4 or i == 8 then shift = 10 - end + for i=1, MAX_SLIDERS do SkinSlider(_G["OptionsFrameSlider"..i]) - local point, anchor, anchorPoint, x, y = _G["OptionsFrameSlider"..i]:GetPoint() - _G["OptionsFrameSlider"..i]:ClearAllPoints() - _G["OptionsFrameSlider"..i]:SetPoint(point, anchor, anchorPoint, x, y - shift) end - for i=1, 18 do - SkinCheckbox(_G["OptionsFrameCheckButton"..i], 28) + for i=1, MAX_CHECKBOXES do + local btn = _G["OptionsFrameCheckButton"..i] + if btn then + SkinCheckbox(btn, 28) + end end end) diff --git a/skins/blizzard/popup_dialogs.lua b/skins/blizzard/popup_dialogs.lua index 85bae89b..d795a7bf 100644 --- a/skins/blizzard/popup_dialogs.lua +++ b/skins/blizzard/popup_dialogs.lua @@ -1,7 +1,13 @@ -pfUI:RegisterSkin("Popup Dialogs", "vanilla", function () +pfUI:RegisterSkin("Popup Dialogs", "vanilla:tbc", function () for i = 1, STATICPOPUP_NUMDIALOGS do - local dialog = _G["StaticPopup"..i] + -- Compatibility + local money = _G["StaticPopup"..i.."MoneyInputFrame"] + if money then -- tbc + SkinMoneyInputFrame(money) + end + + local dialog = _G["StaticPopup"..i] CreateBackdrop(dialog, nil, true, .75) CreateBackdropShadow(dialog) diff --git a/skins/blizzard/professions.lua b/skins/blizzard/professions.lua index 558e1326..bd741471 100644 --- a/skins/blizzard/professions.lua +++ b/skins/blizzard/professions.lua @@ -1,4 +1,4 @@ -pfUI:RegisterSkin("Profession", "vanilla", function () +pfUI:RegisterSkin("Profession", "vanilla:tbc", function () local border = tonumber(pfUI_config.appearance.border.default) local bpad = border > 1 and border - 1 or 1 @@ -17,8 +17,6 @@ pfUI:RegisterSkin("Profession", "vanilla", function () local frame = name .. "Frame" HookAddonOrVariable(addon, function() - _G[displayed] = 23 - local SetSelection = frame.."_SetSelection" local icon = _G[template.."Icon"] local seltitle = _G[template.."Name"] @@ -45,12 +43,6 @@ pfUI:RegisterSkin("Profession", "vanilla", function () local frame = _G[frame] - -- build remaining tradeskills - for i = 9, _G[displayed] do - local button = CreateFrame("Button", template..i, frame, template.."ButtonTemplate") - button:SetPoint("TOPLEFT", _G[template..i - 1], "BOTTOMLEFT") - end - StripTextures(frame) CreateBackdrop(frame, nil, nil, .75) CreateBackdropShadow(frame) @@ -74,10 +66,11 @@ pfUI:RegisterSkin("Profession", "vanilla", function () scrollframe:SetWidth(300) scrollframe:SetHeight(365) - local backdrop = CreateFrame("Frame", nil, frame) + local backdrop = CreateFrame("Frame", scrollframe:GetName().."Backdrop", frame) CreateBackdrop(backdrop, nil, nil, .75) - backdrop.backdrop:SetPoint("TOPLEFT", scrollframe, "TOPLEFT", -5, 5) - backdrop.backdrop:SetPoint("BOTTOMRIGHT", scrollframe, "BOTTOMRIGHT", 26, -5) + scrollframe.backdrop = backdrop.backdrop + scrollframe.backdrop:SetPoint("TOPLEFT", scrollframe, "TOPLEFT", -5, 5) + scrollframe.backdrop:SetPoint("BOTTOMRIGHT", scrollframe, "BOTTOMRIGHT", 26, -5) _G[template..1]:ClearAllPoints() _G[template..1]:SetPoint("TOPLEFT", scrollframe, "TOPLEFT", 0, 0) @@ -86,16 +79,12 @@ pfUI:RegisterSkin("Profession", "vanilla", function () SkinCollapseButton(collapseall, true) collapseall:ClearAllPoints() collapseall:SetPoint("BOTTOMLEFT", scrollframe, "TOPLEFT", -5, 5) - for i = 1, _G[displayed] do SkinCollapseButton(_G[template..i]) end if invslotdropdown then - StripTextures(invslotdropdown) SkinDropDown(invslotdropdown) - invslotdropdown:SetHeight(10) invslotdropdown:ClearAllPoints() - invslotdropdown:SetPoint("BOTTOMRIGHT", backdrop.backdrop, "TOPRIGHT", 15, 0) + invslotdropdown:SetPoint("BOTTOMRIGHT", scrollframe.backdrop, "TOPRIGHT", 15, 0) - StripTextures(subclassdropdown) SkinDropDown(subclassdropdown) subclassdropdown:ClearAllPoints() subclassdropdown:SetPoint("RIGHT", invslotdropdown, "LEFT", 27, 0) @@ -109,15 +98,17 @@ pfUI:RegisterSkin("Profession", "vanilla", function () local backdrop = CreateFrame("Frame", nil, frame) CreateBackdrop(backdrop, nil, nil, .75) - backdrop.backdrop:SetPoint("TOPLEFT", detailscroll, "TOPLEFT", -5, 5) - backdrop.backdrop:SetPoint("BOTTOMRIGHT", detailscroll, "BOTTOMRIGHT", 26, -5) + detailscroll.backdrop = backdrop.backdrop + + detailscroll.backdrop:SetPoint("TOPLEFT", detailscroll, "TOPLEFT", -5, 5) + detailscroll.backdrop:SetPoint("BOTTOMRIGHT", detailscroll, "BOTTOMRIGHT", 26, -5) StripTextures(_G[name.."RankFrameBorder"]) CreateBackdrop(rankbar, nil, true) rankbar:SetStatusBarTexture(pfUI.media["img:bar"]) rankbar:ClearAllPoints() - rankbar:SetPoint("TOPLEFT", backdrop.backdrop, "TOPLEFT", 0, 25) - rankbar:SetPoint("BOTTOMRIGHT", backdrop.backdrop, "TOPRIGHT", 0, 6) + rankbar:SetPoint("TOPLEFT", detailscroll.backdrop, "TOPLEFT", 0, 25) + rankbar:SetPoint("BOTTOMRIGHT", detailscroll.backdrop, "TOPRIGHT", 0, 6) if decrease and increase then SkinArrowButton(decrease, "left", 18) @@ -126,13 +117,14 @@ pfUI:RegisterSkin("Profession", "vanilla", function () if inputbox then inputbox:DisableDrawLayer("BACKGROUND") - CreateBackdrop(inputbox, nil, true) + CreateBackdrop(inputbox) + SetAllPointsOffset(inputbox.backdrop, inputbox, .2) inputbox:SetWidth(36) end SkinButton(cancel) cancel:ClearAllPoints() - cancel:SetPoint("TOPRIGHT", backdrop.backdrop, "BOTTOMRIGHT", 0, -5) + cancel:SetPoint("TOPRIGHT", detailscroll.backdrop, "BOTTOMRIGHT", 0, -5) SkinButton(create) create:ClearAllPoints() @@ -223,6 +215,46 @@ pfUI:RegisterSkin("Profession", "vanilla", function () end end, true) end + + -- Compatibility + if TradeSkillFrameEditBox or CraftFrameEditBox then -- tbc + _G[displayed] = 21 + scrollframe:SetHeight(338) + + local rank = _G[name.."RankFrameSkillRank"] + rank:ClearAllPoints() + rank:SetPoint("CENTER", rankbar, "CENTER", 0, 0) + + local available = _G[frame:GetName().."AvailableFilterCheckButton"] + SkinCheckbox(available) + available:ClearAllPoints() + available:SetPoint("TOPLEFT", scrollframe.backdrop, "BOTTOMLEFT", -4, -5) + + local search = TradeSkillFrameEditBox or CraftRankFrameEditBox + if search then + search:DisableDrawLayer("BACKGROUND") + CreateBackdrop(search, nil, nil, 1) + search.backdrop:SetAllPoints(search) + search:SetHeight(createall:GetHeight()) + search:ClearAllPoints() + search:SetPoint("TOPRIGHT", scrollframe.backdrop, "BOTTOMRIGHT", 0, -5) + end + + local craft_filter = CraftFrameFilterDropDown + if craft_filter then + SkinDropDown(craft_filter) + craft_filter:ClearAllPoints() + craft_filter:SetPoint("BOTTOMRIGHT", scrollframe.backdrop, "TOPRIGHT", 15, 0) + end + else -- vanilla + _G[displayed] = 23 + end + -- build remaining tradeskills + for i = 9, _G[displayed] do + local button = CreateFrame("Button", template..i, frame, template.."ButtonTemplate") + button:SetPoint("TOPLEFT", _G[template..i - 1], "BOTTOMLEFT") + end + for i = 1, _G[displayed] do SkinCollapseButton(_G[template..i]) end end) end end) diff --git a/skins/blizzard/questlog.lua b/skins/blizzard/questlog.lua index cdafec69..4c0a3c7b 100644 --- a/skins/blizzard/questlog.lua +++ b/skins/blizzard/questlog.lua @@ -1,4 +1,4 @@ -pfUI:RegisterSkin("Quest Log", "vanilla", function () +pfUI:RegisterSkin("Quest Log", "vanilla:tbc", function () local border = tonumber(pfUI_config.appearance.border.default) local bpad = border > 1 and border - 1 or 1 @@ -6,6 +6,23 @@ pfUI:RegisterSkin("Quest Log", "vanilla", function () _G.MAX_WATCHABLE_QUESTS = 20 -- TODO do -- quest log frame + -- Compatibility + local QUEST_COUNT + if QuestLogCount then -- tbc + QUEST_COUNT = QuestLogCount + + StripTextures(QUEST_COUNT) + QUEST_COUNT:ClearAllPoints() + hooksecurefunc("QuestLogUpdateQuestCount", function(numQuests) + QUEST_COUNT:SetPoint("TOPRIGHT", -10, -30) + end) + else -- vanilla + QUEST_COUNT = QuestLogQuestCount + + QUEST_COUNT:ClearAllPoints() + QUEST_COUNT:SetPoint("TOPRIGHT", -10, -30) + end + hooksecurefunc("QuestLog_OnShow", function() QuestLogFrame:ClearAllPoints() QuestLogFrame:SetPoint("TOPLEFT", 10, -104) @@ -38,14 +55,11 @@ pfUI:RegisterSkin("Quest Log", "vanilla", function () SkinCheckbox(QuestLogFrameLevelsCheckButton, 23) QuestLogFrameLevelsCheckButtonText:SetText(T["Quest Levels"]) - QuestLogQuestCount:ClearAllPoints() - QuestLogQuestCount:SetPoint("TOPRIGHT", -10, -30) - CreateBackdrop(QuestLogTrack) QuestLogTrack:SetHeight(8) QuestLogTrack:SetWidth(8) QuestLogTrack:ClearAllPoints() - QuestLogTrack:SetPoint("RIGHT", QuestLogQuestCount, "LEFT", -5, 0) + QuestLogTrack:SetPoint("RIGHT", QUEST_COUNT, "LEFT", -5, 0) StripTextures(QuestLogTrack) QuestLogTrackTracking:SetTexture(.8,.8,.8,1) @@ -158,7 +172,11 @@ pfUI:RegisterSkin("Quest Log", "vanilla", function () if C.questlog.showQuestLevels == "1" then questIndex = i + FauxScrollFrame_GetOffset(QuestLogListScrollFrame) if questIndex <= numEntries then - text, level, questTag, isHeader = GetQuestLogTitle(questIndex) + if pfUI.expansion == 'vanilla' then + text, level, questTag, isHeader = GetQuestLogTitle(questIndex) + else + text, level, questTag, _, isHeader = GetQuestLogTitle(questIndex) + end if not isHeader then _G["QuestLogTitle"..i]:SetText(" ".."["..(questTag and level.."+" or level).."] "..text) end diff --git a/skins/blizzard/readycheck.lua b/skins/blizzard/readycheck.lua index 81b22fb7..26abd097 100644 --- a/skins/blizzard/readycheck.lua +++ b/skins/blizzard/readycheck.lua @@ -1,5 +1,13 @@ -pfUI:RegisterSkin("Readycheck", "vanilla", function () +pfUI:RegisterSkin("Readycheck", "vanilla:tbc", function () HookAddonOrVariable("Blizzard_RaidUI", function() + -- Compatibility + local update_func + if ReadyCheckFrame_OnUpdate then -- tbc + update_func = "ReadyCheckFrame_OnUpdate" + else -- vanilla + update_func = "ReadyCheck_OnUpdate" + end + StripTextures(ReadyCheckFrame, true) CreateBackdrop(ReadyCheckFrame, nil, nil, .75) CreateBackdropShadow(ReadyCheckFrame) @@ -35,7 +43,7 @@ pfUI:RegisterSkin("Readycheck", "vanilla", function () frame.bar:SetMinMaxValues(0, max) end, 1) - hooksecurefunc("ReadyCheck_OnUpdate", function() + hooksecurefunc(update_func, function() if not ReadyCheckFrame.timer then return end local perc = ReadyCheckFrame.timer/max diff --git a/skins/blizzard/socket.lua b/skins/blizzard/socket.lua new file mode 100644 index 00000000..0ae80823 --- /dev/null +++ b/skins/blizzard/socket.lua @@ -0,0 +1,39 @@ +pfUI:RegisterSkin("Item Socketing", "tbc", function () + local border = tonumber(pfUI_config.appearance.border.default) + local bpad = border > 1 and border - 1 or 1 + + HookAddonOrVariable("Blizzard_ItemSocketingUI", function() + StripTextures(ItemSocketingFrame) + CreateBackdrop(ItemSocketingFrame, nil, nil, .75) + CreateBackdropShadow(ItemSocketingFrame) + ItemSocketingFrame.backdrop:SetPoint("TOPLEFT", 8, -14) + ItemSocketingFrame.backdrop:SetPoint("BOTTOMRIGHT", -4, 28) + ItemSocketingFrame:SetHitRectInsets(8,4,14,28) + EnableMovable(ItemSocketingFrame) + + SkinCloseButton(ItemSocketingCloseButton, ItemSocketingFrame.backdrop, -6, -6) + + ItemSocketingFrame:DisableDrawLayer("BACKGROUND") + + StripTextures(ItemSocketingScrollFrame) + CreateBackdrop(ItemSocketingScrollFrame) + ItemSocketingScrollFrame:ClearAllPoints() + ItemSocketingScrollFrame:SetPoint("TOPLEFT", 32, -70) + ItemSocketingScrollFrame.backdrop:SetPoint("TOPLEFT", 0, 10) + ItemSocketingScrollFrame.backdrop:SetPoint("BOTTOMRIGHT", 0, -10) + SkinScrollbar(ItemSocketingScrollFrameScrollBar) + ItemSocketingScrollFrameScrollBar:ClearAllPoints() + ItemSocketingScrollFrameScrollBar:SetPoint("TOPLEFT", ItemSocketingScrollFrame.backdrop, "TOPRIGHT", 6, -16) + ItemSocketingScrollFrameScrollBar:SetPoint("BOTTOMLEFT", ItemSocketingScrollFrame.backdrop, "BOTTOMRIGHT", 6, 16) + SkinButton(ItemSocketingSocketButton) + for i = 1, MAX_NUM_SOCKETS do + local btn = _G["ItemSocketingSocket"..i] + StripTextures(btn) + SkinButton(btn, nil, nil, nil, _G["ItemSocketingSocket"..i.."IconTexture"], true) + end + local orig = ItemSocketingSocket1.SetPoint + ItemSocketingSocket1.SetPoint = function(self,a,b,c,x,y) + orig(self,a,b,c,x-10,y+15) + end + end) +end) diff --git a/skins/blizzard/talents.lua b/skins/blizzard/talents.lua index ebb3af61..cfcd9906 100644 --- a/skins/blizzard/talents.lua +++ b/skins/blizzard/talents.lua @@ -1,48 +1,58 @@ -pfUI:RegisterSkin("Talents", "vanilla", function () +pfUI:RegisterSkin("Talents", "vanilla:tbc", function () local border = tonumber(pfUI_config.appearance.border.default) local bpad = border > 1 and border - 1 or 1 HookAddonOrVariable("Blizzard_TalentUI", function() - StripTextures(TalentFrame) - CreateBackdrop(TalentFrame, nil, nil, .75) - CreateBackdropShadow(TalentFrame) + -- Compatibility + local TALENT_FRAME, TALENT_FRAME_NAME + if PlayerTalentFrame then -- tbc + TALENT_FRAME = _G.PlayerTalentFrame + else -- vanilla + TALENT_FRAME = _G.TalentFrame + end + TALENT_FRAME_NAME = TALENT_FRAME:GetName() - TalentFrame.backdrop:SetPoint("TOPLEFT", 10, -10) - TalentFrame.backdrop:SetPoint("BOTTOMRIGHT", -32, 72) - TalentFrame:SetHitRectInsets(10,32,10,72) - EnableMovable(TalentFrame) - TalentFrame:DisableDrawLayer("BACKGROUND") - TalentFrameCancelButton:Hide() + StripTextures(TALENT_FRAME) + CreateBackdrop(TALENT_FRAME, nil, nil, .75) + CreateBackdropShadow(TALENT_FRAME) - TalentFrameTitleText:ClearAllPoints() - TalentFrameTitleText:SetPoint("TOP", TalentFrame.backdrop, "TOP", 0, -10) - TalentFrameSpentPoints:ClearAllPoints() - TalentFrameSpentPoints:SetPoint("TOP", TalentFrame.backdrop, "TOP", 0, -48) + TALENT_FRAME.backdrop:SetPoint("TOPLEFT", 10, -10) + TALENT_FRAME.backdrop:SetPoint("BOTTOMRIGHT", -32, 72) + TALENT_FRAME:SetHitRectInsets(10,32,10,72) + EnableMovable(TALENT_FRAME) - SkinCloseButton(TalentFrameCloseButton, TalentFrame.backdrop, -6, -6) + TALENT_FRAME:DisableDrawLayer("BACKGROUND") + _G[TALENT_FRAME_NAME.."CancelButton"]:Hide() - StripTextures(TalentFrameScrollFrame) - SkinScrollbar(TalentFrameScrollFrameScrollBar) + _G[TALENT_FRAME_NAME.."TitleText"]:ClearAllPoints() + _G[TALENT_FRAME_NAME.."TitleText"]:SetPoint("TOP", TALENT_FRAME.backdrop, "TOP", 0, -10) + _G[TALENT_FRAME_NAME.."SpentPoints"]:ClearAllPoints() + _G[TALENT_FRAME_NAME.."SpentPoints"]:SetPoint("TOP", TALENT_FRAME.backdrop, "TOP", 0, -48) - TalentFrameTalentPointsText:ClearAllPoints() - TalentFrameTalentPointsText:SetPoint("BOTTOMRIGHT", TalentFrame, "BOTTOMRIGHT", -65, 83) + SkinCloseButton(_G[TALENT_FRAME_NAME.."CloseButton"], TALENT_FRAME.backdrop, -6, -6) + + StripTextures(_G[TALENT_FRAME_NAME.."ScrollFrame"]) + SkinScrollbar(_G[TALENT_FRAME_NAME.."ScrollFrameScrollBar"]) + + _G[TALENT_FRAME_NAME.."TalentPointsText"]:ClearAllPoints() + _G[TALENT_FRAME_NAME.."TalentPointsText"]:SetPoint("BOTTOMRIGHT", TALENT_FRAME, "BOTTOMRIGHT", -65, 83) for i = 1, MAX_NUM_TALENTS do - local talent = _G["TalentFrameTalent"..i] + local talent = _G[TALENT_FRAME_NAME.."Talent"..i] if talent then StripTextures(talent) - SkinButton(talent, nil, nil, nil, _G["TalentFrameTalent"..i.."IconTexture"]) + SkinButton(talent, nil, nil, nil, _G[TALENT_FRAME_NAME.."Talent"..i.."IconTexture"]) - _G["TalentFrameTalent"..i.."Rank"]:SetFont(pfUI.font_default, C.global.font_size, "OUTLINE") + _G[TALENT_FRAME_NAME.."Talent"..i.."Rank"]:SetFont(pfUI.font_default, C.global.font_size, "OUTLINE") end end - TalentFrameTab1:ClearAllPoints() - TalentFrameTab1:SetPoint("TOPLEFT", TalentFrame.backdrop, "BOTTOMLEFT", bpad, -(border + (border == 1 and 1 or 2))) + _G[TALENT_FRAME_NAME.."Tab1"]:ClearAllPoints() + _G[TALENT_FRAME_NAME.."Tab1"]:SetPoint("TOPLEFT", TALENT_FRAME.backdrop, "BOTTOMLEFT", bpad, -(border + (border == 1 and 1 or 2))) for i = 1, 5 do - local tab = _G["TalentFrameTab"..i] - local lastTab = _G["TalentFrameTab"..(i-1)] + local tab = _G[TALENT_FRAME_NAME.."Tab"..i] + local lastTab = _G[TALENT_FRAME_NAME.."Tab"..(i-1)] if lastTab then tab:ClearAllPoints() tab:SetPoint("LEFT", lastTab, "RIGHT", border*2 + 1, 0) diff --git a/skins/blizzard/time_manager.lua b/skins/blizzard/time_manager.lua new file mode 100644 index 00000000..935eee84 --- /dev/null +++ b/skins/blizzard/time_manager.lua @@ -0,0 +1,136 @@ +pfUI:RegisterSkin("Time Manager", "tbc", function () + local border = tonumber(pfUI_config.appearance.border.default) + local bpad = border > 1 and border - 1 or 1 + + HookAddonOrVariable("Blizzard_TimeManager", function() + do -- TimeManagerFrame + StripTextures(TimeManagerFrame) + CreateBackdrop(TimeManagerFrame, nil, nil, .75) + CreateBackdropShadow(TimeManagerFrame) + + TimeManagerFrame.backdrop:SetPoint("TOPLEFT", 10, -10) + TimeManagerFrame.backdrop:SetPoint("BOTTOMRIGHT", -48, 1) + TimeManagerFrame:SetHitRectInsets(10,48,10,1) + EnableMovable(TimeManagerFrame) + + SkinCloseButton(TimeManagerCloseButton, TimeManagerFrame.backdrop, -6, -6) + + local header = GetNoNameObject(TimeManagerFrame, 'FontString', 'BORDER', TIMEMANAGER_TITLE) + header:ClearAllPoints() + header:SetPoint("TOP", TimeManagerFrame.backdrop, "TOP", 0, -10) + + TimeManagerFrameTicker:ClearAllPoints() + TimeManagerFrameTicker:SetPoint("TOPLEFT", TimeManagerFrame.backdrop, "TOPLEFT", 30, -37) + + StripTextures(TimeManagerStopwatchFrame) + local texture = TimeManagerStopwatchCheck:GetNormalTexture():GetTexture() + SkinButton(TimeManagerStopwatchCheck) + TimeManagerStopwatchCheck:SetNormalTexture(texture) + HandleIcon(TimeManagerStopwatchCheck, TimeManagerStopwatchCheck:GetNormalTexture()) + + local frames = { + [TimeManagerAlarmHourDropDown] = '0', + [TimeManagerAlarmMinuteDropDown] = '1', + [TimeManagerAlarmAMPMDropDown] = '-4' + } + for frame,Xoffset in pairs(frames) do + SkinDropDown(frame, nil, nil, nil, true) + local text = _G[frame:GetName().."Text"] + local left = _G[frame:GetName().."Left"] + text:ClearAllPoints() + text:SetPoint("LEFT", left, "LEFT", Xoffset, 1) + end + TimeManagerAlarmHourDropDown:ClearAllPoints() + TimeManagerAlarmHourDropDown:SetPoint("TOPLEFT", TimeManagerAlarmTimeLabel, "BOTTOMLEFT", -4, -4) + + TimeManagerAlarmMessageFrame:ClearAllPoints() + TimeManagerAlarmMessageFrame:SetPoint("TOPLEFT", TimeManagerAlarmTimeFrame, "BOTTOMLEFT", 0, 0) + + TimeManagerAlarmMessageEditBox:DisableDrawLayer("BACKGROUND") + CreateBackdrop(TimeManagerAlarmMessageEditBox) + TimeManagerAlarmMessageEditBox:ClearAllPoints() + TimeManagerAlarmMessageEditBox:SetWidth(142) + TimeManagerAlarmMessageEditBox:SetPoint("TOPLEFT", TimeManagerAlarmMessageLabel, "BOTTOMLEFT", 13, -5) + + SkinButton(TimeManagerAlarmEnabledButton) + TimeManagerAlarmEnabledButton.SetNormalTexture = function() end + TimeManagerAlarmEnabledButton.SetPushedTexture = function() end + hooksecurefunc("TimeManagerAlarmEnabledButton_Update", function() + if TimeManagerAlarmEnabledButton:GetText() == TIMEMANAGER_ALARM_ENABLED then + TimeManagerAlarmEnabledButton:LockHighlight() + else + TimeManagerAlarmEnabledButton:UnlockHighlight() + end + end) + TimeManagerAlarmEnabledButton:ClearAllPoints() + TimeManagerAlarmEnabledButton:SetWidth(146) + TimeManagerAlarmEnabledButton:SetPoint("TOP", TimeManagerAlarmMessageEditBox, "BOTTOM", 0, -8) + + + SkinCheckbox(TimeManagerMilitaryTimeCheck) + SkinCheckbox(TimeManagerLocalTimeCheck) + end + + do -- StopwatchFrame + StripTextures(StopwatchFrame) + + StripTextures(StopwatchTabFrame) + CreateBackdrop(StopwatchTabFrame, nil, true) + StopwatchTabFrame:SetWidth(122) + StopwatchTabFrame:SetHeight(18) + StopwatchTitle:ClearAllPoints() + StopwatchTitle:SetPoint("CENTER", 0, 0) + SkinCloseButton(StopwatchCloseButton, StopwatchTabFrame, 0, 0) + + local orig = StopwatchResetButton.SetNormalTexture + StopwatchResetButton.SetNormalTexture = function(self, tex) + orig(self, tex) + local texture = self:GetNormalTexture() + texture:SetDesaturated(1) + texture:SetTexCoord(.25, .75, .28, .78) + end + SkinButton(StopwatchResetButton, nil, nil, nil, StopwatchResetButton:GetNormalTexture()) + StopwatchResetButton:SetNormalTexture("Interface\\TimeManager\\ResetButton") -- initiate update texture + StopwatchResetButton:ClearAllPoints() + StopwatchResetButton:SetWidth(20) + StopwatchResetButton:SetHeight(20) + StopwatchResetButton:SetPoint("TOPRIGHT", StopwatchTabFrame, "BOTTOMRIGHT", 0, -2*border + 1) + + local orig = StopwatchPlayPauseButton.SetNormalTexture + StopwatchPlayPauseButton.SetNormalTexture = function(self, tex) + orig(self, tex) + local texture = self:GetNormalTexture() + texture:SetDesaturated(1) + texture:SetTexCoord(.25, .75, .28, .78) + end + SkinButton(StopwatchPlayPauseButton, nil, nil, nil, StopwatchPlayPauseButton:GetNormalTexture()) + StopwatchPlayPauseButton:SetNormalTexture("Interface\\Buttons\\UI-SpellbookIcon-NextPage-Up") -- initiate update texture + StopwatchPlayPauseButton:ClearAllPoints() + StopwatchPlayPauseButton:SetWidth(20) + StopwatchPlayPauseButton:SetHeight(20) + StopwatchPlayPauseButton:SetPoint("RIGHT", StopwatchResetButton, "LEFT", -2*bpad, 0) + + CreateBackdrop(StopwatchTicker) + StopwatchTicker:ClearAllPoints() + StopwatchTicker:SetWidth(70) + StopwatchTicker:SetHeight(16) + StopwatchTicker:SetPoint("RIGHT", StopwatchPlayPauseButton, "LEFT", -2*border + 1, 0) + end + + hooksecurefunc("TimeManagerClockButton_UpdateTooltip", function() + GameTooltip:AddLine(" ") + GameTooltip:AddLine(TIMEMANAGER_TOOLTIP_TOGGLE_CLOCK_SETTINGS) + GameTooltip:Show() + end) + + -- needed insecure hook + function _G.TimeManagerClockButton_OnClick(self) + if self.alarmFiring then + PlaySound("igMainMenuQuit") + TimeManager_TurnOffAlarm() + else + ToggleTimeManager() + end + end + end) +end) diff --git a/skins/blizzard/tracking.lua b/skins/blizzard/tracking.lua new file mode 100644 index 00000000..e0a5f095 --- /dev/null +++ b/skins/blizzard/tracking.lua @@ -0,0 +1,8 @@ +pfUI:RegisterSkin("tracking", "tbc", function () + MINIMAP_TRACKING_FRAME:DisableDrawLayer("ARTWORK") -- hide border + SkinButton(MINIMAP_TRACKING_FRAME, nil, nil, nil, MiniMapTrackingIcon, true) + MINIMAP_TRACKING_FRAME:SetHeight(tonumber(C.appearance.minimap.tracking_size) + 10) + MINIMAP_TRACKING_FRAME:SetWidth(tonumber(C.appearance.minimap.tracking_size) + 10) + MINIMAP_TRACKING_FRAME:SetPoint("TOPLEFT", pfUI.minimap, -10, -10) + UpdateMovable(MINIMAP_TRACKING_FRAME) +end)