diff --git a/SVUI_!Core/SVUI_!Core.toc b/SVUI_!Core/SVUI_!Core.toc index 0e66e0b..1d3f066 100644 --- a/SVUI_!Core/SVUI_!Core.toc +++ b/SVUI_!Core/SVUI_!Core.toc @@ -1,6 +1,6 @@ ## Interface: 60200 ## Author: Munglunch -## Version: 1.2.4 +## Version: 1.2.5 ## Title: |cffFF9900SuperVillain UI: |r|cff00FF00!Core|r ## Notes: SVUI [|cff9911FFCore Framework|r]. ## SavedVariables: SVUI_Global, SVUI_Errors, SVUI_Filters, SVUI_Media diff --git a/SVUI_!Core/libs/_SVUI_Lib/Registry.lua b/SVUI_!Core/libs/_SVUI_Lib/Registry.lua index 92288d2..658f67d 100644 --- a/SVUI_!Core/libs/_SVUI_Lib/Registry.lua +++ b/SVUI_!Core/libs/_SVUI_Lib/Registry.lua @@ -56,24 +56,6 @@ local wipe = _G.wipe; local date = _G.date; ---BLIZZARD API -local ReloadUI = _G.ReloadUI; -local GetLocale = _G.GetLocale; -local CreateFrame = _G.CreateFrame; -local IsAddOnLoaded = _G.IsAddOnLoaded; -local GetNumAddOns = _G.GetNumAddOns; -local GetAddOnInfo = _G.GetAddOnInfo; -local IsLoggedIn = _G.IsLoggedIn; -local LoadAddOn = _G.LoadAddOn; -local EnableAddOn = _G.EnableAddOn; -local DisableAddOn = _G.DisableAddOn; -local GetAddOnMetadata = _G.GetAddOnMetadata; -local InCombatLockdown = _G.InCombatLockdown; -local IsAddOnLoadOnDemand = _G.IsAddOnLoadOnDemand; -local GetSpecialization = _G.GetSpecialization; -local GetSpecializationInfo = _G.GetSpecializationInfo; -local C_PetBattles = _G.C_PetBattles; - --[[ LIB CONSTRUCT ]]-- local Librarian = _G.Librarian; @@ -190,6 +172,17 @@ local function importdata(s, d) return d end +local function clear_data(db) + if(type(db) ~= "table") then return end + for k,v in pairs(db) do + if(type(v) == "table") then + clear_data(db[k]); + else + db[k] = nil; + end + end +end + local function remove_undefined(src, db) if(type(src) ~= "table") then return end if(type(db) ~= "table") then return end @@ -319,6 +312,13 @@ end --OBJECT INTERNALS +local clearPrivateDB = function(self) + --print(self.Schema) + if(self.private) then + clear_data(self.private); + end +end + local changeDBVar = function(self, value, key, sub1, sub2, sub3) local db = CoreObject.db[self.Schema] if((sub1 and sub2 and sub3) and (db[sub1] and db[sub1][sub2] and db[sub1][sub2][sub3])) then @@ -857,6 +857,7 @@ local Core_NewPlugin = function(self, addonName, addonObject, gfile, pfile) addonObject.LoD = lod addonObject.initialized = false addonObject.CombatLocked = false + addonObject.ClearPrivateData = clearPrivateDB addonObject.ChangeDBVar = changeDBVar addonObject.RegisterEvent = registerEvent addonObject.UnregisterEvent = unregisterEvent @@ -887,6 +888,7 @@ local Core_NewPackage = function(self, schema, header) Schema = schema, initialized = false, CombatLocked = false, + ClearPrivateData = clearPrivateDB, ChangeDBVar = changeDBVar, RegisterEvent = registerEvent, UnregisterEvent = unregisterEvent, @@ -943,6 +945,7 @@ local Core_NewModule = function(self, addonName, addonObject, gfile, pfile) addonObject.LoD = lod addonObject.initialized = false addonObject.CombatLocked = false + addonObject.ClearPrivateData = clearPrivateDB addonObject.ChangeDBVar = changeDBVar addonObject.RegisterEvent = registerEvent addonObject.UnregisterEvent = unregisterEvent @@ -1118,17 +1121,21 @@ function lib:Launch() end if(files.PRIVATE) then - if not _G[files.PRIVATE] then _G[files.PRIVATE] = {} end - local private = setmetatable({}, meta_database) - private.data = _G[files.PRIVATE] - obj.private = private + if not _G[files.PRIVATE] then + _G[files.PRIVATE] = {} + end + --local private = setmetatable({}, meta_database) + --private.data = _G[files.PRIVATE] + obj.private = _G[files.PRIVATE]; end if(files.PUBLIC) then - if not _G[files.PUBLIC] then _G[files.PUBLIC] = {} end - local public = setmetatable({}, meta_database) - public.data = _G[files.PUBLIC] - obj.public = public + if not _G[files.PUBLIC] then + _G[files.PUBLIC] = {} + end + --local public = setmetatable({}, meta_database) + --public.data = _G[files.PUBLIC] + obj.public = _G[files.PUBLIC] end end diff --git a/SVUI_!Core/system/media.lua b/SVUI_!Core/system/media.lua index 7a3f9ea..38f87e4 100644 --- a/SVUI_!Core/system/media.lua +++ b/SVUI_!Core/system/media.lua @@ -719,6 +719,7 @@ local function ChangeSystemFonts() _alterFont("GameFontHighlightLeft", "default", 1) _alterFont("GameFontHighlightRight", "default", 1) _alterFont("GameFontHighlightLarge2", "default", 2) + _alterFont("MailFont_Large", "default", 3) _alterFont("SystemFont_Med1", "default") _alterFont("SystemFont_Med3", "default") _alterFont("SystemFont_Outline_Small", "default", 0, "OUTLINE") diff --git a/SVUI_!Options/SVUI_!Options.toc b/SVUI_!Options/SVUI_!Options.toc index e6024dd..e6e6ae6 100644 --- a/SVUI_!Options/SVUI_!Options.toc +++ b/SVUI_!Options/SVUI_!Options.toc @@ -1,6 +1,6 @@ ## Interface: 60200 ## Author: Munglunch -## Version: 1.2.4 +## Version: 1.2.5 ## Title: |cffFF9900SuperVillain UI: |r|cff00FF00!Options|r ## Notes: SVUI [|cff9911FFConfig Options|r] ## RequiredDeps: SVUI_!Core diff --git a/SVUI_ActionBars/SVUI_ActionBars.toc b/SVUI_ActionBars/SVUI_ActionBars.toc index 36818e0..072b89f 100644 --- a/SVUI_ActionBars/SVUI_ActionBars.toc +++ b/SVUI_ActionBars/SVUI_ActionBars.toc @@ -1,6 +1,6 @@ ## Interface: 60200 ## Author: Munglunch -## Version: 1.2.4 +## Version: 1.2.5 ## Title: |cffFF9900SuperVillain UI: |r|cffFFEF00Action Bars|r ## Notes: Action Bar Plugin for [|cff9911FFSVUI|r]. ## OptionalDeps: LibSharedMedia-3.0, LibActionButton-1.0 diff --git a/SVUI_ActionBars/components/keybind.lua b/SVUI_ActionBars/components/keybind.lua index 9c951b4..cca88b3 100644 --- a/SVUI_ActionBars/components/keybind.lua +++ b/SVUI_ActionBars/components/keybind.lua @@ -14,33 +14,11 @@ local type = _G.type; local string = _G.string; local math = _G.math; local table = _G.table; -local GetTime = _G.GetTime; --[[ STRING METHODS ]]-- local format, find = string.format, string.find; --[[ MATH METHODS ]]-- local floor = math.floor; local tonumber = tonumber; ---BLIZZARD API -local SpellFlyout = _G.SpellFlyout; -local GetFlyoutID = _G.GetFlyoutID; -local GetNumFlyouts = _G.GetNumFlyouts; -local GetFlyoutInfo = _G.GetFlyoutInfo; -local LoadBindings = _G.LoadBindings; -local SaveBindings = _G.SaveBindings; -local SetBinding = _G.SetBinding; -local GetBindingKey = _G.GetBindingKey; -local CreateFrame = _G.CreateFrame; -local InCombatLockdown = _G.InCombatLockdown; -local GameTooltip = _G.GameTooltip; -local hooksecurefunc = _G.hooksecurefunc; -local IsAltKeyDown = _G.IsAltKeyDown; -local IsShiftKeyDown = _G.IsShiftKeyDown; -local IsControlKeyDown = _G.IsControlKeyDown; -local IsModifiedClick = _G.IsModifiedClick; -local OKAY = _G.OKAY; -local CANCEL = _G.CANCEL; -local CONFIRM_LOSE_BINDING_CHANGES = _G.CONFIRM_LOSE_BINDING_CHANGES; -local CHARACTER_SPECIFIC_KEYBINDINGS = _G.CHARACTER_SPECIFIC_KEYBINDINGS; --[[ ########################################################## GET ADDON DATA @@ -50,8 +28,6 @@ local SV = _G['SVUI'] local L = SV.L; local MOD = SV.ActionBars; -local _G = getfenv(0); - local RefreshBindings local NewFrame = CreateFrame; local NewHook = hooksecurefunc; diff --git a/SVUI_Auras/SVUI_Auras.toc b/SVUI_Auras/SVUI_Auras.toc index b9dfb6f..fbeb17b 100644 --- a/SVUI_Auras/SVUI_Auras.toc +++ b/SVUI_Auras/SVUI_Auras.toc @@ -1,6 +1,6 @@ ## Interface: 60200 ## Author: Munglunch -## Version: 1.2.4 +## Version: 1.2.5 ## Title: |cffFF9900SuperVillain UI: |r|cffFFEF00Auras|r ## Notes: Aura Plugin for [|cff9911FFSVUI|r]. ## OptionalDeps: LibSharedMedia-3.0 diff --git a/SVUI_Chat/SVUI_Chat.lua b/SVUI_Chat/SVUI_Chat.lua index bfe1ffb..31d3316 100644 --- a/SVUI_Chat/SVUI_Chat.lua +++ b/SVUI_Chat/SVUI_Chat.lua @@ -101,27 +101,7 @@ local HIDE_REALM = false; INIT SETTINGS ########################################################## ]]-- -local CHAT_FRAMES = _G.CHAT_FRAMES -local CHAT_GUILD_GET = "|Hchannel:GUILD|hG|h %s "; -local CHAT_OFFICER_GET = "|Hchannel:OFFICER|hO|h %s "; -local CHAT_RAID_GET = "|Hchannel:RAID|hR|h %s "; -local CHAT_RAID_WARNING_GET = "RW %s "; -local CHAT_RAID_LEADER_GET = "|Hchannel:RAID|hRL|h %s "; -local CHAT_PARTY_GET = "|Hchannel:PARTY|hP|h %s "; -local CHAT_PARTY_LEADER_GET = "|Hchannel:PARTY|hPL|h %s "; -local CHAT_PARTY_GUIDE_GET = "|Hchannel:PARTY|hPG|h %s "; -local CHAT_INSTANCE_CHAT_GET = "|Hchannel:Battleground|hI.|h %s: "; -local CHAT_INSTANCE_CHAT_LEADER_GET = "|Hchannel:Battleground|hIL.|h %s: "; -local CHAT_WHISPER_INFORM_GET = "to %s "; -local CHAT_WHISPER_GET = "from %s "; -local CHAT_BN_WHISPER_INFORM_GET = "to %s "; -local CHAT_BN_WHISPER_GET = "from %s "; -local CHAT_SAY_GET = "%s "; -local CHAT_YELL_GET = "%s "; -local CHAT_FLAG_AFK = "[AFK] "; -local CHAT_FLAG_DND = "[DND] "; -local CHAT_FLAG_GM = "[GM] "; - +local REFRESH_LOCKED = false; local CHANNEL_LINK = "|Hchannel:%1$s|h%d:|h" local CHANNEL_PATTERN = "|Hchannel:(.-)|h%[(%d+)%.%s?([^:%-%]]+)%s?[:%-]?%s?[^|%]]*%]|h%s?" local CHANNEL_PATTERN_PLUS = CHANNEL_PATTERN .. ".+" @@ -509,7 +489,6 @@ end do local EB_HISTORY, EBH_LINE = {},{}; - local refreshLocked = false; local doskey = false; local _hook_AddHistoryLine = function(self, text) @@ -1036,7 +1015,7 @@ do function MOD:RefreshChatFrames(event, forced) --print(event) - if ((not forced) and (refreshLocked and (IsMouseButtonDown("LeftButton") or InCombatLockdown()))) then return; end + if ((not forced) and (REFRESH_LOCKED and (IsMouseButtonDown("LeftButton") or InCombatLockdown()))) then return; end for i,name in pairs(CHAT_FRAMES) do local chat = _G[name] @@ -1120,37 +1099,31 @@ do chat.isUninteractable = true; chat.oldAlpha = 0; --FCF_FadeInChatFrame(chat); - local dockingKey = chat.Dock:GetName() - chat.Dock.Button:SetDocked(MOD.private.activeTabs[dockingKey]) + local isActive = MOD:IsChatActive(chat) + chat.Dock:UpdateBackdrop() + chat.Dock.Button:SetDocked(isActive) chat:ClearAllPoints(); chat:SetAllPoints(chat.Dock); FCF_SetLocked(chat, true); SetChatWindowUninteractable(i, false); end - -- for name,isset in pairs(MOD.private.activeTabs) do - -- if(not _G[name]) then - -- MOD.private.activeTabs[name] = nil - -- end - -- end - - refreshLocked = true + REFRESH_LOCKED = true end end local function OpenNewSVUIChatFrame(newname) local chatFrame, chatTab; - --print(name) for i,name in pairs(CHAT_FRAMES) do - local _, _, _, _, _, _, shown = FCF_GetChatWindowInfo(i); chatFrame = _G[name]; chatTab = _G[name.."Tab"]; - local key = format("SVUI_ChatFrameDock%d", i) - if((not MOD.private.activeTabs[key]) or (not chatTab:IsShown())) then - if((not newname) or (newname == "")) then - newname = format(CHAT_NAME_TEMPLATE, i); - end - FCF_SetWindowName(chatFrame, newname); + local key = format("SVUI_ChatFrameDock%d", i); + local tabText = newname; + if((not newname) or (newname == "")) then + tabText = format(CHAT_NAME_TEMPLATE, i); + end + if(not MOD:IsChatActive(chatFrame)) then + FCF_SetWindowName(chatFrame, tabText); FCF_SetLocked(chatFrame, false); -- clear stale messages @@ -1184,7 +1157,7 @@ local function OpenNewSVUIChatFrame(newname) -- FCF_FadeInChatFrame(FCFDock_GetSelectedWindow(GENERAL_CHAT_DOCK)); --FCF_CopyChatSettings(chatFrame, DEFAULT_CHAT_FRAME); - MOD.private.activeTabs[key] = true + MOD:SaveActiveFlag(key,tabText); chatFrame:FadeIn(0.2, chatFrame:GetAlpha(), 1) MOD.RefreshChatFrames() return; @@ -1193,6 +1166,9 @@ local function OpenNewSVUIChatFrame(newname) end function MOD:ResetChatWindows() + REFRESH_LOCKED = false; + FCF_ResetChatWindows(); + MOD:ResetInternalData(); for k,v in pairs(SV.Dock.private.Disabled) do @@ -1209,14 +1185,13 @@ function MOD:ResetChatWindows() end end - FCF_ResetChatWindows() FCF_SetLocked(ChatFrame1, true) FCF_SetWindowName(ChatFrame1, GENERAL) if(ChatFrame1.Dock) then ChatFrame1.Dock:UpdateBackdrop() ChatFrame1.Dock:SetDocked(true) end - MOD.private.activeTabs['SVUI_ChatFrameDock1'] = true + MOD:SaveActiveFlag('SVUI_ChatFrameDock1',GENERAL); FCF_SetLocked(ChatFrame2, true) FCF_SetWindowName(ChatFrame2, GUILD_EVENT_LOG) @@ -1224,21 +1199,20 @@ function MOD:ResetChatWindows() ChatFrame2.Dock:UpdateBackdrop() ChatFrame2.Dock:SetDocked(true) end - MOD.private.activeTabs['SVUI_ChatFrameDock2'] = true + MOD:SaveActiveFlag('SVUI_ChatFrameDock2',GUILD_EVENT_LOG); - OpenNewSVUIChatFrame(LOOT) + FCF_OpenNewWindow(LOOT) FCF_SetLocked(ChatFrame3, true) FCF_SetWindowName(ChatFrame3, LOOT) if(ChatFrame3.Dock) then ChatFrame3.Dock:UpdateBackdrop() ChatFrame3.Dock:SetDocked(true) end - MOD.private.activeTabs['SVUI_ChatFrameDock3'] = true + MOD:SaveActiveFlag('SVUI_ChatFrameDock3',LOOT); for i=4, NUM_CHAT_WINDOWS do local chatFrame = _G["ChatFrame"..i]; if(chatFrame and chatFrame.Dock) then - chatFrame.Dock:UpdateBackdrop() chatFrame.Dock:SetDocked(false) end end @@ -1561,8 +1535,8 @@ do local chatFrame = self or _G["ChatFrame" .. CURRENT_CHAT_FRAME_ID] if((not chatFrame) or (not chatFrame.Dock)) then return end local key = format("SVUI_ChatFrameDock%d", chatFrame:GetID()) - chatFrame.Dock:SetDocked(false) - MOD.private.activeTabs[key] = nil; + chatFrame.Dock:SetDocked(false); + MOD:DeleteActiveFlag(key); end local _hook_FCF_Tab_OnClick = function(self) @@ -1577,7 +1551,10 @@ do local frame = _G[chatFrameName]; local key = format("SVUI_ChatFrameDock%d", id) if ( frame.isTemporary and (not MOD.private.activeTabs[key]) ) then - MOD.private.activeTabs[key] = true; + local tabText = frame.name; + if(tabText) then + MOD:SaveActiveFlag(key,tabText); + end if(frame.Dock) then frame.oldAlpha = 0; frame.Dock:UpdateBackdrop(); @@ -1626,7 +1603,10 @@ do FCF_SetLocked(self, false); if(self.Dock) then local key = self.Dock:GetName(); - MOD.private.activeTabs[key] = true; + local tabText = self.name; + if(tabText) then + MOD:SaveActiveFlag(key,tabText); + end self.oldAlpha = 0; self.Dock:UpdateBackdrop(); --self.Dock.Parent.Bar:SetDefault(self.Dock.Button) @@ -1742,11 +1722,60 @@ local function DockFadeOutChat(location) end function MOD:ResetInternalData() - wipe(self.private.history); - wipe(self.private.activeTabs); - wipe(self.private.channelList); - wipe(self.private.zoneChannelList); - wipe(self.private.messageTypeList); + self:ClearPrivateData(); + self.private.history = {}; + self.private.activeTabs = {}; + self.private.tabNames = {}; + self.ChatHistory = self.private.history; + for _, internal in pairs(INTERNAL_TABLES) do + self.private[internal] = {}; + end +end + +function MOD:IsChatActive(chatFrame) + if(not chatFrame) then return false; end + local id = chatFrame:GetID(); + local name,isActive = '',false; + local key = format("SVUI_ChatFrameDock%d", id); + for tabName, tabKey in pairs(self.private.tabNames) do + if(tabKey == key) then + name = tabName; + end + end + for tabKey, tabName in pairs(self.private.activeTabs) do + if(tabName == name) then + isActive = true; + end + end + return isActive; +end + +function MOD:SaveActiveFlag(key,name) + if((not key) or (not name)) then return false; end + for tabName, tabKey in pairs(self.private.tabNames) do + if(tabKey == key) then + self.private.tabNames[tabName] = nil; + end + end + for tabKey, tabName in pairs(self.private.activeTabs) do + if(tabName == name) then + self.private.activeTabs[tabKey] = nil; + end + end + self.private.activeTabs[key] = name; + self.private.tabNames[name] = key; + return true; +end + +function MOD:DeleteActiveFlag(key) + if(not key) then return false; end + for tabName, tabKey in pairs(self.private.tabNames) do + if(tabKey == key) then + self.private.tabNames[tabName] = nil; + end + end + self.private.activeTabs[key] = nil; + return true; end function MOD:ReLoad() @@ -1756,9 +1785,7 @@ end function MOD:Load() self.private.history = self.private.history or {}; self.private.activeTabs = self.private.activeTabs or {}; - self.private.channelList = self.private.channelList or {}; - self.private.zoneChannelList = self.private.zoneChannelList or {}; - self.private.messageTypeList = self.private.messageTypeList or {}; + self.private.tabNames = self.private.tabNames or {}; self.ChatHistory = self.private.history; local baseDock = SV.Dock.BottomLeft; @@ -1781,28 +1808,30 @@ function MOD:Load() self:UpdateLocals() + for _, internal in pairs(INTERNAL_TABLES) do + self.private[internal] = self.private[internal] or {}; + end + for i,name in pairs(CHAT_FRAMES) do local chatFrame = _G[name]; if(chatFrame) then SetChatWindowUninteractable(i, false) for _, internal in pairs(INTERNAL_TABLES) do - self.private[internal] = self.private[internal] or {}; - if(not self.private[internal][name]) then - self.private[internal][name] = {}; - if(chatFrame[internal]) then - for x,y in pairs(chatFrame[internal]) do - self.private[internal][name][x] = y - end - else - self.private[internal][name] = {}; + self.private[internal][name] = self.private[internal][name] or {}; + if(chatFrame[internal]) then + for x,y in pairs(chatFrame[internal]) do + self.private[internal][name][x] = y end end chatFrame[internal] = self.private[internal][name]; end chatFrame.oldAlpha = 0; local key = format("SVUI_ChatFrameDock%d", i) - if((not self.private.activeTabs[key]) and (i < 4)) then - self.private.activeTabs[key] = true + if(self.private.activeTabs[key] or ((not self.private.activeTabs[key]) and (i < 4))) then + local tabText = chatFrame.name; + if(tabText) then + self:SaveActiveFlag(key,tabText); + end end end end diff --git a/SVUI_Chat/SVUI_Chat.toc b/SVUI_Chat/SVUI_Chat.toc index ce44f5f..afb034d 100644 --- a/SVUI_Chat/SVUI_Chat.toc +++ b/SVUI_Chat/SVUI_Chat.toc @@ -1,6 +1,6 @@ ## Interface: 60200 ## Author: Munglunch -## Version: 1.2.4 +## Version: 1.2.5 ## Title: |cffFF9900SuperVillain UI: |r|cffFFEF00Chat|r ## Notes: Chat Plugin for [|cff9911FFSVUI|r]. ## SavedVariablesPerCharacter: SVUI_Private_ChatCache diff --git a/SVUI_Inventory/SVUI_Inventory.toc b/SVUI_Inventory/SVUI_Inventory.toc index 5d250bc..1b3bda9 100644 --- a/SVUI_Inventory/SVUI_Inventory.toc +++ b/SVUI_Inventory/SVUI_Inventory.toc @@ -1,6 +1,6 @@ ## Interface: 60200 ## Author: Munglunch -## Version: 1.2.4 +## Version: 1.2.5 ## Title: |cffFF9900SuperVillain UI: |r|cffFFEF00Inventory|r ## Notes: Inventory Plugin for [|cff9911FFSVUI|r]. ## SavedVariables: SVUI_LootCache diff --git a/SVUI_Maps/SVUI_Maps.toc b/SVUI_Maps/SVUI_Maps.toc index 7feb412..9f4f2c4 100644 --- a/SVUI_Maps/SVUI_Maps.toc +++ b/SVUI_Maps/SVUI_Maps.toc @@ -1,6 +1,6 @@ ## Interface: 60200 ## Author: Munglunch -## Version: 1.2.4 +## Version: 1.2.5 ## Title: |cffFF9900SuperVillain UI: |r|cffFFEF00Maps|r ## Notes: Maps Plugin for [|cff9911FFSVUI|r]. ## OptionalDeps: LibSharedMedia-3.0 diff --git a/SVUI_NamePlates/SVUI_NamePlates.toc b/SVUI_NamePlates/SVUI_NamePlates.toc index 47b2011..36c42ae 100644 --- a/SVUI_NamePlates/SVUI_NamePlates.toc +++ b/SVUI_NamePlates/SVUI_NamePlates.toc @@ -1,6 +1,6 @@ ## Interface: 60200 ## Author: Munglunch -## Version: 1.2.4 +## Version: 1.2.5 ## Title: |cffFF9900SuperVillain UI: |r|cffFFEF00NamePlates|r ## Notes: NamePlates Plugin for [|cff9911FFSVUI|r]. ## OptionalDeps: LibSharedMedia-3.0 diff --git a/SVUI_QuestTracker/SVUI_QuestTracker.toc b/SVUI_QuestTracker/SVUI_QuestTracker.toc index bed078c..9e5c9da 100644 --- a/SVUI_QuestTracker/SVUI_QuestTracker.toc +++ b/SVUI_QuestTracker/SVUI_QuestTracker.toc @@ -1,6 +1,6 @@ ## Interface: 60200 ## Author: Munglunch -## Version: 1.2.4 +## Version: 1.2.5 ## Title: |cffFF9900SuperVillain UI: |r|cffFFEF00QuestTracker|r ## Notes: QuestTracker Plugin for [|cff9911FFSVUI|r]. ## OptionalDeps: LibSharedMedia-3.0 diff --git a/SVUI_Skins/SVUI_Skins.toc b/SVUI_Skins/SVUI_Skins.toc index 4f977bd..db7dd70 100644 --- a/SVUI_Skins/SVUI_Skins.toc +++ b/SVUI_Skins/SVUI_Skins.toc @@ -1,6 +1,6 @@ ## Interface: 60200 ## Author: Munglunch, Azilroka, Sortokk -## Version: 1.2.4 +## Version: 1.2.5 ## Title: |cffFF9900SuperVillain UI: |r|cffFFEF00Skins|r ## Notes: SVUI [|cff9911FFSkins System and AddOn Frames|r]. ## SavedVariables: SVUIUI_STYLE_GLOBAL diff --git a/SVUI_Skins/components/blizzard/character.lua b/SVUI_Skins/components/blizzard/character.lua index 9d4c9bf..5bc4c76 100644 --- a/SVUI_Skins/components/blizzard/character.lua +++ b/SVUI_Skins/components/blizzard/character.lua @@ -109,13 +109,14 @@ local function StyleCharacterSlots() local slotID,_ = GetInventorySlotInfo(slotName) local r, g, b = 0, 0, 0; if(slotID) then - local itemID = GetInventoryItemID("player", slotID) - if(itemID) then - local rarity = select(3, GetItemInfo(itemID)) - if(rarity and rarity > 1) then - r,g,b = GetItemQualityColor(rarity) + local itemLink = GetInventoryItemLink("player", slotID) + if(itemLink) then + local key, _, quality, _, _, _, _, _, equipSlot = GetItemInfo(itemLink); + if(quality and quality > 1) then + r,g,b = GetItemQualityColor(quality) end end + charSlot:SetBackdropColor(r,g,b,0.6) charSlot:SetBackdropBorderColor(r,g,b,1) end end diff --git a/SVUI_Skins/components/blizzard/lfd.lua b/SVUI_Skins/components/blizzard/lfd.lua index a011a2f..827cc2b 100644 --- a/SVUI_Skins/components/blizzard/lfd.lua +++ b/SVUI_Skins/components/blizzard/lfd.lua @@ -31,7 +31,14 @@ local LFDFrameList = { "LFGInvitePopupRoleButtonTank", "LFGInvitePopupRoleButtonHealer", "LFGInvitePopupRoleButtonDPS", +}; +local LFGStatusList = { + "LFGDungeonReadyStatusIndividualPlayer1", + "LFGDungeonReadyStatusIndividualPlayer2", + "LFGDungeonReadyStatusIndividualPlayer3", + "LFGDungeonReadyStatusIndividualPlayer4", + "LFGDungeonReadyStatusIndividualPlayer5" }; local function StyleMoneyRewards(frameName) @@ -68,6 +75,33 @@ local Incentive_OnHide = function(button) ActionButton_HideOverlayGlow(check) end +local _hook_QueueStatusFrame_Update = function(self) + for i=1, #self.StatusEntries do + local node = self.StatusEntries[i]; + if(node.RoleIcon1) then + node.RoleIcon1:SetTexture("Interface\\AddOns\\SVUI_Skins\\artwork\\UI-LFG-ICON-ROLES") + end + if(node.RoleIcon2) then + node.RoleIcon2:SetTexture("Interface\\AddOns\\SVUI_Skins\\artwork\\UI-LFG-ICON-ROLES") + end + if(node.RoleIcon3) then + node.RoleIcon3:SetTexture("Interface\\AddOns\\SVUI_Skins\\artwork\\UI-LFG-ICON-ROLES") + end + if(node.HealersFound) then + node.HealersFound.Cover:SetTexture("Interface\\AddOns\\SVUI_Skins\\artwork\\UI-LFG-ICON-ROLES") + node.HealersFound.Texture:SetTexture("Interface\\AddOns\\SVUI_Skins\\artwork\\UI-LFG-ICON-ROLES") + end + if(node.TanksFound) then + node.TanksFound.Cover:SetTexture("Interface\\AddOns\\SVUI_Skins\\artwork\\UI-LFG-ICON-ROLES") + node.TanksFound.Texture:SetTexture("Interface\\AddOns\\SVUI_Skins\\artwork\\UI-LFG-ICON-ROLES") + end + if(node.DamagersFound) then + node.DamagersFound.Cover:SetTexture("Interface\\AddOns\\SVUI_Skins\\artwork\\UI-LFG-ICON-ROLES") + node.DamagersFound.Texture:SetTexture("Interface\\AddOns\\SVUI_Skins\\artwork\\UI-LFG-ICON-ROLES") + end + end +end + local LFDQueueRandom_OnUpdate = function() LFDQueueFrame:RemoveTextures() for u = 1, LFD_MAX_REWARDS do @@ -178,38 +212,43 @@ local function LFDFrameStyle() --LFGDungeonReadyPopup:SetScript('OnShow', nil) --/script StaticPopupSpecial_Show(LFGDungeonReadyPopup); - LFDQueueFrameRoleButtonTankIncentiveIcon:SetAlpha(0) - LFDQueueFrameRoleButtonHealerIncentiveIcon:SetAlpha(0) - LFDQueueFrameRoleButtonDPSIncentiveIcon:SetAlpha(0) - LFDQueueFrameRoleButtonTankIncentiveIcon:HookScript("OnShow", Incentive_OnShow) - LFDQueueFrameRoleButtonHealerIncentiveIcon:HookScript("OnShow", Incentive_OnShow) - LFDQueueFrameRoleButtonDPSIncentiveIcon:HookScript("OnShow", Incentive_OnShow) - LFDQueueFrameRoleButtonTankIncentiveIcon:HookScript("OnHide", Incentive_OnHide) - LFDQueueFrameRoleButtonHealerIncentiveIcon:HookScript("OnHide", Incentive_OnHide) - LFDQueueFrameRoleButtonDPSIncentiveIcon:HookScript("OnHide", Incentive_OnHide) - LFDQueueFrameRoleButtonTank.shortageBorder:Die() - LFDQueueFrameRoleButtonDPS.shortageBorder:Die() - LFDQueueFrameRoleButtonHealer.shortageBorder:Die() - LFGDungeonReadyDialog.filigree:SetAlpha(0) - LFGDungeonReadyDialog.bottomArt:SetAlpha(0) - SV.API:Set("CloseButton", LFGDungeonReadyStatusCloseButton) - - LFDQueueFrameRoleButtonTank:SetNormalTexture("Interface\\AddOns\\SVUI_Skins\\artwork\\UI-LFG-ICON-ROLES") - LFDQueueFrameRoleButtonHealer:SetNormalTexture("Interface\\AddOns\\SVUI_Skins\\artwork\\UI-LFG-ICON-ROLES") - LFDQueueFrameRoleButtonDPS:SetNormalTexture("Interface\\AddOns\\SVUI_Skins\\artwork\\UI-LFG-ICON-ROLES") - - LFDQueueFrameRoleButtonTank.cover:SetTexture("Interface\\AddOns\\SVUI_Skins\\artwork\\UI-LFG-ICON-ROLES") - LFDQueueFrameRoleButtonHealer.cover:SetTexture("Interface\\AddOns\\SVUI_Skins\\artwork\\UI-LFG-ICON-ROLES") - LFDQueueFrameRoleButtonDPS.cover:SetTexture("Interface\\AddOns\\SVUI_Skins\\artwork\\UI-LFG-ICON-ROLES") - for _,name in pairs(LFDFrameList) do local frame = _G[name]; if(frame) then frame:DisableDrawLayer("BACKGROUND") frame:DisableDrawLayer("OVERLAY") + if(frame.incentiveIcon) then + frame.incentiveIcon:SetAlpha(0); + frame.incentiveIcon:HookScript("OnShow", Incentive_OnShow); + frame.incentiveIcon:HookScript("OnHide", Incentive_OnHide); + end + if(frame.checkButton) then + frame.checkButton:SetStyle("CheckButton"); + end + if(frame.shortageBorder) then + frame.shortageBorder:Die(); + end + if(frame.cover) then + frame.cover:SetTexture("Interface\\AddOns\\SVUI_Skins\\artwork\\UI-LFG-ICON-ROLES") + end + frame:SetNormalTexture("Interface\\AddOns\\SVUI_Skins\\artwork\\UI-LFG-ICON-ROLES") end end + for _,name in pairs(LFGStatusList) do + local frame = _G[name]; + if(frame) then + local tex = _G[name..'Texture']; + if(tex) then + tex:SetTexture("Interface\\AddOns\\SVUI_Skins\\artwork\\UI-LFG-ICON-ROLES") + end + end + end + + LFGDungeonReadyDialog.filigree:SetAlpha(0) + LFGDungeonReadyDialog.bottomArt:SetAlpha(0) + SV.API:Set("CloseButton", LFGDungeonReadyStatusCloseButton) + LFDQueueFrameRoleButtonLeader.leadIcon = LFDQueueFrameRoleButtonLeader:CreateTexture(nil, 'BACKGROUND') LFDQueueFrameRoleButtonLeader.leadIcon:SetTexture([[Interface\GroupFrame\UI-Group-LeaderIcon]]) LFDQueueFrameRoleButtonLeader.leadIcon:SetPoint(LFDQueueFrameRoleButtonLeader:GetNormalTexture():GetPoint()) @@ -221,6 +260,35 @@ local function LFDFrameStyle() RaidFinderQueueFrameRoleButtonLeader.leadIcon:SetSize(50, 50) RaidFinderQueueFrameRoleButtonLeader.leadIcon:SetAlpha(0.4) + if(QueueStatusFrame and QueueStatusFrame.StatusEntries) then + for i=1, #QueueStatusFrame.StatusEntries do + local node = QueueStatusFrame.StatusEntries[i]; + if(node.RoleIcon1) then + node.RoleIcon1:SetTexture("Interface\\AddOns\\SVUI_Skins\\artwork\\UI-LFG-ICON-ROLES") + end + if(node.RoleIcon2) then + node.RoleIcon2:SetTexture("Interface\\AddOns\\SVUI_Skins\\artwork\\UI-LFG-ICON-ROLES") + end + if(node.RoleIcon3) then + node.RoleIcon3:SetTexture("Interface\\AddOns\\SVUI_Skins\\artwork\\UI-LFG-ICON-ROLES") + end + if(node.HealersFound) then + node.HealersFound.Cover:SetTexture("Interface\\AddOns\\SVUI_Skins\\artwork\\UI-LFG-ICON-ROLES") + node.HealersFound.Texture:SetTexture("Interface\\AddOns\\SVUI_Skins\\artwork\\UI-LFG-ICON-ROLES") + end + if(node.TanksFound) then + node.TanksFound.Cover:SetTexture("Interface\\AddOns\\SVUI_Skins\\artwork\\UI-LFG-ICON-ROLES") + node.TanksFound.Texture:SetTexture("Interface\\AddOns\\SVUI_Skins\\artwork\\UI-LFG-ICON-ROLES") + end + if(node.DamagersFound) then + node.DamagersFound.Cover:SetTexture("Interface\\AddOns\\SVUI_Skins\\artwork\\UI-LFG-ICON-ROLES") + node.DamagersFound.Texture:SetTexture("Interface\\AddOns\\SVUI_Skins\\artwork\\UI-LFG-ICON-ROLES") + end + end + end + + hooksecurefunc('QueueStatusFrame_Update', _hook_QueueStatusFrame_Update) + hooksecurefunc('LFG_DisableRoleButton', function(self) local check = self.checkButton or self.CheckButton if(check) then @@ -426,11 +494,30 @@ local function LFDFrameStyle() -- end LFGListFrame.CategorySelection:RemoveTextures() + LFGListFrame.CategorySelection.Inset:RemoveTextures() LFGListFrame.CategorySelection.StartGroupButton:RemoveTextures() LFGListFrame.CategorySelection.StartGroupButton:SetStyle("Button") LFGListFrame.CategorySelection.FindGroupButton:RemoveTextures() LFGListFrame.CategorySelection.FindGroupButton:SetStyle("Button") + LFGListFrame.NothingAvailable:RemoveTextures() + LFGListFrame.NothingAvailable.Inset:RemoveTextures() + + LFGListFrame.SearchPanel:RemoveTextures() + LFGListFrame.SearchPanel.ResultsInset:RemoveTextures() + + --LFGListFrame.SearchPanel.RefreshButton:RemoveTextures() + LFGListFrame.SearchPanel.RefreshButton:SetStyle("Button") + + LFGListFrame.SearchPanel.FilterButton:RemoveTextures() + LFGListFrame.SearchPanel.FilterButton:SetStyle("Button") + + LFGListFrame.SearchPanel.BackButton:RemoveTextures() + LFGListFrame.SearchPanel.BackButton:SetStyle("Button") + LFGListFrame.SearchPanel.SignUpButton:RemoveTextures() + LFGListFrame.SearchPanel.SignUpButton:SetStyle("Button") + + SV.API:Set("!_EditBox", LFGListFrame.SearchPanel.SearchBox, false, false, -2, -1) SV.API:Set("ScrollBar", LFGListSearchPanelScrollFrame) end --[[ diff --git a/SVUI_Tooltip/SVUI_Tooltip.lua b/SVUI_Tooltip/SVUI_Tooltip.lua index 2fac276..5b310a6 100644 --- a/SVUI_Tooltip/SVUI_Tooltip.lua +++ b/SVUI_Tooltip/SVUI_Tooltip.lua @@ -21,25 +21,6 @@ local find, format, match, sub, gsub = string.find, string.format, string.match, local floor,min = math.floor, math.min; --[[ TABLE METHODS ]]-- local wipe, tconcat = table.wipe, table.concat; ---BLIZZARD API -local InCombatLockdown = _G.InCombatLockdown; -local CreateFrame = _G.CreateFrame; -local ERR_NOT_IN_COMBAT = _G.ERR_NOT_IN_COMBAT; -local RAID_CLASS_COLORS = _G.RAID_CLASS_COLORS; -local FACTION_BAR_COLORS = _G.FACTION_BAR_COLORS; -local CUSTOM_CLASS_COLORS = _G.CUSTOM_CLASS_COLORS; -local GetTime = _G.GetTime; -local GameTooltip = _G.GameTooltip; -local GetItemInfo = _G.GetItemInfo; -local GetItemCount = _G.GetItemCount; -local GetItemQualityColor = _G.GetItemQualityColor; -local FACTION_HORDE = _G.FACTION_HORDE; -local FACTION_ALLIANCE = _G.FACTION_ALLIANCE; -local PET_TYPE_SUFFIX = _G.PET_TYPE_SUFFIX; -local INTERACTIVE_SERVER_LABEL = _G.INTERACTIVE_SERVER_LABEL; -local LE_REALM_RELATION_VIRTUAL = _G.LE_REALM_RELATION_VIRTUAL; -local FOREIGN_SERVER_LABEL = _G.FOREIGN_SERVER_LABEL; -local LE_REALM_RELATION_COALESCED = _G.LE_REALM_RELATION_COALESCED; --[[ ########################################################## GET ADDON DATA @@ -563,13 +544,15 @@ local _hook_GameTooltip_OnTooltipSetItem = function(self) tipbackground(self) local key,itemLink = self:GetItem() if(key and (not self.itemCleared)) then - local itemName, _, quality, _, _, _, _, _, equipSlot, icon = GetItemInfo(key) - AddIcon(self, icon) - if(quality) then - local r,g,b = GetItemQualityColor(quality) - self.SuperBorder:SetMaskBorderColor(r, g, b) + if(itemLink) then + local itemName, _, quality, _, _, _, _, _, equipSlot, icon = GetItemInfo(itemLink) + AddIcon(self, icon) + if(quality) then + local r,g,b = GetItemQualityColor(quality) + self.SuperBorder:SetMaskBorderColor(r, g, b) + end end - + if(ITEM_COUNTS and SV.SetLootTooltip) then SV:SetLootTooltip(self, key) end diff --git a/SVUI_Tooltip/SVUI_Tooltip.toc b/SVUI_Tooltip/SVUI_Tooltip.toc index 56eef6f..5c37364 100644 --- a/SVUI_Tooltip/SVUI_Tooltip.toc +++ b/SVUI_Tooltip/SVUI_Tooltip.toc @@ -1,6 +1,6 @@ ## Interface: 60200 ## Author: Munglunch -## Version: 1.2.4 +## Version: 1.2.5 ## Title: |cffFF9900SuperVillain UI: |r|cffFFEF00Tooltip|r ## Notes: Tooltip Plugin for [|cff9911FFSVUI|r]. ## OptionalDeps: LibSharedMedia-3.0 diff --git a/SVUI_UnitFrames/SVUI_UnitFrames.toc b/SVUI_UnitFrames/SVUI_UnitFrames.toc index 89639c3..00902b8 100644 --- a/SVUI_UnitFrames/SVUI_UnitFrames.toc +++ b/SVUI_UnitFrames/SVUI_UnitFrames.toc @@ -1,6 +1,6 @@ ## Interface: 60200 ## Author: Munglunch -## Version: 1.2.4 +## Version: 1.2.5 ## Title: |cffFF9900SuperVillain UI: |r|cffFFEF00UnitFrames|r ## Notes: UnitFrames Plugin for [|cff9911FFSVUI|r]. ## OptionalDeps: LibSharedMedia-3.0