local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB local S = E:GetModule('Skins') local _G = _G local select = select local ipairs, pairs, unpack = ipairs, pairs, unpack local CreateFrame = CreateFrame local GetItemInfo = GetItemInfo local PlayerHasToy = PlayerHasToy local hooksecurefunc = hooksecurefunc local BAG_ITEM_QUALITY_COLORS = BAG_ITEM_QUALITY_COLORS local GetItemQualityColor = GetItemQualityColor local C_Heirloom_PlayerHasHeirloom = C_Heirloom.PlayerHasHeirloom local C_TransmogCollection_GetSourceInfo = C_TransmogCollection.GetSourceInfo local function toyTextColor(text, r, g, b) if r == 0.33 and g == 0.27 and b == 0.2 then text:SetTextColor(0.4, 0.4, 0.4) elseif r == 1 and g == 0.82 and b == 0 then text:SetTextColor(0.9, 0.9, 0.9) end end local function petNameColor(iconBorder, r, g, b) local parent = iconBorder:GetParent() if not parent.name then return end if parent.isDead and parent.isDead:IsShown() then parent.name:SetTextColor(0.9, 0.3, 0.3) elseif r and parent.owned then parent.name:SetTextColor(r, g, b) else parent.name:SetTextColor(0.4, 0.4, 0.4) end end local function mountNameColor(self) local button = self:GetParent() local name = button.name if name:GetFontObject() == _G.GameFontDisable then name:SetTextColor(0.4, 0.4, 0.4) else if button.background then local _, g, b = button.background:GetVertexColor() if g == 0 and b == 0 then name:SetTextColor(0.9, 0.3, 0.3) return end end name:SetTextColor(0.9, 0.9, 0.9) end end local function selectedTextureSetShown(texture, shown) -- used sets list local parent = texture:GetParent() local icon = parent.icon or parent.Icon if shown then parent.backdrop:SetBackdropBorderColor(1, .8, .1) icon.backdrop:SetBackdropBorderColor(1, .8, .1) else local r, g, b = unpack(E.media.bordercolor) parent.backdrop:SetBackdropBorderColor(r, g, b) icon.backdrop:SetBackdropBorderColor(r, g, b) end end local function selectedTextureShow(texture) -- used for pets/mounts local parent = texture:GetParent() parent.backdrop:SetBackdropBorderColor(1, .8, .1) parent.icon.backdrop:SetBackdropBorderColor(1, .8, .1) end local function selectedTextureHide(texture) -- used for pets/mounts local parent = texture:GetParent() if not parent.hovered then local r, g, b = unpack(E.media.bordercolor) parent.backdrop:SetBackdropBorderColor(r, g, b) parent.icon.backdrop:SetBackdropBorderColor(r, g, b) end if parent.petList then petNameColor(parent.iconBorder, parent.iconBorder:GetVertexColor()) end end local function buttonOnEnter(button) local r, g, b = unpack(E.media.rgbvaluecolor) local icon = button.icon or button.Icon button.backdrop:SetBackdropBorderColor(r, g, b) icon.backdrop:SetBackdropBorderColor(r, g, b) button.hovered = true end local function buttonOnLeave(button) local icon = button.icon or button.Icon if button.selected or (button.SelectedTexture and button.SelectedTexture:IsShown()) then button.backdrop:SetBackdropBorderColor(1, .8, .1) icon.backdrop:SetBackdropBorderColor(1, .8, .1) else local r, g, b = unpack(E.media.bordercolor) button.backdrop:SetBackdropBorderColor(r, g, b) icon.backdrop:SetBackdropBorderColor(r, g, b) end button.hovered = nil end local function JournalScrollButtons(frame) for i, bu in ipairs(frame.buttons) do bu:StripTextures() bu:CreateBackdrop('Transparent', nil, nil, true) bu:Size(210, 42) bu.backdrop:SetFrameLevel(bu:GetFrameLevel()) bu.backdrop:SetAllPoints() local point, relativeTo, relativePoint, xOffset, yOffset = bu:GetPoint() bu:ClearAllPoints() if i == 1 then bu:Point(point, relativeTo, relativePoint, 44, yOffset) else bu:Point(point, relativeTo, relativePoint, xOffset, -2) end local icon = bu.icon or bu.Icon icon:Size(40) icon:Point('LEFT', -43, 0) icon:SetTexCoord(unpack(E.TexCoords)) icon:CreateBackdrop(nil, nil, nil, true) bu:HookScript('OnEnter', buttonOnEnter) bu:HookScript('OnLeave', buttonOnLeave) local highlight = _G[bu:GetName()..'Highlight'] if highlight then highlight:SetColorTexture(1, 1, 1, 0.3) highlight:SetBlendMode('ADD') highlight:SetAllPoints(bu.icon) end if bu.ProgressBar then bu.ProgressBar:SetTexture(E.media.normTex) bu.ProgressBar:SetVertexColor(0.251, 0.753, 0.251, 1) -- 0.0118, 0.247, 0.00392 end if frame:GetParent() == _G.WardrobeCollectionFrame.SetsCollectionFrame then bu.setList = true bu.Favorite:SetAtlas('PetJournal-FavoritesIcon', true) bu.Favorite:Point('TOPLEFT', bu.Icon, 'TOPLEFT', -8, 8) hooksecurefunc(bu.SelectedTexture, 'SetShown', selectedTextureSetShown) else bu.selectedTexture:SetTexture() hooksecurefunc(bu.selectedTexture, 'Show', selectedTextureShow) hooksecurefunc(bu.selectedTexture, 'Hide', selectedTextureHide) if frame:GetParent() == _G.PetJournal then bu.petList = true bu.petTypeIcon:Point('TOPRIGHT', -1, -1) bu.petTypeIcon:Point('BOTTOMRIGHT', -1, 1) bu.dragButton.ActiveTexture:SetTexture(E.Media.Textures.White8x8) bu.dragButton.ActiveTexture:SetVertexColor(0.9, 0.8, 0.1, 0.3) bu.dragButton.levelBG:SetTexture() S:HandleIconBorder(bu.iconBorder, nil, petNameColor) elseif frame:GetParent() == _G.MountJournal then bu.mountList = true bu.factionIcon:SetDrawLayer('OVERLAY') bu.factionIcon:Point('TOPRIGHT', -1, -1) bu.factionIcon:Point('BOTTOMRIGHT', -1, 1) bu.DragButton.ActiveTexture:SetTexture(E.Media.Textures.White8x8) bu.DragButton.ActiveTexture:SetVertexColor(0.9, 0.8, 0.1, 0.3) bu.favorite:SetTexture([[Interface\COMMON\FavoritesIcon]]) bu.favorite:Point('TOPLEFT', bu.DragButton, 'TOPLEFT' , -8, 8) bu.favorite:Size(32, 32) hooksecurefunc(bu.name, 'SetFontObject', mountNameColor) hooksecurefunc(bu.background, 'SetVertexColor', mountNameColor) end end end end local function clearBackdrop(self) self:SetBackdropColor(0, 0, 0, 0) end function S:Blizzard_Collections() if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.collections) then return end -- global local CollectionsJournal = _G.CollectionsJournal S:HandlePortraitFrame(CollectionsJournal) for i=1, 5 do S:HandleTab(_G['CollectionsJournalTab'..i]) end S:HandleItemButton(_G.MountJournalSummonRandomFavoriteButton) S:HandleButton(_G.MountJournalFilterButton) _G.MountJournalFilterButton:ClearAllPoints() _G.MountJournalFilterButton:Point('LEFT', _G.MountJournalSearchBox, 'RIGHT', 5, 0) ------------------------------- --[[ mount journal (tab 1) ]]-- ------------------------------- local MountJournal = _G.MountJournal MountJournal:StripTextures() MountJournal.MountDisplay:StripTextures() MountJournal.MountDisplay.ShadowOverlay:StripTextures() MountJournal.MountCount:StripTextures() S:HandleIcon(MountJournal.MountDisplay.InfoButton.Icon) S:HandleCheckBox(MountJournal.MountDisplay.ModelScene.TogglePlayer) MountJournal.MountDisplay.ModelScene.TogglePlayer:Size(22) S:HandleButton(_G.MountJournalMountButton) S:HandleEditBox(_G.MountJournalSearchBox) S:HandleScrollBar(_G.MountJournalListScrollFrameScrollBar) S:HandleRotateButton(MountJournal.MountDisplay.ModelScene.RotateLeftButton) S:HandleRotateButton(MountJournal.MountDisplay.ModelScene.RotateRightButton) -- New Mount Equip. 8.2 MountJournal.BottomLeftInset:StripTextures() MountJournal.BottomLeftInset:CreateBackdrop('Transparent') MountJournal.BottomLeftInset.SlotButton:StripTextures() S:HandleIcon(MountJournal.BottomLeftInset.SlotButton.ItemIcon) S:HandleButton(MountJournal.BottomLeftInset.SlotButton) JournalScrollButtons(MountJournal.ListScrollFrame) ----------------------------- --[[ pet journal (tab 2) ]]-- ----------------------------- _G.PetJournalSummonButton:StripTextures() _G.PetJournalFindBattle:StripTextures() S:HandleButton(_G.PetJournalSummonButton) S:HandleButton(_G.PetJournalFindBattle) _G.PetJournalRightInset:StripTextures() _G.PetJournalLeftInset:StripTextures() S:HandleItemButton(_G.PetJournalSummonRandomFavoritePetButton, true) for i = 1, 3 do local f = _G['PetJournalLoadoutPet'..i..'HelpFrame'] f:StripTextures() end if E.global.general.disableTutorialButtons then _G.PetJournalTutorialButton:Kill() end local PetJournal = _G.PetJournal PetJournal.PetCount:StripTextures() S:HandleEditBox(_G.PetJournalSearchBox) _G.PetJournalSearchBox:ClearAllPoints() _G.PetJournalSearchBox:Point('TOPLEFT', _G.PetJournalLeftInset, 'TOPLEFT', (E.PixelMode and 13 or 10), -9) S:HandleButton(_G.PetJournalFilterButton) _G.PetJournalFilterButton:Height(E.PixelMode and 22 or 24) _G.PetJournalFilterButton:ClearAllPoints() _G.PetJournalFilterButton:Point('TOPRIGHT', _G.PetJournalLeftInset, 'TOPRIGHT', -5, -(E.PixelMode and 8 or 7)) _G.PetJournalListScrollFrame:StripTextures() S:HandleScrollBar(_G.PetJournalListScrollFrameScrollBar) JournalScrollButtons(PetJournal.listScroll) _G.PetJournalAchievementStatus:DisableDrawLayer('BACKGROUND') S:HandleItemButton(_G.PetJournalHealPetButton, true) E:RegisterCooldown(_G.PetJournalHealPetButtonCooldown) _G.PetJournalHealPetButton.texture:SetTexture([[Interface\Icons\spell_magic_polymorphrabbit]]) _G.PetJournalLoadoutBorder:StripTextures() for i = 1, 3 do local petButton = _G['PetJournalLoadoutPet'..i] local petButtonHealthFrame = _G['PetJournalLoadoutPet'..i..'HealthFrame'] local petButtonXPBar = _G['PetJournalLoadoutPet'..i..'XPBar'] petButton:StripTextures() petButton:CreateBackdrop() petButton.backdrop:SetAllPoints() petButton.petTypeIcon:Point('BOTTOMLEFT', 2, 2) petButton.dragButton:SetOutside(_G['PetJournalLoadoutPet'..i..'Icon']) petButton.dragButton:SetFrameLevel(_G['PetJournalLoadoutPet'..i].dragButton:GetFrameLevel() + 1) petButton.hover = true; petButton.pushed = true; petButton.checked = true; S:HandleItemButton(petButton) petButton.levelBG:SetAtlas('PetJournal-LevelBubble', true) petButton.backdrop:SetFrameLevel(_G['PetJournalLoadoutPet'..i].backdrop:GetFrameLevel() + 1) petButton.setButton:StripTextures() petButtonHealthFrame.healthBar:StripTextures() petButtonHealthFrame.healthBar:CreateBackdrop() petButtonHealthFrame.healthBar:SetStatusBarTexture(E.media.normTex) E:RegisterStatusBar(petButtonHealthFrame.healthBar) petButtonXPBar:StripTextures() petButtonXPBar:CreateBackdrop() petButtonXPBar:SetStatusBarTexture(E.media.normTex) E:RegisterStatusBar(petButtonXPBar) petButtonXPBar:SetFrameLevel(petButtonXPBar:GetFrameLevel() + 2) for index = 1, 3 do local f = _G['PetJournalLoadoutPet'..i..'Spell'..index] S:HandleItemButton(f) f.FlyoutArrow:SetTexture([[Interface\Buttons\ActionBarFlyoutButton]]) _G['PetJournalLoadoutPet'..i..'Spell'..index..'Icon']:SetInside(f) end end _G.PetJournalSpellSelect:StripTextures() for i=1, 2 do local btn = _G['PetJournalSpellSelectSpell'..i] S:HandleItemButton(btn) _G['PetJournalSpellSelectSpell'..i..'Icon']:SetInside(btn) _G['PetJournalSpellSelectSpell'..i..'Icon']:SetDrawLayer('BORDER') end _G.PetJournalPetCard:StripTextures() _G.PetJournalPetCard:CreateBackdrop('Transparent') _G.PetJournalPetCardInset:StripTextures() _G.PetJournalPetCardPetInfoQualityBorder:SetAlpha(0) _G.PetJournalPetCardPetInfoIcon:SetTexCoord(unpack(E.TexCoords)) _G.PetJournalPetCardPetInfo:CreateBackdrop() _G.PetJournalPetCardPetInfo.favorite:SetParent(_G.PetJournalPetCardPetInfo.backdrop) _G.PetJournalPetCardPetInfo.backdrop:SetOutside(_G.PetJournalPetCardPetInfoIcon) _G.PetJournalPetCardPetInfoIcon:SetParent(_G.PetJournalPetCardPetInfo.backdrop) if E.private.skins.blizzard.tooltip then local tt = _G.PetJournalPrimaryAbilityTooltip if tt.Delimiter1 then tt.Delimiter1:SetTexture() tt.Delimiter2:SetTexture() end tt.Background:SetTexture() tt.BorderTop:SetTexture() tt.BorderTopLeft:SetTexture() tt.BorderTopRight:SetTexture() tt.BorderLeft:SetTexture() tt.BorderRight:SetTexture() tt.BorderBottom:SetTexture() tt.BorderBottomRight:SetTexture() tt.BorderBottomLeft:SetTexture() tt:CreateBackdrop('Transparent') end for i=1, 6 do local frame = _G['PetJournalPetCardSpell'..i] frame:SetFrameLevel(frame:GetFrameLevel() + 2) frame:DisableDrawLayer('BACKGROUND') frame:CreateBackdrop() frame.backdrop:SetAllPoints() frame.icon:SetTexCoord(unpack(E.TexCoords)) frame.icon:SetInside(frame.backdrop) end _G.PetJournalPetCardHealthFrame.healthBar:StripTextures() _G.PetJournalPetCardHealthFrame.healthBar:CreateBackdrop() _G.PetJournalPetCardHealthFrame.healthBar:SetStatusBarTexture(E.media.normTex) E:RegisterStatusBar(_G.PetJournalPetCardHealthFrame.healthBar) _G.PetJournalPetCardXPBar:StripTextures() _G.PetJournalPetCardXPBar:CreateBackdrop() _G.PetJournalPetCardXPBar:SetStatusBarTexture(E.media.normTex) E:RegisterStatusBar(_G.PetJournalPetCardXPBar) --Toy Box local ToyBox = _G.ToyBox S:HandleButton(_G.ToyBoxFilterButton) _G.ToyBoxFilterButton:Point('TOPRIGHT', ToyBox, 'TOPRIGHT', -15, -34) S:HandleEditBox(ToyBox.searchBox) ToyBox.iconsFrame:StripTextures() S:HandleNextPrevButton(ToyBox.PagingFrame.NextPageButton, nil, nil, true) S:HandleNextPrevButton(ToyBox.PagingFrame.PrevPageButton, nil, nil, true) local progressBar = ToyBox.progressBar progressBar.border:Hide() progressBar:DisableDrawLayer('BACKGROUND') progressBar:SetStatusBarTexture(E.media.normTex) progressBar:CreateBackdrop() E:RegisterStatusBar(progressBar) for i = 1, 18 do local button = ToyBox.iconsFrame['spellButton'..i] S:HandleItemButton(button, true) button.iconTextureUncollected:SetTexCoord(unpack(E.TexCoords)) button.iconTextureUncollected:SetInside(button) button.hover:SetAllPoints(button.iconTexture) button.checked:SetAllPoints(button.iconTexture) button.pushed:SetAllPoints(button.iconTexture) button.cooldown:SetAllPoints(button.iconTexture) hooksecurefunc(button.name, 'SetTextColor', toyTextColor) hooksecurefunc(button.new, 'SetTextColor', toyTextColor) E:RegisterCooldown(button.cooldown) end hooksecurefunc('ToySpellButton_UpdateButton', function(button) if button.itemID and PlayerHasToy(button.itemID) then local _, _, quality = GetItemInfo(button.itemID) if quality then button.backdrop:SetBackdropBorderColor(GetItemQualityColor(quality)) else button.backdrop:SetBackdropBorderColor(0.9, 0.9, 0.9) end else button.backdrop:SetBackdropBorderColor(unpack(E.media.bordercolor)) end end) --Heirlooms local HeirloomsJournal = _G.HeirloomsJournal S:HandleButton(_G.HeirloomsJournalFilterButton) _G.HeirloomsJournalFilterButton:Point('TOPRIGHT', HeirloomsJournal, 'TOPRIGHT', -15, -34) S:HandleEditBox(HeirloomsJournal.SearchBox) HeirloomsJournal.iconsFrame:StripTextures() S:HandleNextPrevButton(HeirloomsJournal.PagingFrame.NextPageButton, nil, nil, true) S:HandleNextPrevButton(HeirloomsJournal.PagingFrame.PrevPageButton, nil, nil, true) S:HandleDropDownBox(_G.HeirloomsJournalClassDropDown) progressBar = HeirloomsJournal.progressBar -- swap local variable progressBar.border:Hide() progressBar:DisableDrawLayer('BACKGROUND') progressBar:SetStatusBarTexture(E.media.normTex) progressBar:CreateBackdrop() E:RegisterStatusBar(progressBar) hooksecurefunc(HeirloomsJournal, 'UpdateButton', function(_, button) if not button.styled then S:HandleItemButton(button, true) button.iconTextureUncollected:SetTexCoord(unpack(E.TexCoords)) button.iconTextureUncollected:SetInside(button) button.iconTexture:SetDrawLayer('ARTWORK') button.hover:SetAllPoints(button.iconTexture) button.slotFrameCollected:SetAlpha(0) button.slotFrameUncollected:SetAlpha(0) button.special:SetJustifyH('RIGHT') button.special:ClearAllPoints() button.cooldown:SetAllPoints(button.iconTexture) E:RegisterCooldown(button.cooldown) button.styled = true end button.levelBackground:SetTexture() button.name:Point('LEFT', button, 'RIGHT', 4, 8) button.level:Point('TOPLEFT', button.levelBackground,'TOPLEFT', 25, 2) if C_Heirloom_PlayerHasHeirloom(button.itemID) then button.name:SetTextColor(0.9, 0.9, 0.9) button.level:SetTextColor(0.9, 0.9, 0.9) button.special:SetTextColor(1, .82, 0) button.backdrop:SetBackdropBorderColor(GetItemQualityColor(7)) else button.name:SetTextColor(0.4, 0.4, 0.4) button.level:SetTextColor(0.4, 0.4, 0.4) button.special:SetTextColor(0.4, 0.4, 0.4) button.backdrop:SetBackdropBorderColor(unpack(E.media.bordercolor)) end end) hooksecurefunc(HeirloomsJournal, 'LayoutCurrentPage', function() for i=1, #HeirloomsJournal.heirloomHeaderFrames do local header = HeirloomsJournal.heirloomHeaderFrames[i] header:StripTextures() header.text:FontTemplate(nil, 15, '') header.text:SetTextColor(0.9, 0.9, 0.9) end end) -- Appearances Tab local WardrobeCollectionFrame = _G.WardrobeCollectionFrame S:HandleTab(WardrobeCollectionFrame.ItemsTab) S:HandleTab(WardrobeCollectionFrame.SetsTab) --Items WardrobeCollectionFrame.progressBar:StripTextures() WardrobeCollectionFrame.progressBar:CreateBackdrop() WardrobeCollectionFrame.progressBar:SetStatusBarTexture(E.media.normTex) E:RegisterStatusBar(WardrobeCollectionFrame.progressBar) S:HandleEditBox(_G.WardrobeCollectionFrameSearchBox) _G.WardrobeCollectionFrameSearchBox:SetFrameLevel(5) WardrobeCollectionFrame.FilterButton:Point('LEFT', WardrobeCollectionFrame.searchBox, 'RIGHT', 2, 0) S:HandleButton(WardrobeCollectionFrame.FilterButton) S:HandleDropDownBox(_G.WardrobeCollectionFrameWeaponDropDown) WardrobeCollectionFrame.ItemsCollectionFrame:StripTextures() for _, Frame in ipairs(WardrobeCollectionFrame.ContentFrames) do if Frame.Models then for _, Model in pairs(Frame.Models) do Model:SetFrameLevel(Model:GetFrameLevel() + 1) Model.Border:SetAlpha(0) Model.TransmogStateTexture:SetAlpha(0) local border = CreateFrame('Frame', nil, Model, 'BackdropTemplate') border:SetTemplate() border:ClearAllPoints() border:SetPoint('TOPLEFT', Model, 'TOPLEFT', 0, 1) -- dont use set inside, left side needs to be 0 border:SetPoint('BOTTOMRIGHT', Model, 'BOTTOMRIGHT', 1, -1) border:SetBackdropColor(0, 0, 0, 0) border.callbackBackdropColor = clearBackdrop for i=1, Model:GetNumRegions() do local region = select(i, Model:GetRegions()) if region:IsObjectType('Texture') and region:GetTexture() == 1116940 then region:SetColorTexture(1, 1, 1, 0.3) region:SetBlendMode('ADD') region:SetAllPoints(Model) end end hooksecurefunc(Model.Border, 'SetAtlas', function(_, texture) if texture == 'transmog-wardrobe-border-uncollected' then border:SetBackdropBorderColor(0.9, 0.9, 0.3) elseif texture == 'transmog-wardrobe-border-unusable' then border:SetBackdropBorderColor(0.9, 0.3, 0.3) elseif Model.TransmogStateTexture:IsShown() then border:SetBackdropBorderColor(1, 0.7, 1) else border:SetBackdropBorderColor(unpack(E.media.bordercolor)) end end) end end local pending = Frame.PendingTransmogFrame if pending then local Glowframe = pending.Glowframe Glowframe:SetAtlas(nil) Glowframe:CreateBackdrop() Glowframe.backdrop:SetPoint('TOPLEFT', pending, 'TOPLEFT', 0, 1) -- dont use set inside, left side needs to be 0 Glowframe.backdrop:SetPoint('BOTTOMRIGHT', pending, 'BOTTOMRIGHT', 1, -1) Glowframe.backdrop:SetFrameLevel(pending:GetFrameLevel()) Glowframe.backdrop:SetBackdropBorderColor(1, 0.7, 1) Glowframe.backdrop:SetBackdropColor(0, 0, 0, 0) for i = 1, 12 do if i < 5 then Frame.PendingTransmogFrame['Smoke'..i]:Hide() end Frame.PendingTransmogFrame['Wisp'..i]:Hide() end end local paging = Frame.PagingFrame if paging then S:HandleNextPrevButton(paging.PrevPageButton, nil, nil, true) S:HandleNextPrevButton(paging.NextPageButton, nil, nil, true) end end --Sets local SetsCollectionFrame = WardrobeCollectionFrame.SetsCollectionFrame SetsCollectionFrame:CreateBackdrop('Transparent') SetsCollectionFrame.RightInset:StripTextures() SetsCollectionFrame.LeftInset:StripTextures() JournalScrollButtons(SetsCollectionFrame.ScrollFrame) S:HandleScrollBar(SetsCollectionFrame.ScrollFrame.scrollBar) -- DetailsFrame local DetailsFrame = SetsCollectionFrame.DetailsFrame DetailsFrame.Name:FontTemplate(nil, 16) DetailsFrame.LongName:FontTemplate(nil, 16) S:HandleButton(DetailsFrame.VariantSetsButton) hooksecurefunc(SetsCollectionFrame, 'SetItemFrameQuality', function(_, itemFrame) local icon = itemFrame.Icon if not icon.backdrop then icon:CreateBackdrop() icon:SetTexCoord(unpack(E.TexCoords)) itemFrame.IconBorder:Hide() end if itemFrame.collected then local quality = C_TransmogCollection_GetSourceInfo(itemFrame.sourceID).quality local color = BAG_ITEM_QUALITY_COLORS[quality or 1] icon.backdrop:SetBackdropBorderColor(color.r, color.g, color.b) else icon.backdrop:SetBackdropBorderColor(unpack(E.media.bordercolor)) end end) _G.WardrobeSetsCollectionVariantSetsButton.Icon:SetTexture(E.Media.Textures.ArrowUp) _G.WardrobeSetsCollectionVariantSetsButton.Icon:SetRotation(S.ArrowRotation.down) -- Transmogrify NPC local WardrobeFrame = _G.WardrobeFrame S:HandlePortraitFrame(WardrobeFrame) local WardrobeOutfitFrame = _G.WardrobeOutfitFrame WardrobeOutfitFrame:StripTextures() WardrobeOutfitFrame:CreateBackdrop('Transparent') S:HandleButton(_G.WardrobeOutfitDropDown.SaveButton) S:HandleDropDownBox(_G.WardrobeOutfitDropDown, 221) _G.WardrobeOutfitDropDown:Height(34) _G.WardrobeOutfitDropDown.SaveButton:ClearAllPoints() _G.WardrobeOutfitDropDown.SaveButton:Point('TOPLEFT', _G.WardrobeOutfitDropDown, 'TOPRIGHT', -2, -2) local WardrobeTransmogFrame = _G.WardrobeTransmogFrame WardrobeTransmogFrame:StripTextures() for i = 1, #WardrobeTransmogFrame.ModelScene.SlotButtons do WardrobeTransmogFrame.ModelScene.SlotButtons[i]:StripTextures() WardrobeTransmogFrame.ModelScene.SlotButtons[i]:SetFrameLevel(WardrobeTransmogFrame.ModelScene.SlotButtons[i]:GetFrameLevel() + 2) WardrobeTransmogFrame.ModelScene.SlotButtons[i]:CreateBackdrop() WardrobeTransmogFrame.ModelScene.SlotButtons[i].backdrop:SetAllPoints() WardrobeTransmogFrame.ModelScene.SlotButtons[i].Border:Kill() WardrobeTransmogFrame.ModelScene.SlotButtons[i].Icon:SetTexCoord(unpack(E.TexCoords)) end WardrobeTransmogFrame.SpecButton:ClearAllPoints() WardrobeTransmogFrame.SpecButton:Point('RIGHT', WardrobeTransmogFrame.ApplyButton, 'LEFT', -2, 0) S:HandleButton(WardrobeTransmogFrame.SpecButton) S:HandleButton(WardrobeTransmogFrame.ApplyButton) S:HandleButton(WardrobeTransmogFrame.ModelScene.ClearAllPendingButton) --Transmogrify NPC Sets tab WardrobeCollectionFrame.SetsTransmogFrame:StripTextures() WardrobeCollectionFrame.SetsTransmogFrame:CreateBackdrop('Transparent') S:HandleNextPrevButton(WardrobeCollectionFrame.SetsTransmogFrame.PagingFrame.NextPageButton) S:HandleNextPrevButton(WardrobeCollectionFrame.SetsTransmogFrame.PagingFrame.PrevPageButton) -- Outfit Edit Frame local WardrobeOutfitEditFrame = _G.WardrobeOutfitEditFrame WardrobeOutfitEditFrame:StripTextures() WardrobeOutfitEditFrame:CreateBackdrop('Transparent') WardrobeOutfitEditFrame.EditBox:StripTextures() S:HandleEditBox(WardrobeOutfitEditFrame.EditBox) S:HandleButton(WardrobeOutfitEditFrame.AcceptButton) S:HandleButton(WardrobeOutfitEditFrame.CancelButton) S:HandleButton(WardrobeOutfitEditFrame.DeleteButton) end S:AddCallbackForAddon('Blizzard_Collections')