big update

This commit is contained in:
Crum
2019-01-12 12:09:06 -06:00
parent eebdf23364
commit aaf50317e5
45 changed files with 500 additions and 480 deletions
+224 -163
View File
@@ -7,9 +7,8 @@ local _G = _G
local getn = table.getn
--WoW API / Variables
local FCF_GetNumActiveChatFrames = FCF_GetNumActiveChatFrames
local NONE, FONT_SIZE, COLOR, DISABLE = NONE, FONT_SIZE, COLOR, DISABLE
local PLAYER, LOOT = PLAYER, LOOT
local SAY, CHAT_MSG_EMOTE = SAY, CHAT_MSG_EMOTE
_G.GetLocale = function() return GAME_LOCALE end
local function GetChatWindowInfo()
local ChatTabInfo = {}
@@ -23,48 +22,27 @@ local function GetChatWindowInfo()
end
E.Options.args.general = {
type = "group",
name = GENERAL,
order = 1,
type = "group",
name = L["General"],
childGroups = "tab",
get = function(info) return E.db.general[ info[getn(info)] ] end,
set = function(info, value) E.db.general[ info[getn(info)] ] = value end,
args = {
versionCheck = {
order = 1,
type = "toggle",
name = L["Version Check"],
get = function(info) return E.global.general.versionCheck end,
set = function(info, value) E.global.general.versionCheck = value end
},
spacer = {
order = 2,
type = "description",
name = "",
width = "full",
},
intro = {
order = 3,
order = 1,
type = "description",
name = L["ELVUI_DESC"],
},
general = {
order = 4,
order = 2,
type = "group",
name = GENERAL,
name = L["General"],
args = {
generalHeader = {
order = 1,
type = "header",
name = GENERAL,
},
pixelPerfect = {
order = 2,
type = "toggle",
name = L["Thin Border Theme"],
desc = L["The Thin Border Theme option will change the overall apperance of your UI. Using Thin Border Theme is a slight performance increase over the traditional layout."],
get = function(info) return E.private.general.pixelPerfect end,
set = function(info, value) E.private.general.pixelPerfect = value E:StaticPopup_Show("PRIVATE_RL") end
name = L["General"],
},
messageRedirect = {
order = 2,
@@ -79,12 +57,12 @@ E.Options.args.general = {
name = L["Announce Interrupts"],
desc = L["Announce when you interrupt a spell to the specified chat channel."],
values = {
["NONE"] = NONE,
["SAY"] = SAY,
["NONE"] = L["None"],
["SAY"] = L["Say"],
["PARTY"] = L["Party Only"],
["RAID"] = L["Party / Raid"],
["RAID_ONLY"] = L["Raid Only"],
["EMOTE"] = CHAT_MSG_EMOTE
["EMOTE"] = L["Emote"]
}
},
autoRepair = {
@@ -93,33 +71,42 @@ E.Options.args.general = {
name = L["Auto Repair"],
desc = L["Automatically repair using the following method when visiting a merchant."],
values = {
["NONE"] = NONE,
["PLAYER"] = PLAYER
["NONE"] = L["None"],
["GUILD"] = L["Guild"],
["PLAYER"] = L["Player"]
}
},
autoAcceptInvite = {
pixelPerfect = {
order = 5,
type = "toggle",
name = L["Thin Border Theme"],
desc = L["The Thin Border Theme option will change the overall apperance of your UI. Using Thin Border Theme is a slight performance increase over the traditional layout."],
get = function(info) return E.private.general.pixelPerfect end,
set = function(info, value) E.private.general.pixelPerfect = value E:StaticPopup_Show("PRIVATE_RL") end
},
autoAcceptInvite = {
order = 6,
type = "toggle",
name = L["Accept Invites"],
desc = L["Automatically accept invites from guild/friends."]
},
autoRoll = {
order = 6,
order = 7,
type = "toggle",
name = L["Auto Greed/DE"],
desc = L["Automatically select greed or disenchant (when available) on green quality items. This will only work if you are the max level."],
name = L["Auto Greed"],
desc = L["Automatically select greed (when available) on green quality items. This will only work if you are the max level."],
disabled = function() return not E.private.general.lootRoll end
},
loot = {
order = 7,
order = 8,
type = "toggle",
name = LOOT,
name = L["Loot"],
desc = L["Enable/Disable the loot frame."],
get = function(info) return E.private.general.loot end,
set = function(info, value) E.private.general.loot = value E:StaticPopup_Show("PRIVATE_RL") end
},
lootRoll = {
order = 8,
order = 9,
type = "toggle",
name = L["Loot Roll"],
desc = L["Enable/Disable the loot roll frame."],
@@ -127,7 +114,7 @@ E.Options.args.general = {
set = function(info, value) E.private.general.lootRoll = value E:StaticPopup_Show("PRIVATE_RL") end
},
lootUnderMouse = {
order = 9,
order = 10,
type = "toggle",
name = L["Loot Under Mouse"],
desc = L["Enable/Disable loot frame under the mouse cursor."],
@@ -136,21 +123,21 @@ E.Options.args.general = {
disabled = function() return not E.private.general.loot end
},
eyefinity = {
order = 10,
order = 11,
type = "toggle",
name = L["Multi-Monitor Support"],
desc = L["Attempt to support eyefinity/nvidia surround."],
type = "toggle",
get = function(info) return E.global.general.eyefinity end,
set = function(info, value) E.global.general[ info[getn(info)] ] = value E:StaticPopup_Show("GLOBAL_RL") end
},
hideErrorFrame = {
order = 11,
order = 12,
type = "toggle",
name = L["Hide Error Text"],
desc = L["Hides the red error text at the top of the screen while in combat."]
},
bottomPanel = {
order = 12,
order = 13,
type = "toggle",
name = L["Bottom Panel"],
desc = L["Display a panel across the bottom of the screen. This is for cosmetic only."],
@@ -158,7 +145,7 @@ E.Options.args.general = {
set = function(info, value) E.db.general.bottomPanel = value E:GetModule("Layout"):BottomPanelVisibility() end
},
topPanel = {
order = 13,
order = 14,
type = "toggle",
name = L["Top Panel"],
desc = L["Display a panel across the top of the screen. This is for cosmetic only."],
@@ -166,7 +153,7 @@ E.Options.args.general = {
set = function(info, value) E.db.general.topPanel = value E:GetModule("Layout"):TopPanelVisibility() end
},
afk = {
order = 14,
order = 15,
type = "toggle",
name = L["AFK Mode"],
desc = L["When you go AFK display the AFK screen."],
@@ -174,7 +161,7 @@ E.Options.args.general = {
set = function(info, value) E.db.general.afk = value E:GetModule("AFK"):Toggle() end
},
enhancedPvpMessages = {
order = 15,
order = 16,
type = "toggle",
name = L["Enhanced PVP Messages"],
desc = L["Display battleground messages in the middle of the screen."],
@@ -189,24 +176,39 @@ E.Options.args.general = {
},
autoScale = {
order = 17,
type = "toggle",
name = L["Auto Scale"],
desc = L["Automatically scale the User Interface based on your screen resolution"],
type = "toggle",
get = function(info) return E.global.general.autoScale end,
set = function(info, value) E.global.general[ info[getn(info)] ] = value E:StaticPopup_Show("GLOBAL_RL") end
},
minUiScale = {
order = 18,
type = "description",
name = ""
},
minUiScale = {
order = 19,
type = "range",
name = L["Lowest Allowed UI Scale"],
min = 0.32, max = 0.64, step = 0.01,
get = function(info) return E.global.general.minUiScale end,
set = function(info, value) E.global.general.minUiScale = value E:StaticPopup_Show("GLOBAL_RL") end
},
decimalLength = {
order = 20,
type = "range",
name = L["Decimal Length"],
desc = L["Controls the amount of decimals used in values displayed on elements like NamePlates and UnitFrames."],
min = 0, max = 4, step = 1,
get = function(info) return E.db.general.decimalLength end,
set = function(info, value) E.db.general.decimalLength = value; E:StaticPopup_Show("GLOBAL_RL") end
},
numberPrefixStyle = {
order = 19,
order = 21,
type = "select",
name = L["Number Prefix"],
name = L["Unit Prefix Style"],
desc = L["The unit prefixes you want to use when values are shortened in ElvUI. This is mostly used on UnitFrames."],
get = function(info) return E.db.general.numberPrefixStyle end,
set = function(info, value) E.db.general.numberPrefixStyle = value E:StaticPopup_Show("CONFIG_RL") end,
values = {
@@ -217,19 +219,29 @@ E.Options.args.general = {
["GERMAN"] = "German (Tsd, Mio, Mrd)"
}
},
decimalLength = {
order = 20,
type = "range",
name = L["Decimal Length"],
desc = L["Controls the amount of decimals used in values displayed on elements like NamePlates and UnitFrames."],
min = 0, max = 4, step = 1,
get = function(info) return E.db.general.decimalLength end,
set = function(info, value) E.db.general.decimalLength = value E:StaticPopup_Show("GLOBAL_RL") end
}
GameLocale = {
order = 22,
type = "select",
name = L["Change Language"],
desc = L["Change the ElvUI option to a different language."],
get = function(info) return GAME_LOCALE end,
set = function(info, value) GAME_LOCALE = value E:StaticPopup_Show("PRIVATE_RL") end,
values = {
["enUS"] = "English (enUS/enGB)",
["esES"] = "Spanish (esES/esMX)",
["ptBR"] = "Portuguese (ptBR)",
["frFR"] = "French (frFR)",
["deDE"] = "German (deDE)",
["koKR"] = "Korean (koKR)",
["zhCN"] = "Chinese (zhCN)",
["zhTW"] = "Taiwanese (zhTW)",
["ruRU"] = "Russian (ruRU)"
}
}
}
},
media = {
order = 5,
order = 3,
type = "group",
name = L["Media"],
get = function(info) return E.db.general[ info[getn(info)] ] end,
@@ -240,31 +252,43 @@ E.Options.args.general = {
type = "header",
name = L["Fonts"]
},
fontSize = {
order = 2,
type = "range",
name = FONT_SIZE,
desc = L["Set the font size for everything in UI. Note: This doesn't effect somethings that have their own seperate options (UnitFrame Font, Datatext Font, ect..)"],
min = 4, max = 33, step = 1,
set = function(info, value) E.db.general[ info[getn(info)] ] = value E:UpdateMedia() E:UpdateFontTemplates() end
},
font = {
order = 3,
order = 2,
type = "select", dialogControl = "LSM30_Font",
name = L["Default Font"],
desc = L["The font that the core of the UI will use."],
values = AceGUIWidgetLSMlists.font,
set = function(info, value) E.db.general[ info[getn(info)] ] = value E:UpdateMedia() E:UpdateFontTemplates() end,
},
applyFontToAll = {
fontSize = {
order = 3,
type = "range",
name = L["Font Size"],
desc = L["Set the font size for everything in UI. Note: This doesn't effect somethings that have their own seperate options (UnitFrame Font, Datatext Font, ect..)"],
min = 4, max = 33, step = 1,
set = function(info, value) E.db.general[ info[getn(info)] ] = value E:UpdateMedia() E:UpdateFontTemplates() end
},
fontStyle = {
order = 4,
type = "select",
name = L["Font Outline"],
values = {
["NONE"] = L["None"],
["OUTLINE"] = "OUTLINE",
["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE",
["THICKOUTLINE"] = "THICKOUTLINE"
},
set = function(info, value) E.db.general[ info[getn(info)] ] = value E:UpdateMedia() E:UpdateFontTemplates() end
},
applyFontToAll = {
order = 5,
type = "execute",
name = L["Apply Font To All"],
desc = L["Applies the font and font size settings throughout the entire user interface. Note: Some font size settings will be skipped due to them having a smaller font size by default."],
func = function() E:StaticPopup_Show("APPLY_FONT_WARNING") end
},
dmgfont = {
order = 5,
order = 6,
type = "select", dialogControl = "LSM30_Font",
name = L["CombatText Font"],
desc = L["The font that combat text will use. |cffFF0000WARNING: This requires a game restart or re-log for this change to take effect.|r"],
@@ -273,7 +297,7 @@ E.Options.args.general = {
set = function(info, value) E.private.general[ info[getn(info)] ] = value E:UpdateMedia() E:UpdateFontTemplates() E:StaticPopup_Show("PRIVATE_RL") end
},
namefont = {
order = 6,
order = 7,
type = "select", dialogControl = "LSM30_Font",
name = L["Name Font"],
desc = L["The font that appears on the text above players heads. |cffFF0000WARNING: This requires a game restart or re-log for this change to take effect.|r"],
@@ -282,7 +306,7 @@ E.Options.args.general = {
set = function(info, value) E.private.general[ info[getn(info)] ] = value E:UpdateMedia() E:UpdateFontTemplates() E:StaticPopup_Show("PRIVATE_RL") end
},
replaceBlizzFonts = {
order = 7,
order = 8,
type = "toggle",
name = L["Replace Blizzard Fonts"],
desc = L["Replaces the default Blizzard fonts on various panels and frames with the fonts chosen in the Media section of the ElvUI config. NOTE: Any font that inherits from the fonts ElvUI usually replaces will be affected as well if you disable this. Enabled by default."],
@@ -290,17 +314,17 @@ E.Options.args.general = {
set = function(info, value) E.private.general[ info[getn(info)] ] = value E:StaticPopup_Show("PRIVATE_RL") end
},
texturesHeaderSpacing = {
order = 8,
order = 9,
type = "description",
name = " "
},
texturesHeader = {
order = 9,
order = 10,
type = "header",
name = L["Textures"]
},
normTex = {
order = 10,
order = 11,
type = "select", dialogControl = "LSM30_Statusbar",
name = L["Primary Texture"],
desc = L["The texture that will be used mainly for statusbars."],
@@ -320,7 +344,7 @@ E.Options.args.general = {
end
},
glossTex = {
order = 11,
order = 12,
type = "select", dialogControl = "LSM30_Statusbar",
name = L["Secondary Texture"],
desc = L["This texture will get used on objects like chat windows and dropdown menus."],
@@ -333,7 +357,7 @@ E.Options.args.general = {
end
},
applyTextureToAll = {
order = 12,
order = 13,
type = "execute",
name = L["Apply Texture To All"],
desc = L["Applies the primary texture to all statusbars."],
@@ -343,19 +367,27 @@ E.Options.args.general = {
E:UpdateAll(true)
end
},
cropIcon = {
order = 14,
type = "toggle",
name = L["Crop Icons"],
desc = L["This is for Customized Icons in your Interface/Icons folder."],
get = function(info) return E.db.general[ info[getn(info)] ] end,
set = function(info, value) E.db.general[ info[getn(info)] ] = value; E:StaticPopup_Show("PRIVATE_RL") end
},
colorsHeaderSpacing = {
order = 13,
order = 15,
type = "description",
name = " "
},
colorsHeader = {
order = 14,
order = 16,
type = "header",
name = COLOR
name = L["Colors"]
},
bordercolor = {
order = 17,
type = "color",
order = 15,
name = L["Border Color"],
desc = L["Main border color of the UI."],
hasAlpha = false,
@@ -372,8 +404,8 @@ E.Options.args.general = {
end,
},
backdropcolor = {
order = 18,
type = "color",
order = 32,
name = L["Backdrop Color"],
desc = L["Main backdrop color of the UI."],
hasAlpha = false,
@@ -390,8 +422,8 @@ E.Options.args.general = {
end
},
backdropfadecolor = {
order = 19,
type = "color",
order = 33,
name = L["Backdrop Faded Color"],
desc = L["Backdrop color of transparent frames"],
hasAlpha = true,
@@ -409,8 +441,8 @@ E.Options.args.general = {
end
},
valuecolor = {
order = 20,
type = "color",
order = 34,
name = L["Value Color"],
desc = L["Color some texts use."],
hasAlpha = false,
@@ -429,7 +461,7 @@ E.Options.args.general = {
}
},
classCache = {
order = 6,
order = 4,
type = "group",
name = L["Class Cache"],
args = {
@@ -449,20 +481,8 @@ E.Options.args.general = {
CC:ToggleModule()
end
},
classCacheStoreInDB = {
order = 3,
type = "toggle",
name = L["Store cache in DB"],
desc = L["If cache stored in DB it will be available between game sessions but increase memory usage.\nIn other way it will be wiped on relog or UI reload."],
get = function(info) return E.db.general.classCacheStoreInDB end,
set = function(info, value)
E.db.general.classCacheStoreInDB = value
CC:SwitchCacheType()
end,
disabled = function() return not E.private.general.classCache end
},
classCacheRequestInfo = {
order = 4,
order = 3,
type = "toggle",
name = L["Request info for class cache"],
desc = L["Use LibWho to cache class info"],
@@ -472,41 +492,61 @@ E.Options.args.general = {
end,
disabled = function() return not E.private.general.classCache end
},
wipeClassCacheGlobal = {
order = 5,
type = "execute",
name = L["Wipe DB Cache"],
buttonElvUI = true,
func = function()
CC:WipeCache(true)
GameTooltip:Hide()
end,
disabled = function() return not CC:GetCacheSize(true) end
},
wipeClassCacheLocal = {
order = 6,
type = "execute",
name = L["Wipe Session Cache"],
buttonElvUI = true,
func = function()
CC:WipeCache()
GameTooltip:Hide()
end,
disabled = function() return not CC:GetCacheSize() end
cache = {
order = 4,
type = "group",
name = L["Cache"],
guiInline = true,
args = {
classCacheStoreInDB = {
order = 1,
type = "toggle",
name = L["Store cache in DB"],
desc = L["If cache stored in DB it will be available between game sessions but it will increase memory usage.\nIn other way it will be wiped on relog or UI reload."],
get = function(info) return E.db.general.classCacheStoreInDB end,
set = function(info, value)
E.db.general.classCacheStoreInDB = value
CC:SwitchCacheType()
end,
disabled = function() return not E.private.general.classCache end
},
wipeClassCacheGlobal = {
order = 2,
type = "execute",
name = L["Wipe DB Cache"],
buttonElvUI = true,
func = function()
CC:WipeCache(true)
GameTooltip:Hide()
end,
disabled = function() return not CC:GetCacheSize(true) end
},
wipeClassCacheLocal = {
order = 3,
type = "execute",
name = L["Wipe Session Cache"],
buttonElvUI = true,
func = function()
CC:WipeCache()
GameTooltip:Hide()
end,
disabled = function() return not CC:GetCacheSize() end
}
}
}
}
},
--[[totems = {
order = 7,
order = 5,
type = "group",
name = TUTORIAL_TITLE47,
name = L["Totem Bar"],
get = function(info) return E.db.general.totems[ info[getn(info)] ] end,
set = function(info, value) E.db.general.totems[ info[getn(info)] ] = value E:GetModule("Totems"):PositionAndSize() end,
args = {
header = {
order = 1,
type = "header",
name = TUTORIAL_TITLE47
name = L["Totem Bar"]
},
enable = {
order = 2,
@@ -619,7 +659,7 @@ E.Options.args.general = {
}
},
chatBubbles = {
order = 9,
order = 6,
type = "group",
name = L["Chat Bubbles"],
args = {
@@ -639,7 +679,7 @@ E.Options.args.general = {
["backdrop"] = L["Skin Backdrop"],
["nobackdrop"] = L["Remove Backdrop"],
["backdrop_noborder"] = L["Skin Backdrop (No Borders)"],
["disabled"] = DISABLE
["disabled"] = L["Disable"]
}
},
name = {
@@ -654,7 +694,7 @@ E.Options.args.general = {
spacer = {
order = 4,
type = "description",
name = " ",
name = ""
},
font = {
order = 5,
@@ -669,7 +709,7 @@ E.Options.args.general = {
fontSize = {
order = 6,
type = "range",
name = FONT_SIZE,
name = L["Font Size"],
get = function(info) return E.private.general.chatBubbleFontSize end,
set = function(info, value) E.private.general.chatBubbleFontSize = value E:StaticPopup_Show("PRIVATE_RL") end,
min = 4, max = 33, step = 1,
@@ -683,7 +723,7 @@ E.Options.args.general = {
set = function(info, value) E.private.general.chatBubbleFontOutline = value E:StaticPopup_Show("PRIVATE_RL") end,
disabled = function() return E.private.general.chatBubbles == "disabled" end,
values = {
["NONE"] = NONE,
["NONE"] = L["None"],
["OUTLINE"] = "OUTLINE",
["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE",
["THICKOUTLINE"] = "THICKOUTLINE",
@@ -691,47 +731,37 @@ E.Options.args.general = {
}
}
},
watchFrame = {
order = 10,
type = "group",
name = L["Watch Frame"],
get = function(info) return E.db.general[ info[getn(info)] ] end,
set = function(info, value) E.db.general[ info[getn(info)] ] = value end,
args = {
watchFrameHeader = {
order = 1,
type = "header",
name = L["Watch Frame"],
},
watchFrameHeight = {
order = 2,
type = "range",
name = L["Watch Frame Height"],
desc = L["Height of the watch tracker. Increase size to be able to see more objectives."],
min = 400, max = E.screenheight, step = 1,
set = function(info, value) E.db.general[ info[getn(info)] ] = value E:GetModule("Blizzard"):SetWatchFrameHeight() end
}
}
},
--[[threatGroup = {
order = 11,
order = 7,
type = "group",
name = L["Threat"],
args = {
threatHeader = {
order = 40,
order = 1,
type = "header",
name = L["Threat"]
},
threatLibStatus = {
order = 2,
type = "description",
image = function() return E:GetModule("Threat"):GetLibStatus() and READY_CHECK_READY_TEXTURE or READY_CHECK_NOT_READY_TEXTURE, 30, 26 end,
name = function()
if E:GetModule("Threat"):GetLibStatus() then
return L["Library Threat-2.0 found."]
else
return L["Library Threat-2.0 not found. If you want to use Threat module install Omen or separate Threat-2.0 library."]
end
end
},
threatEnable = {
order = 41,
order = 3,
type = "toggle",
name = L["Enable"],
get = function(info) return E.db.general.threat.enable end,
set = function(info, value) E.db.general.threat.enable = value E:GetModule("Threat"):ToggleEnable()end
set = function(info, value) E.db.general.threat.enable = value E:GetModule("Threat"):ToggleEnable() end
},
threatPosition = {
order = 42,
order = 4,
type = "select",
name = L["Position"],
desc = L["Adjust the position of the threat bar to either the left or right datatext panels."],
@@ -740,17 +770,48 @@ E.Options.args.general = {
["RIGHTCHAT"] = L["Right Chat"]
},
get = function(info) return E.db.general.threat.position end,
set = function(info, value) E.db.general.threat.position = value E:GetModule("Threat"):UpdatePosition() end
set = function(info, value) E.db.general.threat.position = value E:GetModule("Threat"):UpdatePosition() end,
disabled = function() return not E.db.general.threat.enable end
},
spacer = {
order = 5,
type = "description",
name = ""
},
threatTextfont = {
order = 6,
type = "select", dialogControl = "LSM30_Font",
name = L["Font"],
values = AceGUIWidgetLSMlists.font,
get = function(info) return E.db.general.threat.textfont end,
set = function(info, value) E.db.general.threat.textfont = value E:GetModule("Threat"):UpdatePosition() end,
disabled = function() return not E.db.general.threat.enable end
},
threatTextSize = {
order = 43,
name = FONT_SIZE,
order = 7,
type = "range",
name = L["Font Size"],
min = 6, max = 22, step = 1,
get = function(info) return E.db.general.threat.textSize end,
set = function(info, value) E.db.general.threat.textSize = value E:GetModule("Threat"):UpdatePosition() end
set = function(info, value) E.db.general.threat.textSize = value E:GetModule("Threat"):UpdatePosition() end,
disabled = function() return not E.db.general.threat.enable end
},
threatTextOutline = {
order = 8,
type = "select",
name = L["Font Outline"],
desc = L["Set the font outline."],
values = {
["NONE"] = L["None"],
["OUTLINE"] = "OUTLINE",
["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE",
["THICKOUTLINE"] = "THICKOUTLINE"
},
get = function(info) return E.db.general.threat.textOutline end,
set = function(info, value) E.db.general.threat.textOutline = value E:GetModule("Threat"):UpdatePosition() end,
disabled = function() return not E.db.general.threat.enable end
}
}
}--]]
}
}
}