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