From aaf50317e5c50c9e419d04e99229626301a0c541 Mon Sep 17 00:00:00 2001 From: Crum Date: Sat, 12 Jan 2019 12:09:06 -0600 Subject: [PATCH] big update --- ElvUI/Core/ClassCache.lua | 25 +- ElvUI/Core/Commands.lua | 15 +- ElvUI/Core/{Config.lua => config.lua} | 83 +++-- ElvUI/Core/core.lua | 156 +++------ ElvUI/Core/install.lua | 22 +- ElvUI/Core/{Math.lua => math.lua} | 21 +- ElvUI/Core/modulecopy.lua | 10 +- ElvUI/Core/{Movers.lua => movers.lua} | 2 +- ElvUI/Core/pixelperfect.lua | 1 + ElvUI/Core/pluginInstaller.lua | 50 +-- ElvUI/ElvUI.toc | 2 +- ElvUI/Locales/Chinese_UI.lua | 1 - ElvUI/Locales/English_UI.lua | 1 - ElvUI/Locales/French_UI.lua | 1 - ElvUI/Locales/German_UI.lua | 1 - ElvUI/Locales/Korean_UI.lua | 1 - ElvUI/Locales/Portuguese_UI.lua | 1 - ElvUI/Locales/Russian_UI.lua | 1 - ElvUI/Locales/Spanish_UI.lua | 1 - ElvUI/Locales/Taiwanese_UI.lua | 1 - ElvUI/Modules/DataTexts/Durability.lua | 2 +- ElvUI/Modules/Maps/Minimap.lua | 2 +- ElvUI/Modules/Misc/AFK.lua | 34 +- ElvUI/Settings/Profile.lua | 2 + ElvUI_Config/ActionBars.lua | 4 +- ElvUI_Config/Auras.lua | 2 +- ElvUI_Config/Bags.lua | 4 +- ElvUI_Config/Chat.lua | 6 +- ElvUI_Config/Core.lua | 64 ++-- ElvUI_Config/DataBars.lua | 12 +- ElvUI_Config/General.lua | 387 ++++++++++++--------- ElvUI_Config/Locales/Chinese_Config.lua | 4 +- ElvUI_Config/Locales/English_Config.lua | 4 +- ElvUI_Config/Locales/French_Config.lua | 4 +- ElvUI_Config/Locales/German_Config.lua | 4 +- ElvUI_Config/Locales/Korean_Config.lua | 4 +- ElvUI_Config/Locales/Portuguese_Config.lua | 4 +- ElvUI_Config/Locales/Russian_Config.lua | 4 +- ElvUI_Config/Locales/Spanish_Config.lua | 4 +- ElvUI_Config/Locales/Taiwanese_Config.lua | 4 +- ElvUI_Config/Maps.lua | 2 +- ElvUI_Config/ModuleControl.lua | 7 +- ElvUI_Config/Nameplates.lua | 2 +- ElvUI_Config/Tooltip.lua | 6 +- ElvUI_Config/UnitFrames.lua | 12 +- 45 files changed, 500 insertions(+), 480 deletions(-) rename ElvUI/Core/{Config.lua => config.lua} (88%) rename ElvUI/Core/{Math.lua => math.lua} (96%) rename ElvUI/Core/{Movers.lua => movers.lua} (99%) diff --git a/ElvUI/Core/ClassCache.lua b/ElvUI/Core/ClassCache.lua index fc5ffd0..9fce822 100644 --- a/ElvUI/Core/ClassCache.lua +++ b/ElvUI/Core/ClassCache.lua @@ -204,7 +204,6 @@ function CC:PLAYER_ENTERING_WORLD() self:UnregisterEvent("PARTY_MEMBERS_CHANGED") self:UnregisterEvent("RAID_ROSTER_UPDATE") - self:RegisterEvent("UPDATE_BATTLEFIELD_SCORE") if self.onBattleground then @@ -246,13 +245,13 @@ function CC:PLAYER_GUILD_UPDATE() end function CC:FRIENDLIST_UPDATE() - local name, classLocalized, _ + local name, class, _ for i = 1, GetNumFriends() do - name, _, classLocalized = GetFriendInfo(i) + name, _, class = GetFriendInfo(i) - if classLocalized then - self:CachePlayer(name, GetEnglishClassName(classLocalized)) + if class then + self:CachePlayer(name, GetEnglishClassName(class)) end end end @@ -260,13 +259,13 @@ end function CC:GUILD_ROSTER_UPDATE(_, update) if not update then return end - local name, classLocalized, _ + local name, class, _ for i = 1, GetNumGuildMembers() do - name, _, _, _, _, classLocalized = GetGuildRosterInfo(i) + name, _, _, _, class = GetGuildRosterInfo(i) - if classLocalized then - self:CachePlayer(name, GetEnglishClassName(classLocalized)) + if class then + self:CachePlayer(name, GetEnglishClassName(class)) end end end @@ -345,14 +344,14 @@ function CC:UPDATE_BATTLEFIELD_SCORE() return end - local name, realm, classLocalized, _ + local name, realm, class, _ for i = 1, numPlayers do - name, _, _, _, _, _, _, _, classLocalized = GetBattlefieldScore(i) + name, _, _, _, _, _, _, _, class = GetBattlefieldScore(i) - if name and classLocalized then + if name and class then name, realm = split("-", name) - self:CachePlayer(name, GetEnglishClassName(classLocalized), realm) + self:CachePlayer(name, GetEnglishClassName(class), realm) end end end diff --git a/ElvUI/Core/Commands.lua b/ElvUI/Core/Commands.lua index 5797a1e..4c23e20 100644 --- a/ElvUI/Core/Commands.lua +++ b/ElvUI/Core/Commands.lua @@ -71,15 +71,14 @@ function E:FarmMode(msg) end function E:Grid(msg) - if msg and type(tonumber(msg)) == "number" and tonumber(msg) <= 256 and tonumber(msg) >= 4 then + msg = msg and tonumber(msg) + if type(msg) == "number" and (msg <= 256 and msg >= 4) then E.db.gridSize = msg E:Grid_Show() + elseif _G.ElvUIGrid and _G.ElvUIGrid:IsShown() then + E:Grid_Hide() else - if EGrid then - E:Grid_Hide() - else - E:Grid_Show() - end + E:Grid_Show() end end @@ -91,10 +90,10 @@ function E:LuaError(msg) EnableAddOn("!DebugTools") EnableAddOn("ElvUI") EnableAddOn("ElvUI_Config") - SetCVar("ShowErrors", "1") + SetCVar("ShowErrors", 1) ReloadUI() elseif msg == "off" then - SetCVar("ShowErrors", "0") + SetCVar("ShowErrors", 0) E:Print("Lua errors off.") else E:Print("/luaerror on - /luaerror off") diff --git a/ElvUI/Core/Config.lua b/ElvUI/Core/config.lua similarity index 88% rename from ElvUI/Core/Config.lua rename to ElvUI/Core/config.lua index 4f5ee07..e602364 100644 --- a/ElvUI/Core/Config.lua +++ b/ElvUI/Core/config.lua @@ -54,14 +54,7 @@ function E:ToggleConfigMode(override, configType) if override ~= nil and override ~= "" then E.ConfigurationMode = override end if E.ConfigurationMode ~= true then - if not grid then - E:Grid_Create() - elseif grid.boxSize ~= E.db.gridSize then - grid:Hide() - E:Grid_Create() - else - grid:Show() - end + E:Grid_Show() if not ElvUIMoverPopupWindow then E:CreateMoverPopup() @@ -75,14 +68,12 @@ function E:ToggleConfigMode(override, configType) E.ConfigurationMode = true else + E:Grid_Hide() + if ElvUIMoverPopupWindow then ElvUIMoverPopupWindow:Hide() end - if grid then - grid:Hide() - end - E.ConfigurationMode = false end @@ -93,8 +84,35 @@ function E:ToggleConfigMode(override, configType) self:ToggleMovers(E.ConfigurationMode, configType or "ALL") end +function E:Grid_GetRegion() + if grid then + if grid.regionCount and grid.regionCount > 0 then + local line = select(grid.regionCount, grid:GetRegions()) + grid.regionCount = grid.regionCount - 1 + line:SetAlpha(1) + return line + else + return grid:CreateTexture() + end + end +end + function E:Grid_Create() - grid = CreateFrame("Frame", "EGrid", UIParent) + if not grid then + grid = CreateFrame("Frame", "ElvUIGrid", UIParent) + grid:SetFrameStrata("BACKGROUND") + else + grid.regionCount = 0 + local numRegions = grid:GetNumRegions() + for i = 1, numRegions do + local region = select(i, grid:GetRegions()) + if region and region.IsObjectType and region:IsObjectType("Texture") then + grid.regionCount = grid.regionCount + 1 + region:SetAlpha(0) + end + end + end + grid.boxSize = E.db.gridSize grid:SetAllPoints(E.UIParent) grid:Show() @@ -108,34 +126,41 @@ function E:Grid_Create() local hStep = height / E.db.gridSize for i = 0, E.db.gridSize do - local tx = grid:CreateTexture(nil, "BACKGROUND") + local tx = E:Grid_GetRegion() if i == E.db.gridSize / 2 then tx:SetTexture(1, 0, 0) + tx:SetDrawLayer("BACKGROUND", 1) else tx:SetTexture(0, 0, 0) + tx:SetDrawLayer("BACKGROUND", 0) end + tx:ClearAllPoints() E:Point(tx, "TOPLEFT", grid, "TOPLEFT", i*wStep - (size/2), 0) E:Point(tx, "BOTTOMRIGHT", grid, "BOTTOMLEFT", i*wStep + (size/2), 0) end height = GetScreenHeight() do - local tx = grid:CreateTexture(nil, "BACKGROUND") + local tx = E:Grid_GetRegion() tx:SetTexture(1, 0, 0) + tx:SetDrawLayer("BACKGROUND", 1) + tx:ClearAllPoints() E:Point(tx, "TOPLEFT", grid, "TOPLEFT", 0, -(height/2) + (size/2)) E:Point(tx, "BOTTOMRIGHT", grid, "TOPRIGHT", 0, -(height/2 + size/2)) end - for i = 1, floor((height/2)/hStep) do - local tx = grid:CreateTexture(nil, "BACKGROUND") + for i = 1, floor((height / 2) / hStep) do + local tx = E:Grid_GetRegion() tx:SetTexture(0, 0, 0) - + tx:SetDrawLayer("BACKGROUND", 0) + tx:ClearAllPoints() E:Point(tx, "TOPLEFT", grid, "TOPLEFT", 0, -(height/2+i*hStep) + (size/2)) E:Point(tx, "BOTTOMRIGHT", grid, "TOPRIGHT", 0, -(height/2+i*hStep + size/2)) - tx = grid:CreateTexture(nil, "BACKGROUND") + tx = E:Grid_GetRegion() tx:SetTexture(0, 0, 0) - + tx:SetDrawLayer("BACKGROUND", 0) + tx:ClearAllPoints() E:Point(tx, "TOPLEFT", grid, "TOPLEFT", 0, -(height/2-i*hStep) + (size/2)) E:Point(tx, "BOTTOMRIGHT", grid, "TOPRIGHT", 0, -(height/2-i*hStep + size/2)) end @@ -148,7 +173,7 @@ local function ConfigMode_OnClick() end local function ConfigMode_Initialize() - local info = {} + local info = L_UIDropDownMenu_CreateInfo() info.func = ConfigMode_OnClick for _, configMode in ipairs(E.ConfigModeLayouts) do @@ -439,8 +464,8 @@ function E:CreateMoverPopup() end) upButton.icon = upButton:CreateTexture(nil, "ARTWORK") E:Size(upButton.icon, 13) - E:Point(upButton.icon, "CENTER", 0) - upButton.icon:SetTexture([[Interface\AddOns\ElvUI\Media\Textures\SquareButtonTextures.blp]]) + E:Point(upButton.icon, "CENTER", 0, 0) + upButton.icon:SetTexture([[Interface\AddOns\ElvUI\media\textures\SquareButtonTextures]]) upButton.icon:SetTexCoord(0.01562500, 0.20312500, 0.01562500, 0.20312500) S:SquareButton_SetIcon(upButton, "UP") @@ -454,8 +479,8 @@ function E:CreateMoverPopup() end) downButton.icon = downButton:CreateTexture(nil, "ARTWORK") E:Size(downButton.icon, 13) - E:Point(downButton.icon, "CENTER", 0) - downButton.icon:SetTexture([[Interface\AddOns\ElvUI\Media\Textures\SquareButtonTextures.blp]]) + E:Point(downButton.icon, "CENTER", 0, 0) + downButton.icon:SetTexture([[Interface\AddOns\ElvUI\media\textures\SquareButtonTextures]]) downButton.icon:SetTexCoord(0.01562500, 0.20312500, 0.01562500, 0.20312500) S:SquareButton_SetIcon(downButton, "DOWN") @@ -469,8 +494,8 @@ function E:CreateMoverPopup() end) leftButton.icon = leftButton:CreateTexture(nil, "ARTWORK") E:Size(leftButton.icon, 13) - E:Point(leftButton.icon, "CENTER", 0) - leftButton.icon:SetTexture([[Interface\AddOns\ElvUI\Media\Textures\SquareButtonTextures.blp]]) + E:Point(leftButton.icon, "CENTER", 0, 0) + leftButton.icon:SetTexture([[Interface\AddOns\ElvUI\media\textures\SquareButtonTextures]]) leftButton.icon:SetTexCoord(0.01562500, 0.20312500, 0.01562500, 0.20312500) S:SquareButton_SetIcon(leftButton, "LEFT") @@ -484,8 +509,8 @@ function E:CreateMoverPopup() end) rightButton.icon = rightButton:CreateTexture(nil, "ARTWORK") E:Size(rightButton.icon, 13) - E:Point(rightButton.icon, "CENTER", 0) - rightButton.icon:SetTexture([[Interface\AddOns\ElvUI\Media\Textures\SquareButtonTextures.blp]]) + E:Point(rightButton.icon, "CENTER", 0, 0) + rightButton.icon:SetTexture([[Interface\AddOns\ElvUI\media\textures\SquareButtonTextures]]) rightButton.icon:SetTexCoord(0.01562500, 0.20312500, 0.01562500, 0.20312500) S:SquareButton_SetIcon(rightButton, "RIGHT") diff --git a/ElvUI/Core/core.lua b/ElvUI/Core/core.lua index 3aa4999..d14891d 100644 --- a/ElvUI/Core/core.lua +++ b/ElvUI/Core/core.lua @@ -21,7 +21,7 @@ local IsInInstance, GetNumPartyMembers, GetNumRaidMembers = IsInInstance, GetNum local RequestBattlefieldScoreData = RequestBattlefieldScoreData local SendAddonMessage = SendAddonMessage local UnitFactionGroup = UnitFactionGroup -local NONE = NONE +local NONE = L["None"] local RAID_CLASS_COLORS = RAID_CLASS_COLORS -- Constants @@ -170,6 +170,16 @@ function E:ShapeshiftDelayedUpdate(func, ...) end, 0.05) end +function E:GetPlayerRole() + if self.HealingClasses[self.myclass] ~= nil and self:CheckTalentTree(self.HealingClasses[E.myclass]) then + return "HEALER" + elseif E.Role == "Tank" then + return "TANK" + else + return "DAMAGER" + end +end + --Basically check if another class border is being used on a class that doesn't match. And then return true if a match is found. function E:CheckClassColor(r, g, b) r, g, b = floor(r*100 + .5) / 100, floor(g*100 + .5) / 100, floor(b*100 + .5) / 100 @@ -296,7 +306,7 @@ function E:RequestBGInfo() end function E:PLAYER_ENTERING_WORLD() - -- self:ScheduleTimer("CheckRole", 0.01) + self:ScheduleTimer("CheckRole", 0.01) if not self.MediaUpdated then self:UpdateMedia() @@ -413,9 +423,9 @@ end function E:UpdateStatusBars() for _, statusBar in pairs(self.statusBars) do - if statusBar and statusBar:GetObjectType() == "StatusBar" then + if statusBar and statusBar:IsObjectType("StatusBar") then statusBar:SetStatusBarTexture(self.media.normTex) - elseif statusBar and statusBar:GetObjectType() == "Texture" then + elseif statusBar and statusBar:IsObjectType("Texture") then statusBar:SetTexture(self.media.normTex) end end @@ -463,6 +473,19 @@ function E:GetTalentSpecInfo(isInspect) return specIdx, specName, specIcon end +function E:CheckTalentTree(tree) + local talentTree = self.TalentTree + if not talentTree then return false end + + if type(tree) == "number" then + return tree == talentTree + elseif type(tree) == "table" then + for _, index in pairs(tree) do + return index == talentTree + end + end +end + function E:CheckRole() local talentTree = self:GetTalentSpecInfo() local role @@ -484,14 +507,6 @@ function E:CheckRole() self.TalentTree = talentTree self.callbacks:Fire("RoleChanged") end - - if E.myclass == "SHAMAN" then - if talentTree == 3 then - self.DispelClasses[self.myclass].Curse = true - else - self.DispelClasses[self.myclass].Curse = false - end - end end function E:IncompatibleAddOn(addon, module) @@ -505,17 +520,16 @@ end function E:CheckIncompatible() if E.global.ignoreIncompatible then return end - if IsAddOnLoaded("Prat-3.0") and E.private.chat.enable then - E:IncompatibleAddOn("Prat-3.0", "Chat") + if IsAddOnLoaded("SnowfallKeyPress") and E.private.actionbar.enable then + E.private.actionbar.keyDown = true + E:IncompatibleAddOn("SnowfallKeyPress", "ActionBar") end if IsAddOnLoaded("Chatter") and E.private.chat.enable then E:IncompatibleAddOn("Chatter", "Chat") end - - if IsAddOnLoaded("SnowfallKeyPress") and E.private.actionbar.enable then - E.private.actionbar.keyDown = true - E:IncompatibleAddOn("SnowfallKeyPress", "ActionBar") + if IsAddOnLoaded("Prat") and E.private.chat.enable then + E:IncompatibleAddOn("Prat", "Chat") end if IsAddOnLoaded("TidyPlates") and E.private.nameplates.enable then @@ -911,6 +925,7 @@ function E:UpdateAll(ignoreInstall) Chat:PositionChat(true) Chat:SetupChat() Chat:UpdateAnchors() + Chat:Panels_ColorUpdate() end DataBars:EnableDisable_ExperienceBar() @@ -1089,108 +1104,33 @@ function E:DBConversions() end end -local CPU_USAGE = {} -local function CompareCPUDiff(showall, module, minCalls) - local greatestUsage, greatestCalls, greatestName, newName, newFunc - local greatestDiff, lastModule, mod, newUsage, calls, differance = 0 - - for name, oldUsage in pairs(CPU_USAGE) do - newName, newFunc = match(name, "^([^:]+):(.+)$") - if not newFunc then - E:Print("CPU_USAGE:", name, newFunc) - else - if newName ~= lastModule then - mod = E:GetModule(newName, true) or E - lastModule = newName - end - newUsage, calls = GetFunctionCPUUsage(mod[newFunc], true) - differance = newUsage - oldUsage - if showall and (calls > minCalls) then - E:Print('Name('..name..') Calls('..calls..') Diff('..(differance > 0 and format("%.3f", differance) or 0)..')') - end - if (differance > greatestDiff) and calls > minCalls then - greatestName, greatestUsage, greatestCalls, greatestDiff = name, newUsage, calls, differance - end - end - end - - if greatestName then - E:Print(greatestName.. " had the CPU usage difference of: "..(greatestUsage > 0 and format("%.3f", greatestUsage) or 0).."ms. And has been called ".. greatestCalls.." times.") - else - E:Print("CPU Usage: No CPU Usage differences found.") - end - - twipe(CPU_USAGE) -end - -function E:GetTopCPUFunc(msg) - local module, showall, delay, minCalls = match(msg, "^([^%s]+)%s*([^%s]*)%s*([^%s]*)%s*(.*)$") - local mod - - module = (module == "nil" and nil) or module - if not module then - E:Print("cpuusage: module (arg1) is required! This can be set as 'all' too.") - return - end - - local module, showall, delay, minCalls = msg:match("^(%S+)%s*(%S*)%s*(%S*)%s*(.*)$") - local checkCore, mod = (not module or module == "") and "E" - - showall = (showall == "true" and true) or false - delay = (delay == "nil" and nil) or tonumber(delay) or 5 - minCalls = (minCalls == "nil" and nil) or tonumber(minCalls) or 15 - - twipe(CPU_USAGE) - if module == "all" then - for moduName, modu in pairs(self.modules) do - for funcName, func in pairs(modu) do - if (funcName ~= "GetModule") and (type(func) == "function") then - CPU_USAGE[moduName..":"..funcName] = GetFunctionCPUUsage(func, true) - end - end - end - else - if not checkCore then - mod = self:GetModule(module, true) - if not mod then - self:Print(module.." not found, falling back to checking core.") - mod, checkCore = self, "E" - end - else - mod = self - end - - for name, func in pairs(mod) do - if (name ~= "GetModule") and type(func) == "function" then - CPU_USAGE[(checkCore or module)..":"..name] = GetFunctionCPUUsage(func, true) - end - end - end - - self:Delay(delay, CompareCPUDiff, showall, module, minCalls) - self:Print("Calculating CPU Usage differences (module: "..(checkCore or module)..", showall: "..tostring(showall)..", minCalls: "..tostring(minCalls)..", delay: "..tostring(delay)..")") -end - -function E:Initialize() +function E:Initialize(loginFrame) self.myfaction, self.myLocalizedFaction = UnitFactionGroup("player") twipe(self.db) twipe(self.global) twipe(self.private) - self.data = LibStub("AceDB-3.0"):New("ElvDB", self.DF) + local AceDB = LibStub("AceDB-3.0") + + self.data = AceDB:New("ElvDB", self.DF) self.data.RegisterCallback(self, "OnProfileChanged", "UpdateAll") self.data.RegisterCallback(self, "OnProfileCopied", "UpdateAll") self.data.RegisterCallback(self, "OnProfileReset", "OnProfileReset") - self.charSettings = LibStub("AceDB-3.0"):New("ElvPrivateDB", self.privateVars) + self.charSettings = AceDB:New("ElvPrivateDB", self.privateVars) self.private = self.charSettings.profile self.db = self.data.profile self.global = self.data.global self:CheckIncompatible() self:DBConversions() - -- self:ScheduleTimer("CheckRole", 0.01) - self:UIScale("PLAYER_LOGIN") + self:ScheduleTimer("CheckRole", 0.01) + + self:UIScale("PLAYER_LOGIN", loginFrame) + + if not E.db.general.cropIcon then + E.TexCoords = {0, 1, 0, 1} + end self:LoadCommands() --Load Commands self:InitializeModules() --Load Modules @@ -1215,8 +1155,8 @@ function E:Initialize() self:UpdateBorderColors() self:UpdateBackdropColors() self:UpdateStatusBars() - -- self:RegisterEvent("ACTIVE_TALENT_GROUP_CHANGED", "CheckRole") - -- self:RegisterEvent("CHARACTER_POINTS_CHANGED", "CheckRole") + + self:RegisterEvent("CHARACTER_POINTS_CHANGED", "CheckRole") self:RegisterEvent("CVAR_UPDATE", "UIScale") self:RegisterEvent("PLAYER_ENTERING_WORLD") @@ -1231,6 +1171,6 @@ function E:Initialize() collectgarbage() if self.db.general.loginmessage then - print(select(2, E:GetModule("Chat"):FindURL("CHAT_MSG_DUMMY", format(L["LOGIN_MSG"], self["media"].hexvaluecolor, self["media"].hexvaluecolor, self.version)))..".") + self:Print(select(2, E:GetModule("Chat"):FindURL("CHAT_MSG_DUMMY", format(L["LOGIN_MSG"], self.media.hexvaluecolor, self.media.hexvaluecolor, self.version)))..".") end end diff --git a/ElvUI/Core/install.lua b/ElvUI/Core/install.lua index 3a550a3..3980313 100644 --- a/ElvUI/Core/install.lua +++ b/ElvUI/Core/install.lua @@ -24,7 +24,7 @@ local FCF_OpenNewWindow = FCF_OpenNewWindow local FCF_SetWindowName = FCF_SetWindowName local FCF_StopDragging = FCF_StopDragging local FCF_SetChatWindowFontSize = FCF_SetChatWindowFontSize -local CLASS, CHAT_LABEL, CONTINUE, PREVIOUS = CLASS, CHAT_LABEL, CONTINUE, PREVIOUS +local CLASS, CONTINUE, PREVIOUS = CLASS, CONTINUE, PREVIOUS local NUM_CHAT_WINDOWS = NUM_CHAT_WINDOWS local LOOT, GENERAL, TRADE = LOOT, GENERAL, TRADE local GUILD_EVENT_LOG = GUILD_EVENT_LOG @@ -213,6 +213,7 @@ local function SetupCVars() ALWAYS_SHOW_MULTIBARS = 1 LOCK_ACTIONBAR = 1 SIMPLE_CHAT = 0 + SetActionBarToggles(1, 0, 1, 1) TutorialFrame_HideAllAlerts() ClearTutorials() @@ -328,9 +329,6 @@ function E:SetupResolution(noDataReset) E.db.unitframe.units.targettarget.power.enable = false E.db.unitframe.units.targettarget.width = 200 E.db.unitframe.units.targettarget.height = 26 - - E.db.unitframe.units.arena.width = 200 - E.db.unitframe.units.arena.castbar.width = 200 end local isPixel = E.private.general.pixelPerfect @@ -548,9 +546,6 @@ function E:SetupLayout(layout, noDataReset) E.db.unitframe.units.targettarget.power.enable = false E.db.unitframe.units.targettarget.width = 200 E.db.unitframe.units.targettarget.height = 26 - - E.db.unitframe.units.arena.width = 200 - E.db.unitframe.units.arena.castbar.width = 200 end if layout == "dpsCaster" or layout == "healer" or (layout == "dpsMelee" and E.myclass == "HUNTER") then @@ -761,7 +756,7 @@ local function SetPage(PageNum) InstallOption1Button:SetScript("OnClick", SetupCVars) InstallOption1Button:SetText(L["Setup CVars"]) elseif PageNum == 3 then - f.SubTitle:SetText(CHAT_LABEL) + f.SubTitle:SetText(L["Chat"]) f.Desc1:SetText(L["This part of the installation process sets up your chat windows names, positions and colors."]) f.Desc2:SetText(L["The chat windows function the same as Blizzard standard chat windows, you can right click the tabs and drag them around, rename, etc. Please click the button below to setup your chat windows."]) f.Desc3:SetText(L["Importance: |cffD3CF00Medium|r"]) @@ -897,7 +892,7 @@ function E:Install() imsg.lineBottom:SetTexCoord(0.00195313, 0.81835938, 0.01953125, 0.03320313) imsg.text = imsg:CreateFontString(nil, "OVERLAY") - E:FontTemplate(imsg.text, E["media"].normFont, 32, "OUTLINE") + E:FontTemplate(imsg.text, E.media.normFont, 32, "OUTLINE") E:Point(imsg.text, "BOTTOM", 0, 16) imsg.text:SetTextColor(1, 0.82, 0) imsg.text:SetJustifyH("CENTER") @@ -945,7 +940,7 @@ function E:Install() f.Status:SetMinMaxValues(0, MAX_PAGE) E:Point(f.Status, "TOPLEFT", f.Prev, "TOPRIGHT", 6, -2) E:Point(f.Status, "BOTTOMRIGHT", f.Next, "BOTTOMLEFT", -6, 2) - + -- Setup StatusBar Animation f.Status.anim = CreateAnimationGroup(f.Status) f.Status.anim.progress = f.Status.anim:CreateAnimation("Progress") f.Status.anim.progress:SetSmoothing("Out") @@ -976,7 +971,7 @@ function E:Install() f.Option3 = CreateFrame("Button", "InstallOption3Button", f, "UIPanelButtonTemplate") E:StripTextures(f.Option3) - E:Size(f.Option3, 110, 30) + E:Size(f.Option3, 100, 30) E:Point(f.Option3, "LEFT", f.Option2, "RIGHT", 4, 0) f.Option3:SetText("") f.Option3:Hide() @@ -986,7 +981,7 @@ function E:Install() f.Option4 = CreateFrame("Button", "InstallOption4Button", f, "UIPanelButtonTemplate") E:StripTextures(f.Option4) - E:Size(f.Option4, 110, 30) + E:Size(f.Option4, 100, 30) E:Point(f.Option4, "LEFT", f.Option3, "RIGHT", 4, 0) f.Option4:SetText("") f.Option4:Hide() @@ -1030,9 +1025,8 @@ function E:Install() f.tutorialImage = f:CreateTexture("InstallTutorialImage", "OVERLAY") E:Size(f.tutorialImage, 256, 128) - f.tutorialImage:SetTexture("Interface\\AddOns\\ElvUI\\media\\textures\\logo.tga") + f.tutorialImage:SetTexture("Interface\\AddOns\\ElvUI\\media\\textures\\logo") E:Point(f.tutorialImage, "BOTTOM", 0, 70) - end ElvUIInstallFrame:Show() diff --git a/ElvUI/Core/Math.lua b/ElvUI/Core/math.lua similarity index 96% rename from ElvUI/Core/Math.lua rename to ElvUI/Core/math.lua index 9a6c12c..329bae1 100644 --- a/ElvUI/Core/Math.lua +++ b/ElvUI/Core/math.lua @@ -198,7 +198,7 @@ function E:GetXYOffset(position, override) end end -local styles = { +local gftStyles, gftDec, gftUseStyle, gftDeficit = { -- keep percents in this table with `PERCENT` in the key, and `%.1f%%` in the value somewhere. -- we use these two things to follow our setting for decimal length. they need to be EXACT. ["CURRENT"] = "%s", @@ -209,9 +209,8 @@ local styles = { ["DEFICIT"] = "-%s" } -local gftDec, gftUseStyle, gftDeficit function E:GetFormattedText(style, min, max) - assert(styles[style], "Invalid format style: "..style) + assert(gftStyles[style], "Invalid format style: "..style) assert(min, "You need to provide a current value. Usage: E:GetFormattedText(style, min, max)") assert(max, "You need to provide a maximum value. Usage: E:GetFormattedText(style, min, max)") @@ -219,9 +218,9 @@ function E:GetFormattedText(style, min, max) gftDec = (E.db.general.decimalLength or 1) if (gftDec ~= 1) and find(style, "PERCENT") then - gftUseStyle = gsub(styles[style], "%%%.1f%%%%", "%%."..gftDec.."f%%%%") + gftUseStyle = gsub(gftStyles[style], "%%%.1f%%%%", "%%."..gftDec.."f%%%%") else - gftUseStyle = styles[style] + gftUseStyle = gftStyles[style] end if style == "DEFICIT" then @@ -230,7 +229,7 @@ function E:GetFormattedText(style, min, max) elseif style == "PERCENT" then return format(gftUseStyle, min / max * 100) elseif style == "CURRENT" or ((style == "CURRENT_MAX" or style == "CURRENT_MAX_PERCENT" or style == "CURRENT_PERCENT") and min == max) then - return format(styles.CURRENT, E:ShortValue(min)) + return format(gftStyles.CURRENT, E:ShortValue(min)) elseif style == "CURRENT_MAX" then return format(gftUseStyle, E:ShortValue(min), E:ShortValue(max)) elseif style == "CURRENT_PERCENT" then @@ -386,10 +385,10 @@ function E:FormatMoney(amount, style) local silvername = L.silverabbrev local goldname = L.goldabbrev - local value = abs(amount) - local gold = floor(value / 10000) - local silver = floor(mod(value / 100, 100)) - local copper = floor(mod(value, 100)) + local val = abs(amount) + local gold = floor(val / 10000) + local silver = floor(mod(val / 100, 100)) + local copper = floor(mod(val, 100)) if not style or style == "SMART" then local str = "" @@ -399,7 +398,7 @@ function E:FormatMoney(amount, style) if silver > 0 then str = format("%s%d%s%s", str, silver, silvername, copper > 0 and " " or "") end - if copper > 0 or value == 0 then + if copper > 0 or val == 0 then str = format("%s%d%s", str, copper, coppername) end return str diff --git a/ElvUI/Core/modulecopy.lua b/ElvUI/Core/modulecopy.lua index 0a63b5f..596893f 100644 --- a/ElvUI/Core/modulecopy.lua +++ b/ElvUI/Core/modulecopy.lua @@ -32,7 +32,7 @@ function CP:CreateModuleConfigGroup(Name, section, pluginSection) general = { order = 1, type = "toggle", - name = GENERAL + name = L["General"] }, PreButtonSpacer = { order = 200, @@ -140,7 +140,7 @@ end function CP:CopyTable(CopyFrom, CopyTo, CopyDefault, module) for key, value in pairs(CopyTo) do if type(value) ~= "table" then - if module == true or (type(module) == "table" and module.general == nil or (not CopyTo.general and module.general)) then --Some dark magic of a logic to figure out stuff + if module == true or (type(module) == "table" and (module.general == nil or (not CopyTo.general and module.general))) then --Some dark magic of a logic to figure out stuff --This check is to see if the profile we are copying from has keys absent from defaults. --If key exists, then copy. If not, then clear obsolite key from the profile. if CopyDefault[key] ~= nil then @@ -153,7 +153,7 @@ function CP:CopyTable(CopyFrom, CopyTo, CopyDefault, module) if module == true then --Copy over entire section of profile subgroup E:CopyTable(CopyTo, CopyDefault) E:CopyTable(CopyTo, CopyFrom) - elseif module[key] ~= nil then + elseif type(module) == "table" and module[key] ~= nil then --Making sure tables actually exist in profiles (e.g absent values in ElvDB.profiles are for default values) CopyFrom[key], CopyTo[key] = CP:TablesExist(CopyFrom[key], CopyTo[key], CopyDefault[key]) --If key exists, then copy. If not, then clear obsolite key from the profile. @@ -200,12 +200,12 @@ function CP:ImportFromProfile(section, pluginSection) --Some checks for the occasion someone passes wrong stuff if not section then error("No profile section provided. Usage CP:ImportFromProfile(\"section\")") end if not pluginSection and CP.InternalOptions[section] then error(format("Section name could not be \"%s\". This name is reserved for internal setting"), section) end - if pluginSection and CP.InternalOptions[pluginSection][section] then error(format("Section name for plugin group \"%s\" could not be \"%s\". This name is reserved for internal setting"), pluginSection, section) end + if pluginSection and (CP.InternalOptions[pluginSection] and CP.InternalOptions[pluginSection][section]) then error(format("Section name for plugin group \"%s\" could not be \"%s\". This name is reserved for internal setting"), pluginSection, section) end local module = pluginSection and E.global.profileCopy[pluginSection][section] or E.global.profileCopy[section] if not module then error(format("Provided section name \"%s\" does not have a template for profile copy.", section)) end --Starting digging through the settings - local CopyFrom = pluginSection and ElvDB.profiles[E.global.profileCopy.selected][pluginSection][section] or ElvDB.profiles[E.global.profileCopy.selected][section] + local CopyFrom = pluginSection and (ElvDB.profiles[E.global.profileCopy.selected][pluginSection] and ElvDB.profiles[E.global.profileCopy.selected][pluginSection][section] or P[pluginSection][section]) or ElvDB.profiles[E.global.profileCopy.selected][section] local CopyTo = pluginSection and E.db[pluginSection][section] or E.db[section] local CopyDefault = pluginSection and P[pluginSection][section] or P[section] --Making sure tables actually exist in profiles (e.g absent values in ElvDB.profiles are for default values) diff --git a/ElvUI/Core/Movers.lua b/ElvUI/Core/movers.lua similarity index 99% rename from ElvUI/Core/Movers.lua rename to ElvUI/Core/movers.lua index 44e00c4..eb43b2a 100644 --- a/ElvUI/Core/Movers.lua +++ b/ElvUI/Core/movers.lua @@ -479,7 +479,7 @@ function E:SetMoversPositions() end end - for name, _ in pairs(E.CreatedMovers) do + for name in pairs(E.CreatedMovers) do local f = _G[name] local point, anchor, secondaryPoint, x, y if E.db.movers and E.db.movers[name] and type(E.db.movers[name]) == "string" then diff --git a/ElvUI/Core/pixelperfect.lua b/ElvUI/Core/pixelperfect.lua index 2d51d2b..5ff7b7c 100644 --- a/ElvUI/Core/pixelperfect.lua +++ b/ElvUI/Core/pixelperfect.lua @@ -90,6 +90,7 @@ function E:UIScale(event) --[[Eyefinity Test mode Resize the E.UIParent to be smaller than it should be, all objects inside should relocate. Dragging moveable frames outside the box and reloading the UI ensures that they are saving position correctly. + E:Size(E.UIParent, UIParent:GetWidth() - 250, UIParent:GetHeight() - 250) ]] else width, height = UIParent:GetWidth(), UIParent:GetHeight() diff --git a/ElvUI/Core/pluginInstaller.lua b/ElvUI/Core/pluginInstaller.lua index 1184301..8028e40 100644 --- a/ElvUI/Core/pluginInstaller.lua +++ b/ElvUI/Core/pluginInstaller.lua @@ -131,7 +131,7 @@ local function SetPage(PageNum, PrevPage) if i == f.CurrentPage then color = f.StepTitlesColorSelected or {.09,.52,.82} else - color = f.StepTitlesColor or {1,1,1} + color = f.StepTitlesColor or {1, 1, 1} end b.text:SetTextColor(color[1] or color.r, color[2] or color.g, color[3] or color.b) end @@ -172,23 +172,23 @@ function PI:CreateStepComplete() imsg.firstShow = false imsg.bg = imsg:CreateTexture(nil, "BACKGROUND") - imsg.bg:SetTexture([[Interface\LevelUp\LevelUpTex]]) - E:Point(imsg.bg, "BOTTOM", 0, 0) + imsg.bg:SetTexture([[Interface\AddOns\ElvUI\media\textures\LevelUpTex]]) + imsg.bg:SetPoint("BOTTOM", 0, 0) E:Size(imsg.bg, 326, 103) imsg.bg:SetTexCoord(0.00195313, 0.63867188, 0.03710938, 0.23828125) imsg.bg:SetVertexColor(1, 1, 1, 0.6) imsg.lineTop = imsg:CreateTexture(nil, "BACKGROUND") imsg.lineTop:SetDrawLayer("BACKGROUND", 2) - imsg.lineTop:SetTexture([[Interface\LevelUp\LevelUpTex]]) - E:Point(imsg.lineTop, "TOP", 0, 0) + imsg.lineTop:SetTexture([[Interface\AddOns\ElvUI\media\textures\LevelUpTex]]) + imsg.lineTop:SetPoint("TOP", 0, 0) E:Size(imsg.lineTop, 418, 7) imsg.lineTop:SetTexCoord(0.00195313, 0.81835938, 0.01953125, 0.03320313) imsg.lineBottom = imsg:CreateTexture(nil, "BACKGROUND") imsg.lineBottom:SetDrawLayer("BACKGROUND", 2) - imsg.lineBottom:SetTexture([[Interface\LevelUp\LevelUpTex]]) - E:Point(imsg.lineBottom, "BOTTOM", 0, 0) + imsg.lineBottom:SetTexture([[Interface\AddOns\ElvUI\media\textures\LevelUpTex]]) + imsg.lineBottom:SetPoint("BOTTOM", 0, 0) E:Size(imsg.lineBottom, 418, 7) imsg.lineBottom:SetTexCoord(0.00195313, 0.81835938, 0.01953125, 0.03320313) @@ -204,7 +204,7 @@ function PI:CreateFrame() f.SetPage = SetPage E:Size(f, 550, 400) E:SetTemplate(f, "Transparent") - E:Point(f, "CENTER", 0, 0) + f:SetPoint("CENTER", 0, 0) f:SetFrameStrata("TOOLTIP") f.Title = f:CreateFontString(nil, "OVERLAY") @@ -246,7 +246,7 @@ function PI:CreateFrame() f.Status.text = f.Status:CreateFontString(nil, "OVERLAY") E:FontTemplate(f.Status.text) - E:Point(f.Status.text, "CENTER", 0, 0) + f.Status.text:SetPoint("CENTER", 0, 0) f.Option1 = CreateFrame("Button", "PluginInstallOption1Button", f, "UIPanelButtonTemplate") E:StripTextures(f.Option1) @@ -319,20 +319,20 @@ function PI:CreateFrame() E:Width(f.Desc4, f:GetWidth() - 40) local close = CreateFrame("Button", "PluginInstallCloseButton", f, "UIPanelCloseButton") - E:Point(close, "TOPRIGHT", f, "TOPRIGHT") + close:SetPoint("TOPRIGHT", f, "TOPRIGHT") close:SetScript("OnClick", function() f:Hide() end) E.Skins:HandleCloseButton(close) f.pending = CreateFrame("Frame", "PluginInstallPendingButton", f) E:Size(f.pending, 20) - E:Point(f.pending, "TOPLEFT", f, "TOPLEFT", 8, -8) + f.pending:SetPoint("TOPLEFT", f, "TOPLEFT", 8, -8) f.pending.tex = f.pending:CreateTexture(nil, "OVERLAY") E:Point(f.pending.tex, "TOPLEFT", f.pending, "TOPLEFT", 2, -2) E:Point(f.pending.tex, "BOTTOMRIGHT", f.pending, "BOTTOMRIGHT", -2, 2) - f.pending.tex:SetTexture([[Interface\OptionsFrame\UI-OptionsFrame-NewFeatureIcon]]) + f.pending.tex:SetTexture([[Interface\AddOns\ElvUI\media\textures\UI-OptionsFrame-NewFeatureIcon]]) E:CreateBackdrop(f.pending, "Transparent") f.pending:SetScript("OnEnter", function(self) - _G["GameTooltip"]:SetOwner(self, "ANCHOR_BOTTOMLEFT", E.PixelMode and -7 or -9); + _G["GameTooltip"]:SetOwner(self, "ANCHOR_BOTTOMLEFT", E.PixelMode and -7 or -9) _G["GameTooltip"]:AddLine(L["List of installations in queue:"], 1, 1, 1) _G["GameTooltip"]:AddLine(" ") for i = 1, getn(PI.Installs) do @@ -350,11 +350,11 @@ function PI:CreateFrame() f.side = CreateFrame("Frame", "PluginInstallTitleFrame", f) E:SetTemplate(f.side, "Transparent") - E:Point(f.side, "TOPLEFT", f, "TOPRIGHT", E.PixelMode and 1 or 3, 0) - E:Point(f.side, "BOTTOMLEFT", f, "BOTTOMRIGHT", E.PixelMode and 1 or 3, 0) + f.side:SetPoint("TOPLEFT", f, "TOPRIGHT", E.PixelMode and 1 or 3, 0) + f.side:SetPoint("BOTTOMLEFT", f, "BOTTOMRIGHT", E.PixelMode and 1 or 3, 0) E:Width(f.side, 140) f.side.text = f.side:CreateFontString(nil, "OVERLAY") - E:Point(f.side.text, "TOP", f.side, "TOP", 0, -4) + f.side.text:SetPoint("TOP", f.side, "TOP", 0, -4) f.side.text:SetFont(E.media.normFont, 18, "OUTLINE") f.side.text:SetText(L["Steps"]) f.side.Lines = {} --Table to keep shown lines @@ -362,14 +362,14 @@ function PI:CreateFrame() for i = 1, 18 do local button = CreateFrame("Button", nil, f) if i == 1 then - E:Point(button, "TOP", f.side.text, "BOTTOM", 0, -6) + button:SetPoint("TOP", f.side.text, "BOTTOM", 0, -6) else - E:Point(button, "TOP", f.side.Lines[i - 1], "BOTTOM") + button:SetPoint("TOP", f.side.Lines[i - 1], "BOTTOM") end E:Size(button, 130, BUTTON_HEIGHT) button.text = button:CreateFontString(nil, "OVERLAY") - E:Point(button.text, "TOPLEFT", button, "TOPLEFT", 2, -2) - E:Point(button.text, "BOTTOMRIGHT", button, "BOTTOMRIGHT", -2, 2) + button.text:SetPoint("TOPLEFT", button, "TOPLEFT", 2, -2) + button.text:SetPoint("BOTTOMRIGHT", button, "BOTTOMRIGHT", -2, 2) button.text:SetFont(E.media.normFont, 14, "OUTLINE") button:SetScript("OnClick", function() if i <= f.MaxPage then SetPage(i, f.CurrentPage) end end) button.text:SetText("") @@ -419,20 +419,20 @@ function PI:RunInstall() f.Title:SetText(db.Title or L["ElvUI Plugin Installation"]) f.Status:SetMinMaxValues(0, f.MaxPage) f.Status.text:SetText(f.CurrentPage.." / "..f.MaxPage) - f.tutorialImage:SetTexture(db.tutorialImage or [[Interface\AddOns\ElvUI\media\textures\logo.tga]]) + f.tutorialImage:SetTexture(db.tutorialImage or [[Interface\AddOns\ElvUI\media\textures\logo]]) f.Pages = db.Pages PluginInstallFrame:Show() - E:Point(f, "CENTER") + f:SetPoint("CENTER", 0, 0) if db.StepTitles and getn(db.StepTitles) == f.MaxPage then - E:Point(f, "CENTER", E.UIParent, "CENTER", -((db.StepTitleWidth or 140)/2), 0) - E:Width(f.side, db.StepTitleWidth or 140) + f:SetPoint("CENTER", E.UIParent, "CENTER", -((db.StepTitleWidth or 140)/2), 0) + f.side:SetWidth(db.StepTitleWidth or 140) f.side:Show() for i = 1, getn(f.side.Lines) do if db.StepTitles[i] then - E:Width(f.side.Lines[i], db.StepTitleButtonWidth or 130) + f.side.Lines[i]:SetWidth(db.StepTitleButtonWidth or 130) f.side.Lines[i].text:SetJustifyH(db.StepTitleTextJustification or "CENTER") f.side.Lines[i]:Show() end diff --git a/ElvUI/ElvUI.toc b/ElvUI/ElvUI.toc index f6f2805..3e11bfc 100644 --- a/ElvUI/ElvUI.toc +++ b/ElvUI/ElvUI.toc @@ -3,7 +3,7 @@ ## Version: 0.85 ## Title: |cff175581E|r|cffC4C4C4lvUI|r ## Notes: User Interface replacement AddOn for World of Warcraft. -## SavedVariables: ElvDB, ElvPrivateDB +## SavedVariables: ElvDB, ElvPrivateDB, GAME_LOCALE ## SavedVariablesPerCharacter: ElvCharacterDB ## Dependencies: !Compatibility ## OptionalDeps: !DebugTools, SharedMedia, Tukui, ButtonFacade diff --git a/ElvUI/Locales/Chinese_UI.lua b/ElvUI/Locales/Chinese_UI.lua index 8b0ef7e..3eb05af 100644 --- a/ElvUI/Locales/Chinese_UI.lua +++ b/ElvUI/Locales/Chinese_UI.lua @@ -227,7 +227,6 @@ L["Loot / Alert Frames"] = "拾取/提醒框" L["Loot Frame"] = "拾取框架" L["MA Frames"] = "主助理框" L["Micro Bar"] = "微型系统菜单" --Also in ActionBars -L["Minimap"] = "小地图" L["MirrorTimer"] = "镜像计时器" L["MT Frames"] = "主坦克框" L["Party Frames"] = "队伍框架" diff --git a/ElvUI/Locales/English_UI.lua b/ElvUI/Locales/English_UI.lua index efc452b..0e6b0cd 100644 --- a/ElvUI/Locales/English_UI.lua +++ b/ElvUI/Locales/English_UI.lua @@ -227,7 +227,6 @@ L["Loot / Alert Frames"] = true; L["Loot Frame"] = true; L["MA Frames"] = true; L["Micro Bar"] = true; --Also in ActionBars -L["Minimap"] = true; L["MirrorTimer"] = true; L["MT Frames"] = true; L["Party Frames"] = true; --Also used in UnitFrames diff --git a/ElvUI/Locales/French_UI.lua b/ElvUI/Locales/French_UI.lua index 47cf2dd..4fe4318 100644 --- a/ElvUI/Locales/French_UI.lua +++ b/ElvUI/Locales/French_UI.lua @@ -227,7 +227,6 @@ L["Loot / Alert Frames"] = "Cadres de butin / Alerte" L["Loot Frame"] = "Cadre de butin" L["MA Frames"] = "Cadres de l`assistant principal" L["Micro Bar"] = "Micro Barre" --Also in ActionBars -L["Minimap"] = "Mini-carte" L["MirrorTimer"] = "Timer mirroir" L["MT Frames"] = "Cadres du Tank principal" L["Party Frames"] = "Cadres de groupe" --Also used in UnitFrames diff --git a/ElvUI/Locales/German_UI.lua b/ElvUI/Locales/German_UI.lua index 6213515..88aa812 100644 --- a/ElvUI/Locales/German_UI.lua +++ b/ElvUI/Locales/German_UI.lua @@ -227,7 +227,6 @@ L["Loot / Alert Frames"] = "Beute-/Alarmfenster" L["Loot Frame"] = "Beute-Fenster" L["MA Frames"] = "MA-Fenster" L["Micro Bar"] = "Mikroleiste" --Also in ActionBars -L["Minimap"] = "Minimap" L["MirrorTimer"] = "Spiegel Zeitgeber" L["MT Frames"] = "MT-Fenster" L["Party Frames"] = "Gruppenfenster" --Also used in UnitFrames diff --git a/ElvUI/Locales/Korean_UI.lua b/ElvUI/Locales/Korean_UI.lua index 90c0139..b059ac9 100644 --- a/ElvUI/Locales/Korean_UI.lua +++ b/ElvUI/Locales/Korean_UI.lua @@ -227,7 +227,6 @@ L["Loot / Alert Frames"] = "획득/알림 창" L["Loot Frame"] = "전리품 프레임" L["MA Frames"] = "지원공격 전담 프레임" L["Micro Bar"] = "메뉴모음 바" -L["Minimap"] = "미니맵" L["MirrorTimer"] = true L["MT Frames"] = "방어전담 프레임" L["Party Frames"] = "파티 프레임" diff --git a/ElvUI/Locales/Portuguese_UI.lua b/ElvUI/Locales/Portuguese_UI.lua index 5d986e4..13b3441 100644 --- a/ElvUI/Locales/Portuguese_UI.lua +++ b/ElvUI/Locales/Portuguese_UI.lua @@ -227,7 +227,6 @@ L["Loot / Alert Frames"] = "Quadro de Saque / Alerta" L["Loot Frame"] = true L["MA Frames"] = "Quadro do Assistente Principal" L["Micro Bar"] = "Micro Barra" -L["Minimap"] = "Minimapa" L["MirrorTimer"] = true L["MT Frames"] = "Quadro do Tank Principal" L["Party Frames"] = "Quadros de Grupo" diff --git a/ElvUI/Locales/Russian_UI.lua b/ElvUI/Locales/Russian_UI.lua index 03c1db5..81552c9 100644 --- a/ElvUI/Locales/Russian_UI.lua +++ b/ElvUI/Locales/Russian_UI.lua @@ -227,7 +227,6 @@ L["Loot / Alert Frames"] = "Розыгрыш/оповещения" L["Loot Frame"] = "Окно добычи" L["MA Frames"] = "Помощники" L["Micro Bar"] = "Микроменю" --Also in ActionBars -L["Minimap"] = "Миникарта" L["MirrorTimer"] = "Таймер" L["MT Frames"] = "Танки" L["Party Frames"] = "Группа" --Also used in UnitFrames diff --git a/ElvUI/Locales/Spanish_UI.lua b/ElvUI/Locales/Spanish_UI.lua index 4204fdf..7cb831c 100644 --- a/ElvUI/Locales/Spanish_UI.lua +++ b/ElvUI/Locales/Spanish_UI.lua @@ -227,7 +227,6 @@ L["Loot / Alert Frames"] = "Marcos de Botín / Alerta" L["Loot Frame"] = "Marco de Botín" L["MA Frames"] = "Marcos de AP" L["Micro Bar"] = "Micro Barra" -L["Minimap"] = "Minimapa" L["MirrorTimer"] = true L["MT Frames"] = "Marcos de TP" L["Party Frames"] = "Marco de Grupo" diff --git a/ElvUI/Locales/Taiwanese_UI.lua b/ElvUI/Locales/Taiwanese_UI.lua index 0dc3707..6f552a2 100644 --- a/ElvUI/Locales/Taiwanese_UI.lua +++ b/ElvUI/Locales/Taiwanese_UI.lua @@ -227,7 +227,6 @@ L["Loot / Alert Frames"] = "拾取 / 提醒框架" L["Loot Frame"] = "拾取框架" L["MA Frames"] = "主助理框架" L["Micro Bar"] = "微型系統菜單" --Also in ActionBars -L["Minimap"] = "小地圖" L["MirrorTimer"] = "鏡像計時器" L["MT Frames"] = "主坦克框架" L["Party Frames"] = "隊伍框架" --Also used in UnitFrames diff --git a/ElvUI/Modules/DataTexts/Durability.lua b/ElvUI/Modules/DataTexts/Durability.lua index dccaec0..4f3a44a 100644 --- a/ElvUI/Modules/DataTexts/Durability.lua +++ b/ElvUI/Modules/DataTexts/Durability.lua @@ -4,7 +4,7 @@ local DT = E:GetModule("DataTexts"); --Cache global variables --Lua functions local _G = _G -local pairs, ipairs = pairs, ipairs +local pairs = pairs local format, join, upper = string.format, string.join, string.upper --WoW API / Variables local GetInventoryItemDurability = GetInventoryItemDurability diff --git a/ElvUI/Modules/Maps/Minimap.lua b/ElvUI/Modules/Maps/Minimap.lua index 910b567..d42a5e6 100644 --- a/ElvUI/Modules/Maps/Minimap.lua +++ b/ElvUI/Modules/Maps/Minimap.lua @@ -314,7 +314,7 @@ function M:Initialize() MiniMapBattlefieldBorder:Hide() - E:CreateMover(MMHolder, "MinimapMover", L["Minimap"], nil, nil, MinimapPostDrag) + E:CreateMover(MMHolder, "MinimapMover", MINIMAP_LABEL, nil, nil, MinimapPostDrag) Minimap:EnableMouseWheel(true) Minimap:SetScript("OnMouseWheel", M.Minimap_OnMouseWheel) diff --git a/ElvUI/Modules/Misc/AFK.lua b/ElvUI/Modules/Misc/AFK.lua index fd620a7..ad15eef 100644 --- a/ElvUI/Modules/Misc/AFK.lua +++ b/ElvUI/Modules/Misc/AFK.lua @@ -23,7 +23,6 @@ local MoveViewLeftStop = MoveViewLeftStop local Screenshot = Screenshot local UnitAffectingCombat = UnitAffectingCombat -local CUSTOM_CLASS_COLORS = CUSTOM_CLASS_COLORS local MAX_BATTLEFIELD_QUEUES = MAX_BATTLEFIELD_QUEUES local RAID_CLASS_COLORS = RAID_CLASS_COLORS @@ -39,7 +38,7 @@ local printKeys = { ["PRINTSCREEN"] = true, } -if IsMacClient() then +if E.isMacClient then printKeys[_G["KEY_PRINTSCREEN_MAC"]] = true end @@ -241,6 +240,29 @@ local function Chat_OnMouseWheel() end end +local function Chat_OnEvent() + local coloredName = CH:GetColoredName(event, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10) + local type = strsub(event, 10) + local info = ChatTypeInfo[type] + + local playerLink, _ + playerLink = "|Hplayer:"..arg2..":"..arg10..":".."|h" + local message = arg1 + --Escape any % characters, as it may otherwise cause an "invalid option in format" error in the next step + message = gsub(message, "%%", "%%%%") + + _, body = pcall(format, _G["CHAT_"..type.."_GET"]..message, playerLink.."["..coloredName.."]".."|h") + + if CH.db.shortChannels then + body = gsub(body, "|Hchannel:(.-)|h%[(.-)%]|h", CH.ShortChannel) + body = gsub(body, "^(.-|h) "..L["whispers"], "%1") + body = gsub(body, "<"..CHAT_MSG_AFK..">", "[|cffFF0000"..L["AFK"].."|r] ") + body = gsub(body, "<"..CHAT_MSG_DND..">", "[|cffE7E716"..L["DND"].."|r] ") + end + + this:AddMessage(body, info.r, info.g, info.b, info.id) +end + function AFK:Initialize() if E.global.afkEnabled then SetCVar("cameraYawMoveSpeed", E.global.afkCameraSpeedYaw) @@ -273,9 +295,7 @@ function AFK:Initialize() self.AFKMode.chat:SetScript("OnDragStart", self.AFKMode.chat.StartMoving) self.AFKMode.chat:SetScript("OnDragStop", self.AFKMode.chat.StopMovingOrSizing) self.AFKMode.chat:SetScript("OnMouseWheel", Chat_OnMouseWheel) - self.AFKMode.chat:SetScript("OnEvent", function() - CH:ChatFrame_OnEvent(this, event, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10) - end) + self.AFKMode.chat:SetScript("OnEvent", Chat_OnEvent) self.AFKMode.bottom = CreateFrame("Frame", nil, self.AFKMode) self.AFKMode.bottom:SetFrameLevel(0) @@ -287,11 +307,11 @@ function AFK:Initialize() self.AFKMode.bottom.logo = self.AFKMode:CreateTexture(nil, "OVERLAY") E:Size(self.AFKMode.bottom.logo, 320, 150) E:Point(self.AFKMode.bottom.logo, "CENTER", self.AFKMode.bottom, "CENTER", 0, 50) - self.AFKMode.bottom.logo:SetTexture("Interface\\AddOns\\ElvUI\\Media\\Textures\\logo") + self.AFKMode.bottom.logo:SetTexture("Interface\\AddOns\\ElvUI\\media\\textures\\logo") self.AFKMode.bottom.faction = self.AFKMode.bottom:CreateTexture(nil, "OVERLAY") E:Point(self.AFKMode.bottom.faction, "BOTTOMLEFT", self.AFKMode.bottom, "BOTTOMLEFT", -20, -16) - self.AFKMode.bottom.faction:SetTexture("Interface\\AddOns\\ElvUI\\Media\\Textures\\"..E.myfaction.."-Logo") + self.AFKMode.bottom.faction:SetTexture("Interface\\AddOns\\ElvUI\\media\\textures\\"..E.myfaction.."-Logo") E:Size(self.AFKMode.bottom.faction, 140) self.AFKMode.bottom.name = self.AFKMode.bottom:CreateFontString(nil, "OVERLAY") diff --git a/ElvUI/Settings/Profile.lua b/ElvUI/Settings/Profile.lua index c54ebbf..b0f159d 100644 --- a/ElvUI/Settings/Profile.lua +++ b/ElvUI/Settings/Profile.lua @@ -27,6 +27,8 @@ P["general"] = { ["backdropfadecolor"] = {r = .06, g = .06, b = .06, a = 0.8}, ["valuecolor"] = {r = 254/255, g = 123/255, b = 44/255}, + ["cropIcon"] = true, + ["classCacheStoreInDB"] = true, ["classCacheRequestInfo"] = false, diff --git a/ElvUI_Config/ActionBars.lua b/ElvUI_Config/ActionBars.lua index 8b3ca55..1e75c02 100644 --- a/ElvUI_Config/ActionBars.lua +++ b/ElvUI_Config/ActionBars.lua @@ -88,7 +88,7 @@ local function BuildABConfig() desc = L["The button you must hold down in order to drag an ability to another action button."], disabled = function() return (not E.private.actionbar.enable or not E.db.actionbar.lockActionBars) end, values = { - ["NONE"] = NONE, + ["NONE"] = L["None"], ["SHIFT"] = "SHIFT_KEY", ["ALT"] = "ALT_KEY", ["CTRL"] = "CTRL_KEY" @@ -175,7 +175,7 @@ local function BuildABConfig() name = L["Font Outline"], desc = L["Set the font outline."], values = { - ["NONE"] = NONE, + ["NONE"] = L["None"], ["OUTLINE"] = "OUTLINE", ["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE", ["THICKOUTLINE"] = "THICKOUTLINE" diff --git a/ElvUI_Config/Auras.lua b/ElvUI_Config/Auras.lua index cd9f952..f0bb3ec 100644 --- a/ElvUI_Config/Auras.lua +++ b/ElvUI_Config/Auras.lua @@ -167,7 +167,7 @@ E.Options.args.auras = { desc = L["Set the font outline."], type = "select", values = { - ["NONE"] = NONE, + ["NONE"] = L["None"], ["OUTLINE"] = "OUTLINE", ["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE", ["THICKOUTLINE"] = "THICKOUTLINE" diff --git a/ElvUI_Config/Bags.lua b/ElvUI_Config/Bags.lua index 1a02bd8..02f4417 100644 --- a/ElvUI_Config/Bags.lua +++ b/ElvUI_Config/Bags.lua @@ -129,7 +129,7 @@ E.Options.args.bags = { name = L["Font Outline"], set = function(info, value) E.db.bags.countFontOutline = value B:UpdateCountDisplay() end, values = { - ["NONE"] = NONE, + ["NONE"] = L["None"], ["OUTLINE"] = "OUTLINE", ["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE", ["THICKOUTLINE"] = "THICKOUTLINE" @@ -225,7 +225,7 @@ E.Options.args.bags = { disabled = function() return not E.db.bags.itemLevel end, set = function(info, value) E.db.bags.itemLevelFontOutline = value B:UpdateItemLevelDisplay() end, values = { - ["NONE"] = NONE, + ["NONE"] = L["None"], ["OUTLINE"] = "OUTLINE", ["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE", ["THICKOUTLINE"] = "THICKOUTLINE" diff --git a/ElvUI_Config/Chat.lua b/ElvUI_Config/Chat.lua index 9d30daa..1ad3898 100644 --- a/ElvUI_Config/Chat.lua +++ b/ElvUI_Config/Chat.lua @@ -170,7 +170,7 @@ E.Options.args.chat = { name = L["Chat Timestamps"], desc = "OPTION_TOOLTIP_TIMESTAMPS", values = { - ["NONE"] = NONE, + ["NONE"] = L["None"], ["%I:%M "] = "03:27", ["%I:%M:%S "] = "03:27:32", ["%I:%M %p "] = "03:27 PM", @@ -415,7 +415,7 @@ E.Options.args.chat = { desc = L["Set the font outline."], type = "select", values = { - ["NONE"] = NONE, + ["NONE"] = L["None"], ["OUTLINE"] = "OUTLINE", ["MONOCHROMEOUTLINE"] = "MONOCHROMEOUTLINE", ["THICKOUTLINE"] = "THICKOUTLINE" @@ -439,7 +439,7 @@ E.Options.args.chat = { desc = L["Set the font outline."], type = "select", values = { - ["NONE"] = NONE, + ["NONE"] = L["None"], ["OUTLINE"] = "OUTLINE", ["MONOCHROMEOUTLINE"] = "MONOCHROMEOUTLINE", ["THICKOUTLINE"] = "THICKOUTLINE" diff --git a/ElvUI_Config/Core.lua b/ElvUI_Config/Core.lua index 4f1cafa..d5a3f84 100644 --- a/ElvUI_Config/Core.lua +++ b/ElvUI_Config/Core.lua @@ -23,7 +23,7 @@ local AC = LibStub("AceConfig-3.0") local ACD = LibStub("AceConfigDialog-3.0") local ACR = LibStub("AceConfigRegistry-3.0") -AC.RegisterOptionsTable(E, "ElvUI", E.Options) +AC:RegisterOptionsTable("ElvUI", E.Options) ACD:SetDefaultSize("ElvUI", DEFAULT_WIDTH, DEFAULT_HEIGHT) function E:RefreshGUI() @@ -35,7 +35,7 @@ E.Options.args = { ElvUI_Header = { order = 1, type = "header", - name = L["Version"] .. format(": |cff99ff33%s|r", E.version), + name = L["Version"]..format(": |cff99ff33%s|r", E.version), width = "full" }, LoginMessage = { @@ -125,19 +125,22 @@ local DEVELOPERS = { "Haste", "Nightcracker", "Omega1970", - "Hydrazine" + "Hydrazine", + "Blazeflack", + "|cffff7d0aMerathilis|r", + "|cFF8866ccSimpy|r" } local TESTERS = { "Tukui Community", "|cffF76ADBSarah|r - For Sarahing", "Affinity", + "Azilroka", "Modarch", "Bladesdruid", "Tirain", "Phima", "Veiled", - "Blazeflack", "Repooc", "Darth Predator", "Alex", @@ -174,7 +177,7 @@ E.Options.args.credits = { text = { order = 1, type = "description", - name = L["ELVUI_CREDITS"] .. "\n\n" .. L["Coding:"] .. DEVELOPER_STRING .. "\n\n" .. L["Testing:"] .. TESTER_STRING .. "\n\n" .. L["Donations:"] .. DONATOR_STRING + name = L["ELVUI_CREDITS"].."\n\n"..L["Coding:"]..DEVELOPER_STRING.."\n\n"..L["Testing:"]..TESTER_STRING.."\n\n"..L["Donations:"]..DONATOR_STRING } } } @@ -274,7 +277,7 @@ local function ExportImport_Open(mode) label1:SetText(L["Error exporting profile!"]) else label1:SetText(format("%s: %s%s|r", L["Exported"], E.media.hexvaluecolor, profileTypeItems[profileType])) - if(profileType == "profile") then + if profileType == "profile" then label2:SetText(format("%s: %s%s|r", L["Profile Name"], E.media.hexvaluecolor, profileKey)) end end @@ -288,17 +291,14 @@ local function ExportImport_Open(mode) box.editBox:SetScript("OnChar", function() box:SetText(exportString) box.editBox:HighlightText() end) box.editBox:SetScript("OnTextChanged", function() - if this then - box:SetText(exportString) - this:HighlightText() - end - + box:SetText(exportString) + box.editBox:HighlightText() + box.scrollFrame:UpdateScrollChildRect() - box.scrollFrame:SetVerticalScroll(box.scrollFrame:GetVerticalScrollRange()) end) elseif mode == "import" then frame:SetTitle(L["Import Profile"]) - local importButton = AceGUI:Create("Button") + local importButton = AceGUI:Create("Button-ElvUI") importButton:SetDisabled(true) importButton:SetText(L["Import Now"]) importButton:SetAutoWidth(true) @@ -317,7 +317,7 @@ local function ExportImport_Open(mode) end) frame:AddChild(importButton) - local decodeButton = AceGUI:Create("Button") + local decodeButton = AceGUI:Create("Button-ElvUI") decodeButton:SetDisabled(true) decodeButton:SetText(L["Decode Text"]) decodeButton:SetAutoWidth(true) @@ -398,14 +398,14 @@ local function ExportImport_Open(mode) end E.Options.args.profiles = LibStub("AceDBOptions-3.0"):GetOptionsTable(E.data) -AC.RegisterOptionsTable(E, "ElvProfiles", E.Options.args.profiles) +AC:RegisterOptionsTable("ElvProfiles", E.Options.args.profiles) E.Options.args.profiles.order = -10 if not E.Options.args.profiles.plugins then E.Options.args.profiles.plugins = {} end -E.Options.args.profiles.plugins["ElvUI"] = { +E.Options.args.profiles.plugins.ElvUI = { spacer = { order = 89, type = "description", @@ -418,27 +418,24 @@ E.Options.args.profiles.plugins["ElvUI"] = { }, distributeProfile = { order = 91, + type = "execute", name = L["Share Current Profile"], desc = L["Sends your current profile to your target."], - type = "execute", func = function() if (GetNumPartyMembers() <= 0 or GetNumPartyMembers() <= 0) then E:Print(L["You must be in a group."]) return end - - if not UnitExists("target") or not UnitIsPlayer("target") or not UnitIsFriend("player", "target") or UnitIsUnit("player", "target") then - E:Print(L["You must be targeting a player."]) - return - end - if not (UnitInParty("target") or UnitInRaid("target")) then E:Print(L["You must be targeting a player within your group."]) return end - + if not UnitExists("target") or not UnitIsPlayer("target") or not UnitIsFriend("player", "target") or UnitIsUnit("player", "target") then + E:Print(L["You must be targeting a player."]) + return + end local name, server = UnitName("target") - if name and not server or server == "" then + if name and (not server or server == "") then D:Distribute(name) elseif server then D:Distribute(name, true) @@ -455,24 +452,21 @@ E.Options.args.profiles.plugins["ElvUI"] = { E:Print(L["You must be in a group."]) return end - - if not UnitExists("target") or not UnitIsPlayer("target") or not UnitIsFriend("player", "target") or UnitIsUnit("player", "target") then - E:Print(L["You must be targeting a player."]) - return - end - if not (UnitInParty("target") or UnitInRaid("target")) then E:Print(L["You must be targeting a player within your group."]) return end - + if not UnitExists("target") or not UnitIsPlayer("target") or not UnitIsFriend("player", "target") or UnitIsUnit("player", "target") then + E:Print(L["You must be targeting a player."]) + return + end local name, server = UnitName("target") - if name and not server or server == "" then + if name and (not server or server == "") then D:Distribute(name, false, true) elseif server then D:Distribute(name, true, true) end - end, + end }, spacer2 = { order = 93, @@ -491,4 +485,4 @@ E.Options.args.profiles.plugins["ElvUI"] = { name = L["Import Profile"], func = function() ExportImport_Open("import") end } -} \ No newline at end of file +} diff --git a/ElvUI_Config/DataBars.lua b/ElvUI_Config/DataBars.lua index bc70139..ac8d937 100644 --- a/ElvUI_Config/DataBars.lua +++ b/ElvUI_Config/DataBars.lua @@ -25,7 +25,7 @@ E.Options.args.databars = { get = function(info) return mod.db.experience[ info[getn(info)] ] end, set = function(info, value) mod.db.experience[ info[getn(info)] ] = value; mod:UpdateExperienceDimensions() end, type = "group", - name = XPBAR_LABEL, + name = L["XP Bar"], args = { enable = { order = 0, @@ -74,7 +74,7 @@ E.Options.args.databars = { }, textSize = { order = 7, - name = FONT_SIZE, + name = L["Font Size"], type = "range", min = 6, max = 33, step = 1 }, @@ -83,7 +83,7 @@ E.Options.args.databars = { type = "select", name = L["Font Outline"], values = { - ["NONE"] = NONE, + ["NONE"] = L["None"], ["OUTLINE"] = "OUTLINE", ["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE", ["THICKOUTLINE"] = "THICKOUTLINE" @@ -95,7 +95,7 @@ E.Options.args.databars = { name = L["Text Format"], width = "double", values = { - NONE = NONE, + NONE = L["None"], PERCENT = L["Percent"], CUR = L["Current"], REM = L["Remaining"], @@ -170,7 +170,7 @@ E.Options.args.databars = { type = "select", name = L["Font Outline"], values = { - ["NONE"] = NONE, + ["NONE"] = L["None"], ["OUTLINE"] = "OUTLINE", ["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE", ["THICKOUTLINE"] = "THICKOUTLINE" @@ -182,7 +182,7 @@ E.Options.args.databars = { name = L["Text Format"], width = "double", values = { - NONE = NONE, + NONE = L["None"], CUR = L["Current"], REM = L["Remaining"], PERCENT = L["Percent"], diff --git a/ElvUI_Config/General.lua b/ElvUI_Config/General.lua index 4fcb84f..1ed3387 100644 --- a/ElvUI_Config/General.lua +++ b/ElvUI_Config/General.lua @@ -7,9 +7,8 @@ local _G = _G local getn = table.getn --WoW API / Variables local FCF_GetNumActiveChatFrames = FCF_GetNumActiveChatFrames -local NONE, FONT_SIZE, COLOR, DISABLE = NONE, FONT_SIZE, COLOR, DISABLE -local PLAYER, LOOT = PLAYER, LOOT -local SAY, CHAT_MSG_EMOTE = SAY, CHAT_MSG_EMOTE + +_G.GetLocale = function() return GAME_LOCALE end local function GetChatWindowInfo() local ChatTabInfo = {} @@ -23,48 +22,27 @@ local function GetChatWindowInfo() end E.Options.args.general = { - type = "group", - name = GENERAL, order = 1, + type = "group", + name = L["General"], childGroups = "tab", get = function(info) return E.db.general[ info[getn(info)] ] end, set = function(info, value) E.db.general[ info[getn(info)] ] = value end, args = { - versionCheck = { - order = 1, - type = "toggle", - name = L["Version Check"], - get = function(info) return E.global.general.versionCheck end, - set = function(info, value) E.global.general.versionCheck = value end - }, - spacer = { - order = 2, - type = "description", - name = "", - width = "full", - }, intro = { - order = 3, + order = 1, type = "description", name = L["ELVUI_DESC"], }, general = { - order = 4, + order = 2, type = "group", - name = GENERAL, + name = L["General"], args = { generalHeader = { order = 1, type = "header", - name = GENERAL, - }, - pixelPerfect = { - order = 2, - type = "toggle", - name = L["Thin Border Theme"], - desc = L["The Thin Border Theme option will change the overall apperance of your UI. Using Thin Border Theme is a slight performance increase over the traditional layout."], - get = function(info) return E.private.general.pixelPerfect end, - set = function(info, value) E.private.general.pixelPerfect = value E:StaticPopup_Show("PRIVATE_RL") end + name = L["General"], }, messageRedirect = { order = 2, @@ -79,12 +57,12 @@ E.Options.args.general = { name = L["Announce Interrupts"], desc = L["Announce when you interrupt a spell to the specified chat channel."], values = { - ["NONE"] = NONE, - ["SAY"] = SAY, + ["NONE"] = L["None"], + ["SAY"] = L["Say"], ["PARTY"] = L["Party Only"], ["RAID"] = L["Party / Raid"], ["RAID_ONLY"] = L["Raid Only"], - ["EMOTE"] = CHAT_MSG_EMOTE + ["EMOTE"] = L["Emote"] } }, autoRepair = { @@ -93,33 +71,42 @@ E.Options.args.general = { name = L["Auto Repair"], desc = L["Automatically repair using the following method when visiting a merchant."], values = { - ["NONE"] = NONE, - ["PLAYER"] = PLAYER + ["NONE"] = L["None"], + ["GUILD"] = L["Guild"], + ["PLAYER"] = L["Player"] } }, - autoAcceptInvite = { + pixelPerfect = { order = 5, type = "toggle", + name = L["Thin Border Theme"], + desc = L["The Thin Border Theme option will change the overall apperance of your UI. Using Thin Border Theme is a slight performance increase over the traditional layout."], + get = function(info) return E.private.general.pixelPerfect end, + set = function(info, value) E.private.general.pixelPerfect = value E:StaticPopup_Show("PRIVATE_RL") end + }, + autoAcceptInvite = { + order = 6, + type = "toggle", name = L["Accept Invites"], desc = L["Automatically accept invites from guild/friends."] }, autoRoll = { - order = 6, + order = 7, type = "toggle", - name = L["Auto Greed/DE"], - desc = L["Automatically select greed or disenchant (when available) on green quality items. This will only work if you are the max level."], + name = L["Auto Greed"], + desc = L["Automatically select greed (when available) on green quality items. This will only work if you are the max level."], disabled = function() return not E.private.general.lootRoll end }, loot = { - order = 7, + order = 8, type = "toggle", - name = LOOT, + name = L["Loot"], desc = L["Enable/Disable the loot frame."], get = function(info) return E.private.general.loot end, set = function(info, value) E.private.general.loot = value E:StaticPopup_Show("PRIVATE_RL") end }, lootRoll = { - order = 8, + order = 9, type = "toggle", name = L["Loot Roll"], desc = L["Enable/Disable the loot roll frame."], @@ -127,7 +114,7 @@ E.Options.args.general = { set = function(info, value) E.private.general.lootRoll = value E:StaticPopup_Show("PRIVATE_RL") end }, lootUnderMouse = { - order = 9, + order = 10, type = "toggle", name = L["Loot Under Mouse"], desc = L["Enable/Disable loot frame under the mouse cursor."], @@ -136,21 +123,21 @@ E.Options.args.general = { disabled = function() return not E.private.general.loot end }, eyefinity = { - order = 10, + order = 11, + type = "toggle", name = L["Multi-Monitor Support"], desc = L["Attempt to support eyefinity/nvidia surround."], - type = "toggle", get = function(info) return E.global.general.eyefinity end, set = function(info, value) E.global.general[ info[getn(info)] ] = value E:StaticPopup_Show("GLOBAL_RL") end }, hideErrorFrame = { - order = 11, + order = 12, type = "toggle", name = L["Hide Error Text"], desc = L["Hides the red error text at the top of the screen while in combat."] }, bottomPanel = { - order = 12, + order = 13, type = "toggle", name = L["Bottom Panel"], desc = L["Display a panel across the bottom of the screen. This is for cosmetic only."], @@ -158,7 +145,7 @@ E.Options.args.general = { set = function(info, value) E.db.general.bottomPanel = value E:GetModule("Layout"):BottomPanelVisibility() end }, topPanel = { - order = 13, + order = 14, type = "toggle", name = L["Top Panel"], desc = L["Display a panel across the top of the screen. This is for cosmetic only."], @@ -166,7 +153,7 @@ E.Options.args.general = { set = function(info, value) E.db.general.topPanel = value E:GetModule("Layout"):TopPanelVisibility() end }, afk = { - order = 14, + order = 15, type = "toggle", name = L["AFK Mode"], desc = L["When you go AFK display the AFK screen."], @@ -174,7 +161,7 @@ E.Options.args.general = { set = function(info, value) E.db.general.afk = value E:GetModule("AFK"):Toggle() end }, enhancedPvpMessages = { - order = 15, + order = 16, type = "toggle", name = L["Enhanced PVP Messages"], desc = L["Display battleground messages in the middle of the screen."], @@ -189,24 +176,39 @@ E.Options.args.general = { }, autoScale = { order = 17, + type = "toggle", name = L["Auto Scale"], desc = L["Automatically scale the User Interface based on your screen resolution"], - type = "toggle", get = function(info) return E.global.general.autoScale end, set = function(info, value) E.global.general[ info[getn(info)] ] = value E:StaticPopup_Show("GLOBAL_RL") end }, minUiScale = { order = 18, + type = "description", + name = "" + }, + minUiScale = { + order = 19, type = "range", name = L["Lowest Allowed UI Scale"], min = 0.32, max = 0.64, step = 0.01, get = function(info) return E.global.general.minUiScale end, set = function(info, value) E.global.general.minUiScale = value E:StaticPopup_Show("GLOBAL_RL") end }, + decimalLength = { + order = 20, + type = "range", + name = L["Decimal Length"], + desc = L["Controls the amount of decimals used in values displayed on elements like NamePlates and UnitFrames."], + min = 0, max = 4, step = 1, + get = function(info) return E.db.general.decimalLength end, + set = function(info, value) E.db.general.decimalLength = value; E:StaticPopup_Show("GLOBAL_RL") end + }, numberPrefixStyle = { - order = 19, + order = 21, type = "select", - name = L["Number Prefix"], + name = L["Unit Prefix Style"], + desc = L["The unit prefixes you want to use when values are shortened in ElvUI. This is mostly used on UnitFrames."], get = function(info) return E.db.general.numberPrefixStyle end, set = function(info, value) E.db.general.numberPrefixStyle = value E:StaticPopup_Show("CONFIG_RL") end, values = { @@ -217,19 +219,29 @@ E.Options.args.general = { ["GERMAN"] = "German (Tsd, Mio, Mrd)" } }, - decimalLength = { - order = 20, - type = "range", - name = L["Decimal Length"], - desc = L["Controls the amount of decimals used in values displayed on elements like NamePlates and UnitFrames."], - min = 0, max = 4, step = 1, - get = function(info) return E.db.general.decimalLength end, - set = function(info, value) E.db.general.decimalLength = value E:StaticPopup_Show("GLOBAL_RL") end - } + GameLocale = { + order = 22, + type = "select", + name = L["Change Language"], + desc = L["Change the ElvUI option to a different language."], + get = function(info) return GAME_LOCALE end, + set = function(info, value) GAME_LOCALE = value E:StaticPopup_Show("PRIVATE_RL") end, + values = { + ["enUS"] = "English (enUS/enGB)", + ["esES"] = "Spanish (esES/esMX)", + ["ptBR"] = "Portuguese (ptBR)", + ["frFR"] = "French (frFR)", + ["deDE"] = "German (deDE)", + ["koKR"] = "Korean (koKR)", + ["zhCN"] = "Chinese (zhCN)", + ["zhTW"] = "Taiwanese (zhTW)", + ["ruRU"] = "Russian (ruRU)" + } + } } }, media = { - order = 5, + order = 3, type = "group", name = L["Media"], get = function(info) return E.db.general[ info[getn(info)] ] end, @@ -240,31 +252,43 @@ E.Options.args.general = { type = "header", name = L["Fonts"] }, - fontSize = { - order = 2, - type = "range", - name = FONT_SIZE, - desc = L["Set the font size for everything in UI. Note: This doesn't effect somethings that have their own seperate options (UnitFrame Font, Datatext Font, ect..)"], - min = 4, max = 33, step = 1, - set = function(info, value) E.db.general[ info[getn(info)] ] = value E:UpdateMedia() E:UpdateFontTemplates() end - }, font = { - order = 3, + order = 2, type = "select", dialogControl = "LSM30_Font", name = L["Default Font"], desc = L["The font that the core of the UI will use."], values = AceGUIWidgetLSMlists.font, set = function(info, value) E.db.general[ info[getn(info)] ] = value E:UpdateMedia() E:UpdateFontTemplates() end, }, - applyFontToAll = { + fontSize = { + order = 3, + type = "range", + name = L["Font Size"], + desc = L["Set the font size for everything in UI. Note: This doesn't effect somethings that have their own seperate options (UnitFrame Font, Datatext Font, ect..)"], + min = 4, max = 33, step = 1, + set = function(info, value) E.db.general[ info[getn(info)] ] = value E:UpdateMedia() E:UpdateFontTemplates() end + }, + fontStyle = { order = 4, + type = "select", + name = L["Font Outline"], + values = { + ["NONE"] = L["None"], + ["OUTLINE"] = "OUTLINE", + ["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE", + ["THICKOUTLINE"] = "THICKOUTLINE" + }, + set = function(info, value) E.db.general[ info[getn(info)] ] = value E:UpdateMedia() E:UpdateFontTemplates() end + }, + applyFontToAll = { + order = 5, type = "execute", name = L["Apply Font To All"], desc = L["Applies the font and font size settings throughout the entire user interface. Note: Some font size settings will be skipped due to them having a smaller font size by default."], func = function() E:StaticPopup_Show("APPLY_FONT_WARNING") end }, dmgfont = { - order = 5, + order = 6, type = "select", dialogControl = "LSM30_Font", name = L["CombatText Font"], desc = L["The font that combat text will use. |cffFF0000WARNING: This requires a game restart or re-log for this change to take effect.|r"], @@ -273,7 +297,7 @@ E.Options.args.general = { set = function(info, value) E.private.general[ info[getn(info)] ] = value E:UpdateMedia() E:UpdateFontTemplates() E:StaticPopup_Show("PRIVATE_RL") end }, namefont = { - order = 6, + order = 7, type = "select", dialogControl = "LSM30_Font", name = L["Name Font"], desc = L["The font that appears on the text above players heads. |cffFF0000WARNING: This requires a game restart or re-log for this change to take effect.|r"], @@ -282,7 +306,7 @@ E.Options.args.general = { set = function(info, value) E.private.general[ info[getn(info)] ] = value E:UpdateMedia() E:UpdateFontTemplates() E:StaticPopup_Show("PRIVATE_RL") end }, replaceBlizzFonts = { - order = 7, + order = 8, type = "toggle", name = L["Replace Blizzard Fonts"], desc = L["Replaces the default Blizzard fonts on various panels and frames with the fonts chosen in the Media section of the ElvUI config. NOTE: Any font that inherits from the fonts ElvUI usually replaces will be affected as well if you disable this. Enabled by default."], @@ -290,17 +314,17 @@ E.Options.args.general = { set = function(info, value) E.private.general[ info[getn(info)] ] = value E:StaticPopup_Show("PRIVATE_RL") end }, texturesHeaderSpacing = { - order = 8, + order = 9, type = "description", name = " " }, texturesHeader = { - order = 9, + order = 10, type = "header", name = L["Textures"] }, normTex = { - order = 10, + order = 11, type = "select", dialogControl = "LSM30_Statusbar", name = L["Primary Texture"], desc = L["The texture that will be used mainly for statusbars."], @@ -320,7 +344,7 @@ E.Options.args.general = { end }, glossTex = { - order = 11, + order = 12, type = "select", dialogControl = "LSM30_Statusbar", name = L["Secondary Texture"], desc = L["This texture will get used on objects like chat windows and dropdown menus."], @@ -333,7 +357,7 @@ E.Options.args.general = { end }, applyTextureToAll = { - order = 12, + order = 13, type = "execute", name = L["Apply Texture To All"], desc = L["Applies the primary texture to all statusbars."], @@ -343,19 +367,27 @@ E.Options.args.general = { E:UpdateAll(true) end }, + cropIcon = { + order = 14, + type = "toggle", + name = L["Crop Icons"], + desc = L["This is for Customized Icons in your Interface/Icons folder."], + get = function(info) return E.db.general[ info[getn(info)] ] end, + set = function(info, value) E.db.general[ info[getn(info)] ] = value; E:StaticPopup_Show("PRIVATE_RL") end + }, colorsHeaderSpacing = { - order = 13, + order = 15, type = "description", name = " " }, colorsHeader = { - order = 14, + order = 16, type = "header", - name = COLOR + name = L["Colors"] }, bordercolor = { + order = 17, type = "color", - order = 15, name = L["Border Color"], desc = L["Main border color of the UI."], hasAlpha = false, @@ -372,8 +404,8 @@ E.Options.args.general = { end, }, backdropcolor = { + order = 18, type = "color", - order = 32, name = L["Backdrop Color"], desc = L["Main backdrop color of the UI."], hasAlpha = false, @@ -390,8 +422,8 @@ E.Options.args.general = { end }, backdropfadecolor = { + order = 19, type = "color", - order = 33, name = L["Backdrop Faded Color"], desc = L["Backdrop color of transparent frames"], hasAlpha = true, @@ -409,8 +441,8 @@ E.Options.args.general = { end }, valuecolor = { + order = 20, type = "color", - order = 34, name = L["Value Color"], desc = L["Color some texts use."], hasAlpha = false, @@ -429,7 +461,7 @@ E.Options.args.general = { } }, classCache = { - order = 6, + order = 4, type = "group", name = L["Class Cache"], args = { @@ -449,20 +481,8 @@ E.Options.args.general = { CC:ToggleModule() end }, - classCacheStoreInDB = { - order = 3, - type = "toggle", - name = L["Store cache in DB"], - desc = L["If cache stored in DB it will be available between game sessions but increase memory usage.\nIn other way it will be wiped on relog or UI reload."], - get = function(info) return E.db.general.classCacheStoreInDB end, - set = function(info, value) - E.db.general.classCacheStoreInDB = value - CC:SwitchCacheType() - end, - disabled = function() return not E.private.general.classCache end - }, classCacheRequestInfo = { - order = 4, + order = 3, type = "toggle", name = L["Request info for class cache"], desc = L["Use LibWho to cache class info"], @@ -472,41 +492,61 @@ E.Options.args.general = { end, disabled = function() return not E.private.general.classCache end }, - wipeClassCacheGlobal = { - order = 5, - type = "execute", - name = L["Wipe DB Cache"], - buttonElvUI = true, - func = function() - CC:WipeCache(true) - GameTooltip:Hide() - end, - disabled = function() return not CC:GetCacheSize(true) end - }, - wipeClassCacheLocal = { - order = 6, - type = "execute", - name = L["Wipe Session Cache"], - buttonElvUI = true, - func = function() - CC:WipeCache() - GameTooltip:Hide() - end, - disabled = function() return not CC:GetCacheSize() end + cache = { + order = 4, + type = "group", + name = L["Cache"], + guiInline = true, + args = { + classCacheStoreInDB = { + order = 1, + type = "toggle", + name = L["Store cache in DB"], + desc = L["If cache stored in DB it will be available between game sessions but it will increase memory usage.\nIn other way it will be wiped on relog or UI reload."], + get = function(info) return E.db.general.classCacheStoreInDB end, + set = function(info, value) + E.db.general.classCacheStoreInDB = value + CC:SwitchCacheType() + end, + disabled = function() return not E.private.general.classCache end + }, + wipeClassCacheGlobal = { + order = 2, + type = "execute", + name = L["Wipe DB Cache"], + buttonElvUI = true, + func = function() + CC:WipeCache(true) + GameTooltip:Hide() + end, + disabled = function() return not CC:GetCacheSize(true) end + }, + wipeClassCacheLocal = { + order = 3, + type = "execute", + name = L["Wipe Session Cache"], + buttonElvUI = true, + func = function() + CC:WipeCache() + GameTooltip:Hide() + end, + disabled = function() return not CC:GetCacheSize() end + } + } } } }, --[[totems = { - order = 7, + order = 5, type = "group", - name = TUTORIAL_TITLE47, + name = L["Totem Bar"], get = function(info) return E.db.general.totems[ info[getn(info)] ] end, set = function(info, value) E.db.general.totems[ info[getn(info)] ] = value E:GetModule("Totems"):PositionAndSize() end, args = { header = { order = 1, type = "header", - name = TUTORIAL_TITLE47 + name = L["Totem Bar"] }, enable = { order = 2, @@ -619,7 +659,7 @@ E.Options.args.general = { } }, chatBubbles = { - order = 9, + order = 6, type = "group", name = L["Chat Bubbles"], args = { @@ -639,7 +679,7 @@ E.Options.args.general = { ["backdrop"] = L["Skin Backdrop"], ["nobackdrop"] = L["Remove Backdrop"], ["backdrop_noborder"] = L["Skin Backdrop (No Borders)"], - ["disabled"] = DISABLE + ["disabled"] = L["Disable"] } }, name = { @@ -654,7 +694,7 @@ E.Options.args.general = { spacer = { order = 4, type = "description", - name = " ", + name = "" }, font = { order = 5, @@ -669,7 +709,7 @@ E.Options.args.general = { fontSize = { order = 6, type = "range", - name = FONT_SIZE, + name = L["Font Size"], get = function(info) return E.private.general.chatBubbleFontSize end, set = function(info, value) E.private.general.chatBubbleFontSize = value E:StaticPopup_Show("PRIVATE_RL") end, min = 4, max = 33, step = 1, @@ -683,7 +723,7 @@ E.Options.args.general = { set = function(info, value) E.private.general.chatBubbleFontOutline = value E:StaticPopup_Show("PRIVATE_RL") end, disabled = function() return E.private.general.chatBubbles == "disabled" end, values = { - ["NONE"] = NONE, + ["NONE"] = L["None"], ["OUTLINE"] = "OUTLINE", ["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE", ["THICKOUTLINE"] = "THICKOUTLINE", @@ -691,47 +731,37 @@ E.Options.args.general = { } } }, - watchFrame = { - order = 10, - type = "group", - name = L["Watch Frame"], - get = function(info) return E.db.general[ info[getn(info)] ] end, - set = function(info, value) E.db.general[ info[getn(info)] ] = value end, - args = { - watchFrameHeader = { - order = 1, - type = "header", - name = L["Watch Frame"], - }, - watchFrameHeight = { - order = 2, - type = "range", - name = L["Watch Frame Height"], - desc = L["Height of the watch tracker. Increase size to be able to see more objectives."], - min = 400, max = E.screenheight, step = 1, - set = function(info, value) E.db.general[ info[getn(info)] ] = value E:GetModule("Blizzard"):SetWatchFrameHeight() end - } - } - }, --[[threatGroup = { - order = 11, + order = 7, type = "group", name = L["Threat"], args = { threatHeader = { - order = 40, + order = 1, type = "header", name = L["Threat"] }, + threatLibStatus = { + order = 2, + type = "description", + image = function() return E:GetModule("Threat"):GetLibStatus() and READY_CHECK_READY_TEXTURE or READY_CHECK_NOT_READY_TEXTURE, 30, 26 end, + name = function() + if E:GetModule("Threat"):GetLibStatus() then + return L["Library Threat-2.0 found."] + else + return L["Library Threat-2.0 not found. If you want to use Threat module install Omen or separate Threat-2.0 library."] + end + end + }, threatEnable = { - order = 41, + order = 3, type = "toggle", name = L["Enable"], get = function(info) return E.db.general.threat.enable end, - set = function(info, value) E.db.general.threat.enable = value E:GetModule("Threat"):ToggleEnable()end + set = function(info, value) E.db.general.threat.enable = value E:GetModule("Threat"):ToggleEnable() end }, threatPosition = { - order = 42, + order = 4, type = "select", name = L["Position"], desc = L["Adjust the position of the threat bar to either the left or right datatext panels."], @@ -740,17 +770,48 @@ E.Options.args.general = { ["RIGHTCHAT"] = L["Right Chat"] }, get = function(info) return E.db.general.threat.position end, - set = function(info, value) E.db.general.threat.position = value E:GetModule("Threat"):UpdatePosition() end + set = function(info, value) E.db.general.threat.position = value E:GetModule("Threat"):UpdatePosition() end, + disabled = function() return not E.db.general.threat.enable end + }, + spacer = { + order = 5, + type = "description", + name = "" + }, + threatTextfont = { + order = 6, + type = "select", dialogControl = "LSM30_Font", + name = L["Font"], + values = AceGUIWidgetLSMlists.font, + get = function(info) return E.db.general.threat.textfont end, + set = function(info, value) E.db.general.threat.textfont = value E:GetModule("Threat"):UpdatePosition() end, + disabled = function() return not E.db.general.threat.enable end }, threatTextSize = { - order = 43, - name = FONT_SIZE, + order = 7, type = "range", + name = L["Font Size"], min = 6, max = 22, step = 1, get = function(info) return E.db.general.threat.textSize end, - set = function(info, value) E.db.general.threat.textSize = value E:GetModule("Threat"):UpdatePosition() end + set = function(info, value) E.db.general.threat.textSize = value E:GetModule("Threat"):UpdatePosition() end, + disabled = function() return not E.db.general.threat.enable end + }, + threatTextOutline = { + order = 8, + type = "select", + name = L["Font Outline"], + desc = L["Set the font outline."], + values = { + ["NONE"] = L["None"], + ["OUTLINE"] = "OUTLINE", + ["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE", + ["THICKOUTLINE"] = "THICKOUTLINE" + }, + get = function(info) return E.db.general.threat.textOutline end, + set = function(info, value) E.db.general.threat.textOutline = value E:GetModule("Threat"):UpdatePosition() end, + disabled = function() return not E.db.general.threat.enable end } } }--]] } -} \ No newline at end of file +} diff --git a/ElvUI_Config/Locales/Chinese_Config.lua b/ElvUI_Config/Locales/Chinese_Config.lua index 5e57226..7d25b3a 100644 --- a/ElvUI_Config/Locales/Chinese_Config.lua +++ b/ElvUI_Config/Locales/Chinese_Config.lua @@ -387,13 +387,13 @@ L["AFK Mode"] = "离开模式" L["Announce Interrupts"] = "打断通告" L["Announce when you interrupt a spell to the specified chat channel."] = "在指定对话频道通知打断信息" L["Attempt to support eyefinity/nvidia surround."] = "尝试支持eyefinity/nvidia surround" -L["Auto Greed/DE"] = "自动贪婪/分解" +L["Auto Greed"] = "自动贪婪/分解" L["Auto Repair"] = "自动修理" L["Auto Scale"] = "自动缩放" L["Automatically accept invites from guild/friends."] = "自动接受工会或好友的邀请" L["Automatically repair using the following method when visiting a merchant."] = "使用以下方式来自动修理装备" L["Automatically scale the User Interface based on your screen resolution"] = "依据屏幕分辨率度自动缩放介面" -L["Automatically select greed or disenchant (when available) on green quality items. This will only work if you are the max level."] = "当你满级时, 自动选择贪婪或分解绿色物品" +L["Automatically select greed (when available) on green quality items. This will only work if you are the max level."] = "当你满级时, 自动选择贪婪或分解绿色物品" L["Automatically vendor gray items when visiting a vendor."] = "当访问商人时自动出售灰色物品" L["Bottom Panel"] = "底部面板" L["Chat Bubbles Style"] = "聊天气泡样式" diff --git a/ElvUI_Config/Locales/English_Config.lua b/ElvUI_Config/Locales/English_Config.lua index dd79e9a..c954a22 100644 --- a/ElvUI_Config/Locales/English_Config.lua +++ b/ElvUI_Config/Locales/English_Config.lua @@ -376,13 +376,13 @@ L["AFK Mode"] = true; L["Announce Interrupts"] = true; L["Announce when you interrupt a spell to the specified chat channel."] = true; L["Attempt to support eyefinity/nvidia surround."] = true; -L["Auto Greed/DE"] = true; +L["Auto Greed"] = true; L["Auto Repair"] = true; L["Auto Scale"] = true; L["Automatically accept invites from guild/friends."] = true; L["Automatically repair using the following method when visiting a merchant."] = true; L["Automatically scale the User Interface based on your screen resolution"] = true; -L["Automatically select greed or disenchant (when available) on green quality items. This will only work if you are the max level."] = true; +L["Automatically select greed (when available) on green quality items. This will only work if you are the max level."] = true; L["Automatically vendor gray items when visiting a vendor."] = true; L["Bottom Panel"] = true; L["Chat Bubbles Style"] = true; diff --git a/ElvUI_Config/Locales/French_Config.lua b/ElvUI_Config/Locales/French_Config.lua index be78834..32e6407 100644 --- a/ElvUI_Config/Locales/French_Config.lua +++ b/ElvUI_Config/Locales/French_Config.lua @@ -387,13 +387,13 @@ L["AFK Mode"] = "Mode AFK" L["Announce Interrupts"] = "Annoncer les Interruptions" L["Announce when you interrupt a spell to the specified chat channel."] = "Annonce quand vous interrompez un sort dans le canal de chat spécifié." L["Attempt to support eyefinity/nvidia surround."] = "Tente de supporter eyefinity/nvidia surround." -L["Auto Greed/DE"] = "Dez / Cupidité Auto" +L["Auto Greed"] = "Dez / Cupidité Auto" L["Auto Repair"] = "Réparation automatique" L["Auto Scale"] = "Échelle Automatique" L["Automatically accept invites from guild/friends."] = "Accepter automatiquement les invitations venant d'amis / joueurs de la Guilde." L["Automatically repair using the following method when visiting a merchant."] = "Répare automatiquement votre équipement chez le marchand selon le mode de réparation sélectionné." L["Automatically scale the User Interface based on your screen resolution"] = "Redimensionne automatiquement l'Interface Utilisateur en fonction de votre résolution d'écran." -L["Automatically select greed or disenchant (when available) on green quality items. This will only work if you are the max level."] = "Choisi automatiquement la cupidité ou le désenchantement (quand il est disponible) sur les objets inhabituels (vert). Ceci ne fonctionne que si vous êtes au niveau maximum." +L["Automatically select greed (when available) on green quality items. This will only work if you are the max level."] = "Choisi automatiquement la cupidité ou le désenchantement (quand il est disponible) sur les objets inhabituels (vert). Ceci ne fonctionne que si vous êtes au niveau maximum." L["Automatically vendor gray items when visiting a vendor."] = "Vendre automatiquement les objets gris quand vous rendez visite à un marchand." L["Bottom Panel"] = "Bandeau en bas" L["Chat Bubbles Style"] = "Style des bulles de discussion" diff --git a/ElvUI_Config/Locales/German_Config.lua b/ElvUI_Config/Locales/German_Config.lua index 0d2ce50..711dc7c 100644 --- a/ElvUI_Config/Locales/German_Config.lua +++ b/ElvUI_Config/Locales/German_Config.lua @@ -387,13 +387,13 @@ L["AFK Mode"] = "AFK Modus" L["Announce Interrupts"] = "Unterbrechungen ankündigen" L["Announce when you interrupt a spell to the specified chat channel."] = "Melde über den angegebenen Chatkanal einen unterbrochenen Zauber." L["Attempt to support eyefinity/nvidia surround."] = "Versucht Eyefinity/NVIDIA Surround zu unterstützen" -L["Auto Greed/DE"] = "Auto-Gier/DE" +L["Auto Greed"] = "Auto-Gier/DE" L["Auto Repair"] = "Auto-Reparatur" L["Auto Scale"] = "Auto-Skalierung" L["Automatically accept invites from guild/friends."] = "Automatisch Einladungen von Gildenmitgliedern/Freunden akzeptieren" L["Automatically repair using the following method when visiting a merchant."] = "Repariere automatisch deine Ausrüstungsgegenstände, wenn du eine der folgenden Methoden auswählst." L["Automatically scale the User Interface based on your screen resolution"] = "Automatische Skalierung des Interfaces, angepasst an deine Bildschirmeinstellung" -L["Automatically select greed or disenchant (when available) on green quality items. This will only work if you are the max level."] = "Automatisch Gier oder Entzauberung auf Gegenstände von grüner Qualität wählen (sofern verfügbar). Das funktioniert nur, wenn du die maximale Stufe erreicht hast." +L["Automatically select greed (when available) on green quality items. This will only work if you are the max level."] = "Automatisch Gier oder Entzauberung auf Gegenstände von grüner Qualität wählen (sofern verfügbar). Das funktioniert nur, wenn du die maximale Stufe erreicht hast." L["Automatically vendor gray items when visiting a vendor."] = "Automatischer Verkauf von grauen Gegenständen bei einem Händlerbesuch." L["Bottom Panel"] = "Untere Leiste" L["Chat Bubbles Style"] = "Sprechblasen Stil" diff --git a/ElvUI_Config/Locales/Korean_Config.lua b/ElvUI_Config/Locales/Korean_Config.lua index c19de21..2c89e71 100644 --- a/ElvUI_Config/Locales/Korean_Config.lua +++ b/ElvUI_Config/Locales/Korean_Config.lua @@ -435,13 +435,13 @@ L["AFK Mode"] = "자리비움 모드" L["Announce Interrupts"] = "차단 성공시 알림" L["Announce when you interrupt a spell to the specified chat channel."] = "주문 차단에 성공하면 여기에서 설정한 채널로 차단성공을 알립니다." L["Attempt to support eyefinity/nvidia surround."] = "다중모니터 기술인 아이피니티 기능이나 nvidia 서라운드 기능 지원을 적용합니다." -L["Auto Greed/DE"] = "자동 차비/추출 선택" +L["Auto Greed"] = "자동 차비/추출 선택" L["Auto Repair"] = "자동 수리" L["Auto Scale"] = "UI크기 자동조절" L["Automatically accept invites from guild/friends."] = "길드원이나 친구가 플레이어를 파티를 초대하면 자동으로 수락합니다." L["Automatically repair using the following method when visiting a merchant."] = "수리가 가능한 상점을 열면 이 옵션에서 선택한 자금으로 장비를 자동 수리합니다." L["Automatically scale the User Interface based on your screen resolution"] = "현재의 화면 해상도에 따라 자동으로 UI의 크기를 조절합니다." -L["Automatically select greed or disenchant (when available) on green quality items. This will only work if you are the max level."] = "녹템 주사위창이 뜨면 자동으로 차비나 마력추출을 선택합니다. 이 기능은 오로지 만렙 캐릭터에서만 동작합니다." +L["Automatically select greed (when available) on green quality items. This will only work if you are the max level."] = "녹템 주사위창이 뜨면 자동으로 차비나 마력추출을 선택합니다. 이 기능은 오로지 만렙 캐릭터에서만 동작합니다." L["Automatically vendor gray items when visiting a vendor."] = "상점이 열리면 잡동사니를 자동으로 판매합니다." L["Bottom Panel"] = "하단 패널 표시" L["Chat Bubbles Style"] = "말풍선 디자인" diff --git a/ElvUI_Config/Locales/Portuguese_Config.lua b/ElvUI_Config/Locales/Portuguese_Config.lua index b0e14db..c1c36aa 100644 --- a/ElvUI_Config/Locales/Portuguese_Config.lua +++ b/ElvUI_Config/Locales/Portuguese_Config.lua @@ -387,13 +387,13 @@ L["AFK Mode"] = true; L["Announce Interrupts"] = "Anunciar Interrupções" L["Announce when you interrupt a spell to the specified chat channel."] = "Anunciar quando interromper um feitiço para o canal de bate-papo especificado." L["Attempt to support eyefinity/nvidia surround."] = true; -L["Auto Greed/DE"] = "Escolher Ganância/Desencantar automaticamente" +L["Auto Greed"] = "Escolher Ganância/Desencantar automaticamente" L["Auto Repair"] = "Reparar automaticamente" L["Auto Scale"] = "Dimensionar automaticamente" L["Automatically accept invites from guild/friends."] = "Aceitar convites de pessoas da lista de amigos ou guilda automaticamente" L["Automatically repair using the following method when visiting a merchant."] = "Reparar automaticamente usando o seguinte método ao visitar um vendedor." L["Automatically scale the User Interface based on your screen resolution"] = "Dimensionar automaticamente a interface com base na sua resolução do ecrã (monitor)." -L["Automatically select greed or disenchant (when available) on green quality items. This will only work if you are the max level."] = "Selecionar automaticamente ganância ou desencantar (quando disponível) em itens de qualidade verde. Funciona apenas se estiver no nível máximo." +L["Automatically select greed (when available) on green quality items. This will only work if you are the max level."] = "Selecionar automaticamente ganância ou desencantar (quando disponível) em itens de qualidade verde. Funciona apenas se estiver no nível máximo." L["Automatically vendor gray items when visiting a vendor."] = "Vender itens cinzentos automaticamente quando visitar um vendedor" L["Bottom Panel"] = "Painel Infeior" L["Chat Bubbles Style"] = "Estilo dos Balões de Fala" diff --git a/ElvUI_Config/Locales/Russian_Config.lua b/ElvUI_Config/Locales/Russian_Config.lua index b658102..4d97bc8 100644 --- a/ElvUI_Config/Locales/Russian_Config.lua +++ b/ElvUI_Config/Locales/Russian_Config.lua @@ -387,13 +387,13 @@ L["AFK Mode"] = "Режим АФК" L["Announce Interrupts"] = "Объявлять о прерываниях" L["Announce when you interrupt a spell to the specified chat channel."] = "Объявлять о прерванных Вами заклинаниях в указанный канал чата." L["Attempt to support eyefinity/nvidia surround."] = "Пытаться поддерживать eyefinity/nvidia surround" -L["Auto Greed/DE"] = "Авто. не откажусь/распылить" +L["Auto Greed"] = "Авто. не откажусь/распылить" L["Auto Repair"] = "Автоматический ремонт" L["Auto Scale"] = "Автоматический масштаб" L["Automatically accept invites from guild/friends."] = "Автоматически принимать приглашения в группу от друзей и гильдии." L["Automatically repair using the following method when visiting a merchant."] = "Автоматически чинить экипировку за счет выбранного источника при посещении торговца." L["Automatically scale the User Interface based on your screen resolution"] = "Автоматически масштабировать UI в зависимости от вашего разрешения" -L["Automatically select greed or disenchant (when available) on green quality items. This will only work if you are the max level."] = "Автоматически выбирать \"не откажусь\" или \"распылить\" (когда доступно) при розыгрыше предметов зеленого качества. Эта опция работает, только если вы максимального уровня." +L["Automatically select greed (when available) on green quality items. This will only work if you are the max level."] = "Автоматически выбирать \"не откажусь\" или \"распылить\" (когда доступно) при розыгрыше предметов зеленого качества. Эта опция работает, только если вы максимального уровня." L["Automatically vendor gray items when visiting a vendor."] = "Автоматически продавать предметы серого качества при посещении торговца." L["Bottom Panel"] = "Нижняя панель" L["Chat Bubbles Style"] = "Стиль облачков сообщений" diff --git a/ElvUI_Config/Locales/Spanish_Config.lua b/ElvUI_Config/Locales/Spanish_Config.lua index 1627e9b..c1f60a1 100644 --- a/ElvUI_Config/Locales/Spanish_Config.lua +++ b/ElvUI_Config/Locales/Spanish_Config.lua @@ -387,13 +387,13 @@ L["AFK Mode"] = true; L["Announce Interrupts"] = "Anunciar Interrupciones" L["Announce when you interrupt a spell to the specified chat channel."] = "Anunciar cuando interrumpas un hechizo en el canal especificado." L["Attempt to support eyefinity/nvidia surround."] = true; -L["Auto Greed/DE"] = "Codicia/Desencantar Automático" +L["Auto Greed"] = "Codicia/Desencantar Automático" L["Auto Repair"] = "Reparación Automática" L["Auto Scale"] = "Escalado Automático" L["Automatically accept invites from guild/friends."] = "Aceptar de forma automática invitaciones de la hermandad/amigos." L["Automatically repair using the following method when visiting a merchant."] = "Repara de forma automática usando el siguiente método cuando visites un comerciante." L["Automatically scale the User Interface based on your screen resolution"] = "Escala de forma automática la interfaz de usuario dependiendo de la resolución de pantalla" -L["Automatically select greed or disenchant (when available) on green quality items. This will only work if you are the max level."] = "Tira codicia o desencanta (si se puede) automáticamente para los objetos verdes. Esto sólo funciona si ya tienes el nivel máximo." +L["Automatically select greed (when available) on green quality items. This will only work if you are the max level."] = "Tira codicia o desencanta (si se puede) automáticamente para los objetos verdes. Esto sólo funciona si ya tienes el nivel máximo." L["Automatically vendor gray items when visiting a vendor."] = "Vender automáticamente los objetos grises al visitar al vendedor." L["Bottom Panel"] = "Panel Inferior" L["Chat Bubbles Style"] = true; diff --git a/ElvUI_Config/Locales/Taiwanese_Config.lua b/ElvUI_Config/Locales/Taiwanese_Config.lua index 7203c69..bb125a2 100644 --- a/ElvUI_Config/Locales/Taiwanese_Config.lua +++ b/ElvUI_Config/Locales/Taiwanese_Config.lua @@ -387,13 +387,13 @@ L["AFK Mode"] = "離開模式" L["Announce Interrupts"] = "斷法通告" L["Announce when you interrupt a spell to the specified chat channel."] = "在指定對話頻道通知斷法信息." L["Attempt to support eyefinity/nvidia surround."] = true; -L["Auto Greed/DE"] = "自動貪婪/分解" +L["Auto Greed"] = "自動貪婪/分解" L["Auto Repair"] = "自動修裝" L["Auto Scale"] = "自動縮放" L["Automatically accept invites from guild/friends."] = "自動接受公會成員/朋友的組隊邀請." L["Automatically repair using the following method when visiting a merchant."] = "與商人對話時,透過下列方式自動修復裝備." L["Automatically scale the User Interface based on your screen resolution"] = "依螢幕解析度自動縮放 UI 介面." -L["Automatically select greed or disenchant (when available) on green quality items. This will only work if you are the max level."] = "當你的等級達到滿級時, 自動選擇貪婪或分解綠色物品." +L["Automatically select greed (when available) on green quality items. This will only work if you are the max level."] = "當你的等級達到滿級時, 自動選擇貪婪或分解綠色物品." L["Automatically vendor gray items when visiting a vendor."] = "當訪問商人時自動出售灰色物品." L["Bottom Panel"] = "底部面板" L["Chat Bubbles Style"] = "聊天氣泡樣式" diff --git a/ElvUI_Config/Maps.lua b/ElvUI_Config/Maps.lua index 418daa6..31950bb 100644 --- a/ElvUI_Config/Maps.lua +++ b/ElvUI_Config/Maps.lua @@ -182,7 +182,7 @@ E.Options.args.maps = { set = function(info, value) E.db.general.minimap.locationFontOutline = value; MM:Update_ZoneText(); end, disabled = function() return not E.private.general.minimap.enable; end, values = { - ["NONE"] = NONE, + ["NONE"] = L["None"], ["OUTLINE"] = "OUTLINE", ["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE", ["THICKOUTLINE"] = "THICKOUTLINE" diff --git a/ElvUI_Config/ModuleControl.lua b/ElvUI_Config/ModuleControl.lua index 3bbfa0b..3c97183 100644 --- a/ElvUI_Config/ModuleControl.lua +++ b/ElvUI_Config/ModuleControl.lua @@ -6,11 +6,6 @@ local CP = E:GetModule("CopyProfile"); --Cache global variables --Lua functions local getn = table.getn ---WoW API / Variables -local XPBAR_LABEL = XPBAR_LABEL -local REPUTATION = REPUTATION -local MINIMAP_LABEL = MINIMAP_LABEL -local COLOR = COLOR --Actionbars local function CreateActionbarsConfig() @@ -133,7 +128,7 @@ local function CreateDatatbarsConfig() config.args.experience = { order = 2, type = "toggle", - name = XPBAR_LABEL, + name = L["XP Bar"], get = function(info) return E.global.profileCopy.databars[ info[getn(info)] ] end, set = function(info, value) E.global.profileCopy.databars[ info[getn(info)] ] = value end } diff --git a/ElvUI_Config/Nameplates.lua b/ElvUI_Config/Nameplates.lua index 4ce0b97..7cbd569 100644 --- a/ElvUI_Config/Nameplates.lua +++ b/ElvUI_Config/Nameplates.lua @@ -832,7 +832,7 @@ E.Options.args.nameplate = { name = L["Font Outline"], desc = L["Set the font outline."], values = { - ["NONE"] = NONE, + ["NONE"] = L["None"], ["OUTLINE"] = "OUTLINE", ["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE", ["THICKOUTLINE"] = "THICKOUTLINE" diff --git a/ElvUI_Config/Tooltip.lua b/ElvUI_Config/Tooltip.lua index ea7f8d9..a5ba77d 100644 --- a/ElvUI_Config/Tooltip.lua +++ b/ElvUI_Config/Tooltip.lua @@ -93,7 +93,7 @@ E.Options.args.tooltip = { ["BAGS_ONLY"] = L["Bags Only"], ["BANK_ONLY"] = L["Bank Only"], ["BOTH"] = L["Both"], - ["NONE"] = NONE + ["NONE"] = L["None"] } }, colorAlpha = { @@ -122,7 +122,7 @@ E.Options.args.tooltip = { name = L["Font Outline"], type = "select", values = { - ["NONE"] = NONE, + ["NONE"] = L["None"], ["OUTLINE"] = "OUTLINE", ["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE", ["THICKOUTLINE"] = "THICKOUTLINE" @@ -304,7 +304,7 @@ E.Options.args.tooltip = { type = "select", name = L["Font Outline"], values = { - ["NONE"] = NONE, + ["NONE"] = L["None"], ["OUTLINE"] = "OUTLINE", ["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE", ["THICKOUTLINE"] = "THICKOUTLINE" diff --git a/ElvUI_Config/UnitFrames.lua b/ElvUI_Config/UnitFrames.lua index 9d17866..eff4303 100644 --- a/ElvUI_Config/UnitFrames.lua +++ b/ElvUI_Config/UnitFrames.lua @@ -50,7 +50,7 @@ local threatValues = { ["ICONRIGHT"] = L["Icon: RIGHT"], ["ICONTOP"] = L["Icon: TOP"], ["ICONBOTTOM"] = L["Icon: BOTTOM"], - ["NONE"] = NONE + ["NONE"] = L["None"] } local petAnchors = { @@ -1190,7 +1190,7 @@ local function GetOptionsTable_RaidDebuff(updateFunc, groupName) type = "select", name = L["Font Outline"], values = { - ["NONE"] = NONE, + ["NONE"] = L["None"], ["OUTLINE"] = "OUTLINE", ["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE", ["THICKOUTLINE"] = "THICKOUTLINE" @@ -1501,7 +1501,7 @@ local function CreateCustomTextGroup(unit, objectName) name = L["Font Outline"], desc = L["Set the font outline."], values = { - ["NONE"] = NONE, + ["NONE"] = L["None"], ["OUTLINE"] = "OUTLINE", ["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE", ["THICKOUTLINE"] = "THICKOUTLINE" @@ -1838,7 +1838,7 @@ E.Options.args.unitframe = { name = L["Debuff Highlighting"], desc = L["Color the unit healthbar if there is a debuff that can be dispelled by you."], values = { - ["NONE"] = NONE, + ["NONE"] = L["None"], ["GLOW"] = L["Glow"], ["FILL"] = L["Fill"] } @@ -1862,7 +1862,7 @@ E.Options.args.unitframe = { name = L["Blacklist Modifier"], desc = L["You need to hold this modifier down in order to blacklist an aura by right-clicking the icon. Set to None to disable the blacklist functionality."], values = { - ["NONE"] = NONE, + ["NONE"] = L["None"], ["SHIFT"] = SHIFT_KEY, ["ALT"] = ALT_KEY, ["CTRL"] = CTRL_KEY @@ -1927,7 +1927,7 @@ E.Options.args.unitframe = { name = L["Font Outline"], desc = L["Set the font outline."], values = { - ["NONE"] = NONE, + ["NONE"] = L["None"], ["OUTLINE"] = "OUTLINE", ["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE", ["THICKOUTLINE"] = "THICKOUTLINE"