Files

381 lines
10 KiB
Lua

local E, L, V, P, G = unpack(ElvUI)
local EFL = E:GetModule("EnhancedFriendsList")
local function ColorizeSettingName(settingName)
return format("|cff1784d1%s|r", settingName)
end
function EFL:InsertOptions()
E.Options.args.enhanceFriendsList = {
order = 54,
type = "group",
childGroups = "tab",
name = ColorizeSettingName(L["Enhanced Friends List"]),
args = {
header = {
order = 1,
type = "header",
name = L["Enhanced Friends List"]
},
general = {
order = 2,
type = "group",
name = L["General"],
get = function(info) return E.db.enhanceFriendsList[ info[#info] ] end,
set = function(info, value) E.db.enhanceFriendsList[ info[#info] ] = value; EFL:Update(); FriendsList_Update(); FriendsFrameStatusDropDown_Update() end,
args = {
header = {
order = 0,
type = "header",
name = L["General"],
},
showBackground = {
order = 1,
type = "toggle",
name = L["Show Background"]
},
showStatusIcon = {
order = 2,
type = "toggle",
name = L["Show Status Icon"]
},
statusIcons = {
order = 3,
type = "select",
name = L["Status Icons Textures"],
values = {
["Default"] = L["Default"],
["Square"] = "Square",
["D3"] = "Diablo 3"
}
},
nameFont = {
order = 4,
type = "group",
name = L["Name Font"],
guiInline = true,
get = function(info) return E.db.enhanceFriendsList[ info[#info] ] end,
set = function(info, value) E.db.enhanceFriendsList[ info[#info] ] = value; EFL:Update(); FriendsList_Update() end,
args = {
nameFont = {
order = 1,
type = "select", dialogControl = "LSM30_Font",
name = L["Font"],
values = AceGUIWidgetLSMlists.font
},
nameFontSize = {
order = 2,
type = "range",
name = FONT_SIZE,
min = 6, max = 22, step = 1
},
nameFontOutline = {
order = 3,
type = "select",
name = L["Font Outline"],
desc = L["Set the font outline."],
values = {
["NONE"] = NONE,
["OUTLINE"] = "OUTLINE",
["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE",
["THICKOUTLINE"] = "THICKOUTLINE"
}
}
}
},
zoneFont = {
order = 5,
type = "group",
name = L["Zone Font"],
guiInline = true,
get = function(info) return E.db.enhanceFriendsList[ info[#info] ] end,
set = function(info, value) E.db.enhanceFriendsList[ info[#info] ] = value; EFL:Update(); FriendsList_Update() end,
args = {
zoneFont = {
order = 1,
type = "select", dialogControl = "LSM30_Font",
name = L["Font"],
values = AceGUIWidgetLSMlists.font
},
zoneFontSize = {
order = 2,
type = "range",
name = FONT_SIZE,
min = 6, max = 22, step = 1
},
zoneFontOutline = {
order = 3,
type = "select",
name = L["Font Outline"],
desc = L["Set the font outline."],
values = {
["NONE"] = NONE,
["OUTLINE"] = "OUTLINE",
["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE",
["THICKOUTLINE"] = "THICKOUTLINE"
}
}
}
}
}
},
Online = {
order = 3,
type = "group",
name = L["Online Friends"],
get = function(info) return E.db.enhanceFriendsList.Online[ info[#info] ] end,
set = function(info, value) E.db.enhanceFriendsList.Online[ info[#info] ] = value; EFL:Update(); FriendsList_Update() end,
args = {
header = {
order = 0,
type = "header",
name = L["Online Friends"]
},
name = {
order = 1,
type = "group",
name = NAME,
guiInline = true,
args = {
enhancedName = {
order = 1,
type = "toggle",
name = L["Enhanced Name"]
},
colorizeNameOnly = {
order = 2,
type = "toggle",
name = L["Colorize Name Only"],
disabled = function() return not E.db.enhanceFriendsList.Online.enhancedName end
}
}
},
level = {
order = 2,
type = "group",
name = LEVEL,
guiInline = true,
args = {
level = {
order = 1,
type = "toggle",
name = L["Show"]
},
levelColor = {
order = 2,
type = "toggle",
name = L["Level Range Color"],
disabled = function() return not E.db.enhanceFriendsList.Online.level end
},
levelText = {
order = 3,
type = "toggle",
name = L["Level Text"],
disabled = function() return not E.db.enhanceFriendsList.Online.level end
},
shortLevel = {
order = 4,
type = "toggle",
name = L["Short Level"],
disabled = function() return not E.db.enhanceFriendsList.Online.level or not E.db.enhanceFriendsList.Online.levelText end
}
}
},
class = {
order = 3,
type = "group",
name = CLASS,
guiInline = true,
args = {
classText = {
order = 1,
type = "toggle",
name = L["Class Text"]
},
classIcon = {
order = 2,
type = "toggle",
name = L["Class Icon"]
},
classIconStatusColor = {
order = 3,
type = "toggle",
name = L["Class Icon Status Color"],
disabled = function() return not E.db.enhanceFriendsList.Online.classIcon end
}
}
},
zone = {
order = 4,
type = "group",
name = ZONE,
guiInline = true,
args = {
zoneText = {
order = 1,
type = "toggle",
name = L["Zone Text"]
},
spacer = {
order = 2,
type = "description",
name = ""
},
enhancedZone = {
order = 3,
type = "toggle",
name = L["Enhanced Zone"],
disabled = function() return not E.db.enhanceFriendsList.Online.zoneText end
},
enhancedZoneColor = {
order = 4,
type = "color",
name = L["Enhanced Zone Color"],
get = function(info)
local t = E.db.enhanceFriendsList.Online.enhancedZoneColor
local d = P.enhanceFriendsList.Online.enhancedZoneColor
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.enhanceFriendsList.Online.enhancedZoneColor
t.r, t.g, t.b = r, g, b
FriendsList_Update()
end,
disabled = function() return not E.db.enhanceFriendsList.Online.zoneText or not E.db.enhanceFriendsList.Online.enhancedZone end
},
spacer2 = {
order = 5,
type = "description",
name = "",
},
sameZone = {
order = 6,
type = "toggle",
name = L["Same Zone"],
desc = L["Friends that are in the same area as you, have their zone info colorized green."],
disabled = function() return not E.db.enhanceFriendsList.Online.zoneText end
},
sameZoneColor = {
order = 7,
type = "color",
name = L["Same Zone Color"],
get = function(info)
local t = E.db.enhanceFriendsList.Online.sameZoneColor
local d = P.enhanceFriendsList.Online.sameZoneColor
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.enhanceFriendsList.Online.sameZoneColor
t.r, t.g, t.b = r, g, b
FriendsList_Update()
end,
disabled = function() return not E.db.enhanceFriendsList.Online.zoneText or not E.db.enhanceFriendsList.Online.sameZone end
}
}
}
}
},
Offline = {
order = 4,
type = "group",
name = L["Offline Friends"],
get = function(info) return E.db.enhanceFriendsList.Offline[ info[#info] ] end,
set = function(info, value) E.db.enhanceFriendsList.Offline[ info[#info] ] = value; EFL:Update(); FriendsList_Update() end,
args = {
header = {
order = 0,
type = "header",
name = L["Offline Friends"]
},
name = {
order = 1,
type = "group",
name = NAME,
guiInline = true,
args = {
enhancedName = {
order = 1,
type = "toggle",
name = L["Enhanced Name"]
},
colorizeNameOnly = {
order = 2,
type = "toggle",
name = L["Colorize Name Only"],
disabled = function() return not E.db.enhanceFriendsList.Offline.enhancedName end
}
}
},
level = {
order = 2,
type = "group",
name = LEVEL,
guiInline = true,
args = {
level = {
order = 1,
type = "toggle",
name = L["Show"]
},
levelColor = {
order = 2,
type = "toggle",
name = L["Level Range Color"],
disabled = function() return not E.db.enhanceFriendsList.Offline.level end
},
levelText = {
order = 3,
type = "toggle",
name = L["Level Text"],
desc = L["Hides the 'Level' or 'L' text."],
disabled = function() return not E.db.enhanceFriendsList.Offline.level end
},
shortLevel = {
order = 4,
type = "toggle",
name = L["Short Level"],
disabled = function() return not E.db.enhanceFriendsList.Offline.level or not E.db.enhanceFriendsList.Offline.levelText end
}
}
},
class = {
order = 3,
type = "group",
name = CLASS,
guiInline = true,
args = {
classText = {
order = 1,
type = "toggle",
name = L["Class Text"]
},
classIcon = {
order = 2,
type = "toggle",
name = L["Class Icon"]
}
}
},
zone = {
order = 4,
type = "group",
name = ZONE,
guiInline = true,
args = {
zoneText = {
order = 1,
type = "toggle",
name = L["Zone Text"]
},
lastSeen = {
order = 2,
type = "toggle",
name = L["Last Seen"]
}
}
}
}
}
}
}
end