Files
ElvUIModernized/ElvUI_Config/Tooltip.lua
T
2019-01-12 14:33:27 -06:00

351 lines
10 KiB
Lua

local E, L, V, P, G = unpack(ElvUI); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local TT = E:GetModule("Tooltip");
local LSM = E.LSM
--Cache global variables
--Lua functions
local _G = _G
local tonumber, tostring = tonumber, tostring
local getn = table.getn
--WoW API / Variables
local GameTooltipStatusBar = _G["GameTooltipStatusBar"]
E.Options.args.tooltip = {
type = "group",
name = L["Tooltip"],
childGroups = "tab",
get = function(info) return E.db.tooltip[ info[getn(info)] ] end,
set = function(info, value) E.db.tooltip[ info[getn(info)] ] = value end,
args = {
intro = {
order = 1,
type = "description",
name = L["TOOLTIP_DESC"]
},
enable = {
order = 2,
type = "toggle",
name = L["Enable"],
get = function(info) return E.private.tooltip[ info[getn(info)] ]; end,
set = function(info, value) E.private.tooltip[ info[getn(info)] ] = value; E:StaticPopup_Show("PRIVATE_RL"); end
},
general = {
order = 3,
type = "group",
name = L["General"],
disabled = function() return not E.Tooltip end,
args = {
header = {
order = 1,
type = "header",
name = L["General"]
},
cursorAnchor = {
order = 2,
type = "toggle",
name = L["Cursor Anchor"],
desc = L["Should tooltip be anchored to mouse cursor"]
},
targetInfo = {
order = 3,
type = "toggle",
name = L["Target Info"],
desc = L["When in a raid group display if anyone in your raid is targeting the current tooltip unit."]
},
playerTitles = {
order = 4,
type = "toggle",
name = L["Player Titles"],
desc = L["Display player titles."]
},
guildRanks = {
order = 5,
type = "toggle",
name = L["Guild Ranks"],
desc = L["Display guild ranks if a unit is guilded."]
},
inspectInfo = {
order = 6,
type = "toggle",
name = L["Inspect Info"],
desc = L["Display the players talent spec and item level in the tooltip, this may not immediately update when mousing over a unit."],
},
itemPrice = {
order = 7,
type = "toggle",
name = L["Item Price"],
desc = L["Display vendor sell value on item tooltips."],
set = function(info, value)
E.db.tooltip[info[getn(info)]] = value
E:GetModule("Tooltip_ItemPrice"):UpdateSettings()
end
},
spellID = {
order = 8,
type = "toggle",
name = L["Spell/Item IDs"],
desc = L["Display the spell or item ID when mousing over a spell or item tooltip."]
},
itemLevel = {
order = 9,
type = "toggle",
name = L["Item Level"],
desc = L["Display the item level when mousing over a item."]
},
spacer = {
order = 10,
type = "description",
name = ""
},
itemCount = {
order = 11,
type = "select",
name = L["Item Count"],
desc = L["Display how many of a certain item you have in your possession."],
values = {
["BAGS_ONLY"] = L["Bags Only"],
["BANK_ONLY"] = L["Bank Only"],
["BOTH"] = L["Both"],
["NONE"] = L["None"]
}
},
colorAlpha = {
order = 12,
type = "range",
name = L["Opacity"],
isPercent = true,
min = 0, max = 1, step = 0.01
},
fontGroup = {
order = 13,
type = "group",
name = L["Tooltip Font Settings"],
guiInline = true,
args = {
font = {
order = 1,
type = "select", dialogControl = "LSM30_Font",
name = L["Font"],
values = AceGUIWidgetLSMlists.font,
get = function(info) return E.db.tooltip.font end,
set = function(info, value) E.db.tooltip.font = value TT:SetTooltipFonts() end
},
fontOutline = {
order = 2,
type = "select",
name = L["Font Outline"],
values = {
["NONE"] = L["None"],
["OUTLINE"] = "OUTLINE",
["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE",
["THICKOUTLINE"] = "THICKOUTLINE"
},
get = function(info) return E.db.tooltip.fontOutline end,
set = function(info, value) E.db.tooltip.fontOutline = value TT:SetTooltipFonts() end,
},
spacer = {
order = 3,
type = "description",
name = ""
},
headerFontSize = {
order = 4,
type = "range",
name = L["Header Font Size"],
min = 4, max = 33, step = 1,
get = function(info) return E.db.tooltip.headerFontSize end,
set = function(info, value) E.db.tooltip.headerFontSize = value TT:SetTooltipFonts() end
},
textFontSize = {
order = 5,
type = "range",
name = L["Text Font Size"],
min = 4, max = 33, step = 1,
get = function(info) return E.db.tooltip.textFontSize end,
set = function(info, value) E.db.tooltip.textFontSize = value TT:SetTooltipFonts() end
},
smallTextFontSize = {
order = 6,
type = "range",
name = L["Comparison Font Size"],
desc = L["This setting controls the size of text in item comparison tooltips."],
min = 4, max = 33, step = 1,
get = function(info) return E.db.tooltip.smallTextFontSize end,
set = function(info, value) E.db.tooltip.smallTextFontSize = value TT:SetTooltipFonts() end
}
}
},
factionColors = {
order = 13,
type = "group",
name = L["Custom Faction Colors"],
guiInline = true,
args = {
useCustomFactionColors = {
order = 0,
type = "toggle",
name = L["Custom Faction Colors"],
get = function(info) return E.db.tooltip.useCustomFactionColors end,
set = function(info, value) E.db.tooltip.useCustomFactionColors = value end
}
},
get = function(info)
local t = E.db.tooltip.factionColors[tonumber(info[getn(info)])]
local d = P.tooltip.factionColors[tonumber(info[getn(info)])]
return t.r, t.g, t.b, t.a, d.r, d.g, d.b
end,
set = function(info, r, g, b)
local t = E.db.tooltip.factionColors[tonumber(info[getn(info)])]
t.r, t.g, t.b = r, g, b
end
}
}
},
visibility = {
order = 4,
type = "group",
name = L["Visibility"],
get = function(info) return E.db.tooltip.visibility[ info[getn(info)] ] end,
set = function(info, value) E.db.tooltip.visibility[ info[getn(info)] ] = value end,
disabled = function() return not E.Tooltip end,
args = {
header = {
order = 1,
type = "header",
name = L["Visibility"]
},
actionbars = {
order = 2,
type = "select",
name = L["ActionBars"],
desc = L["Choose when you want the tooltip to show. If a modifer is chosen, then you need to hold that down to show the tooltip."],
values = {
["ALL"] = L["Always Hide"],
["NONE"] = L["Never Hide"],
["SHIFT"] = L["Shift Key"],
["ALT"] = L["ALT-Key"],
["CTRL"] = L["CTRL-Key"]
}
},
bags = {
order = 3,
type = "select",
name = L["Bags/Bank"],
desc = L["Choose when you want the tooltip to show. If a modifer is chosen, then you need to hold that down to show the tooltip."],
values = {
["ALL"] = L["Always Hide"],
["NONE"] = L["Never Hide"],
["SHIFT"] = L["Shift Key"],
["ALT"] = L["ALT-Key"],
["CTRL"] = L["CTRL-Key"]
}
},
unitFrames = {
order = 4,
type = "select",
name = L["UnitFrames"],
desc = L["Choose when you want the tooltip to show. If a modifer is chosen, then you need to hold that down to show the tooltip."],
values = {
["ALL"] = L["Always Hide"],
["NONE"] = L["Never Hide"],
["SHIFT"] = L["Shift Key"],
["ALT"] = L["ALT-Key"],
["CTRL"] = L["CTRL-Key"]
}
},
combat = {
order = 5,
type = "toggle",
name = L["Combat"],
desc = L["Hide tooltip while in combat."]
}
}
},
healthBar = {
order = 5,
type = "group",
name = L["Health Bar"],
get = function(info) return E.db.tooltip.healthBar[ info[getn(info)] ] end,
set = function(info, value) E.db.tooltip.healthBar[ info[getn(info)] ] = value end,
disabled = function() return not E.Tooltip end,
args = {
header = {
order = 1,
type = "header",
name = L["Health Bar"]
},
height = {
order = 2,
type = "range",
name = L["Height"],
min = 1, max = 15, step = 1,
set = function(info, value) E.db.tooltip.healthBar.height = value GameTooltipStatusBar:Height(value) end
},
statusPosition = {
order = 3,
type = "select",
name = L["Position"],
values = {
["BOTTOM"] = L["Bottom"],
["TOP"] = L["Top"]
}
},
text = {
order = 4,
type = "toggle",
name = L["Text"],
set = function(info, value) E.db.tooltip.healthBar.text = value if(value) then GameTooltipStatusBar.text:Show(); else GameTooltipStatusBar.text:Hide() end end
},
font = {
order = 5,
type = "select", dialogControl = "LSM30_Font",
name = L["Font"],
values = AceGUIWidgetLSMlists.font,
set = function(info, value)
E.db.tooltip.healthBar.font = value
E:FontTemplate(GameTooltipStatusBar.text, LSM:Fetch("font", E.db.tooltip.healthBar.font), E.db.tooltip.healthBar.fontSize, E.db.tooltip.healthBar.fontOutline)
end,
disabled = function() return not E.db.tooltip.healthBar.text end
},
fontSize = {
order = 6,
type = "range",
name = L["Font Size"],
min = 4, max = 33, step = 1,
set = function(info, value)
E.db.tooltip.healthBar.fontSize = value
E:FontTemplate(GameTooltipStatusBar.text, LSM:Fetch("font", E.db.tooltip.healthBar.font), E.db.tooltip.healthBar.fontSize, E.db.tooltip.healthBar.fontOutline)
end,
disabled = function() return not E.db.tooltip.healthBar.text end
},
fontOutline = {
order = 7,
type = "select",
name = L["Font Outline"],
values = {
["NONE"] = L["None"],
["OUTLINE"] = "OUTLINE",
["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE",
["THICKOUTLINE"] = "THICKOUTLINE"
},
set = function(info, value)
E.db.tooltip.healthBar.fontOutline = value
E:FontTemplate(GameTooltipStatusBar.text, LSM:Fetch("font", E.db.tooltip.healthBar.font), E.db.tooltip.healthBar.fontSize, E.db.tooltip.healthBar.fontOutline)
end,
disabled = function() return not E.db.tooltip.healthBar.text end
}
}
}
}
}
for i = 1, 8 do
E.Options.args.tooltip.args.general.args.factionColors.args[""..i] = {
order = i,
type = "color",
hasAlpha = false,
name = _G["FACTION_STANDING_LABEL"..i],
disabled = function() return not E.Tooltip or not E.db.tooltip.useCustomFactionColors end,
}
end