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("PARTY_MEMBERS_CHANGED")
self:UnregisterEvent("RAID_ROSTER_UPDATE") self:UnregisterEvent("RAID_ROSTER_UPDATE")
self:RegisterEvent("UPDATE_BATTLEFIELD_SCORE") self:RegisterEvent("UPDATE_BATTLEFIELD_SCORE")
if self.onBattleground then if self.onBattleground then
@@ -246,13 +245,13 @@ function CC:PLAYER_GUILD_UPDATE()
end end
function CC:FRIENDLIST_UPDATE() function CC:FRIENDLIST_UPDATE()
local name, classLocalized, _ local name, class, _
for i = 1, GetNumFriends() do for i = 1, GetNumFriends() do
name, _, classLocalized = GetFriendInfo(i) name, _, class = GetFriendInfo(i)
if classLocalized then if class then
self:CachePlayer(name, GetEnglishClassName(classLocalized)) self:CachePlayer(name, GetEnglishClassName(class))
end end
end end
end end
@@ -260,13 +259,13 @@ end
function CC:GUILD_ROSTER_UPDATE(_, update) function CC:GUILD_ROSTER_UPDATE(_, update)
if not update then return end if not update then return end
local name, classLocalized, _ local name, class, _
for i = 1, GetNumGuildMembers() do for i = 1, GetNumGuildMembers() do
name, _, _, _, _, classLocalized = GetGuildRosterInfo(i) name, _, _, _, class = GetGuildRosterInfo(i)
if classLocalized then if class then
self:CachePlayer(name, GetEnglishClassName(classLocalized)) self:CachePlayer(name, GetEnglishClassName(class))
end end
end end
end end
@@ -345,14 +344,14 @@ function CC:UPDATE_BATTLEFIELD_SCORE()
return return
end end
local name, realm, classLocalized, _ local name, realm, class, _
for i = 1, numPlayers do 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) name, realm = split("-", name)
self:CachePlayer(name, GetEnglishClassName(classLocalized), realm) self:CachePlayer(name, GetEnglishClassName(class), realm)
end end
end end
end end
+7 -8
View File
@@ -71,15 +71,14 @@ function E:FarmMode(msg)
end end
function E:Grid(msg) 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.db.gridSize = msg
E:Grid_Show() E:Grid_Show()
elseif _G.ElvUIGrid and _G.ElvUIGrid:IsShown() then
E:Grid_Hide()
else else
if EGrid then E:Grid_Show()
E:Grid_Hide()
else
E:Grid_Show()
end
end end
end end
@@ -91,10 +90,10 @@ function E:LuaError(msg)
EnableAddOn("!DebugTools") EnableAddOn("!DebugTools")
EnableAddOn("ElvUI") EnableAddOn("ElvUI")
EnableAddOn("ElvUI_Config") EnableAddOn("ElvUI_Config")
SetCVar("ShowErrors", "1") SetCVar("ShowErrors", 1)
ReloadUI() ReloadUI()
elseif msg == "off" then elseif msg == "off" then
SetCVar("ShowErrors", "0") SetCVar("ShowErrors", 0)
E:Print("Lua errors off.") E:Print("Lua errors off.")
else else
E:Print("/luaerror on - /luaerror off") 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 override ~= nil and override ~= "" then E.ConfigurationMode = override end
if E.ConfigurationMode ~= true then if E.ConfigurationMode ~= true then
if not grid then E:Grid_Show()
E:Grid_Create()
elseif grid.boxSize ~= E.db.gridSize then
grid:Hide()
E:Grid_Create()
else
grid:Show()
end
if not ElvUIMoverPopupWindow then if not ElvUIMoverPopupWindow then
E:CreateMoverPopup() E:CreateMoverPopup()
@@ -75,14 +68,12 @@ function E:ToggleConfigMode(override, configType)
E.ConfigurationMode = true E.ConfigurationMode = true
else else
E:Grid_Hide()
if ElvUIMoverPopupWindow then if ElvUIMoverPopupWindow then
ElvUIMoverPopupWindow:Hide() ElvUIMoverPopupWindow:Hide()
end end
if grid then
grid:Hide()
end
E.ConfigurationMode = false E.ConfigurationMode = false
end end
@@ -93,8 +84,35 @@ function E:ToggleConfigMode(override, configType)
self:ToggleMovers(E.ConfigurationMode, configType or "ALL") self:ToggleMovers(E.ConfigurationMode, configType or "ALL")
end 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() 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.boxSize = E.db.gridSize
grid:SetAllPoints(E.UIParent) grid:SetAllPoints(E.UIParent)
grid:Show() grid:Show()
@@ -108,34 +126,41 @@ function E:Grid_Create()
local hStep = height / E.db.gridSize local hStep = height / E.db.gridSize
for i = 0, E.db.gridSize do 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 if i == E.db.gridSize / 2 then
tx:SetTexture(1, 0, 0) tx:SetTexture(1, 0, 0)
tx:SetDrawLayer("BACKGROUND", 1)
else else
tx:SetTexture(0, 0, 0) tx:SetTexture(0, 0, 0)
tx:SetDrawLayer("BACKGROUND", 0)
end end
tx:ClearAllPoints()
E:Point(tx, "TOPLEFT", grid, "TOPLEFT", i*wStep - (size/2), 0) E:Point(tx, "TOPLEFT", grid, "TOPLEFT", i*wStep - (size/2), 0)
E:Point(tx, "BOTTOMRIGHT", grid, "BOTTOMLEFT", i*wStep + (size/2), 0) E:Point(tx, "BOTTOMRIGHT", grid, "BOTTOMLEFT", i*wStep + (size/2), 0)
end end
height = GetScreenHeight() height = GetScreenHeight()
do do
local tx = grid:CreateTexture(nil, "BACKGROUND") local tx = E:Grid_GetRegion()
tx:SetTexture(1, 0, 0) 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, "TOPLEFT", grid, "TOPLEFT", 0, -(height/2) + (size/2))
E:Point(tx, "BOTTOMRIGHT", grid, "TOPRIGHT", 0, -(height/2 + size/2)) E:Point(tx, "BOTTOMRIGHT", grid, "TOPRIGHT", 0, -(height/2 + size/2))
end end
for i = 1, floor((height/2)/hStep) do for i = 1, floor((height / 2) / hStep) do
local tx = grid:CreateTexture(nil, "BACKGROUND") local tx = E:Grid_GetRegion()
tx:SetTexture(0, 0, 0) 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, "TOPLEFT", grid, "TOPLEFT", 0, -(height/2+i*hStep) + (size/2))
E:Point(tx, "BOTTOMRIGHT", grid, "TOPRIGHT", 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: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, "TOPLEFT", grid, "TOPLEFT", 0, -(height/2-i*hStep) + (size/2))
E:Point(tx, "BOTTOMRIGHT", grid, "TOPRIGHT", 0, -(height/2-i*hStep + size/2)) E:Point(tx, "BOTTOMRIGHT", grid, "TOPRIGHT", 0, -(height/2-i*hStep + size/2))
end end
@@ -148,7 +173,7 @@ local function ConfigMode_OnClick()
end end
local function ConfigMode_Initialize() local function ConfigMode_Initialize()
local info = {} local info = L_UIDropDownMenu_CreateInfo()
info.func = ConfigMode_OnClick info.func = ConfigMode_OnClick
for _, configMode in ipairs(E.ConfigModeLayouts) do for _, configMode in ipairs(E.ConfigModeLayouts) do
@@ -439,8 +464,8 @@ function E:CreateMoverPopup()
end) end)
upButton.icon = upButton:CreateTexture(nil, "ARTWORK") upButton.icon = upButton:CreateTexture(nil, "ARTWORK")
E:Size(upButton.icon, 13) E:Size(upButton.icon, 13)
E:Point(upButton.icon, "CENTER", 0) E:Point(upButton.icon, "CENTER", 0, 0)
upButton.icon:SetTexture([[Interface\AddOns\ElvUI\Media\Textures\SquareButtonTextures.blp]]) upButton.icon:SetTexture([[Interface\AddOns\ElvUI\media\textures\SquareButtonTextures]])
upButton.icon:SetTexCoord(0.01562500, 0.20312500, 0.01562500, 0.20312500) upButton.icon:SetTexCoord(0.01562500, 0.20312500, 0.01562500, 0.20312500)
S:SquareButton_SetIcon(upButton, "UP") S:SquareButton_SetIcon(upButton, "UP")
@@ -454,8 +479,8 @@ function E:CreateMoverPopup()
end) end)
downButton.icon = downButton:CreateTexture(nil, "ARTWORK") downButton.icon = downButton:CreateTexture(nil, "ARTWORK")
E:Size(downButton.icon, 13) E:Size(downButton.icon, 13)
E:Point(downButton.icon, "CENTER", 0) E:Point(downButton.icon, "CENTER", 0, 0)
downButton.icon:SetTexture([[Interface\AddOns\ElvUI\Media\Textures\SquareButtonTextures.blp]]) downButton.icon:SetTexture([[Interface\AddOns\ElvUI\media\textures\SquareButtonTextures]])
downButton.icon:SetTexCoord(0.01562500, 0.20312500, 0.01562500, 0.20312500) downButton.icon:SetTexCoord(0.01562500, 0.20312500, 0.01562500, 0.20312500)
S:SquareButton_SetIcon(downButton, "DOWN") S:SquareButton_SetIcon(downButton, "DOWN")
@@ -469,8 +494,8 @@ function E:CreateMoverPopup()
end) end)
leftButton.icon = leftButton:CreateTexture(nil, "ARTWORK") leftButton.icon = leftButton:CreateTexture(nil, "ARTWORK")
E:Size(leftButton.icon, 13) E:Size(leftButton.icon, 13)
E:Point(leftButton.icon, "CENTER", 0) E:Point(leftButton.icon, "CENTER", 0, 0)
leftButton.icon:SetTexture([[Interface\AddOns\ElvUI\Media\Textures\SquareButtonTextures.blp]]) leftButton.icon:SetTexture([[Interface\AddOns\ElvUI\media\textures\SquareButtonTextures]])
leftButton.icon:SetTexCoord(0.01562500, 0.20312500, 0.01562500, 0.20312500) leftButton.icon:SetTexCoord(0.01562500, 0.20312500, 0.01562500, 0.20312500)
S:SquareButton_SetIcon(leftButton, "LEFT") S:SquareButton_SetIcon(leftButton, "LEFT")
@@ -484,8 +509,8 @@ function E:CreateMoverPopup()
end) end)
rightButton.icon = rightButton:CreateTexture(nil, "ARTWORK") rightButton.icon = rightButton:CreateTexture(nil, "ARTWORK")
E:Size(rightButton.icon, 13) E:Size(rightButton.icon, 13)
E:Point(rightButton.icon, "CENTER", 0) E:Point(rightButton.icon, "CENTER", 0, 0)
rightButton.icon:SetTexture([[Interface\AddOns\ElvUI\Media\Textures\SquareButtonTextures.blp]]) rightButton.icon:SetTexture([[Interface\AddOns\ElvUI\media\textures\SquareButtonTextures]])
rightButton.icon:SetTexCoord(0.01562500, 0.20312500, 0.01562500, 0.20312500) rightButton.icon:SetTexCoord(0.01562500, 0.20312500, 0.01562500, 0.20312500)
S:SquareButton_SetIcon(rightButton, "RIGHT") S:SquareButton_SetIcon(rightButton, "RIGHT")
+48 -108
View File
@@ -21,7 +21,7 @@ local IsInInstance, GetNumPartyMembers, GetNumRaidMembers = IsInInstance, GetNum
local RequestBattlefieldScoreData = RequestBattlefieldScoreData local RequestBattlefieldScoreData = RequestBattlefieldScoreData
local SendAddonMessage = SendAddonMessage local SendAddonMessage = SendAddonMessage
local UnitFactionGroup = UnitFactionGroup local UnitFactionGroup = UnitFactionGroup
local NONE = NONE local NONE = L["None"]
local RAID_CLASS_COLORS = RAID_CLASS_COLORS local RAID_CLASS_COLORS = RAID_CLASS_COLORS
-- Constants -- Constants
@@ -170,6 +170,16 @@ function E:ShapeshiftDelayedUpdate(func, ...)
end, 0.05) end, 0.05)
end 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. --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) function E:CheckClassColor(r, g, b)
r, g, b = floor(r*100 + .5) / 100, floor(g*100 + .5) / 100, floor(b*100 + .5) / 100 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 end
function E:PLAYER_ENTERING_WORLD() function E:PLAYER_ENTERING_WORLD()
-- self:ScheduleTimer("CheckRole", 0.01) self:ScheduleTimer("CheckRole", 0.01)
if not self.MediaUpdated then if not self.MediaUpdated then
self:UpdateMedia() self:UpdateMedia()
@@ -413,9 +423,9 @@ end
function E:UpdateStatusBars() function E:UpdateStatusBars()
for _, statusBar in pairs(self.statusBars) do 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) statusBar:SetStatusBarTexture(self.media.normTex)
elseif statusBar and statusBar:GetObjectType() == "Texture" then elseif statusBar and statusBar:IsObjectType("Texture") then
statusBar:SetTexture(self.media.normTex) statusBar:SetTexture(self.media.normTex)
end end
end end
@@ -463,6 +473,19 @@ function E:GetTalentSpecInfo(isInspect)
return specIdx, specName, specIcon return specIdx, specName, specIcon
end 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() function E:CheckRole()
local talentTree = self:GetTalentSpecInfo() local talentTree = self:GetTalentSpecInfo()
local role local role
@@ -484,14 +507,6 @@ function E:CheckRole()
self.TalentTree = talentTree self.TalentTree = talentTree
self.callbacks:Fire("RoleChanged") self.callbacks:Fire("RoleChanged")
end 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 end
function E:IncompatibleAddOn(addon, module) function E:IncompatibleAddOn(addon, module)
@@ -505,17 +520,16 @@ end
function E:CheckIncompatible() function E:CheckIncompatible()
if E.global.ignoreIncompatible then return end if E.global.ignoreIncompatible then return end
if IsAddOnLoaded("Prat-3.0") and E.private.chat.enable then if IsAddOnLoaded("SnowfallKeyPress") and E.private.actionbar.enable then
E:IncompatibleAddOn("Prat-3.0", "Chat") E.private.actionbar.keyDown = true
E:IncompatibleAddOn("SnowfallKeyPress", "ActionBar")
end end
if IsAddOnLoaded("Chatter") and E.private.chat.enable then if IsAddOnLoaded("Chatter") and E.private.chat.enable then
E:IncompatibleAddOn("Chatter", "Chat") E:IncompatibleAddOn("Chatter", "Chat")
end end
if IsAddOnLoaded("Prat") and E.private.chat.enable then
if IsAddOnLoaded("SnowfallKeyPress") and E.private.actionbar.enable then E:IncompatibleAddOn("Prat", "Chat")
E.private.actionbar.keyDown = true
E:IncompatibleAddOn("SnowfallKeyPress", "ActionBar")
end end
if IsAddOnLoaded("TidyPlates") and E.private.nameplates.enable then if IsAddOnLoaded("TidyPlates") and E.private.nameplates.enable then
@@ -911,6 +925,7 @@ function E:UpdateAll(ignoreInstall)
Chat:PositionChat(true) Chat:PositionChat(true)
Chat:SetupChat() Chat:SetupChat()
Chat:UpdateAnchors() Chat:UpdateAnchors()
Chat:Panels_ColorUpdate()
end end
DataBars:EnableDisable_ExperienceBar() DataBars:EnableDisable_ExperienceBar()
@@ -1089,108 +1104,33 @@ function E:DBConversions()
end end
end end
local CPU_USAGE = {} function E:Initialize(loginFrame)
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()
self.myfaction, self.myLocalizedFaction = UnitFactionGroup("player") self.myfaction, self.myLocalizedFaction = UnitFactionGroup("player")
twipe(self.db) twipe(self.db)
twipe(self.global) twipe(self.global)
twipe(self.private) 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, "OnProfileChanged", "UpdateAll")
self.data.RegisterCallback(self, "OnProfileCopied", "UpdateAll") self.data.RegisterCallback(self, "OnProfileCopied", "UpdateAll")
self.data.RegisterCallback(self, "OnProfileReset", "OnProfileReset") 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.private = self.charSettings.profile
self.db = self.data.profile self.db = self.data.profile
self.global = self.data.global self.global = self.data.global
self:CheckIncompatible() self:CheckIncompatible()
self:DBConversions() self:DBConversions()
-- self:ScheduleTimer("CheckRole", 0.01) self:ScheduleTimer("CheckRole", 0.01)
self:UIScale("PLAYER_LOGIN")
self:UIScale("PLAYER_LOGIN", loginFrame)
if not E.db.general.cropIcon then
E.TexCoords = {0, 1, 0, 1}
end
self:LoadCommands() --Load Commands self:LoadCommands() --Load Commands
self:InitializeModules() --Load Modules self:InitializeModules() --Load Modules
@@ -1215,8 +1155,8 @@ function E:Initialize()
self:UpdateBorderColors() self:UpdateBorderColors()
self:UpdateBackdropColors() self:UpdateBackdropColors()
self:UpdateStatusBars() 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("CVAR_UPDATE", "UIScale")
self:RegisterEvent("PLAYER_ENTERING_WORLD") self:RegisterEvent("PLAYER_ENTERING_WORLD")
@@ -1231,6 +1171,6 @@ function E:Initialize()
collectgarbage() collectgarbage()
if self.db.general.loginmessage then 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
end end
+8 -14
View File
@@ -24,7 +24,7 @@ local FCF_OpenNewWindow = FCF_OpenNewWindow
local FCF_SetWindowName = FCF_SetWindowName local FCF_SetWindowName = FCF_SetWindowName
local FCF_StopDragging = FCF_StopDragging local FCF_StopDragging = FCF_StopDragging
local FCF_SetChatWindowFontSize = FCF_SetChatWindowFontSize 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 NUM_CHAT_WINDOWS = NUM_CHAT_WINDOWS
local LOOT, GENERAL, TRADE = LOOT, GENERAL, TRADE local LOOT, GENERAL, TRADE = LOOT, GENERAL, TRADE
local GUILD_EVENT_LOG = GUILD_EVENT_LOG local GUILD_EVENT_LOG = GUILD_EVENT_LOG
@@ -213,6 +213,7 @@ local function SetupCVars()
ALWAYS_SHOW_MULTIBARS = 1 ALWAYS_SHOW_MULTIBARS = 1
LOCK_ACTIONBAR = 1 LOCK_ACTIONBAR = 1
SIMPLE_CHAT = 0 SIMPLE_CHAT = 0
SetActionBarToggles(1, 0, 1, 1) SetActionBarToggles(1, 0, 1, 1)
TutorialFrame_HideAllAlerts() TutorialFrame_HideAllAlerts()
ClearTutorials() ClearTutorials()
@@ -328,9 +329,6 @@ function E:SetupResolution(noDataReset)
E.db.unitframe.units.targettarget.power.enable = false E.db.unitframe.units.targettarget.power.enable = false
E.db.unitframe.units.targettarget.width = 200 E.db.unitframe.units.targettarget.width = 200
E.db.unitframe.units.targettarget.height = 26 E.db.unitframe.units.targettarget.height = 26
E.db.unitframe.units.arena.width = 200
E.db.unitframe.units.arena.castbar.width = 200
end end
local isPixel = E.private.general.pixelPerfect 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.power.enable = false
E.db.unitframe.units.targettarget.width = 200 E.db.unitframe.units.targettarget.width = 200
E.db.unitframe.units.targettarget.height = 26 E.db.unitframe.units.targettarget.height = 26
E.db.unitframe.units.arena.width = 200
E.db.unitframe.units.arena.castbar.width = 200
end end
if layout == "dpsCaster" or layout == "healer" or (layout == "dpsMelee" and E.myclass == "HUNTER") then 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:SetScript("OnClick", SetupCVars)
InstallOption1Button:SetText(L["Setup CVars"]) InstallOption1Button:SetText(L["Setup CVars"])
elseif PageNum == 3 then 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.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.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"]) 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.lineBottom:SetTexCoord(0.00195313, 0.81835938, 0.01953125, 0.03320313)
imsg.text = imsg:CreateFontString(nil, "OVERLAY") 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) E:Point(imsg.text, "BOTTOM", 0, 16)
imsg.text:SetTextColor(1, 0.82, 0) imsg.text:SetTextColor(1, 0.82, 0)
imsg.text:SetJustifyH("CENTER") imsg.text:SetJustifyH("CENTER")
@@ -945,7 +940,7 @@ function E:Install()
f.Status:SetMinMaxValues(0, MAX_PAGE) f.Status:SetMinMaxValues(0, MAX_PAGE)
E:Point(f.Status, "TOPLEFT", f.Prev, "TOPRIGHT", 6, -2) E:Point(f.Status, "TOPLEFT", f.Prev, "TOPRIGHT", 6, -2)
E:Point(f.Status, "BOTTOMRIGHT", f.Next, "BOTTOMLEFT", -6, 2) E:Point(f.Status, "BOTTOMRIGHT", f.Next, "BOTTOMLEFT", -6, 2)
-- Setup StatusBar Animation
f.Status.anim = CreateAnimationGroup(f.Status) f.Status.anim = CreateAnimationGroup(f.Status)
f.Status.anim.progress = f.Status.anim:CreateAnimation("Progress") f.Status.anim.progress = f.Status.anim:CreateAnimation("Progress")
f.Status.anim.progress:SetSmoothing("Out") f.Status.anim.progress:SetSmoothing("Out")
@@ -976,7 +971,7 @@ function E:Install()
f.Option3 = CreateFrame("Button", "InstallOption3Button", f, "UIPanelButtonTemplate") f.Option3 = CreateFrame("Button", "InstallOption3Button", f, "UIPanelButtonTemplate")
E:StripTextures(f.Option3) 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) E:Point(f.Option3, "LEFT", f.Option2, "RIGHT", 4, 0)
f.Option3:SetText("") f.Option3:SetText("")
f.Option3:Hide() f.Option3:Hide()
@@ -986,7 +981,7 @@ function E:Install()
f.Option4 = CreateFrame("Button", "InstallOption4Button", f, "UIPanelButtonTemplate") f.Option4 = CreateFrame("Button", "InstallOption4Button", f, "UIPanelButtonTemplate")
E:StripTextures(f.Option4) 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) E:Point(f.Option4, "LEFT", f.Option3, "RIGHT", 4, 0)
f.Option4:SetText("") f.Option4:SetText("")
f.Option4:Hide() f.Option4:Hide()
@@ -1030,9 +1025,8 @@ function E:Install()
f.tutorialImage = f:CreateTexture("InstallTutorialImage", "OVERLAY") f.tutorialImage = f:CreateTexture("InstallTutorialImage", "OVERLAY")
E:Size(f.tutorialImage, 256, 128) 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) E:Point(f.tutorialImage, "BOTTOM", 0, 70)
end end
ElvUIInstallFrame:Show() ElvUIInstallFrame:Show()
+10 -11
View File
@@ -198,7 +198,7 @@ function E:GetXYOffset(position, override)
end end
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. -- 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. -- we use these two things to follow our setting for decimal length. they need to be EXACT.
["CURRENT"] = "%s", ["CURRENT"] = "%s",
@@ -209,9 +209,8 @@ local styles = {
["DEFICIT"] = "-%s" ["DEFICIT"] = "-%s"
} }
local gftDec, gftUseStyle, gftDeficit
function E:GetFormattedText(style, min, max) 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(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)") 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) gftDec = (E.db.general.decimalLength or 1)
if (gftDec ~= 1) and find(style, "PERCENT") then if (gftDec ~= 1) and find(style, "PERCENT") then
gftUseStyle = gsub(styles[style], "%%%.1f%%%%", "%%."..gftDec.."f%%%%") gftUseStyle = gsub(gftStyles[style], "%%%.1f%%%%", "%%."..gftDec.."f%%%%")
else else
gftUseStyle = styles[style] gftUseStyle = gftStyles[style]
end end
if style == "DEFICIT" then if style == "DEFICIT" then
@@ -230,7 +229,7 @@ function E:GetFormattedText(style, min, max)
elseif style == "PERCENT" then elseif style == "PERCENT" then
return format(gftUseStyle, min / max * 100) 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 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 elseif style == "CURRENT_MAX" then
return format(gftUseStyle, E:ShortValue(min), E:ShortValue(max)) return format(gftUseStyle, E:ShortValue(min), E:ShortValue(max))
elseif style == "CURRENT_PERCENT" then elseif style == "CURRENT_PERCENT" then
@@ -386,10 +385,10 @@ function E:FormatMoney(amount, style)
local silvername = L.silverabbrev local silvername = L.silverabbrev
local goldname = L.goldabbrev local goldname = L.goldabbrev
local value = abs(amount) local val = abs(amount)
local gold = floor(value / 10000) local gold = floor(val / 10000)
local silver = floor(mod(value / 100, 100)) local silver = floor(mod(val / 100, 100))
local copper = floor(mod(value, 100)) local copper = floor(mod(val, 100))
if not style or style == "SMART" then if not style or style == "SMART" then
local str = "" local str = ""
@@ -399,7 +398,7 @@ function E:FormatMoney(amount, style)
if silver > 0 then if silver > 0 then
str = format("%s%d%s%s", str, silver, silvername, copper > 0 and " " or "") str = format("%s%d%s%s", str, silver, silvername, copper > 0 and " " or "")
end end
if copper > 0 or value == 0 then if copper > 0 or val == 0 then
str = format("%s%d%s", str, copper, coppername) str = format("%s%d%s", str, copper, coppername)
end end
return str return str
+5 -5
View File
@@ -32,7 +32,7 @@ function CP:CreateModuleConfigGroup(Name, section, pluginSection)
general = { general = {
order = 1, order = 1,
type = "toggle", type = "toggle",
name = GENERAL name = L["General"]
}, },
PreButtonSpacer = { PreButtonSpacer = {
order = 200, order = 200,
@@ -140,7 +140,7 @@ end
function CP:CopyTable(CopyFrom, CopyTo, CopyDefault, module) function CP:CopyTable(CopyFrom, CopyTo, CopyDefault, module)
for key, value in pairs(CopyTo) do for key, value in pairs(CopyTo) do
if type(value) ~= "table" then 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. --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 key exists, then copy. If not, then clear obsolite key from the profile.
if CopyDefault[key] ~= nil then 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 if module == true then --Copy over entire section of profile subgroup
E:CopyTable(CopyTo, CopyDefault) E:CopyTable(CopyTo, CopyDefault)
E:CopyTable(CopyTo, CopyFrom) 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) --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]) 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. --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 --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 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 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] 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 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 --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 CopyTo = pluginSection and E.db[pluginSection][section] or E.db[section]
local CopyDefault = pluginSection and P[pluginSection][section] or P[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) --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
end end
for name, _ in pairs(E.CreatedMovers) do for name in pairs(E.CreatedMovers) do
local f = _G[name] local f = _G[name]
local point, anchor, secondaryPoint, x, y local point, anchor, secondaryPoint, x, y
if E.db.movers and E.db.movers[name] and type(E.db.movers[name]) == "string" then 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 --[[Eyefinity Test mode
Resize the E.UIParent to be smaller than it should be, all objects inside should relocate. 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. 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 else
width, height = UIParent:GetWidth(), UIParent:GetHeight() width, height = UIParent:GetWidth(), UIParent:GetHeight()
+25 -25
View File
@@ -131,7 +131,7 @@ local function SetPage(PageNum, PrevPage)
if i == f.CurrentPage then if i == f.CurrentPage then
color = f.StepTitlesColorSelected or {.09,.52,.82} color = f.StepTitlesColorSelected or {.09,.52,.82}
else else
color = f.StepTitlesColor or {1,1,1} color = f.StepTitlesColor or {1, 1, 1}
end end
b.text:SetTextColor(color[1] or color.r, color[2] or color.g, color[3] or color.b) b.text:SetTextColor(color[1] or color.r, color[2] or color.g, color[3] or color.b)
end end
@@ -172,23 +172,23 @@ function PI:CreateStepComplete()
imsg.firstShow = false imsg.firstShow = false
imsg.bg = imsg:CreateTexture(nil, "BACKGROUND") imsg.bg = imsg:CreateTexture(nil, "BACKGROUND")
imsg.bg:SetTexture([[Interface\LevelUp\LevelUpTex]]) imsg.bg:SetTexture([[Interface\AddOns\ElvUI\media\textures\LevelUpTex]])
E:Point(imsg.bg, "BOTTOM", 0, 0) imsg.bg:SetPoint("BOTTOM", 0, 0)
E:Size(imsg.bg, 326, 103) E:Size(imsg.bg, 326, 103)
imsg.bg:SetTexCoord(0.00195313, 0.63867188, 0.03710938, 0.23828125) imsg.bg:SetTexCoord(0.00195313, 0.63867188, 0.03710938, 0.23828125)
imsg.bg:SetVertexColor(1, 1, 1, 0.6) imsg.bg:SetVertexColor(1, 1, 1, 0.6)
imsg.lineTop = imsg:CreateTexture(nil, "BACKGROUND") imsg.lineTop = imsg:CreateTexture(nil, "BACKGROUND")
imsg.lineTop:SetDrawLayer("BACKGROUND", 2) imsg.lineTop:SetDrawLayer("BACKGROUND", 2)
imsg.lineTop:SetTexture([[Interface\LevelUp\LevelUpTex]]) imsg.lineTop:SetTexture([[Interface\AddOns\ElvUI\media\textures\LevelUpTex]])
E:Point(imsg.lineTop, "TOP", 0, 0) imsg.lineTop:SetPoint("TOP", 0, 0)
E:Size(imsg.lineTop, 418, 7) E:Size(imsg.lineTop, 418, 7)
imsg.lineTop:SetTexCoord(0.00195313, 0.81835938, 0.01953125, 0.03320313) imsg.lineTop:SetTexCoord(0.00195313, 0.81835938, 0.01953125, 0.03320313)
imsg.lineBottom = imsg:CreateTexture(nil, "BACKGROUND") imsg.lineBottom = imsg:CreateTexture(nil, "BACKGROUND")
imsg.lineBottom:SetDrawLayer("BACKGROUND", 2) imsg.lineBottom:SetDrawLayer("BACKGROUND", 2)
imsg.lineBottom:SetTexture([[Interface\LevelUp\LevelUpTex]]) imsg.lineBottom:SetTexture([[Interface\AddOns\ElvUI\media\textures\LevelUpTex]])
E:Point(imsg.lineBottom, "BOTTOM", 0, 0) imsg.lineBottom:SetPoint("BOTTOM", 0, 0)
E:Size(imsg.lineBottom, 418, 7) E:Size(imsg.lineBottom, 418, 7)
imsg.lineBottom:SetTexCoord(0.00195313, 0.81835938, 0.01953125, 0.03320313) imsg.lineBottom:SetTexCoord(0.00195313, 0.81835938, 0.01953125, 0.03320313)
@@ -204,7 +204,7 @@ function PI:CreateFrame()
f.SetPage = SetPage f.SetPage = SetPage
E:Size(f, 550, 400) E:Size(f, 550, 400)
E:SetTemplate(f, "Transparent") E:SetTemplate(f, "Transparent")
E:Point(f, "CENTER", 0, 0) f:SetPoint("CENTER", 0, 0)
f:SetFrameStrata("TOOLTIP") f:SetFrameStrata("TOOLTIP")
f.Title = f:CreateFontString(nil, "OVERLAY") f.Title = f:CreateFontString(nil, "OVERLAY")
@@ -246,7 +246,7 @@ function PI:CreateFrame()
f.Status.text = f.Status:CreateFontString(nil, "OVERLAY") f.Status.text = f.Status:CreateFontString(nil, "OVERLAY")
E:FontTemplate(f.Status.text) 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") f.Option1 = CreateFrame("Button", "PluginInstallOption1Button", f, "UIPanelButtonTemplate")
E:StripTextures(f.Option1) E:StripTextures(f.Option1)
@@ -319,20 +319,20 @@ function PI:CreateFrame()
E:Width(f.Desc4, f:GetWidth() - 40) E:Width(f.Desc4, f:GetWidth() - 40)
local close = CreateFrame("Button", "PluginInstallCloseButton", f, "UIPanelCloseButton") 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) close:SetScript("OnClick", function() f:Hide() end)
E.Skins:HandleCloseButton(close) E.Skins:HandleCloseButton(close)
f.pending = CreateFrame("Frame", "PluginInstallPendingButton", f) f.pending = CreateFrame("Frame", "PluginInstallPendingButton", f)
E:Size(f.pending, 20) 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") f.pending.tex = f.pending:CreateTexture(nil, "OVERLAY")
E:Point(f.pending.tex, "TOPLEFT", f.pending, "TOPLEFT", 2, -2) E:Point(f.pending.tex, "TOPLEFT", f.pending, "TOPLEFT", 2, -2)
E:Point(f.pending.tex, "BOTTOMRIGHT", f.pending, "BOTTOMRIGHT", -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") E:CreateBackdrop(f.pending, "Transparent")
f.pending:SetScript("OnEnter", function(self) 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(L["List of installations in queue:"], 1, 1, 1)
_G["GameTooltip"]:AddLine(" ") _G["GameTooltip"]:AddLine(" ")
for i = 1, getn(PI.Installs) do for i = 1, getn(PI.Installs) do
@@ -350,11 +350,11 @@ function PI:CreateFrame()
f.side = CreateFrame("Frame", "PluginInstallTitleFrame", f) f.side = CreateFrame("Frame", "PluginInstallTitleFrame", f)
E:SetTemplate(f.side, "Transparent") E:SetTemplate(f.side, "Transparent")
E:Point(f.side, "TOPLEFT", f, "TOPRIGHT", E.PixelMode and 1 or 3, 0) f.side:SetPoint("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("BOTTOMLEFT", f, "BOTTOMRIGHT", E.PixelMode and 1 or 3, 0)
E:Width(f.side, 140) E:Width(f.side, 140)
f.side.text = f.side:CreateFontString(nil, "OVERLAY") 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:SetFont(E.media.normFont, 18, "OUTLINE")
f.side.text:SetText(L["Steps"]) f.side.text:SetText(L["Steps"])
f.side.Lines = {} --Table to keep shown lines f.side.Lines = {} --Table to keep shown lines
@@ -362,14 +362,14 @@ function PI:CreateFrame()
for i = 1, 18 do for i = 1, 18 do
local button = CreateFrame("Button", nil, f) local button = CreateFrame("Button", nil, f)
if i == 1 then if i == 1 then
E:Point(button, "TOP", f.side.text, "BOTTOM", 0, -6) button:SetPoint("TOP", f.side.text, "BOTTOM", 0, -6)
else else
E:Point(button, "TOP", f.side.Lines[i - 1], "BOTTOM") button:SetPoint("TOP", f.side.Lines[i - 1], "BOTTOM")
end end
E:Size(button, 130, BUTTON_HEIGHT) E:Size(button, 130, BUTTON_HEIGHT)
button.text = button:CreateFontString(nil, "OVERLAY") button.text = button:CreateFontString(nil, "OVERLAY")
E:Point(button.text, "TOPLEFT", button, "TOPLEFT", 2, -2) button.text:SetPoint("TOPLEFT", button, "TOPLEFT", 2, -2)
E:Point(button.text, "BOTTOMRIGHT", button, "BOTTOMRIGHT", -2, 2) button.text:SetPoint("BOTTOMRIGHT", button, "BOTTOMRIGHT", -2, 2)
button.text:SetFont(E.media.normFont, 14, "OUTLINE") button.text:SetFont(E.media.normFont, 14, "OUTLINE")
button:SetScript("OnClick", function() if i <= f.MaxPage then SetPage(i, f.CurrentPage) end end) button:SetScript("OnClick", function() if i <= f.MaxPage then SetPage(i, f.CurrentPage) end end)
button.text:SetText("") button.text:SetText("")
@@ -419,20 +419,20 @@ function PI:RunInstall()
f.Title:SetText(db.Title or L["ElvUI Plugin Installation"]) f.Title:SetText(db.Title or L["ElvUI Plugin Installation"])
f.Status:SetMinMaxValues(0, f.MaxPage) f.Status:SetMinMaxValues(0, f.MaxPage)
f.Status.text:SetText(f.CurrentPage.." / "..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 f.Pages = db.Pages
PluginInstallFrame:Show() PluginInstallFrame:Show()
E:Point(f, "CENTER") f:SetPoint("CENTER", 0, 0)
if db.StepTitles and getn(db.StepTitles) == f.MaxPage then if db.StepTitles and getn(db.StepTitles) == f.MaxPage then
E:Point(f, "CENTER", E.UIParent, "CENTER", -((db.StepTitleWidth or 140)/2), 0) f:SetPoint("CENTER", E.UIParent, "CENTER", -((db.StepTitleWidth or 140)/2), 0)
E:Width(f.side, db.StepTitleWidth or 140) f.side:SetWidth(db.StepTitleWidth or 140)
f.side:Show() f.side:Show()
for i = 1, getn(f.side.Lines) do for i = 1, getn(f.side.Lines) do
if db.StepTitles[i] then 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].text:SetJustifyH(db.StepTitleTextJustification or "CENTER")
f.side.Lines[i]:Show() f.side.Lines[i]:Show()
end end
+1 -1
View File
@@ -3,7 +3,7 @@
## Version: 0.85 ## Version: 0.85
## Title: |cff175581E|r|cffC4C4C4lvUI|r ## Title: |cff175581E|r|cffC4C4C4lvUI|r
## Notes: User Interface replacement AddOn for World of Warcraft. ## Notes: User Interface replacement AddOn for World of Warcraft.
## SavedVariables: ElvDB, ElvPrivateDB ## SavedVariables: ElvDB, ElvPrivateDB, GAME_LOCALE
## SavedVariablesPerCharacter: ElvCharacterDB ## SavedVariablesPerCharacter: ElvCharacterDB
## Dependencies: !Compatibility ## Dependencies: !Compatibility
## OptionalDeps: !DebugTools, SharedMedia, Tukui, ButtonFacade ## OptionalDeps: !DebugTools, SharedMedia, Tukui, ButtonFacade
-1
View File
@@ -227,7 +227,6 @@ L["Loot / Alert Frames"] = "拾取/提醒框"
L["Loot Frame"] = "拾取框架" L["Loot Frame"] = "拾取框架"
L["MA Frames"] = "主助理框" L["MA Frames"] = "主助理框"
L["Micro Bar"] = "微型系统菜单" --Also in ActionBars L["Micro Bar"] = "微型系统菜单" --Also in ActionBars
L["Minimap"] = "小地图"
L["MirrorTimer"] = "镜像计时器" L["MirrorTimer"] = "镜像计时器"
L["MT Frames"] = "主坦克框" L["MT Frames"] = "主坦克框"
L["Party Frames"] = "队伍框架" L["Party Frames"] = "队伍框架"
-1
View File
@@ -227,7 +227,6 @@ L["Loot / Alert Frames"] = true;
L["Loot Frame"] = true; L["Loot Frame"] = true;
L["MA Frames"] = true; L["MA Frames"] = true;
L["Micro Bar"] = true; --Also in ActionBars L["Micro Bar"] = true; --Also in ActionBars
L["Minimap"] = true;
L["MirrorTimer"] = true; L["MirrorTimer"] = true;
L["MT Frames"] = true; L["MT Frames"] = true;
L["Party Frames"] = true; --Also used in UnitFrames 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["Loot Frame"] = "Cadre de butin"
L["MA Frames"] = "Cadres de l`assistant principal" L["MA Frames"] = "Cadres de l`assistant principal"
L["Micro Bar"] = "Micro Barre" --Also in ActionBars L["Micro Bar"] = "Micro Barre" --Also in ActionBars
L["Minimap"] = "Mini-carte"
L["MirrorTimer"] = "Timer mirroir" L["MirrorTimer"] = "Timer mirroir"
L["MT Frames"] = "Cadres du Tank principal" L["MT Frames"] = "Cadres du Tank principal"
L["Party Frames"] = "Cadres de groupe" --Also used in UnitFrames 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["Loot Frame"] = "Beute-Fenster"
L["MA Frames"] = "MA-Fenster" L["MA Frames"] = "MA-Fenster"
L["Micro Bar"] = "Mikroleiste" --Also in ActionBars L["Micro Bar"] = "Mikroleiste" --Also in ActionBars
L["Minimap"] = "Minimap"
L["MirrorTimer"] = "Spiegel Zeitgeber" L["MirrorTimer"] = "Spiegel Zeitgeber"
L["MT Frames"] = "MT-Fenster" L["MT Frames"] = "MT-Fenster"
L["Party Frames"] = "Gruppenfenster" --Also used in UnitFrames L["Party Frames"] = "Gruppenfenster" --Also used in UnitFrames
-1
View File
@@ -227,7 +227,6 @@ L["Loot / Alert Frames"] = "획득/알림 창"
L["Loot Frame"] = "전리품 프레임" L["Loot Frame"] = "전리품 프레임"
L["MA Frames"] = "지원공격 전담 프레임" L["MA Frames"] = "지원공격 전담 프레임"
L["Micro Bar"] = "메뉴모음 바" L["Micro Bar"] = "메뉴모음 바"
L["Minimap"] = "미니맵"
L["MirrorTimer"] = true L["MirrorTimer"] = true
L["MT Frames"] = "방어전담 프레임" L["MT Frames"] = "방어전담 프레임"
L["Party Frames"] = "파티 프레임" L["Party Frames"] = "파티 프레임"
-1
View File
@@ -227,7 +227,6 @@ L["Loot / Alert Frames"] = "Quadro de Saque / Alerta"
L["Loot Frame"] = true L["Loot Frame"] = true
L["MA Frames"] = "Quadro do Assistente Principal" L["MA Frames"] = "Quadro do Assistente Principal"
L["Micro Bar"] = "Micro Barra" L["Micro Bar"] = "Micro Barra"
L["Minimap"] = "Minimapa"
L["MirrorTimer"] = true L["MirrorTimer"] = true
L["MT Frames"] = "Quadro do Tank Principal" L["MT Frames"] = "Quadro do Tank Principal"
L["Party Frames"] = "Quadros de Grupo" L["Party Frames"] = "Quadros de Grupo"
-1
View File
@@ -227,7 +227,6 @@ L["Loot / Alert Frames"] = "Розыгрыш/оповещения"
L["Loot Frame"] = "Окно добычи" L["Loot Frame"] = "Окно добычи"
L["MA Frames"] = "Помощники" L["MA Frames"] = "Помощники"
L["Micro Bar"] = "Микроменю" --Also in ActionBars L["Micro Bar"] = "Микроменю" --Also in ActionBars
L["Minimap"] = "Миникарта"
L["MirrorTimer"] = "Таймер" L["MirrorTimer"] = "Таймер"
L["MT Frames"] = "Танки" L["MT Frames"] = "Танки"
L["Party Frames"] = "Группа" --Also used in UnitFrames 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["Loot Frame"] = "Marco de Botín"
L["MA Frames"] = "Marcos de AP" L["MA Frames"] = "Marcos de AP"
L["Micro Bar"] = "Micro Barra" L["Micro Bar"] = "Micro Barra"
L["Minimap"] = "Minimapa"
L["MirrorTimer"] = true L["MirrorTimer"] = true
L["MT Frames"] = "Marcos de TP" L["MT Frames"] = "Marcos de TP"
L["Party Frames"] = "Marco de Grupo" L["Party Frames"] = "Marco de Grupo"
-1
View File
@@ -227,7 +227,6 @@ L["Loot / Alert Frames"] = "拾取 / 提醒框架"
L["Loot Frame"] = "拾取框架" L["Loot Frame"] = "拾取框架"
L["MA Frames"] = "主助理框架" L["MA Frames"] = "主助理框架"
L["Micro Bar"] = "微型系統菜單" --Also in ActionBars L["Micro Bar"] = "微型系統菜單" --Also in ActionBars
L["Minimap"] = "小地圖"
L["MirrorTimer"] = "鏡像計時器" L["MirrorTimer"] = "鏡像計時器"
L["MT Frames"] = "主坦克框架" L["MT Frames"] = "主坦克框架"
L["Party Frames"] = "隊伍框架" --Also used in UnitFrames L["Party Frames"] = "隊伍框架" --Also used in UnitFrames
+1 -1
View File
@@ -4,7 +4,7 @@ local DT = E:GetModule("DataTexts");
--Cache global variables --Cache global variables
--Lua functions --Lua functions
local _G = _G local _G = _G
local pairs, ipairs = pairs, ipairs local pairs = pairs
local format, join, upper = string.format, string.join, string.upper local format, join, upper = string.format, string.join, string.upper
--WoW API / Variables --WoW API / Variables
local GetInventoryItemDurability = GetInventoryItemDurability local GetInventoryItemDurability = GetInventoryItemDurability
+1 -1
View File
@@ -314,7 +314,7 @@ function M:Initialize()
MiniMapBattlefieldBorder:Hide() MiniMapBattlefieldBorder:Hide()
E:CreateMover(MMHolder, "MinimapMover", L["Minimap"], nil, nil, MinimapPostDrag) E:CreateMover(MMHolder, "MinimapMover", MINIMAP_LABEL, nil, nil, MinimapPostDrag)
Minimap:EnableMouseWheel(true) Minimap:EnableMouseWheel(true)
Minimap:SetScript("OnMouseWheel", M.Minimap_OnMouseWheel) Minimap:SetScript("OnMouseWheel", M.Minimap_OnMouseWheel)
+27 -7
View File
@@ -23,7 +23,6 @@ local MoveViewLeftStop = MoveViewLeftStop
local Screenshot = Screenshot local Screenshot = Screenshot
local UnitAffectingCombat = UnitAffectingCombat local UnitAffectingCombat = UnitAffectingCombat
local CUSTOM_CLASS_COLORS = CUSTOM_CLASS_COLORS
local MAX_BATTLEFIELD_QUEUES = MAX_BATTLEFIELD_QUEUES local MAX_BATTLEFIELD_QUEUES = MAX_BATTLEFIELD_QUEUES
local RAID_CLASS_COLORS = RAID_CLASS_COLORS local RAID_CLASS_COLORS = RAID_CLASS_COLORS
@@ -39,7 +38,7 @@ local printKeys = {
["PRINTSCREEN"] = true, ["PRINTSCREEN"] = true,
} }
if IsMacClient() then if E.isMacClient then
printKeys[_G["KEY_PRINTSCREEN_MAC"]] = true printKeys[_G["KEY_PRINTSCREEN_MAC"]] = true
end end
@@ -241,6 +240,29 @@ local function Chat_OnMouseWheel()
end end
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() function AFK:Initialize()
if E.global.afkEnabled then if E.global.afkEnabled then
SetCVar("cameraYawMoveSpeed", E.global.afkCameraSpeedYaw) 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("OnDragStart", self.AFKMode.chat.StartMoving)
self.AFKMode.chat:SetScript("OnDragStop", self.AFKMode.chat.StopMovingOrSizing) self.AFKMode.chat:SetScript("OnDragStop", self.AFKMode.chat.StopMovingOrSizing)
self.AFKMode.chat:SetScript("OnMouseWheel", Chat_OnMouseWheel) self.AFKMode.chat:SetScript("OnMouseWheel", Chat_OnMouseWheel)
self.AFKMode.chat:SetScript("OnEvent", function() self.AFKMode.chat:SetScript("OnEvent", Chat_OnEvent)
CH:ChatFrame_OnEvent(this, event, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10)
end)
self.AFKMode.bottom = CreateFrame("Frame", nil, self.AFKMode) self.AFKMode.bottom = CreateFrame("Frame", nil, self.AFKMode)
self.AFKMode.bottom:SetFrameLevel(0) self.AFKMode.bottom:SetFrameLevel(0)
@@ -287,11 +307,11 @@ function AFK:Initialize()
self.AFKMode.bottom.logo = self.AFKMode:CreateTexture(nil, "OVERLAY") self.AFKMode.bottom.logo = self.AFKMode:CreateTexture(nil, "OVERLAY")
E:Size(self.AFKMode.bottom.logo, 320, 150) E:Size(self.AFKMode.bottom.logo, 320, 150)
E:Point(self.AFKMode.bottom.logo, "CENTER", self.AFKMode.bottom, "CENTER", 0, 50) 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") self.AFKMode.bottom.faction = self.AFKMode.bottom:CreateTexture(nil, "OVERLAY")
E:Point(self.AFKMode.bottom.faction, "BOTTOMLEFT", self.AFKMode.bottom, "BOTTOMLEFT", -20, -16) 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) E:Size(self.AFKMode.bottom.faction, 140)
self.AFKMode.bottom.name = self.AFKMode.bottom:CreateFontString(nil, "OVERLAY") 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}, ["backdropfadecolor"] = {r = .06, g = .06, b = .06, a = 0.8},
["valuecolor"] = {r = 254/255, g = 123/255, b = 44/255}, ["valuecolor"] = {r = 254/255, g = 123/255, b = 44/255},
["cropIcon"] = true,
["classCacheStoreInDB"] = true, ["classCacheStoreInDB"] = true,
["classCacheRequestInfo"] = false, ["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."], 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, disabled = function() return (not E.private.actionbar.enable or not E.db.actionbar.lockActionBars) end,
values = { values = {
["NONE"] = NONE, ["NONE"] = L["None"],
["SHIFT"] = "SHIFT_KEY", ["SHIFT"] = "SHIFT_KEY",
["ALT"] = "ALT_KEY", ["ALT"] = "ALT_KEY",
["CTRL"] = "CTRL_KEY" ["CTRL"] = "CTRL_KEY"
@@ -175,7 +175,7 @@ local function BuildABConfig()
name = L["Font Outline"], name = L["Font Outline"],
desc = L["Set the font outline."], desc = L["Set the font outline."],
values = { values = {
["NONE"] = NONE, ["NONE"] = L["None"],
["OUTLINE"] = "OUTLINE", ["OUTLINE"] = "OUTLINE",
["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE", ["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE",
["THICKOUTLINE"] = "THICKOUTLINE" ["THICKOUTLINE"] = "THICKOUTLINE"
+1 -1
View File
@@ -167,7 +167,7 @@ E.Options.args.auras = {
desc = L["Set the font outline."], desc = L["Set the font outline."],
type = "select", type = "select",
values = { values = {
["NONE"] = NONE, ["NONE"] = L["None"],
["OUTLINE"] = "OUTLINE", ["OUTLINE"] = "OUTLINE",
["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE", ["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE",
["THICKOUTLINE"] = "THICKOUTLINE" ["THICKOUTLINE"] = "THICKOUTLINE"
+2 -2
View File
@@ -129,7 +129,7 @@ E.Options.args.bags = {
name = L["Font Outline"], name = L["Font Outline"],
set = function(info, value) E.db.bags.countFontOutline = value B:UpdateCountDisplay() end, set = function(info, value) E.db.bags.countFontOutline = value B:UpdateCountDisplay() end,
values = { values = {
["NONE"] = NONE, ["NONE"] = L["None"],
["OUTLINE"] = "OUTLINE", ["OUTLINE"] = "OUTLINE",
["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE", ["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE",
["THICKOUTLINE"] = "THICKOUTLINE" ["THICKOUTLINE"] = "THICKOUTLINE"
@@ -225,7 +225,7 @@ E.Options.args.bags = {
disabled = function() return not E.db.bags.itemLevel end, disabled = function() return not E.db.bags.itemLevel end,
set = function(info, value) E.db.bags.itemLevelFontOutline = value B:UpdateItemLevelDisplay() end, set = function(info, value) E.db.bags.itemLevelFontOutline = value B:UpdateItemLevelDisplay() end,
values = { values = {
["NONE"] = NONE, ["NONE"] = L["None"],
["OUTLINE"] = "OUTLINE", ["OUTLINE"] = "OUTLINE",
["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE", ["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE",
["THICKOUTLINE"] = "THICKOUTLINE" ["THICKOUTLINE"] = "THICKOUTLINE"
+3 -3
View File
@@ -170,7 +170,7 @@ E.Options.args.chat = {
name = L["Chat Timestamps"], name = L["Chat Timestamps"],
desc = "OPTION_TOOLTIP_TIMESTAMPS", desc = "OPTION_TOOLTIP_TIMESTAMPS",
values = { values = {
["NONE"] = NONE, ["NONE"] = L["None"],
["%I:%M "] = "03:27", ["%I:%M "] = "03:27",
["%I:%M:%S "] = "03:27:32", ["%I:%M:%S "] = "03:27:32",
["%I:%M %p "] = "03:27 PM", ["%I:%M %p "] = "03:27 PM",
@@ -415,7 +415,7 @@ E.Options.args.chat = {
desc = L["Set the font outline."], desc = L["Set the font outline."],
type = "select", type = "select",
values = { values = {
["NONE"] = NONE, ["NONE"] = L["None"],
["OUTLINE"] = "OUTLINE", ["OUTLINE"] = "OUTLINE",
["MONOCHROMEOUTLINE"] = "MONOCHROMEOUTLINE", ["MONOCHROMEOUTLINE"] = "MONOCHROMEOUTLINE",
["THICKOUTLINE"] = "THICKOUTLINE" ["THICKOUTLINE"] = "THICKOUTLINE"
@@ -439,7 +439,7 @@ E.Options.args.chat = {
desc = L["Set the font outline."], desc = L["Set the font outline."],
type = "select", type = "select",
values = { values = {
["NONE"] = NONE, ["NONE"] = L["None"],
["OUTLINE"] = "OUTLINE", ["OUTLINE"] = "OUTLINE",
["MONOCHROMEOUTLINE"] = "MONOCHROMEOUTLINE", ["MONOCHROMEOUTLINE"] = "MONOCHROMEOUTLINE",
["THICKOUTLINE"] = "THICKOUTLINE" ["THICKOUTLINE"] = "THICKOUTLINE"
+27 -33
View File
@@ -23,7 +23,7 @@ local AC = LibStub("AceConfig-3.0")
local ACD = LibStub("AceConfigDialog-3.0") local ACD = LibStub("AceConfigDialog-3.0")
local ACR = LibStub("AceConfigRegistry-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) ACD:SetDefaultSize("ElvUI", DEFAULT_WIDTH, DEFAULT_HEIGHT)
function E:RefreshGUI() function E:RefreshGUI()
@@ -35,7 +35,7 @@ E.Options.args = {
ElvUI_Header = { ElvUI_Header = {
order = 1, order = 1,
type = "header", type = "header",
name = L["Version"] .. format(": |cff99ff33%s|r", E.version), name = L["Version"]..format(": |cff99ff33%s|r", E.version),
width = "full" width = "full"
}, },
LoginMessage = { LoginMessage = {
@@ -125,19 +125,22 @@ local DEVELOPERS = {
"Haste", "Haste",
"Nightcracker", "Nightcracker",
"Omega1970", "Omega1970",
"Hydrazine" "Hydrazine",
"Blazeflack",
"|cffff7d0aMerathilis|r",
"|cFF8866ccSimpy|r"
} }
local TESTERS = { local TESTERS = {
"Tukui Community", "Tukui Community",
"|cffF76ADBSarah|r - For Sarahing", "|cffF76ADBSarah|r - For Sarahing",
"Affinity", "Affinity",
"Azilroka",
"Modarch", "Modarch",
"Bladesdruid", "Bladesdruid",
"Tirain", "Tirain",
"Phima", "Phima",
"Veiled", "Veiled",
"Blazeflack",
"Repooc", "Repooc",
"Darth Predator", "Darth Predator",
"Alex", "Alex",
@@ -174,7 +177,7 @@ E.Options.args.credits = {
text = { text = {
order = 1, order = 1,
type = "description", 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!"]) label1:SetText(L["Error exporting profile!"])
else else
label1:SetText(format("%s: %s%s|r", L["Exported"], E.media.hexvaluecolor, profileTypeItems[profileType])) 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)) label2:SetText(format("%s: %s%s|r", L["Profile Name"], E.media.hexvaluecolor, profileKey))
end end
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("OnChar", function() box:SetText(exportString) box.editBox:HighlightText() end)
box.editBox:SetScript("OnTextChanged", function() box.editBox:SetScript("OnTextChanged", function()
if this then box:SetText(exportString)
box:SetText(exportString) box.editBox:HighlightText()
this:HighlightText()
end
box.scrollFrame:UpdateScrollChildRect() box.scrollFrame:UpdateScrollChildRect()
box.scrollFrame:SetVerticalScroll(box.scrollFrame:GetVerticalScrollRange())
end) end)
elseif mode == "import" then elseif mode == "import" then
frame:SetTitle(L["Import Profile"]) frame:SetTitle(L["Import Profile"])
local importButton = AceGUI:Create("Button") local importButton = AceGUI:Create("Button-ElvUI")
importButton:SetDisabled(true) importButton:SetDisabled(true)
importButton:SetText(L["Import Now"]) importButton:SetText(L["Import Now"])
importButton:SetAutoWidth(true) importButton:SetAutoWidth(true)
@@ -317,7 +317,7 @@ local function ExportImport_Open(mode)
end) end)
frame:AddChild(importButton) frame:AddChild(importButton)
local decodeButton = AceGUI:Create("Button") local decodeButton = AceGUI:Create("Button-ElvUI")
decodeButton:SetDisabled(true) decodeButton:SetDisabled(true)
decodeButton:SetText(L["Decode Text"]) decodeButton:SetText(L["Decode Text"])
decodeButton:SetAutoWidth(true) decodeButton:SetAutoWidth(true)
@@ -398,14 +398,14 @@ local function ExportImport_Open(mode)
end end
E.Options.args.profiles = LibStub("AceDBOptions-3.0"):GetOptionsTable(E.data) 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 E.Options.args.profiles.order = -10
if not E.Options.args.profiles.plugins then if not E.Options.args.profiles.plugins then
E.Options.args.profiles.plugins = {} E.Options.args.profiles.plugins = {}
end end
E.Options.args.profiles.plugins["ElvUI"] = { E.Options.args.profiles.plugins.ElvUI = {
spacer = { spacer = {
order = 89, order = 89,
type = "description", type = "description",
@@ -418,27 +418,24 @@ E.Options.args.profiles.plugins["ElvUI"] = {
}, },
distributeProfile = { distributeProfile = {
order = 91, order = 91,
type = "execute",
name = L["Share Current Profile"], name = L["Share Current Profile"],
desc = L["Sends your current profile to your target."], desc = L["Sends your current profile to your target."],
type = "execute",
func = function() func = function()
if (GetNumPartyMembers() <= 0 or GetNumPartyMembers() <= 0) then if (GetNumPartyMembers() <= 0 or GetNumPartyMembers() <= 0) then
E:Print(L["You must be in a group."]) E:Print(L["You must be in a group."])
return return
end 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 if not (UnitInParty("target") or UnitInRaid("target")) then
E:Print(L["You must be targeting a player within your group."]) E:Print(L["You must be targeting a player within your group."])
return return
end 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") local name, server = UnitName("target")
if name and not server or server == "" then if name and (not server or server == "") then
D:Distribute(name) D:Distribute(name)
elseif server then elseif server then
D:Distribute(name, true) D:Distribute(name, true)
@@ -455,24 +452,21 @@ E.Options.args.profiles.plugins["ElvUI"] = {
E:Print(L["You must be in a group."]) E:Print(L["You must be in a group."])
return return
end 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 if not (UnitInParty("target") or UnitInRaid("target")) then
E:Print(L["You must be targeting a player within your group."]) E:Print(L["You must be targeting a player within your group."])
return return
end 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") 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) D:Distribute(name, false, true)
elseif server then elseif server then
D:Distribute(name, true, true) D:Distribute(name, true, true)
end end
end, end
}, },
spacer2 = { spacer2 = {
order = 93, order = 93,
+6 -6
View File
@@ -25,7 +25,7 @@ E.Options.args.databars = {
get = function(info) return mod.db.experience[ info[getn(info)] ] end, 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, set = function(info, value) mod.db.experience[ info[getn(info)] ] = value; mod:UpdateExperienceDimensions() end,
type = "group", type = "group",
name = XPBAR_LABEL, name = L["XP Bar"],
args = { args = {
enable = { enable = {
order = 0, order = 0,
@@ -74,7 +74,7 @@ E.Options.args.databars = {
}, },
textSize = { textSize = {
order = 7, order = 7,
name = FONT_SIZE, name = L["Font Size"],
type = "range", type = "range",
min = 6, max = 33, step = 1 min = 6, max = 33, step = 1
}, },
@@ -83,7 +83,7 @@ E.Options.args.databars = {
type = "select", type = "select",
name = L["Font Outline"], name = L["Font Outline"],
values = { values = {
["NONE"] = NONE, ["NONE"] = L["None"],
["OUTLINE"] = "OUTLINE", ["OUTLINE"] = "OUTLINE",
["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE", ["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE",
["THICKOUTLINE"] = "THICKOUTLINE" ["THICKOUTLINE"] = "THICKOUTLINE"
@@ -95,7 +95,7 @@ E.Options.args.databars = {
name = L["Text Format"], name = L["Text Format"],
width = "double", width = "double",
values = { values = {
NONE = NONE, NONE = L["None"],
PERCENT = L["Percent"], PERCENT = L["Percent"],
CUR = L["Current"], CUR = L["Current"],
REM = L["Remaining"], REM = L["Remaining"],
@@ -170,7 +170,7 @@ E.Options.args.databars = {
type = "select", type = "select",
name = L["Font Outline"], name = L["Font Outline"],
values = { values = {
["NONE"] = NONE, ["NONE"] = L["None"],
["OUTLINE"] = "OUTLINE", ["OUTLINE"] = "OUTLINE",
["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE", ["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE",
["THICKOUTLINE"] = "THICKOUTLINE" ["THICKOUTLINE"] = "THICKOUTLINE"
@@ -182,7 +182,7 @@ E.Options.args.databars = {
name = L["Text Format"], name = L["Text Format"],
width = "double", width = "double",
values = { values = {
NONE = NONE, NONE = L["None"],
CUR = L["Current"], CUR = L["Current"],
REM = L["Remaining"], REM = L["Remaining"],
PERCENT = L["Percent"], PERCENT = L["Percent"],
+223 -162
View File
@@ -7,9 +7,8 @@ local _G = _G
local getn = table.getn local getn = table.getn
--WoW API / Variables --WoW API / Variables
local FCF_GetNumActiveChatFrames = FCF_GetNumActiveChatFrames local FCF_GetNumActiveChatFrames = FCF_GetNumActiveChatFrames
local NONE, FONT_SIZE, COLOR, DISABLE = NONE, FONT_SIZE, COLOR, DISABLE
local PLAYER, LOOT = PLAYER, LOOT _G.GetLocale = function() return GAME_LOCALE end
local SAY, CHAT_MSG_EMOTE = SAY, CHAT_MSG_EMOTE
local function GetChatWindowInfo() local function GetChatWindowInfo()
local ChatTabInfo = {} local ChatTabInfo = {}
@@ -23,48 +22,27 @@ local function GetChatWindowInfo()
end end
E.Options.args.general = { E.Options.args.general = {
type = "group",
name = GENERAL,
order = 1, order = 1,
type = "group",
name = L["General"],
childGroups = "tab", childGroups = "tab",
get = function(info) return E.db.general[ info[getn(info)] ] end, get = function(info) return E.db.general[ info[getn(info)] ] end,
set = function(info, value) E.db.general[ info[getn(info)] ] = value end, set = function(info, value) E.db.general[ info[getn(info)] ] = value end,
args = { 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 = { intro = {
order = 3, order = 1,
type = "description", type = "description",
name = L["ELVUI_DESC"], name = L["ELVUI_DESC"],
}, },
general = { general = {
order = 4, order = 2,
type = "group", type = "group",
name = GENERAL, name = L["General"],
args = { args = {
generalHeader = { generalHeader = {
order = 1, order = 1,
type = "header", type = "header",
name = GENERAL, name = L["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
}, },
messageRedirect = { messageRedirect = {
order = 2, order = 2,
@@ -79,12 +57,12 @@ E.Options.args.general = {
name = L["Announce Interrupts"], name = L["Announce Interrupts"],
desc = L["Announce when you interrupt a spell to the specified chat channel."], desc = L["Announce when you interrupt a spell to the specified chat channel."],
values = { values = {
["NONE"] = NONE, ["NONE"] = L["None"],
["SAY"] = SAY, ["SAY"] = L["Say"],
["PARTY"] = L["Party Only"], ["PARTY"] = L["Party Only"],
["RAID"] = L["Party / Raid"], ["RAID"] = L["Party / Raid"],
["RAID_ONLY"] = L["Raid Only"], ["RAID_ONLY"] = L["Raid Only"],
["EMOTE"] = CHAT_MSG_EMOTE ["EMOTE"] = L["Emote"]
} }
}, },
autoRepair = { autoRepair = {
@@ -93,33 +71,42 @@ E.Options.args.general = {
name = L["Auto Repair"], name = L["Auto Repair"],
desc = L["Automatically repair using the following method when visiting a merchant."], desc = L["Automatically repair using the following method when visiting a merchant."],
values = { values = {
["NONE"] = NONE, ["NONE"] = L["None"],
["PLAYER"] = PLAYER ["GUILD"] = L["Guild"],
["PLAYER"] = L["Player"]
} }
}, },
autoAcceptInvite = { pixelPerfect = {
order = 5, order = 5,
type = "toggle", 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"], name = L["Accept Invites"],
desc = L["Automatically accept invites from guild/friends."] desc = L["Automatically accept invites from guild/friends."]
}, },
autoRoll = { autoRoll = {
order = 6, order = 7,
type = "toggle", type = "toggle",
name = L["Auto Greed/DE"], name = L["Auto Greed"],
desc = L["Automatically select greed or disenchant (when available) on green quality items. This will only work if you are the max level."], 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 disabled = function() return not E.private.general.lootRoll end
}, },
loot = { loot = {
order = 7, order = 8,
type = "toggle", type = "toggle",
name = LOOT, name = L["Loot"],
desc = L["Enable/Disable the loot frame."], desc = L["Enable/Disable the loot frame."],
get = function(info) return E.private.general.loot end, get = function(info) return E.private.general.loot end,
set = function(info, value) E.private.general.loot = value E:StaticPopup_Show("PRIVATE_RL") end set = function(info, value) E.private.general.loot = value E:StaticPopup_Show("PRIVATE_RL") end
}, },
lootRoll = { lootRoll = {
order = 8, order = 9,
type = "toggle", type = "toggle",
name = L["Loot Roll"], name = L["Loot Roll"],
desc = L["Enable/Disable the loot roll frame."], 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 set = function(info, value) E.private.general.lootRoll = value E:StaticPopup_Show("PRIVATE_RL") end
}, },
lootUnderMouse = { lootUnderMouse = {
order = 9, order = 10,
type = "toggle", type = "toggle",
name = L["Loot Under Mouse"], name = L["Loot Under Mouse"],
desc = L["Enable/Disable loot frame under the mouse cursor."], 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 disabled = function() return not E.private.general.loot end
}, },
eyefinity = { eyefinity = {
order = 10, order = 11,
type = "toggle",
name = L["Multi-Monitor Support"], name = L["Multi-Monitor Support"],
desc = L["Attempt to support eyefinity/nvidia surround."], desc = L["Attempt to support eyefinity/nvidia surround."],
type = "toggle",
get = function(info) return E.global.general.eyefinity end, 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 set = function(info, value) E.global.general[ info[getn(info)] ] = value E:StaticPopup_Show("GLOBAL_RL") end
}, },
hideErrorFrame = { hideErrorFrame = {
order = 11, order = 12,
type = "toggle", type = "toggle",
name = L["Hide Error Text"], name = L["Hide Error Text"],
desc = L["Hides the red error text at the top of the screen while in combat."] desc = L["Hides the red error text at the top of the screen while in combat."]
}, },
bottomPanel = { bottomPanel = {
order = 12, order = 13,
type = "toggle", type = "toggle",
name = L["Bottom Panel"], name = L["Bottom Panel"],
desc = L["Display a panel across the bottom of the screen. This is for cosmetic only."], 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 set = function(info, value) E.db.general.bottomPanel = value E:GetModule("Layout"):BottomPanelVisibility() end
}, },
topPanel = { topPanel = {
order = 13, order = 14,
type = "toggle", type = "toggle",
name = L["Top Panel"], name = L["Top Panel"],
desc = L["Display a panel across the top of the screen. This is for cosmetic only."], 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 set = function(info, value) E.db.general.topPanel = value E:GetModule("Layout"):TopPanelVisibility() end
}, },
afk = { afk = {
order = 14, order = 15,
type = "toggle", type = "toggle",
name = L["AFK Mode"], name = L["AFK Mode"],
desc = L["When you go AFK display the AFK screen."], 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 set = function(info, value) E.db.general.afk = value E:GetModule("AFK"):Toggle() end
}, },
enhancedPvpMessages = { enhancedPvpMessages = {
order = 15, order = 16,
type = "toggle", type = "toggle",
name = L["Enhanced PVP Messages"], name = L["Enhanced PVP Messages"],
desc = L["Display battleground messages in the middle of the screen."], desc = L["Display battleground messages in the middle of the screen."],
@@ -189,24 +176,39 @@ E.Options.args.general = {
}, },
autoScale = { autoScale = {
order = 17, order = 17,
type = "toggle",
name = L["Auto Scale"], name = L["Auto Scale"],
desc = L["Automatically scale the User Interface based on your screen resolution"], desc = L["Automatically scale the User Interface based on your screen resolution"],
type = "toggle",
get = function(info) return E.global.general.autoScale end, 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 set = function(info, value) E.global.general[ info[getn(info)] ] = value E:StaticPopup_Show("GLOBAL_RL") end
}, },
minUiScale = { minUiScale = {
order = 18, order = 18,
type = "description",
name = ""
},
minUiScale = {
order = 19,
type = "range", type = "range",
name = L["Lowest Allowed UI Scale"], name = L["Lowest Allowed UI Scale"],
min = 0.32, max = 0.64, step = 0.01, min = 0.32, max = 0.64, step = 0.01,
get = function(info) return E.global.general.minUiScale end, get = function(info) return E.global.general.minUiScale end,
set = function(info, value) E.global.general.minUiScale = value E:StaticPopup_Show("GLOBAL_RL") 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 = { numberPrefixStyle = {
order = 19, order = 21,
type = "select", 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, get = function(info) return E.db.general.numberPrefixStyle end,
set = function(info, value) E.db.general.numberPrefixStyle = value E:StaticPopup_Show("CONFIG_RL") end, set = function(info, value) E.db.general.numberPrefixStyle = value E:StaticPopup_Show("CONFIG_RL") end,
values = { values = {
@@ -217,19 +219,29 @@ E.Options.args.general = {
["GERMAN"] = "German (Tsd, Mio, Mrd)" ["GERMAN"] = "German (Tsd, Mio, Mrd)"
} }
}, },
decimalLength = { GameLocale = {
order = 20, order = 22,
type = "range", type = "select",
name = L["Decimal Length"], name = L["Change Language"],
desc = L["Controls the amount of decimals used in values displayed on elements like NamePlates and UnitFrames."], desc = L["Change the ElvUI option to a different language."],
min = 0, max = 4, step = 1, get = function(info) return GAME_LOCALE end,
get = function(info) return E.db.general.decimalLength end, set = function(info, value) GAME_LOCALE = value E:StaticPopup_Show("PRIVATE_RL") end,
set = function(info, value) E.db.general.decimalLength = value E:StaticPopup_Show("GLOBAL_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 = { media = {
order = 5, order = 3,
type = "group", type = "group",
name = L["Media"], name = L["Media"],
get = function(info) return E.db.general[ info[getn(info)] ] end, get = function(info) return E.db.general[ info[getn(info)] ] end,
@@ -240,31 +252,43 @@ E.Options.args.general = {
type = "header", type = "header",
name = L["Fonts"] 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 = { font = {
order = 3, order = 2,
type = "select", dialogControl = "LSM30_Font", type = "select", dialogControl = "LSM30_Font",
name = L["Default Font"], name = L["Default Font"],
desc = L["The font that the core of the UI will use."], desc = L["The font that the core of the UI will use."],
values = AceGUIWidgetLSMlists.font, values = AceGUIWidgetLSMlists.font,
set = function(info, value) E.db.general[ info[getn(info)] ] = value E:UpdateMedia() E:UpdateFontTemplates() end, 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, 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", type = "execute",
name = L["Apply Font To All"], 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."], 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 func = function() E:StaticPopup_Show("APPLY_FONT_WARNING") end
}, },
dmgfont = { dmgfont = {
order = 5, order = 6,
type = "select", dialogControl = "LSM30_Font", type = "select", dialogControl = "LSM30_Font",
name = L["CombatText 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"], 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 set = function(info, value) E.private.general[ info[getn(info)] ] = value E:UpdateMedia() E:UpdateFontTemplates() E:StaticPopup_Show("PRIVATE_RL") end
}, },
namefont = { namefont = {
order = 6, order = 7,
type = "select", dialogControl = "LSM30_Font", type = "select", dialogControl = "LSM30_Font",
name = L["Name 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"], 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 set = function(info, value) E.private.general[ info[getn(info)] ] = value E:UpdateMedia() E:UpdateFontTemplates() E:StaticPopup_Show("PRIVATE_RL") end
}, },
replaceBlizzFonts = { replaceBlizzFonts = {
order = 7, order = 8,
type = "toggle", type = "toggle",
name = L["Replace Blizzard Fonts"], 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."], 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 set = function(info, value) E.private.general[ info[getn(info)] ] = value E:StaticPopup_Show("PRIVATE_RL") end
}, },
texturesHeaderSpacing = { texturesHeaderSpacing = {
order = 8, order = 9,
type = "description", type = "description",
name = " " name = " "
}, },
texturesHeader = { texturesHeader = {
order = 9, order = 10,
type = "header", type = "header",
name = L["Textures"] name = L["Textures"]
}, },
normTex = { normTex = {
order = 10, order = 11,
type = "select", dialogControl = "LSM30_Statusbar", type = "select", dialogControl = "LSM30_Statusbar",
name = L["Primary Texture"], name = L["Primary Texture"],
desc = L["The texture that will be used mainly for statusbars."], desc = L["The texture that will be used mainly for statusbars."],
@@ -320,7 +344,7 @@ E.Options.args.general = {
end end
}, },
glossTex = { glossTex = {
order = 11, order = 12,
type = "select", dialogControl = "LSM30_Statusbar", type = "select", dialogControl = "LSM30_Statusbar",
name = L["Secondary Texture"], name = L["Secondary Texture"],
desc = L["This texture will get used on objects like chat windows and dropdown menus."], desc = L["This texture will get used on objects like chat windows and dropdown menus."],
@@ -333,7 +357,7 @@ E.Options.args.general = {
end end
}, },
applyTextureToAll = { applyTextureToAll = {
order = 12, order = 13,
type = "execute", type = "execute",
name = L["Apply Texture To All"], name = L["Apply Texture To All"],
desc = L["Applies the primary texture to all statusbars."], desc = L["Applies the primary texture to all statusbars."],
@@ -343,19 +367,27 @@ E.Options.args.general = {
E:UpdateAll(true) E:UpdateAll(true)
end 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 = { colorsHeaderSpacing = {
order = 13, order = 15,
type = "description", type = "description",
name = " " name = " "
}, },
colorsHeader = { colorsHeader = {
order = 14, order = 16,
type = "header", type = "header",
name = COLOR name = L["Colors"]
}, },
bordercolor = { bordercolor = {
order = 17,
type = "color", type = "color",
order = 15,
name = L["Border Color"], name = L["Border Color"],
desc = L["Main border color of the UI."], desc = L["Main border color of the UI."],
hasAlpha = false, hasAlpha = false,
@@ -372,8 +404,8 @@ E.Options.args.general = {
end, end,
}, },
backdropcolor = { backdropcolor = {
order = 18,
type = "color", type = "color",
order = 32,
name = L["Backdrop Color"], name = L["Backdrop Color"],
desc = L["Main backdrop color of the UI."], desc = L["Main backdrop color of the UI."],
hasAlpha = false, hasAlpha = false,
@@ -390,8 +422,8 @@ E.Options.args.general = {
end end
}, },
backdropfadecolor = { backdropfadecolor = {
order = 19,
type = "color", type = "color",
order = 33,
name = L["Backdrop Faded Color"], name = L["Backdrop Faded Color"],
desc = L["Backdrop color of transparent frames"], desc = L["Backdrop color of transparent frames"],
hasAlpha = true, hasAlpha = true,
@@ -409,8 +441,8 @@ E.Options.args.general = {
end end
}, },
valuecolor = { valuecolor = {
order = 20,
type = "color", type = "color",
order = 34,
name = L["Value Color"], name = L["Value Color"],
desc = L["Color some texts use."], desc = L["Color some texts use."],
hasAlpha = false, hasAlpha = false,
@@ -429,7 +461,7 @@ E.Options.args.general = {
} }
}, },
classCache = { classCache = {
order = 6, order = 4,
type = "group", type = "group",
name = L["Class Cache"], name = L["Class Cache"],
args = { args = {
@@ -449,20 +481,8 @@ E.Options.args.general = {
CC:ToggleModule() CC:ToggleModule()
end 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 = { classCacheRequestInfo = {
order = 4, order = 3,
type = "toggle", type = "toggle",
name = L["Request info for class cache"], name = L["Request info for class cache"],
desc = L["Use LibWho to cache class info"], desc = L["Use LibWho to cache class info"],
@@ -472,41 +492,61 @@ E.Options.args.general = {
end, end,
disabled = function() return not E.private.general.classCache end disabled = function() return not E.private.general.classCache end
}, },
wipeClassCacheGlobal = { cache = {
order = 5, order = 4,
type = "execute", type = "group",
name = L["Wipe DB Cache"], name = L["Cache"],
buttonElvUI = true, guiInline = true,
func = function() args = {
CC:WipeCache(true) classCacheStoreInDB = {
GameTooltip:Hide() order = 1,
end, type = "toggle",
disabled = function() return not CC:GetCacheSize(true) end 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."],
wipeClassCacheLocal = { get = function(info) return E.db.general.classCacheStoreInDB end,
order = 6, set = function(info, value)
type = "execute", E.db.general.classCacheStoreInDB = value
name = L["Wipe Session Cache"], CC:SwitchCacheType()
buttonElvUI = true, end,
func = function() disabled = function() return not E.private.general.classCache end
CC:WipeCache() },
GameTooltip:Hide() wipeClassCacheGlobal = {
end, order = 2,
disabled = function() return not CC:GetCacheSize() end 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 = { --[[totems = {
order = 7, order = 5,
type = "group", type = "group",
name = TUTORIAL_TITLE47, name = L["Totem Bar"],
get = function(info) return E.db.general.totems[ info[getn(info)] ] end, 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, set = function(info, value) E.db.general.totems[ info[getn(info)] ] = value E:GetModule("Totems"):PositionAndSize() end,
args = { args = {
header = { header = {
order = 1, order = 1,
type = "header", type = "header",
name = TUTORIAL_TITLE47 name = L["Totem Bar"]
}, },
enable = { enable = {
order = 2, order = 2,
@@ -619,7 +659,7 @@ E.Options.args.general = {
} }
}, },
chatBubbles = { chatBubbles = {
order = 9, order = 6,
type = "group", type = "group",
name = L["Chat Bubbles"], name = L["Chat Bubbles"],
args = { args = {
@@ -639,7 +679,7 @@ E.Options.args.general = {
["backdrop"] = L["Skin Backdrop"], ["backdrop"] = L["Skin Backdrop"],
["nobackdrop"] = L["Remove Backdrop"], ["nobackdrop"] = L["Remove Backdrop"],
["backdrop_noborder"] = L["Skin Backdrop (No Borders)"], ["backdrop_noborder"] = L["Skin Backdrop (No Borders)"],
["disabled"] = DISABLE ["disabled"] = L["Disable"]
} }
}, },
name = { name = {
@@ -654,7 +694,7 @@ E.Options.args.general = {
spacer = { spacer = {
order = 4, order = 4,
type = "description", type = "description",
name = " ", name = ""
}, },
font = { font = {
order = 5, order = 5,
@@ -669,7 +709,7 @@ E.Options.args.general = {
fontSize = { fontSize = {
order = 6, order = 6,
type = "range", type = "range",
name = FONT_SIZE, name = L["Font Size"],
get = function(info) return E.private.general.chatBubbleFontSize end, get = function(info) return E.private.general.chatBubbleFontSize end,
set = function(info, value) E.private.general.chatBubbleFontSize = value E:StaticPopup_Show("PRIVATE_RL") end, set = function(info, value) E.private.general.chatBubbleFontSize = value E:StaticPopup_Show("PRIVATE_RL") end,
min = 4, max = 33, step = 1, 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, set = function(info, value) E.private.general.chatBubbleFontOutline = value E:StaticPopup_Show("PRIVATE_RL") end,
disabled = function() return E.private.general.chatBubbles == "disabled" end, disabled = function() return E.private.general.chatBubbles == "disabled" end,
values = { values = {
["NONE"] = NONE, ["NONE"] = L["None"],
["OUTLINE"] = "OUTLINE", ["OUTLINE"] = "OUTLINE",
["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE", ["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE",
["THICKOUTLINE"] = "THICKOUTLINE", ["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 = { --[[threatGroup = {
order = 11, order = 7,
type = "group", type = "group",
name = L["Threat"], name = L["Threat"],
args = { args = {
threatHeader = { threatHeader = {
order = 40, order = 1,
type = "header", type = "header",
name = L["Threat"] 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 = { threatEnable = {
order = 41, order = 3,
type = "toggle", type = "toggle",
name = L["Enable"], name = L["Enable"],
get = function(info) return E.db.general.threat.enable end, 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 = { threatPosition = {
order = 42, order = 4,
type = "select", type = "select",
name = L["Position"], name = L["Position"],
desc = L["Adjust the position of the threat bar to either the left or right datatext panels."], desc = L["Adjust the position of the threat bar to either the left or right datatext panels."],
@@ -740,15 +770,46 @@ E.Options.args.general = {
["RIGHTCHAT"] = L["Right Chat"] ["RIGHTCHAT"] = L["Right Chat"]
}, },
get = function(info) return E.db.general.threat.position end, 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 = { threatTextSize = {
order = 43, order = 7,
name = FONT_SIZE,
type = "range", type = "range",
name = L["Font Size"],
min = 6, max = 22, step = 1, min = 6, max = 22, step = 1,
get = function(info) return E.db.general.threat.textSize end, 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 Interrupts"] = "打断通告"
L["Announce when you interrupt a spell to the specified chat channel."] = "在指定对话频道通知打断信息" L["Announce when you interrupt a spell to the specified chat channel."] = "在指定对话频道通知打断信息"
L["Attempt to support eyefinity/nvidia surround."] = "尝试支持eyefinity/nvidia surround" L["Attempt to support eyefinity/nvidia surround."] = "尝试支持eyefinity/nvidia surround"
L["Auto Greed/DE"] = "自动贪婪/分解" L["Auto Greed"] = "自动贪婪/分解"
L["Auto Repair"] = "自动修理" L["Auto Repair"] = "自动修理"
L["Auto Scale"] = "自动缩放" L["Auto Scale"] = "自动缩放"
L["Automatically accept invites from guild/friends."] = "自动接受工会或好友的邀请" L["Automatically accept invites from guild/friends."] = "自动接受工会或好友的邀请"
L["Automatically repair using the following method when visiting a merchant."] = "使用以下方式来自动修理装备" L["Automatically repair using the following method when visiting a merchant."] = "使用以下方式来自动修理装备"
L["Automatically scale the User Interface based on your screen resolution"] = "依据屏幕分辨率度自动缩放介面" 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["Automatically vendor gray items when visiting a vendor."] = "当访问商人时自动出售灰色物品"
L["Bottom Panel"] = "底部面板" L["Bottom Panel"] = "底部面板"
L["Chat Bubbles Style"] = "聊天气泡样式" L["Chat Bubbles Style"] = "聊天气泡样式"
+2 -2
View File
@@ -376,13 +376,13 @@ L["AFK Mode"] = true;
L["Announce Interrupts"] = true; L["Announce Interrupts"] = true;
L["Announce when you interrupt a spell to the specified chat channel."] = true; L["Announce when you interrupt a spell to the specified chat channel."] = true;
L["Attempt to support eyefinity/nvidia surround."] = true; L["Attempt to support eyefinity/nvidia surround."] = true;
L["Auto Greed/DE"] = true; L["Auto Greed"] = true;
L["Auto Repair"] = true; L["Auto Repair"] = true;
L["Auto Scale"] = true; L["Auto Scale"] = true;
L["Automatically accept invites from guild/friends."] = true; L["Automatically accept invites from guild/friends."] = true;
L["Automatically repair using the following method when visiting a merchant."] = 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 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["Automatically vendor gray items when visiting a vendor."] = true;
L["Bottom Panel"] = true; L["Bottom Panel"] = true;
L["Chat Bubbles Style"] = 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 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["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["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 Repair"] = "Réparation automatique"
L["Auto Scale"] = "Échelle 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 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 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 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["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["Bottom Panel"] = "Bandeau en bas"
L["Chat Bubbles Style"] = "Style des bulles de discussion" 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 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["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["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 Repair"] = "Auto-Reparatur"
L["Auto Scale"] = "Auto-Skalierung" L["Auto Scale"] = "Auto-Skalierung"
L["Automatically accept invites from guild/friends."] = "Automatisch Einladungen von Gildenmitgliedern/Freunden akzeptieren" 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 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 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["Automatically vendor gray items when visiting a vendor."] = "Automatischer Verkauf von grauen Gegenständen bei einem Händlerbesuch."
L["Bottom Panel"] = "Untere Leiste" L["Bottom Panel"] = "Untere Leiste"
L["Chat Bubbles Style"] = "Sprechblasen Stil" L["Chat Bubbles Style"] = "Sprechblasen Stil"
+2 -2
View File
@@ -435,13 +435,13 @@ L["AFK Mode"] = "자리비움 모드"
L["Announce Interrupts"] = "차단 성공시 알림" L["Announce Interrupts"] = "차단 성공시 알림"
L["Announce when you interrupt a spell to the specified chat channel."] = "주문 차단에 성공하면 여기에서 설정한 채널로 차단성공을 알립니다." L["Announce when you interrupt a spell to the specified chat channel."] = "주문 차단에 성공하면 여기에서 설정한 채널로 차단성공을 알립니다."
L["Attempt to support eyefinity/nvidia surround."] = "다중모니터 기술인 아이피니티 기능이나 nvidia 서라운드 기능 지원을 적용합니다." L["Attempt to support eyefinity/nvidia surround."] = "다중모니터 기술인 아이피니티 기능이나 nvidia 서라운드 기능 지원을 적용합니다."
L["Auto Greed/DE"] = "자동 차비/추출 선택" L["Auto Greed"] = "자동 차비/추출 선택"
L["Auto Repair"] = "자동 수리" L["Auto Repair"] = "자동 수리"
L["Auto Scale"] = "UI크기 자동조절" L["Auto Scale"] = "UI크기 자동조절"
L["Automatically accept invites from guild/friends."] = "길드원이나 친구가 플레이어를 파티를 초대하면 자동으로 수락합니다." L["Automatically accept invites from guild/friends."] = "길드원이나 친구가 플레이어를 파티를 초대하면 자동으로 수락합니다."
L["Automatically repair using the following method when visiting a merchant."] = "수리가 가능한 상점을 열면 이 옵션에서 선택한 자금으로 장비를 자동 수리합니다." 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 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["Automatically vendor gray items when visiting a vendor."] = "상점이 열리면 잡동사니를 자동으로 판매합니다."
L["Bottom Panel"] = "하단 패널 표시" L["Bottom Panel"] = "하단 패널 표시"
L["Chat Bubbles Style"] = "말풍선 디자인" L["Chat Bubbles Style"] = "말풍선 디자인"
+2 -2
View File
@@ -387,13 +387,13 @@ L["AFK Mode"] = true;
L["Announce Interrupts"] = "Anunciar Interrupções" 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["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["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 Repair"] = "Reparar automaticamente"
L["Auto Scale"] = "Dimensionar 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 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 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 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["Automatically vendor gray items when visiting a vendor."] = "Vender itens cinzentos automaticamente quando visitar um vendedor"
L["Bottom Panel"] = "Painel Infeior" L["Bottom Panel"] = "Painel Infeior"
L["Chat Bubbles Style"] = "Estilo dos Balões de Fala" 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 Interrupts"] = "Объявлять о прерываниях"
L["Announce when you interrupt a spell to the specified chat channel."] = "Объявлять о прерванных Вами заклинаниях в указанный канал чата." L["Announce when you interrupt a spell to the specified chat channel."] = "Объявлять о прерванных Вами заклинаниях в указанный канал чата."
L["Attempt to support eyefinity/nvidia surround."] = "Пытаться поддерживать eyefinity/nvidia surround" L["Attempt to support eyefinity/nvidia surround."] = "Пытаться поддерживать eyefinity/nvidia surround"
L["Auto Greed/DE"] = "Авто. не откажусь/распылить" L["Auto Greed"] = "Авто. не откажусь/распылить"
L["Auto Repair"] = "Автоматический ремонт" L["Auto Repair"] = "Автоматический ремонт"
L["Auto Scale"] = "Автоматический масштаб" L["Auto Scale"] = "Автоматический масштаб"
L["Automatically accept invites from guild/friends."] = "Автоматически принимать приглашения в группу от друзей и гильдии." L["Automatically accept invites from guild/friends."] = "Автоматически принимать приглашения в группу от друзей и гильдии."
L["Automatically repair using the following method when visiting a merchant."] = "Автоматически чинить экипировку за счет выбранного источника при посещении торговца." 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 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["Automatically vendor gray items when visiting a vendor."] = "Автоматически продавать предметы серого качества при посещении торговца."
L["Bottom Panel"] = "Нижняя панель" L["Bottom Panel"] = "Нижняя панель"
L["Chat Bubbles Style"] = "Стиль облачков сообщений" L["Chat Bubbles Style"] = "Стиль облачков сообщений"
+2 -2
View File
@@ -387,13 +387,13 @@ L["AFK Mode"] = true;
L["Announce Interrupts"] = "Anunciar Interrupciones" 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["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["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 Repair"] = "Reparación Automática"
L["Auto Scale"] = "Escalado Automático" 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 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 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 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["Automatically vendor gray items when visiting a vendor."] = "Vender automáticamente los objetos grises al visitar al vendedor."
L["Bottom Panel"] = "Panel Inferior" L["Bottom Panel"] = "Panel Inferior"
L["Chat Bubbles Style"] = true; L["Chat Bubbles Style"] = true;
+2 -2
View File
@@ -387,13 +387,13 @@ L["AFK Mode"] = "離開模式"
L["Announce Interrupts"] = "斷法通告" L["Announce Interrupts"] = "斷法通告"
L["Announce when you interrupt a spell to the specified chat channel."] = "在指定對話頻道通知斷法信息." L["Announce when you interrupt a spell to the specified chat channel."] = "在指定對話頻道通知斷法信息."
L["Attempt to support eyefinity/nvidia surround."] = true; L["Attempt to support eyefinity/nvidia surround."] = true;
L["Auto Greed/DE"] = "自動貪婪/分解" L["Auto Greed"] = "自動貪婪/分解"
L["Auto Repair"] = "自動修裝" L["Auto Repair"] = "自動修裝"
L["Auto Scale"] = "自動縮放" L["Auto Scale"] = "自動縮放"
L["Automatically accept invites from guild/friends."] = "自動接受公會成員/朋友的組隊邀請." L["Automatically accept invites from guild/friends."] = "自動接受公會成員/朋友的組隊邀請."
L["Automatically repair using the following method when visiting a merchant."] = "與商人對話時,透過下列方式自動修復裝備." 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 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["Automatically vendor gray items when visiting a vendor."] = "當訪問商人時自動出售灰色物品."
L["Bottom Panel"] = "底部面板" L["Bottom Panel"] = "底部面板"
L["Chat Bubbles Style"] = "聊天氣泡樣式" 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, set = function(info, value) E.db.general.minimap.locationFontOutline = value; MM:Update_ZoneText(); end,
disabled = function() return not E.private.general.minimap.enable; end, disabled = function() return not E.private.general.minimap.enable; end,
values = { values = {
["NONE"] = NONE, ["NONE"] = L["None"],
["OUTLINE"] = "OUTLINE", ["OUTLINE"] = "OUTLINE",
["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE", ["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE",
["THICKOUTLINE"] = "THICKOUTLINE" ["THICKOUTLINE"] = "THICKOUTLINE"
+1 -6
View File
@@ -6,11 +6,6 @@ local CP = E:GetModule("CopyProfile");
--Cache global variables --Cache global variables
--Lua functions --Lua functions
local getn = table.getn local getn = table.getn
--WoW API / Variables
local XPBAR_LABEL = XPBAR_LABEL
local REPUTATION = REPUTATION
local MINIMAP_LABEL = MINIMAP_LABEL
local COLOR = COLOR
--Actionbars --Actionbars
local function CreateActionbarsConfig() local function CreateActionbarsConfig()
@@ -133,7 +128,7 @@ local function CreateDatatbarsConfig()
config.args.experience = { config.args.experience = {
order = 2, order = 2,
type = "toggle", type = "toggle",
name = XPBAR_LABEL, name = L["XP Bar"],
get = function(info) return E.global.profileCopy.databars[ info[getn(info)] ] end, 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 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"], name = L["Font Outline"],
desc = L["Set the font outline."], desc = L["Set the font outline."],
values = { values = {
["NONE"] = NONE, ["NONE"] = L["None"],
["OUTLINE"] = "OUTLINE", ["OUTLINE"] = "OUTLINE",
["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE", ["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE",
["THICKOUTLINE"] = "THICKOUTLINE" ["THICKOUTLINE"] = "THICKOUTLINE"
+3 -3
View File
@@ -93,7 +93,7 @@ E.Options.args.tooltip = {
["BAGS_ONLY"] = L["Bags Only"], ["BAGS_ONLY"] = L["Bags Only"],
["BANK_ONLY"] = L["Bank Only"], ["BANK_ONLY"] = L["Bank Only"],
["BOTH"] = L["Both"], ["BOTH"] = L["Both"],
["NONE"] = NONE ["NONE"] = L["None"]
} }
}, },
colorAlpha = { colorAlpha = {
@@ -122,7 +122,7 @@ E.Options.args.tooltip = {
name = L["Font Outline"], name = L["Font Outline"],
type = "select", type = "select",
values = { values = {
["NONE"] = NONE, ["NONE"] = L["None"],
["OUTLINE"] = "OUTLINE", ["OUTLINE"] = "OUTLINE",
["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE", ["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE",
["THICKOUTLINE"] = "THICKOUTLINE" ["THICKOUTLINE"] = "THICKOUTLINE"
@@ -304,7 +304,7 @@ E.Options.args.tooltip = {
type = "select", type = "select",
name = L["Font Outline"], name = L["Font Outline"],
values = { values = {
["NONE"] = NONE, ["NONE"] = L["None"],
["OUTLINE"] = "OUTLINE", ["OUTLINE"] = "OUTLINE",
["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE", ["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE",
["THICKOUTLINE"] = "THICKOUTLINE" ["THICKOUTLINE"] = "THICKOUTLINE"
+6 -6
View File
@@ -50,7 +50,7 @@ local threatValues = {
["ICONRIGHT"] = L["Icon: RIGHT"], ["ICONRIGHT"] = L["Icon: RIGHT"],
["ICONTOP"] = L["Icon: TOP"], ["ICONTOP"] = L["Icon: TOP"],
["ICONBOTTOM"] = L["Icon: BOTTOM"], ["ICONBOTTOM"] = L["Icon: BOTTOM"],
["NONE"] = NONE ["NONE"] = L["None"]
} }
local petAnchors = { local petAnchors = {
@@ -1190,7 +1190,7 @@ local function GetOptionsTable_RaidDebuff(updateFunc, groupName)
type = "select", type = "select",
name = L["Font Outline"], name = L["Font Outline"],
values = { values = {
["NONE"] = NONE, ["NONE"] = L["None"],
["OUTLINE"] = "OUTLINE", ["OUTLINE"] = "OUTLINE",
["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE", ["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE",
["THICKOUTLINE"] = "THICKOUTLINE" ["THICKOUTLINE"] = "THICKOUTLINE"
@@ -1501,7 +1501,7 @@ local function CreateCustomTextGroup(unit, objectName)
name = L["Font Outline"], name = L["Font Outline"],
desc = L["Set the font outline."], desc = L["Set the font outline."],
values = { values = {
["NONE"] = NONE, ["NONE"] = L["None"],
["OUTLINE"] = "OUTLINE", ["OUTLINE"] = "OUTLINE",
["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE", ["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE",
["THICKOUTLINE"] = "THICKOUTLINE" ["THICKOUTLINE"] = "THICKOUTLINE"
@@ -1838,7 +1838,7 @@ E.Options.args.unitframe = {
name = L["Debuff Highlighting"], name = L["Debuff Highlighting"],
desc = L["Color the unit healthbar if there is a debuff that can be dispelled by you."], desc = L["Color the unit healthbar if there is a debuff that can be dispelled by you."],
values = { values = {
["NONE"] = NONE, ["NONE"] = L["None"],
["GLOW"] = L["Glow"], ["GLOW"] = L["Glow"],
["FILL"] = L["Fill"] ["FILL"] = L["Fill"]
} }
@@ -1862,7 +1862,7 @@ E.Options.args.unitframe = {
name = L["Blacklist Modifier"], 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."], 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 = { values = {
["NONE"] = NONE, ["NONE"] = L["None"],
["SHIFT"] = SHIFT_KEY, ["SHIFT"] = SHIFT_KEY,
["ALT"] = ALT_KEY, ["ALT"] = ALT_KEY,
["CTRL"] = CTRL_KEY ["CTRL"] = CTRL_KEY
@@ -1927,7 +1927,7 @@ E.Options.args.unitframe = {
name = L["Font Outline"], name = L["Font Outline"],
desc = L["Set the font outline."], desc = L["Set the font outline."],
values = { values = {
["NONE"] = NONE, ["NONE"] = L["None"],
["OUTLINE"] = "OUTLINE", ["OUTLINE"] = "OUTLINE",
["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE", ["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE",
["THICKOUTLINE"] = "THICKOUTLINE" ["THICKOUTLINE"] = "THICKOUTLINE"