1872 lines
50 KiB
Lua
1872 lines
50 KiB
Lua
local E, L, V, P, G = unpack(ElvUI)
|
|
local EE = E:GetModule("ElvUI_Enhanced")
|
|
|
|
local function GeneralOptions()
|
|
local M = E:GetModule("Enhanced_Misc")
|
|
|
|
return {
|
|
type = "group",
|
|
name = L["General"],
|
|
get = function(info) return E.db.enhanced.general[info[#info]] end,
|
|
args = {
|
|
header = {
|
|
order = 1,
|
|
type = "header",
|
|
name = EE:ColorizeSettingName(L["General"])
|
|
},
|
|
pvpAutoRelease = {
|
|
type = "toggle",
|
|
name = L["PvP Autorelease"],
|
|
desc = L["Automatically release body when killed inside a battleground."],
|
|
set = function(info, value)
|
|
E.db.enhanced.general[info[#info]] = value
|
|
M:AutoRelease()
|
|
end
|
|
},
|
|
autoRepChange = {
|
|
type = "toggle",
|
|
name = L["Track Reputation"],
|
|
desc = L["Automatically change your watched faction on the reputation bar to the faction you got reputation points for."],
|
|
set = function(info, value)
|
|
E.db.enhanced.general[info[#info]] = value
|
|
M:WatchedFaction()
|
|
end
|
|
},
|
|
selectQuestReward = {
|
|
type = "toggle",
|
|
name = L["Select Quest Reward"],
|
|
desc = L["Automatically select the quest reward with the highest vendor sell value."],
|
|
get = function(info) return E.private.general[info[#info]] end,
|
|
set = function(info, value)
|
|
E.private.general[info[#info]] = value
|
|
M:ToggleQuestReward()
|
|
end
|
|
},
|
|
declineduel = {
|
|
type = "toggle",
|
|
name = L["Decline Duel"],
|
|
desc = L["Auto decline all duels"],
|
|
set = function(info, value)
|
|
E.db.enhanced.general[info[#info]] = value
|
|
M:DeclineDuel()
|
|
end
|
|
},
|
|
hideZoneText = {
|
|
type = "toggle",
|
|
name = L["Hide Zone Text"],
|
|
set = function(info, value)
|
|
E.db.enhanced.general[info[#info]] = value
|
|
M:HideZone()
|
|
end
|
|
},
|
|
alreadyKnown = {
|
|
type = "toggle",
|
|
name = L["Already Known"],
|
|
desc = L["Change color of item icons which already known."],
|
|
set = function(info, value)
|
|
E.db.enhanced.general[info[#info]] = value
|
|
E:GetModule("Enhanced_AlreadyKnown"):ToggleState()
|
|
end
|
|
},
|
|
altBuyMaxStack = {
|
|
type = "toggle",
|
|
name = L["Alt-Click Merchant"],
|
|
desc = L["Holding Alt key while buying something from vendor will now buy an entire stack."],
|
|
set = function(info, value)
|
|
E.db.enhanced.general[info[#info]] = value
|
|
M:BuyStackToggle()
|
|
end
|
|
},
|
|
trainAllSkills = {
|
|
type = "toggle",
|
|
name = L["Train All Button"],
|
|
desc = L["Add button to Trainer frame with ability to train all available skills in one click."],
|
|
set = function(info, value)
|
|
E.db.enhanced.general.trainAllSkills = value
|
|
E:GetModule("Enhanced_TrainAll"):ToggleState()
|
|
end
|
|
},
|
|
showQuestLevel = {
|
|
type = "toggle",
|
|
name = L["Show Quest Level"],
|
|
desc = L["Display quest levels at Quest Log."],
|
|
set = function(info, value)
|
|
E.db.enhanced.general.showQuestLevel = value
|
|
M:QuestLevelToggle()
|
|
end
|
|
},
|
|
dpsLinks = {
|
|
type = "toggle",
|
|
name = L["Filter DPS meters Spam"],
|
|
desc = L["Replaces reports from damage meters with a clickable hyperlink to reduce chat spam"],
|
|
get = function(info) return E.db.enhanced.chat.dpsLinks end,
|
|
set = function(info, value)
|
|
E.db.enhanced.chat.dpsLinks = value
|
|
E:GetModule("Enhanced_DPSLinks"):UpdateSettings()
|
|
end
|
|
},
|
|
moverTransparancy = {
|
|
order = -2,
|
|
type = "range",
|
|
isPercent = true,
|
|
name = L["Mover Transparency"],
|
|
desc = L["Changes the transparency of all the movers."],
|
|
min = 0, max = 1, step = 0.01,
|
|
set = function(info, value)
|
|
E.db.enhanced.general[info[#info]] = value
|
|
M:UpdateMoverTransparancy()
|
|
end
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
local function ActionbarOptions()
|
|
local KPA = E:GetModule("Enhanced_KeyPressAnimation")
|
|
|
|
return {
|
|
type = "group",
|
|
name = L["ActionBars"],
|
|
args = {
|
|
header = {
|
|
order = 0,
|
|
type = "header",
|
|
name = EE:ColorizeSettingName(L["ActionBars"])
|
|
},
|
|
keyPressAnimation = {
|
|
order = 1,
|
|
type = "group",
|
|
name = L["Key Press Animation"],
|
|
guiInline = true,
|
|
get = function(info) return E.db.enhanced.actionbar.keyPressAnimation[info[#info]] end,
|
|
set = function(info, value)
|
|
E.db.enhanced.actionbar.keyPressAnimation[info[#info]] = value
|
|
KPA:UpdateSetting()
|
|
end,
|
|
args = {
|
|
enable = {
|
|
order = 1,
|
|
type = "toggle",
|
|
name = L["Enable"],
|
|
get = function(info) return E.private.enhanced.actionbar.keyPressAnimation end,
|
|
set = function(info, value)
|
|
E.private.enhanced.actionbar.keyPressAnimation = value
|
|
E:StaticPopup_Show("PRIVATE_RL")
|
|
end,
|
|
},
|
|
color = {
|
|
order = 2,
|
|
type = "color",
|
|
name = L["COLOR"],
|
|
get = function(info)
|
|
local t = E.db.enhanced.actionbar.keyPressAnimation[info[#info]]
|
|
local d = P.enhanced.actionbar.keyPressAnimation[info[#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.enhanced.actionbar.keyPressAnimation[info[#info]]
|
|
t.r, t.g, t.b = r, g, b
|
|
KPA:UpdateSetting()
|
|
end,
|
|
disabled = function() return not E.private.enhanced.actionbar.keyPressAnimation end,
|
|
},
|
|
scale = {
|
|
order = 3,
|
|
type = "range",
|
|
min = 1, max = 3, step = 0.1,
|
|
isPercent = true,
|
|
name = L["Scale"],
|
|
disabled = function() return not E.private.enhanced.actionbar.keyPressAnimation end,
|
|
},
|
|
rotation = {
|
|
order = 4,
|
|
type = "range",
|
|
min = 0, max = 360, step = 1,
|
|
name = L["Rotation"],
|
|
disabled = function() return not E.private.enhanced.actionbar.keyPressAnimation end,
|
|
},
|
|
}
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
local function BlizzardOptions()
|
|
local B = E:GetModule("Enhanced_Blizzard")
|
|
local WF = E:GetModule("Enhanced_WatchFrame")
|
|
local TAM = E:GetModule("Enhanced_TakeAllMail")
|
|
|
|
local choices = {
|
|
["NONE"] = L["NONE"],
|
|
["COLLAPSED"] = L["Collapsed"],
|
|
["HIDDEN"] = L["Hidden"]
|
|
}
|
|
|
|
return {
|
|
type = "group",
|
|
childGroups = "tree",
|
|
name = L["BlizzUI Improvements"],
|
|
get = function(info) return E.private.enhanced[info[#info]] end,
|
|
set = function(info, value)
|
|
E.private.enhanced[info[#info]] = value
|
|
E:StaticPopup_Show("PRIVATE_RL")
|
|
end,
|
|
args = {
|
|
header = {
|
|
order = 1,
|
|
type = "header",
|
|
name = EE:ColorizeSettingName(L["BlizzUI Improvements"])
|
|
},
|
|
general = {
|
|
order = 2,
|
|
type = "group",
|
|
name = L["General"],
|
|
args = {
|
|
header = {
|
|
order = 1,
|
|
type = "header",
|
|
name = L["General"]
|
|
},
|
|
deathRecap = {
|
|
order = 2,
|
|
type = "toggle",
|
|
name = L["Death Recap Frame"]
|
|
},
|
|
takeAllMail = {
|
|
order = 3,
|
|
type = "toggle",
|
|
name = L["Take All Mail"],
|
|
get = function(info) return E.db.enhanced.blizzard.takeAllMail end,
|
|
set = function(info, value)
|
|
E.db.enhanced.blizzard.takeAllMail = value
|
|
if value and not TAM.initialized then
|
|
TAM:Initialize()
|
|
elseif not value then
|
|
E:StaticPopup_Show("CONFIG_RL")
|
|
end
|
|
end
|
|
},
|
|
animatedAchievementBars = {
|
|
order = 4,
|
|
type = "toggle",
|
|
name = L["Animated Achievement Bars"]
|
|
}
|
|
}
|
|
},
|
|
dressingRoom = {
|
|
order = 4,
|
|
type = "group",
|
|
name = L["Dressing Room"],
|
|
get = function(info) return E.db.enhanced.blizzard.dressUpFrame[info[#info]] end,
|
|
set = function(info, value)
|
|
E.db.enhanced.blizzard.dressUpFrame[info[#info]] = value
|
|
E:GetModule("Enhanced_Blizzard"):UpdateDressUpFrame()
|
|
end,
|
|
args = {
|
|
header = {
|
|
order = 1,
|
|
type = "header",
|
|
name = L["Dressing Room"],
|
|
},
|
|
enable = {
|
|
order = 2,
|
|
type = "toggle",
|
|
name = L["Enable"],
|
|
set = function(info, value)
|
|
E.db.enhanced.blizzard.dressUpFrame[info[#info]] = value
|
|
E:StaticPopup_Show("PRIVATE_RL")
|
|
end,
|
|
},
|
|
multiplier = {
|
|
order = 3,
|
|
type = "range",
|
|
min = 1, max = 2, step = 0.01,
|
|
isPercent = true,
|
|
name = L["Scale"],
|
|
disabled = function() return not E.db.enhanced.blizzard.dressUpFrame.enable end
|
|
},
|
|
undressButton = {
|
|
order = 4,
|
|
type = "toggle",
|
|
name = L["Undress Button"],
|
|
desc = L["Add button to Dressing Room frame with ability to undress model."],
|
|
get = function(info) return E.db.enhanced.general.undressButton end,
|
|
set = function(info, value)
|
|
E.db.enhanced.general.undressButton = value
|
|
E:GetModule("Enhanced_UndressButtons"):ToggleState()
|
|
end
|
|
}
|
|
}
|
|
},
|
|
timerTracker = {
|
|
order = 5,
|
|
type = "group",
|
|
name = L["Timer Tracker"],
|
|
get = function(info) return E.db.enhanced.timerTracker[info[#info]] end,
|
|
args = {
|
|
header = {
|
|
order = 1,
|
|
type = "header",
|
|
name = L["Timer Tracker"]
|
|
},
|
|
enable = {
|
|
order = 2,
|
|
type = "toggle",
|
|
name = L["Enable"],
|
|
set = function(info, value)
|
|
E.db.enhanced.timerTracker.enable = value
|
|
E:GetModule("Enhanced_TimerTracker"):ToggleState()
|
|
end
|
|
},
|
|
dbm = {
|
|
order = 3,
|
|
type = "toggle",
|
|
name = L["Hook DBM"],
|
|
set = function(info, value)
|
|
E.db.enhanced.timerTracker.dbm = value
|
|
E:GetModule("Enhanced_TimerTracker"):HookDBM()
|
|
end,
|
|
disabled = function() return not E.db.enhanced.timerTracker.enable end
|
|
}
|
|
}
|
|
},
|
|
watchframe = {
|
|
order = 6,
|
|
type = "group",
|
|
name = L["Watch Frame"],
|
|
get = function(info) return E.db.enhanced.watchframe[info[#info]] end,
|
|
set = function(info, value)
|
|
E.db.enhanced.watchframe[info[#info]] = value
|
|
WF:UpdateSettings()
|
|
end,
|
|
args = {
|
|
header = {
|
|
order = 1,
|
|
type = "header",
|
|
name = L["Watch Frame"],
|
|
},
|
|
intro = {
|
|
order = 2,
|
|
type = "description",
|
|
name = L["WATCHFRAME_DESC"]
|
|
},
|
|
enable = {
|
|
order = 3,
|
|
type = "toggle",
|
|
name = L["Enable"]
|
|
},
|
|
settings = {
|
|
order = 4,
|
|
type = "group",
|
|
name = L["Visibility State"],
|
|
guiInline = true,
|
|
get = function(info) return E.db.enhanced.watchframe[info[#info]] end,
|
|
set = function(info, value)
|
|
E.db.enhanced.watchframe[info[#info]] = value
|
|
WF:ChangeState()
|
|
end,
|
|
disabled = function() return not E.db.enhanced.watchframe.enable end,
|
|
args = {
|
|
city = {
|
|
order = 1,
|
|
type = "select",
|
|
name = L["City (Resting)"],
|
|
values = choices
|
|
},
|
|
pvp = {
|
|
order = 2,
|
|
type = "select",
|
|
name = L["PvP"],
|
|
values = choices
|
|
},
|
|
arena = {
|
|
order = 3,
|
|
type = "select",
|
|
name = L["Arena"],
|
|
values = choices
|
|
},
|
|
party = {
|
|
order = 4,
|
|
type = "select",
|
|
name = L["Party"],
|
|
values = choices
|
|
},
|
|
raid = {
|
|
order = 5,
|
|
type = "select",
|
|
name = L["Raid"],
|
|
values = choices
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
errorFrame = {
|
|
order = 7,
|
|
type = "group",
|
|
name = L["Error Frame"],
|
|
get = function(info) return E.db.enhanced.blizzard.errorFrame[info[#info]] end,
|
|
set = function(info, value)
|
|
E.db.enhanced.blizzard.errorFrame[info[#info]] = value
|
|
B:ErrorFrameSize()
|
|
end,
|
|
args = {
|
|
header = {
|
|
order = 1,
|
|
type = "header",
|
|
name = L["Error Frame"]
|
|
},
|
|
enable = {
|
|
order = 2,
|
|
type = "toggle",
|
|
name = L["Enable"],
|
|
set = function(info, value)
|
|
E.db.enhanced.blizzard.errorFrame[info[#info]] = value
|
|
B:CustomErrorFrameToggle()
|
|
end
|
|
},
|
|
width = {
|
|
order = 3,
|
|
type = "range",
|
|
min = 100, max = 1000, step = 1,
|
|
name = L["Width"],
|
|
desc = L["Set the width of Error Frame. Too narrow frame may cause messages to be split in several lines"],
|
|
disabled = function() return not E.db.enhanced.blizzard.errorFrame.enable end
|
|
},
|
|
height = {
|
|
order = 4,
|
|
type = "range",
|
|
min = 30, max = 300, step = 1,
|
|
name = L["Height"],
|
|
desc = L["Set the height of Error Frame. Higher frame can show more lines at once."],
|
|
disabled = function() return not E.db.enhanced.blizzard.errorFrame.enable end
|
|
},
|
|
spacer = {
|
|
order = 5,
|
|
type = "description",
|
|
name = " "
|
|
},
|
|
font = {
|
|
order = 6,
|
|
type = "select",
|
|
dialogControl = "LSM30_Font",
|
|
name = L["Font"],
|
|
values = AceGUIWidgetLSMlists.font,
|
|
disabled = function() return not E.db.enhanced.blizzard.errorFrame.enable end
|
|
},
|
|
fontSize = {
|
|
order = 7,
|
|
type = "range",
|
|
min = 6, max = 36, step = 1,
|
|
name = L["FONT_SIZE"],
|
|
disabled = function() return not E.db.enhanced.blizzard.errorFrame.enable end
|
|
},
|
|
fontOutline = {
|
|
order = 8,
|
|
type = "select",
|
|
name = L["Font Outline"],
|
|
values = {
|
|
["NONE"] = L["NONE"],
|
|
["OUTLINE"] = "OUTLINE",
|
|
["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE",
|
|
["THICKOUTLINE"] = "THICKOUTLINE"
|
|
},
|
|
disabled = function() return not E.db.enhanced.blizzard.errorFrame.enable end
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
local function EquipmentInfoOptions()
|
|
local EI = E:GetModule("Enhanced_EquipmentInfo")
|
|
|
|
return {
|
|
type = "group",
|
|
name = L["Equipment Info"],
|
|
args = {
|
|
header = {
|
|
order = 1,
|
|
type = "header",
|
|
name = EE:ColorizeSettingName(L["Equipment Info"])
|
|
},
|
|
enable = {
|
|
order = 2,
|
|
type = "toggle",
|
|
width = "full",
|
|
name = L["Enable"],
|
|
get = function(info) return E.db.enhanced.equipment[info[#info]] end,
|
|
set = function(info, value)
|
|
E.db.enhanced.equipment[info[#info]] = value
|
|
EI:ToggleState()
|
|
end,
|
|
},
|
|
itemlevel = {
|
|
order = 3,
|
|
type = "group",
|
|
guiInline = true,
|
|
name = L["Item Level"],
|
|
get = function(info) return E.db.enhanced.equipment.itemlevel[info[#info]] end,
|
|
set = function(info, value)
|
|
E.db.enhanced.equipment.itemlevel[info[#info]] = value
|
|
EI:UpdateText()
|
|
end,
|
|
disabled = function() return not (E.db.enhanced.equipment.enable and E.db.enhanced.equipment.itemlevel.enable) end,
|
|
args = {
|
|
info = {
|
|
order = 1,
|
|
type = "description",
|
|
name = L["ITEMLEVEL_DESC"]
|
|
},
|
|
enable = {
|
|
order = 2,
|
|
type = "toggle",
|
|
name = L["Enable"],
|
|
desc = L["Enable/Disable the display of item levels on the character screen."],
|
|
disabled = function() return not E.db.enhanced.equipment.enable end,
|
|
},
|
|
qualityColor = {
|
|
order = 3,
|
|
type = "toggle",
|
|
name = L["Quality Color"]
|
|
},
|
|
spacer = {
|
|
order = 4,
|
|
type = "description",
|
|
name = " "
|
|
},
|
|
position = {
|
|
order = 5,
|
|
type = "select",
|
|
name = L["Position"],
|
|
values = {
|
|
["TOP"] = "TOP",
|
|
["TOPLEFT"] = "TOPLEFT",
|
|
["TOPRIGHT"] = "TOPRIGHT",
|
|
["BOTTOM"] = "BOTTOM",
|
|
["BOTTOMLEFT"] = "BOTTOMLEFT",
|
|
["BOTTOMRIGHT"] = "BOTTOMRIGHT"
|
|
},
|
|
set = function(info, value)
|
|
E.db.enhanced.equipment.itemlevel[info[#info]] = value
|
|
EI:UpdateTextSettings()
|
|
end
|
|
},
|
|
xOffset = {
|
|
order = 6,
|
|
type = "range",
|
|
min = -50, max = 50, step = 1,
|
|
name = L["X-Offset"],
|
|
set = function(info, value)
|
|
E.db.enhanced.equipment.itemlevel[info[#info]] = value
|
|
EI:UpdateTextSettings()
|
|
end
|
|
},
|
|
yOffset = {
|
|
order = 7,
|
|
type = "range",
|
|
min = -50, max = 50, step = 1,
|
|
name = L["Y-Offset"],
|
|
set = function(info, value)
|
|
E.db.enhanced.equipment.itemlevel[info[#info]] = value
|
|
EI:UpdateTextSettings()
|
|
end
|
|
}
|
|
}
|
|
},
|
|
durability = {
|
|
order = 4,
|
|
type = "group",
|
|
name = DURABILITY,
|
|
guiInline = true,
|
|
get = function(info) return E.db.enhanced.equipment.durability[info[#info]] end,
|
|
set = function(info, value)
|
|
E.db.enhanced.equipment.durability[info[#info]] = value
|
|
EI:UpdateText()
|
|
end,
|
|
disabled = function() return not (E.db.enhanced.equipment.enable and E.db.enhanced.equipment.durability.enable) end,
|
|
args = {
|
|
info = {
|
|
order = 1,
|
|
type = "description",
|
|
name = L["DURABILITY_DESC"]
|
|
},
|
|
enable = {
|
|
order = 2,
|
|
type = "toggle",
|
|
name = L["Enable"],
|
|
desc = L["Enable/Disable the display of durability information on the character screen."],
|
|
disabled = function() return not E.db.enhanced.equipment.enable end,
|
|
},
|
|
onlydamaged = {
|
|
order = 3,
|
|
type = "toggle",
|
|
name = L["Damaged Only"],
|
|
desc = L["Only show durabitlity information for items that are damaged."],
|
|
},
|
|
spacer = {
|
|
order = 4,
|
|
type = "description",
|
|
name = " "
|
|
},
|
|
position = {
|
|
order = 5,
|
|
type = "select",
|
|
name = L["Position"],
|
|
values = {
|
|
["TOP"] = "TOP",
|
|
["TOPLEFT"] = "TOPLEFT",
|
|
["TOPRIGHT"] = "TOPRIGHT",
|
|
["BOTTOM"] = "BOTTOM",
|
|
["BOTTOMLEFT"] = "BOTTOMLEFT",
|
|
["BOTTOMRIGHT"] = "BOTTOMRIGHT"
|
|
},
|
|
set = function(info, value)
|
|
E.db.enhanced.equipment.durability[info[#info]] = value
|
|
EI:UpdateTextSettings()
|
|
end
|
|
},
|
|
xOffset = {
|
|
order = 6,
|
|
type = "range",
|
|
min = -50, max = 50, step = 1,
|
|
name = L["X-Offset"],
|
|
set = function(info, value)
|
|
E.db.enhanced.equipment.durability[info[#info]] = value
|
|
EI:UpdateTextSettings()
|
|
end
|
|
},
|
|
yOffset = {
|
|
order = 7,
|
|
type = "range",
|
|
min = -50, max = 50, step = 1,
|
|
name = L["Y-Offset"],
|
|
set = function(info, value)
|
|
E.db.enhanced.equipment.durability[info[#info]] = value
|
|
EI:UpdateTextSettings()
|
|
end
|
|
}
|
|
}
|
|
},
|
|
fontGroup = {
|
|
order = 5,
|
|
type = "group",
|
|
guiInline = true,
|
|
name = L["Font"],
|
|
get = function(info) return E.db.enhanced.equipment[info[#info]] end,
|
|
set = function(info, value)
|
|
E.db.enhanced.equipment[info[#info]] = value
|
|
EI:UpdateTextSettings()
|
|
end,
|
|
disabled = function() return not E.db.enhanced.equipment.enable end,
|
|
args = {
|
|
font = {
|
|
order = 1,
|
|
type = "select",
|
|
dialogControl = "LSM30_Font",
|
|
name = L["Font"],
|
|
values = AceGUIWidgetLSMlists.font
|
|
},
|
|
fontSize = {
|
|
order = 2,
|
|
type = "range",
|
|
min = 6, max = 36, step = 1,
|
|
name = L["FONT_SIZE"]
|
|
},
|
|
fontOutline = {
|
|
order = 3,
|
|
type = "select",
|
|
name = L["Font Outline"],
|
|
values = {
|
|
["NONE"] = L["NONE"],
|
|
["OUTLINE"] = "OUTLINE",
|
|
["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE",
|
|
["THICKOUTLINE"] = "THICKOUTLINE"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
local function MapOptions()
|
|
local MFC = E:GetModule("Enhanced_FogClear")
|
|
|
|
return {
|
|
type = "group",
|
|
name = L["Map"],
|
|
args = {
|
|
header = {
|
|
order = 0,
|
|
type = "header",
|
|
name = EE:ColorizeSettingName(L["Map"])
|
|
},
|
|
fogClear ={
|
|
type = "group",
|
|
name = L["Fog of War"],
|
|
guiInline = true,
|
|
args = {
|
|
enable = {
|
|
order = 1,
|
|
type = "toggle",
|
|
name = L["Enable"],
|
|
get = function(info) return E.db.enhanced.map.fogClear.enable end,
|
|
set = function(info, value)
|
|
E.db.enhanced.map.fogClear.enable = value
|
|
MFC:UpdateFog()
|
|
end
|
|
},
|
|
overlay = {
|
|
order = 2,
|
|
type = "color",
|
|
name = L["Overlay Color"],
|
|
hasAlpha = true,
|
|
get = function(info)
|
|
local t = E.db.enhanced.map.fogClear.color
|
|
local d = E.db.enhanced.map.fogClear.color
|
|
return t.r, t.g, t.b, t.a, d.r, d.g, d.b, d.a
|
|
end,
|
|
set = function(_, r, g, b, a)
|
|
local color = E.db.enhanced.map.fogClear.color
|
|
color.r, color.g, color.b, color.a = r, g, b, a
|
|
MFC:UpdateWorldMapOverlays()
|
|
end,
|
|
disabled = function() return not E.db.enhanced.map.fogClear.enable end
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
local function MinimapOptions()
|
|
E.Options.args.maps.args.minimap.args.locationTextGroup.args.locationText.values = {
|
|
["MOUSEOVER"] = L["Minimap Mouseover"],
|
|
["SHOW"] = L["Always Display"],
|
|
["ABOVE"] = EE:ColorizeSettingName(L["Above Minimap"]),
|
|
["HIDE"] = L["HIDE"]
|
|
}
|
|
|
|
local MBG = E:GetModule("Enhanced_MinimapButtonGrabber")
|
|
|
|
return {
|
|
type = "group",
|
|
name = L["Minimap"],
|
|
get = function(info) return E.db.enhanced.minimap[info[#info]] end,
|
|
set = function(info, value)
|
|
E.db.enhanced.minimap[info[#info]] = value
|
|
E:GetModule("Enhanced_MinimapLocation"):UpdateSettings()
|
|
end,
|
|
disabled = function() return not E.private.general.minimap.enable end,
|
|
args = {
|
|
header = {
|
|
order = 0,
|
|
type = "header",
|
|
name = EE:ColorizeSettingName(L["Minimap"])
|
|
},
|
|
location = {
|
|
order = 1,
|
|
type = "toggle",
|
|
name = L["Location Panel"],
|
|
desc = L["Toggle Location Panel."]
|
|
},
|
|
locationText = E.Options.args.maps.args.minimap.args.locationTextGroup.args.locationText,
|
|
showlocationdigits = {
|
|
order = 2,
|
|
type = "toggle",
|
|
name = L["Show Location Digits"],
|
|
desc = L["Toggle Location Digits."],
|
|
disabled = function() return not (E.db.enhanced.minimap.location and E.db.general.minimap.locationText == "ABOVE") end
|
|
},
|
|
locationdigits = {
|
|
order = 3,
|
|
type = "range",
|
|
name = L["Location Digits"],
|
|
desc = L["Number of digits for map location."],
|
|
min = 0, max = 2, step = 1,
|
|
set = function(info, value)
|
|
E.db.enhanced.minimap[info[#info]] = value
|
|
E:GetModule("Minimap"):UpdateSettings()
|
|
end,
|
|
disabled = function() return not (E.db.enhanced.minimap.location and E.db.general.minimap.locationText == "ABOVE" and E.db.enhanced.minimap.showlocationdigits) end
|
|
},
|
|
combatHide = {
|
|
order = 4,
|
|
type = "group",
|
|
name = L["Combat Hide"],
|
|
guiInline = true,
|
|
args = {
|
|
hideincombat = {
|
|
order = 5,
|
|
type = "toggle",
|
|
name = L["Enable"],
|
|
desc = L["Hide minimap while in combat."],
|
|
},
|
|
fadeindelay = {
|
|
order = 6,
|
|
type = "range",
|
|
name = L["FadeIn Delay"],
|
|
desc = L["The time to wait before fading the minimap back in after combat hide. (0 = Disabled)"],
|
|
min = 0, max = 20, step = 1,
|
|
disabled = function() return not E.db.enhanced.minimap.hideincombat end
|
|
}
|
|
}
|
|
},
|
|
minimapButtons = {
|
|
order = 5,
|
|
type = "group",
|
|
name = L["Minimap Button Grabber"],
|
|
guiInline = true,
|
|
get = function(info) return E.db.enhanced.minimap.buttonGrabber[info[#info]] end,
|
|
set = function(info, value)
|
|
E.db.enhanced.minimap.buttonGrabber[info[#info]] = value
|
|
MBG:UpdateLayout()
|
|
end,
|
|
disabled = function() return not E.private.enhanced.minimapButtonGrabber end,
|
|
args = {
|
|
enable = {
|
|
order = 1,
|
|
type = "toggle",
|
|
name = L["Enable"],
|
|
get = function(info) return E.private.enhanced.minimapButtonGrabber end,
|
|
set = function(info, value)
|
|
E.private.enhanced.minimapButtonGrabber = value
|
|
if value and not MBG.initialized then
|
|
MBG:Initialize()
|
|
elseif not value then
|
|
E:StaticPopup_Show("PRIVATE_RL")
|
|
end
|
|
end,
|
|
disabled = false
|
|
},
|
|
spacer = {
|
|
order = 2,
|
|
type = "description",
|
|
name = " ",
|
|
width = "full"
|
|
},
|
|
growFrom = {
|
|
order = 3,
|
|
type = "select",
|
|
name = L["Grow direction"],
|
|
values = {
|
|
["TOPLEFT"] = "DOWN -> RIGHT",
|
|
["TOPRIGHT"] = "DOWN -> LEFT",
|
|
["BOTTOMLEFT"] = "UP -> RIGHT",
|
|
["BOTTOMRIGHT"] = "UP -> LEFT"
|
|
}
|
|
},
|
|
buttonsPerRow = {
|
|
order = 4,
|
|
type = "range",
|
|
name = L["Buttons Per Row"],
|
|
desc = L["The amount of buttons to display per row."],
|
|
min = 1, max = 12, step = 1
|
|
},
|
|
buttonSize = {
|
|
order = 5,
|
|
type = "range",
|
|
name = L["Button Size"],
|
|
min = 2, max = 60, step = 1
|
|
},
|
|
buttonSpacing = {
|
|
order = 6,
|
|
type = "range",
|
|
name = L["Button Spacing"],
|
|
desc = L["The spacing between buttons."],
|
|
min = -1, max = 24, step = 1
|
|
},
|
|
backdrop = {
|
|
order = 7,
|
|
type = "toggle",
|
|
name = L["Backdrop"]
|
|
},
|
|
backdropSpacing = {
|
|
order = 8,
|
|
type = "range",
|
|
name = L["Backdrop Spacing"],
|
|
desc = L["The spacing between the backdrop and the buttons."],
|
|
min = -1, max = 15, step = 1,
|
|
disabled = function() return not E.private.enhanced.minimapButtonGrabber or not E.db.enhanced.minimap.buttonGrabber.backdrop end,
|
|
},
|
|
mouseover = {
|
|
order = 9,
|
|
type = "toggle",
|
|
name = L["Mouse Over"],
|
|
desc = L["The frame is not shown unless you mouse over the frame."],
|
|
set = function(info, value)
|
|
E.db.enhanced.minimap.buttonGrabber[info[#info]] = value
|
|
MBG:ToggleMouseover()
|
|
end
|
|
},
|
|
alpha = {
|
|
order = 10,
|
|
type = "range",
|
|
name = L["Alpha"],
|
|
min = 0, max = 1, step = 0.01,
|
|
set = function(info, value)
|
|
E.db.enhanced.minimap.buttonGrabber[info[#info]] = value
|
|
MBG:UpdateAlpha()
|
|
end
|
|
},
|
|
insideMinimapGroup = {
|
|
order = 11,
|
|
type = "group",
|
|
name = L["Inside Minimap"],
|
|
guiInline = true,
|
|
get = function(info) return E.db.enhanced.minimap.buttonGrabber.insideMinimap[info[#info]] end,
|
|
set = function(info, value)
|
|
E.db.enhanced.minimap.buttonGrabber.insideMinimap[info[#info]] = value
|
|
MBG:UpdatePosition()
|
|
end,
|
|
disabled = function() return not E.db.enhanced.minimap.buttonGrabber.insideMinimap.enable end,
|
|
args = {
|
|
enable = {
|
|
order = 1,
|
|
type = "toggle",
|
|
name = L["Enable"],
|
|
disabled = function() return not E.private.enhanced.minimapButtonGrabber end
|
|
},
|
|
position = {
|
|
order = 2,
|
|
type = "select",
|
|
name = L["Position"],
|
|
values = {
|
|
["TOPLEFT"] = "TOPLEFT",
|
|
["LEFT"] = "LEFT",
|
|
["BOTTOMLEFT"] = "BOTTOMLEFT",
|
|
["RIGHT"] = "RIGHT",
|
|
["TOPRIGHT"] = "TOPRIGHT",
|
|
["BOTTOMRIGHT"] = "BOTTOMRIGHT",
|
|
["CENTER"] = "CENTER",
|
|
["TOP"] = "TOP",
|
|
["BOTTOM"] = "BOTTOM"
|
|
}
|
|
},
|
|
xOffset = {
|
|
order = 3,
|
|
type = "range",
|
|
name = L["xOffset"],
|
|
min = -20, max = 20, step = 1
|
|
},
|
|
yOffset = {
|
|
order = 4,
|
|
type = "range",
|
|
name = L["yOffset"],
|
|
min = -20, max = 20, step = 1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
local function NamePlatesOptions()
|
|
return {
|
|
type = "group",
|
|
name = L["NamePlates"],
|
|
get = function(info) return E.db.enhanced.nameplates[info[#info]] end,
|
|
args = {
|
|
header = {
|
|
order = 0,
|
|
type = "header",
|
|
name = EE:ColorizeSettingName(L["NamePlates"])
|
|
},
|
|
classCache = {
|
|
order = 1,
|
|
type = "toggle",
|
|
name = L["Cache Unit Class"],
|
|
set = function(info, value)
|
|
E.db.enhanced.nameplates[info[#info]] = value
|
|
E:GetModule("Enhanced_NamePlates"):UpdateAllSettings()
|
|
end
|
|
},
|
|
chatBubbles = {
|
|
order = 2,
|
|
type = "toggle",
|
|
name = L["Chat Bubbles"],
|
|
set = function(info, value)
|
|
E.db.enhanced.nameplates[info[#info]] = value
|
|
E:GetModule("Enhanced_NamePlates"):UpdateAllSettings()
|
|
E:GetModule("NamePlates"):ConfigureAll()
|
|
end
|
|
},
|
|
titleCacheGroup = {
|
|
order = 3,
|
|
type = "group",
|
|
name = L["Cache Unit Guilds / NPC Titles"],
|
|
guiInline = true,
|
|
get = function(info) return E.db.enhanced.nameplates[info[#info]] end,
|
|
args = {
|
|
titleCache = {
|
|
order = 1,
|
|
type = "toggle",
|
|
name = L["Enable"],
|
|
set = function(info, value)
|
|
E.db.enhanced.nameplates[info[#info]] = value
|
|
E:GetModule("Enhanced_NamePlates"):UpdateAllSettings()
|
|
E:GetModule("NamePlates"):ConfigureAll()
|
|
end
|
|
},
|
|
guildGroup = {
|
|
order = 3,
|
|
type = "group",
|
|
name = L["Guild"],
|
|
guiInline = true,
|
|
get = function(info) return E.db.enhanced.nameplates.guild[info[#info]] end,
|
|
set = function(info, value)
|
|
E.db.enhanced.nameplates.guild[info[#info]] = value
|
|
E:GetModule("NamePlates"):ConfigureAll()
|
|
end,
|
|
disabled = function() return not E.db.enhanced.nameplates.titleCache end,
|
|
args = {
|
|
font = {
|
|
order = 1,
|
|
type = "select",
|
|
dialogControl = "LSM30_Font",
|
|
name = L["Font"],
|
|
values = AceGUIWidgetLSMlists.font,
|
|
},
|
|
fontSize = {
|
|
order = 2,
|
|
type = "range",
|
|
name = L["FONT_SIZE"],
|
|
min = 4, max = 33, step = 1,
|
|
},
|
|
fontOutline = {
|
|
order = 3,
|
|
type = "select",
|
|
name = L["Font Outline"],
|
|
values = {
|
|
["NONE"] = L["NONE"],
|
|
["OUTLINE"] = "OUTLINE",
|
|
["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE",
|
|
["THICKOUTLINE"] = "THICKOUTLINE"
|
|
}
|
|
},
|
|
separator = {
|
|
order = 4,
|
|
type = "select",
|
|
name = L["Separator"],
|
|
values = {
|
|
[" "] = L["NONE"],
|
|
["<"] = "< >",
|
|
["("] = "( )",
|
|
["["] = "[ ]",
|
|
["{"] = "{ }"
|
|
}
|
|
},
|
|
colorsGroup = {
|
|
order = 5,
|
|
type = "group",
|
|
name = L["COLORS"],
|
|
guiInline = true,
|
|
get = function(info)
|
|
local t = E.db.enhanced.nameplates.guild.colors[info[#info]]
|
|
local d = P.enhanced.nameplates.guild.colors[info[#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.enhanced.nameplates.guild.colors[info[#info]]
|
|
t.r, t.g, t.b = r, g, b
|
|
E:GetModule("NamePlates"):ConfigureAll()
|
|
end,
|
|
args = {
|
|
raid = {
|
|
order = 1,
|
|
type = "color",
|
|
name = L["RAID"],
|
|
},
|
|
party = {
|
|
order = 2,
|
|
type = "color",
|
|
name = L["PARTY"],
|
|
},
|
|
guild = {
|
|
order = 3,
|
|
type = "color",
|
|
name = L["GUILD"],
|
|
},
|
|
none = {
|
|
order = 4,
|
|
type = "color",
|
|
name = L["ALL"],
|
|
},
|
|
}
|
|
},
|
|
visabilityGroup = {
|
|
order = 6,
|
|
type = "group",
|
|
name = L["Visibility State"],
|
|
guiInline = true,
|
|
get = function(info) return E.db.enhanced.nameplates.guild.visibility[info[#info]] end,
|
|
set = function(info, value)
|
|
E.db.enhanced.nameplates.guild.visibility[info[#info]] = value
|
|
E:GetModule("NamePlates"):ConfigureAll()
|
|
end,
|
|
args = {
|
|
city = {
|
|
order = 1,
|
|
type = "toggle",
|
|
name = L["City (Resting)"]
|
|
},
|
|
pvp = {
|
|
order = 2,
|
|
type = "toggle",
|
|
name = L["PvP"]
|
|
},
|
|
arena = {
|
|
order = 3,
|
|
type = "toggle",
|
|
name = L["Arena"]
|
|
},
|
|
party = {
|
|
order = 4,
|
|
type = "toggle",
|
|
name = L["Party"]
|
|
},
|
|
raid = {
|
|
order = 5,
|
|
type = "toggle",
|
|
name = L["Raid"]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
npcGroup = {
|
|
order = 3,
|
|
type = "group",
|
|
name = L["NPC"],
|
|
guiInline = true,
|
|
get = function(info) return E.db.enhanced.nameplates.npc[info[#info]] end,
|
|
set = function(info, value)
|
|
E.db.enhanced.nameplates.npc[info[#info]] = value
|
|
E:GetModule("NamePlates"):ConfigureAll()
|
|
end,
|
|
disabled = function() return not E.db.enhanced.nameplates.titleCache end,
|
|
args = {
|
|
font = {
|
|
order = 1,
|
|
type = "select",
|
|
dialogControl = "LSM30_Font",
|
|
name = L["Font"],
|
|
values = AceGUIWidgetLSMlists.font
|
|
},
|
|
fontSize = {
|
|
order = 2,
|
|
type = "range",
|
|
name = L["FONT_SIZE"],
|
|
min = 4, max = 33, step = 1
|
|
},
|
|
fontOutline = {
|
|
order = 3,
|
|
type = "select",
|
|
name = L["Font Outline"],
|
|
values = {
|
|
["NONE"] = L["NONE"],
|
|
["OUTLINE"] = "OUTLINE",
|
|
["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE",
|
|
["THICKOUTLINE"] = "THICKOUTLINE"
|
|
}
|
|
},
|
|
reactionColor = {
|
|
order = 4,
|
|
type = "toggle",
|
|
name = L["Reaction Color"],
|
|
desc = L["Color based on reaction type."]
|
|
},
|
|
color = {
|
|
order = 5,
|
|
type = "color",
|
|
name = L["COLOR"],
|
|
get = function(info)
|
|
local t = E.db.enhanced.nameplates.npc[info[#info]]
|
|
local d = P.enhanced.nameplates.npc[info[#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.enhanced.nameplates.npc[info[#info]]
|
|
t.r, t.g, t.b = r, g, b
|
|
E:GetModule("NamePlates"):ConfigureAll()
|
|
end,
|
|
disabled = function() return E.db.enhanced.nameplates.npc.reactionColor end
|
|
},
|
|
separator = {
|
|
order = 5,
|
|
type = "select",
|
|
name = L["Separator"],
|
|
values = {
|
|
[" "] = L["NONE"],
|
|
["<"] = "< >",
|
|
["("] = "( )"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
local function TooltipOptions()
|
|
local TI = E:GetModule("Enhanced_TooltipIcon")
|
|
local PI = E:GetModule("Enhanced_ProgressionInfo")
|
|
|
|
return {
|
|
type = "group",
|
|
name = L["Tooltip"],
|
|
get = function(info) return E.db.enhanced.tooltip[info[#info]] end,
|
|
args = {
|
|
header = {
|
|
order = 0,
|
|
type = "header",
|
|
name = EE:ColorizeSettingName(L["Tooltip"])
|
|
},
|
|
itemQualityBorderColor = {
|
|
order = 1,
|
|
type = "toggle",
|
|
name = L["Item Border Color"],
|
|
desc = L["Colorize the tooltip border based on item quality."],
|
|
set = function(info, value)
|
|
E.db.enhanced.tooltip.itemQualityBorderColor = value
|
|
E:GetModule("Enhanced_ItemBorderColor"):ToggleState()
|
|
end
|
|
},
|
|
tooltipIcon = {
|
|
order = 2,
|
|
type = "group",
|
|
name = L["Tooltip Icon"],
|
|
guiInline = true,
|
|
get = function(info) return E.db.enhanced.tooltip.tooltipIcon[info[#info]] end,
|
|
args = {
|
|
tooltipIcon = {
|
|
order = 1,
|
|
type = "toggle",
|
|
name = L["Enable"],
|
|
desc = L["Show/Hides an Icon for Spells and Items on the Tooltip."],
|
|
get = function(info) return E.db.enhanced.tooltip.tooltipIcon.enable end,
|
|
set = function(info, value)
|
|
E.db.enhanced.tooltip.tooltipIcon.enable = value
|
|
TI:ToggleItemsState()
|
|
TI:ToggleSpellsState()
|
|
TI:ToggleAchievementsState()
|
|
end
|
|
},
|
|
spacer = {
|
|
order = 2,
|
|
type = "description",
|
|
name = "",
|
|
width = "full"
|
|
},
|
|
tooltipIconSpells = {
|
|
order = 3,
|
|
type = "toggle",
|
|
name = SPELLS,
|
|
desc = L["Show/Hides an Icon for Spells on the Tooltip."],
|
|
get = function(info) return E.db.enhanced.tooltip.tooltipIcon.tooltipIconSpells end,
|
|
set = function(info, value)
|
|
E.db.enhanced.tooltip.tooltipIcon.tooltipIconSpells = value
|
|
TI:ToggleSpellsState()
|
|
end,
|
|
disabled = function() return not E.db.enhanced.tooltip.tooltipIcon.enable end
|
|
},
|
|
tooltipIconItems = {
|
|
order = 4,
|
|
type = "toggle",
|
|
name = ITEMS,
|
|
desc = L["Show/Hides an Icon for Items on the Tooltip."],
|
|
get = function(info) return E.db.enhanced.tooltip.tooltipIcon.tooltipIconItems end,
|
|
set = function(info, value)
|
|
E.db.enhanced.tooltip.tooltipIcon.tooltipIconItems = value
|
|
TI:ToggleItemsState()
|
|
end,
|
|
disabled = function() return not E.db.enhanced.tooltip.tooltipIcon.enable end
|
|
},
|
|
tooltipIconAchievements = {
|
|
order = 5,
|
|
type = "toggle",
|
|
name = ACHIEVEMENTS,
|
|
desc = L["Show/Hides an Icon for Achievements on the Tooltip."],
|
|
get = function(info) return E.db.enhanced.tooltip.tooltipIcon.tooltipIconAchievements end,
|
|
set = function(info, value)
|
|
E.db.enhanced.tooltip.tooltipIcon.tooltipIconAchievements = value
|
|
TI:ToggleAchievementsState()
|
|
end,
|
|
disabled = function() return not E.db.enhanced.tooltip.tooltipIcon.enable end
|
|
}
|
|
}
|
|
},
|
|
progressInfo = {
|
|
order = 3,
|
|
type = "group",
|
|
name = L["Progress Info"],
|
|
guiInline = true,
|
|
get = function(info) return E.db.enhanced.tooltip.progressInfo[info[#info]] end,
|
|
set = function(info, value) E.db.enhanced.tooltip.progressInfo[info[#info]] = value end,
|
|
disabled = function() return not E.db.enhanced.tooltip.progressInfo.enable end,
|
|
args = {
|
|
enable = {
|
|
order = 1,
|
|
type = "toggle",
|
|
name = L["Enable"],
|
|
set = function(info, value)
|
|
E.db.enhanced.tooltip.progressInfo[info[#info]] = value
|
|
PI:ToggleState()
|
|
end,
|
|
disabled = false
|
|
},
|
|
checkAchievements = {
|
|
order = 2,
|
|
type = "toggle",
|
|
name = L["Check Achievements"],
|
|
desc = L["Check achievement completion instead of boss kill stats.\nSome servers log incorrect boss kill statistics, this is an alternative way to get player progress."]
|
|
},
|
|
checkPlayer = {
|
|
order = 3,
|
|
type = "toggle",
|
|
name = L["Check Player"]
|
|
},
|
|
modifier = {
|
|
order = 4,
|
|
type = "select",
|
|
name = L["Visibility"],
|
|
set = function(info, value)
|
|
E.db.enhanced.tooltip.progressInfo[info[#info]] = value
|
|
PI:UpdateModifier()
|
|
end,
|
|
values = {
|
|
["ALL"] = ALWAYS,
|
|
["SHIFT"] = L["SHIFT_KEY"],
|
|
["ALT"] = L["ALT_KEY"],
|
|
["CTRL"] = L["CTRL_KEY"]
|
|
}
|
|
},
|
|
tiers = {
|
|
order = 5,
|
|
type = "group",
|
|
name = L["Tiers"],
|
|
get = function(info) return E.db.enhanced.tooltip.progressInfo.tiers[info[#info]] end,
|
|
set = function(info, value)
|
|
E.db.enhanced.tooltip.progressInfo.tiers[info[#info]] = value
|
|
PI:UpdateSettings()
|
|
end,
|
|
disabled = function() return not E.db.enhanced.tooltip.progressInfo.enable end,
|
|
args = {
|
|
RS = {
|
|
order = 1,
|
|
type = "toggle",
|
|
name = L["Ruby Sanctum"]
|
|
},
|
|
ICC = {
|
|
order = 2,
|
|
type = "toggle",
|
|
name = L["Icecrown Citadel"]
|
|
},
|
|
ToC = {
|
|
order = 3,
|
|
type = "toggle",
|
|
name = L["Trial of the Crusader"]
|
|
},
|
|
Ulduar = {
|
|
order = 4,
|
|
type = "toggle",
|
|
name = L["Ulduar"]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
local function LoseControlOptions()
|
|
return {
|
|
type = "group",
|
|
name = L["Lose Control"],
|
|
get = function(info) return E.db.enhanced.loseControl[info[#info]] end,
|
|
set = function(info, value)
|
|
E.db.enhanced.loseControl[info[#info]] = value
|
|
E:GetModule("Enhanced_LoseControl"):UpdateSettings()
|
|
end,
|
|
args = {
|
|
header = {
|
|
order = 0,
|
|
type = "header",
|
|
name = EE:ColorizeSettingName(L["Lose Control"])
|
|
},
|
|
enable = {
|
|
order = 1,
|
|
type = "toggle",
|
|
width = "full",
|
|
name = L["Enable"],
|
|
get = function(info) return E.private.enhanced.loseControl.enable end,
|
|
set = function(info, value)
|
|
E.private.enhanced.loseControl.enable = value
|
|
E:GetModule("Enhanced_LoseControl"):ToggleState()
|
|
end,
|
|
},
|
|
compactMode = {
|
|
order = 2,
|
|
type = "toggle",
|
|
name = L["Compact mode"],
|
|
disabled = function() return not E.private.enhanced.loseControl.enable end
|
|
},
|
|
iconSize = {
|
|
order = 3,
|
|
type = "range",
|
|
min = 30, max = 120, step = 1,
|
|
name = L["Icon Size"],
|
|
disabled = function() return not E.private.enhanced.loseControl.enable end
|
|
},
|
|
typeGroup = {
|
|
order = 4,
|
|
type = "group",
|
|
name = TYPE,
|
|
guiInline = true,
|
|
get = function(info) return E.db.enhanced.loseControl[info[#info]] end,
|
|
set = function(info, value) E.db.enhanced.loseControl[info[#info]] = value end,
|
|
disabled = function() return not E.private.enhanced.loseControl.enable end,
|
|
args = {
|
|
CC = {
|
|
order = 1,
|
|
type = "toggle",
|
|
name = L["CC"]
|
|
},
|
|
PvE = {
|
|
order = 2,
|
|
type = "toggle",
|
|
name = L["PvE"]
|
|
},
|
|
Silence = {
|
|
order = 3,
|
|
type = "toggle",
|
|
name = L["Silence"]
|
|
},
|
|
Disarm = {
|
|
order = 4,
|
|
type = "toggle",
|
|
name = L["Disarm"]
|
|
},
|
|
Root = {
|
|
order = 5,
|
|
type = "toggle",
|
|
name = L["Root"]
|
|
},
|
|
Snare = {
|
|
order = 6,
|
|
type = "toggle",
|
|
name = L["Snare"]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
local function InterruptTrackerOptions()
|
|
return {
|
|
type = "group",
|
|
name = L["Interrupt Tracker"],
|
|
get = function(info) return E.db.enhanced.interruptTracker[info[#info]] end,
|
|
set = function(info, value)
|
|
E.db.enhanced.interruptTracker[info[#info]] = value
|
|
E:GetModule("Enhanced_InterruptTracker"):UpdateAllIconsTimers()
|
|
end,
|
|
args = {
|
|
header = {
|
|
order = 0,
|
|
type = "header",
|
|
name = EE:ColorizeSettingName(L["Interrupt Tracker"])
|
|
},
|
|
enable = {
|
|
order = 1,
|
|
type = "toggle",
|
|
width = "full",
|
|
name = L["Enable"],
|
|
get = function(info) return E.private.enhanced.interruptTracker.enable end,
|
|
set = function(info, value)
|
|
E.private.enhanced.interruptTracker.enable = value
|
|
E:StaticPopup_Show("PRIVATE_RL")
|
|
end
|
|
},
|
|
size = {
|
|
order = 2,
|
|
type = "range",
|
|
min = 10, max = 120, step = 1,
|
|
name = L["Size"],
|
|
disabled = function() return not E.private.enhanced.interruptTracker.enable end,
|
|
},
|
|
enableGroup = {
|
|
order = 3,
|
|
type = "group",
|
|
name = L["Where to show"],
|
|
guiInline = true,
|
|
get = function(info) return E.private.enhanced.interruptTracker[info[#info]] end,
|
|
set = function(info, value)
|
|
E.private.enhanced.interruptTracker[info[#info]] = value
|
|
E:GetModule("Enhanced_InterruptTracker"):UpdateState()
|
|
end,
|
|
disabled = function() return not E.private.enhanced.interruptTracker.enable end,
|
|
args = {
|
|
everywhere = {
|
|
order = 1,
|
|
type = "toggle",
|
|
name = L["Everywhere"],
|
|
desc = L["Show Everywhere"]
|
|
},
|
|
arena = {
|
|
order = 2,
|
|
type = "toggle",
|
|
name = ARENA,
|
|
desc = L["Show on Arena."],
|
|
disabled = function() return not E.private.enhanced.interruptTracker.enable or E.private.enhanced.interruptTracker.everywhere end
|
|
},
|
|
battleground = {
|
|
order = 3,
|
|
type = "toggle",
|
|
name = BATTLEGROUND,
|
|
desc = L["Show on Battleground."],
|
|
disabled = function() return not E.private.enhanced.interruptTracker.enable or E.private.enhanced.interruptTracker.everywhere end
|
|
}
|
|
}
|
|
},
|
|
textGroup = {
|
|
order = 4,
|
|
type = "group",
|
|
name = L["Text"],
|
|
guiInline = true,
|
|
get = function(info) return E.db.enhanced.interruptTracker.text[info[#info]] end,
|
|
set = function(info, value)
|
|
E.db.enhanced.interruptTracker.text[info[#info]] = value
|
|
E:GetModule("Enhanced_InterruptTracker"):UpdateAllIconsTimers()
|
|
end,
|
|
disabled = function() return not E.private.enhanced.interruptTracker.enable end,
|
|
args = {
|
|
position = {
|
|
order = 1,
|
|
type = "select",
|
|
name = L["Text Position"],
|
|
values = {
|
|
TOPLEFT = "TOPLEFT",
|
|
LEFT = "LEFT",
|
|
BOTTOMLEFT = "BOTTOMLEFT",
|
|
RIGHT = "RIGHT",
|
|
TOPRIGHT = "TOPRIGHT",
|
|
BOTTOMRIGHT = "BOTTOMRIGHT",
|
|
CENTER = "CENTER",
|
|
TOP = "TOP",
|
|
BOTTOM = "BOTTOM"
|
|
}
|
|
},
|
|
xOffset = {
|
|
order = 2,
|
|
type = "range",
|
|
name = L["X-Offset"],
|
|
min = -300, max = 300, step = 1
|
|
},
|
|
yOffset = {
|
|
order = 3,
|
|
type = "range",
|
|
name = L["Y-Offset"],
|
|
min = -300, max = 300, step = 1
|
|
},
|
|
font = {
|
|
order = 4,
|
|
type = "select",
|
|
dialogControl = "LSM30_Font",
|
|
name = L["Font"],
|
|
values = AceGUIWidgetLSMlists.font
|
|
},
|
|
fontSize = {
|
|
order = 5,
|
|
type = "range",
|
|
name = L["FONT_SIZE"],
|
|
min = 6, max = 32, step = 1
|
|
},
|
|
fontOutline = {
|
|
order = 6,
|
|
type = "select",
|
|
name = L["Font Outline"],
|
|
desc = L["Set the font outline."],
|
|
values = {
|
|
["NONE"] = L["NONE"],
|
|
["OUTLINE"] = "OUTLINE",
|
|
["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE",
|
|
["THICKOUTLINE"] = "THICKOUTLINE"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
local function UnitFrameOptions()
|
|
local TC = E:GetModule("Enhanced_TargetClass")
|
|
|
|
return {
|
|
type = "group",
|
|
name = L["UnitFrames"],
|
|
childGroups = "tab",
|
|
args = {
|
|
header = {
|
|
order = 1,
|
|
type = "header",
|
|
name = EE:ColorizeSettingName(L["UnitFrames"])
|
|
},
|
|
general = {
|
|
order = 2,
|
|
type = "group",
|
|
name = L["General"],
|
|
args = {
|
|
header = {
|
|
order = 1,
|
|
type = "header",
|
|
name = L["General"]
|
|
},
|
|
portraitHDModelFix = {
|
|
order = 2,
|
|
type = "group",
|
|
guiInline = true,
|
|
name = L["Portrait HD Fix"],
|
|
get = function(info) return E.db.enhanced.unitframe.portraitHDModelFix[info[#info]] end,
|
|
set = function(info, value) E.db.enhanced.unitframe.portraitHDModelFix[info[#info]] = value end,
|
|
disabled = function() return not E.db.enhanced.unitframe.portraitHDModelFix.enable end,
|
|
args = {
|
|
enable = {
|
|
order = 1,
|
|
type = "toggle",
|
|
name = L["Enable"],
|
|
set = function(info, value)
|
|
E.db.enhanced.unitframe.portraitHDModelFix.enable = value
|
|
E:GetModule("Enhanced_PortraitHDModelFix"):ToggleState()
|
|
end,
|
|
disabled = false
|
|
},
|
|
debug = {
|
|
order = 2,
|
|
type = "toggle",
|
|
name = L["Debug"],
|
|
desc = L["Print to chat model names of units with enabled 3D portraits."]
|
|
},
|
|
modelsToFix = {
|
|
order = 3,
|
|
type = "input",
|
|
name = L["Models to fix"],
|
|
desc = L["List of models with broken portrait camera. Separete each model name with ';' simbol"],
|
|
width = "full",
|
|
multiline = true,
|
|
set = function(info, value)
|
|
E.db.enhanced.unitframe.portraitHDModelFix.modelsToFix = value
|
|
E:GetModule("Enhanced_PortraitHDModelFix"):UpdatePortraits()
|
|
end
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
player = {
|
|
order = 3,
|
|
type = "group",
|
|
name = L["PLAYER"],
|
|
args = {
|
|
header = {
|
|
order = 1,
|
|
type = "header",
|
|
name = L["PLAYER"]
|
|
},
|
|
detachPortrait = {
|
|
order = 3,
|
|
type = "group",
|
|
name = L["Detached Portrait"],
|
|
get = function(info) return E.db.enhanced.unitframe.detachPortrait.player[info[#info]] end,
|
|
set = function(info, value)
|
|
E.db.enhanced.unitframe.detachPortrait.player[info[#info]] = value
|
|
E:GetModule("UnitFrames"):CreateAndUpdateUF("player")
|
|
end,
|
|
disabled = function() return not E.db.unitframe.units.player.portrait.enable or E.db.unitframe.units.player.portrait.overlay end,
|
|
args = {
|
|
header = {
|
|
order = 0,
|
|
type = "header",
|
|
name = L["Portrait"]
|
|
},
|
|
enable = {
|
|
order = 1,
|
|
type = "toggle",
|
|
name = L["Detach From Frame"],
|
|
set = function(info, value)
|
|
E.db.enhanced.unitframe.detachPortrait.player[info[#info]] = value
|
|
E:GetModule("Enhanced_DetachedPortrait"):ToggleState("player")
|
|
end
|
|
},
|
|
spacer = {
|
|
order = 2,
|
|
type = "description",
|
|
name = " "
|
|
},
|
|
width = {
|
|
order = 3,
|
|
type = "range",
|
|
name = L["Detached Width"],
|
|
min = 10, max = 600, step = 1
|
|
},
|
|
height = {
|
|
order = 4,
|
|
type = "range",
|
|
name = L["Detached Height"],
|
|
min = 10, max = 600, step = 1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
target = {
|
|
order = 4,
|
|
type = "group",
|
|
name = L["TARGET"],
|
|
args = {
|
|
header = {
|
|
order = 1,
|
|
type = "header",
|
|
name = L["TARGET"]
|
|
},
|
|
classIcon = {
|
|
order = 2,
|
|
type = "group",
|
|
name = L["Class Icons"],
|
|
get = function(info) return E.db.enhanced.unitframe.units.target.classicon[info[#info]] end,
|
|
set = function(info, value)
|
|
E.db.enhanced.unitframe.units.target.classicon[info[#info]] = value
|
|
TC:ToggleSettings()
|
|
end,
|
|
disabled = function() return not E.db.enhanced.unitframe.units.target.classicon.enable end,
|
|
args = {
|
|
header = {
|
|
order = 0,
|
|
type = "header",
|
|
name = L["Class Icons"]
|
|
},
|
|
enable = {
|
|
order = 1,
|
|
type = "toggle",
|
|
name = L["Enable"],
|
|
desc = L["Show class icon for units."],
|
|
disabled = false
|
|
},
|
|
spacer = {
|
|
order = 2,
|
|
type = "description",
|
|
name = " "
|
|
},
|
|
size = {
|
|
order = 3,
|
|
type = "range",
|
|
name = L["Size"],
|
|
desc = L["Size of the indicator icon."],
|
|
min = 16, max = 40, step = 1
|
|
},
|
|
xOffset = {
|
|
order = 4,
|
|
type = "range",
|
|
name = L["X-Offset"],
|
|
min = -100, max = 100, step = 1
|
|
},
|
|
yOffset = {
|
|
order = 5,
|
|
type = "range",
|
|
name = L["Y-Offset"],
|
|
min = -80, max = 40, step = 1
|
|
}
|
|
}
|
|
},
|
|
detachPortrait = {
|
|
order = 3,
|
|
type = "group",
|
|
name = L["Detached Portrait"],
|
|
get = function(info) return E.db.enhanced.unitframe.detachPortrait.target[info[#info]] end,
|
|
set = function(info, value)
|
|
E.db.enhanced.unitframe.detachPortrait.target[info[#info]] = value
|
|
E:GetModule("UnitFrames"):CreateAndUpdateUF("target")
|
|
end,
|
|
disabled = function() return not E.db.unitframe.units.target.portrait.enable or E.db.unitframe.units.target.portrait.overlay end,
|
|
args = {
|
|
header = {
|
|
order = 0,
|
|
type = "header",
|
|
name = L["Portrait"]
|
|
},
|
|
enable = {
|
|
order = 1,
|
|
type = "toggle",
|
|
name = L["Detach From Frame"],
|
|
set = function(info, value)
|
|
E.db.enhanced.unitframe.detachPortrait.target[info[#info]] = value
|
|
E:GetModule("Enhanced_DetachedPortrait"):ToggleState("target")
|
|
end
|
|
},
|
|
spacer = {
|
|
order = 2,
|
|
type = "description",
|
|
name = " "
|
|
},
|
|
width = {
|
|
order = 3,
|
|
type = "range",
|
|
name = L["Detached Width"],
|
|
min = 10, max = 600, step = 1
|
|
},
|
|
height = {
|
|
order = 4,
|
|
type = "range",
|
|
name = L["Detached Height"],
|
|
min = 10, max = 600, step = 1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
function EE:GetOptions()
|
|
E.Options.args.enhanced = {
|
|
order = 50,
|
|
type = "group",
|
|
childGroups = "tab",
|
|
name = EE:ColorizeSettingName(L["Enhanced"]),
|
|
args = {
|
|
generalGroup = GeneralOptions(),
|
|
actionbarGroup = ActionbarOptions(),
|
|
blizzardGroup = BlizzardOptions(),
|
|
equipmentInfoGroup = EquipmentInfoOptions(),
|
|
mapGroup = MapOptions(),
|
|
minimapGroup = MinimapOptions(),
|
|
-- namePlatesGroup = NamePlatesOptions(),
|
|
tooltipGroup = TooltipOptions(),
|
|
unitframesGroup = UnitFrameOptions(),
|
|
-- loseControlGroup = LoseControlOptions(),
|
|
interruptGroup = InterruptTrackerOptions(),
|
|
}
|
|
}
|
|
|
|
E.Options.args.enhanced.args.generalGroup.order = 1
|
|
E.Options.args.enhanced.args.blizzardGroup.order = 2
|
|
-- E.Options.args.enhanced.args.actionbarGroup.order = 3
|
|
-- E.Options.args.enhanced.args.equipmentInfoGroup.order = 4
|
|
-- E.Options.args.enhanced.args.minimapGroup.order = 5
|
|
-- E.Options.args.enhanced.args.namePlatesGroup.order = 6
|
|
-- E.Options.args.enhanced.args.tooltipGroup.order = 7
|
|
-- E.Options.args.enhanced.args.loseControlGroup.order = 8
|
|
-- E.Options.args.enhanced.args.interruptGroup.order = 9
|
|
-- E.Options.args.enhanced.args.unitframesGroup.order = 10
|
|
end
|