diff --git a/ElvUI_SLE/options/autorelease_c.lua b/ElvUI_SLE/options/autorelease_c.lua new file mode 100644 index 0000000..2c0bbd6 --- /dev/null +++ b/ElvUI_SLE/options/autorelease_c.lua @@ -0,0 +1,30 @@ +local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore +local function configTable() +--Main options group +E.Options.args.sle.args.options.args.general.args.pvpautorelease = { + type = "group", + name = L["PvP Auto Release"], + order = 5, + args = { + header = { + order = 1, + type = "header", + name = L["PvP Auto Release"], + }, + intro = { + order = 2, + type = "description", + name = L["Automatically release body when killed inside a battleground."], + }, + enable = { + order = 3, + type = "toggle", + name = L["Enable"], + get = function(info) return E.db.sle.pvpautorelease end, + set = function(info, value) E.db.sle.pvpautorelease = value; end + }, + }, +} +end + +table.insert(E.SLEConfigs, configTable) \ No newline at end of file diff --git a/ElvUI_SLE/options/backgrounds_c.lua b/ElvUI_SLE/options/backgrounds_c.lua new file mode 100644 index 0000000..421bf9b --- /dev/null +++ b/ElvUI_SLE/options/backgrounds_c.lua @@ -0,0 +1,160 @@ +local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore +local BG = E:GetModule('SLE_BackGrounds') +local function configTable() +local drop = { + --Group name = {short name, order} + ["Bottom BG"] = {"bottom", 1}, + ["Left BG"] = {"left", 2}, + ["Right BG"] = {"right", 3}, + ["Actionbar BG"] = {"action", 4}, +} + +--Options for additional background frames. Main group +E.Options.args.sle.args.datatext.args.backgrounds = { + type = "group", + name = L["Backgrounds"], + order = 3, + args = { + header = { + order = 1, + type = "header", + name = L["Additional Background Panels"], + }, + intro = { + order = 2, + type = "description", + name = L["BG_DESC"] + }, + enabled = { + order = 3, + type = "toggle", + name = L["Enable"], + desc = L["Show/Hide this frame."], + get = function(info) return E.private.sle.backgrounds end, + set = function(info, value) E.private.sle.backgrounds = value; E:StaticPopup_Show("PRIVATE_RL") end + }, + Reset = { + order = 4, + type = 'execute', + name = L['Restore Defaults'], + desc = L["Reset these options to defaults"], + disabled = function() return not E.private.sle.backgrounds end, + func = function() E:GetModule('SLE'):Reset(nil, nil, nil, true) end, + }, + spacerreset = { + order = 5, + type = 'description', + name = "", + }, + bottom_enabled = { + order = 6, + type = "toggle", + name = L["Bottom BG"], + desc = L["Show/Hide this frame."], + disabled = function() return not E.private.sle.backgrounds end, + get = function(info) return E.db.sle.backgrounds.bottom.enabled end, + set = function(info, value) E.db.sle.backgrounds.bottom.enabled = value; BG:FramesVisibility() end + }, + left_enabled = { + order = 7, + type = "toggle", + name = L["Left BG"], + desc = L["Show/Hide this frame."], + disabled = function() return not E.private.sle.backgrounds end, + get = function(info) return E.db.sle.backgrounds.left.enabled end, + set = function(info, value) E.db.sle.backgrounds.left.enabled = value; BG:FramesVisibility() end + }, + spacer = { + order = 8, + type = "description", + name = "", + }, + right_enabled = { + order = 9, + type = "toggle", + name = L["Right BG"], + desc = L["Show/Hide this frame."], + disabled = function() return not E.private.sle.backgrounds end, + get = function(info) return E.db.sle.backgrounds.right.enabled end, + set = function(info, value) E.db.sle.backgrounds.right.enabled = value; BG:FramesVisibility() end + }, + action_enabled = { + order = 10, + type = "toggle", + name = L["Actionbar BG"], + desc = L["Show/Hide this frame."], + disabled = function() return not E.private.sle.backgrounds end, + get = function(info) return E.db.sle.backgrounds.action.enabled end, + set = function(info, value) E.db.sle.backgrounds.action.enabled = value; BG:FramesVisibility() end + }, + } +} + +--Subgroups +for k,v in pairs(drop) do + E.Options.args.sle.args.datatext.args.backgrounds.args[v[1]] = { + type = "group", + name = L[k], + order = v[2], + get = function(info) return E.db.sle.backgrounds[v[1]][ info[#info] ] end, + disabled = function() return not E.db.sle.backgrounds[v[1]].enabled or not E.private.sle.backgrounds end, + args = { + width = { --setting width (obviously) + order = 1, + type = "range", + name = L['Width'], + desc = L["Sets width of the frame"], + min = 50, max = E.screenwidth, step = 1, + set = function(info, value) E.db.sle.backgrounds[v[1]].width = value; BG:FramesSize() end, + }, + height = { + order = 2, + type = "range", + name = L['Height'], + desc = L["Sets height of the frame"], + min = 30, max = E.screenheight/2, step = 1, + set = function(info, value) E.db.sle.backgrounds[v[1]].height = value; BG:FramesSize() end, + }, + spacer = { --Empty slot for making sliders move to next line + order = 3, + type = "description", + name = "", + }, + --Setting custom texture for those who like it + texture = { + order = 6, + type = 'input', + width = 'full', + name = L["Texture"], + desc = L["Set the texture to use in this frame. Requirements are the same as the chat textures."], + set = function(info, value) + E.db.sle.backgrounds[v[1]].texture = value + E:UpdateMedia() + BG:UpdateTex() + end, + }, + template = { + order = 7, + type = "select", + name = L["Backdrop Template"], + desc = L["Change the template used for this backdrop."], + get = function(info) return E.db.sle.backgrounds[v[1]].template end, + set = function(info, value) E.db.sle.backgrounds[v[1]].template = value; BG:UpdateFrames() end, + values = { + ['Default'] = L["Default"], + ['Transparent'] = L["Transparent"], + }, + }, + pethide = { + order = 8, + type = "toggle", + name = L["Hide in Pet Batlle"], + desc = L["Show/Hide this frame during Pet Battles."], + set = function(info, value) E.db.sle.backgrounds[v[1]].pethide = value; BG:RegisterHide() end + }, + }, + } +end +end + +table.insert(E.SLEConfigs, configTable) \ No newline at end of file diff --git a/ElvUI_SLE/options/characterframe_c.lua b/ElvUI_SLE/options/characterframe_c.lua new file mode 100644 index 0000000..223b7d6 --- /dev/null +++ b/ElvUI_SLE/options/characterframe_c.lua @@ -0,0 +1,370 @@ +local E, L, V, P, G, _ = unpack(ElvUI); +local CFO = E:GetModule('CharacterFrameOptions') + +local function configTable() + E.Options.args.sle.args.characterframeoptions = { + type = 'group', + name = L["Armory Mode"], + order = 6, + childGroups = 'tab', + args = { + intro = { + order = -1, + type = 'description', + name = L['Test Description'], + }, + characterframe = { + order = 2, + type = 'group', + name = L['Character Frame'], + args = { + header = { + order = 1, + type = "header", + name = L["Character Frame Options"], + }, + intro = { + order = 2, + type = 'description', + name = L['CFO_DESC'], + }, + enable = { + order = 3, + type = "toggle", + name = L["Enable"], + desc = L["Enable/Disable Character Frame Options"], + get = function(info) return E.private.sle.characterframeoptions.enable end, + set = function(info, value) E.private.sle.characterframeoptions.enable = value; E:StaticPopup_Show("PRIVATE_RL") end + }, + decoration = { + type = "group", + name = L["Decoration"], + order = 55, + disabled = function() return not E.private.sle.characterframeoptions.enable end, + args = { + normalgradient = { + order = 1, + type = 'toggle', + name = L["Show Equipment Gradients"], + desc = L["Shows gradient effect for all equipment slots."], + get = function(info) return E.db.sle.characterframeoptions.shownormalgradient end, + set = function(info, value) E.db.sle.characterframeoptions.shownormalgradient = value; CFO:ChangeGradiantVisibility(); end, + }, + errorgradient = { + order = 2, + type = 'toggle', + name = L["Show Error Gradients"], + desc = L["Highlights equipment slot if an error has been found."], + disabled = function() return not E.private.sle.characterframeoptions.enable or not E.db.sle.characterframeoptions.shownormalgradient end, + get = function(info) return E.db.sle.characterframeoptions.showerrorgradient end, + set = function(info, value) E.db.sle.characterframeoptions.showerrorgradient = value; CFO:ArmoryFrame_DataSetting(); end, + }, + bgimage = { + order = 3, + type = 'toggle', + name = L["Show Background Image"], + get = function(info) return E.db.sle.characterframeoptions.showimage end, + set = function(info, value) E.db.sle.characterframeoptions.showimage = value; CFO:ArmoryFrame_DataSetting(); end, + }, + dropdown = { + type = 'select', + name = L['Background picture'], + order = 4, + disabled = function() return not E.db.sle.characterframeoptions.showimage end, + values = { + ['SPACE'] = 'Space', + ['ALLIANCE'] = FACTION_ALLIANCE, + ['HORDE'] = FACTION_HORDE, + ['CUSTOM'] = L["Custom"], + ["EMPIRE"] = "The Empire", + ["CASTLE"] = "Castle", + }, + get = function() return E.db.sle.characterframeoptions.image.dropdown end, + set = function(_, value) + E.db.sle.characterframeoptions.image.dropdown = value; CFO:ArmoryFrame_DataSetting(); + end, + + }, + custom = { + order = 5, + type = 'input', + width = 'full', + name = L["Texture"], + desc = L["Set the texture to use in this frame. Requirements are the same as the chat textures."], + disabled = function() return E.db.sle.characterframeoptions.image.dropdown ~= "CUSTOM" or not E.db.sle.characterframeoptions.showimage end, + get = function() return E.db.sle.characterframeoptions.image.custom end, + set = function(info, value) + E.db.sle.characterframeoptions.image.custom = value; + CFO:ArmoryFrame_DataSetting(); + end, + }, + }, + }, + itemlevel = { + type = "group", + name = STAT_AVERAGE_ITEM_LEVEL, + order = 66, + disabled = function() return not E.private.sle.characterframeoptions.enable end, + args = { + show = { + order = 3, + type = "toggle", + name = L["Show Item Level"], + get = function(info) return E.db.sle.characterframeoptions.itemlevel.show end, + set = function(info, value) E.db.sle.characterframeoptions.itemlevel.show = value; CFO:ArmoryFrame_DataSetting(); end, + }, + fontGroup = { + order = 5, + type = 'group', + guiInline = true, + name = L['Font'], + args = { + font = { + type = "select", dialogControl = 'LSM30_Font', + order = 1, + --name = L["Fonts"], + name = L["Font"], + desc = L["The font that the item level will use."], + values = AceGUIWidgetLSMlists.font, + get = function(info) return E.db.sle.characterframeoptions.itemlevel.font end, + set = function(info, value) E.db.sle.characterframeoptions.itemlevel.font = value; CFO:ArmoryFrame_DataSetting(); end, + }, + fontSize = { + order = 2, + name = L["Font Size"], + desc = L["Set the font size that the item level will use."], + type = "range", + min = 6, max = 22, step = 1, + get = function(info) return E.db.sle.characterframeoptions.itemlevel.fontSize end, + set = function(info, value) E.db.sle.characterframeoptions.itemlevel.fontSize = value; CFO:ArmoryFrame_DataSetting(); end, + }, + fontOutline = { + order = 3, + name = L["Font Outline"], + desc = L["Set the font outline that the item level will use."], + type = "select", + values = { + ['NONE'] = L['None'], + ['OUTLINE'] = 'OUTLINE', + ['MONOCHROME'] = 'MONOCHROME', + ['MONOCHROMEOUTLINE'] = 'MONOCROMEOUTLINE', + ['THICKOUTLINE'] = 'THICKOUTLINE', + }, + get = function(info) return E.db.sle.characterframeoptions.itemlevel.fontOutline end, + set = function(info, value) E.db.sle.characterframeoptions.itemlevel.fontOutline = value; CFO:ArmoryFrame_DataSetting(); end, + }, + }, + }, + }, + }, + itemdurabilty = { + type = "group", + name = DURABILITY, + order = 77, + disabled = function() return not E.private.sle.characterframeoptions.enable end, + args = { + show = { + order = 3, + type = "toggle", + name = L["Show Durability"], + get = function(info) return E.db.sle.characterframeoptions.itemdurability.show end, + set = function(info, value) E.db.sle.characterframeoptions.itemdurability.show = value; CFO:ArmoryFrame_DataSetting(); end, + }, + fontGroup = { + order = 5, + type = 'group', + guiInline = true, + name = L['Font'], + args = { + font = { + type = "select", dialogControl = 'LSM30_Font', + order = 1, + name = L["Font"], + desc = L["The font that the item durability will use."], + values = AceGUIWidgetLSMlists.font, + get = function(info) return E.db.sle.characterframeoptions.itemdurability.font end, + set = function(info, value) E.db.sle.characterframeoptions.itemdurability.font = value; CFO:ArmoryFrame_DataSetting(); end, + }, + fontSize = { + order = 2, + name = L["Font Size"], + desc = L["Set the font size that the item durability will use."], + type = "range", + min = 6, max = 22, step = 1, + get = function(info) return E.db.sle.characterframeoptions.itemdurability.fontSize end, + set = function(info, value) E.db.sle.characterframeoptions.itemdurability.fontSize = value; CFO:ArmoryFrame_DataSetting(); end, + }, + fontOutline = { + order = 3, + name = L["Font Outline"], + desc = L["Set the font outline that the item durability will use."], + type = "select", + values = { + ['NONE'] = L['None'], + ['OUTLINE'] = 'OUTLINE', + ['MONOCHROME'] = 'MONOCHROME', + ['MONOCHROMEOUTLINE'] = 'MONOCROMEOUTLINE', + ['THICKOUTLINE'] = 'THICKOUTLINE', + }, + get = function(info) return E.db.sle.characterframeoptions.itemdurability.fontOutline end, + set = function(info, value) E.db.sle.characterframeoptions.itemdurability.fontOutline = value; CFO:ArmoryFrame_DataSetting(); end, + }, + }, + }, + }, + }, + itemenchant = { + type = "group", + name = L["Enchanting"], + order = 88, + disabled = function() return not E.private.sle.characterframeoptions.enable end, + args = { + show = { + order = 1, + type = "toggle", + name = L["Show Enchants"], + desc = L["Show the enchantment effect near the enchanted item"], + get = function(info) return E.db.sle.characterframeoptions.itemenchant.show end, + set = function(info, value) E.db.sle.characterframeoptions.itemenchant.show = value; CFO:ArmoryFrame_DataSetting(); end, + }, + mouseover = { + order = 2, + type = "toggle", + name = L['Mouse Over'], + desc = L["Show the enchantment effect near the enchanted item (not the item itself) when mousing over."], + disabled = function() return not E.db.sle.characterframeoptions.itemenchant.show or not E.private.sle.characterframeoptions.enable end, + get = function(info) return E.db.sle.characterframeoptions.itemenchant.mouseover end, + set = function(info, value) E.db.sle.characterframeoptions.itemenchant.mouseover = value; CFO:ArmoryFrame_DataSetting(); end, + }, + showwarning = { + order = 3, + type = "toggle", + name = L["Show Warning"], + get = function(info) return E.db.sle.characterframeoptions.itemenchant.showwarning end, + set = function(info, value) E.db.sle.characterframeoptions.itemenchant.showwarning = value; CFO:ArmoryFrame_DataSetting(); end, + }, + warningsize = { + order = 4, + name = L["Warning Size"], + desc = L["Set the icon size that the warning notification will use."], + type = "range", + min = 8, max = 18, step = 1, + get = function(info) return E.db.sle.characterframeoptions.itemenchant.warningSize end, + set = function(info, value) E.db.sle.characterframeoptions.itemenchant.warningSize = value; CFO:ResizeErrorIcon(); end, + }, + fontGroup = { + order = 5, + type = 'group', + guiInline = true, + name = L['Font'], + args = { + font = { + type = "select", dialogControl = 'LSM30_Font', + order = 1, + name = L["Font"], + desc = L["The font that the enchant notification will use."], + values = AceGUIWidgetLSMlists.font, + get = function(info) return E.db.sle.characterframeoptions.itemenchant.font end, + set = function(info, value) E.db.sle.characterframeoptions.itemenchant.font = value; CFO:ArmoryFrame_DataSetting(); end, + }, + fontSize = { + order = 2, + name = L["Font Size"], + desc = L["Set the font size that the enchant notification will use."], + type = "range", + min = 6, max = 22, step = 1, + get = function(info) return E.db.sle.characterframeoptions.itemenchant.fontSize end, + set = function(info, value) E.db.sle.characterframeoptions.itemenchant.fontSize = value; CFO:ArmoryFrame_DataSetting(); end, + }, + fontOutline = { + order = 3, + name = L["Font Outline"], + desc = L["Set the font outline that the enchant notification will use."], + type = "select", + values = { + ['NONE'] = L['None'], + ['OUTLINE'] = 'OUTLINE', + ['MONOCHROME'] = 'MONOCHROME', + ['MONOCHROMEOUTLINE'] = 'MONOCROMEOUTLINE', + ['THICKOUTLINE'] = 'THICKOUTLINE', + }, + get = function(info) return E.db.sle.characterframeoptions.itemenchant.fontOutline end, + set = function(info, value) E.db.sle.characterframeoptions.itemenchant.fontOutline = value; CFO:ArmoryFrame_DataSetting(); end, + }, + }, + }, + }, + }, + itemgem = { + type = "group", + name = L["Gem Sockets"], + order = 99, + disabled = function() return not E.private.sle.characterframeoptions.enable end, + args = { + show = { + order = 1, + type = "toggle", + name = L["Show Gems"], + desc = L["Show gem slots near the item"], + get = function(info) return E.db.sle.characterframeoptions.itemgem.show end, + set = function(info, value) E.db.sle.characterframeoptions.itemgem.show = value; CFO:ArmoryFrame_DataSetting(); end, + }, + showwarning = { + order = 2, + type = "toggle", + name = L["Show Warning"], + get = function(info) return E.db.sle.characterframeoptions.itemgem.showwarning end, + set = function(info, value) E.db.sle.characterframeoptions.itemgem.showwarning = value; CFO:ArmoryFrame_DataSetting(); end, + }, + warningsize = { + order = 3, + name = L["Warning Size"], + desc = L["Set the icon size that the warning notification will use."], + type = "range", + min = 8, max = 18, step = 1, + get = function(info) return E.db.sle.characterframeoptions.itemgem.warningSize end, + set = function(info, value) E.db.sle.characterframeoptions.itemgem.warningSize = value; CFO:ResizeErrorIcon(); end, + }, + socketsize = { + order = 4, + name = L["Socket Size"], + desc = L["Set the size of sockets to show."], + type = "range", + min = 10, max = 18, step = 1, + get = function(info) return E.db.sle.characterframeoptions.itemgem.socketSize end, + set = function(info, value) E.db.sle.characterframeoptions.itemgem.socketSize = value; CFO:ResizeErrorIcon(); end, + }, + }, + }, + }, + }, + inspectframe = { + order = 2, + type = 'group', + name = L['Inspect Frame'], + args = { + header = { + order = 1, + type = "header", + name = L["Inspect Frame Options"], + }, + intro = { + order = 2, + type = 'description', + name = L['IFO_DESC'], + }, + enable = { + order = 3, + type = "toggle", + name = L["Enable"], + desc = L["Enable/Disable Inspect Frame Options"], + get = function(info) return E.private.sle.inspectframeoptions.enable end, + set = function(info, value) E.private.sle.inspectframeoptions.enable = value; E:StaticPopup_Show("PRIVATE_RL") end + }, + }, + }, + }, + } +end + +table.insert(E.SLEConfigs, configTable) \ No newline at end of file diff --git a/ElvUI_SLE/options/chat_c.lua b/ElvUI_SLE/options/chat_c.lua new file mode 100644 index 0000000..4175d30 --- /dev/null +++ b/ElvUI_SLE/options/chat_c.lua @@ -0,0 +1,53 @@ +local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore +local CH = E:GetModule("Chat") +local function configTable() + +E.Options.args.sle.args.options.args.general.args.chat = { + order = 7, + type = "group", + name = L["Chat"], + args = { + header = { + order = 1, + type = "header", + name = L["Chat"], + }, + editboxhistory = { + order = 2, + type = "range", + name = L["Chat Editbox History"], + desc = L["Amount of messages to save. Set to 0 to disable."], + min = 0, max = 20, step = 1, + get = function(info) return E.db.chat.editboxhistory end, + set = function(info, value) E.db.chat.editboxhistory = value; end, + }, + guildmaster = { + order = 3, + type = "toggle", + name = "Guild Master Icon", + desc = [[Show an icon near your Guild Master's messages in chat. +Will not affect messages in chat history and possibly some messages right after your loading screen disappears on login.]], + get = function(info) return E.private.sle.guildmaster end, + set = function(info, value) E.private.sle.guildmaster = value; CH:GMIconUpdate() end, + }, + historyreset = { + order = 4, + type = 'execute', + name = "Reset Chat History", + desc = "Will delete all messages from chat history added prior clicking the button.", + disabled = function() return not E.db.chat.chatHistory end, + func = function() E:StaticPopup_Show("SLE_CHAT_HISTORY") end, + }, + editreset = { + order = 5, + type = 'execute', + name = "Reset Editbox History", + desc = "Will delete all messages from editbox history. Will immidiatly reload your UI.", + disabled = function() return not E.db.chat.chatHistory end, + func = function() E:StaticPopup_Show("SLE_EDIT_HISTORY") end, + }, + }, +} +end + +table.insert(E.SLEConfigs, configTable) \ No newline at end of file diff --git a/ElvUI_SLE/options/core_c.lua b/ElvUI_SLE/options/core_c.lua new file mode 100644 index 0000000..3307d69 --- /dev/null +++ b/ElvUI_SLE/options/core_c.lua @@ -0,0 +1,185 @@ +local E, L, V, P, G = unpack(ElvUI); --Inport: Engine, Locales, ProfileDB, GlobalDB +local SLE = E:GetModule('SLE') +local function configTable() + +E.Options.args.ElvUI_Header = { + order = 1, + type = "header", + name = "ElvUI"..format(": |cff99ff33%s|r",E.version).." "..L["Shadow & Light"]..format(": |cff99ff33%s|r",SLE.version), + width = "full", +} + +local size = E.db.general.fontSize + +--Main options group +E.Options.args.sle = { + type = "group", + name = L["Shadow & Light"], + desc = [[The |cff1784d1ElvUI|r modification by +Darth Predator and Repooc.]], + order = 50, + args = { + header = { + order = 1, + type = "header", + name = L["Shadow & Light"]..format(": |cff99ff33%s|r", SLE.version), + }, + logo = { + type = 'description', + name = '', + order = 2, + image = function() return 'Interface\\AddOns\\ElvUI_SLE\\media\\textures\\SLE_Title', 650, 410 end, + }, + info = { + order = 3, + type = "description", + name = L["SLE_DESC"], + }, + Install = { + order = 4, + type = 'execute', + name = L['Install'], + desc = L['Run the installation process.'], + func = function() SLE:Install(); E:ToggleConfig() end, + }, + options = { + order = 1, + type = "group", + childGroups = 'tab', + name = SETTINGS, + args = { + intro = { + order = 1, + type = "description", + name = L["Below you can see option groups presented by |cff1784d1Shadow & Light|r."], + }, + general = { + order = 2, + type = "group", + name = L["General"], + args = { + intro = { + order = 1, + type = "description", + name = L["General options of |cff1784d1Shadow & Light|r."], + }, + Reset = { + order = 2, + type = 'execute', + name = L["Reset All"], + desc = L["Reset all Shadow & Light options and movers to their defaults"], + func = function() SLE:Reset(true) end, + }, + space1 = { + order = 3, + type = 'description', + name = "", + }, + space2 = { + order = 4, + type = 'description', + name = "", + }, + lootwindow = { + order = 6, + type = "group", + name = L["Loot History"], + args = { + header = { + order = 1, + type = "header", + name = L["Loot History"], + }, + info = { + order = 2, + type = "description", + name = L["Options to tweak Loot History window behaviour."], + }, + window = { + order = 3, + type = "toggle", + name = L["Auto hide"], + desc = L["Automaticaly hide Blizzard loot histroy frame when leaving the instance."], + get = function(info) return E.db.sle.lootwin end, + set = function(info, value) E.db.sle.lootwin = value; SLE:LootShow() end + }, + alpha = { + order = 4, + type = "range", + name = L['Alpha'], + desc = L["Sets alpha of loot histroy frame."], + min = 0.2, max = 1, step = 0.1, + get = function(info) return E.db.sle.lootalpha end, + set = function(info, value) E.db.sle.lootalpha = value; SLE:LootShow() end, + }, + }, + }, + }, + }, + }, + }, + links = { + type = 'group', + name = 'About/Help', + order = -2, + args = { + desc = { + order = 1, + type = 'description', + fontSize = 'medium', + name = 'Da LinkZ!!!!', + }, + tukuilink = { + type = 'input', + width = 'full', + name = 'On TukUI.org', + get = function(info) return 'http://www.tukui.org/addons/index.php?act=view&id=42' end, + order = 2, + }, + wowilink = { + type = 'input', + width = 'full', + name = 'On WoWI', + get = function(info) return 'http://www.wowinterface.com/downloads/info20927-ElvUIShadowLight.html' end, + order = 3, + }, + curselink= { + type = 'input', + width = 'full', + name = 'On Curse', + get = function(info) return 'http://www.curse.com/addons/wow/shadow-and-light-edit' end, + order = 4, + }, + gitlablink = { + type = 'input', + width = 'full', + name = 'GitLab Link / Report Errors', + get = function(info) return 'http://git.tukui.org/repooc/elvui-shadowandlight' end, + order = 5, + }, + }, + }, + }, +} + +--Credits +E.Options.args.sle.args.credits = { + order = 400, + type = 'group', + name = L["Credits"], + args = { + creditheader = { + order = 1, + type = "header", + name = L["Credits"], + }, + credits = { + order = 2, + type = "description", + name = L["ELVUI_SLE_CREDITS"]..'\n\n\n'..L["Submodules and Coding:"]..'\n\n'..L["ELVUI_SLE_CODERS"]..'\n\n\n'..L["Other Support:"]..'\n\n'..L["ELVUI_SLE_MISC"], + }, + }, +} +end + +table.insert(E.SLEConfigs, configTable) \ No newline at end of file diff --git a/ElvUI_SLE/options/datatexts_c.lua b/ElvUI_SLE/options/datatexts_c.lua new file mode 100644 index 0000000..2b21e83 --- /dev/null +++ b/ElvUI_SLE/options/datatexts_c.lua @@ -0,0 +1,504 @@ +local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore +local DTP = E:GetModule('SLE_DTPanels') +local DT = E:GetModule('DataTexts') + +local datatexts = {} +local function configTable() +local drop = { + --Group name = {short name, order, slot} + ["DP_1"] = {"dp1", 1, 3}, + ["DP_2"] = {"dp2", 2, 3}, + ["DP_3"] = {"dp3", 3, 3}, + ["DP_4"] = {"dp4", 4, 3}, + ["DP_5"] = {"dp5", 5, 3}, + ["DP_6"] = {"dp6", 6, 3}, + ["Top_Center"] = {"top", 7, 1}, + ["Bottom_Panel"] = {"bottom", 8, 1}, +} +local chatT = { + --Group name = {short name, order, elv's varible, chat panel(used to call functions)} + ["Left Chat"] = {"chatleft", 9, "leftChatPanel", "LeftChat"}, + ["Right Chat"] = {"chatright", 10, "rightChatPanel", "RightChat"}, +} + +--Datatext panels +E.Options.args.sle.args.datatext = { + type = "group", + name = L["Panels & Dashboard"], + order = 10, + childGroups = "tab", + args = { + panels = { + type = "group", + name = L["Panels & Dashboard"], + order = 1, + args = { + header = { + order = 1, + type = "header", + name = L["Additional Datatext Panels"], + }, + intro = { + order = 2, + type = "description", + name = L["DP_DESC"] + }, + Reset = { + order = 3, + type = 'execute', + name = L['Restore Defaults'], + desc = L["Reset these options to defaults"], + func = function() E:GetModule('SLE'):Reset(nil, nil, true) end, + }, + spacer = { + order = 4, + type = 'description', + name = "", + }, + dashboard = { + order = 5, + type = "toggle", + name = L["Dashboard"], + desc = L["Show/Hide dashboard."], + get = function(info) return E.db.sle.datatext.dashboard.enable end, + set = function(info, value) E.db.sle.datatext.dashboard.enable = value; DTP:DashboardShow() end + }, + width = { + order = 6, + type = "range", + name = L["Dashboard Panels Width"], + desc = L["Sets size of dashboard panels."], + disabled = function() return not E.db.sle.datatext.dashboard.enable end, + min = 75, max = 200, step = 1, + get = function(info) return E.db.sle.datatext.dashboard.width end, + set = function(info, value) E.db.sle.datatext.dashboard.width = value; DTP:DashWidth() end, + }, + chathandle = { + order = 7, + type = "toggle", + name = "Chat handle", + desc = L["Show/Hide dashboard."], + get = function(info) return E.db.sle.datatext.chathandle end, + set = function(info, value) E.db.sle.datatext.chathandle = value; E:GetModule('Layout'):ToggleChatPanels() end + }, + }, + }, + }, +} + +for k,v in pairs(drop) do +E.Options.args.sle.args.datatext.args.panels.args[v[1]] = { + order = v[2], + type = "group", + name = L[k], + get = function(info) return E.db.sle.datatext[v[1]][ info[#info] ] end, + args = { + enabled = { + order = 1, + type = "toggle", + name = L["Enable"], + desc = L["Show/Hide this panel."], + set = function(info, value) E.db.sle.datatext[v[1]].enabled = value; DTP:ExtraDataBarSetup() end + }, + width = { + order = 2, + type = "range", + name = L['Width'], + desc = L["Sets size of this panel"], + disabled = function() return not E.db.sle.datatext[v[1]].enabled end, + min = 100 * v[3], max = E.screenwidth/2, step = 1, + set = function(info, value) E.db.sle.datatext[v[1]].width = value; DTP:Resize() end, + }, + hide = { + order = 3, + type = "toggle", + name = L['Hide panel background'], + desc = L["Don't show this panel, only datatexts assinged to it"], + disabled = function() return not E.db.sle.datatext[v[1]].enabled end, + get = function(info) return E.private.sle.datatext[v[1].."hide"] end, + set = function(info, value) E.private.sle.datatext[v[1].."hide"] = value; E:StaticPopup_Show("PRIVATE_RL") end, + }, + transparent = { + order = 4, + name = L['Panel Transparency'], + type = 'toggle', + disabled = function() return not E.db.sle.datatext[v[1]].enabled or E.private.sle.datatext[v[1].."hide"] end, + --get = function(info) return E.db.sle.datatext[v[1]]."transparent"] end, + set = function(info, value) E.db.sle.datatext[v[1]].transparent = value; DTP:ExtraDataBarSetup() end, + }, + pethide = { + order = 5, + name = L['Hide in Pet Battle'], + type = 'toggle', + desc = L['Show/Hide this frame during Pet Battles.'], + set = function(info, value) E.db.sle.datatext[v[1]].pethide = value; DTP:RegisterHide() end, + }, + }, +} +end + +for k,v in pairs(chatT) do +E.Options.args.sle.args.datatext.args.panels.args[v[1]] = { + order = v[2], + type = "group", + name = L[k], + args = { + enabled = { + order = 1, + type = "toggle", + name = L["Enable"], + desc = L["Show/Hide this panel."], + get = function(info) return E.db.datatexts[v[3]] end, + set = function(info, value) + E.db.datatexts[v[3]] = value; + if E.db[v[4].."PanelFaded"] then + E.db[v[4].."PanelFaded"] = true; + Hide[v[4]]() + end + E:GetModule('Chat'):UpdateAnchors() + E:GetModule('Layout'):ToggleChatPanels() + E:GetModule('Bags'):PositionBagFrames() + end + }, + width = { + order = 2, + type = "range", + name = L['Width'], + desc = L["Sets size of this panel"], + disabled = function() return not E.db.datatexts[v[3]] end, + min = 150, max = E.screenwidth/2, step = 1, + get = function(info) return E.db.sle.datatext[v[1]].width end, + set = function(info, value) E.db.sle.datatext[v[1]].width = value; DTP:ChatResize() end, + }, + }, + +} +end + +E.Options.args.sle.args.datatext.args.sldatatext = { + type = "group", + name = L["S&L Datatexts"], + order = 2, + args = { + header = { + order = 1, + type = "header", + name = L["Datatext Options"], + }, + intro = { + order = 2, + type = "description", + name = L["Some datatexts that Shadow & Light are supplied with, has settings that can be modified to alter the displayed information. Please use the dropdown box to select which datatext you would like to configure."] + }, + spacer = { + order = 3, + type = 'description', + name = "", + }, + timedt = { + type = "group", + name = RAID_FINDER, + order = 1, + args = { + lfrshow = { + order = 1, + type = "toggle", + name = L["LFR Lockout"], + desc = L["Show/Hide LFR lockout info in time datatext's tooltip."], + get = function(info) return E.db.sle.lfrshow.enabled end, + set = function(info, value) E.db.sle.lfrshow.enabled = value; end + }, + instances = { + order = 2, + type = "group", + name = L["Loot History"], + guiInline = true, + get = function(info) return E.db.sle.lfrshow[ info[#info] ] end, + set = function(info, value) E.db.sle.lfrshow[ info[#info] ] = value; end, + args = { + ds = { + order = 1, + type = "toggle", + name = GetMapNameByID(824), + }, + mv = { + order = 2, + type = "toggle", + name = GetMapNameByID(896), + }, + hof = { + order = 3, + type = "toggle", + name = GetMapNameByID(897), + }, + toes = { + order = 4, + type = "toggle", + name = GetMapNameByID(886), + }, + tot = { + order = 5, + type = "toggle", + name = GetMapNameByID(930), + }, + soo = { + order = 6, + type = "toggle", + name = GetMapNameByID(953), + }, + soof = { + order = 7, + type = "toggle", + name = FLEX_RAID.." "..GetMapNameByID(953), + }, + }, + }, + hubs = { + order = 3, + type = "group", + name = L["World Loot"], + guiInline = true, + get = function(info) return E.db.sle.lfrshow[ info[#info] ] end, + set = function(info, value) E.db.sle.lfrshow[ info[#info] ] = value; end, + args = { + leishen = { + order = 1, + type = "toggle", + name = GetMapNameByID(928), + desc = L["Show/Hide the status of Key to the Palace of Lei Shen and Trove of the Thunder King."], + }, + }, + }, + }, + }, + slcurrency = { + type = "group", + name = "S&L Currency", + order = 2, + args = { + header = { + order = 1, + type = "description", + name = L['ElvUI Improved Currency Options'], + }, + arch = { + order = 2, + type = "toggle", + name = L['Show Archaeology Fragments'], + get = function(info) return E.private['ElvUI_Currency']['Archaeology'] end, + set = function(info, value) E.private['ElvUI_Currency']['Archaeology'] = value; end, + }, + jewel = { + order = 3, + type = "toggle", + name = L['Show Jewelcrafting Tokens'], + get = function(info) return E.private['ElvUI_Currency']['Jewelcrafting'] end, + set = function(info, value) E.private['ElvUI_Currency']['Jewelcrafting'] = value; end, + }, + pvp = { + order = 4, + type = "toggle", + name = L['Show Player vs Player Currency'], + get = function(info) return E.private['ElvUI_Currency']['PvP'] end, + set = function(info, value) E.private['ElvUI_Currency']['PvP'] = value; end, + }, + dungeon = { + order = 5, + type = "toggle", + name = L['Show Dungeon and Raid Currency'], + get = function(info) return E.private['ElvUI_Currency']['Raid'] end, + set = function(info, value) E.private['ElvUI_Currency']['Raid'] = value; end, + }, + cook = { + order = 6, + type = "toggle", + name = L['Show Cooking Awards'], + get = function(info) return E.private['ElvUI_Currency']['Cooking'] end, + set = function(info, value) E.private['ElvUI_Currency']['Cooking'] = value; end, + }, + misc = { + order = 7, + type = "toggle", + name = L['Show Miscellaneous Currency'], + get = function(info) return E.private['ElvUI_Currency']['Miscellaneous'] end, + set = function(info, value) E.private['ElvUI_Currency']['Miscellaneous'] = value; end, + }, + zero = { + order = 8, + type = "toggle", + name = L['Show Zero Currency'], + get = function(info) return E.private['ElvUI_Currency']['Zero'] end, + set = function(info, value) E.private['ElvUI_Currency']['Zero'] = value; end, + }, + icons = { + order = 9, + type = "toggle", + name = L['Show Icons'], + get = function(info) return E.private['ElvUI_Currency']['Icons'] end, + set = function(info, value) E.private['ElvUI_Currency']['Icons'] = value; end, + }, + faction = { + order = 10, + type = "toggle", + name = L['Show Faction Totals'], + get = function(info) return E.private['ElvUI_Currency']['Faction'] end, + set = function(info, value) E.private['ElvUI_Currency']['Faction'] = value; end, + }, + unused = { + order = 11, + type = "toggle", + name = L['Show Unsed Currency'], + get = function(info) return E.private['ElvUI_Currency']['Unused'] end, + set = function(info, value) E.private['ElvUI_Currency']['Unused'] = value; end, + }, + }, + }, + slfriends = { + type = "group", + name = L["S&L Friends"], + order = 3, + args = { + header = { + order = 1, + type = "description", + name = L["These options are for modifing the Shadow & Light Friends datatext."], + }, + combat = { + order = 2, + type = "toggle", + name = L["Hide In Combat"], + desc = L["Will not show the tooltip while in combat."], + get = function(info) return E.db.sle.dt.friends.combat end, + set = function(info, value) E.db.sle.dt.friends.combat = value; end, + }, + hidetotals = { + order = 3, + type = "toggle", + name = L["Show Totals"], + desc = L["Show total friends in the datatext."], + get = function(info) return E.db.sle.dt.friends.totals end, + set = function(info, value) E.db.sle.dt.friends.totals = value; DT:update_Friends() end, + }, + hidehintline = { + order = 4, + type = "toggle", + name = L["Hide Hints"], + desc = L["Hide the hints in the tooltip."], + get = function(info) return E.db.sle.dt.friends.hide_hintline end, + set = function(info, value) E.db.sle.dt.friends.hide_hintline = value; end, + }, + bnbroadcast = { + order = 5, + type = "toggle", + name = L["Expand RealID"], + desc = L["Display realid with two lines to view broadcasts."], + get = function(info) return E.db.sle.dt.friends.expandBNBroadcast end, + set = function(info, value) E.db.sle.dt.friends.expandBNBroadcast = value; end, + }, + spacer = { + order = 6, + type = 'description', + name = "", + }, + tooltipautohide = { + order = 7, + type = "range", + name = L["Autohide Delay:"], + desc = L["Adjust the tooltip autohide delay when mouse is no longer hovering of the datatext."], + min = 0.1, max = 1, step = 0.1, + get = function(info) return E.db.sle.dt.friends.tooltipAutohide end, + set = function(info, value) E.db.sle.dt.friends.tooltipAutohide = value; end, + }, + }, + }, + slguild = { + type = "group", + name = L["S&L Guild"], + order = 4, + args = { + header = { + order = 1, + type = "description", + name = L["These options are for modifing the Shadow & Light Guild datatext."], + }, + combat = { + order = 2, + type = "toggle", + name = L["Hide In Combat"], + desc = L["Will not show the tooltip while in combat."], + get = function(info) return E.db.sle.dt.guild.combat end, + set = function(info, value) E.db.sle.dt.guild.combat = value; end, + }, + hidetotals = { + order = 3, + type = "toggle", + name = L["Show Totals"], + desc = L["Show total guild members in the datatext."], + get = function(info) return E.db.sle.dt.guild.totals end, + set = function(info, value) E.db.sle.dt.guild.totals = value; DT:update_Guild() end, + }, + hidehintline = { + order = 4, + type = "toggle", + name = L["Hide Hints"], + desc = L["Display the hints in the tooltip."], + get = function(info) return E.db.sle.dt.guild.hide_hintline end, + set = function(info, value) E.db.sle.dt.guild.hide_hintline = value; end, + }, + hidemotd = { + order = 5, + type = "toggle", + name = L["Hide MOTD"], + desc = L["Hide the guild's Message of the Day in the tooltip."], + get = function(info) return E.db.sle.dt.guild.hide_gmotd end, + set = function(info, value) E.db.sle.dt.guild.hide_gmotd = value; end, + }, + hideguildname = { + order = 6, + type = "toggle", + name = L["Hide Guild Name"], + desc = L["Hide the guild's name in the tooltip."], + get = function(info) return E.db.sle.dt.guild.hide_guildname end, + set = function(info, value) E.db.sle.dt.guild.hide_guildname = value; end, + }, + spacer = { + order = 7, + type = 'description', + name = "", + }, + tooltipautohide = { + order = 8, + type = "range", + name = L["Autohide Delay:"], + desc = L["Adjust the tooltip autohide delay when mouse is no longer hovering of the datatext."], + min = 0.1, max = 1, step = 0.1, + get = function(info) return E.db.sle.dt.guild.tooltipAutohide end, + set = function(info, value) E.db.sle.dt.guild.tooltipAutohide = value; end, + }, + }, + }, + slmail = { + type = "group", + name = L["S&L Mail"], + order = 5, + args = { + header = { + order = 1, + type = "description", + name = L["These options are for modifing the Shadow & Light Mail datatext."], + }, + icon = { + order = 2, + type = "toggle", + name = L["Minimap icon"], + desc = L["If enabled will show new mail icon on minimap."], + get = function(info) return E.db.sle.dt.mail.icon end, + set = function(info, value) E.db.sle.dt.mail.icon = value; DT:SLEmailUp() end, + } + }, + }, + }, +} +end + +table.insert(E.SLEConfigs, configTable) \ No newline at end of file diff --git a/ElvUI_SLE/options/dev_c.lua b/ElvUI_SLE/options/dev_c.lua new file mode 100644 index 0000000..8c90cf4 --- /dev/null +++ b/ElvUI_SLE/options/dev_c.lua @@ -0,0 +1,375 @@ +local E, L, V, P, G, _ = unpack(ElvUI); +local SLE = E:GetModule('SLE'); +local ACD = LibStub("AceConfigDialog-3.0") + +local bnettesttbl = {} +function SLE:GetBNetInfo() + local _, numBNetOnline = BNGetNumFriends() + for i = 1, numBNetOnline do + local presenceID, presenceName, _, _, _, _, client, isOnline = BNGetFriendInfo(i) + if isOnline and client == BNET_CLIENT_WOW then + BNSendGameData(presenceID, 'SLE_DEV_REQ', 'slesay#'..presenceID) + end + end +end + +if SLE:Auth() then + local selectedChannel = '' + local UserListCache = {} + local highestVersion = tonumber(SLE.version) + local flag = 'SLE_DEV_SAYS' + local addonChannel = 'GUILD' + local addonTarget = "" + local output = 'SAY' + local text = '' + local wtarget = "" + local bnetP = "" + + function SLE:delete(...) + local _, id = ... + id = tostring(id) + bnettesttbl[id] = nil + end + SLE:RegisterEvent('BN_FRIEND_ACCOUNT_OFFLINE', 'delete') + + RegisterAddonMessagePrefix('SLE_DEV_INFO') + + local f = CreateFrame('Frame') + f:RegisterEvent('CHAT_MSG_ADDON') + f:RegisterEvent('BN_CHAT_MSG_ADDON') + f:RegisterEvent('BN_FRIEND_ACCOUNT_ONLINE') + f:RegisterEvent('PLAYER_ENTERING_WORLD') + f:SetScript('OnEvent', function(self, event, prefix, message, channel, sender) + if event == 'BN_FRIEND_ACCOUNT_ONLINE' or event == 'BN_FRIEND_ACCOUNT_OFFLINE' then + SLE:GetBNetInfo() + end + if event == 'PLAYER_ENTERING_WORLD' then + SLE:GetBNetInfo() + end + if prefix == 'SLE_DEV_INFO' then + if event == 'CHAT_MSG_ADDON' or event == 'BN_CHAT_MSG_ADDON' then + if not message:find("SLEinfo") then + local userLevel, userClass, userName, userRealm, userVersion = strsplit('#', message) + if (userName == E.myname and userRealm == E.myrealm) then return end; + + userVersion = tonumber(userVersion) + + if userVersion > highestVersion then + highestVersion = userVersion + end + + local id = #UserListCache + 1; + + for i=1,#UserListCache do + if (UserListCache[i].userName == userName and UserListCache[i].userRealm == userRealm) then + id = i; + break; + end + end + + UserListCache[id] = { + ['userLevel'] = userLevel, + ['userClass'] = userClass, + ['userName'] = userName, + ['userRealm'] = userRealm, + ['userVersion'] = userVersion, + } + + if (IsAddOnLoaded("ElvUI_Config")) then + ACD:SelectGroup('ElvUI', 'sle', 'developer', 'userList') + end + else + local _, numBNetOnline = BNGetNumFriends() + for i = 1, numBNetOnline do + local presenceID, presenceName, _, _, toon, _, _, _ = BNGetFriendInfo(i) + message = message:gsub("SLEinfo", '') + local pid = tonumber(message) + if pid == presenceID then + bnettesttbl[message] = presenceName; + end + end + end + end + end + end) + + local function configTable() + E.Options.args.sle.args.developer = { + order = 999, + type = 'group', + name = "Developer", + childGroups = 'tab', + args = { + header = { + order = 1, + type = "header", + name = "Evil Overlord Control Panel", + }, + testdesc = { + order = 2, + type = "description", + name = "WTF are you doing here, asshole?!", + }, + userList = { + order = 3, + type = "group", + name = "User List", + args = { + listheader = { + order = 1, + type = "header", + name = "List of possible victims", + }, + List = { + type = 'select', + name = 'Choose a channel', + order = 2, + get = function() return selectedChannel end, + set = function(_, value) + selectedChannel = value + end, + values = { + [''] = ' ', + ['GUILD'] = 'Guild', + ['INSTANCE_CHAT'] = 'Instance', + ['PARTY'] = 'Party', + ['RAID'] = 'Raid', + ['BNET'] = 'BNet', + }, + }, + submitbutton = { + type = 'execute', + order = 3, + name = function() + return selectedChannel ~= '' and "Update List" or "Clear List" + end, + func = function(info, value) + UserListCache = {} -- Clear Cache + + if selectedChannel == 'BNET' then + local _, numBNetOnline = BNGetNumFriends() + for i = 1, numBNetOnline do + local presenceID, _, _, _, _, _, client, isOnline = BNGetFriendInfo(i) + if isOnline and client == BNET_CLIENT_WOW then + BNSendGameData(presenceID, 'SLE_DEV_REQ', 'userlist') + end + end + elseif selectedChannel ~= '' then + SendAddonMessage('SLE_DEV_REQ', 'userlist', selectedChannel) + end + end, + }, + Space = { + type = 'description', + name = ' ', + order = 4, + }, + userList = { + type = 'group', + name = function() + return 'Userlist : '..selectedChannel + end, + order = 5, + guiInline = true, + args = {}, + hidden = function() return selectedChannel == '' end, + }, + }, + }, + devcommand = { + order = 4, + type = "group", + name = "Commands", + args = { + header = { + order = 1, + type = "header", + name = "Developer commands execution GUI", + }, + desc = { + order = 2, + type = 'description', + name = "The GUI for executing old /slesays and /slecmd without typing all the shit mannually.", + }, + flag = { + type = 'select', + name = 'Addon message type', + order = 3, + get = function() return flag end, + set = function(_, value) + flag = value + end, + values = { + ['SLE_DEV_SAYS'] = 'S&L Says', + ['SLE_DEV_CMD'] = 'S&L Command', + }, + }, + channel = { + type = 'select', + name = 'Addon message channel', + order = 4, + get = function() return addonChannel end, + set = function(_, value) + addonChannel = value + end, + values = { + ['GUILD'] = 'Guild', + ['INSTANCE_CHAT'] = 'Instance', + ['PARTY'] = 'Party', + ['RAID'] = 'Raid', + ['WHISPER'] = 'Whisper', + ['BNET'] = 'BNet', + }, + }, + bnetlist = { + type = 'select', + name = 'BNet List', + order = 5, + disabled = function() return addonChannel ~= 'BNET' end, + get = function() return bnetP end, + set = function(_, value) + bnetP = value + end, + values = function() + SLE:GetBNetInfo() + return bnettesttbl + end, + }, + target = { + order = 6, + type = 'input', + width = 'full', + name = 'Unit to send message to', + disabled = function() return addonChannel == 'BNET' end, + get = function() return addonTarget end, + set = function(_, value) + addonTarget = value + end, + }, + message = { + order = 7, + type = "group", + name = 'Message', + guiInline = true, + args = { + channel = { + type = 'select', + order = 1, + name = 'Output channel (S&L Says only)', + disabled = function() return flag ~= 'SLE_DEV_SAYS' end, + get = function() return output end, + set = function(_, value) + output = value + end, + values = { + ['GUILD'] = 'Guild', + ['INSTANCE_CHAT'] = 'Instance', + ['PARTY'] = 'Party', + ['RAID'] = 'Raid', + ['SAY'] = "Say", + ['YELL'] = "Yell", + ['WHISPER'] = "Whisper", + }, + }, + message = { + type = 'input', + order = 2, + width = 'full', + name = 'Message to send/Script to execute', + get = function() return text end, + set = function(_, value) + text = value + end, + }, + whispTarget = { + type = 'input', + order = 3, + width = 'full', + name = 'Whisper target (S&L Says with whisper only)', + disabled = function() return (flag ~= 'SLE_DEV_SAYS') or (flag == 'SLE_DEV_SAYS' and output ~= 'WHISPER') end, + get = function() return wtarget end, + set = function(_, value) + wtarget = value + end, + }, + }, + }, + submitbutton = { + type = 'execute', + order = 8, + name = "Execute command", + desc = "Unleash the chaos!!!", + func = function () + SLE:Print('Trying to execute this command...') + E:sleCommand(flag, addonChannel, addonTarget, output, text, wtarget, bnetP) + end, + }, + }, + }, + + devdiaggroup = { + order = 5, + type = "group", + name = "Tech and shit", + args = { + subgroup = { + order = 1, + type = "header", + name = "Some tech stuff", + }, + cpuprofiling = { + order = 2, + type = 'execute', + name = "CPU Profiling", + func = function() SetCVar("scriptProfile", GetCVar("scriptProfile") == "1" and 0 or 1); ReloadUI() end, + }, + }, + }, + devgroupone = { + order = 500, + type = "group", + name = "Test Group", + args = { + subgroup = { + order = 1, + type = "header", + name = "Dafuq we have this?", + }, + }, + }, + }, + } + for i = 1, 40 do + E.Options.args.sle.args.developer.args.userList.args.userList.args[tostring(i)] = { + type = 'description', + order = i, + name = function() + if UserListCache[i] then + local Level = GetQuestDifficultyColor(UserListCache[i]['userLevel']) + Level = format('|cff%02x%02x%02x%s|r', Level.r *255, Level.g *255, Level.b *255, UserListCache[i]['userLevel']) + + local ClassColor = '|c'..RAID_CLASS_COLORS[(UserListCache[i]['userClass'])]['colorStr'] + local UserName = ClassColor..UserListCache[i]['userName']..'|r' + + local UserRealm = UserListCache[i]['userRealm'] + + local UserVersion = UserListCache[i]['userVersion'] + UserVersion = (UserVersion == highestVersion and '|cffceff00' or '|cffff5678')..UserVersion + + local Icon = ''; + local realm = UserRealm:gsub(' ',''); + if (SLE.SpecialChatIcons[realm] and SLE.SpecialChatIcons[realm][UserListCache[i]['userName']]) then + Icon = SLE.SpecialChatIcons[realm][UserListCache[i]['userName']]; + + end + return Level..' '..UserName.. '|cffffffff - '..UserRealm..' : '..UserVersion..Icon + else + return ' ' + end + end, + hidden = function() return not UserListCache[i] end, + } + end + end + table.insert(E.SLEConfigs, configTable) +end \ No newline at end of file diff --git a/ElvUI_SLE/options/equipmanager_c.lua b/ElvUI_SLE/options/equipmanager_c.lua new file mode 100644 index 0000000..0d95f19 --- /dev/null +++ b/ElvUI_SLE/options/equipmanager_c.lua @@ -0,0 +1,130 @@ +local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore +local EM = E:GetModule('SLE_EquipManager') +local BI = E:GetModule('SLE_BagInfo') + +local sets = {} + +local function FillTable() + sets = {} + sets["NONE"] = NONE + for i = 1, GetNumEquipmentSets() do + local name, icon, lessIndex = GetEquipmentSetInfo(i) + if name then + sets[name] = name + end + end + return sets +end + +local function configTable() + +E.Options.args.sle.args.options.args.equipmanager = { + type = 'group', + order = 7, + name = L['Equipment Manager'], + args = { + header = { + order = 1, + type = "header", + name = L["Equipment Manager"], + }, + intro = { + order = 2, + type = 'description', + name = L["EM_DESC"], + }, + enable = { + type = "toggle", + order = 3, + name = L['Enable'], + get = function(info) return E.private.sle.equip.enable end, + set = function(info, value) E.private.sle.equip.enable = value; E:StaticPopup_Show("PRIVATE_RL") end + }, + spam = { + type = "toggle", + order = 4, + name = L['Spam Throttling'], + desc = L["Removes the spam from chat stating what talents were learned or unlearned during spec change."], + get = function(info) return E.private.sle.equip.spam end, + set = function(info, value) E.private.sle.equip.spam = value; EM:SpamThrottle() end + }, + setoverlay = { + type = "toggle", + order = 5, + name = L['Equipment Set Overlay'], + desc = L['Show the associated equipment sets for the items in your bags (or bank).'], + get = function(info) return E.private.sle.equip.setoverlay end, + set = function(info, value) E.private.sle.equip.setoverlay = value; BI:ToggleSettings(); end, + }, + equipsets = { + type = "group", + name = PAPERDOLL_EQUIPMENTMANAGER, + order = 6, + disabled = function() return not E.private.sle.equip.enable end, + guiInline = true, + args = { + intro = { + order = 1, + type = 'description', + name = L["Here you can choose what equipment sets to use in different situations."], + }, + primary = { + order = 2, + type = "select", + name = SPECIALIZATION_PRIMARY, + desc = L["Equip this set when switching to primary talents."], + get = function(info) return E.private.sle.equip.primary end, + set = function(info, value) E.private.sle.equip.primary = value; end, + values = function() + FillTable() + return sets + end, + }, + secondary = { + order = 3, + type = "select", + name = SPECIALIZATION_SECONDARY, + desc = L["Equip this set when switching to secondary talents."], + get = function(info) return E.private.sle.equip.secondary end, + set = function(info, value) E.private.sle.equip.secondary = value end, + values = function() + FillTable() + return sets + end, + }, + spacer = { + type = "description", + order = 4, + name = "", + }, + instance = { + order = 5, + type = "select", + name = DUNGEONS, + desc = L["Equip this set after entering dungeons or raids."], + get = function(info) return E.private.sle.equip.instance end, + set = function(info, value) E.private.sle.equip.instance = value end, + values = function() + FillTable() + return sets + end, + }, + pvp = { + order = 6, + type = "select", + name = PVP, + desc = L["Equip this set after entering battlegrounds or arens."], + get = function(info) return E.private.sle.equip.pvp end, + set = function(info, value) E.private.sle.equip.pvp = value end, + values = function() + FillTable() + return sets + end, + }, + }, + }, + }, +} +end + +table.insert(E.SLEConfigs, configTable) \ No newline at end of file diff --git a/ElvUI_SLE/options/exprepbar_c.lua b/ElvUI_SLE/options/exprepbar_c.lua new file mode 100644 index 0000000..c4181bb --- /dev/null +++ b/ElvUI_SLE/options/exprepbar_c.lua @@ -0,0 +1,44 @@ +local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore +local M = E:GetModule('Misc') +local function configTable() + +--Options for Exp/Rep text +E.Options.args.sle.args.options.args.general.args.exprep = { + type = "group", + name = L["Xp-Rep Text"], + order = 6, + args = { + header = { + order = 1, + type = "header", + name = L["Xp-Rep Text"], + }, + explong = { + order = 2, + type = "toggle", + name = L["Full value on Exp Bar"], + desc = L["Changes the way text is shown on exp bar."], + get = function(info) return E.db.sle.exprep.explong end, + set = function(info, value) E.db.sle.exprep.explong = value; M:UpdateExperience() end + }, + replong = { + order = 3, + type = "toggle", + name = L["Full value on Rep Bar"], + desc = L["Changes the way text is shown on rep bar."], + get = function(info) return E.db.sle.exprep.replong end, + set = function(info, value) E.db.sle.exprep.replong = value; M:UpdateReputation() end + }, + autotrackrep = { + order = 4, + type = "toggle", + name = L["Auto Track Reputation"], + desc = L["Automatically sets reputation tracking to the most recent reputation change."], + get = function(info) return E.private.sle.exprep.autotrack end, + set = function(info, value) E.private.sle.exprep.autotrack = value; end + }, + }, +} +end + +table.insert(E.SLEConfigs, configTable) \ No newline at end of file diff --git a/ElvUI_SLE/options/farm_c.lua b/ElvUI_SLE/options/farm_c.lua new file mode 100644 index 0000000..0db6317 --- /dev/null +++ b/ElvUI_SLE/options/farm_c.lua @@ -0,0 +1,97 @@ +local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB +local F = E:GetModule('SLE_Farm') +local function configTable() + +E.Options.args.sle.args.options.args.farm = { + type = 'group', + order = 8, + name = L['Farm'], + args = { + header = { + order = 1, + type = "header", + name = L["Farm Options"], + }, + intro = { + order = 2, + type = 'description', + name = L["FARM_DESC"], + }, + enable = { + type = "toggle", + order = 3, + name = L['Enable'], + get = function(info) return E.private.sle.farm.enable end, + set = function(info, value) E.private.sle.farm.enable = value; E:StaticPopup_Show("PRIVATE_RL") end + }, + active = { + order = 4, + type = 'toggle', + name = L['Only active buttons'], + desc = L['Only show the buttons for the seeds, portals, tools you have in your bags.'], + disabled = function() return not E.private.sle.farm.enable end, + get = function(info) return E.db.sle.farm.active end, + set = function(info, value) E.db.sle.farm.active = value; if SeedAnchor then F:UpdateLayout() end end, + }, + size = { + order = 5, + type = "range", + name = L["Button Size"], + disabled = function() return not E.private.sle.farm.enable end, + min = 15, max = 60, step = 1, + get = function(info) return E.db.sle.farm.size end, + set = function(info, value) E.db.sle.farm.size = value; F:UpdateLayout() end, + }, + seedbar = { + type = "group", + order = 6, + name = L["Seed Bars"], + disabled = function() return not E.private.sle.farm.enable end, + guiInline = true, + args = { + autotarget = { + type = "toggle", + order = 1, + name = L["Auto Planting"], + desc = L["Automatically plant seeds to the nearest tilled soil if one is not already selected."], + get = function(info) return E.db.sle.farm.autotarget end, + set = function(info, value) E.db.sle.farm.autotarget = value; end + }, + trash = { + type = "toggle", + order = 2, + name = L["Drop Seeds"], + desc = L["Allow seeds to be destroyed from seed bars."], + get = function(info) return E.private.sle.farm.seedtrash end, + set = function(info, value) E.private.sle.farm.seedtrash = value; E:StaticPopup_Show("PRIVATE_RL") end + }, + quest = { + type = "toggle", + order = 3, + name = L["Quest Glow"], + desc = L["Show glowing border on seeds needed for any quest in your log."], + get = function(info) return E.db.sle.farm.quest end, + set = function(info, value) E.db.sle.farm.quest = value; if SeedAnchor then F:UpdateLayout() end end + }, + growth = { + order = 8, + type = "select", + name = L["Dock Buttons To"], + desc = L["Change the position from where seed bars will grow."], + disabled = function() return not E.private.sle.farm end, + get = function(info) return E.db.sle.farm.seedor end, + set = function(info, value) E.db.sle.farm.seedor = value; if SeedAnchor then F:UpdateLayout() end end, + values = { + ['RIGHT'] = L["Right"], + ['LEFT'] = L["Left"], + ['BOTTOM'] = L["Bottom"], + ['TOP'] = L["Top"], + }, + }, + }, + }, + }, +} +end + +table.insert(E.SLEConfigs, configTable) \ No newline at end of file diff --git a/ElvUI_SLE/options/help_c.lua b/ElvUI_SLE/options/help_c.lua new file mode 100644 index 0000000..003297d --- /dev/null +++ b/ElvUI_SLE/options/help_c.lua @@ -0,0 +1,50 @@ +local E, L, V, P, G = unpack(ElvUI); --Inport: Engine, Locales, ProfileDB, GlobalDB +local SLE = E:GetModule('SLE') +local function configTable() + +--Main options group +E.Options.args.sle.args.links = { + type = 'group', + name = 'About/Help', + order = -2, + args = { + desc = { + order = 1, + type = 'description', + fontSize = 'medium', + name = 'Da LinkZ!!!!', + }, + tukuilink = { + type = 'input', + width = 'full', + name = 'On TukUI.org', + get = function(info) return 'http://www.tukui.org/addons/index.php?act=view&id=42' end, + order = 2, + }, + wowilink = { + type = 'input', + width = 'full', + name = 'On WoWI', + get = function(info) return 'http://www.wowinterface.com/downloads/info20927-ElvUIShadowLight.html' end, + order = 3, + }, + curselink= { + type = 'input', + width = 'full', + name = 'On Curse', + get = function(info) return 'http://www.curse.com/addons/wow/shadow-and-light-edit' end, + order = 4, + }, + gitlablink = { + type = 'input', + width = 'full', + name = 'GitLab Link / Report Errors', + get = function(info) return 'http://git.tukui.org/repooc/elvui-shadowandlight' end, + order = 5, + }, + }, +} + +end + +table.insert(E.SLEConfigs, configTable) \ No newline at end of file diff --git a/ElvUI_SLE/options/load_options.xml b/ElvUI_SLE/options/load_options.xml new file mode 100644 index 0000000..7817d03 --- /dev/null +++ b/ElvUI_SLE/options/load_options.xml @@ -0,0 +1,24 @@ +<Ui xmlns="http://www.blizzard.com/wow/ui/"> + <Script file='core_c.lua'/> + <Script file='help_c.lua'/> + <Script file='autorelease_c.lua'/> + <Script file='datatexts_c.lua'/> + <Script file='backgrounds_c.lua'/> + <Script file='characterframe_c.lua'/> + <Script file='chat_c.lua'/> + <Script file='bags_c.lua'/> + <Script file='equipmanager_c.lua'/> + <Script file='exprepbar_c.lua'/> + <Script file='farm_c.lua'/> + <Script file='imports_c.lua'/> + <Script file='loot_c.lua'/> + <Script file='marks_c.lua'/> + <Script file='minimap_c.lua'/> + <Script file='nameplates_c.lua'/> + <Script file='raidutility_c.lua'/> + <Script file='tooltip_c.lua'/> + <Script file='uibuttons_c.lua'/> + <Script file='unitframes_c.lua'/> + <Script file='vehicle_c.lua'/> + <Script file='dev_c.lua'/> +</Ui> \ No newline at end of file diff --git a/ElvUI_SLE/options/loot_c.lua b/ElvUI_SLE/options/loot_c.lua new file mode 100644 index 0000000..bda2831 --- /dev/null +++ b/ElvUI_SLE/options/loot_c.lua @@ -0,0 +1,73 @@ +local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore +local function configTable() + +--Main options group +E.Options.args.sle.args.options.args.loot = { + order = 9, + type = "group", + name = L['Loot Announcer'], + args = { + marksheader = { + order = 1, + type = "header", + name = L['Loot Announcer'], + }, + info = { + order = 2, + type = "description", + name = L["LOOT_DESC"], + }, + enabled = { + order = 3, + type = "toggle", + name = L["Enable"], + get = function(info) return E.private.sle.loot.enable end, + set = function(info, value) E.private.sle.loot.enable = value; E:StaticPopup_Show("PRIVATE_RL") end + }, + auto = { + order = 4, + type = "toggle", + name = L["Auto Announce"], + desc = L["Automatically announce when loot window opens (Master Looter Only)."], + disabled = function() return not E.private.sle.loot.enable end, + get = function(info) return E.db.sle.loot.auto end, + set = function(info, value) E.db.sle.loot.auto = value; end + }, + spacer = { + order = 5, + type = "description", + name = "", + }, + quality = { + order = 6, + type = "select", + name = L["Loot Quality"], + desc = L["Set the minimum quality of an item to announce."], + disabled = function() return not E.private.sle.loot.enable end, + get = function(info) return E.db.sle.loot.quality end, + set = function(info, value) E.db.sle.loot.quality = value; end, + values = { + ['EPIC'] = "|cffA335EE"..ITEM_QUALITY4_DESC.."|r", + ['RARE'] = "|cff0070DD"..ITEM_QUALITY3_DESC.."|r", + ['UNCOMMON'] = "|cff1EFF00"..ITEM_QUALITY2_DESC.."|r", + }, + }, + chat = { + order = 7, + type = "select", + name = L["Chat"], + desc = L["Announce loot to the selected channel."], + disabled = function() return not E.private.sle.loot.enable end, + get = function(info) return E.db.sle.loot.chat end, + set = function(info, value) E.db.sle.loot.chat = value; end, + values = { + ['RAID'] = "|cffFF7F00"..RAID.."|r", + ['PARTY'] = "|cffAAAAFF"..PARTY.."|r", + ['SAY'] = "|cffFFFFFF"..SAY.."|r", + }, + }, + }, +} +end + +table.insert(E.SLEConfigs, configTable) \ No newline at end of file diff --git a/ElvUI_SLE/options/marks_c.lua b/ElvUI_SLE/options/marks_c.lua new file mode 100644 index 0000000..54adb62 --- /dev/null +++ b/ElvUI_SLE/options/marks_c.lua @@ -0,0 +1,198 @@ +local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore +local RM = E:GetModule('SLE_RaidMarks') +local RF = E:GetModule('SLE_RaidFlares') +local function configTable() + +--Main options group +E.Options.args.sle.args.options.args.marks = { + order = 4, + type = "group", + name = L["Raid Marks"], + args = { + intro = { + order = 1, + type = 'description', + name = L['Options for panels providing fast access to raid markers and flares.'], + }, + marks = { + order = 2, + type = "group", + name = L["Raid Marks"], + args = { + marksheader = { + order = 1, + type = "header", + name = L["Raid Marks"], + }, + enabled = { + order = 2, + type = "toggle", + name = L["Enable"], + desc = L["Show/Hide raid marks."], + get = function(info) return E.private.sle.marks.marks end, + set = function(info, value) E.private.sle.marks.marks = value; E:StaticPopup_Show("PRIVATE_RL") end + }, + backdrop = { + order = 3, + type = "toggle", + name = L["Backdrop"], + disabled = function() return not E.private.sle.marks.marks end, + get = function(info) return E.db.sle.marks.backdrop end, + set = function(info, value) E.db.sle.marks.backdrop = value; RM:Backdrop() end + }, + Reset = { + order = 4, + type = 'execute', + name = L['Restore Defaults'], + desc = L["Reset these options to defaults"], + disabled = function() return not E.private.sle.marks.marks end, + func = function() E:GetModule('SLE'):Reset(nil, nil, nil, nil, true) end, + }, + spacer = { + order = 5, + type = 'description', + name = "", + }, + showinside = { + order = 6, + type = "toggle", + name = L["Show only in instances"], + desc = L["Selecting this option will have the Raid Markers appear only while in a raid or dungeon."], + disabled = function() return not E.private.sle.marks.marks end, + get = function(info) return E.db.sle.marks.showinside end, + set = function(info, value) E.db.sle.marks.showinside = value; RM:UpdateVisibility() end + }, + target = { + order = 7, + type = "toggle", + name = L["Target Exists"], + desc = L["Selecting this option will have the Raid Markers appear only when you have a target."], + disabled = function() return not E.private.sle.marks.marks end, + get = function(info) return E.db.sle.marks.target end, + set = function(info, value) E.db.sle.marks.target = value; RM:Target(); RM:UpdateVisibility() end + }, + mouseover = { + order = 7, + type = "toggle", + name = L["Mouseover"], + desc = L["Show on mouse over."], + disabled = function() return not E.private.sle.marks.marks end, + get = function(info) return E.db.sle.marks.mouseover end, + set = function(info, value) E.db.sle.marks.mouseover = value; RM:UpdateVisibility() end --RM:Mouseover() end + }, + size = { + order = 9, + type = "range", + name = L['Size'], + desc = L["Sets size of buttons"], + disabled = function() return not E.private.sle.marks.marks end, + min = 15, max = 30, step = 1, + get = function(info) return E.db.sle.marks.size end, + set = function(info, value) E.db.sle.marks.size = value; RM:FrameButtonsGrowth(); RM:FrameButtonsSize() end, + }, + growth = { + order = 10, + type = "select", + name = L["Direction"], + desc = L["Change the direction of buttons growth from the skull marker"], + disabled = function() return not E.private.sle.marks.marks end, + get = function(info) return E.db.sle.marks.growth end, + set = function(info, value) E.db.sle.marks.growth = value; RM:FrameButtonsGrowth() end, + values = { + ['RIGHT'] = L["Right"], + ['LEFT'] = L["Left"], + ['UP'] = L["Up"], + ['DOWN'] = L["Down"], + }, + }, + }, + }, + flares = { + order = 3, + type = "group", + name = L["Raid Flares"], + args = { + header = { + order = 1, + type = "header", + name = L["Raid Flares"], + }, + enabled = { + order = 2, + type = "toggle", + name = L["Enable"], + desc = L["Show/Hide Raid Flares."], + get = function(info) return E.private.sle.marks.flares end, + set = function(info, value) E.private.sle.marks.flares = value; E:StaticPopup_Show("PRIVATE_RL") end + }, + backdrop = { + order = 3, + type = "toggle", + name = L["Backdrop"], + disabled = function() return not E.private.sle.marks.flares end, + get = function(info) return E.db.sle.flares.backdrop end, + set = function(info, value) E.db.sle.flares.backdrop = value; RF:Backdrop() end + }, + spacer = { + order = 5, + type = 'description', + name = "", + }, + showinside = { + order = 6, + type = "toggle", + name = L["Show only in instances"], + desc = L["Selecting this option will have the Raid Flares appear only while in a raid or dungeon."], + disabled = function() return not E.private.sle.marks.flares end, + get = function(info) return E.db.sle.flares.showinside end, + set = function(info, value) E.db.sle.flares.showinside = value; RF:UpdateVisibility() end + }, + mouseover = { + order = 7, + type = "toggle", + name = L["Mouseover"], + desc = L["Show on mouse over."], + disabled = function() return not E.private.sle.marks.flares end, + get = function(info) return E.db.sle.flares.mouseover end, + set = function(info, value) E.db.sle.flares.mouseover = value; RF:UpdateVisibility() end + }, + tooltips = { + order = 8, + type = "toggle", + name = L["Show Tooltip"], + disabled = function() return not E.private.sle.marks.flares end, + get = function(info) return E.db.sle.flares.tooltips end, + set = function(info, value) E.db.sle.flares.tooltips = value; end + }, + size = { + order = 9, + type = "range", + name = L['Size'], + desc = L["Sets size of buttons"], + disabled = function() return not E.private.sle.marks.flares end, + min = 15, max = 30, step = 1, + get = function(info) return E.db.sle.flares.size end, + set = function(info, value) E.db.sle.flares.size = value; RF:FrameButtonsGrowth(); RF:FrameButtonsSize() end, + }, + growth = { + order = 9, + type = "select", + name = L["Direction"], + desc = L["Change the direction of buttons growth from the square marker"], + disabled = function() return not E.private.sle.marks.flares end, + get = function(info) return E.db.sle.flares.growth end, + set = function(info, value) E.db.sle.flares.growth = value; RF:FrameButtonsGrowth() end, + values = { + ['RIGHT'] = L["Right"], + ['LEFT'] = L["Left"], + ['UP'] = L["Up"], + ['DOWN'] = L["Down"], + }, + }, + }, + }, + }, +} +end + +table.insert(E.SLEConfigs, configTable) \ No newline at end of file diff --git a/ElvUI_SLE/options/minimap_c.lua b/ElvUI_SLE/options/minimap_c.lua new file mode 100644 index 0000000..f616649 --- /dev/null +++ b/ElvUI_SLE/options/minimap_c.lua @@ -0,0 +1,147 @@ +local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore + +local function configTable() + E.Options.args.sle.args.options.args.minimap = { + type = "group", + name = MINIMAP_LABEL, + order = 3, + args = { + header = { + order = 1, + type = "header", + name = L["Minimap Options"], + }, + intro = { + order = 2, + type = 'description', + name = L['MINIMAP_DESC'], + }, + + coords = { + type = "group", + name = L["Minimap Coordinates"], + order = 4, + guiInline = true, + disabled = function() return not E.private.general.minimap.enable or not E.db.sle.minimap.enable end, + args = { + coordsenable = { + type = "toggle", + name = L['Enable'], + order = 1, + desc = L['Enable/Disable Square Minimap Coords.'], + get = function(info) return E.db.sle.minimap.enable end, + set = function(info, value) E.db.sle.minimap.enable = value; E:GetModule('Minimap'):UpdateSettings() end, + disabled = function() return not E.private.general.minimap.enable end, + }, + display = { + order = 2, + type = 'select', + name = L['Coords Display'], + desc = L['Change settings for the display of the coordinates that are on the minimap.'], + get = function(info) return E.db.sle.minimap.coords.display end, + set = function(info, value) E.db.sle.minimap.coords.display = value; E:GetModule('Minimap'):UpdateSettings() end, + values = { + ['MOUSEOVER'] = L['Minimap Mouseover'], + ['SHOW'] = L['Always Display'], + }, + }, + middle = { + order = 3, + type = "select", + name = L["Coords Location"], + desc = L['This will determine where the coords are shown on the minimap.'], + get = function(info) return E.db.sle.minimap.coords.middle end, + set = function(info, value) E.db.sle.minimap.coords.middle = value; E:GetModule('Minimap'):UpdateSettings() end, + values = { + ['CORNERS'] = L['Bottom Corners'], + ['CENTER'] = L['Bottom Center'], + }, + }, + --[[middle = { + order = 3, + type = "toggle", + name = L["Coords in the middle"], + desc = L['If enabled will show coordinates in the center of minimaps lower border. Otherwise in the lower corners.'], + disabled = function() return not E.db.sle.minimap.enable end, + get = function(info) return E.db.sle.minimap.middle end, + set = function(info, value) E.db.sle.minimap.middle = value; E:GetModule('Minimap'):UpdateSettings() end, + },]] + }, + }, + mapiconsenable = { + type = "toggle", + name = L['Enable'], + order = 5, + desc = L['Enable/Disable Square Minimap Buttons.'], + get = function(info) return E.private.sle.minimap.mapicons.enable end, + set = function(info, value) E.private.sle.minimap.mapicons.enable = value; E:StaticPopup_Show("PRIVATE_RL") end, + }, + mapicons = { + type = "group", + name = L["Minimap Buttons"], + order = 6, + guiInline = true, + disabled = function() return not E.private.sle.minimap.mapicons.enable end, + args = { + barenable = { + order = 2, + type = "toggle", + name = L["Bar Enable"], + desc = L['Enable/Disable Square Minimap Bar.'], + get = function(info) return E.private.sle.minimap.mapicons.barenable end, + set = function(info, value) E.private.sle.minimap.mapicons.barenable = value; E:StaticPopup_Show("PRIVATE_RL") end, + }, + skindungeon = { + order = 3, + type = 'toggle', + name = L['Skin Dungeon'], + desc = L['Skin dungeon icon.'], + get = function(info) return E.db.sle.minimap.mapicons.skindungeon end, + set = function(info, value) E.db.sle.minimap.mapicons.skindungeon = value; E:StaticPopup_Show("PRIVATE_RL") end, + disabled = function() return not E.private.sle.minimap.mapicons.enable end, + }, + skinmail = { + order = 4, + type = 'toggle', + name = L['Skin Mail'], + desc = L['Skin mail icon.'], + get = function(info) return E.db.sle.minimap.mapicons.skinmail end, + set = function(info, value) E.db.sle.minimap.mapicons.skinmail = value; E:StaticPopup_Show("PRIVATE_RL") end, + disabled = function() return not E.private.sle.minimap.mapicons.enable end, + }, + iconsize = { + order = 5, + type = 'range', + name = L['Button Size'], + desc = L['The size of the minimap buttons when not anchored to the minimap.'], + min = 16, max = 40, step = 1, + get = function(info) return E.db.sle.minimap.mapicons.iconsize end, + set = function(info, value) E.db.sle.minimap.mapicons.iconsize = value; E:GetModule('SLE_SquareMinimapButtons'):Update(SquareMinimapButtonBar) end, + disabled = function() return not E.private.sle.minimap.mapicons.enable end, + }, + iconperrow = { + order = 6, + type = 'range', + name = L['Icons Per Row'], + desc = L['Anchor mode for displaying the minimap buttons are skinned.'], + min = 1, max = 12, step = 1, + get = function(info) return E.db.sle.minimap.mapicons.iconperrow end, + set = function(info, value) E.db.sle.minimap.mapicons.iconperrow = value; E:GetModule('SLE_SquareMinimapButtons'):Update(SquareMinimapButtonBar) end, + disabled = function() return not E.private.sle.minimap.mapicons.enable end, + }, + iconmouseover = { + order = 7, + name = L['Mouse Over'], + desc = L['Show minimap buttons on mouseover.'], + type = "toggle", + get = function(info) return E.db.sle.minimap.mapicons.iconmouseover end, + set = function(info, value) E.db.sle.minimap.mapicons.iconmouseover = value; E:GetModule('SLE_SquareMinimapButtons'):ChangeMouseOverSetting() end, + disabled = function() return not E.private.sle.minimap.mapicons.enable end, + }, + }, + }, + }, + } +end + +table.insert(E.SLEConfigs, configTable) \ No newline at end of file diff --git a/ElvUI_SLE/options/nameplates_c.lua b/ElvUI_SLE/options/nameplates_c.lua new file mode 100644 index 0000000..9274326 --- /dev/null +++ b/ElvUI_SLE/options/nameplates_c.lua @@ -0,0 +1,33 @@ +local E, L, V, P, G = unpack(ElvUI); +local NP = E:GetModule('NamePlates') + +local function configTable() + E.Options.args.sle.args.options.args.general.args.nameplate = { + type = "group", + name = L["NamePlates"], + order = 82, + get = function(info) return E.db.sle.nameplate[ info[#info] ] end, + set = function(info, value) E.db.sle.nameplate[ info[#info] ] = value; NP:UpdateAllPlates() end, + args = { + header = { + order = 1, + type = "header", + name = L["NAMEPLATE_DESC"], --L["Nameplate Options"], + }, + targetcount = { + type = "toggle", + order = 2, + name = L["Target Count"], + desc = L["Display the number of party / raid members targetting the nameplate unit."], + }, + showthreat = { + type = "toggle", + order = 3, + name = L["Threat Text"], + desc = L["Display threat level as text on targeted, boss or mouseover nameplate."], + }, + }, + } +end + +table.insert(E.SLEConfigs, configTable) \ No newline at end of file diff --git a/ElvUI_SLE/options/tooltip_c.lua b/ElvUI_SLE/options/tooltip_c.lua new file mode 100644 index 0000000..7c86230 --- /dev/null +++ b/ElvUI_SLE/options/tooltip_c.lua @@ -0,0 +1,67 @@ +local E, L, V, P, G = unpack(ElvUI); + +local function configTable() + --if not E.Options.args.sle.args.tooltip then E.Options.args.sle.args.tooltip = {} end + E.Options.args.sle.args.options.args.general.args.tooltip = { + order = 95, + type = "group", + get = function(info) return E.db.tooltip[ info[#info] ] end, + name = L["Tooltip"], + args = { + header = { + order = 1, + type = "header", + name = L["Tooltip"], + }, + intro = { + order = 2, + type = 'description', + name = L["Tooltip enhancements"], + }, + tooltipicon = { + order = 3, + type = 'toggle', + name = L["Faction Icon"], + desc = L["Show faction icon to the left of player's name on tooltip."], + get = function(info) return E.db.sle.tooltipicon end, + set = function(info, value) E.db.sle.tooltipicon = value end, + }, + offset = { + type = "group", + name = L["Tooltip Cursor Offset"], + order = 4, + guiInline = true, + disabled = function() return not E.private.tooltip.enable or (not E.db.tooltip.cursorAnchor and E.private.tooltip.enable) end, + args = { + mouseOffsetX = { + order = 31, + type = 'range', + name = L["Tooltip X-offset"], + desc = L["Offset the tooltip on the X-axis."], + min = -200, max = 200, step = 1, + set = function(info, value) E.db.tooltip[ info[#info] ] = value end, + }, + mouseOffsetY = { + order = 32, + type = 'range', + name = L["Tooltip Y-offset"], + desc = L["Offset the tooltip on the Y-axis."], + min = -200, max = 200, step = 1, + set = function(info, value) E.db.tooltip[ info[#info] ] = value end, + }, + --overrideCombat = { + --order = 33, + --type = 'toggle', + --name = 'Override Combat Hide', + --desc = 'When enabled, Combat Hide will get overridden when Shift is pressed. Note: You have to mouseover the unit again for the tooltip to show.', + --set = function(info, value) + --E.db.tooltip[ info[#info] ] = value + --end, + --}, + }, + }, + }, + } +end + +table.insert(E.SLEConfigs, configTable) \ No newline at end of file diff --git a/ElvUI_SLE/options/uibuttons_c.lua b/ElvUI_SLE/options/uibuttons_c.lua new file mode 100644 index 0000000..9a5fa33 --- /dev/null +++ b/ElvUI_SLE/options/uibuttons_c.lua @@ -0,0 +1,85 @@ +local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore +local UB = E:GetModule('SLE_UIButtons') +local function configTable() + +--UI Buttons +E.Options.args.sle.args.options.args.general.args.uibuttons = { + type = "group", + name = L["UI Buttons"], + order = 99, + args = { + header = { + order = 1, + type = "header", + name = L["UI Buttons"], + }, + intro = { + order = 2, + type = "description", + name = L["Additional menu with useful buttons"], + }, + enabled = { + order = 3, + type = "toggle", + name = L["Enable"], + desc = L["Show/Hide UI buttons."], + get = function(info) return E.db.sle.uibuttons.enable end, + set = function(info, value) E.db.sle.uibuttons.enable = value; UB:Start() end + }, + space1 = { + order = 4, + type = 'description', + name = "", + }, + space2 = { + order = 5, + type = 'description', + name = "", + }, + size = { + order = 6, + type = "range", + name = L['Size'], + desc = L["Sets size of buttons"], + min = 12, max = 25, step = 1, + disabled = function() return not E.db.sle.uibuttons.enable end, + get = function(info) return E.db.sle.uibuttons.size end, + set = function(info, value) E.db.sle.uibuttons.size = value; UB:FrameSize() end, + }, + spacing = { + order = 7, + type = "range", + name = L['Button Spacing'], + desc = L['The spacing between buttons.'], + min = 1, max = 10, step = 1, + disabled = function() return not E.db.sle.uibuttons.enable end, + get = function(info) return E.db.sle.uibuttons.spacing end, + set = function(info, value) E.db.sle.uibuttons.spacing = value; UB:Positioning(); UB:FrameSize(); UB:MoverSize() end, + }, + mouse = { + order = 8, + type = "toggle", + name = L["Mouse over"], + desc = L["Show on mouse over."], + disabled = function() return not E.db.sle.uibuttons.enable end, + get = function(info) return E.db.sle.uibuttons.mouse end, + set = function(info, value) E.db.sle.uibuttons.mouse = value; end + }, + position = { + order = 10, + name = L["Buttons position"], + desc = L["Layout for UI buttons."], + type = "select", + values = { + ["uib_hor"] = L['Horizontal'], + ["uib_vert"] = L['Vertical'], + }, + disabled = function() return not E.db.sle.uibuttons.enable end, + get = function(info) return E.db.sle.uibuttons.position end, + set = function(info, value) E.db.sle.uibuttons.position = value; UB:Positioning(); UB:MoverSize() end, + }, + }, +} +end + +table.insert(E.SLEConfigs, configTable) \ No newline at end of file diff --git a/ElvUI_SLE/options/unitframes_c.lua b/ElvUI_SLE/options/unitframes_c.lua new file mode 100644 index 0000000..57befb1 --- /dev/null +++ b/ElvUI_SLE/options/unitframes_c.lua @@ -0,0 +1,82 @@ +local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore +local UF = E:GetModule('UnitFrames') +local CAN_HAVE_CLASSBAR = (E.myclass == "PALADIN" or E.myclass == "DRUID" or E.myclass == "DEATHKNIGHT" or E.myclass == "WARLOCK" or E.myclass == "PRIEST" or E.myclass == "MONK" or E.myclass == 'MAGE') +local function configTable() + +local positionValues = { + TOPLEFT = 'TOPLEFT', + LEFT = 'LEFT', + BOTTOMLEFT = 'BOTTOMLEFT', + RIGHT = 'RIGHT', + TOPRIGHT = 'TOPRIGHT', + BOTTOMRIGHT = 'BOTTOMRIGHT', + CENTER = 'CENTER', + TOP = 'TOP', + BOTTOM = 'BOTTOM', + NONE = L['Hide'] +}; + +E.Options.args.sle.args.options.args.general.args.unitframes = { + type = "group", + name = L["UnitFrames"], + order = 100, + args = { + header = { + order = 1, + type = "header", + name = L["Additional unit frames options"], + }, + info = { + order = 2, + type = "description", + name = L["Options for customizing unit frames. Please don't change these setting when ElvUI's testing frames for bosses and arena teams are shown. That will make them invisible until retoggling."], + }, + Reset = { + order = 3, + type = 'execute', + name = L['Restore Defaults'], + desc = L["Reset these options to defaults"], + func = function() E:GetModule('SLE'):Reset(nil, true) end, + }, + indicators = { + order = 5, + type = "group", + name = L["Player Frame Indicators"], + guiInline = true, + args = { + combaticopos = { + order = 6, + type = "select", + name = L["Combat Position"], + desc = L["Set the point to show combat icon"], + get = function(info) return E.db.sle.combatico.pos end, + set = function(info, value) E.db.sle.combatico.pos = value; UF:Update_CombatIndicator() end, + values = positionValues + }, + }, + }, + }, +} + +if E.myclass == "DRUID" or E.myclass == "WARLOCK" then +E.Options.args.sle.args.options.args.general.args.unitframes.args.druid = { + order = 7, + type = 'group', + name = L["Classbar Energy"], + guiInline = true, + args = { + powtext = { + order = 1, + type = "toggle", + name = L["Enable"], + desc = L["Show/hide the text with exact number of energy (Solar/Lunar or Demonic Fury) on your Classbar."], + get = function(info) return E.db.sle.powtext end, + set = function(info, value) E.db.sle.powtext = value; UF:ClassbarTextSLE() end, + }, + }, +} +end + +end + +table.insert(E.SLEConfigs, configTable) \ No newline at end of file diff --git a/ElvUI_SLE/options/vehicle_c.lua b/ElvUI_SLE/options/vehicle_c.lua new file mode 100644 index 0000000..20e61a4 --- /dev/null +++ b/ElvUI_SLE/options/vehicle_c.lua @@ -0,0 +1,30 @@ +local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB, Localize Underscore + +local function configTable() + E.Options.args.sle.args.options.args.general.args.vehicle = { + type = "group", + name = L["Enhanced Vehicle Bar"], + order = 84, + args = { + header = { + order = 1, + type = "header", + name = L["Enhanced Vehicle Bar"], + }, + info = { + order = 2, + type = "description", + name = L["Use the enhanced vehicle bar based on work by Azilroka"], + }, + enable = { + order = 3, + type = "toggle", + name = L["Enable"], + get = function(info) return E.private.sle.vehicle.enable end, + set = function(info, value) E.private.sle.vehicle.enable = value; E:StaticPopup_Show("PRIVATE_RL") end, + }, + }, + } +end + +table.insert(E.SLEConfigs, configTable) \ No newline at end of file