big update

This commit is contained in:
Crum
2019-01-12 12:09:06 -06:00
parent eebdf23364
commit aaf50317e5
45 changed files with 500 additions and 480 deletions
+12 -13
View File
@@ -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
+7 -8
View File
@@ -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")
+54 -29
View File
@@ -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")
+48 -108
View File
@@ -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
+8 -14
View File
@@ -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()
+10 -11
View File
@@ -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
+5 -5
View File
@@ -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)
@@ -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
+1
View File
@@ -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()
+25 -25
View File
@@ -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
+1 -1
View File
@@ -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
-1
View File
@@ -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"] = "队伍框架"
-1
View File
@@ -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
-1
View File
@@ -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
-1
View File
@@ -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
-1
View File
@@ -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"] = "파티 프레임"
-1
View File
@@ -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"
-1
View File
@@ -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
-1
View File
@@ -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"
-1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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)
+27 -7
View File
@@ -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")
+2
View File
@@ -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,
+2 -2
View File
@@ -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"
+1 -1
View File
@@ -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"
+2 -2
View File
@@ -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"
+3 -3
View File
@@ -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"
+29 -35
View File
@@ -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
}
}
}
+6 -6
View File
@@ -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"],
+224 -163
View File
@@ -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
}
}
}--]]
}
}
}
+2 -2
View File
@@ -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"] = "聊天气泡样式"
+2 -2
View File
@@ -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;
+2 -2
View File
@@ -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"
+2 -2
View File
@@ -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"
+2 -2
View File
@@ -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"] = "말풍선 디자인"
+2 -2
View File
@@ -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"
+2 -2
View File
@@ -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"] = "Стиль облачков сообщений"
+2 -2
View File
@@ -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;
+2 -2
View File
@@ -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"] = "聊天氣泡樣式"
+1 -1
View File
@@ -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"
+1 -6
View File
@@ -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
}
+1 -1
View File
@@ -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"
+3 -3
View File
@@ -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"
+6 -6
View File
@@ -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"