Advertisement
CelestialFury

options.lua

May 8th, 2012
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 173.41 KB | None | 0 0
  1. local E, L, V, P, G = unpack(select(2, ...)); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
  2. local UF = E:GetModule('UnitFrames');
  3. local _, ns = ...
  4. local ElvUF = ns.oUF
  5.  
  6. local selectedSpell;
  7. local selectedFilter;
  8. local filters;
  9.  
  10. local function UpdateFilterGroup()
  11.     if selectedFilter == 'Buff Indicator' then
  12.         local buffs = {};
  13.         for _, value in pairs(E.global.unitframe.buffwatch[E.myclass]) do
  14.             tinsert(buffs, value);
  15.         end    
  16.        
  17.         if not E.global.unitframe.buffwatch[E.myclass] then
  18.             E.global.unitframe.buffwatch[E.myclass] = {};
  19.         end    
  20.  
  21.        
  22.         E.Options.args.unitframe.args.filters.args.filterGroup = {
  23.             type = 'group',
  24.             name = selectedFilter,
  25.             guiInline = true,
  26.             order = -10,
  27.             childGroups = "select",
  28.             args = {
  29.                 addSpellID = {
  30.                     order = 1,
  31.                     name = L['Add SpellID'],
  32.                     desc = L['Add a spell to the filter.'],
  33.                     type = 'input',
  34.                     get = function(info) return "" end,
  35.                     set = function(info, value)
  36.                         if not GetSpellInfo(value) then
  37.                             E:Print(L["Not valid spell id"])
  38.                         else
  39.                             table.insert(E.global.unitframe.buffwatch[E.myclass], {["enabled"] = true, ["id"] = tonumber(value), ["point"] = "TOPRIGHT", ["color"] = {["r"] = 1, ["g"] = 0, ["b"] = 0}, ["anyUnit"] = false})
  40.                             UpdateFilterGroup();
  41.                             UF:Update_AllFrames();
  42.                             selectedSpell = nil;
  43.                         end
  44.                     end,                   
  45.                 },
  46.                 removeSpellID = {
  47.                     order = 2,
  48.                     name = L['Remove SpellID'],
  49.                     desc = L['Remove a spell from the filter.'],
  50.                     type = 'input',
  51.                     get = function(info) return "" end,
  52.                     set = function(info, value)
  53.                         if not GetSpellInfo(value) then
  54.                             E:Print(L["Not valid spell id"])
  55.                         else
  56.                             local match
  57.                             for x, y in pairs(E.global.unitframe.buffwatch[E.myclass]) do
  58.                                 if y["id"] == tonumber(value) then
  59.                                     match = y
  60.                                     E.global.unitframe.buffwatch[E.myclass][x] = nil
  61.                                 end
  62.                             end
  63.                             if match == nil then
  64.                                 E:Print(L["Spell not found in list."])
  65.                             else
  66.                                 UpdateFilterGroup()                        
  67.                             end                                
  68.                         end    
  69.                        
  70.                         selectedSpell = nil;
  71.                         UpdateFilterGroup();
  72.                         UF:Update_AllFrames();
  73.                     end,               
  74.                 },
  75.                 selectSpell = {
  76.                     name = L["Select Spell"],
  77.                     type = "select",
  78.                     order = 3,
  79.                     values = function()
  80.                         local values = {};
  81.                         buffs = {};
  82.                         for _, value in pairs(E.global.unitframe.buffwatch[E.myclass]) do
  83.                             tinsert(buffs, value);
  84.                         end        
  85.                        
  86.                         for _, spell in pairs(buffs) do
  87.                             local name = GetSpellInfo(spell.id)
  88.                             values[spell.id] = name;
  89.                         end
  90.                         return values
  91.                     end,
  92.                     get = function(info) return selectedSpell end,
  93.                     set = function(info, value)
  94.                         selectedSpell = value;
  95.                         UpdateFilterGroup()
  96.                     end,
  97.                 },             
  98.             },
  99.         }
  100.        
  101.         local tableIndex
  102.         for i, spell in pairs(E.global.unitframe.buffwatch[E.myclass]) do
  103.             if spell.id == selectedSpell then
  104.                 tableIndex = i;
  105.             end
  106.         end
  107.         if selectedSpell and tableIndex then
  108.             local name = GetSpellInfo(selectedSpell)
  109.             E.Options.args.unitframe.args.filters.args.filterGroup.args[name] = {
  110.                 name = name..' ('..selectedSpell..')',
  111.                 type = 'group',
  112.                 get = function(info) return E.global.unitframe.buffwatch[E.myclass][tableIndex][ info[#info] ] end,
  113.                 set = function(info, value) E.global.unitframe.buffwatch[E.myclass][tableIndex][ info[#info] ] = value; UF:Update_AllFrames() end,
  114.                 order = -10,
  115.                 args = {
  116.                     enabled = {
  117.                         name = L['Enable'],
  118.                         order = 1,
  119.                         type = 'toggle',
  120.                     },
  121.                     point = {
  122.                         name = L['Anchor Point'],
  123.                         order = 2,
  124.                         type = 'select',
  125.                         values = {
  126.                             ['TOPLEFT'] = 'TOPLEFT',
  127.                             ['TOPRIGHT'] = 'TOPRIGHT',
  128.                             ['BOTTOMLEFT'] = 'BOTTOMLEFT',
  129.                             ['BOTTOMRIGHT'] = 'BOTTOMRIGHT',
  130.                             ['LEFT'] = 'LEFT',
  131.                             ['RIGHT'] = 'RIGHT',
  132.                             ['TOP'] = 'TOP',
  133.                             ['BOTTOM'] = 'BOTTOM',
  134.                         }
  135.                     },
  136.                     color = {
  137.                         name = L['Color'],
  138.                         type = 'color',
  139.                         order = 3,
  140.                         get = function(info)
  141.                             local t = E.global.unitframe.buffwatch[E.myclass][tableIndex][ info[#info] ]
  142.                             return t.r, t.g, t.b, t.a
  143.                         end,
  144.                         set = function(info, r, g, b)
  145.                             local t = E.global.unitframe.buffwatch[E.myclass][tableIndex][ info[#info] ]
  146.                             t.r, t.g, t.b = r, g, b
  147.                             UF:Update_AllFrames()
  148.                         end,                       
  149.                     },
  150.                     anyUnit = {
  151.                         name = L['Any Unit'],
  152.                         order = 4,
  153.                         type = 'toggle',                   
  154.                     },
  155.                     onlyShowMissing = {
  156.                         name = L['Show Missing'],
  157.                         order = 5,
  158.                         type = 'toggle',                       
  159.                     },
  160.                 },         
  161.             }
  162.         end
  163.    
  164.         buffs = nil;
  165.     else
  166.         if not selectedFilter or not E.global.unitframe['aurafilters'][selectedFilter] then
  167.             E.Options.args.unitframe.args.filters.args.filterGroup = nil
  168.             return
  169.         end
  170.    
  171.         E.Options.args.unitframe.args.filters.args.filterGroup = {
  172.             type = 'group',
  173.             name = selectedFilter,
  174.             guiInline = true,
  175.             order = -10,
  176.             args = {
  177.                 addSpell = {
  178.                     order = 1,
  179.                     name = L['Add Spell'],
  180.                     desc = L['Add a spell to the filter.'],
  181.                     type = 'input',
  182.                     get = function(info) return "" end,
  183.                     set = function(info, value)
  184.                         E.global.unitframe['aurafilters'][selectedFilter]['spells'][value] = true;
  185.                         UpdateFilterGroup();
  186.                         UF:Update_AllFrames();
  187.                     end,                   
  188.                 },
  189.                 removeSpell = {
  190.                     order = 1,
  191.                     name = L['Remove Spell'],
  192.                     desc = L['Remove a spell from the filter.'],
  193.                     type = 'input',
  194.                     get = function(info) return "" end,
  195.                     set = function(info, value)
  196.                         if G['unitframe']['aurafilters'][selectedFilter] then
  197.                             if G['unitframe']['aurafilters'][selectedFilter]['spells'][value] then
  198.                                 E.global.unitframe['aurafilters'][selectedFilter]['spells'][value] = false;
  199.                                 E:Print(L['You may not remove a spell from a default filter that is not customly added. Setting spell to false instead.'])
  200.                             else
  201.                                 E.global.unitframe['aurafilters'][selectedFilter]['spells'][value] = nil;
  202.                             end
  203.                         else
  204.                             E.global.unitframe['aurafilters'][selectedFilter]['spells'][value] = nil;
  205.                         end
  206.                        
  207.                         UpdateFilterGroup();
  208.                         UF:Update_AllFrames();
  209.                     end,               
  210.                 },
  211.                 spacer = {
  212.                     order = 3,
  213.                     type = "description",
  214.                     name = "",
  215.                     width = 'full',
  216.                 },         
  217.                 filterType = {
  218.                     order = 4,
  219.                     name = L['Filter Type'],
  220.                     desc = L['Set the filter type, blacklisted filters hide any aura on the like and show all else, whitelisted filters show any aura on the filter and hide all else.'],
  221.                     type = 'select',
  222.                     values = {
  223.                         ['Whitelist'] = L['Whitelist'],
  224.                         ['Blacklist'] = L['Blacklist'],
  225.                     },
  226.                     get = function() return E.global.unitframe['aurafilters'][selectedFilter].type end,
  227.                     set = function(info, value) E.global.unitframe['aurafilters'][selectedFilter].type = value; UF:Update_AllFrames(); end,
  228.                 }, 
  229.                 spellGroup = {
  230.                     name = SPELLS,
  231.                     type = 'group',
  232.                     guiInline = true,
  233.                     args = {},
  234.                 },
  235.             }, 
  236.         }
  237.        
  238.  
  239.         for spell, value in pairs(E.global.unitframe['aurafilters'][selectedFilter]['spells']) do
  240.             E.Options.args.unitframe.args.filters.args.filterGroup.args.spellGroup.args[spell] = {
  241.                 name = spell,
  242.                 type = 'toggle',
  243.                 get = function() return E.global.unitframe['aurafilters'][selectedFilter]['spells'][spell] end,
  244.                 set = function(info, value) E.global.unitframe['aurafilters'][selectedFilter]['spells'][spell] = value; UpdateFilterGroup(); UF:Update_AllFrames(); end,
  245.             }
  246.         end
  247.     end
  248. end
  249.  
  250. E.Options.args.unitframe = {
  251.     type = "group",
  252.     name = L["UnitFrames"],
  253.     childGroups = "tree",
  254.     get = function(info) return E.db.unitframe[ info[#info] ] end,
  255.     set = function(info, value) E.db.unitframe[ info[#info] ] = value end,
  256.     args = {
  257.         enable = {
  258.             order = 1,
  259.             type = "toggle",
  260.             name = L["Enable"],
  261.             get = function(info) return E.private.unitframe.enable end,
  262.             set = function(info, value) E.private.unitframe.enable = value; StaticPopup_Show("PRIVATE_RL") end
  263.         },
  264.         moveuf = {
  265.             order = 2,
  266.             type = 'execute',
  267.             name = L['Move UnitFrames'],
  268.             func = function() E:MoveUI(true, 'unitframes'); end,
  269.         },
  270.         resetuf = {
  271.             order = 3,
  272.             type = 'execute',
  273.             name = L['Reset Positions'],
  274.             func = function() ElvUF:ResetUF() end,
  275.         },
  276.         general = {
  277.             order = 200,
  278.             type = 'group',
  279.             name = L['General'],
  280.             guiInline = true,
  281.             disabled = function() return not E.private.unitframe.enable end,
  282.             set = function(info, value) E.db.unitframe[ info[#info] ] = value; UF:Update_AllFrames() end,
  283.             args = {
  284.                 generalGroup = {
  285.                     order = 1,
  286.                     type = 'group',
  287.                     guiInline = true,
  288.                     name = L['General'],
  289.                     args = {
  290.                         disableBlizzard = {
  291.                             order = 1,
  292.                             name = L['Disable Blizzard'],
  293.                             desc = L['Disables the blizzard party/raid frames.'],
  294.                             type = 'toggle',
  295.                             get = function(info) return E.private.unitframe[ info[#info] ] end,
  296.                             set = function(info, value) E.private["unitframe"][ info[#info] ] = value; StaticPopup_Show("PRIVATE_RL") end
  297.                         },
  298.                         OORAlpha = {
  299.                             order = 2,
  300.                             name = L['OOR Alpha'],
  301.                             desc = L['The alpha to set units that are out of range to.'],
  302.                             type = 'range',
  303.                             min = 0, max = 1, step = 0.01,
  304.                         },
  305.                         debuffHighlighting = {
  306.                             order = 3,
  307.                             name = L['Debuff Highlighting'],
  308.                             desc = L['Color the unit healthbar if there is a debuff that can be dispelled by you.'],
  309.                             type = 'toggle',
  310.                         },
  311.                         smartRaidFilter = {
  312.                             order = 4,
  313.                             name = L['Smart Raid Filter'],
  314.                             desc = L['Override any custom visibility setting in certain situations, EX: Only show groups 1 and 2 inside a 10 man instance.'],
  315.                             type = 'toggle',
  316.                             set = function(info, value) E.db.unitframe[ info[#info] ] = value; UF:UpdateAllHeaders() end
  317.                         },
  318.                     },
  319.                 },
  320.                 barGroup = {
  321.                     order = 2,
  322.                     type = 'group',
  323.                     guiInline = true,
  324.                     name = L['Bars'],
  325.                     args = {
  326.                         smoothbars = {
  327.                             type = 'toggle',
  328.                             order = 2,
  329.                             name = L['Smooth Bars'],
  330.                             desc = L['Bars will transition smoothly.'],
  331.                             set = function(info, value) E.db.unitframe[ info[#info] ] = value; UF:Update_AllFrames(); end,
  332.                         },
  333.                         statusbar = {
  334.                             type = "select", dialogControl = 'LSM30_Statusbar',
  335.                             order = 3,
  336.                             name = L["StatusBar Texture"],
  337.                             desc = L["Main statusbar texture."],
  338.                             values = AceGUIWidgetLSMlists.statusbar,           
  339.                             set = function(info, value) E.db.unitframe[ info[#info] ] = value; UF:Update_StatusBars() end,
  340.                         }, 
  341.                     },
  342.                 },
  343.                 fontGroup = {
  344.                     order = 3,
  345.                     type = 'group',
  346.                     guiInline = true,
  347.                     name = L['Fonts'],
  348.                     args = {
  349.                         font = {
  350.                             type = "select", dialogControl = 'LSM30_Font',
  351.                             order = 4,
  352.                             name = L["Default Font"],
  353.                             desc = L["The font that the unitframes will use."],
  354.                             values = AceGUIWidgetLSMlists.font,
  355.                             set = function(info, value) E.db.unitframe[ info[#info] ] = value; UF:Update_FontStrings() end,
  356.                         },
  357.                         fontsize = {
  358.                             order = 5,
  359.                             name = L["Font Size"],
  360.                             desc = L["Set the font size for unitframes."],
  361.                             type = "range",
  362.                             min = 6, max = 22, step = 1,
  363.                             set = function(info, value) E.db.unitframe[ info[#info] ] = value; UF:Update_FontStrings() end,
  364.                         }, 
  365.                         fontoutline = {
  366.                             order = 6,
  367.                             name = L["Font Outline"],
  368.                             desc = L["Set the font outline."],
  369.                             type = "select",
  370.                             values = {
  371.                                 ['NONE'] = L['None'],
  372.                                 ['OUTLINE'] = 'OUTLINE',
  373.                                 ['MONOCHROME'] = 'MONOCHROME',
  374.                                 ['THICKOUTLINE'] = 'THICKOUTLINE',
  375.                             },
  376.                             set = function(info, value) E.db.unitframe[ info[#info] ] = value; UF:Update_FontStrings() end,
  377.                         }, 
  378.                     },
  379.                 },
  380.                 allColorsGroup = {
  381.                     order = 4,
  382.                     type = 'group',
  383.                     guiInline = true,
  384.                     name = L['Colors'],
  385.                     get = function(info) return E.db.unitframe.colors[ info[#info] ] end,
  386.                     set = function(info, value) E.db.unitframe.colors[ info[#info] ] = value; UF:Update_AllFrames() end,                   
  387.                     args = {
  388.                         healthclass = {
  389.                             order = 1,
  390.                             type = 'toggle',
  391.                             name = L['Class Health'],
  392.                             desc = L['Color health by classcolor or reaction.'],
  393.                         },
  394.                         powerclass = {
  395.                             order = 2,
  396.                             type = 'toggle',
  397.                             name = L['Class Power'],
  398.                             desc = L['Color power by classcolor or reaction.'],
  399.                         },     
  400.                         colorhealthbyvalue = {
  401.                             order = 3,
  402.                             type = 'toggle',
  403.                             name = L['Health By Value'],
  404.                             desc = L['Color health by ammount remaining.'],            
  405.                         },
  406.                         customhealthbackdrop = {
  407.                             order = 4,
  408.                             type = 'toggle',
  409.                             name = L['Custom Health Backdrop'],
  410.                             desc = L['Use the custom health backdrop color instead of a multiple of the main health color.'],                      
  411.                         },
  412.                         classbackdrop = {
  413.                             order = 5,
  414.                             type = 'toggle',
  415.                             name = L['Class Backdrop'],
  416.                             desc = L['Color the health backdrop by class or reaction.'],
  417.                         },
  418.                         classNames = {
  419.                             order = 6,
  420.                             type = 'toggle',
  421.                             name = L['Class Names'],
  422.                             desc = L['Color the name text by class or reaction.'],
  423.                         },                     
  424.                         colorsGroup = {
  425.                             order = 7,
  426.                             type = 'group',
  427.                             guiInline = true,
  428.                             name = HEALTH,
  429.                             get = function(info)
  430.                                 local t = E.db.unitframe.colors[ info[#info] ]
  431.                                 return t.r, t.g, t.b, t.a
  432.                             end,
  433.                             set = function(info, r, g, b)
  434.                                 E.db.general[ info[#info] ] = {}
  435.                                 local t = E.db.unitframe.colors[ info[#info] ]
  436.                                 t.r, t.g, t.b = r, g, b
  437.                                 UF:Update_AllFrames()
  438.                             end,
  439.                             args = {
  440.                                 health = {
  441.                                     order = 1,
  442.                                     type = 'color',
  443.                                     name = L['Health'],
  444.                                 },
  445.                                 health_backdrop = {
  446.                                     order = 2,
  447.                                     type = 'color',
  448.                                     name = L['Health Backdrop'],
  449.                                 },         
  450.                                 tapped = {
  451.                                     order = 3,
  452.                                     type = 'color',
  453.                                     name = L['Tapped'],
  454.                                 },
  455.                                 disconnected = {
  456.                                     order = 4,
  457.                                     type = 'color',
  458.                                     name = L['Disconnected'],
  459.                                 }, 
  460.                             },
  461.                         },
  462.                         powerGroup = {
  463.                             order = 8,
  464.                             type = 'group',
  465.                             guiInline = true,
  466.                             name = L['Powers'],
  467.                             get = function(info)
  468.                                 local t = E.db.unitframe.colors.power[ info[#info] ]
  469.                                 return t.r, t.g, t.b, t.a
  470.                             end,
  471.                             set = function(info, r, g, b)
  472.                                 E.db.general[ info[#info] ] = {}
  473.                                 local t = E.db.unitframe.colors.power[ info[#info] ]
  474.                                 t.r, t.g, t.b = r, g, b
  475.                                 UF:Update_AllFrames()
  476.                             end,   
  477.                             args = {
  478.                                 MANA = {
  479.                                     order = 1,
  480.                                     name = MANA,
  481.                                     type = 'color',
  482.                                 },
  483.                                 RAGE = {
  484.                                     order = 2,
  485.                                     name = RAGE,
  486.                                     type = 'color',
  487.                                 }, 
  488.                                 FOCUS = {
  489.                                     order = 3,
  490.                                     name = FOCUS,
  491.                                     type = 'color',
  492.                                 }, 
  493.                                 ENERGY = {
  494.                                     order = 4,
  495.                                     name = ENERGY,
  496.                                     type = 'color',
  497.                                 },     
  498.                                 RUNIC_POWER = {
  499.                                     order = 5,
  500.                                     name = RUNIC_POWER,
  501.                                     type = 'color',
  502.                                 },                                 
  503.                             },
  504.                         },
  505.                         reactionGroup = {
  506.                             order = 9,
  507.                             type = 'group',
  508.                             guiInline = true,
  509.                             name = L['Reactions'],
  510.                             get = function(info)
  511.                                 local t = E.db.unitframe.colors.reaction[ info[#info] ]
  512.                                 return t.r, t.g, t.b, t.a
  513.                             end,
  514.                             set = function(info, r, g, b)
  515.                                 E.db.general[ info[#info] ] = {}
  516.                                 local t = E.db.unitframe.colors.reaction[ info[#info] ]
  517.                                 t.r, t.g, t.b = r, g, b
  518.                                 UF:Update_AllFrames()
  519.                             end,   
  520.                             args = {
  521.                                 BAD = {
  522.                                     order = 1,
  523.                                     name = L['Bad'],
  524.                                     type = 'color',
  525.                                 }, 
  526.                                 NEUTRAL = {
  527.                                     order = 2,
  528.                                     name = L['Neutral'],
  529.                                     type = 'color',
  530.                                 }, 
  531.                                 GOOD = {
  532.                                     order = 3,
  533.                                     name = L['Good'],
  534.                                     type = 'color',
  535.                                 },                                 
  536.                             },
  537.                         },                     
  538.                     },
  539.                 },
  540.             },
  541.         },
  542.         filters = {
  543.             type = 'group',
  544.             name = L['Filters'],
  545.             order = -10, --Always Last Hehehe
  546.             args = {
  547.                 createFilter = {
  548.                     order = 1,
  549.                     name = L['Create Filter'],
  550.                     desc = L['Create a filter, once created a filter can be set inside the buffs/debuffs section of each unit.'],
  551.                     type = 'input',
  552.                     get = function(info) return "" end,
  553.                     set = function(info, value)
  554.                         E.global.unitframe['aurafilters'][value] = {};
  555.                         E.global.unitframe['aurafilters'][value]['spells'] = {};
  556.                     end,                   
  557.                 },
  558.                 deleteFilter = {
  559.                     type = 'input',
  560.                     order = 2,
  561.                     name = L['Delete Filter'],
  562.                     desc = L['Delete a created filter, you cannot delete pre-existing filters, only custom ones.'],
  563.                     get = function(info) return "" end,
  564.                     set = function(info, value)
  565.                         if G['unitframe']['aurafilters'][value] then
  566.                             E:Print(L["You can't remove a pre-existing filter."])
  567.                         else
  568.                             E.global.unitframe['aurafilters'][value] = nil;
  569.                             selectedFilter = nil;
  570.                             E.Options.args.unitframe.args.filters.args.filterGroup = nil;
  571.                         end
  572.                     end,               
  573.                 },
  574.                 selectFilter = {
  575.                     order = 3,
  576.                     type = 'select',
  577.                     name = L['Select Filter'],
  578.                     get = function(info) return selectedFilter end,
  579.                     set = function(info, value) selectedFilter = value; UpdateFilterGroup() end,                           
  580.                     values = function()
  581.                         filters = {}
  582.                         filters[''] = ''
  583.                         for filter in pairs(E.global.unitframe['aurafilters']) do
  584.                             filters[filter] = filter
  585.                         end
  586.                        
  587.                         filters['Buff Indicator'] = L['Buff Indicator']
  588.                         return filters
  589.                     end,
  590.                 },
  591.             },
  592.         },
  593.     },
  594. }
  595.  
  596.  
  597. local textFormats = {
  598.     ['current-percent'] = L['Current - Percent'],
  599.     ['current-max'] = L['Current - Max'],
  600.     ['current'] = L['Current'],
  601.     ['percent'] = L['Percent'],
  602.     ['deficit'] = L['Deficit'],
  603.     ['blank'] = L['Blank'],
  604. };
  605.  
  606. local fillValues = {
  607.     ['fill'] = L['Filled'],
  608.     ['spaced'] = L['Spaced'],
  609. };
  610.  
  611. local positionValues = {
  612.     TOPLEFT = 'TOPLEFT',
  613.     LEFT = 'LEFT',
  614.     BOTTOMLEFT = 'BOTTOMLEFT',
  615.     RIGHT = 'RIGHT',
  616.     TOPRIGHT = 'TOPRIGHT',
  617.     BOTTOMRIGHT = 'BOTTOMRIGHT',
  618.     CENTER = 'CENTER',
  619.     TOP = 'TOP',
  620.     BOTTOM = 'BOTTOM',
  621. };
  622.  
  623. local lengthValues = {
  624.     ["SHORT"] = L["Short"],
  625.     ["MEDIUM"] = L["Medium"],
  626.     ["LONG"] = L["Long"],
  627.     ["LONGLEVEL"] = L["Long (Include Level)"],
  628. };
  629.  
  630. local auraAnchors = {
  631.     TOPLEFT = 'TOPLEFT',
  632.     LEFT = 'LEFT',
  633.     BOTTOMLEFT = 'BOTTOMLEFT',
  634.     RIGHT = 'RIGHT',
  635.     TOPRIGHT = 'TOPRIGHT',
  636.     BOTTOMRIGHT = 'BOTTOMRIGHT',
  637. };
  638.  
  639. local petAnchors = {
  640.     TOPLEFT = 'TOPLEFT',
  641.     LEFT = 'LEFT',
  642.     BOTTOMLEFT = 'BOTTOMLEFT',
  643.     RIGHT = 'RIGHT',
  644.     TOPRIGHT = 'TOPRIGHT',
  645.     BOTTOMRIGHT = 'BOTTOMRIGHT',
  646.     TOP = 'TOP',
  647.     BOTTOM = 'BOTTOM',
  648. };
  649.  
  650. local filters = {};
  651.  
  652. --Player
  653. E.Options.args.unitframe.args.player = {
  654.     name = L['Player Frame'],
  655.     type = 'group',
  656.     order = 300,
  657.     childGroups = "select",
  658.     get = function(info) return E.db.unitframe.units['player'][ info[#info] ] end,
  659.     set = function(info, value) E.db.unitframe.units['player'][ info[#info] ] = value; UF:CreateAndUpdateUF('player') end,
  660.     args = {
  661.         enable = {
  662.             type = 'toggle',
  663.             order = 1,
  664.             name = L['Enable'],
  665.         },
  666.         copyFrom = {
  667.             type = 'select',
  668.             order = 2,
  669.             name = L['Copy From'],
  670.             desc = L['Select a unit to copy settings from.'],
  671.             values = UF['handledunits'],
  672.             set = function(info, value) UF:MergeUnitSettings(value, 'player'); end,
  673.         },
  674.         resetSettings = {
  675.             type = 'execute',
  676.             order = 3,
  677.             name = L['Restore Defaults'],
  678.             func = function(info, value) UF:ResetUnitSettings('player') end,
  679.         },
  680.         width = {
  681.             order = 4,
  682.             name = L['Width'],
  683.             type = 'range',
  684.             min = 50, max = 500, step = 1,
  685.             set = function(info, value)
  686.                 if E.db.unitframe.units['player'].castbar.width == E.db.unitframe.units['player'][ info[#info] ] then
  687.                     E.db.unitframe.units['player'].castbar.width = value;
  688.                 end
  689.                
  690.                 E.db.unitframe.units['player'][ info[#info] ] = value;
  691.                 UF:CreateAndUpdateUF('player');
  692.             end,
  693.         },
  694.         height = {
  695.             order = 5,
  696.             name = L['Height'],
  697.             type = 'range',
  698.             min = 10, max = 250, step = 1,
  699.         }, 
  700.         lowmana = {
  701.             order = 6,
  702.             name = L['Low Mana Threshold'],
  703.             desc = L['When you mana falls below this point, text will flash on the player frame.'],
  704.             type = 'range',
  705.             min = 0, max = 100, step = 1,
  706.         },
  707.         combatfade = {
  708.             order = 7,
  709.             name = L['Combat Fade'],
  710.             desc = L['Fade the unitframe when out of combat, not casting, no target exists.'],
  711.             type = 'toggle',
  712.             set = function(info, value) E.db.unitframe.units['player'][ info[#info] ] = value; UF:CreateAndUpdateUF('player'); UF:CreateAndUpdateUF('pet') end,
  713.         },
  714.         healPrediction = {
  715.             order = 8,
  716.             name = L['Heal Prediction'],
  717.             desc = L['Show a incomming heal prediction bar on the unitframe. Also display a slightly different colored bar for incoming overheals.'],
  718.             type = 'toggle',
  719.         },
  720.         restIcon = {
  721.             order = 9,
  722.             name = L['Rest Icon'],
  723.             desc = L['Display the rested icon on the unitframe.'],
  724.             type = 'toggle',
  725.         },
  726.         health = {
  727.             order = 100,
  728.             type = 'group',
  729.             name = L['Health'],
  730.             get = function(info) return E.db.unitframe.units['player']['health'][ info[#info] ] end,
  731.             set = function(info, value) E.db.unitframe.units['player']['health'][ info[#info] ] = value; UF:CreateAndUpdateUF('player') end,
  732.             args = {
  733.                 text = {
  734.                     type = 'toggle',
  735.                     order = 1,
  736.                     name = L['Text'],
  737.                 },
  738.                 text_format = {
  739.                     type = 'select',
  740.                     order = 2,
  741.                     name = L['Text Format'],
  742.                     values = textFormats,
  743.                 },
  744.                 position = {
  745.                     type = 'select',
  746.                     order = 3,
  747.                     name = L['Position'],
  748.                     values = positionValues,
  749.                 },
  750.             },
  751.         },
  752.         power = {
  753.             order = 200,
  754.             type = 'group',
  755.             name = L['Power'],
  756.             get = function(info) return E.db.unitframe.units['player']['power'][ info[#info] ] end,
  757.             set = function(info, value) E.db.unitframe.units['player']['power'][ info[#info] ] = value; UF:CreateAndUpdateUF('player') end,
  758.             args = {
  759.                 enable = {
  760.                     type = 'toggle',
  761.                     order = 1,
  762.                     name = L['Enable'],
  763.                 },         
  764.                 text = {
  765.                     type = 'toggle',
  766.                     order = 2,
  767.                     name = L['Text'],
  768.                 },
  769.                 text_format = {
  770.                     type = 'select',
  771.                     order = 3,
  772.                     name = L['Text Format'],
  773.                     values = textFormats,
  774.                 },
  775.                 width = {
  776.                     type = 'select',
  777.                     order = 4,
  778.                     name = L['Width'],
  779.                     values = fillValues,
  780.                 },
  781.                 height = {
  782.                     type = 'range',
  783.                     name = L['Height'],
  784.                     order = 5,
  785.                     min = 2, max = 50, step = 1,
  786.                 },
  787.                 offset = {
  788.                     type = 'range',
  789.                     name = L['Offset'],
  790.                     desc = L['Offset of the powerbar to the healthbar, set to 0 to disable.'],
  791.                     order = 6,
  792.                     min = 0, max = 20, step = 1,
  793.                 },
  794.                 hideonnpc = {
  795.                     type = 'toggle',
  796.                     order = 7,
  797.                     name = L['Text Toggle On NPC'],
  798.                     desc = L['Power text will be hidden on NPC targets, in addition the name text will be repositioned to the power texts anchor point.'],
  799.                 },
  800.                 position = {
  801.                     type = 'select',
  802.                     order = 8,
  803.                     name = L['Position'],
  804.                     values = positionValues,
  805.                 },     
  806.             },
  807.         }, 
  808.         altpower = {
  809.             order = 300,
  810.             type = 'group',
  811.             name = L['Alt-Power'],
  812.             get = function(info) return E.db.unitframe.units['player']['altpower'][ info[#info] ] end,
  813.             set = function(info, value) E.db.unitframe.units['player']['altpower'][ info[#info] ] = value; UF:CreateAndUpdateUF('player') end,
  814.             args = {
  815.                 enable = {
  816.                     type = 'toggle',
  817.                     order = 1,
  818.                     name = L['Enable'],
  819.                 },
  820.                 width = {
  821.                     type = 'range',
  822.                     order = 2,
  823.                     name = L['Width'],
  824.                     min = 15, max = 550, step = 1,
  825.                 },
  826.                 height = {
  827.                     type = 'range',
  828.                     name = L['Height'],
  829.                     order = 3,
  830.                     min = 5, max = 100, step = 1,
  831.                 },
  832.             },
  833.         }, 
  834.         name = {
  835.             order = 400,
  836.             type = 'group',
  837.             name = L['Name'],
  838.             get = function(info) return E.db.unitframe.units['player']['name'][ info[#info] ] end,
  839.             set = function(info, value) E.db.unitframe.units['player']['name'][ info[#info] ] = value; UF:CreateAndUpdateUF('player') end,
  840.             args = {
  841.                 enable = {
  842.                     type = 'toggle',
  843.                     order = 1,
  844.                     name = L['Enable'],
  845.                 },
  846.                 position = {
  847.                     type = 'select',
  848.                     order = 2,
  849.                     name = L['Position'],
  850.                     values = positionValues,
  851.                 },                 
  852.             },
  853.         },
  854.         portrait = {
  855.             order = 500,
  856.             type = 'group',
  857.             name = L['Portrait'],
  858.             get = function(info) return E.db.unitframe.units['player']['portrait'][ info[#info] ] end,
  859.             set = function(info, value) E.db.unitframe.units['player']['portrait'][ info[#info] ] = value; UF:CreateAndUpdateUF('player') end,
  860.             args = {
  861.                 enable = {
  862.                     type = 'toggle',
  863.                     order = 1,
  864.                     name = L['Enable'],
  865.                 },
  866.                 width = {
  867.                     type = 'range',
  868.                     order = 2,
  869.                     name = L['Width'],
  870.                     min = 15, max = 150, step = 1,
  871.                 },
  872.                 overlay = {
  873.                     type = 'toggle',
  874.                     name = L['Overlay'],
  875.                     desc = L['Overlay the healthbar'],
  876.                     order = 3,
  877.                 },
  878.                 camDistanceScale = {
  879.                     type = 'range',
  880.                     name = L['Camera Distance Scale'],
  881.                     desc = L['How far away the portrait is from the camera.'],
  882.                     order = 4,
  883.                     min = 0.01, max = 4, step = 0.01,
  884.                 },
  885.             },
  886.         }, 
  887.         buffs = {
  888.             order = 600,
  889.             type = 'group',
  890.             name = L['Buffs'],
  891.             get = function(info) return E.db.unitframe.units['player']['buffs'][ info[#info] ] end,
  892.             set = function(info, value) E.db.unitframe.units['player']['buffs'][ info[#info] ] = value; UF:CreateAndUpdateUF('player') end,
  893.             args = {
  894.                 enable = {
  895.                     type = 'toggle',
  896.                     order = 1,
  897.                     name = L['Enable'],
  898.                 },
  899.                 perrow = {
  900.                     type = 'range',
  901.                     order = 2,
  902.                     name = L['Per Row'],
  903.                     min = 1, max = 20, step = 1,
  904.                 },
  905.                 numrows = {
  906.                     type = 'range',
  907.                     order = 3,
  908.                     name = L['Num Rows'],
  909.                     min = 1, max = 4, step = 1,                
  910.                 },
  911.                 ['growth-x'] = {
  912.                     type = 'select',
  913.                     order = 4,
  914.                     name = L['X-Growth'],
  915.                     desc = L['Growth direction of the buffs'],
  916.                     values = {
  917.                         ['LEFT'] = L['Left'],
  918.                         ['RIGHT'] = L["Right"],
  919.                     },
  920.                 },
  921.                 ['growth-y'] = {
  922.                     type = 'select',
  923.                     order = 5,
  924.                     name = L['Y-Growth'],
  925.                     desc = L['Growth direction of the buffs'],
  926.                     values = {
  927.                         ['UP'] = L['Up'],
  928.                         ['DOWN'] = L["Down"],
  929.                     },
  930.                 }, 
  931.                 initialAnchor = {
  932.                     type = 'select',
  933.                     order = 6,
  934.                     name = L['Initial Anchor'],
  935.                     desc = L['The initial anchor point of the buffs on the frame'],
  936.                     values = auraAnchors,
  937.                 }, 
  938.                 attachTo = {
  939.                     type = 'select',
  940.                     order = 7,
  941.                     name = L['Attach To'],
  942.                     desc = L['What to attach the buff anchor frame to.'],
  943.                     values = {
  944.                         ['FRAME'] = L['Frame'],
  945.                         ['DEBUFFS'] = L['Debuffs'],
  946.                     },
  947.                 },
  948.                 anchorPoint = {
  949.                     type = 'select',
  950.                     order = 8,
  951.                     name = L['Anchor Point'],
  952.                     desc = L['What point to anchor to the frame you set to attach to.'],
  953.                     values = auraAnchors,              
  954.                 },
  955.                 fontsize = {
  956.                     order = 9,
  957.                     name = L["Font Size"],
  958.                     type = "range",
  959.                     min = 6, max = 22, step = 1,
  960.                 }, 
  961.                 useFilter = {
  962.                     order = 10,
  963.                     name = L['Use Filter'],
  964.                     desc = L['Select a filter to use.'],
  965.                     type = 'select',
  966.                     values = function()
  967.                         filters = {}
  968.                         filters[''] = ''
  969.                         for filter in pairs(E.global.unitframe['aurafilters']) do
  970.                             filters[filter] = filter
  971.                         end
  972.                         return filters
  973.                     end,
  974.                 },
  975.                 showPlayerOnly = {
  976.                     order = 11,
  977.                     type = 'toggle',
  978.                     name = L['Personal Auras'],
  979.                     desc = L['If set only auras belonging to yourself in addition to any aura that passes the set filter may be shown.'],
  980.                 }, 
  981.                 durationLimit = {
  982.                     order = 12,
  983.                     name = L['Duration Limit'],
  984.                     desc = L['The aura must be below this duration for the buff to show, set to 0 to disable. Note: This is in seconds.'],
  985.                     type = 'range',
  986.                     min = 0, max = 3600, step = 60,
  987.                 },                 
  988.             },
  989.         }, 
  990.         debuffs = {
  991.             order = 700,
  992.             type = 'group',
  993.             name = L['Debuffs'],
  994.             get = function(info) return E.db.unitframe.units['player']['debuffs'][ info[#info] ] end,
  995.             set = function(info, value) E.db.unitframe.units['player']['debuffs'][ info[#info] ] = value; UF:CreateAndUpdateUF('player') end,
  996.             args = {
  997.                 enable = {
  998.                     type = 'toggle',
  999.                     order = 1,
  1000.                     name = L['Enable'],
  1001.                 },
  1002.                 perrow = {
  1003.                     type = 'range',
  1004.                     order = 2,
  1005.                     name = L['Per Row'],
  1006.                     min = 1, max = 20, step = 1,
  1007.                 },
  1008.                 numrows = {
  1009.                     type = 'range',
  1010.                     order = 3,
  1011.                     name = L['Num Rows'],
  1012.                     min = 1, max = 4, step = 1,                
  1013.                 },
  1014.                 ['growth-x'] = {
  1015.                     type = 'select',
  1016.                     order = 4,
  1017.                     name = L['X-Growth'],
  1018.                     desc = L['Growth direction of the buffs'],
  1019.                     values = {
  1020.                         ['LEFT'] = L['Left'],
  1021.                         ['RIGHT'] = L["Right"],
  1022.                     },
  1023.                 },
  1024.                 ['growth-y'] = {
  1025.                     type = 'select',
  1026.                     order = 5,
  1027.                     name = L['Y-Growth'],
  1028.                     desc = L['Growth direction of the buffs'],
  1029.                     values = {
  1030.                         ['UP'] = L['Up'],
  1031.                         ['DOWN'] = L["Down"],
  1032.                     },
  1033.                 }, 
  1034.                 initialAnchor = {
  1035.                     type = 'select',
  1036.                     order = 6,
  1037.                     name = L['Initial Anchor'],
  1038.                     desc = L['The initial anchor point of the buffs on the frame'],
  1039.                     values = auraAnchors,
  1040.                 }, 
  1041.                 attachTo = {
  1042.                     type = 'select',
  1043.                     order = 7,
  1044.                     name = L['Attach To'],
  1045.                     desc = L['What to attach the buff anchor frame to.'],
  1046.                     values = {
  1047.                         ['FRAME'] = L['Frame'],
  1048.                         ['BUFFS'] = L['Buffs'],
  1049.                     },
  1050.                 },
  1051.                 anchorPoint = {
  1052.                     type = 'select',
  1053.                     order = 8,
  1054.                     name = L['Anchor Point'],
  1055.                     desc = L['What point to anchor to the frame you set to attach to.'],
  1056.                     values = auraAnchors,              
  1057.                 },
  1058.                 fontsize = {
  1059.                     order = 6,
  1060.                     name = L["Font Size"],
  1061.                     type = "range",
  1062.                     min = 6, max = 22, step = 1,
  1063.                 },     
  1064.                 useFilter = {
  1065.                     order = 7,
  1066.                     name = L['Use Filter'],
  1067.                     desc = L['Select a filter to use.'],
  1068.                     type = 'select',
  1069.                     values = function()
  1070.                         filters = {}
  1071.                         filters[''] = ''
  1072.                         for filter in pairs(E.global.unitframe['aurafilters']) do
  1073.                             filters[filter] = filter
  1074.                         end
  1075.                         return filters
  1076.                     end,
  1077.                 },
  1078.                 showPlayerOnly = {
  1079.                     order = 8,
  1080.                     type = 'toggle',
  1081.                     name = L['Personal Auras'],
  1082.                     desc = L['If set only auras belonging to yourself in addition to any aura that passes the set filter may be shown.'],
  1083.                 }, 
  1084.                 durationLimit = {
  1085.                     order = 9,
  1086.                     name = L['Duration Limit'],
  1087.                     desc = L['The aura must be below this duration for the buff to show, set to 0 to disable. Note: This is in seconds.'],
  1088.                     type = 'range',
  1089.                     min = 0, max = 3600, step = 60,
  1090.                 },             
  1091.             },
  1092.         }, 
  1093.         castbar = {
  1094.             order = 800,
  1095.             type = 'group',
  1096.             name = L['Castbar'],
  1097.             get = function(info) return E.db.unitframe.units['player']['castbar'][ info[#info] ] end,
  1098.             set = function(info, value) E.db.unitframe.units['player']['castbar'][ info[#info] ] = value; UF:CreateAndUpdateUF('player') end,
  1099.             args = {
  1100.                 enable = {
  1101.                     type = 'toggle',
  1102.                     order = 1,
  1103.                     name = L['Enable'],
  1104.                 }, 
  1105.                 matchsize = {
  1106.                     order = 2,
  1107.                     type = 'execute',
  1108.                     name = L['Match Frame Width'],
  1109.                     func = function() E.db.unitframe.units['player']['castbar']['width'] = E.db.unitframe.units['player']['width']; UF:CreateAndUpdateUF('player') end,
  1110.                 },         
  1111.                 forceshow = {
  1112.                     order = 3,
  1113.                     name = SHOW..' / '..HIDE,
  1114.                     func = function()
  1115.                         local castbar = ElvUF_Player.Castbar
  1116.                         if not castbar.oldHide then
  1117.                             castbar.oldHide = castbar.Hide
  1118.                             castbar.Hide = castbar.Show
  1119.                             castbar:Show()
  1120.                         else
  1121.                             castbar.Hide = castbar.oldHide
  1122.                             castbar.oldHide = nil
  1123.                             castbar:Hide()                     
  1124.                         end
  1125.                     end,
  1126.                     type = 'execute',
  1127.                 },
  1128.                 width = {
  1129.                     order = 4,
  1130.                     name = L['Width'],
  1131.                     type = 'range',
  1132.                     min = 50, max = 600, step = 1,
  1133.                 },
  1134.                 height = {
  1135.                     order = 5,
  1136.                     name = L['Height'],
  1137.                     type = 'range',
  1138.                     min = 10, max = 85, step = 1,
  1139.                 },     
  1140.                 icon = {
  1141.                     order = 6,
  1142.                     name = L['Icon'],
  1143.                     type = 'toggle',
  1144.                 },
  1145.                 xOffset = {
  1146.                     order = 7,
  1147.                     name = L['X Offset'],
  1148.                     type = 'range',
  1149.                     min = -E.screenwidth, max = E.screenwidth, step = 1,
  1150.                 },
  1151.                 yOffset = {
  1152.                     order = 8,
  1153.                     name = L['Y Offset'],
  1154.                     type = 'range',
  1155.                     min = -E.screenheight, max = E.screenheight, step = 1,
  1156.                 },             
  1157.                 latency = {
  1158.                     order = 9,
  1159.                     name = L['Latency'],
  1160.                     type = 'toggle',               
  1161.                 },
  1162.                 color = {
  1163.                     order = 10,
  1164.                     type = 'color',
  1165.                     name = L['Color'],
  1166.                     get = function(info)
  1167.                         local t = E.db.unitframe.units['player']['castbar'][ info[#info] ]
  1168.                         return t.r, t.g, t.b, t.a
  1169.                     end,
  1170.                     set = function(info, r, g, b)
  1171.                         E.db.general[ info[#info] ] = {}
  1172.                         local t = E.db.unitframe.units['player']['castbar'][ info[#info] ]
  1173.                         t.r, t.g, t.b = r, g, b
  1174.                         UF:CreateAndUpdateUF('player')
  1175.                     end,                                                   
  1176.                 },
  1177.                 interruptcolor = {
  1178.                     order = 11,
  1179.                     type = 'color',
  1180.                     name = L['Interrupt Color'],
  1181.                     get = function(info)
  1182.                         local t = E.db.unitframe.units['player']['castbar'][ info[#info] ]
  1183.                         return t.r, t.g, t.b, t.a
  1184.                     end,
  1185.                     set = function(info, r, g, b)
  1186.                         E.db.general[ info[#info] ] = {}
  1187.                         local t = E.db.unitframe.units['player']['castbar'][ info[#info] ]
  1188.                         t.r, t.g, t.b = r, g, b
  1189.                         UF:CreateAndUpdateUF('player')
  1190.                     end,                   
  1191.                 },
  1192.                 format = {
  1193.                     order = 12,
  1194.                     type = 'select',
  1195.                     name = L['Format'],
  1196.                     values = {
  1197.                         ['CURRENTMAX'] = L['Current / Max'],
  1198.                         ['CURRENT'] = L['Current'],
  1199.                         ['REMAINING'] = L['Remaining'],
  1200.                     },
  1201.                 },
  1202.                 ticks = {
  1203.                     order = 13,
  1204.                     type = 'toggle',
  1205.                     name = L['Ticks'],
  1206.                     desc = L['Display tick marks on the castbar for channelled spells. This will adjust automatically for spells like Drain Soul and add additional ticks based on haste.'],
  1207.                 },
  1208.                 spark = {
  1209.                     order = 14,
  1210.                     type = 'toggle',
  1211.                     name = L['Spark'],
  1212.                     desc = L['Display a spark texture at the end of the castbar statusbar to help show the differance between castbar and backdrop.'],
  1213.                 },
  1214.                 displayTarget = {
  1215.                     order = 15,
  1216.                     type = "toggle",
  1217.                     name = L["Display Target"],
  1218.                     desc = L["Display the target of the cast on the castbar."],
  1219.                 },
  1220.             },
  1221.         },
  1222.         classbar = {
  1223.             order = 1000,
  1224.             type = 'group',
  1225.             name = L['Classbar'],
  1226.             get = function(info) return E.db.unitframe.units['player']['classbar'][ info[#info] ] end,
  1227.             set = function(info, value) E.db.unitframe.units['player']['classbar'][ info[#info] ] = value; UF:CreateAndUpdateUF('player') end,
  1228.             args = {
  1229.                 enable = {
  1230.                     type = 'toggle',
  1231.                     order = 1,
  1232.                     name = L['Enable'],
  1233.                 },
  1234.                 height = {
  1235.                     type = 'range',
  1236.                     order = 2,
  1237.                     name = L['Height'],
  1238.                     min = 5, max = 15, step = 1,
  1239.                 }, 
  1240.                 fill = {
  1241.                     type = 'select',
  1242.                     order = 3,
  1243.                     name = L['Fill'],
  1244.                     values = fillValues,
  1245.                 },
  1246.                 xOffset = {
  1247.                     order = 5,
  1248.                     name = L['X Offset'],
  1249.                     type = 'range',
  1250.                     min = -E.screenwidth, max = E.screenwidth, step = 1,
  1251.                 },
  1252.                 yOffset = {
  1253.                     order = 6,
  1254.                     name = L['Y Offset'],
  1255.                     type = 'range',
  1256.                     min = -E.screenheight, max = E.screenheight, step = 1,
  1257.                 },                             
  1258.             },
  1259.         },
  1260.     },
  1261. }
  1262.  
  1263. --Target
  1264. E.Options.args.unitframe.args.target = {
  1265.     name = L['Target Frame'],
  1266.     type = 'group',
  1267.     order = 400,
  1268.     childGroups = "select",
  1269.     get = function(info) return E.db.unitframe.units['target'][ info[#info] ] end,
  1270.     set = function(info, value) E.db.unitframe.units['target'][ info[#info] ] = value; UF:CreateAndUpdateUF('target') end,
  1271.     args = {
  1272.         enable = {
  1273.             type = 'toggle',
  1274.             order = 1,
  1275.             name = L['Enable'],
  1276.         },
  1277.         copyFrom = {
  1278.             type = 'select',
  1279.             order = 2,
  1280.             name = L['Copy From'],
  1281.             desc = L['Select a unit to copy settings from.'],
  1282.             values = UF['handledunits'],
  1283.             set = function(info, value) UF:MergeUnitSettings(value, 'target'); end,
  1284.         },
  1285.         resetSettings = {
  1286.             type = 'execute',
  1287.             order = 3,
  1288.             name = L['Restore Defaults'],
  1289.             func = function(info, value) UF:ResetUnitSettings('target') end,
  1290.         },     
  1291.         width = {
  1292.             order = 4,
  1293.             name = L['Width'],
  1294.             type = 'range',
  1295.             min = 50, max = 500, step = 1,
  1296.             set = function(info, value)
  1297.                 if E.db.unitframe.units['target'].castbar.width == E.db.unitframe.units['target'][ info[#info] ] then
  1298.                     E.db.unitframe.units['target'].castbar.width = value;
  1299.                 end
  1300.                
  1301.                 E.db.unitframe.units['target'][ info[#info] ] = value;
  1302.                 UF:CreateAndUpdateUF('target');
  1303.             end,           
  1304.         },
  1305.         height = {
  1306.             order = 5,
  1307.             name = L['Height'],
  1308.             type = 'range',
  1309.             min = 10, max = 250, step = 1,
  1310.         }, 
  1311.         healPrediction = {
  1312.             order = 6,
  1313.             name = L['Heal Prediction'],
  1314.             desc = L['Show a incomming heal prediction bar on the unitframe. Also display a slightly different colored bar for incoming overheals.'],
  1315.             type = 'toggle',
  1316.         },     
  1317.         health = {
  1318.             order = 100,
  1319.             type = 'group',
  1320.             name = L['Health'],
  1321.             get = function(info) return E.db.unitframe.units['target']['health'][ info[#info] ] end,
  1322.             set = function(info, value) E.db.unitframe.units['target']['health'][ info[#info] ] = value; UF:CreateAndUpdateUF('target') end,
  1323.             args = {
  1324.                 text = {
  1325.                     type = 'toggle',
  1326.                     order = 1,
  1327.                     name = L['Text'],
  1328.                 },
  1329.                 text_format = {
  1330.                     type = 'select',
  1331.                     order = 2,
  1332.                     name = L['Text Format'],
  1333.                     values = textFormats,
  1334.                 },
  1335.                 position = {
  1336.                     type = 'select',
  1337.                     order = 3,
  1338.                     name = L['Position'],
  1339.                     values = positionValues,
  1340.                 },                 
  1341.             },
  1342.         },
  1343.         power = {
  1344.             order = 200,
  1345.             type = 'group',
  1346.             name = L['Power'],
  1347.             get = function(info) return E.db.unitframe.units['target']['power'][ info[#info] ] end,
  1348.             set = function(info, value) E.db.unitframe.units['target']['power'][ info[#info] ] = value; UF:CreateAndUpdateUF('target') end,
  1349.             args = {
  1350.                 enable = {
  1351.                     type = 'toggle',
  1352.                     order = 1,
  1353.                     name = L['Enable'],
  1354.                 },         
  1355.                 text = {
  1356.                     type = 'toggle',
  1357.                     order = 2,
  1358.                     name = L['Text'],
  1359.                 },
  1360.                 text_format = {
  1361.                     type = 'select',
  1362.                     order = 3,
  1363.                     name = L['Text Format'],
  1364.                     values = textFormats,
  1365.                 },
  1366.                 width = {
  1367.                     type = 'select',
  1368.                     order = 4,
  1369.                     name = L['Width'],
  1370.                     values = fillValues,
  1371.                 },
  1372.                 height = {
  1373.                     type = 'range',
  1374.                     name = L['Height'],
  1375.                     order = 5,
  1376.                     min = 2, max = 50, step = 1,
  1377.                 },
  1378.                 offset = {
  1379.                     type = 'range',
  1380.                     name = L['Offset'],
  1381.                     desc = L['Offset of the powerbar to the healthbar, set to 0 to disable.'],
  1382.                     order = 6,
  1383.                     min = 0, max = 20, step = 1,
  1384.                 },
  1385.                 hideonnpc = {
  1386.                     type = 'toggle',
  1387.                     order = 7,
  1388.                     name = L['Text Toggle On NPC'],
  1389.                     desc = L['Power text will be hidden on NPC targets, in addition the name text will be repositioned to the power texts anchor point.'],
  1390.                 },
  1391.                 position = {
  1392.                     type = 'select',
  1393.                     order = 8,
  1394.                     name = L['Position'],
  1395.                     values = positionValues,
  1396.                 },                 
  1397.             },
  1398.         }, 
  1399.         name = {
  1400.             order = 300,
  1401.             type = 'group',
  1402.             name = L['Name'],
  1403.             get = function(info) return E.db.unitframe.units['target']['name'][ info[#info] ] end,
  1404.             set = function(info, value) E.db.unitframe.units['target']['name'][ info[#info] ] = value; UF:CreateAndUpdateUF('target') end,
  1405.             args = {
  1406.                 enable = {
  1407.                     type = 'toggle',
  1408.                     order = 1,
  1409.                     name = L['Enable'],
  1410.                 },
  1411.                 position = {
  1412.                     type = 'select',
  1413.                     order = 2,
  1414.                     name = L['Position'],
  1415.                     values = positionValues,
  1416.                 },                 
  1417.             },
  1418.         },
  1419.         portrait = {
  1420.             order = 400,
  1421.             type = 'group',
  1422.             name = L['Portrait'],
  1423.             get = function(info) return E.db.unitframe.units['target']['portrait'][ info[#info] ] end,
  1424.             set = function(info, value) E.db.unitframe.units['target']['portrait'][ info[#info] ] = value; UF:CreateAndUpdateUF('target') end,
  1425.             args = {
  1426.                 enable = {
  1427.                     type = 'toggle',
  1428.                     order = 1,
  1429.                     name = L['Enable'],
  1430.                 },
  1431.                 width = {
  1432.                     type = 'range',
  1433.                     order = 2,
  1434.                     name = L['Width'],
  1435.                     min = 15, max = 150, step = 1,
  1436.                 },
  1437.                 overlay = {
  1438.                     type = 'toggle',
  1439.                     name = L['Overlay'],
  1440.                     desc = L['Overlay the healthbar'],
  1441.                     order = 3,
  1442.                 },
  1443.                 camDistanceScale = {
  1444.                     type = 'range',
  1445.                     name = L['Camera Distance Scale'],
  1446.                     desc = L['How far away the portrait is from the camera.'],
  1447.                     order = 4,
  1448.                     min = 0.01, max = 4, step = 0.01,
  1449.                 },             
  1450.             },
  1451.         }, 
  1452.         buffs = {
  1453.             order = 500,
  1454.             type = 'group',
  1455.             name = L['Buffs'],
  1456.             get = function(info) return E.db.unitframe.units['target']['buffs'][ info[#info] ] end,
  1457.             set = function(info, value) E.db.unitframe.units['target']['buffs'][ info[#info] ] = value; UF:CreateAndUpdateUF('target') end,
  1458.             args = {
  1459.                 enable = {
  1460.                     type = 'toggle',
  1461.                     order = 1,
  1462.                     name = L['Enable'],
  1463.                 },
  1464.                 perrow = {
  1465.                     type = 'range',
  1466.                     order = 2,
  1467.                     name = L['Per Row'],
  1468.                     min = 1, max = 20, step = 1,
  1469.                 },
  1470.                 numrows = {
  1471.                     type = 'range',
  1472.                     order = 3,
  1473.                     name = L['Num Rows'],
  1474.                     min = 1, max = 4, step = 1,                
  1475.                 },
  1476.                 ['growth-x'] = {
  1477.                     type = 'select',
  1478.                     order = 4,
  1479.                     name = L['X-Growth'],
  1480.                     desc = L['Growth direction of the buffs'],
  1481.                     values = {
  1482.                         ['LEFT'] = L['Left'],
  1483.                         ['RIGHT'] = L["Right"],
  1484.                     },
  1485.                 },
  1486.                 ['growth-y'] = {
  1487.                     type = 'select',
  1488.                     order = 5,
  1489.                     name = L['Y-Growth'],
  1490.                     desc = L['Growth direction of the buffs'],
  1491.                     values = {
  1492.                         ['UP'] = L['Up'],
  1493.                         ['DOWN'] = L["Down"],
  1494.                     },
  1495.                 }, 
  1496.                 initialAnchor = {
  1497.                     type = 'select',
  1498.                     order = 6,
  1499.                     name = L['Initial Anchor'],
  1500.                     desc = L['The initial anchor point of the buffs on the frame'],
  1501.                     values = auraAnchors,
  1502.                 }, 
  1503.                 attachTo = {
  1504.                     type = 'select',
  1505.                     order = 7,
  1506.                     name = L['Attach To'],
  1507.                     desc = L['What to attach the buff anchor frame to.'],
  1508.                     values = {
  1509.                         ['FRAME'] = L['Frame'],
  1510.                         ['DEBUFFS'] = L['Debuffs'],
  1511.                     },
  1512.                 },
  1513.                 anchorPoint = {
  1514.                     type = 'select',
  1515.                     order = 8,
  1516.                     name = L['Anchor Point'],
  1517.                     desc = L['What point to anchor to the frame you set to attach to.'],
  1518.                     values = auraAnchors,              
  1519.                 },
  1520.                 fontsize = {
  1521.                     order = 6,
  1522.                     name = L["Font Size"],
  1523.                     type = "range",
  1524.                     min = 6, max = 22, step = 1,
  1525.                 },             
  1526.                 useFilter = {
  1527.                     order = 7,
  1528.                     name = L['Use Filter'],
  1529.                     desc = L['Select a filter to use.'],
  1530.                     type = 'select',
  1531.                     values = function()
  1532.                         filters = {}
  1533.                         filters[''] = ''
  1534.                         for filter in pairs(E.global.unitframe['aurafilters']) do
  1535.                             filters[filter] = filter
  1536.                         end
  1537.                         return filters
  1538.                     end,
  1539.                 },     
  1540.                 showPlayerOnly = {
  1541.                     order = 8,
  1542.                     type = 'toggle',
  1543.                     name = L['Personal Auras'],
  1544.                     desc = L['If set only auras belonging to yourself in addition to any aura that passes the set filter may be shown.'],
  1545.                 }, 
  1546.                 durationLimit = {
  1547.                     order = 9,
  1548.                     name = L['Duration Limit'],
  1549.                     desc = L['The aura must be below this duration for the buff to show, set to 0 to disable. Note: This is in seconds.'],
  1550.                     type = 'range',
  1551.                     min = 0, max = 3600, step = 60,
  1552.                 },                 
  1553.             },
  1554.         }, 
  1555.         debuffs = {
  1556.             order = 600,
  1557.             type = 'group',
  1558.             name = L['Debuffs'],
  1559.             get = function(info) return E.db.unitframe.units['target']['debuffs'][ info[#info] ] end,
  1560.             set = function(info, value) E.db.unitframe.units['target']['debuffs'][ info[#info] ] = value; UF:CreateAndUpdateUF('target') end,
  1561.             args = {
  1562.                 enable = {
  1563.                     type = 'toggle',
  1564.                     order = 1,
  1565.                     name = L['Enable'],
  1566.                 },
  1567.                 perrow = {
  1568.                     type = 'range',
  1569.                     order = 2,
  1570.                     name = L['Per Row'],
  1571.                     min = 1, max = 20, step = 1,
  1572.                 },
  1573.                 numrows = {
  1574.                     type = 'range',
  1575.                     order = 3,
  1576.                     name = L['Num Rows'],
  1577.                     min = 1, max = 4, step = 1,                
  1578.                 },
  1579.                 ['growth-x'] = {
  1580.                     type = 'select',
  1581.                     order = 4,
  1582.                     name = L['X-Growth'],
  1583.                     desc = L['Growth direction of the buffs'],
  1584.                     values = {
  1585.                         ['LEFT'] = L['Left'],
  1586.                         ['RIGHT'] = L["Right"],
  1587.                     },
  1588.                 },
  1589.                 ['growth-y'] = {
  1590.                     type = 'select',
  1591.                     order = 5,
  1592.                     name = L['Y-Growth'],
  1593.                     desc = L['Growth direction of the buffs'],
  1594.                     values = {
  1595.                         ['UP'] = L['Up'],
  1596.                         ['DOWN'] = L["Down"],
  1597.                     },
  1598.                 }, 
  1599.                 initialAnchor = {
  1600.                     type = 'select',
  1601.                     order = 6,
  1602.                     name = L['Initial Anchor'],
  1603.                     desc = L['The initial anchor point of the buffs on the frame'],
  1604.                     values = auraAnchors,
  1605.                 }, 
  1606.                 attachTo = {
  1607.                     type = 'select',
  1608.                     order = 7,
  1609.                     name = L['Attach To'],
  1610.                     desc = L['What to attach the buff anchor frame to.'],
  1611.                     values = {
  1612.                         ['FRAME'] = L['Frame'],
  1613.                         ['BUFFS'] = L['Buffs'],
  1614.                     },
  1615.                 },
  1616.                 anchorPoint = {
  1617.                     type = 'select',
  1618.                     order = 8,
  1619.                     name = L['Anchor Point'],
  1620.                     desc = L['What point to anchor to the frame you set to attach to.'],
  1621.                     values = auraAnchors,              
  1622.                 },
  1623.                 fontsize = {
  1624.                     order = 6,
  1625.                     name = L["Font Size"],
  1626.                     type = "range",
  1627.                     min = 6, max = 22, step = 1,
  1628.                 }, 
  1629.                 useFilter = {
  1630.                     order = 7,
  1631.                     name = L['Use Filter'],
  1632.                     desc = L['Select a filter to use.'],
  1633.                     type = 'select',
  1634.                     values = function()
  1635.                         filters = {}
  1636.                         filters[''] = ''
  1637.                         for filter in pairs(E.global.unitframe['aurafilters']) do
  1638.                             filters[filter] = filter
  1639.                         end
  1640.                         return filters
  1641.                     end,
  1642.                 },
  1643.                 showPlayerOnly = {
  1644.                     order = 8,
  1645.                     type = 'toggle',
  1646.                     name = L['Personal Auras'],
  1647.                     desc = L['If set only auras belonging to yourself in addition to any aura that passes the set filter may be shown.'],
  1648.                 },
  1649.                 durationLimit = {
  1650.                     order = 9,
  1651.                     name = L['Duration Limit'],
  1652.                     desc = L['The aura must be below this duration for the buff to show, set to 0 to disable. Note: This is in seconds.'],
  1653.                     type = 'range',
  1654.                     min = 0, max = 3600, step = 60,
  1655.                 },                 
  1656.             },
  1657.         }, 
  1658.         castbar = {
  1659.             order = 700,
  1660.             type = 'group',
  1661.             name = L['Castbar'],
  1662.             get = function(info) return E.db.unitframe.units['target']['castbar'][ info[#info] ] end,
  1663.             set = function(info, value) E.db.unitframe.units['target']['castbar'][ info[#info] ] = value; UF:CreateAndUpdateUF('target') end,
  1664.             args = {
  1665.                 enable = {
  1666.                     type = 'toggle',
  1667.                     order = 1,
  1668.                     name = L['Enable'],
  1669.                 }, 
  1670.                 matchsize = {
  1671.                     order = 2,
  1672.                     type = 'execute',
  1673.                     name = L['Match Frame Width'],
  1674.                     func = function() E.db.unitframe.units['target']['castbar']['width'] = E.db.unitframe.units['target']['width']; UF:CreateAndUpdateUF('target') end,
  1675.                 },         
  1676.                 forceshow = {
  1677.                     order = 3,
  1678.                     name = SHOW..' / '..HIDE,
  1679.                     func = function()
  1680.                         local castbar = ElvUF_Target.Castbar
  1681.                         if not castbar.oldHide then
  1682.                             castbar.oldHide = castbar.Hide
  1683.                             castbar.Hide = castbar.Show
  1684.                             castbar:Show()
  1685.                         else
  1686.                             castbar.Hide = castbar.oldHide
  1687.                             castbar.oldHide = nil
  1688.                             castbar:Hide()                     
  1689.                         end
  1690.                     end,
  1691.                     type = 'execute',
  1692.                 },
  1693.                 width = {
  1694.                     order = 4,
  1695.                     name = L['Width'],
  1696.                     type = 'range',
  1697.                     min = 50, max = 600, step = 1,
  1698.                 },
  1699.                 height = {
  1700.                     order = 5,
  1701.                     name = L['Height'],
  1702.                     type = 'range',
  1703.                     min = 10, max = 85, step = 1,
  1704.                 },     
  1705.                 icon = {
  1706.                     order = 6,
  1707.                     name = L['Icon'],
  1708.                     type = 'toggle',
  1709.                 },
  1710.                 xOffset = {
  1711.                     order = 7,
  1712.                     name = L['X Offset'],
  1713.                     type = 'range',
  1714.                     min = -E.screenwidth, max = E.screenwidth, step = 1,
  1715.                 },
  1716.                 yOffset = {
  1717.                     order = 8,
  1718.                     name = L['Y Offset'],
  1719.                     type = 'range',
  1720.                     min = -E.screenheight, max = E.screenheight, step = 1,
  1721.                 },             
  1722.                 color = {
  1723.                     order = 9,
  1724.                     type = 'color',
  1725.                     name = L['Color'],
  1726.                     get = function(info)
  1727.                         local t = E.db.unitframe.units['target']['castbar'][ info[#info] ]
  1728.                         return t.r, t.g, t.b, t.a
  1729.                     end,
  1730.                     set = function(info, r, g, b)
  1731.                         E.db.general[ info[#info] ] = {}
  1732.                         local t = E.db.unitframe.units['target']['castbar'][ info[#info] ]
  1733.                         t.r, t.g, t.b = r, g, b
  1734.                         UF:CreateAndUpdateUF('target')
  1735.                     end,                                                   
  1736.                 },
  1737.                 interruptcolor = {
  1738.                     order = 10,
  1739.                     type = 'color',
  1740.                     name = L['Interrupt Color'],
  1741.                     get = function(info)
  1742.                         local t = E.db.unitframe.units['target']['castbar'][ info[#info] ]
  1743.                         return t.r, t.g, t.b, t.a
  1744.                     end,
  1745.                     set = function(info, r, g, b)
  1746.                         E.db.general[ info[#info] ] = {}
  1747.                         local t = E.db.unitframe.units['target']['castbar'][ info[#info] ]
  1748.                         t.r, t.g, t.b = r, g, b
  1749.                         UF:CreateAndUpdateUF('target')
  1750.                     end,                   
  1751.                 },
  1752.                 format = {
  1753.                     order = 11,
  1754.                     type = 'select',
  1755.                     name = L['Format'],
  1756.                     values = {
  1757.                         ['CURRENTMAX'] = L['Current / Max'],
  1758.                         ['CURRENT'] = L['Current'],
  1759.                         ['REMAINING'] = L['Remaining'],
  1760.                     },
  1761.                 },     
  1762.                 spark = {
  1763.                     order = 12,
  1764.                     type = 'toggle',
  1765.                     name = L['Spark'],
  1766.                     desc = L['Display a spark texture at the end of the castbar statusbar to help show the differance between castbar and backdrop.'],
  1767.                 },             
  1768.             },
  1769.         },
  1770.         combobar = {
  1771.             order = 800,
  1772.             type = 'group',
  1773.             name = L['Combobar'],
  1774.             get = function(info) return E.db.unitframe.units['target']['combobar'][ info[#info] ] end,
  1775.             set = function(info, value) E.db.unitframe.units['target']['combobar'][ info[#info] ] = value; UF:CreateAndUpdateUF('target') end,
  1776.             args = {
  1777.                 enable = {
  1778.                     type = 'toggle',
  1779.                     order = 1,
  1780.                     name = L['Enable'],
  1781.                 },
  1782.                 height = {
  1783.                     type = 'range',
  1784.                     order = 2,
  1785.                     name = L['Height'],
  1786.                     min = 5, max = 15, step = 1,
  1787.                 }, 
  1788.                 fill = {
  1789.                     type = 'select',
  1790.                     order = 3,
  1791.                     name = L['Fill'],
  1792.                     values = fillValues,
  1793.                 },             
  1794.             },
  1795.         },     
  1796.     },
  1797. }
  1798.  
  1799. --TargetTarget
  1800. E.Options.args.unitframe.args.targettarget = {
  1801.     name = L['TargetTarget Frame'],
  1802.     type = 'group',
  1803.     order = 500,
  1804.     childGroups = "select",
  1805.     get = function(info) return E.db.unitframe.units['targettarget'][ info[#info] ] end,
  1806.     set = function(info, value) E.db.unitframe.units['targettarget'][ info[#info] ] = value; UF:CreateAndUpdateUF('targettarget') end,
  1807.     args = {
  1808.         enable = {
  1809.             type = 'toggle',
  1810.             order = 1,
  1811.             name = L['Enable'],
  1812.         },
  1813.         copyFrom = {
  1814.             type = 'select',
  1815.             order = 2,
  1816.             name = L['Copy From'],
  1817.             desc = L['Select a unit to copy settings from.'],
  1818.             values = UF['handledunits'],
  1819.             set = function(info, value) UF:MergeUnitSettings(value, 'targettarget'); end,
  1820.         },
  1821.         resetSettings = {
  1822.             type = 'execute',
  1823.             order = 3,
  1824.             name = L['Restore Defaults'],
  1825.             func = function(info, value) UF:ResetUnitSettings('targettarget') end,
  1826.         },     
  1827.         width = {
  1828.             order = 4,
  1829.             name = L['Width'],
  1830.             type = 'range',
  1831.             min = 50, max = 500, step = 1,
  1832.         },
  1833.         height = {
  1834.             order = 5,
  1835.             name = L['Height'],
  1836.             type = 'range',
  1837.             min = 10, max = 250, step = 1,
  1838.         }, 
  1839.         health = {
  1840.             order = 6,
  1841.             type = 'group',
  1842.             name = L['Health'],
  1843.             get = function(info) return E.db.unitframe.units['targettarget']['health'][ info[#info] ] end,
  1844.             set = function(info, value) E.db.unitframe.units['targettarget']['health'][ info[#info] ] = value; UF:CreateAndUpdateUF('targettarget') end,
  1845.             args = {
  1846.                 text = {
  1847.                     type = 'toggle',
  1848.                     order = 1,
  1849.                     name = L['Text'],
  1850.                 },
  1851.                 text_format = {
  1852.                     type = 'select',
  1853.                     order = 2,
  1854.                     name = L['Text Format'],
  1855.                     values = textFormats,
  1856.                 },
  1857.                 position = {
  1858.                     type = 'select',
  1859.                     order = 3,
  1860.                     name = L['Position'],
  1861.                     values = positionValues,
  1862.                 },                 
  1863.             },
  1864.         },
  1865.         power = {
  1866.             order = 7,
  1867.             type = 'group',
  1868.             name = L['Power'],
  1869.             get = function(info) return E.db.unitframe.units['targettarget']['power'][ info[#info] ] end,
  1870.             set = function(info, value) E.db.unitframe.units['targettarget']['power'][ info[#info] ] = value; UF:CreateAndUpdateUF('targettarget') end,
  1871.             args = {
  1872.                 enable = {
  1873.                     type = 'toggle',
  1874.                     order = 1,
  1875.                     name = L['Enable'],
  1876.                 },         
  1877.                 text = {
  1878.                     type = 'toggle',
  1879.                     order = 2,
  1880.                     name = L['Text'],
  1881.                 },
  1882.                 text_format = {
  1883.                     type = 'select',
  1884.                     order = 3,
  1885.                     name = L['Text Format'],
  1886.                     values = textFormats,
  1887.                 },
  1888.                 width = {
  1889.                     type = 'select',
  1890.                     order = 4,
  1891.                     name = L['Width'],
  1892.                     values = fillValues,
  1893.                 },
  1894.                 height = {
  1895.                     type = 'range',
  1896.                     name = L['Height'],
  1897.                     order = 5,
  1898.                     min = 2, max = 50, step = 1,
  1899.                 },
  1900.                 offset = {
  1901.                     type = 'range',
  1902.                     name = L['Offset'],
  1903.                     desc = L['Offset of the powerbar to the healthbar, set to 0 to disable.'],
  1904.                     order = 6,
  1905.                     min = 0, max = 20, step = 1,
  1906.                 },
  1907.                 hideonnpc = {
  1908.                     type = 'toggle',
  1909.                     order = 7,
  1910.                     name = L['Text Toggle On NPC'],
  1911.                     desc = L['Power text will be hidden on NPC targets, in addition the name text will be repositioned to the power texts anchor point.'],
  1912.                 },
  1913.                 position = {
  1914.                     type = 'select',
  1915.                     order = 8,
  1916.                     name = L['Position'],
  1917.                     values = positionValues,
  1918.                 },                     
  1919.             },
  1920.         }, 
  1921.         name = {
  1922.             order = 9,
  1923.             type = 'group',
  1924.             name = L['Name'],
  1925.             get = function(info) return E.db.unitframe.units['targettarget']['name'][ info[#info] ] end,
  1926.             set = function(info, value) E.db.unitframe.units['targettarget']['name'][ info[#info] ] = value; UF:CreateAndUpdateUF('targettarget') end,
  1927.             args = {
  1928.                 enable = {
  1929.                     type = 'toggle',
  1930.                     order = 1,
  1931.                     name = L['Enable'],
  1932.                 },
  1933.                 position = {
  1934.                     type = 'select',
  1935.                     order = 2,
  1936.                     name = L['Position'],
  1937.                     values = positionValues,
  1938.                 },                 
  1939.             },
  1940.         },
  1941.         buffs = {
  1942.             order = 11,
  1943.             type = 'group',
  1944.             name = L['Buffs'],
  1945.             get = function(info) return E.db.unitframe.units['targettarget']['buffs'][ info[#info] ] end,
  1946.             set = function(info, value) E.db.unitframe.units['targettarget']['buffs'][ info[#info] ] = value; UF:CreateAndUpdateUF('targettarget') end,
  1947.             args = {
  1948.                 enable = {
  1949.                     type = 'toggle',
  1950.                     order = 1,
  1951.                     name = L['Enable'],
  1952.                 },
  1953.                 perrow = {
  1954.                     type = 'range',
  1955.                     order = 2,
  1956.                     name = L['Per Row'],
  1957.                     min = 1, max = 20, step = 1,
  1958.                 },
  1959.                 numrows = {
  1960.                     type = 'range',
  1961.                     order = 3,
  1962.                     name = L['Num Rows'],
  1963.                     min = 1, max = 4, step = 1,                
  1964.                 },
  1965.                 ['growth-x'] = {
  1966.                     type = 'select',
  1967.                     order = 4,
  1968.                     name = L['X-Growth'],
  1969.                     desc = L['Growth direction of the buffs'],
  1970.                     values = {
  1971.                         ['LEFT'] = L['Left'],
  1972.                         ['RIGHT'] = L["Right"],
  1973.                     },
  1974.                 },
  1975.                 ['growth-y'] = {
  1976.                     type = 'select',
  1977.                     order = 5,
  1978.                     name = L['Y-Growth'],
  1979.                     desc = L['Growth direction of the buffs'],
  1980.                     values = {
  1981.                         ['UP'] = L['Up'],
  1982.                         ['DOWN'] = L["Down"],
  1983.                     },
  1984.                 }, 
  1985.                 initialAnchor = {
  1986.                     type = 'select',
  1987.                     order = 6,
  1988.                     name = L['Initial Anchor'],
  1989.                     desc = L['The initial anchor point of the buffs on the frame'],
  1990.                     values = auraAnchors,
  1991.                 }, 
  1992.                 attachTo = {
  1993.                     type = 'select',
  1994.                     order = 7,
  1995.                     name = L['Attach To'],
  1996.                     desc = L['What to attach the buff anchor frame to.'],
  1997.                     values = {
  1998.                         ['FRAME'] = L['Frame'],
  1999.                         ['DEBUFFS'] = L['Debuffs'],
  2000.                     },
  2001.                 },
  2002.                 anchorPoint = {
  2003.                     type = 'select',
  2004.                     order = 8,
  2005.                     name = L['Anchor Point'],
  2006.                     desc = L['What point to anchor to the frame you set to attach to.'],
  2007.                     values = auraAnchors,              
  2008.                 },
  2009.                 fontsize = {
  2010.                     order = 6,
  2011.                     name = L["Font Size"],
  2012.                     type = "range",
  2013.                     min = 6, max = 22, step = 1,
  2014.                 },             
  2015.                 useFilter = {
  2016.                     order = 7,
  2017.                     name = L['Use Filter'],
  2018.                     desc = L['Select a filter to use.'],
  2019.                     type = 'select',
  2020.                     values = function()
  2021.                         filters = {}
  2022.                         filters[''] = ''
  2023.                         for filter in pairs(E.global.unitframe['aurafilters']) do
  2024.                             filters[filter] = filter
  2025.                         end
  2026.                         return filters
  2027.                     end,
  2028.                 },     
  2029.                 showPlayerOnly = {
  2030.                     order = 8,
  2031.                     type = 'toggle',
  2032.                     name = L['Personal Auras'],
  2033.                     desc = L['If set only auras belonging to yourself in addition to any aura that passes the set filter may be shown.'],
  2034.                 }, 
  2035.                 durationLimit = {
  2036.                     order = 9,
  2037.                     name = L['Duration Limit'],
  2038.                     desc = L['The aura must be below this duration for the buff to show, set to 0 to disable. Note: This is in seconds.'],
  2039.                     type = 'range',
  2040.                     min = 0, max = 3600, step = 60,
  2041.                 },                 
  2042.             },
  2043.         }, 
  2044.         debuffs = {
  2045.             order = 12,
  2046.             type = 'group',
  2047.             name = L['Debuffs'],
  2048.             get = function(info) return E.db.unitframe.units['targettarget']['debuffs'][ info[#info] ] end,
  2049.             set = function(info, value) E.db.unitframe.units['targettarget']['debuffs'][ info[#info] ] = value; UF:CreateAndUpdateUF('targettarget'); end,
  2050.             args = {
  2051.                 enable = {
  2052.                     type = 'toggle',
  2053.                     order = 1,
  2054.                     name = L['Enable'],
  2055.                 },
  2056.                 perrow = {
  2057.                     type = 'range',
  2058.                     order = 2,
  2059.                     name = L['Per Row'],
  2060.                     min = 1, max = 20, step = 1,
  2061.                 },
  2062.                 numrows = {
  2063.                     type = 'range',
  2064.                     order = 3,
  2065.                     name = L['Num Rows'],
  2066.                     min = 1, max = 4, step = 1,                
  2067.                 },
  2068.                 ['growth-x'] = {
  2069.                     type = 'select',
  2070.                     order = 4,
  2071.                     name = L['X-Growth'],
  2072.                     desc = L['Growth direction of the buffs'],
  2073.                     values = {
  2074.                         ['LEFT'] = L['Left'],
  2075.                         ['RIGHT'] = L["Right"],
  2076.                     },
  2077.                 },
  2078.                 ['growth-y'] = {
  2079.                     type = 'select',
  2080.                     order = 5,
  2081.                     name = L['Y-Growth'],
  2082.                     desc = L['Growth direction of the buffs'],
  2083.                     values = {
  2084.                         ['UP'] = L['Up'],
  2085.                         ['DOWN'] = L["Down"],
  2086.                     },
  2087.                 }, 
  2088.                 initialAnchor = {
  2089.                     type = 'select',
  2090.                     order = 6,
  2091.                     name = L['Initial Anchor'],
  2092.                     desc = L['The initial anchor point of the buffs on the frame'],
  2093.                     values = auraAnchors,
  2094.                 }, 
  2095.                 attachTo = {
  2096.                     type = 'select',
  2097.                     order = 7,
  2098.                     name = L['Attach To'],
  2099.                     desc = L['What to attach the buff anchor frame to.'],
  2100.                     values = {
  2101.                         ['FRAME'] = L['Frame'],
  2102.                         ['BUFFS'] = L['Buffs'],
  2103.                     },
  2104.                 },
  2105.                 anchorPoint = {
  2106.                     type = 'select',
  2107.                     order = 8,
  2108.                     name = L['Anchor Point'],
  2109.                     desc = L['What point to anchor to the frame you set to attach to.'],
  2110.                     values = auraAnchors,              
  2111.                 },
  2112.                 fontsize = {
  2113.                     order = 6,
  2114.                     name = L["Font Size"],
  2115.                     type = "range",
  2116.                     min = 6, max = 22, step = 1,
  2117.                 }, 
  2118.                 useFilter = {
  2119.                     order = 7,
  2120.                     name = L['Use Filter'],
  2121.                     desc = L['Select a filter to use.'],
  2122.                     type = 'select',
  2123.                     values = function()
  2124.                         filters = {}
  2125.                         filters[''] = ''
  2126.                         for filter in pairs(E.global.unitframe['aurafilters']) do
  2127.                             filters[filter] = filter
  2128.                         end
  2129.                         return filters
  2130.                     end,
  2131.                 },
  2132.                 showPlayerOnly = {
  2133.                     order = 8,
  2134.                     type = 'toggle',
  2135.                     name = L['Personal Auras'],
  2136.                     desc = L['If set only auras belonging to yourself in addition to any aura that passes the set filter may be shown.'],
  2137.                 },
  2138.                 durationLimit = {
  2139.                     order = 9,
  2140.                     name = L['Duration Limit'],
  2141.                     desc = L['The aura must be below this duration for the buff to show, set to 0 to disable. Note: This is in seconds.'],
  2142.                     type = 'range',
  2143.                     min = 0, max = 3600, step = 60,
  2144.                 },                 
  2145.             },
  2146.         }, 
  2147.     },
  2148. }
  2149.  
  2150. --Focus
  2151. E.Options.args.unitframe.args.focus = {
  2152.     name = L['Focus Frame'],
  2153.     type = 'group',
  2154.     order = 600,
  2155.     childGroups = "select",
  2156.     get = function(info) return E.db.unitframe.units['focus'][ info[#info] ] end,
  2157.     set = function(info, value) E.db.unitframe.units['focus'][ info[#info] ] = value; UF:CreateAndUpdateUF('focus') end,
  2158.     args = {
  2159.         enable = {
  2160.             type = 'toggle',
  2161.             order = 1,
  2162.             name = L['Enable'],
  2163.         },
  2164.         copyFrom = {
  2165.             type = 'select',
  2166.             order = 2,
  2167.             name = L['Copy From'],
  2168.             desc = L['Select a unit to copy settings from.'],
  2169.             values = UF['handledunits'],
  2170.             set = function(info, value) UF:MergeUnitSettings(value, 'focus'); end,
  2171.         },
  2172.         resetSettings = {
  2173.             type = 'execute',
  2174.             order = 3,
  2175.             name = L['Restore Defaults'],
  2176.             func = function(info, value) UF:ResetUnitSettings('focus') end,
  2177.         },     
  2178.         width = {
  2179.             order = 4,
  2180.             name = L['Width'],
  2181.             type = 'range',
  2182.             min = 50, max = 500, step = 1,
  2183.         },
  2184.         height = {
  2185.             order = 5,
  2186.             name = L['Height'],
  2187.             type = 'range',
  2188.             min = 10, max = 250, step = 1,
  2189.         }, 
  2190.         healPrediction = {
  2191.             order = 6,
  2192.             name = L['Heal Prediction'],
  2193.             desc = L['Show a incomming heal prediction bar on the unitframe. Also display a slightly different colored bar for incoming overheals.'],
  2194.             type = 'toggle',
  2195.         },
  2196.         health = {
  2197.             order = 100,
  2198.             type = 'group',
  2199.             name = L['Health'],
  2200.             get = function(info) return E.db.unitframe.units['focus']['health'][ info[#info] ] end,
  2201.             set = function(info, value) E.db.unitframe.units['focus']['health'][ info[#info] ] = value; UF:CreateAndUpdateUF('focus') end,
  2202.             args = {
  2203.                 text = {
  2204.                     type = 'toggle',
  2205.                     order = 1,
  2206.                     name = L['Text'],
  2207.                 },
  2208.                 text_format = {
  2209.                     type = 'select',
  2210.                     order = 2,
  2211.                     name = L['Text Format'],
  2212.                     values = textFormats,
  2213.                 },
  2214.                 position = {
  2215.                     type = 'select',
  2216.                     order = 3,
  2217.                     name = L['Position'],
  2218.                     values = positionValues,
  2219.                 },                 
  2220.             },
  2221.         },
  2222.         power = {
  2223.             order = 200,
  2224.             type = 'group',
  2225.             name = L['Power'],
  2226.             get = function(info) return E.db.unitframe.units['focus']['power'][ info[#info] ] end,
  2227.             set = function(info, value) E.db.unitframe.units['focus']['power'][ info[#info] ] = value; UF:CreateAndUpdateUF('focus') end,
  2228.             args = {
  2229.                 enable = {
  2230.                     type = 'toggle',
  2231.                     order = 1,
  2232.                     name = L['Enable'],
  2233.                 },         
  2234.                 text = {
  2235.                     type = 'toggle',
  2236.                     order = 2,
  2237.                     name = L['Text'],
  2238.                 },
  2239.                 text_format = {
  2240.                     type = 'select',
  2241.                     order = 3,
  2242.                     name = L['Text Format'],
  2243.                     values = textFormats,
  2244.                 },
  2245.                 width = {
  2246.                     type = 'select',
  2247.                     order = 4,
  2248.                     name = L['Width'],
  2249.                     values = fillValues,
  2250.                 },
  2251.                 height = {
  2252.                     type = 'range',
  2253.                     name = L['Height'],
  2254.                     order = 5,
  2255.                     min = 2, max = 50, step = 1,
  2256.                 },
  2257.                 offset = {
  2258.                     type = 'range',
  2259.                     name = L['Offset'],
  2260.                     desc = L['Offset of the powerbar to the healthbar, set to 0 to disable.'],
  2261.                     order = 6,
  2262.                     min = 0, max = 20, step = 1,
  2263.                 },
  2264.                 hideonnpc = {
  2265.                     type = 'toggle',
  2266.                     order = 7,
  2267.                     name = L['Text Toggle On NPC'],
  2268.                     desc = L['Power text will be hidden on NPC targets, in addition the name text will be repositioned to the power texts anchor point.'],
  2269.                 },
  2270.                 position = {
  2271.                     type = 'select',
  2272.                     order = 8,
  2273.                     name = L['Position'],
  2274.                     values = positionValues,
  2275.                 },                 
  2276.             },
  2277.         }, 
  2278.         name = {
  2279.             order = 300,
  2280.             type = 'group',
  2281.             name = L['Name'],
  2282.             get = function(info) return E.db.unitframe.units['focus']['name'][ info[#info] ] end,
  2283.             set = function(info, value) E.db.unitframe.units['focus']['name'][ info[#info] ] = value; UF:CreateAndUpdateUF('focus') end,
  2284.             args = {
  2285.                 enable = {
  2286.                     type = 'toggle',
  2287.                     order = 1,
  2288.                     name = L['Enable'],
  2289.                 },
  2290.                 position = {
  2291.                     type = 'select',
  2292.                     order = 2,
  2293.                     name = L['Position'],
  2294.                     values = positionValues,
  2295.                 },                 
  2296.             },
  2297.         },
  2298.         buffs = {
  2299.             order = 400,
  2300.             type = 'group',
  2301.             name = L['Buffs'],
  2302.             get = function(info) return E.db.unitframe.units['focus']['buffs'][ info[#info] ] end,
  2303.             set = function(info, value) E.db.unitframe.units['focus']['buffs'][ info[#info] ] = value; UF:CreateAndUpdateUF('focus') end,
  2304.             args = {
  2305.                 enable = {
  2306.                     type = 'toggle',
  2307.                     order = 1,
  2308.                     name = L['Enable'],
  2309.                 },
  2310.                 perrow = {
  2311.                     type = 'range',
  2312.                     order = 2,
  2313.                     name = L['Per Row'],
  2314.                     min = 1, max = 20, step = 1,
  2315.                 },
  2316.                 numrows = {
  2317.                     type = 'range',
  2318.                     order = 3,
  2319.                     name = L['Num Rows'],
  2320.                     min = 1, max = 4, step = 1,                
  2321.                 },
  2322.                 ['growth-x'] = {
  2323.                     type = 'select',
  2324.                     order = 4,
  2325.                     name = L['X-Growth'],
  2326.                     desc = L['Growth direction of the buffs'],
  2327.                     values = {
  2328.                         ['LEFT'] = L['Left'],
  2329.                         ['RIGHT'] = L["Right"],
  2330.                     },
  2331.                 },
  2332.                 ['growth-y'] = {
  2333.                     type = 'select',
  2334.                     order = 5,
  2335.                     name = L['Y-Growth'],
  2336.                     desc = L['Growth direction of the buffs'],
  2337.                     values = {
  2338.                         ['UP'] = L['Up'],
  2339.                         ['DOWN'] = L["Down"],
  2340.                     },
  2341.                 }, 
  2342.                 initialAnchor = {
  2343.                     type = 'select',
  2344.                     order = 6,
  2345.                     name = L['Initial Anchor'],
  2346.                     desc = L['The initial anchor point of the buffs on the frame'],
  2347.                     values = auraAnchors,
  2348.                 }, 
  2349.                 attachTo = {
  2350.                     type = 'select',
  2351.                     order = 7,
  2352.                     name = L['Attach To'],
  2353.                     desc = L['What to attach the buff anchor frame to.'],
  2354.                     values = {
  2355.                         ['FRAME'] = L['Frame'],
  2356.                         ['DEBUFFS'] = L['Debuffs'],
  2357.                     },
  2358.                 },
  2359.                 anchorPoint = {
  2360.                     type = 'select',
  2361.                     order = 8,
  2362.                     name = L['Anchor Point'],
  2363.                     desc = L['What point to anchor to the frame you set to attach to.'],
  2364.                     values = auraAnchors,              
  2365.                 },
  2366.                 fontsize = {
  2367.                     order = 6,
  2368.                     name = L["Font Size"],
  2369.                     type = "range",
  2370.                     min = 6, max = 22, step = 1,
  2371.                 },             
  2372.                 useFilter = {
  2373.                     order = 7,
  2374.                     name = L['Use Filter'],
  2375.                     desc = L['Select a filter to use.'],
  2376.                     type = 'select',
  2377.                     values = function()
  2378.                         filters = {}
  2379.                         filters[''] = ''
  2380.                         for filter in pairs(E.global.unitframe['aurafilters']) do
  2381.                             filters[filter] = filter
  2382.                         end
  2383.                         return filters
  2384.                     end,
  2385.                 },     
  2386.                 showPlayerOnly = {
  2387.                     order = 8,
  2388.                     type = 'toggle',
  2389.                     name = L['Personal Auras'],
  2390.                     desc = L['If set only auras belonging to yourself in addition to any aura that passes the set filter may be shown.'],
  2391.                 }, 
  2392.                 durationLimit = {
  2393.                     order = 9,
  2394.                     name = L['Duration Limit'],
  2395.                     desc = L['The aura must be below this duration for the buff to show, set to 0 to disable. Note: This is in seconds.'],
  2396.                     type = 'range',
  2397.                     min = 0, max = 3600, step = 60,
  2398.                 },                 
  2399.             },
  2400.         }, 
  2401.         debuffs = {
  2402.             order = 500,
  2403.             type = 'group',
  2404.             name = L['Debuffs'],
  2405.             get = function(info) return E.db.unitframe.units['focus']['debuffs'][ info[#info] ] end,
  2406.             set = function(info, value) E.db.unitframe.units['focus']['debuffs'][ info[#info] ] = value; UF:CreateAndUpdateUF('focus') end,
  2407.             args = {
  2408.                 enable = {
  2409.                     type = 'toggle',
  2410.                     order = 1,
  2411.                     name = L['Enable'],
  2412.                 },
  2413.                 perrow = {
  2414.                     type = 'range',
  2415.                     order = 2,
  2416.                     name = L['Per Row'],
  2417.                     min = 1, max = 20, step = 1,
  2418.                 },
  2419.                 numrows = {
  2420.                     type = 'range',
  2421.                     order = 3,
  2422.                     name = L['Num Rows'],
  2423.                     min = 1, max = 4, step = 1,                
  2424.                 },
  2425.                 ['growth-x'] = {
  2426.                     type = 'select',
  2427.                     order = 4,
  2428.                     name = L['X-Growth'],
  2429.                     desc = L['Growth direction of the buffs'],
  2430.                     values = {
  2431.                         ['LEFT'] = L['Left'],
  2432.                         ['RIGHT'] = L["Right"],
  2433.                     },
  2434.                 },
  2435.                 ['growth-y'] = {
  2436.                     type = 'select',
  2437.                     order = 5,
  2438.                     name = L['Y-Growth'],
  2439.                     desc = L['Growth direction of the buffs'],
  2440.                     values = {
  2441.                         ['UP'] = L['Up'],
  2442.                         ['DOWN'] = L["Down"],
  2443.                     },
  2444.                 }, 
  2445.                 initialAnchor = {
  2446.                     type = 'select',
  2447.                     order = 6,
  2448.                     name = L['Initial Anchor'],
  2449.                     desc = L['The initial anchor point of the buffs on the frame'],
  2450.                     values = auraAnchors,
  2451.                 }, 
  2452.                 attachTo = {
  2453.                     type = 'select',
  2454.                     order = 7,
  2455.                     name = L['Attach To'],
  2456.                     desc = L['What to attach the buff anchor frame to.'],
  2457.                     values = {
  2458.                         ['FRAME'] = L['Frame'],
  2459.                         ['BUFFS'] = L['Buffs'],
  2460.                     },
  2461.                 },
  2462.                 anchorPoint = {
  2463.                     type = 'select',
  2464.                     order = 8,
  2465.                     name = L['Anchor Point'],
  2466.                     desc = L['What point to anchor to the frame you set to attach to.'],
  2467.                     values = auraAnchors,              
  2468.                 },
  2469.                 fontsize = {
  2470.                     order = 6,
  2471.                     name = L["Font Size"],
  2472.                     type = "range",
  2473.                     min = 6, max = 22, step = 1,
  2474.                 }, 
  2475.                 useFilter = {
  2476.                     order = 7,
  2477.                     name = L['Use Filter'],
  2478.                     desc = L['Select a filter to use.'],
  2479.                     type = 'select',
  2480.                     values = function()
  2481.                         filters = {}
  2482.                         filters[''] = ''
  2483.                         for filter in pairs(E.global.unitframe['aurafilters']) do
  2484.                             filters[filter] = filter
  2485.                         end
  2486.                         return filters
  2487.                     end,
  2488.                 },
  2489.                 showPlayerOnly = {
  2490.                     order = 8,
  2491.                     type = 'toggle',
  2492.                     name = L['Personal Auras'],
  2493.                     desc = L['If set only auras belonging to yourself in addition to any aura that passes the set filter may be shown.'],
  2494.                 },
  2495.                 durationLimit = {
  2496.                     order = 9,
  2497.                     name = L['Duration Limit'],
  2498.                     desc = L['The aura must be below this duration for the buff to show, set to 0 to disable. Note: This is in seconds.'],
  2499.                     type = 'range',
  2500.                     min = 0, max = 3600, step = 60,
  2501.                 },                 
  2502.             },
  2503.         }, 
  2504.         castbar = {
  2505.             order = 600,
  2506.             type = 'group',
  2507.             name = L['Castbar'],
  2508.             get = function(info) return E.db.unitframe.units['focus']['castbar'][ info[#info] ] end,
  2509.             set = function(info, value) E.db.unitframe.units['focus']['castbar'][ info[#info] ] = value; UF:CreateAndUpdateUF('focus') end,
  2510.             args = {
  2511.                 enable = {
  2512.                     type = 'toggle',
  2513.                     order = 1,
  2514.                     name = L['Enable'],
  2515.                 }, 
  2516.                 matchsize = {
  2517.                     order = 2,
  2518.                     type = 'execute',
  2519.                     name = L['Match Frame Width'],
  2520.                     func = function() E.db.unitframe.units['focus']['castbar']['width'] = E.db.unitframe.units['focus']['width']; UF:CreateAndUpdateUF('focus') end,
  2521.                 },         
  2522.                 forceshow = {
  2523.                     order = 3,
  2524.                     name = SHOW..' / '..HIDE,
  2525.                     func = function()
  2526.                         local castbar = ElvUF_Focus.Castbar
  2527.                         if not castbar.oldHide then
  2528.                             castbar.oldHide = castbar.Hide
  2529.                             castbar.Hide = castbar.Show
  2530.                             castbar:Show()
  2531.                         else
  2532.                             castbar.Hide = castbar.oldHide
  2533.                             castbar.oldHide = nil
  2534.                             castbar:Hide()                     
  2535.                         end
  2536.                     end,
  2537.                     type = 'execute',
  2538.                 },
  2539.                 width = {
  2540.                     order = 4,
  2541.                     name = L['Width'],
  2542.                     type = 'range',
  2543.                     min = 50, max = 600, step = 1,
  2544.                 },
  2545.                 height = {
  2546.                     order = 5,
  2547.                     name = L['Height'],
  2548.                     type = 'range',
  2549.                     min = 10, max = 85, step = 1,
  2550.                 },     
  2551.                 icon = {
  2552.                     order = 6,
  2553.                     name = L['Icon'],
  2554.                     type = 'toggle',
  2555.                 },
  2556.                 xOffset = {
  2557.                     order = 7,
  2558.                     name = L['X Offset'],
  2559.                     type = 'range',
  2560.                     min = -E.screenwidth, max = E.screenwidth, step = 1,
  2561.                 },
  2562.                 yOffset = {
  2563.                     order = 8,
  2564.                     name = L['Y Offset'],
  2565.                     type = 'range',
  2566.                     min = -E.screenheight, max = E.screenheight, step = 1,
  2567.                 },             
  2568.                 color = {
  2569.                     order = 9,
  2570.                     type = 'color',
  2571.                     name = L['Color'],
  2572.                     get = function(info)
  2573.                         local t = E.db.unitframe.units['focus']['castbar'][ info[#info] ]
  2574.                         return t.r, t.g, t.b, t.a
  2575.                     end,
  2576.                     set = function(info, r, g, b)
  2577.                         E.db.general[ info[#info] ] = {}
  2578.                         local t = E.db.unitframe.units['focus']['castbar'][ info[#info] ]
  2579.                         t.r, t.g, t.b = r, g, b
  2580.                         UF:CreateAndUpdateUF('focus')
  2581.                     end,                                                   
  2582.                 },
  2583.                 interruptcolor = {
  2584.                     order = 10,
  2585.                     type = 'color',
  2586.                     name = L['Interrupt Color'],
  2587.                     get = function(info)
  2588.                         local t = E.db.unitframe.units['focus']['castbar'][ info[#info] ]
  2589.                         return t.r, t.g, t.b, t.a
  2590.                     end,
  2591.                     set = function(info, r, g, b)
  2592.                         E.db.general[ info[#info] ] = {}
  2593.                         local t = E.db.unitframe.units['focus']['castbar'][ info[#info] ]
  2594.                         t.r, t.g, t.b = r, g, b
  2595.                         UF:CreateAndUpdateUF('focus')
  2596.                     end,                   
  2597.                 },
  2598.                 format = {
  2599.                     order = 11,
  2600.                     type = 'select',
  2601.                     name = L['Format'],
  2602.                     values = {
  2603.                         ['CURRENTMAX'] = L['Current / Max'],
  2604.                         ['CURRENT'] = L['Current'],
  2605.                         ['REMAINING'] = L['Remaining'],
  2606.                     },
  2607.                 }, 
  2608.                 spark = {
  2609.                     order = 12,
  2610.                     type = 'toggle',
  2611.                     name = L['Spark'],
  2612.                     desc = L['Display a spark texture at the end of the castbar statusbar to help show the differance between castbar and backdrop.'],
  2613.                 },             
  2614.             },
  2615.         },     
  2616.     },
  2617. }
  2618.  
  2619. --Focus Target
  2620. E.Options.args.unitframe.args.focustarget = {
  2621.     name = L['FocusTarget Frame'],
  2622.     type = 'group',
  2623.     order = 700,
  2624.     childGroups = "select",
  2625.     get = function(info) return E.db.unitframe.units['focustarget'][ info[#info] ] end,
  2626.     set = function(info, value) E.db.unitframe.units['focustarget'][ info[#info] ] = value; UF:CreateAndUpdateUF('focustarget') end,
  2627.     args = {
  2628.         enable = {
  2629.             type = 'toggle',
  2630.             order = 1,
  2631.             name = L['Enable'],
  2632.         },
  2633.         copyFrom = {
  2634.             type = 'select',
  2635.             order = 2,
  2636.             name = L['Copy From'],
  2637.             desc = L['Select a unit to copy settings from.'],
  2638.             values = UF['handledunits'],
  2639.             set = function(info, value) UF:MergeUnitSettings(value, 'focustarget'); end,
  2640.         },
  2641.         resetSettings = {
  2642.             type = 'execute',
  2643.             order = 3,
  2644.             name = L['Restore Defaults'],
  2645.             func = function(info, value) UF:ResetUnitSettings('focustarget') end,
  2646.         },     
  2647.         width = {
  2648.             order = 4,
  2649.             name = L['Width'],
  2650.             type = 'range',
  2651.             min = 50, max = 500, step = 1,
  2652.         },
  2653.         height = {
  2654.             order = 5,
  2655.             name = L['Height'],
  2656.             type = 'range',
  2657.             min = 10, max = 250, step = 1,
  2658.         }, 
  2659.         health = {
  2660.             order = 6,
  2661.             type = 'group',
  2662.             name = L['Health'],
  2663.             get = function(info) return E.db.unitframe.units['focustarget']['health'][ info[#info] ] end,
  2664.             set = function(info, value) E.db.unitframe.units['focustarget']['health'][ info[#info] ] = value; UF:CreateAndUpdateUF('focustarget') end,
  2665.             args = {
  2666.                 text = {
  2667.                     type = 'toggle',
  2668.                     order = 1,
  2669.                     name = L['Text'],
  2670.                 },
  2671.                 text_format = {
  2672.                     type = 'select',
  2673.                     order = 2,
  2674.                     name = L['Text Format'],
  2675.                     values = textFormats,
  2676.                 },
  2677.                 position = {
  2678.                     type = 'select',
  2679.                     order = 3,
  2680.                     name = L['Position'],
  2681.                     values = positionValues,
  2682.                 },                 
  2683.             },
  2684.         },
  2685.         power = {
  2686.             order = 7,
  2687.             type = 'group',
  2688.             name = L['Power'],
  2689.             get = function(info) return E.db.unitframe.units['focustarget']['power'][ info[#info] ] end,
  2690.             set = function(info, value) E.db.unitframe.units['focustarget']['power'][ info[#info] ] = value; UF:CreateAndUpdateUF('focustarget') end,
  2691.             args = {
  2692.                 enable = {
  2693.                     type = 'toggle',
  2694.                     order = 1,
  2695.                     name = L['Enable'],
  2696.                 },         
  2697.                 text = {
  2698.                     type = 'toggle',
  2699.                     order = 2,
  2700.                     name = L['Text'],
  2701.                 },
  2702.                 text_format = {
  2703.                     type = 'select',
  2704.                     order = 3,
  2705.                     name = L['Text Format'],
  2706.                     values = textFormats,
  2707.                 },
  2708.                 width = {
  2709.                     type = 'select',
  2710.                     order = 4,
  2711.                     name = L['Width'],
  2712.                     values = fillValues,
  2713.                 },
  2714.                 height = {
  2715.                     type = 'range',
  2716.                     name = L['Height'],
  2717.                     order = 5,
  2718.                     min = 2, max = 50, step = 1,
  2719.                 },
  2720.                 offset = {
  2721.                     type = 'range',
  2722.                     name = L['Offset'],
  2723.                     desc = L['Offset of the powerbar to the healthbar, set to 0 to disable.'],
  2724.                     order = 6,
  2725.                     min = 0, max = 20, step = 1,
  2726.                 },
  2727.                 hideonnpc = {
  2728.                     type = 'toggle',
  2729.                     order = 7,
  2730.                     name = L['Text Toggle On NPC'],
  2731.                     desc = L['Power text will be hidden on NPC targets, in addition the name text will be repositioned to the power texts anchor point.'],
  2732.                 },
  2733.                 position = {
  2734.                     type = 'select',
  2735.                     order = 8,
  2736.                     name = L['Position'],
  2737.                     values = positionValues,
  2738.                 },                 
  2739.             },
  2740.         }, 
  2741.         name = {
  2742.             order = 9,
  2743.             type = 'group',
  2744.             name = L['Name'],
  2745.             get = function(info) return E.db.unitframe.units['focustarget']['name'][ info[#info] ] end,
  2746.             set = function(info, value) E.db.unitframe.units['focustarget']['name'][ info[#info] ] = value; UF:CreateAndUpdateUF('focustarget') end,
  2747.             args = {
  2748.                 enable = {
  2749.                     type = 'toggle',
  2750.                     order = 1,
  2751.                     name = L['Enable'],
  2752.                 },
  2753.                 position = {
  2754.                     type = 'select',
  2755.                     order = 2,
  2756.                     name = L['Position'],
  2757.                     values = positionValues,
  2758.                 },                 
  2759.             },
  2760.         },
  2761.         buffs = {
  2762.             order = 11,
  2763.             type = 'group',
  2764.             name = L['Buffs'],
  2765.             get = function(info) return E.db.unitframe.units['focustarget']['buffs'][ info[#info] ] end,
  2766.             set = function(info, value) E.db.unitframe.units['focustarget']['buffs'][ info[#info] ] = value; UF:CreateAndUpdateUF('focustarget') end,
  2767.             args = {
  2768.                 enable = {
  2769.                     type = 'toggle',
  2770.                     order = 1,
  2771.                     name = L['Enable'],
  2772.                 },
  2773.                 perrow = {
  2774.                     type = 'range',
  2775.                     order = 2,
  2776.                     name = L['Per Row'],
  2777.                     min = 1, max = 20, step = 1,
  2778.                 },
  2779.                 numrows = {
  2780.                     type = 'range',
  2781.                     order = 3,
  2782.                     name = L['Num Rows'],
  2783.                     min = 1, max = 4, step = 1,                
  2784.                 },
  2785.                 ['growth-x'] = {
  2786.                     type = 'select',
  2787.                     order = 4,
  2788.                     name = L['X-Growth'],
  2789.                     desc = L['Growth direction of the buffs'],
  2790.                     values = {
  2791.                         ['LEFT'] = L['Left'],
  2792.                         ['RIGHT'] = L["Right"],
  2793.                     },
  2794.                 },
  2795.                 ['growth-y'] = {
  2796.                     type = 'select',
  2797.                     order = 5,
  2798.                     name = L['Y-Growth'],
  2799.                     desc = L['Growth direction of the buffs'],
  2800.                     values = {
  2801.                         ['UP'] = L['Up'],
  2802.                         ['DOWN'] = L["Down"],
  2803.                     },
  2804.                 }, 
  2805.                 initialAnchor = {
  2806.                     type = 'select',
  2807.                     order = 6,
  2808.                     name = L['Initial Anchor'],
  2809.                     desc = L['The initial anchor point of the buffs on the frame'],
  2810.                     values = auraAnchors,
  2811.                 }, 
  2812.                 attachTo = {
  2813.                     type = 'select',
  2814.                     order = 7,
  2815.                     name = L['Attach To'],
  2816.                     desc = L['What to attach the buff anchor frame to.'],
  2817.                     values = {
  2818.                         ['FRAME'] = L['Frame'],
  2819.                         ['DEBUFFS'] = L['Debuffs'],
  2820.                     },
  2821.                 },
  2822.                 anchorPoint = {
  2823.                     type = 'select',
  2824.                     order = 8,
  2825.                     name = L['Anchor Point'],
  2826.                     desc = L['What point to anchor to the frame you set to attach to.'],
  2827.                     values = auraAnchors,              
  2828.                 },
  2829.                 fontsize = {
  2830.                     order = 6,
  2831.                     name = L["Font Size"],
  2832.                     type = "range",
  2833.                     min = 6, max = 22, step = 1,
  2834.                 },             
  2835.                 useFilter = {
  2836.                     order = 7,
  2837.                     name = L['Use Filter'],
  2838.                     desc = L['Select a filter to use.'],
  2839.                     type = 'select',
  2840.                     values = function()
  2841.                         filters = {}
  2842.                         filters[''] = ''
  2843.                         for filter in pairs(E.global.unitframe['aurafilters']) do
  2844.                             filters[filter] = filter
  2845.                         end
  2846.                         return filters
  2847.                     end,
  2848.                 },     
  2849.                 showPlayerOnly = {
  2850.                     order = 8,
  2851.                     type = 'toggle',
  2852.                     name = L['Personal Auras'],
  2853.                     desc = L['If set only auras belonging to yourself in addition to any aura that passes the set filter may be shown.'],
  2854.                 }, 
  2855.                 durationLimit = {
  2856.                     order = 9,
  2857.                     name = L['Duration Limit'],
  2858.                     desc = L['The aura must be below this duration for the buff to show, set to 0 to disable. Note: This is in seconds.'],
  2859.                     type = 'range',
  2860.                     min = 0, max = 3600, step = 60,
  2861.                 },                 
  2862.             },
  2863.         }, 
  2864.         debuffs = {
  2865.             order = 12,
  2866.             type = 'group',
  2867.             name = L['Debuffs'],
  2868.             get = function(info) return E.db.unitframe.units['focustarget']['debuffs'][ info[#info] ] end,
  2869.             set = function(info, value) E.db.unitframe.units['focustarget']['debuffs'][ info[#info] ] = value; UF:CreateAndUpdateUF('focustarget') end,
  2870.             args = {
  2871.                 enable = {
  2872.                     type = 'toggle',
  2873.                     order = 1,
  2874.                     name = L['Enable'],
  2875.                 },
  2876.                 perrow = {
  2877.                     type = 'range',
  2878.                     order = 2,
  2879.                     name = L['Per Row'],
  2880.                     min = 1, max = 20, step = 1,
  2881.                 },
  2882.                 numrows = {
  2883.                     type = 'range',
  2884.                     order = 3,
  2885.                     name = L['Num Rows'],
  2886.                     min = 1, max = 4, step = 1,                
  2887.                 },
  2888.                 ['growth-x'] = {
  2889.                     type = 'select',
  2890.                     order = 4,
  2891.                     name = L['X-Growth'],
  2892.                     desc = L['Growth direction of the buffs'],
  2893.                     values = {
  2894.                         ['LEFT'] = L['Left'],
  2895.                         ['RIGHT'] = L["Right"],
  2896.                     },
  2897.                 },
  2898.                 ['growth-y'] = {
  2899.                     type = 'select',
  2900.                     order = 5,
  2901.                     name = L['Y-Growth'],
  2902.                     desc = L['Growth direction of the buffs'],
  2903.                     values = {
  2904.                         ['UP'] = L['Up'],
  2905.                         ['DOWN'] = L["Down"],
  2906.                     },
  2907.                 }, 
  2908.                 initialAnchor = {
  2909.                     type = 'select',
  2910.                     order = 6,
  2911.                     name = L['Initial Anchor'],
  2912.                     desc = L['The initial anchor point of the buffs on the frame'],
  2913.                     values = auraAnchors,
  2914.                 }, 
  2915.                 attachTo = {
  2916.                     type = 'select',
  2917.                     order = 7,
  2918.                     name = L['Attach To'],
  2919.                     desc = L['What to attach the buff anchor frame to.'],
  2920.                     values = {
  2921.                         ['FRAME'] = L['Frame'],
  2922.                         ['BUFFS'] = L['Buffs'],
  2923.                     },
  2924.                 },
  2925.                 anchorPoint = {
  2926.                     type = 'select',
  2927.                     order = 8,
  2928.                     name = L['Anchor Point'],
  2929.                     desc = L['What point to anchor to the frame you set to attach to.'],
  2930.                     values = auraAnchors,              
  2931.                 },
  2932.                 fontsize = {
  2933.                     order = 6,
  2934.                     name = L["Font Size"],
  2935.                     type = "range",
  2936.                     min = 6, max = 22, step = 1,
  2937.                 }, 
  2938.                 useFilter = {
  2939.                     order = 7,
  2940.                     name = L['Use Filter'],
  2941.                     desc = L['Select a filter to use.'],
  2942.                     type = 'select',
  2943.                     values = function()
  2944.                         filters = {}
  2945.                         filters[''] = ''
  2946.                         for filter in pairs(E.global.unitframe['aurafilters']) do
  2947.                             filters[filter] = filter
  2948.                         end
  2949.                         return filters
  2950.                     end,
  2951.                 },
  2952.                 showPlayerOnly = {
  2953.                     order = 8,
  2954.                     type = 'toggle',
  2955.                     name = L['Personal Auras'],
  2956.                     desc = L['If set only auras belonging to yourself in addition to any aura that passes the set filter may be shown.'],
  2957.                 },
  2958.                 durationLimit = {
  2959.                     order = 9,
  2960.                     name = L['Duration Limit'],
  2961.                     desc = L['The aura must be below this duration for the buff to show, set to 0 to disable. Note: This is in seconds.'],
  2962.                     type = 'range',
  2963.                     min = 0, max = 3600, step = 60,
  2964.                 },                 
  2965.             },
  2966.         }, 
  2967.     },
  2968. }
  2969.  
  2970. --Pet
  2971. E.Options.args.unitframe.args.pet = {
  2972.     name = L['Pet Frame'],
  2973.     type = 'group',
  2974.     order = 800,
  2975.     childGroups = "select",
  2976.     get = function(info) return E.db.unitframe.units['pet'][ info[#info] ] end,
  2977.     set = function(info, value) E.db.unitframe.units['pet'][ info[#info] ] = value; UF:CreateAndUpdateUF('pet') end,
  2978.     args = {
  2979.         enable = {
  2980.             type = 'toggle',
  2981.             order = 1,
  2982.             name = L['Enable'],
  2983.         },
  2984.         copyFrom = {
  2985.             type = 'select',
  2986.             order = 2,
  2987.             name = L['Copy From'],
  2988.             desc = L['Select a unit to copy settings from.'],
  2989.             values = UF['handledunits'],
  2990.             set = function(info, value) UF:MergeUnitSettings(value, 'pet'); end,
  2991.         },
  2992.         resetSettings = {
  2993.             type = 'execute',
  2994.             order = 3,
  2995.             name = L['Restore Defaults'],
  2996.             func = function(info, value) UF:ResetUnitSettings('pet') end,
  2997.         },     
  2998.         width = {
  2999.             order = 4,
  3000.             name = L['Width'],
  3001.             type = 'range',
  3002.             min = 50, max = 500, step = 1,
  3003.         },
  3004.         height = {
  3005.             order = 5,
  3006.             name = L['Height'],
  3007.             type = 'range',
  3008.             min = 10, max = 250, step = 1,
  3009.         }, 
  3010.         healPrediction = {
  3011.             order = 6,
  3012.             name = L['Heal Prediction'],
  3013.             desc = L['Show a incomming heal prediction bar on the unitframe. Also display a slightly different colored bar for incoming overheals.'],
  3014.             type = 'toggle',
  3015.         },     
  3016.         health = {
  3017.             order = 100,
  3018.             type = 'group',
  3019.             name = L['Health'],
  3020.             get = function(info) return E.db.unitframe.units['pet']['health'][ info[#info] ] end,
  3021.             set = function(info, value) E.db.unitframe.units['pet']['health'][ info[#info] ] = value; UF:CreateAndUpdateUF('pet') end,
  3022.             args = {
  3023.                 text = {
  3024.                     type = 'toggle',
  3025.                     order = 1,
  3026.                     name = L['Text'],
  3027.                 },
  3028.                 text_format = {
  3029.                     type = 'select',
  3030.                     order = 2,
  3031.                     name = L['Text Format'],
  3032.                     values = textFormats,
  3033.                 },
  3034.                 position = {
  3035.                     type = 'select',
  3036.                     order = 3,
  3037.                     name = L['Position'],
  3038.                     values = positionValues,
  3039.                 },                 
  3040.             },
  3041.         },
  3042.         power = {
  3043.             order = 200,
  3044.             type = 'group',
  3045.             name = L['Power'],
  3046.             get = function(info) return E.db.unitframe.units['pet']['power'][ info[#info] ] end,
  3047.             set = function(info, value) E.db.unitframe.units['pet']['power'][ info[#info] ] = value; UF:CreateAndUpdateUF('pet') end,
  3048.             args = {
  3049.                 enable = {
  3050.                     type = 'toggle',
  3051.                     order = 1,
  3052.                     name = L['Enable'],
  3053.                 },         
  3054.                 text = {
  3055.                     type = 'toggle',
  3056.                     order = 2,
  3057.                     name = L['Text'],
  3058.                 },
  3059.                 text_format = {
  3060.                     type = 'select',
  3061.                     order = 3,
  3062.                     name = L['Text Format'],
  3063.                     values = textFormats,
  3064.                 },
  3065.                 width = {
  3066.                     type = 'select',
  3067.                     order = 4,
  3068.                     name = L['Width'],
  3069.                     values = fillValues,
  3070.                 },
  3071.                 height = {
  3072.                     type = 'range',
  3073.                     name = L['Height'],
  3074.                     order = 5,
  3075.                     min = 2, max = 50, step = 1,
  3076.                 },
  3077.                 offset = {
  3078.                     type = 'range',
  3079.                     name = L['Offset'],
  3080.                     desc = L['Offset of the powerbar to the healthbar, set to 0 to disable.'],
  3081.                     order = 6,
  3082.                     min = 0, max = 20, step = 1,
  3083.                 },
  3084.                 hideonnpc = {
  3085.                     type = 'toggle',
  3086.                     order = 7,
  3087.                     name = L['Text Toggle On NPC'],
  3088.                     desc = L['Power text will be hidden on NPC targets, in addition the name text will be repositioned to the power texts anchor point.'],
  3089.                 },
  3090.                 position = {
  3091.                     type = 'select',
  3092.                     order = 8,
  3093.                     name = L['Position'],
  3094.                     values = positionValues,
  3095.                 },                 
  3096.             },
  3097.         }, 
  3098.         name = {
  3099.             order = 300,
  3100.             type = 'group',
  3101.             name = L['Name'],
  3102.             get = function(info) return E.db.unitframe.units['pet']['name'][ info[#info] ] end,
  3103.             set = function(info, value) E.db.unitframe.units['pet']['name'][ info[#info] ] = value; UF:CreateAndUpdateUF('pet') end,
  3104.             args = {
  3105.                 enable = {
  3106.                     type = 'toggle',
  3107.                     order = 1,
  3108.                     name = L['Enable'],
  3109.                 },
  3110.                 position = {
  3111.                     type = 'select',
  3112.                     order = 2,
  3113.                     name = L['Position'],
  3114.                     values = positionValues,
  3115.                 },                 
  3116.             },
  3117.         },
  3118.         buffs = {
  3119.             order = 400,
  3120.             type = 'group',
  3121.             name = L['Buffs'],
  3122.             get = function(info) return E.db.unitframe.units['pet']['buffs'][ info[#info] ] end,
  3123.             set = function(info, value) E.db.unitframe.units['pet']['buffs'][ info[#info] ] = value; UF:CreateAndUpdateUF('pet') end,
  3124.             args = {
  3125.                 enable = {
  3126.                     type = 'toggle',
  3127.                     order = 1,
  3128.                     name = L['Enable'],
  3129.                 },
  3130.                 perrow = {
  3131.                     type = 'range',
  3132.                     order = 2,
  3133.                     name = L['Per Row'],
  3134.                     min = 1, max = 20, step = 1,
  3135.                 },
  3136.                 numrows = {
  3137.                     type = 'range',
  3138.                     order = 3,
  3139.                     name = L['Num Rows'],
  3140.                     min = 1, max = 4, step = 1,                
  3141.                 },
  3142.                 ['growth-x'] = {
  3143.                     type = 'select',
  3144.                     order = 4,
  3145.                     name = L['X-Growth'],
  3146.                     desc = L['Growth direction of the buffs'],
  3147.                     values = {
  3148.                         ['LEFT'] = L['Left'],
  3149.                         ['RIGHT'] = L["Right"],
  3150.                     },
  3151.                 },
  3152.                 ['growth-y'] = {
  3153.                     type = 'select',
  3154.                     order = 5,
  3155.                     name = L['Y-Growth'],
  3156.                     desc = L['Growth direction of the buffs'],
  3157.                     values = {
  3158.                         ['UP'] = L['Up'],
  3159.                         ['DOWN'] = L["Down"],
  3160.                     },
  3161.                 }, 
  3162.                 initialAnchor = {
  3163.                     type = 'select',
  3164.                     order = 6,
  3165.                     name = L['Initial Anchor'],
  3166.                     desc = L['The initial anchor point of the buffs on the frame'],
  3167.                     values = auraAnchors,
  3168.                 }, 
  3169.                 attachTo = {
  3170.                     type = 'select',
  3171.                     order = 7,
  3172.                     name = L['Attach To'],
  3173.                     desc = L['What to attach the buff anchor frame to.'],
  3174.                     values = {
  3175.                         ['FRAME'] = L['Frame'],
  3176.                         ['DEBUFFS'] = L['Debuffs'],
  3177.                     },
  3178.                 },
  3179.                 anchorPoint = {
  3180.                     type = 'select',
  3181.                     order = 8,
  3182.                     name = L['Anchor Point'],
  3183.                     desc = L['What point to anchor to the frame you set to attach to.'],
  3184.                     values = auraAnchors,              
  3185.                 },
  3186.                 fontsize = {
  3187.                     order = 6,
  3188.                     name = L["Font Size"],
  3189.                     type = "range",
  3190.                     min = 6, max = 22, step = 1,
  3191.                 },             
  3192.                 useFilter = {
  3193.                     order = 7,
  3194.                     name = L['Use Filter'],
  3195.                     desc = L['Select a filter to use.'],
  3196.                     type = 'select',
  3197.                     values = function()
  3198.                         filters = {}
  3199.                         filters[''] = ''
  3200.                         for filter in pairs(E.global.unitframe['aurafilters']) do
  3201.                             filters[filter] = filter
  3202.                         end
  3203.                         return filters
  3204.                     end,
  3205.                 },     
  3206.                 showPlayerOnly = {
  3207.                     order = 8,
  3208.                     type = 'toggle',
  3209.                     name = L['Personal Auras'],
  3210.                     desc = L['If set only auras belonging to yourself in addition to any aura that passes the set filter may be shown.'],
  3211.                 }, 
  3212.                 durationLimit = {
  3213.                     order = 9,
  3214.                     name = L['Duration Limit'],
  3215.                     desc = L['The aura must be below this duration for the buff to show, set to 0 to disable. Note: This is in seconds.'],
  3216.                     type = 'range',
  3217.                     min = 0, max = 3600, step = 60,
  3218.                 },                 
  3219.             },
  3220.         }, 
  3221.         debuffs = {
  3222.             order = 500,
  3223.             type = 'group',
  3224.             name = L['Debuffs'],
  3225.             get = function(info) return E.db.unitframe.units['pet']['debuffs'][ info[#info] ] end,
  3226.             set = function(info, value) E.db.unitframe.units['pet']['debuffs'][ info[#info] ] = value; UF:CreateAndUpdateUF('pet') end,
  3227.             args = {
  3228.                 enable = {
  3229.                     type = 'toggle',
  3230.                     order = 1,
  3231.                     name = L['Enable'],
  3232.                 },
  3233.                 perrow = {
  3234.                     type = 'range',
  3235.                     order = 2,
  3236.                     name = L['Per Row'],
  3237.                     min = 1, max = 20, step = 1,
  3238.                 },
  3239.                 numrows = {
  3240.                     type = 'range',
  3241.                     order = 3,
  3242.                     name = L['Num Rows'],
  3243.                     min = 1, max = 4, step = 1,                
  3244.                 },
  3245.                 ['growth-x'] = {
  3246.                     type = 'select',
  3247.                     order = 4,
  3248.                     name = L['X-Growth'],
  3249.                     desc = L['Growth direction of the buffs'],
  3250.                     values = {
  3251.                         ['LEFT'] = L['Left'],
  3252.                         ['RIGHT'] = L["Right"],
  3253.                     },
  3254.                 },
  3255.                 ['growth-y'] = {
  3256.                     type = 'select',
  3257.                     order = 5,
  3258.                     name = L['Y-Growth'],
  3259.                     desc = L['Growth direction of the buffs'],
  3260.                     values = {
  3261.                         ['UP'] = L['Up'],
  3262.                         ['DOWN'] = L["Down"],
  3263.                     },
  3264.                 }, 
  3265.                 initialAnchor = {
  3266.                     type = 'select',
  3267.                     order = 6,
  3268.                     name = L['Initial Anchor'],
  3269.                     desc = L['The initial anchor point of the buffs on the frame'],
  3270.                     values = auraAnchors,
  3271.                 }, 
  3272.                 attachTo = {
  3273.                     type = 'select',
  3274.                     order = 7,
  3275.                     name = L['Attach To'],
  3276.                     desc = L['What to attach the buff anchor frame to.'],
  3277.                     values = {
  3278.                         ['FRAME'] = L['Frame'],
  3279.                         ['BUFFS'] = L['Buffs'],
  3280.                     },
  3281.                 },
  3282.                 anchorPoint = {
  3283.                     type = 'select',
  3284.                     order = 8,
  3285.                     name = L['Anchor Point'],
  3286.                     desc = L['What point to anchor to the frame you set to attach to.'],
  3287.                     values = auraAnchors,              
  3288.                 },
  3289.                 fontsize = {
  3290.                     order = 6,
  3291.                     name = L["Font Size"],
  3292.                     type = "range",
  3293.                     min = 6, max = 22, step = 1,
  3294.                 }, 
  3295.                 useFilter = {
  3296.                     order = 7,
  3297.                     name = L['Use Filter'],
  3298.                     desc = L['Select a filter to use.'],
  3299.                     type = 'select',
  3300.                     values = function()
  3301.                         filters = {}
  3302.                         filters[''] = ''
  3303.                         for filter in pairs(E.global.unitframe['aurafilters']) do
  3304.                             filters[filter] = filter
  3305.                         end
  3306.                         return filters
  3307.                     end,
  3308.                 },
  3309.                 showPlayerOnly = {
  3310.                     order = 8,
  3311.                     type = 'toggle',
  3312.                     name = L['Personal Auras'],
  3313.                     desc = L['If set only auras belonging to yourself in addition to any aura that passes the set filter may be shown.'],
  3314.                 },
  3315.                 durationLimit = {
  3316.                     order = 9,
  3317.                     name = L['Duration Limit'],
  3318.                     desc = L['The aura must be below this duration for the buff to show, set to 0 to disable. Note: This is in seconds.'],
  3319.                     type = 'range',
  3320.                     min = 0, max = 3600, step = 60,
  3321.                 },                 
  3322.             },
  3323.         }, 
  3324.     },
  3325. }
  3326.  
  3327. --Pet Target
  3328. E.Options.args.unitframe.args.pettarget = {
  3329.     name = L['PetTarget Frame'],
  3330.     type = 'group',
  3331.     order = 900,
  3332.     childGroups = "select",
  3333.     get = function(info) return E.db.unitframe.units['pettarget'][ info[#info] ] end,
  3334.     set = function(info, value) E.db.unitframe.units['pettarget'][ info[#info] ] = value; UF:CreateAndUpdateUF('pettarget') end,
  3335.     args = {
  3336.         enable = {
  3337.             type = 'toggle',
  3338.             order = 1,
  3339.             name = L['Enable'],
  3340.         },
  3341.         copyFrom = {
  3342.             type = 'select',
  3343.             order = 2,
  3344.             name = L['Copy From'],
  3345.             desc = L['Select a unit to copy settings from.'],
  3346.             values = UF['handledunits'],
  3347.             set = function(info, value) UF:MergeUnitSettings(value, 'pettarget'); end,
  3348.         },
  3349.         resetSettings = {
  3350.             type = 'execute',
  3351.             order = 3,
  3352.             name = L['Restore Defaults'],
  3353.             func = function(info, value) UF:ResetUnitSettings('pettarget') end,
  3354.         },     
  3355.         width = {
  3356.             order = 4,
  3357.             name = L['Width'],
  3358.             type = 'range',
  3359.             min = 50, max = 500, step = 1,
  3360.         },
  3361.         height = {
  3362.             order = 5,
  3363.             name = L['Height'],
  3364.             type = 'range',
  3365.             min = 10, max = 250, step = 1,
  3366.         }, 
  3367.         health = {
  3368.             order = 6,
  3369.             type = 'group',
  3370.             name = L['Health'],
  3371.             get = function(info) return E.db.unitframe.units['pettarget']['health'][ info[#info] ] end,
  3372.             set = function(info, value) E.db.unitframe.units['pettarget']['health'][ info[#info] ] = value; UF:CreateAndUpdateUF('pettarget') end,
  3373.             args = {
  3374.                 text = {
  3375.                     type = 'toggle',
  3376.                     order = 1,
  3377.                     name = L['Text'],
  3378.                 },
  3379.                 text_format = {
  3380.                     type = 'select',
  3381.                     order = 2,
  3382.                     name = L['Text Format'],
  3383.                     values = textFormats,
  3384.                 },
  3385.                 position = {
  3386.                     type = 'select',
  3387.                     order = 3,
  3388.                     name = L['Position'],
  3389.                     values = positionValues,
  3390.                 },                 
  3391.             },
  3392.         },
  3393.         power = {
  3394.             order = 7,
  3395.             type = 'group',
  3396.             name = L['Power'],
  3397.             get = function(info) return E.db.unitframe.units['pettarget']['power'][ info[#info] ] end,
  3398.             set = function(info, value) E.db.unitframe.units['pettarget']['power'][ info[#info] ] = value; UF:CreateAndUpdateUF('pettarget') end,
  3399.             args = {
  3400.                 enable = {
  3401.                     type = 'toggle',
  3402.                     order = 1,
  3403.                     name = L['Enable'],
  3404.                 },         
  3405.                 text = {
  3406.                     type = 'toggle',
  3407.                     order = 2,
  3408.                     name = L['Text'],
  3409.                 },
  3410.                 text_format = {
  3411.                     type = 'select',
  3412.                     order = 3,
  3413.                     name = L['Text Format'],
  3414.                     values = textFormats,
  3415.                 },
  3416.                 width = {
  3417.                     type = 'select',
  3418.                     order = 4,
  3419.                     name = L['Width'],
  3420.                     values = fillValues,
  3421.                 },
  3422.                 height = {
  3423.                     type = 'range',
  3424.                     name = L['Height'],
  3425.                     order = 5,
  3426.                     min = 2, max = 50, step = 1,
  3427.                 },
  3428.                 offset = {
  3429.                     type = 'range',
  3430.                     name = L['Offset'],
  3431.                     desc = L['Offset of the powerbar to the healthbar, set to 0 to disable.'],
  3432.                     order = 6,
  3433.                     min = 0, max = 20, step = 1,
  3434.                 },
  3435.                 hideonnpc = {
  3436.                     type = 'toggle',
  3437.                     order = 7,
  3438.                     name = L['Text Toggle On NPC'],
  3439.                     desc = L['Power text will be hidden on NPC targets, in addition the name text will be repositioned to the power texts anchor point.'],
  3440.                 },
  3441.                 position = {
  3442.                     type = 'select',
  3443.                     order = 8,
  3444.                     name = L['Position'],
  3445.                     values = positionValues,
  3446.                 },                 
  3447.             },
  3448.         }, 
  3449.         name = {
  3450.             order = 9,
  3451.             type = 'group',
  3452.             name = L['Name'],
  3453.             get = function(info) return E.db.unitframe.units['pettarget']['name'][ info[#info] ] end,
  3454.             set = function(info, value) E.db.unitframe.units['pettarget']['name'][ info[#info] ] = value; UF:CreateAndUpdateUF('pettarget') end,
  3455.             args = {
  3456.                 enable = {
  3457.                     type = 'toggle',
  3458.                     order = 1,
  3459.                     name = L['Enable'],
  3460.                 },
  3461.                 position = {
  3462.                     type = 'select',
  3463.                     order = 2,
  3464.                     name = L['Position'],
  3465.                     values = positionValues,
  3466.                 },                 
  3467.             },
  3468.         },
  3469.         buffs = {
  3470.             order = 11,
  3471.             type = 'group',
  3472.             name = L['Buffs'],
  3473.             get = function(info) return E.db.unitframe.units['pettarget']['buffs'][ info[#info] ] end,
  3474.             set = function(info, value) E.db.unitframe.units['pettarget']['buffs'][ info[#info] ] = value; UF:CreateAndUpdateUF('pettarget') end,
  3475.             args = {
  3476.                 enable = {
  3477.                     type = 'toggle',
  3478.                     order = 1,
  3479.                     name = L['Enable'],
  3480.                 },
  3481.                 perrow = {
  3482.                     type = 'range',
  3483.                     order = 2,
  3484.                     name = L['Per Row'],
  3485.                     min = 1, max = 20, step = 1,
  3486.                 },
  3487.                 numrows = {
  3488.                     type = 'range',
  3489.                     order = 3,
  3490.                     name = L['Num Rows'],
  3491.                     min = 1, max = 4, step = 1,                
  3492.                 },
  3493.                 ['growth-x'] = {
  3494.                     type = 'select',
  3495.                     order = 4,
  3496.                     name = L['X-Growth'],
  3497.                     desc = L['Growth direction of the buffs'],
  3498.                     values = {
  3499.                         ['LEFT'] = L['Left'],
  3500.                         ['RIGHT'] = L["Right"],
  3501.                     },
  3502.                 },
  3503.                 ['growth-y'] = {
  3504.                     type = 'select',
  3505.                     order = 5,
  3506.                     name = L['Y-Growth'],
  3507.                     desc = L['Growth direction of the buffs'],
  3508.                     values = {
  3509.                         ['UP'] = L['Up'],
  3510.                         ['DOWN'] = L["Down"],
  3511.                     },
  3512.                 }, 
  3513.                 initialAnchor = {
  3514.                     type = 'select',
  3515.                     order = 6,
  3516.                     name = L['Initial Anchor'],
  3517.                     desc = L['The initial anchor point of the buffs on the frame'],
  3518.                     values = auraAnchors,
  3519.                 }, 
  3520.                 attachTo = {
  3521.                     type = 'select',
  3522.                     order = 7,
  3523.                     name = L['Attach To'],
  3524.                     desc = L['What to attach the buff anchor frame to.'],
  3525.                     values = {
  3526.                         ['FRAME'] = L['Frame'],
  3527.                         ['DEBUFFS'] = L['Debuffs'],
  3528.                     },
  3529.                 },
  3530.                 anchorPoint = {
  3531.                     type = 'select',
  3532.                     order = 8,
  3533.                     name = L['Anchor Point'],
  3534.                     desc = L['What point to anchor to the frame you set to attach to.'],
  3535.                     values = auraAnchors,              
  3536.                 },
  3537.                 fontsize = {
  3538.                     order = 6,
  3539.                     name = L["Font Size"],
  3540.                     type = "range",
  3541.                     min = 6, max = 22, step = 1,
  3542.                 },             
  3543.                 useFilter = {
  3544.                     order = 7,
  3545.                     name = L['Use Filter'],
  3546.                     desc = L['Select a filter to use.'],
  3547.                     type = 'select',
  3548.                     values = function()
  3549.                         filters = {}
  3550.                         filters[''] = ''
  3551.                         for filter in pairs(E.global.unitframe['aurafilters']) do
  3552.                             filters[filter] = filter
  3553.                         end
  3554.                         return filters
  3555.                     end,
  3556.                 },     
  3557.                 showPlayerOnly = {
  3558.                     order = 8,
  3559.                     type = 'toggle',
  3560.                     name = L['Personal Auras'],
  3561.                     desc = L['If set only auras belonging to yourself in addition to any aura that passes the set filter may be shown.'],
  3562.                 }, 
  3563.                 durationLimit = {
  3564.                     order = 9,
  3565.                     name = L['Duration Limit'],
  3566.                     desc = L['The aura must be below this duration for the buff to show, set to 0 to disable. Note: This is in seconds.'],
  3567.                     type = 'range',
  3568.                     min = 0, max = 3600, step = 60,
  3569.                 },                 
  3570.             },
  3571.         }, 
  3572.         debuffs = {
  3573.             order = 12,
  3574.             type = 'group',
  3575.             name = L['Debuffs'],
  3576.             get = function(info) return E.db.unitframe.units['pettarget']['debuffs'][ info[#info] ] end,
  3577.             set = function(info, value) E.db.unitframe.units['pettarget']['debuffs'][ info[#info] ] = value; UF:CreateAndUpdateUF('pettarget') end,
  3578.             args = {
  3579.                 enable = {
  3580.                     type = 'toggle',
  3581.                     order = 1,
  3582.                     name = L['Enable'],
  3583.                 },
  3584.                 perrow = {
  3585.                     type = 'range',
  3586.                     order = 2,
  3587.                     name = L['Per Row'],
  3588.                     min = 1, max = 20, step = 1,
  3589.                 },
  3590.                 numrows = {
  3591.                     type = 'range',
  3592.                     order = 3,
  3593.                     name = L['Num Rows'],
  3594.                     min = 1, max = 4, step = 1,                
  3595.                 },
  3596.                 ['growth-x'] = {
  3597.                     type = 'select',
  3598.                     order = 4,
  3599.                     name = L['X-Growth'],
  3600.                     desc = L['Growth direction of the buffs'],
  3601.                     values = {
  3602.                         ['LEFT'] = L['Left'],
  3603.                         ['RIGHT'] = L["Right"],
  3604.                     },
  3605.                 },
  3606.                 ['growth-y'] = {
  3607.                     type = 'select',
  3608.                     order = 5,
  3609.                     name = L['Y-Growth'],
  3610.                     desc = L['Growth direction of the buffs'],
  3611.                     values = {
  3612.                         ['UP'] = L['Up'],
  3613.                         ['DOWN'] = L["Down"],
  3614.                     },
  3615.                 }, 
  3616.                 initialAnchor = {
  3617.                     type = 'select',
  3618.                     order = 6,
  3619.                     name = L['Initial Anchor'],
  3620.                     desc = L['The initial anchor point of the buffs on the frame'],
  3621.                     values = auraAnchors,
  3622.                 }, 
  3623.                 attachTo = {
  3624.                     type = 'select',
  3625.                     order = 7,
  3626.                     name = L['Attach To'],
  3627.                     desc = L['What to attach the buff anchor frame to.'],
  3628.                     values = {
  3629.                         ['FRAME'] = L['Frame'],
  3630.                         ['BUFFS'] = L['Buffs'],
  3631.                     },
  3632.                 },
  3633.                 anchorPoint = {
  3634.                     type = 'select',
  3635.                     order = 8,
  3636.                     name = L['Anchor Point'],
  3637.                     desc = L['What point to anchor to the frame you set to attach to.'],
  3638.                     values = auraAnchors,              
  3639.                 },
  3640.                 fontsize = {
  3641.                     order = 6,
  3642.                     name = L["Font Size"],
  3643.                     type = "range",
  3644.                     min = 6, max = 22, step = 1,
  3645.                 }, 
  3646.                 useFilter = {
  3647.                     order = 7,
  3648.                     name = L['Use Filter'],
  3649.                     desc = L['Select a filter to use.'],
  3650.                     type = 'select',
  3651.                     values = function()
  3652.                         filters = {}
  3653.                         filters[''] = ''
  3654.                         for filter in pairs(E.global.unitframe['aurafilters']) do
  3655.                             filters[filter] = filter
  3656.                         end
  3657.                         return filters
  3658.                     end,
  3659.                 },
  3660.                 showPlayerOnly = {
  3661.                     order = 8,
  3662.                     type = 'toggle',
  3663.                     name = L['Personal Auras'],
  3664.                     desc = L['If set only auras belonging to yourself in addition to any aura that passes the set filter may be shown.'],
  3665.                 },
  3666.                 durationLimit = {
  3667.                     order = 9,
  3668.                     name = L['Duration Limit'],
  3669.                     desc = L['The aura must be below this duration for the buff to show, set to 0 to disable. Note: This is in seconds.'],
  3670.                     type = 'range',
  3671.                     min = 0, max = 3600, step = 60,
  3672.                 },                 
  3673.             },
  3674.         }, 
  3675.     },
  3676. }
  3677.  
  3678. --Boss Frames
  3679. E.Options.args.unitframe.args.boss = {
  3680.     name = L['Boss Frames'],
  3681.     type = 'group',
  3682.     order = 1000,
  3683.     childGroups = "select",
  3684.     get = function(info) return E.db.unitframe.units['boss'][ info[#info] ] end,
  3685.     set = function(info, value) E.db.unitframe.units['boss'][ info[#info] ] = value; UF:CreateAndUpdateUFGroup('boss', MAX_BOSS_FRAMES) end,
  3686.     args = {
  3687.         enable = {
  3688.             type = 'toggle',
  3689.             order = 1,
  3690.             name = L['Enable'],
  3691.         },
  3692.         copyFrom = {
  3693.             type = 'select',
  3694.             order = 2,
  3695.             name = L['Copy From'],
  3696.             desc = L['Select a unit to copy settings from.'],
  3697.             values = {
  3698.                 ['boss'] = 'boss',
  3699.                 ['arena'] = 'arena',
  3700.             },
  3701.             set = function(info, value) UF:MergeUnitSettings(value, 'boss'); end,
  3702.         },
  3703.         resetSettings = {
  3704.             type = 'execute',
  3705.             order = 3,
  3706.             name = L['Restore Defaults'],
  3707.             func = function(info, value) UF:ResetUnitSettings('boss') end,
  3708.         },     
  3709.         width = {
  3710.             order = 4,
  3711.             name = L['Width'],
  3712.             type = 'range',
  3713.             min = 50, max = 500, step = 1,
  3714.             set = function(info, value)
  3715.                 if E.db.unitframe.units['boss'].castbar.width == E.db.unitframe.units['boss'][ info[#info] ] then
  3716.                     E.db.unitframe.units['boss'].castbar.width = value;
  3717.                 end
  3718.                
  3719.                 E.db.unitframe.units['boss'][ info[#info] ] = value;
  3720.                 UF:CreateAndUpdateUFGroup('boss', MAX_BOSS_FRAMES);
  3721.             end,           
  3722.         },
  3723.         height = {
  3724.             order = 5,
  3725.             name = L['Height'],
  3726.             type = 'range',
  3727.             min = 10, max = 250, step = 1,
  3728.         }, 
  3729.         growthDirection = {
  3730.             order = 6,
  3731.             name = L['Growth Direction'],
  3732.             type = 'select',
  3733.             values = {
  3734.                 ['UP'] = L['Up'],
  3735.                 ['DOWN'] = L['Down'],
  3736.             },
  3737.         },
  3738.         health = {
  3739.             order = 7,
  3740.             type = 'group',
  3741.             name = L['Health'],
  3742.             get = function(info) return E.db.unitframe.units['boss']['health'][ info[#info] ] end,
  3743.             set = function(info, value) E.db.unitframe.units['boss']['health'][ info[#info] ] = value; UF:CreateAndUpdateUFGroup('boss', MAX_BOSS_FRAMES) end,
  3744.             args = {
  3745.                 text = {
  3746.                     type = 'toggle',
  3747.                     order = 1,
  3748.                     name = L['Text'],
  3749.                 },
  3750.                 text_format = {
  3751.                     type = 'select',
  3752.                     order = 2,
  3753.                     name = L['Text Format'],
  3754.                     values = textFormats,
  3755.                 },
  3756.                 position = {
  3757.                     type = 'select',
  3758.                     order = 3,
  3759.                     name = L['Position'],
  3760.                     values = positionValues,
  3761.                 },                 
  3762.             },
  3763.         },
  3764.         power = {
  3765.             order = 8,
  3766.             type = 'group',
  3767.             name = L['Power'],
  3768.             get = function(info) return E.db.unitframe.units['boss']['power'][ info[#info] ] end,
  3769.             set = function(info, value) E.db.unitframe.units['boss']['power'][ info[#info] ] = value; UF:CreateAndUpdateUFGroup('boss', MAX_BOSS_FRAMES) end,
  3770.             args = {
  3771.                 enable = {
  3772.                     type = 'toggle',
  3773.                     order = 1,
  3774.                     name = L['Enable'],
  3775.                 },         
  3776.                 text = {
  3777.                     type = 'toggle',
  3778.                     order = 2,
  3779.                     name = L['Text'],
  3780.                 },
  3781.                 text_format = {
  3782.                     type = 'select',
  3783.                     order = 3,
  3784.                     name = L['Text Format'],
  3785.                     values = textFormats,
  3786.                 },
  3787.                 width = {
  3788.                     type = 'select',
  3789.                     order = 4,
  3790.                     name = L['Width'],
  3791.                     values = fillValues,
  3792.                 },
  3793.                 height = {
  3794.                     type = 'range',
  3795.                     name = L['Height'],
  3796.                     order = 5,
  3797.                     min = 2, max = 50, step = 1,
  3798.                 },
  3799.                 offset = {
  3800.                     type = 'range',
  3801.                     name = L['Offset'],
  3802.                     desc = L['Offset of the powerbar to the healthbar, set to 0 to disable.'],
  3803.                     order = 6,
  3804.                     min = 0, max = 20, step = 1,
  3805.                 },
  3806.                 hideonnpc = {
  3807.                     type = 'toggle',
  3808.                     order = 7,
  3809.                     name = L['Text Toggle On NPC'],
  3810.                     desc = L['Power text will be hidden on NPC targets, in addition the name text will be repositioned to the power texts anchor point.'],
  3811.                 },
  3812.                 position = {
  3813.                     type = 'select',
  3814.                     order = 8,
  3815.                     name = L['Position'],
  3816.                     values = positionValues,
  3817.                 },                 
  3818.             },
  3819.         }, 
  3820.         name = {
  3821.             order = 9,
  3822.             type = 'group',
  3823.             name = L['Name'],
  3824.             get = function(info) return E.db.unitframe.units['boss']['name'][ info[#info] ] end,
  3825.             set = function(info, value) E.db.unitframe.units['boss']['name'][ info[#info] ] = value; UF:CreateAndUpdateUFGroup('boss', MAX_BOSS_FRAMES) end,
  3826.             args = {
  3827.                 enable = {
  3828.                     type = 'toggle',
  3829.                     order = 1,
  3830.                     name = L['Enable'],
  3831.                 },
  3832.                 position = {
  3833.                     type = 'select',
  3834.                     order = 2,
  3835.                     name = L['Position'],
  3836.                     values = positionValues,
  3837.                 },                 
  3838.             },
  3839.         },
  3840.         portrait = {
  3841.             order = 10,
  3842.             type = 'group',
  3843.             name = L['Portrait'],
  3844.             get = function(info) return E.db.unitframe.units['boss']['portrait'][ info[#info] ] end,
  3845.             set = function(info, value) E.db.unitframe.units['boss']['portrait'][ info[#info] ] = value; UF:CreateAndUpdateUFGroup('boss', MAX_BOSS_FRAMES) end,
  3846.             args = {
  3847.                 enable = {
  3848.                     type = 'toggle',
  3849.                     order = 1,
  3850.                     name = L['Enable'],
  3851.                 },
  3852.                 width = {
  3853.                     type = 'range',
  3854.                     order = 2,
  3855.                     name = L['Width'],
  3856.                     min = 15, max = 150, step = 1,
  3857.                 },
  3858.                 overlay = {
  3859.                     type = 'toggle',
  3860.                     name = L['Overlay'],
  3861.                     desc = L['Overlay the healthbar'],
  3862.                     order = 3,
  3863.                 },
  3864.                 camDistanceScale = {
  3865.                     type = 'range',
  3866.                     name = L['Camera Distance Scale'],
  3867.                     desc = L['How far away the portrait is from the camera.'],
  3868.                     order = 4,
  3869.                     min = 0.01, max = 4, step = 0.01,
  3870.                 },             
  3871.             },
  3872.         }, 
  3873.         buffs = {
  3874.             order = 11,
  3875.             type = 'group',
  3876.             name = L['Buffs'],
  3877.             get = function(info) return E.db.unitframe.units['boss']['buffs'][ info[#info] ] end,
  3878.             set = function(info, value) E.db.unitframe.units['boss']['buffs'][ info[#info] ] = value; UF:CreateAndUpdateUFGroup('boss', MAX_BOSS_FRAMES) end,
  3879.             args = {
  3880.                 enable = {
  3881.                     type = 'toggle',
  3882.                     order = 1,
  3883.                     name = L['Enable'],
  3884.                 },
  3885.                 perrow = {
  3886.                     type = 'range',
  3887.                     order = 2,
  3888.                     name = L['Per Row'],
  3889.                     min = 1, max = 20, step = 1,
  3890.                 },
  3891.                 numrows = {
  3892.                     type = 'range',
  3893.                     order = 3,
  3894.                     name = L['Num Rows'],
  3895.                     min = 1, max = 4, step = 1,                
  3896.                 },
  3897.                 ['growth-x'] = {
  3898.                     type = 'select',
  3899.                     order = 4,
  3900.                     name = L['X-Growth'],
  3901.                     desc = L['Growth direction of the buffs'],
  3902.                     values = {
  3903.                         ['LEFT'] = L['Left'],
  3904.                         ['RIGHT'] = L["Right"],
  3905.                     },
  3906.                 },
  3907.                 ['growth-y'] = {
  3908.                     type = 'select',
  3909.                     order = 5,
  3910.                     name = L['Y-Growth'],
  3911.                     desc = L['Growth direction of the buffs'],
  3912.                     values = {
  3913.                         ['UP'] = L['Up'],
  3914.                         ['DOWN'] = L["Down"],
  3915.                     },
  3916.                 }, 
  3917.                 initialAnchor = {
  3918.                     type = 'select',
  3919.                     order = 6,
  3920.                     name = L['Initial Anchor'],
  3921.                     desc = L['The initial anchor point of the buffs on the frame'],
  3922.                     values = auraAnchors,
  3923.                 }, 
  3924.                 attachTo = {
  3925.                     type = 'select',
  3926.                     order = 7,
  3927.                     name = L['Attach To'],
  3928.                     desc = L['What to attach the buff anchor frame to.'],
  3929.                     values = {
  3930.                         ['FRAME'] = L['Frame'],
  3931.                         ['DEBUFFS'] = L['Debuffs'],
  3932.                     },
  3933.                 },
  3934.                 anchorPoint = {
  3935.                     type = 'select',
  3936.                     order = 8,
  3937.                     name = L['Anchor Point'],
  3938.                     desc = L['What point to anchor to the frame you set to attach to.'],
  3939.                     values = auraAnchors,              
  3940.                 },
  3941.                 fontsize = {
  3942.                     order = 6,
  3943.                     name = L["Font Size"],
  3944.                     type = "range",
  3945.                     min = 6, max = 22, step = 1,
  3946.                 },             
  3947.                 useFilter = {
  3948.                     order = 7,
  3949.                     name = L['Use Filter'],
  3950.                     desc = L['Select a filter to use.'],
  3951.                     type = 'select',
  3952.                     values = function()
  3953.                         filters = {}
  3954.                         filters[''] = ''
  3955.                         for filter in pairs(E.global.unitframe['aurafilters']) do
  3956.                             filters[filter] = filter
  3957.                         end
  3958.                         return filters
  3959.                     end,
  3960.                 },     
  3961.                 showPlayerOnly = {
  3962.                     order = 8,
  3963.                     type = 'toggle',
  3964.                     name = L['Personal Auras'],
  3965.                     desc = L['If set only auras belonging to yourself in addition to any aura that passes the set filter may be shown.'],
  3966.                 }, 
  3967.                 durationLimit = {
  3968.                     order = 9,
  3969.                     name = L['Duration Limit'],
  3970.                     desc = L['The aura must be below this duration for the buff to show, set to 0 to disable. Note: This is in seconds.'],
  3971.                     type = 'range',
  3972.                     min = 0, max = 3600, step = 60,
  3973.                 },                 
  3974.             },
  3975.         }, 
  3976.         debuffs = {
  3977.             order = 12,
  3978.             type = 'group',
  3979.             name = L['Debuffs'],
  3980.             get = function(info) return E.db.unitframe.units['boss']['debuffs'][ info[#info] ] end,
  3981.             set = function(info, value) E.db.unitframe.units['boss']['debuffs'][ info[#info] ] = value; UF:CreateAndUpdateUFGroup('boss', MAX_BOSS_FRAMES) end,
  3982.             args = {
  3983.                 enable = {
  3984.                     type = 'toggle',
  3985.                     order = 1,
  3986.                     name = L['Enable'],
  3987.                 },
  3988.                 perrow = {
  3989.                     type = 'range',
  3990.                     order = 2,
  3991.                     name = L['Per Row'],
  3992.                     min = 1, max = 20, step = 1,
  3993.                 },
  3994.                 numrows = {
  3995.                     type = 'range',
  3996.                     order = 3,
  3997.                     name = L['Num Rows'],
  3998.                     min = 1, max = 4, step = 1,                
  3999.                 },
  4000.                 ['growth-x'] = {
  4001.                     type = 'select',
  4002.                     order = 4,
  4003.                     name = L['X-Growth'],
  4004.                     desc = L['Growth direction of the buffs'],
  4005.                     values = {
  4006.                         ['LEFT'] = L['Left'],
  4007.                         ['RIGHT'] = L["Right"],
  4008.                     },
  4009.                 },
  4010.                 ['growth-y'] = {
  4011.                     type = 'select',
  4012.                     order = 5,
  4013.                     name = L['Y-Growth'],
  4014.                     desc = L['Growth direction of the buffs'],
  4015.                     values = {
  4016.                         ['UP'] = L['Up'],
  4017.                         ['DOWN'] = L["Down"],
  4018.                     },
  4019.                 }, 
  4020.                 initialAnchor = {
  4021.                     type = 'select',
  4022.                     order = 6,
  4023.                     name = L['Initial Anchor'],
  4024.                     desc = L['The initial anchor point of the buffs on the frame'],
  4025.                     values = auraAnchors,
  4026.                 }, 
  4027.                 attachTo = {
  4028.                     type = 'select',
  4029.                     order = 7,
  4030.                     name = L['Attach To'],
  4031.                     desc = L['What to attach the buff anchor frame to.'],
  4032.                     values = {
  4033.                         ['FRAME'] = L['Frame'],
  4034.                         ['BUFFS'] = L['Buffs'],
  4035.                     },
  4036.                 },
  4037.                 anchorPoint = {
  4038.                     type = 'select',
  4039.                     order = 8,
  4040.                     name = L['Anchor Point'],
  4041.                     desc = L['What point to anchor to the frame you set to attach to.'],
  4042.                     values = auraAnchors,              
  4043.                 },
  4044.                 fontsize = {
  4045.                     order = 6,
  4046.                     name = L["Font Size"],
  4047.                     type = "range",
  4048.                     min = 6, max = 22, step = 1,
  4049.                 }, 
  4050.                 useFilter = {
  4051.                     order = 7,
  4052.                     name = L['Use Filter'],
  4053.                     desc = L['Select a filter to use.'],
  4054.                     type = 'select',
  4055.                     values = function()
  4056.                         filters = {}
  4057.                         filters[''] = ''
  4058.                         for filter in pairs(E.global.unitframe['aurafilters']) do
  4059.                             filters[filter] = filter
  4060.                         end
  4061.                         return filters
  4062.                     end,
  4063.                 },
  4064.                 showPlayerOnly = {
  4065.                     order = 8,
  4066.                     type = 'toggle',
  4067.                     name = L['Personal Auras'],
  4068.                     desc = L['If set only auras belonging to yourself in addition to any aura that passes the set filter may be shown.'],
  4069.                 },
  4070.                 durationLimit = {
  4071.                     order = 9,
  4072.                     name = L['Duration Limit'],
  4073.                     desc = L['The aura must be below this duration for the buff to show, set to 0 to disable. Note: This is in seconds.'],
  4074.                     type = 'range',
  4075.                     min = 0, max = 3600, step = 60,
  4076.                 },                 
  4077.             },
  4078.         }, 
  4079.         castbar = {
  4080.             order = 13,
  4081.             type = 'group',
  4082.             name = L['Castbar'],
  4083.             get = function(info) return E.db.unitframe.units['boss']['castbar'][ info[#info] ] end,
  4084.             set = function(info, value) E.db.unitframe.units['boss']['castbar'][ info[#info] ] = value; UF:CreateAndUpdateUFGroup('boss', MAX_BOSS_FRAMES) end,
  4085.             args = {
  4086.                 enable = {
  4087.                     type = 'toggle',
  4088.                     order = 1,
  4089.                     name = L['Enable'],
  4090.                 }, 
  4091.                 matchsize = {
  4092.                     order = 2,
  4093.                     type = 'execute',
  4094.                     name = L['Match Frame Width'],
  4095.                     func = function() E.db.unitframe.units['boss']['castbar']['width'] = E.db.unitframe.units['boss']['width']; UF:CreateAndUpdateUFGroup('boss', MAX_BOSS_FRAMES) end,
  4096.                 },             
  4097.                 width = {
  4098.                     order = 3,
  4099.                     name = L['Width'],
  4100.                     type = 'range',
  4101.                     min = 50, max = 600, step = 1,
  4102.                 },
  4103.                 height = {
  4104.                     order = 4,
  4105.                     name = L['Height'],
  4106.                     type = 'range',
  4107.                     min = 10, max = 85, step = 1,
  4108.                 },     
  4109.                 icon = {
  4110.                     order = 5,
  4111.                     name = L['Icon'],
  4112.                     type = 'toggle',
  4113.                 },
  4114.                 color = {
  4115.                     order = 7,
  4116.                     type = 'color',
  4117.                     name = L['Color'],
  4118.                     get = function(info)
  4119.                         local t = E.db.unitframe.units['boss']['castbar'][ info[#info] ]
  4120.                         return t.r, t.g, t.b, t.a
  4121.                     end,
  4122.                     set = function(info, r, g, b)
  4123.                         E.db.general[ info[#info] ] = {}
  4124.                         local t = E.db.unitframe.units['boss']['castbar'][ info[#info] ]
  4125.                         t.r, t.g, t.b = r, g, b
  4126.                         UF:CreateAndUpdateUFGroup('boss', MAX_BOSS_FRAMES)
  4127.                     end,                                                   
  4128.                 },
  4129.                 interruptcolor = {
  4130.                     order = 8,
  4131.                     type = 'color',
  4132.                     name = L['Interrupt Color'],
  4133.                     get = function(info)
  4134.                         local t = E.db.unitframe.units['boss']['castbar'][ info[#info] ]
  4135.                         return t.r, t.g, t.b, t.a
  4136.                     end,
  4137.                     set = function(info, r, g, b)
  4138.                         E.db.general[ info[#info] ] = {}
  4139.                         local t = E.db.unitframe.units['boss']['castbar'][ info[#info] ]
  4140.                         t.r, t.g, t.b = r, g, b
  4141.                         UF:CreateAndUpdateUFGroup('boss', MAX_BOSS_FRAMES)
  4142.                     end,                   
  4143.                 },
  4144.                 format = {
  4145.                     order = 9,
  4146.                     type = 'select',
  4147.                     name = L['Format'],
  4148.                     values = {
  4149.                         ['CURRENTMAX'] = L['Current / Max'],
  4150.                         ['CURRENT'] = L['Current'],
  4151.                         ['REMAINING'] = L['Remaining'],
  4152.                     },
  4153.                 },     
  4154.                 spark = {
  4155.                     order = 10,
  4156.                     type = 'toggle',
  4157.                     name = L['Spark'],
  4158.                     desc = L['Display a spark texture at the end of the castbar statusbar to help show the differance between castbar and backdrop.'],
  4159.                 },             
  4160.             },
  4161.         }, 
  4162.     },
  4163. }
  4164.  
  4165. --Arena Frames
  4166. E.Options.args.unitframe.args.arena = {
  4167.     name = L['Arena Frames'],
  4168.     type = 'group',
  4169.     order = 1000,
  4170.     childGroups = "select",
  4171.     get = function(info) return E.db.unitframe.units['arena'][ info[#info] ] end,
  4172.     set = function(info, value) E.db.unitframe.units['arena'][ info[#info] ] = value; UF:CreateAndUpdateUFGroup('arena', 5) end,
  4173.     args = {
  4174.         enable = {
  4175.             type = 'toggle',
  4176.             order = 1,
  4177.             name = L['Enable'],
  4178.         },
  4179.         copyFrom = {
  4180.             type = 'select',
  4181.             order = 2,
  4182.             name = L['Copy From'],
  4183.             desc = L['Select a unit to copy settings from.'],
  4184.             values = {
  4185.                 ['boss'] = 'boss',
  4186.                 ['arena'] = 'arena',
  4187.             },
  4188.             set = function(info, value) UF:MergeUnitSettings(value, 'arena'); end,
  4189.         },
  4190.         resetSettings = {
  4191.             type = 'execute',
  4192.             order = 3,
  4193.             name = L['Restore Defaults'],
  4194.             func = function(info, value) UF:ResetUnitSettings('arena') end,
  4195.         },     
  4196.         width = {
  4197.             order = 4,
  4198.             name = L['Width'],
  4199.             type = 'range',
  4200.             min = 50, max = 500, step = 1,
  4201.             set = function(info, value)
  4202.                 if E.db.unitframe.units['arena'].castbar.width == E.db.unitframe.units['arena'][ info[#info] ] then
  4203.                     E.db.unitframe.units['arena'].castbar.width = value;
  4204.                 end
  4205.                
  4206.                 E.db.unitframe.units['arena'][ info[#info] ] = value;
  4207.                 UF:CreateAndUpdateUFGroup('arena', 5);
  4208.             end,           
  4209.         },
  4210.         height = {
  4211.             order = 5,
  4212.             name = L['Height'],
  4213.             type = 'range',
  4214.             min = 10, max = 250, step = 1,
  4215.         }, 
  4216.         growthDirection = {
  4217.             order = 6,
  4218.             name = L['Growth Direction'],
  4219.             type = 'select',
  4220.             values = {
  4221.                 ['UP'] = L['Up'],
  4222.                 ['DOWN'] = L['Down'],
  4223.             },
  4224.         },
  4225.         health = {
  4226.             order = 7,
  4227.             type = 'group',
  4228.             name = L['Health'],
  4229.             get = function(info) return E.db.unitframe.units['arena']['health'][ info[#info] ] end,
  4230.             set = function(info, value) E.db.unitframe.units['arena']['health'][ info[#info] ] = value; UF:CreateAndUpdateUFGroup('arena', 5) end,
  4231.             args = {
  4232.                 text = {
  4233.                     type = 'toggle',
  4234.                     order = 1,
  4235.                     name = L['Text'],
  4236.                 },
  4237.                 text_format = {
  4238.                     type = 'select',
  4239.                     order = 2,
  4240.                     name = L['Text Format'],
  4241.                     values = textFormats,
  4242.                 },
  4243.                 position = {
  4244.                     type = 'select',
  4245.                     order = 3,
  4246.                     name = L['Position'],
  4247.                     values = positionValues,
  4248.                 },                 
  4249.             },
  4250.         },
  4251.         power = {
  4252.             order = 8,
  4253.             type = 'group',
  4254.             name = L['Power'],
  4255.             get = function(info) return E.db.unitframe.units['arena']['power'][ info[#info] ] end,
  4256.             set = function(info, value) E.db.unitframe.units['arena']['power'][ info[#info] ] = value; UF:CreateAndUpdateUFGroup('arena', 5) end,
  4257.             args = {
  4258.                 enable = {
  4259.                     type = 'toggle',
  4260.                     order = 1,
  4261.                     name = L['Enable'],
  4262.                 },         
  4263.                 text = {
  4264.                     type = 'toggle',
  4265.                     order = 2,
  4266.                     name = L['Text'],
  4267.                 },
  4268.                 text_format = {
  4269.                     type = 'select',
  4270.                     order = 3,
  4271.                     name = L['Text Format'],
  4272.                     values = textFormats,
  4273.                 },
  4274.                 width = {
  4275.                     type = 'select',
  4276.                     order = 4,
  4277.                     name = L['Width'],
  4278.                     values = fillValues,
  4279.                 },
  4280.                 height = {
  4281.                     type = 'range',
  4282.                     name = L['Height'],
  4283.                     order = 5,
  4284.                     min = 2, max = 50, step = 1,
  4285.                 },
  4286.                 offset = {
  4287.                     type = 'range',
  4288.                     name = L['Offset'],
  4289.                     desc = L['Offset of the powerbar to the healthbar, set to 0 to disable.'],
  4290.                     order = 6,
  4291.                     min = 0, max = 20, step = 1,
  4292.                 },
  4293.                 hideonnpc = {
  4294.                     type = 'toggle',
  4295.                     order = 7,
  4296.                     name = L['Text Toggle On NPC'],
  4297.                     desc = L['Power text will be hidden on NPC targets, in addition the name text will be repositioned to the power texts anchor point.'],
  4298.                 },
  4299.                 position = {
  4300.                     type = 'select',
  4301.                     order = 8,
  4302.                     name = L['Position'],
  4303.                     values = positionValues,
  4304.                 },                 
  4305.             },
  4306.         }, 
  4307.         name = {
  4308.             order = 9,
  4309.             type = 'group',
  4310.             name = L['Name'],
  4311.             get = function(info) return E.db.unitframe.units['arena']['name'][ info[#info] ] end,
  4312.             set = function(info, value) E.db.unitframe.units['arena']['name'][ info[#info] ] = value; UF:CreateAndUpdateUFGroup('arena', 5) end,
  4313.             args = {
  4314.                 enable = {
  4315.                     type = 'toggle',
  4316.                     order = 1,
  4317.                     name = L['Enable'],
  4318.                 },
  4319.                 position = {
  4320.                     type = 'select',
  4321.                     order = 2,
  4322.                     name = L['Position'],
  4323.                     values = positionValues,
  4324.                 },                 
  4325.             },
  4326.         },
  4327.         buffs = {
  4328.             order = 11,
  4329.             type = 'group',
  4330.             name = L['Buffs'],
  4331.             get = function(info) return E.db.unitframe.units['arena']['buffs'][ info[#info] ] end,
  4332.             set = function(info, value) E.db.unitframe.units['arena']['buffs'][ info[#info] ] = value; UF:CreateAndUpdateUFGroup('arena', 5) end,
  4333.             args = {
  4334.                 enable = {
  4335.                     type = 'toggle',
  4336.                     order = 1,
  4337.                     name = L['Enable'],
  4338.                 },
  4339.                 perrow = {
  4340.                     type = 'range',
  4341.                     order = 2,
  4342.                     name = L['Per Row'],
  4343.                     min = 1, max = 20, step = 1,
  4344.                 },
  4345.                 numrows = {
  4346.                     type = 'range',
  4347.                     order = 3,
  4348.                     name = L['Num Rows'],
  4349.                     min = 1, max = 4, step = 1,                
  4350.                 },
  4351.                 ['growth-x'] = {
  4352.                     type = 'select',
  4353.                     order = 4,
  4354.                     name = L['X-Growth'],
  4355.                     desc = L['Growth direction of the buffs'],
  4356.                     values = {
  4357.                         ['LEFT'] = L['Left'],
  4358.                         ['RIGHT'] = L["Right"],
  4359.                     },
  4360.                 },
  4361.                 ['growth-y'] = {
  4362.                     type = 'select',
  4363.                     order = 5,
  4364.                     name = L['Y-Growth'],
  4365.                     desc = L['Growth direction of the buffs'],
  4366.                     values = {
  4367.                         ['UP'] = L['Up'],
  4368.                         ['DOWN'] = L["Down"],
  4369.                     },
  4370.                 }, 
  4371.                 initialAnchor = {
  4372.                     type = 'select',
  4373.                     order = 6,
  4374.                     name = L['Initial Anchor'],
  4375.                     desc = L['The initial anchor point of the buffs on the frame'],
  4376.                     values = auraAnchors,
  4377.                 }, 
  4378.                 attachTo = {
  4379.                     type = 'select',
  4380.                     order = 7,
  4381.                     name = L['Attach To'],
  4382.                     desc = L['What to attach the buff anchor frame to.'],
  4383.                     values = {
  4384.                         ['FRAME'] = L['Frame'],
  4385.                         ['DEBUFFS'] = L['Debuffs'],
  4386.                     },
  4387.                 },
  4388.                 anchorPoint = {
  4389.                     type = 'select',
  4390.                     order = 8,
  4391.                     name = L['Anchor Point'],
  4392.                     desc = L['What point to anchor to the frame you set to attach to.'],
  4393.                     values = auraAnchors,              
  4394.                 },
  4395.                 fontsize = {
  4396.                     order = 6,
  4397.                     name = L["Font Size"],
  4398.                     type = "range",
  4399.                     min = 6, max = 22, step = 1,
  4400.                 },             
  4401.                 useFilter = {
  4402.                     order = 7,
  4403.                     name = L['Use Filter'],
  4404.                     desc = L['Select a filter to use.'],
  4405.                     type = 'select',
  4406.                     values = function()
  4407.                         filters = {}
  4408.                         filters[''] = ''
  4409.                         for filter in pairs(E.global.unitframe['aurafilters']) do
  4410.                             filters[filter] = filter
  4411.                         end
  4412.                         return filters
  4413.                     end,
  4414.                 },     
  4415.                 showPlayerOnly = {
  4416.                     order = 8,
  4417.                     type = 'toggle',
  4418.                     name = L['Personal Auras'],
  4419.                     desc = L['If set only auras belonging to yourself in addition to any aura that passes the set filter may be shown.'],
  4420.                 }, 
  4421.                 durationLimit = {
  4422.                     order = 9,
  4423.                     name = L['Duration Limit'],
  4424.                     desc = L['The aura must be below this duration for the buff to show, set to 0 to disable. Note: This is in seconds.'],
  4425.                     type = 'range',
  4426.                     min = 0, max = 3600, step = 60,
  4427.                 },                 
  4428.             },
  4429.         }, 
  4430.         debuffs = {
  4431.             order = 12,
  4432.             type = 'group',
  4433.             name = L['Debuffs'],
  4434.             get = function(info) return E.db.unitframe.units['arena']['debuffs'][ info[#info] ] end,
  4435.             set = function(info, value) E.db.unitframe.units['arena']['debuffs'][ info[#info] ] = value; UF:CreateAndUpdateUFGroup('arena', 5) end,
  4436.             args = {
  4437.                 enable = {
  4438.                     type = 'toggle',
  4439.                     order = 1,
  4440.                     name = L['Enable'],
  4441.                 },
  4442.                 perrow = {
  4443.                     type = 'range',
  4444.                     order = 2,
  4445.                     name = L['Per Row'],
  4446.                     min = 1, max = 20, step = 1,
  4447.                 },
  4448.                 numrows = {
  4449.                     type = 'range',
  4450.                     order = 3,
  4451.                     name = L['Num Rows'],
  4452.                     min = 1, max = 4, step = 1,                
  4453.                 },
  4454.                 ['growth-x'] = {
  4455.                     type = 'select',
  4456.                     order = 4,
  4457.                     name = L['X-Growth'],
  4458.                     desc = L['Growth direction of the buffs'],
  4459.                     values = {
  4460.                         ['LEFT'] = L['Left'],
  4461.                         ['RIGHT'] = L["Right"],
  4462.                     },
  4463.                 },
  4464.                 ['growth-y'] = {
  4465.                     type = 'select',
  4466.                     order = 5,
  4467.                     name = L['Y-Growth'],
  4468.                     desc = L['Growth direction of the buffs'],
  4469.                     values = {
  4470.                         ['UP'] = L['Up'],
  4471.                         ['DOWN'] = L["Down"],
  4472.                     },
  4473.                 }, 
  4474.                 initialAnchor = {
  4475.                     type = 'select',
  4476.                     order = 6,
  4477.                     name = L['Initial Anchor'],
  4478.                     desc = L['The initial anchor point of the buffs on the frame'],
  4479.                     values = auraAnchors,
  4480.                 }, 
  4481.                 attachTo = {
  4482.                     type = 'select',
  4483.                     order = 7,
  4484.                     name = L['Attach To'],
  4485.                     desc = L['What to attach the buff anchor frame to.'],
  4486.                     values = {
  4487.                         ['FRAME'] = L['Frame'],
  4488.                         ['BUFFS'] = L['Buffs'],
  4489.                     },
  4490.                 },
  4491.                 anchorPoint = {
  4492.                     type = 'select',
  4493.                     order = 8,
  4494.                     name = L['Anchor Point'],
  4495.                     desc = L['What point to anchor to the frame you set to attach to.'],
  4496.                     values = auraAnchors,              
  4497.                 },
  4498.                 fontsize = {
  4499.                     order = 6,
  4500.                     name = L["Font Size"],
  4501.                     type = "range",
  4502.                     min = 6, max = 22, step = 1,
  4503.                 }, 
  4504.                 useFilter = {
  4505.                     order = 7,
  4506.                     name = L['Use Filter'],
  4507.                     desc = L['Select a filter to use.'],
  4508.                     type = 'select',
  4509.                     values = function()
  4510.                         filters = {}
  4511.                         filters[''] = ''
  4512.                         for filter in pairs(E.global.unitframe['aurafilters']) do
  4513.                             filters[filter] = filter
  4514.                         end
  4515.                         return filters
  4516.                     end,
  4517.                 },
  4518.                 showPlayerOnly = {
  4519.                     order = 8,
  4520.                     type = 'toggle',
  4521.                     name = L['Personal Auras'],
  4522.                     desc = L['If set only auras belonging to yourself in addition to any aura that passes the set filter may be shown.'],
  4523.                 },
  4524.                 durationLimit = {
  4525.                     order = 9,
  4526.                     name = L['Duration Limit'],
  4527.                     desc = L['The aura must be below this duration for the buff to show, set to 0 to disable. Note: This is in seconds.'],
  4528.                     type = 'range',
  4529.                     min = 0, max = 3600, step = 60,
  4530.                 },                 
  4531.             },
  4532.         }, 
  4533.         castbar = {
  4534.             order = 13,
  4535.             type = 'group',
  4536.             name = L['Castbar'],
  4537.             get = function(info) return E.db.unitframe.units['arena']['castbar'][ info[#info] ] end,
  4538.             set = function(info, value) E.db.unitframe.units['arena']['castbar'][ info[#info] ] = value; UF:CreateAndUpdateUFGroup('arena', 5) end,
  4539.             args = {
  4540.                 enable = {
  4541.                     type = 'toggle',
  4542.                     order = 1,
  4543.                     name = L['Enable'],
  4544.                 }, 
  4545.                 matchsize = {
  4546.                     order = 2,
  4547.                     type = 'execute',
  4548.                     name = L['Match Frame Width'],
  4549.                     func = function() E.db.unitframe.units['arena']['castbar']['width'] = E.db.unitframe.units['arena']['width']; UF:CreateAndUpdateUFGroup('arena', 5) end,
  4550.                 },             
  4551.                 width = {
  4552.                     order = 3,
  4553.                     name = L['Width'],
  4554.                     type = 'range',
  4555.                     min = 50, max = 600, step = 1,
  4556.                 },
  4557.                 height = {
  4558.                     order = 4,
  4559.                     name = L['Height'],
  4560.                     type = 'range',
  4561.                     min = 10, max = 85, step = 1,
  4562.                 },     
  4563.                 icon = {
  4564.                     order = 5,
  4565.                     name = L['Icon'],
  4566.                     type = 'toggle',
  4567.                 },
  4568.                 color = {
  4569.                     order = 7,
  4570.                     type = 'color',
  4571.                     name = L['Color'],
  4572.                     get = function(info)
  4573.                         local t = E.db.unitframe.units['arena']['castbar'][ info[#info] ]
  4574.                         return t.r, t.g, t.b, t.a
  4575.                     end,
  4576.                     set = function(info, r, g, b)
  4577.                         E.db.general[ info[#info] ] = {}
  4578.                         local t = E.db.unitframe.units['arena']['castbar'][ info[#info] ]
  4579.                         t.r, t.g, t.b = r, g, b
  4580.                         UF:CreateAndUpdateUFGroup('arena', 5)
  4581.                     end,                                                   
  4582.                 },
  4583.                 interruptcolor = {
  4584.                     order = 8,
  4585.                     type = 'color',
  4586.                     name = L['Interrupt Color'],
  4587.                     get = function(info)
  4588.                         local t = E.db.unitframe.units['arena']['castbar'][ info[#info] ]
  4589.                         return t.r, t.g, t.b, t.a
  4590.                     end,
  4591.                     set = function(info, r, g, b)
  4592.                         E.db.general[ info[#info] ] = {}
  4593.                         local t = E.db.unitframe.units['arena']['castbar'][ info[#info] ]
  4594.                         t.r, t.g, t.b = r, g, b
  4595.                         UF:CreateAndUpdateUFGroup('arena', 5)
  4596.                     end,                   
  4597.                 },
  4598.                 format = {
  4599.                     order = 9,
  4600.                     type = 'select',
  4601.                     name = L['Format'],
  4602.                     values = {
  4603.                         ['CURRENTMAX'] = L['Current / Max'],
  4604.                         ['CURRENT'] = L['Current'],
  4605.                         ['REMAINING'] = L['Remaining'],
  4606.                     },
  4607.                 }, 
  4608.                 spark = {
  4609.                     order = 10,
  4610.                     type = 'toggle',
  4611.                     name = L['Spark'],
  4612.                     desc = L['Display a spark texture at the end of the castbar statusbar to help show the differance between castbar and backdrop.'],
  4613.                 },             
  4614.             },
  4615.         }, 
  4616.     },
  4617. }
  4618.  
  4619. local groupPoints = {
  4620.     ['TOP'] = 'TOP',
  4621.     ['BOTTOM'] = 'BOTTOM',
  4622.     ['LEFT'] = 'LEFT',
  4623.     ['RIGHT'] = 'RIGHT',
  4624. }
  4625.  
  4626. --Party Frames
  4627. E.Options.args.unitframe.args.party = {
  4628.     name = L['Party Frames'],
  4629.     type = 'group',
  4630.     order = 1100,
  4631.     childGroups = "select",
  4632.     get = function(info) return E.db.unitframe.units['party'][ info[#info] ] end,
  4633.     set = function(info, value) E.db.unitframe.units['party'][ info[#info] ] = value; UF:CreateAndUpdateHeaderGroup('party') end,
  4634.     args = {
  4635.         enable = {
  4636.             type = 'toggle',
  4637.             order = 1,
  4638.             name = L['Enable'],
  4639.         },
  4640.         resetSettings = {
  4641.             type = 'execute',
  4642.             order = 2,
  4643.             name = L['Restore Defaults'],
  4644.             func = function(info, value) UF:ResetUnitSettings('party') end,
  4645.         },     
  4646.         general = {
  4647.             order = 5,
  4648.             type = 'group',
  4649.             name = L['General'],
  4650.             args = {
  4651.                 width = {
  4652.                     order = 2,
  4653.                     name = L['Width'],
  4654.                     type = 'range',
  4655.                     min = 50, max = 500, step = 1,
  4656.                 },         
  4657.                 height = {
  4658.                     order = 3,
  4659.                     name = L['Height'],
  4660.                     type = 'range',
  4661.                     min = 10, max = 250, step = 1,
  4662.                 }, 
  4663.                 point = {
  4664.                     order = 4,
  4665.                     type = 'select',
  4666.                     name = L['Group Point'],
  4667.                     desc = L['What each frame should attach itself to, example setting it to TOP every unit will attach its top to the last point bottom.'],
  4668.                     values = groupPoints,
  4669.                     set = function(info, value) E.db.unitframe.units['party'][ info[#info] ] = value; UF:CreateAndUpdateHeaderGroup('party'); end,
  4670.                 },
  4671.                 columnAnchorPoint = {
  4672.                     order = 5,
  4673.                     type = 'select',
  4674.                     name = L['Column Point'],
  4675.                     desc = L['The anchor point for each new column. A value of LEFT will cause the columns to grow to the right.'],
  4676.                     values = groupPoints,  
  4677.                     set = function(info, value) E.db.unitframe.units['party'][ info[#info] ] = value; UF:CreateAndUpdateHeaderGroup('party'); end,
  4678.                 },
  4679.                 maxColumns = {
  4680.                     order = 6,
  4681.                     type = 'range',
  4682.                     name = L['Max Columns'],
  4683.                     desc = L['The maximum number of columns that the header will create.'],
  4684.                     min = 1, max = 40, step = 1,
  4685.                 },
  4686.                 unitsPerColumn = {
  4687.                     order = 7,
  4688.                     type = 'range',
  4689.                     name = L['Units Per Column'],
  4690.                     desc = L['The maximum number of units that will be displayed in a single column.'],
  4691.                     min = 1, max = 40, step = 1,
  4692.                 },
  4693.                 columnSpacing = {
  4694.                     order = 8,
  4695.                     type = 'range',
  4696.                     name = L['Column Spacing'],
  4697.                     desc = L['The amount of space (in pixels) between the columns.'],
  4698.                     min = 3, max = 10, step = 1,
  4699.                 },     
  4700.                 xOffset = {
  4701.                     order = 9,
  4702.                     type = 'range',
  4703.                     name = L['xOffset'],
  4704.                     desc = L['An X offset (in pixels) to be used when anchoring new frames.'],
  4705.                     min = -15, max = 15, step = 1,     
  4706.                 },
  4707.                 yOffset = {
  4708.                     order = 10,
  4709.                     type = 'range',
  4710.                     name = L['yOffset'],
  4711.                     desc = L['An Y offset (in pixels) to be used when anchoring new frames.'],
  4712.                     min = -15, max = 15, step = 1,     
  4713.                 },     
  4714.                 showParty = {
  4715.                     order = 11,
  4716.                     type = 'toggle',
  4717.                     name = L['Show Party'],
  4718.                     desc = L['When true, the group header is shown when the player is in a party.'],
  4719.                 },
  4720.                 showRaid = {
  4721.                     order = 12,
  4722.                     type = 'toggle',
  4723.                     name = L['Show Raid'],
  4724.                     desc = L['When true, the group header is shown when the player is in a raid.'],
  4725.                 }, 
  4726.                 showSolo = {
  4727.                     order = 13,
  4728.                     type = 'toggle',
  4729.                     name = L['Show Solo'],
  4730.                     desc = L['When true, the header is shown when the player is not in any group.'],       
  4731.                 },
  4732.                 showPlayer = {
  4733.                     order = 14,
  4734.                     type = 'toggle',
  4735.                     name = L['Display Player'],
  4736.                     desc = L['When true, the header includes the player when not in a raid.'],         
  4737.                 },
  4738.                 healPrediction = {
  4739.                     order = 15,
  4740.                     name = L['Heal Prediction'],
  4741.                     desc = L['Show a incomming heal prediction bar on the unitframe. Also display a slightly different colored bar for incoming overheals.'],
  4742.                     type = 'toggle',
  4743.                 },     
  4744.                 groupBy = {
  4745.                     order = 16,
  4746.                     name = L['Group By'],
  4747.                     desc = L['Set the order that the group will sort.'],
  4748.                     type = 'select',       
  4749.                     values = {
  4750.                         ['CLASS'] = CLASS,
  4751.                         ['TANK'] = L["Tanks First"],
  4752.                         ['GROUP'] = GROUP,
  4753.                     },
  4754.                 },
  4755.                 visibility = {
  4756.                     order = 200,
  4757.                     type = 'input',
  4758.                     name = L['Visibility'],
  4759.                     desc = L['The following macro must be true in order for the group to be shown, in addition to any filter that may already be set.'],
  4760.                     width = 'full',
  4761.                 },             
  4762.             },
  4763.         },
  4764.         health = {
  4765.             order = 100,
  4766.             type = 'group',
  4767.             name = L['Health'],
  4768.             get = function(info) return E.db.unitframe.units['party']['health'][ info[#info] ] end,
  4769.             set = function(info, value) E.db.unitframe.units['party']['health'][ info[#info] ] = value; UF:CreateAndUpdateHeaderGroup('party'); end,
  4770.             args = {
  4771.                 text = {
  4772.                     type = 'toggle',
  4773.                     order = 1,
  4774.                     name = L['Text'],
  4775.                 },
  4776.                 text_format = {
  4777.                     type = 'select',
  4778.                     order = 2,
  4779.                     name = L['Text Format'],
  4780.                     values = textFormats,
  4781.                 },
  4782.                 position = {
  4783.                     type = 'select',
  4784.                     order = 3,
  4785.                     name = L['Position'],
  4786.                     values = positionValues,
  4787.                 }, 
  4788.                 frequentUpdates = {
  4789.                     type = 'toggle',
  4790.                     order = 4,
  4791.                     name = L['Frequent Updates'],
  4792.                     desc = L['Rapidly update the health, uses more memory and cpu. Only recommended for healing.'],
  4793.                 },
  4794.                 orientation = {
  4795.                     type = 'select',
  4796.                     order = 5,
  4797.                     name = L['Orientation'],
  4798.                     desc = L['Direction the health bar moves when gaining/losing health.'],
  4799.                     values = {
  4800.                         ['HORIZONTAL'] = L['Horizontal'],
  4801.                         ['VERTICAL'] = L['Vertical'],
  4802.                     },
  4803.                 },     
  4804.             },
  4805.         },
  4806.         power = {
  4807.             order = 200,
  4808.             type = 'group',
  4809.             name = L['Power'],
  4810.             get = function(info) return E.db.unitframe.units['party']['power'][ info[#info] ] end,
  4811.             set = function(info, value) E.db.unitframe.units['party']['power'][ info[#info] ] = value; UF:CreateAndUpdateHeaderGroup('party') end,
  4812.             args = {
  4813.                 enable = {
  4814.                     type = 'toggle',
  4815.                     order = 1,
  4816.                     name = L['Enable'],
  4817.                 },         
  4818.                 text = {
  4819.                     type = 'toggle',
  4820.                     order = 2,
  4821.                     name = L['Text'],
  4822.                 },
  4823.                 text_format = {
  4824.                     type = 'select',
  4825.                     order = 3,
  4826.                     name = L['Text Format'],
  4827.                     values = textFormats,
  4828.                 },
  4829.                 width = {
  4830.                     type = 'select',
  4831.                     order = 4,
  4832.                     name = L['Width'],
  4833.                     values = fillValues,
  4834.                 },
  4835.                 height = {
  4836.                     type = 'range',
  4837.                     name = L['Height'],
  4838.                     order = 5,
  4839.                     min = 2, max = 50, step = 1,
  4840.                 },
  4841.                 offset = {
  4842.                     type = 'range',
  4843.                     name = L['Offset'],
  4844.                     desc = L['Offset of the powerbar to the healthbar, set to 0 to disable.'],
  4845.                     order = 6,
  4846.                     min = 0, max = 20, step = 1,
  4847.                 },
  4848.                 hideonnpc = {
  4849.                     type = 'toggle',
  4850.                     order = 7,
  4851.                     name = L['Text Toggle On NPC'],
  4852.                     desc = L['Power text will be hidden on NPC targets, in addition the name text will be repositioned to the power texts anchor point.'],
  4853.                 },
  4854.                 position = {
  4855.                     type = 'select',
  4856.                     order = 8,
  4857.                     name = L['Position'],
  4858.                     values = positionValues,
  4859.                 },                 
  4860.             },
  4861.         }, 
  4862.         name = {
  4863.             order = 300,
  4864.             type = 'group',
  4865.             name = L['Name'],
  4866.             get = function(info) return E.db.unitframe.units['party']['name'][ info[#info] ] end,
  4867.             set = function(info, value) E.db.unitframe.units['party']['name'][ info[#info] ] = value; UF:CreateAndUpdateHeaderGroup('party') end,
  4868.             args = {
  4869.                 enable = {
  4870.                     type = 'toggle',
  4871.                     order = 1,
  4872.                     name = L['Enable'],
  4873.                 },
  4874.                 position = {
  4875.                     type = 'select',
  4876.                     order = 2,
  4877.                     name = L['Position'],
  4878.                     values = positionValues,
  4879.                 },         
  4880.                 length = {
  4881.                     type = 'select',
  4882.                     order = 3,
  4883.                     name = L['Length'],
  4884.                     values = lengthValues,             
  4885.                 },
  4886.             },
  4887.         },
  4888.         buffs = {
  4889.             order = 400,
  4890.             type = 'group',
  4891.             name = L['Buffs'],
  4892.             get = function(info) return E.db.unitframe.units['party']['buffs'][ info[#info] ] end,
  4893.             set = function(info, value) E.db.unitframe.units['party']['buffs'][ info[#info] ] = value; UF:CreateAndUpdateHeaderGroup('party') end,
  4894.             args = {
  4895.                 enable = {
  4896.                     type = 'toggle',
  4897.                     order = 1,
  4898.                     name = L['Enable'],
  4899.                 },
  4900.                 perrow = {
  4901.                     type = 'range',
  4902.                     order = 2,
  4903.                     name = L['Per Row'],
  4904.                     min = 1, max = 20, step = 1,
  4905.                 },
  4906.                 numrows = {
  4907.                     type = 'range',
  4908.                     order = 3,
  4909.                     name = L['Num Rows'],
  4910.                     min = 1, max = 4, step = 1,                
  4911.                 },
  4912.                 ['growth-x'] = {
  4913.                     type = 'select',
  4914.                     order = 4,
  4915.                     name = L['X-Growth'],
  4916.                     desc = L['Growth direction of the buffs'],
  4917.                     values = {
  4918.                         ['LEFT'] = L['Left'],
  4919.                         ['RIGHT'] = L["Right"],
  4920.                     },
  4921.                 },
  4922.                 ['growth-y'] = {
  4923.                     type = 'select',
  4924.                     order = 5,
  4925.                     name = L['Y-Growth'],
  4926.                     desc = L['Growth direction of the buffs'],
  4927.                     values = {
  4928.                         ['UP'] = L['Up'],
  4929.                         ['DOWN'] = L["Down"],
  4930.                     },
  4931.                 }, 
  4932.                 initialAnchor = {
  4933.                     type = 'select',
  4934.                     order = 6,
  4935.                     name = L['Initial Anchor'],
  4936.                     desc = L['The initial anchor point of the buffs on the frame'],
  4937.                     values = auraAnchors,
  4938.                 }, 
  4939.                 attachTo = {
  4940.                     type = 'select',
  4941.                     order = 7,
  4942.                     name = L['Attach To'],
  4943.                     desc = L['What to attach the buff anchor frame to.'],
  4944.                     values = {
  4945.                         ['FRAME'] = L['Frame'],
  4946.                         ['DEBUFFS'] = L['Debuffs'],
  4947.                     },
  4948.                 },
  4949.                 anchorPoint = {
  4950.                     type = 'select',
  4951.                     order = 8,
  4952.                     name = L['Anchor Point'],
  4953.                     desc = L['What point to anchor to the frame you set to attach to.'],
  4954.                     values = auraAnchors,              
  4955.                 },
  4956.                 fontsize = {
  4957.                     order = 6,
  4958.                     name = L["Font Size"],
  4959.                     type = "range",
  4960.                     min = 6, max = 22, step = 1,
  4961.                 },             
  4962.                 useFilter = {
  4963.                     order = 7,
  4964.                     name = L['Use Filter'],
  4965.                     desc = L['Select a filter to use.'],
  4966.                     type = 'select',
  4967.                     values = function()
  4968.                         filters = {}
  4969.                         filters[''] = ''
  4970.                         for filter in pairs(E.global.unitframe['aurafilters']) do
  4971.                             filters[filter] = filter
  4972.                         end
  4973.                         return filters
  4974.                     end,
  4975.                 },     
  4976.                 showPlayerOnly = {
  4977.                     order = 8,
  4978.                     type = 'toggle',
  4979.                     name = L['Personal Auras'],
  4980.                     desc = L['If set only auras belonging to yourself in addition to any aura that passes the set filter may be shown.'],
  4981.                 }, 
  4982.                 durationLimit = {
  4983.                     order = 9,
  4984.                     name = L['Duration Limit'],
  4985.                     desc = L['The aura must be below this duration for the buff to show, set to 0 to disable. Note: This is in seconds.'],
  4986.                     type = 'range',
  4987.                     min = 0, max = 3600, step = 60,
  4988.                 },                 
  4989.             },
  4990.         }, 
  4991.         debuffs = {
  4992.             order = 500,
  4993.             type = 'group',
  4994.             name = L['Debuffs'],
  4995.             get = function(info) return E.db.unitframe.units['party']['debuffs'][ info[#info] ] end,
  4996.             set = function(info, value) E.db.unitframe.units['party']['debuffs'][ info[#info] ] = value; UF:CreateAndUpdateHeaderGroup('party') end,
  4997.             args = {
  4998.                 enable = {
  4999.                     type = 'toggle',
  5000.                     order = 1,
  5001.                     name = L['Enable'],
  5002.                 },
  5003.                 perrow = {
  5004.                     type = 'range',
  5005.                     order = 2,
  5006.                     name = L['Per Row'],
  5007.                     min = 1, max = 20, step = 1,
  5008.                 },
  5009.                 numrows = {
  5010.                     type = 'range',
  5011.                     order = 3,
  5012.                     name = L['Num Rows'],
  5013.                     min = 1, max = 4, step = 1,                
  5014.                 },
  5015.                 ['growth-x'] = {
  5016.                     type = 'select',
  5017.                     order = 4,
  5018.                     name = L['X-Growth'],
  5019.                     desc = L['Growth direction of the buffs'],
  5020.                     values = {
  5021.                         ['LEFT'] = L['Left'],
  5022.                         ['RIGHT'] = L["Right"],
  5023.                     },
  5024.                 },
  5025.                 ['growth-y'] = {
  5026.                     type = 'select',
  5027.                     order = 5,
  5028.                     name = L['Y-Growth'],
  5029.                     desc = L['Growth direction of the buffs'],
  5030.                     values = {
  5031.                         ['UP'] = L['Up'],
  5032.                         ['DOWN'] = L["Down"],
  5033.                     },
  5034.                 }, 
  5035.                 initialAnchor = {
  5036.                     type = 'select',
  5037.                     order = 6,
  5038.                     name = L['Initial Anchor'],
  5039.                     desc = L['The initial anchor point of the buffs on the frame'],
  5040.                     values = auraAnchors,
  5041.                 }, 
  5042.                 attachTo = {
  5043.                     type = 'select',
  5044.                     order = 7,
  5045.                     name = L['Attach To'],
  5046.                     desc = L['What to attach the buff anchor frame to.'],
  5047.                     values = {
  5048.                         ['FRAME'] = L['Frame'],
  5049.                         ['BUFFS'] = L['Buffs'],
  5050.                     },
  5051.                 },
  5052.                 anchorPoint = {
  5053.                     type = 'select',
  5054.                     order = 8,
  5055.                     name = L['Anchor Point'],
  5056.                     desc = L['What point to anchor to the frame you set to attach to.'],
  5057.                     values = auraAnchors,              
  5058.                 },
  5059.                 fontsize = {
  5060.                     order = 6,
  5061.                     name = L["Font Size"],
  5062.                     type = "range",
  5063.                     min = 6, max = 22, step = 1,
  5064.                 }, 
  5065.                 useFilter = {
  5066.                     order = 7,
  5067.                     name = L['Use Filter'],
  5068.                     desc = L['Select a filter to use.'],
  5069.                     type = 'select',
  5070.                     values = function()
  5071.                         filters = {}
  5072.                         filters[''] = ''
  5073.                         for filter in pairs(E.global.unitframe['aurafilters']) do
  5074.                             filters[filter] = filter
  5075.                         end
  5076.                         return filters
  5077.                     end,
  5078.                 },
  5079.                 showPlayerOnly = {
  5080.                     order = 8,
  5081.                     type = 'toggle',
  5082.                     name = L['Personal Auras'],
  5083.                     desc = L['If set only auras belonging to yourself in addition to any aura that passes the set filter may be shown.'],
  5084.                 },
  5085.                 durationLimit = {
  5086.                     order = 9,
  5087.                     name = L['Duration Limit'],
  5088.                     desc = L['The aura must be below this duration for the buff to show, set to 0 to disable. Note: This is in seconds.'],
  5089.                     type = 'range',
  5090.                     min = 0, max = 3600, step = 60,
  5091.                 },                 
  5092.             },
  5093.         }, 
  5094.         buffIndicator = {
  5095.             order = 600,
  5096.             type = 'group',
  5097.             name = L['Buff Indicator'],
  5098.             get = function(info) return E.db.unitframe.units['party']['buffIndicator'][ info[#info] ] end,
  5099.             set = function(info, value) E.db.unitframe.units['party']['buffIndicator'][ info[#info] ] = value; UF:CreateAndUpdateHeaderGroup('party') end,
  5100.             args = {
  5101.                 enable = {
  5102.                     type = 'toggle',
  5103.                     name = L['Enable'],
  5104.                     order = 1,
  5105.                 },
  5106.                 colorIcons = {
  5107.                     type = 'toggle',
  5108.                     name = L['Color Icons'],
  5109.                     desc = L['Color the icon to their set color in the filters section, otherwise use the icon texture.'],
  5110.                     order = 2,                 
  5111.                 },
  5112.                 size = {
  5113.                     type = 'range',
  5114.                     name = L['Size'],
  5115.                     desc = L['Size of the indicator icon.'],
  5116.                     order = 3,
  5117.                     min = 4, max = 15, step = 1,
  5118.                 },
  5119.                 fontsize = {
  5120.                     type = 'range',
  5121.                     name = L['Font Size'],
  5122.                     order = 4,
  5123.                     min = 7, max = 22, step = 1,
  5124.                 },
  5125.             },
  5126.         },
  5127.         roleIcon = {
  5128.             order = 700,
  5129.             type = 'group',
  5130.             name = L['Role Icon'],
  5131.             get = function(info) return E.db.unitframe.units['party']['roleIcon'][ info[#info] ] end,
  5132.             set = function(info, value) E.db.unitframe.units['party']['roleIcon'][ info[#info] ] = value; UF:CreateAndUpdateHeaderGroup('party') end,  
  5133.             args = {
  5134.                 enable = {
  5135.                     type = 'toggle',
  5136.                     name = L['Enable'],
  5137.                     order = 1,
  5138.                 },
  5139.                 position = {
  5140.                     type = 'select',
  5141.                     order = 2,
  5142.                     name = L['Position'],
  5143.                     values = positionValues,
  5144.                 },                         
  5145.             },
  5146.         },
  5147.         petsGroup = {
  5148.             order = 800,
  5149.             type = 'group',
  5150.             name = L['Party Pets'],
  5151.             get = function(info) return E.db.unitframe.units['party']['petsGroup'][ info[#info] ] end,
  5152.             set = function(info, value) E.db.unitframe.units['party']['petsGroup'][ info[#info] ] = value; UF:CreateAndUpdateHeaderGroup('party') end, 
  5153.             args = {       
  5154.                 enable = {
  5155.                     type = 'toggle',
  5156.                     name = L['Enable'],
  5157.                     order = 1,
  5158.                 },
  5159.                 width = {
  5160.                     order = 2,
  5161.                     name = L['Width'],
  5162.                     type = 'range',
  5163.                     min = 10, max = 500, step = 1,
  5164.                 },         
  5165.                 height = {
  5166.                     order = 3,
  5167.                     name = L['Height'],
  5168.                     type = 'range',
  5169.                     min = 10, max = 250, step = 1,
  5170.                 }, 
  5171.                 initialAnchor = {
  5172.                     type = 'select',
  5173.                     order = 4,
  5174.                     name = L['Initial Anchor'],
  5175.                     values = petAnchors,
  5176.                 }, 
  5177.                 anchorPoint = {
  5178.                     type = 'select',
  5179.                     order = 5,
  5180.                     name = L['Anchor Point'],
  5181.                     desc = L['What point to anchor to the frame you set to attach to.'],
  5182.                     values = petAnchors,               
  5183.                 }, 
  5184.                 xOffset = {
  5185.                     order = 6,
  5186.                     type = 'range',
  5187.                     name = L['xOffset'],
  5188.                     desc = L['An X offset (in pixels) to be used when anchoring new frames.'],
  5189.                     min = -15, max = 15, step = 1,     
  5190.                 },
  5191.                 yOffset = {
  5192.                     order = 7,
  5193.                     type = 'range',
  5194.                     name = L['yOffset'],
  5195.                     desc = L['An Y offset (in pixels) to be used when anchoring new frames.'],
  5196.                     min = -15, max = 15, step = 1,     
  5197.                 },                 
  5198.             },
  5199.         },
  5200.         targetsGroup = {
  5201.             order = 900,
  5202.             type = 'group',
  5203.             name = L['Party Targets'],
  5204.             get = function(info) return E.db.unitframe.units['party']['targetsGroup'][ info[#info] ] end,
  5205.             set = function(info, value) E.db.unitframe.units['party']['targetsGroup'][ info[#info] ] = value; UF:CreateAndUpdateHeaderGroup('party') end,  
  5206.             args = {       
  5207.                 enable = {
  5208.                     type = 'toggle',
  5209.                     name = L['Enable'],
  5210.                     order = 1,
  5211.                 },
  5212.                 width = {
  5213.                     order = 2,
  5214.                     name = L['Width'],
  5215.                     type = 'range',
  5216.                     min = 10, max = 500, step = 1,
  5217.                 },         
  5218.                 height = {
  5219.                     order = 3,
  5220.                     name = L['Height'],
  5221.                     type = 'range',
  5222.                     min = 10, max = 250, step = 1,
  5223.                 }, 
  5224.                 initialAnchor = {
  5225.                     type = 'select',
  5226.                     order = 4,
  5227.                     name = L['Initial Anchor'],
  5228.                     values = petAnchors,
  5229.                 }, 
  5230.                 anchorPoint = {
  5231.                     type = 'select',
  5232.                     order = 5,
  5233.                     name = L['Anchor Point'],
  5234.                     desc = L['What point to anchor to the frame you set to attach to.'],
  5235.                     values = petAnchors,               
  5236.                 }, 
  5237.                 xOffset = {
  5238.                     order = 6,
  5239.                     type = 'range',
  5240.                     name = L['xOffset'],
  5241.                     desc = L['An X offset (in pixels) to be used when anchoring new frames.'],
  5242.                     min = -15, max = 15, step = 1,     
  5243.                 },
  5244.                 yOffset = {
  5245.                     order = 7,
  5246.                     type = 'range',
  5247.                     name = L['yOffset'],
  5248.                     desc = L['An Y offset (in pixels) to be used when anchoring new frames.'],
  5249.                     min = -15, max = 15, step = 1,     
  5250.                 },                 
  5251.             },
  5252.         },     
  5253.     },
  5254. }
  5255.  
  5256. --Raid625 Frames
  5257. E.Options.args.unitframe.args.raid625 = {
  5258.     name = L['Raid625 Frames'],
  5259.     type = 'group',
  5260.     order = 1100,
  5261.     childGroups = "select",
  5262.     get = function(info) return E.db.unitframe.units['raid625'][ info[#info] ] end,
  5263.     set = function(info, value) E.db.unitframe.units['raid625'][ info[#info] ] = value; UF:CreateAndUpdateHeaderGroup('raid625') end,
  5264.     args = {
  5265.         enable = {
  5266.             type = 'toggle',
  5267.             order = 1,
  5268.             name = L['Enable'],
  5269.         },
  5270.         resetSettings = {
  5271.             type = 'execute',
  5272.             order = 2,
  5273.             name = L['Restore Defaults'],
  5274.             func = function(info, value) UF:ResetUnitSettings('raid625') end,
  5275.         },         
  5276.         general = {
  5277.             order = 5,
  5278.             type = 'group',
  5279.             name = L['General'],
  5280.             args = {
  5281.                 width = {
  5282.                     order = 2,
  5283.                     name = L['Width'],
  5284.                     type = 'range',
  5285.                     min = 50, max = 500, step = 1,
  5286.                 },         
  5287.                 height = {
  5288.                     order = 3,
  5289.                     name = L['Height'],
  5290.                     type = 'range',
  5291.                     min = 10, max = 250, step = 1,
  5292.                 }, 
  5293.                 point = {
  5294.                     order = 4,
  5295.                     type = 'select',
  5296.                     name = L['Group Point'],
  5297.                     desc = L['What each frame should attach itself to, example setting it to TOP every unit will attach its top to the last point bottom.'],
  5298.                     values = groupPoints,
  5299.                     set = function(info, value) E.db.unitframe.units['raid625'][ info[#info] ] = value; UF:CreateAndUpdateHeaderGroup('raid625'); end,
  5300.                 },
  5301.                 columnAnchorPoint = {
  5302.                     order = 5,
  5303.                     type = 'select',
  5304.                     name = L['Column Point'],
  5305.                     desc = L['The anchor point for each new column. A value of LEFT will cause the columns to grow to the right.'],
  5306.                     values = groupPoints,  
  5307.                     set = function(info, value) E.db.unitframe.units['raid625'][ info[#info] ] = value; UF:CreateAndUpdateHeaderGroup('raid625'); end,
  5308.                 },
  5309.                 maxColumns = {
  5310.                     order = 6,
  5311.                     type = 'range',
  5312.                     name = L['Max Columns'],
  5313.                     desc = L['The maximum number of columns that the header will create.'],
  5314.                     min = 1, max = 40, step = 1,
  5315.                 },
  5316.                 unitsPerColumn = {
  5317.                     order = 7,
  5318.                     type = 'range',
  5319.                     name = L['Units Per Column'],
  5320.                     desc = L['The maximum number of units that will be displayed in a single column.'],
  5321.                     min = 1, max = 40, step = 1,
  5322.                 },
  5323.                 columnSpacing = {
  5324.                     order = 8,
  5325.                     type = 'range',
  5326.                     name = L['Column Spacing'],
  5327.                     desc = L['The amount of space (in pixels) between the columns.'],
  5328.                     min = 3, max = 10, step = 1,
  5329.                 },     
  5330.                 xOffset = {
  5331.                     order = 9,
  5332.                     type = 'range',
  5333.                     name = L['xOffset'],
  5334.                     desc = L['An X offset (in pixels) to be used when anchoring new frames.'],
  5335.                     min = -15, max = 15, step = 1,     
  5336.                 },
  5337.                 yOffset = {
  5338.                     order = 10,
  5339.                     type = 'range',
  5340.                     name = L['yOffset'],
  5341.                     desc = L['An Y offset (in pixels) to be used when anchoring new frames.'],
  5342.                     min = -15, max = 15, step = 1,     
  5343.                 },     
  5344.                 showParty = {
  5345.                     order = 11,
  5346.                     type = 'toggle',
  5347.                     name = L['Show Party'],
  5348.                     desc = L['When true, the group header is shown when the player is in a party.'],
  5349.                 },
  5350.                 showRaid = {
  5351.                     order = 12,
  5352.                     type = 'toggle',
  5353.                     name = L['Show Raid'],
  5354.                     desc = L['When true, the group header is shown when the player is in a raid.'],
  5355.                 }, 
  5356.                 showSolo = {
  5357.                     order = 13,
  5358.                     type = 'toggle',
  5359.                     name = L['Show Solo'],
  5360.                     desc = L['When true, the header is shown when the player is not in any group.'],       
  5361.                 },
  5362.                 showPlayer = {
  5363.                     order = 14,
  5364.                     type = 'toggle',
  5365.                     name = L['Display Player'],
  5366.                     desc = L['When true, the header includes the player when not in a raid.'],         
  5367.                 },
  5368.                 healPrediction = {
  5369.                     order = 15,
  5370.                     name = L['Heal Prediction'],
  5371.                     desc = L['Show a incomming heal prediction bar on the unitframe. Also display a slightly different colored bar for incoming overheals.'],
  5372.                     type = 'toggle',
  5373.                 }, 
  5374.                 groupBy = {
  5375.                     order = 16,
  5376.                     name = L['Group By'],
  5377.                     desc = L['Set the order that the group will sort.'],
  5378.                     type = 'select',       
  5379.                     values = {
  5380.                         ['CLASS'] = CLASS,
  5381.                         ['TANK'] = L["Tanks First"],
  5382.                         ['GROUP'] = GROUP,
  5383.                     },
  5384.                 },         
  5385.                 visibility = {
  5386.                     order = 200,
  5387.                     type = 'input',
  5388.                     name = L['Visibility'],
  5389.                     desc = L['The following macro must be true in order for the group to be shown, in addition to any filter that may already be set.'],
  5390.                     width = 'full',
  5391.                 },                 
  5392.             },
  5393.         },
  5394.         health = {
  5395.             order = 100,
  5396.             type = 'group',
  5397.             name = L['Health'],
  5398.             get = function(info) return E.db.unitframe.units['raid625']['health'][ info[#info] ] end,
  5399.             set = function(info, value) E.db.unitframe.units['raid625']['health'][ info[#info] ] = value; UF:CreateAndUpdateHeaderGroup('raid625'); end,
  5400.             args = {
  5401.                 text = {
  5402.                     type = 'toggle',
  5403.                     order = 1,
  5404.                     name = L['Text'],
  5405.                 },
  5406.                 text_format = {
  5407.                     type = 'select',
  5408.                     order = 2,
  5409.                     name = L['Text Format'],
  5410.                     values = textFormats,
  5411.                 },
  5412.                 position = {
  5413.                     type = 'select',
  5414.                     order = 3,
  5415.                     name = L['Position'],
  5416.                     values = positionValues,
  5417.                 },                 
  5418.                 frequentUpdates = {
  5419.                     type = 'toggle',
  5420.                     order = 4,
  5421.                     name = L['Frequent Updates'],
  5422.                     desc = L['Rapidly update the health, uses more memory and cpu. Only recommended for healing.'],
  5423.                 },
  5424.                 orientation = {
  5425.                     type = 'select',
  5426.                     order = 5,
  5427.                     name = L['Orientation'],
  5428.                     desc = L['Direction the health bar moves when gaining/losing health.'],
  5429.                     values = {
  5430.                         ['HORIZONTAL'] = L['Horizontal'],
  5431.                         ['VERTICAL'] = L['Vertical'],
  5432.                     },
  5433.                 }, 
  5434.             },
  5435.         },
  5436.         power = {
  5437.             order = 200,
  5438.             type = 'group',
  5439.             name = L['Power'],
  5440.             get = function(info) return E.db.unitframe.units['raid625']['power'][ info[#info] ] end,
  5441.             set = function(info, value) E.db.unitframe.units['raid625']['power'][ info[#info] ] = value; UF:CreateAndUpdateHeaderGroup('raid625') end,
  5442.             args = {
  5443.                 enable = {
  5444.                     type = 'toggle',
  5445.                     order = 1,
  5446.                     name = L['Enable'],
  5447.                 },         
  5448.                 text = {
  5449.                     type = 'toggle',
  5450.                     order = 2,
  5451.                     name = L['Text'],
  5452.                 },
  5453.                 text_format = {
  5454.                     type = 'select',
  5455.                     order = 3,
  5456.                     name = L['Text Format'],
  5457.                     values = textFormats,
  5458.                 },
  5459.                 width = {
  5460.                     type = 'select',
  5461.                     order = 4,
  5462.                     name = L['Width'],
  5463.                     values = fillValues,
  5464.                 },
  5465.                 height = {
  5466.                     type = 'range',
  5467.                     name = L['Height'],
  5468.                     order = 5,
  5469.                     min = 2, max = 50, step = 1,
  5470.                 },
  5471.                 offset = {
  5472.                     type = 'range',
  5473.                     name = L['Offset'],
  5474.                     desc = L['Offset of the powerbar to the healthbar, set to 0 to disable.'],
  5475.                     order = 6,
  5476.                     min = 0, max = 20, step = 1,
  5477.                 },
  5478.                 hideonnpc = {
  5479.                     type = 'toggle',
  5480.                     order = 7,
  5481.                     name = L['Text Toggle On NPC'],
  5482.                     desc = L['Power text will be hidden on NPC targets, in addition the name text will be repositioned to the power texts anchor point.'],
  5483.                 },
  5484.                 position = {
  5485.                     type = 'select',
  5486.                     order = 8,
  5487.                     name = L['Position'],
  5488.                     values = positionValues,
  5489.                 },                 
  5490.             },
  5491.         }, 
  5492.         name = {
  5493.             order = 300,
  5494.             type = 'group',
  5495.             name = L['Name'],
  5496.             get = function(info) return E.db.unitframe.units['raid625']['name'][ info[#info] ] end,
  5497.             set = function(info, value) E.db.unitframe.units['raid625']['name'][ info[#info] ] = value; UF:CreateAndUpdateHeaderGroup('raid625') end,
  5498.             args = {
  5499.                 enable = {
  5500.                     type = 'toggle',
  5501.                     order = 1,
  5502.                     name = L['Enable'],
  5503.                 },
  5504.                 position = {
  5505.                     type = 'select',
  5506.                     order = 2,
  5507.                     name = L['Position'],
  5508.                     values = positionValues,
  5509.                 },     
  5510.                 length = {
  5511.                     type = 'select',
  5512.                     order = 3,
  5513.                     name = L['Length'],
  5514.                     values = lengthValues,             
  5515.                 },             
  5516.             },
  5517.         },
  5518.         buffs = {
  5519.             order = 400,
  5520.             type = 'group',
  5521.             name = L['Buffs'],
  5522.             get = function(info) return E.db.unitframe.units['raid625']['buffs'][ info[#info] ] end,
  5523.             set = function(info, value) E.db.unitframe.units['raid625']['buffs'][ info[#info] ] = value; UF:CreateAndUpdateHeaderGroup('raid625') end,
  5524.             args = {
  5525.                 enable = {
  5526.                     type = 'toggle',
  5527.                     order = 1,
  5528.                     name = L['Enable'],
  5529.                 },
  5530.                 perrow = {
  5531.                     type = 'range',
  5532.                     order = 2,
  5533.                     name = L['Per Row'],
  5534.                     min = 1, max = 20, step = 1,
  5535.                 },
  5536.                 numrows = {
  5537.                     type = 'range',
  5538.                     order = 3,
  5539.                     name = L['Num Rows'],
  5540.                     min = 1, max = 4, step = 1,                
  5541.                 },
  5542.                 ['growth-x'] = {
  5543.                     type = 'select',
  5544.                     order = 4,
  5545.                     name = L['X-Growth'],
  5546.                     desc = L['Growth direction of the buffs'],
  5547.                     values = {
  5548.                         ['LEFT'] = L['Left'],
  5549.                         ['RIGHT'] = L["Right"],
  5550.                     },
  5551.                 },
  5552.                 ['growth-y'] = {
  5553.                     type = 'select',
  5554.                     order = 5,
  5555.                     name = L['Y-Growth'],
  5556.                     desc = L['Growth direction of the buffs'],
  5557.                     values = {
  5558.                         ['UP'] = L['Up'],
  5559.                         ['DOWN'] = L["Down"],
  5560.                     },
  5561.                 }, 
  5562.                 initialAnchor = {
  5563.                     type = 'select',
  5564.                     order = 6,
  5565.                     name = L['Initial Anchor'],
  5566.                     desc = L['The initial anchor point of the buffs on the frame'],
  5567.                     values = auraAnchors,
  5568.                 }, 
  5569.                 attachTo = {
  5570.                     type = 'select',
  5571.                     order = 7,
  5572.                     name = L['Attach To'],
  5573.                     desc = L['What to attach the buff anchor frame to.'],
  5574.                     values = {
  5575.                         ['FRAME'] = L['Frame'],
  5576.                         ['DEBUFFS'] = L['Debuffs'],
  5577.                     },
  5578.                 },
  5579.                 anchorPoint = {
  5580.                     type = 'select',
  5581.                     order = 8,
  5582.                     name = L['Anchor Point'],
  5583.                     desc = L['What point to anchor to the frame you set to attach to.'],
  5584.                     values = auraAnchors,              
  5585.                 },
  5586.                 fontsize = {
  5587.                     order = 6,
  5588.                     name = L["Font Size"],
  5589.                     type = "range",
  5590.                     min = 6, max = 22, step = 1,
  5591.                 },             
  5592.                 useFilter = {
  5593.                     order = 7,
  5594.                     name = L['Use Filter'],
  5595.                     desc = L['Select a filter to use.'],
  5596.                     type = 'select',
  5597.                     values = function()
  5598.                         filters = {}
  5599.                         filters[''] = ''
  5600.                         for filter in pairs(E.global.unitframe['aurafilters']) do
  5601.                             filters[filter] = filter
  5602.                         end
  5603.                         return filters
  5604.                     end,
  5605.                 },     
  5606.                 showPlayerOnly = {
  5607.                     order = 8,
  5608.                     type = 'toggle',
  5609.                     name = L['Personal Auras'],
  5610.                     desc = L['If set only auras belonging to yourself in addition to any aura that passes the set filter may be shown.'],
  5611.                 }, 
  5612.                 durationLimit = {
  5613.                     order = 9,
  5614.                     name = L['Duration Limit'],
  5615.                     desc = L['The aura must be below this duration for the buff to show, set to 0 to disable. Note: This is in seconds.'],
  5616.                     type = 'range',
  5617.                     min = 0, max = 3600, step = 60,
  5618.                 },                 
  5619.             },
  5620.         }, 
  5621.         debuffs = {
  5622.             order = 500,
  5623.             type = 'group',
  5624.             name = L['Debuffs'],
  5625.             get = function(info) return E.db.unitframe.units['raid625']['debuffs'][ info[#info] ] end,
  5626.             set = function(info, value) E.db.unitframe.units['raid625']['debuffs'][ info[#info] ] = value; UF:CreateAndUpdateHeaderGroup('raid625') end,
  5627.             args = {
  5628.                 enable = {
  5629.                     type = 'toggle',
  5630.                     order = 1,
  5631.                     name = L['Enable'],
  5632.                 },
  5633.                 perrow = {
  5634.                     type = 'range',
  5635.                     order = 2,
  5636.                     name = L['Per Row'],
  5637.                     min = 1, max = 20, step = 1,
  5638.                 },
  5639.                 numrows = {
  5640.                     type = 'range',
  5641.                     order = 3,
  5642.                     name = L['Num Rows'],
  5643.                     min = 1, max = 4, step = 1,                
  5644.                 },
  5645.                 ['growth-x'] = {
  5646.                     type = 'select',
  5647.                     order = 4,
  5648.                     name = L['X-Growth'],
  5649.                     desc = L['Growth direction of the buffs'],
  5650.                     values = {
  5651.                         ['LEFT'] = L['Left'],
  5652.                         ['RIGHT'] = L["Right"],
  5653.                     },
  5654.                 },
  5655.                 ['growth-y'] = {
  5656.                     type = 'select',
  5657.                     order = 5,
  5658.                     name = L['Y-Growth'],
  5659.                     desc = L['Growth direction of the buffs'],
  5660.                     values = {
  5661.                         ['UP'] = L['Up'],
  5662.                         ['DOWN'] = L["Down"],
  5663.                     },
  5664.                 }, 
  5665.                 initialAnchor = {
  5666.                     type = 'select',
  5667.                     order = 6,
  5668.                     name = L['Initial Anchor'],
  5669.                     desc = L['The initial anchor point of the buffs on the frame'],
  5670.                     values = auraAnchors,
  5671.                 }, 
  5672.                 attachTo = {
  5673.                     type = 'select',
  5674.                     order = 7,
  5675.                     name = L['Attach To'],
  5676.                     desc = L['What to attach the buff anchor frame to.'],
  5677.                     values = {
  5678.                         ['FRAME'] = L['Frame'],
  5679.                         ['BUFFS'] = L['Buffs'],
  5680.                     },
  5681.                 },
  5682.                 anchorPoint = {
  5683.                     type = 'select',
  5684.                     order = 8,
  5685.                     name = L['Anchor Point'],
  5686.                     desc = L['What point to anchor to the frame you set to attach to.'],
  5687.                     values = auraAnchors,              
  5688.                 },
  5689.                 fontsize = {
  5690.                     order = 6,
  5691.                     name = L["Font Size"],
  5692.                     type = "range",
  5693.                     min = 6, max = 22, step = 1,
  5694.                 }, 
  5695.                 useFilter = {
  5696.                     order = 7,
  5697.                     name = L['Use Filter'],
  5698.                     desc = L['Select a filter to use.'],
  5699.                     type = 'select',
  5700.                     values = function()
  5701.                         filters = {}
  5702.                         filters[''] = ''
  5703.                         for filter in pairs(E.global.unitframe['aurafilters']) do
  5704.                             filters[filter] = filter
  5705.                         end
  5706.                         return filters
  5707.                     end,
  5708.                 },
  5709.                 showPlayerOnly = {
  5710.                     order = 8,
  5711.                     type = 'toggle',
  5712.                     name = L['Personal Auras'],
  5713.                     desc = L['If set only auras belonging to yourself in addition to any aura that passes the set filter may be shown.'],
  5714.                 },
  5715.                 durationLimit = {
  5716.                     order = 9,
  5717.                     name = L['Duration Limit'],
  5718.                     desc = L['The aura must be below this duration for the buff to show, set to 0 to disable. Note: This is in seconds.'],
  5719.                     type = 'range',
  5720.                     min = 0, max = 3600, step = 60,
  5721.                 },                 
  5722.             },
  5723.         }, 
  5724.         buffIndicator = {
  5725.             order = 600,
  5726.             type = 'group',
  5727.             name = L['Buff Indicator'],
  5728.             get = function(info) return E.db.unitframe.units['raid625']['buffIndicator'][ info[#info] ] end,
  5729.             set = function(info, value) E.db.unitframe.units['raid625']['buffIndicator'][ info[#info] ] = value; UF:CreateAndUpdateHeaderGroup('raid625') end,
  5730.             args = {
  5731.                 enable = {
  5732.                     type = 'toggle',
  5733.                     name = L['Enable'],
  5734.                     order = 1,
  5735.                 },
  5736.                 colorIcons = {
  5737.                     type = 'toggle',
  5738.                     name = L['Color Icons'],
  5739.                     desc = L['Color the icon to their set color in the filters section, otherwise use the icon texture.'],
  5740.                     order = 2,                 
  5741.                 },
  5742.                 size = {
  5743.                     type = 'range',
  5744.                     name = L['Size'],
  5745.                     desc = L['Size of the indicator icon.'],
  5746.                     order = 3,
  5747.                     min = 4, max = 15, step = 1,
  5748.                 },
  5749.                 fontsize = {
  5750.                     type = 'range',
  5751.                     name = L['Font Size'],
  5752.                     order = 4,
  5753.                     min = 7, max = 22, step = 1,
  5754.                 },
  5755.             },
  5756.         },
  5757.         roleIcon = {
  5758.             order = 700,
  5759.             type = 'group',
  5760.             name = L['Role Icon'],
  5761.             get = function(info) return E.db.unitframe.units['raid625']['roleIcon'][ info[#info] ] end,
  5762.             set = function(info, value) E.db.unitframe.units['raid625']['roleIcon'][ info[#info] ] = value; UF:CreateAndUpdateHeaderGroup('raid625') end,  
  5763.             args = {
  5764.                 enable = {
  5765.                     type = 'toggle',
  5766.                     name = L['Enable'],
  5767.                     order = 1,
  5768.                 },
  5769.                 position = {
  5770.                     type = 'select',
  5771.                     order = 2,
  5772.                     name = L['Position'],
  5773.                     values = positionValues,
  5774.                 },                         
  5775.             },
  5776.         },     
  5777.         rdebuffs = {
  5778.             order = 800,
  5779.             type = 'group',
  5780.             name = L['RaidDebuff Indicator'],
  5781.             get = function(info) return E.db.unitframe.units['raid625']['rdebuffs'][ info[#info] ] end,
  5782.             set = function(info, value) E.db.unitframe.units['raid625']['rdebuffs'][ info[#info] ] = value; UF:CreateAndUpdateHeaderGroup('raid625') end,
  5783.             args = {
  5784.                 enable = {
  5785.                     type = 'toggle',
  5786.                     name = L['Enable'],
  5787.                     order = 1,
  5788.                 }, 
  5789.                 size = {
  5790.                     type = 'range',
  5791.                     name = L['Size'],
  5792.                     order = 2,
  5793.                     min = 8, max = 35, step = 1,
  5794.                 },             
  5795.                 fontsize = {
  5796.                     type = 'range',
  5797.                     name = L['Font Size'],
  5798.                     order = 3,
  5799.                     min = 7, max = 22, step = 1,
  5800.                 },             
  5801.             },
  5802.         },     
  5803.     },
  5804. }
  5805.  
  5806. --Raid2640 Frames
  5807. E.Options.args.unitframe.args.raid2640 = {
  5808.     name = L['Raid2640 Frames'],
  5809.     type = 'group',
  5810.     order = 1100,
  5811.     childGroups = "select",
  5812.     get = function(info) return E.db.unitframe.units['raid2640'][ info[#info] ] end,
  5813.     set = function(info, value) E.db.unitframe.units['raid2640'][ info[#info] ] = value; UF:CreateAndUpdateHeaderGroup('raid2640') end,
  5814.     args = {
  5815.         enable = {
  5816.             type = 'toggle',
  5817.             order = 1,
  5818.             name = L['Enable'],
  5819.         },
  5820.         resetSettings = {
  5821.             type = 'execute',
  5822.             order = 2,
  5823.             name = L['Restore Defaults'],
  5824.             func = function(info, value) UF:ResetUnitSettings('raid2640') end,
  5825.         },         
  5826.         general = {
  5827.             order = 5,
  5828.             type = 'group',
  5829.             name = L['General'],
  5830.             args = {
  5831.                 width = {
  5832.                     order = 2,
  5833.                     name = L['Width'],
  5834.                     type = 'range',
  5835.                     min = 50, max = 500, step = 1,
  5836.                 },         
  5837.                 height = {
  5838.                     order = 3,
  5839.                     name = L['Height'],
  5840.                     type = 'range',
  5841.                     min = 10, max = 250, step = 1,
  5842.                 }, 
  5843.                 point = {
  5844.                     order = 4,
  5845.                     type = 'select',
  5846.                     name = L['Group Point'],
  5847.                     desc = L['What each frame should attach itself to, example setting it to TOP every unit will attach its top to the last point bottom.'],
  5848.                     values = groupPoints,
  5849.                     set = function(info, value) E.db.unitframe.units['raid2640'][ info[#info] ] = value; UF:CreateAndUpdateHeaderGroup('raid2640'); end,
  5850.                 },
  5851.                 columnAnchorPoint = {
  5852.                     order = 5,
  5853.                     type = 'select',
  5854.                     name = L['Column Point'],
  5855.                     desc = L['The anchor point for each new column. A value of LEFT will cause the columns to grow to the right.'],
  5856.                     values = groupPoints,  
  5857.                     set = function(info, value) E.db.unitframe.units['raid2640'][ info[#info] ] = value; UF:CreateAndUpdateHeaderGroup('raid2640'); end,
  5858.                 },
  5859.                 maxColumns = {
  5860.                     order = 6,
  5861.                     type = 'range',
  5862.                     name = L['Max Columns'],
  5863.                     desc = L['The maximum number of columns that the header will create.'],
  5864.                     min = 1, max = 40, step = 1,
  5865.                 },
  5866.                 unitsPerColumn = {
  5867.                     order = 7,
  5868.                     type = 'range',
  5869.                     name = L['Units Per Column'],
  5870.                     desc = L['The maximum number of units that will be displayed in a single column.'],
  5871.                     min = 1, max = 40, step = 1,
  5872.                 },
  5873.                 columnSpacing = {
  5874.                     order = 8,
  5875.                     type = 'range',
  5876.                     name = L['Column Spacing'],
  5877.                     desc = L['The amount of space (in pixels) between the columns.'],
  5878.                     min = 3, max = 10, step = 1,
  5879.                 },     
  5880.                 xOffset = {
  5881.                     order = 9,
  5882.                     type = 'range',
  5883.                     name = L['xOffset'],
  5884.                     desc = L['An X offset (in pixels) to be used when anchoring new frames.'],
  5885.                     min = -15, max = 15, step = 1,     
  5886.                 },
  5887.                 yOffset = {
  5888.                     order = 10,
  5889.                     type = 'range',
  5890.                     name = L['yOffset'],
  5891.                     desc = L['An Y offset (in pixels) to be used when anchoring new frames.'],
  5892.                     min = -15, max = 15, step = 1,     
  5893.                 },     
  5894.                 showParty = {
  5895.                     order = 11,
  5896.                     type = 'toggle',
  5897.                     name = L['Show Party'],
  5898.                     desc = L['When true, the group header is shown when the player is in a party.'],
  5899.                 },
  5900.                 showRaid = {
  5901.                     order = 12,
  5902.                     type = 'toggle',
  5903.                     name = L['Show Raid'],
  5904.                     desc = L['When true, the group header is shown when the player is in a raid.'],
  5905.                 }, 
  5906.                 showSolo = {
  5907.                     order = 13,
  5908.                     type = 'toggle',
  5909.                     name = L['Show Solo'],
  5910.                     desc = L['When true, the header is shown when the player is not in any group.'],       
  5911.                 },
  5912.                 showPlayer = {
  5913.                     order = 14,
  5914.                     type = 'toggle',
  5915.                     name = L['Display Player'],
  5916.                     desc = L['When true, the header includes the player when not in a raid.'],         
  5917.                 },
  5918.                 healPrediction = {
  5919.                     order = 15,
  5920.                     name = L['Heal Prediction'],
  5921.                     desc = L['Show a incomming heal prediction bar on the unitframe. Also display a slightly different colored bar for incoming overheals.'],
  5922.                     type = 'toggle',
  5923.                 },     
  5924.                 groupBy = {
  5925.                     order = 16,
  5926.                     name = L['Group By'],
  5927.                     desc = L['Set the order that the group will sort.'],
  5928.                     type = 'select',       
  5929.                     values = {
  5930.                         ['CLASS'] = CLASS,
  5931.                         ['TANK'] = L["Tanks First"],
  5932.                         ['GROUP'] = GROUP,
  5933.                     },
  5934.                 },     
  5935.                 visibility = {
  5936.                     order = 200,
  5937.                     type = 'input',
  5938.                     name = L['Visibility'],
  5939.                     desc = L['The following macro must be true in order for the group to be shown, in addition to any filter that may already be set.'],
  5940.                     width = 'full',
  5941.                 },                 
  5942.             },
  5943.         },
  5944.         health = {
  5945.             order = 100,
  5946.             type = 'group',
  5947.             name = L['Health'],
  5948.             get = function(info) return E.db.unitframe.units['raid2640']['health'][ info[#info] ] end,
  5949.             set = function(info, value) E.db.unitframe.units['raid2640']['health'][ info[#info] ] = value; UF:CreateAndUpdateHeaderGroup('raid2640'); end,
  5950.             args = {
  5951.                 text = {
  5952.                     type = 'toggle',
  5953.                     order = 1,
  5954.                     name = L['Text'],
  5955.                 },
  5956.                 text_format = {
  5957.                     type = 'select',
  5958.                     order = 2,
  5959.                     name = L['Text Format'],
  5960.                     values = textFormats,
  5961.                 },
  5962.                 position = {
  5963.                     type = 'select',
  5964.                     order = 3,
  5965.                     name = L['Position'],
  5966.                     values = positionValues,
  5967.                 },                 
  5968.                 frequentUpdates = {
  5969.                     type = 'toggle',
  5970.                     order = 4,
  5971.                     name = L['Frequent Updates'],
  5972.                     desc = L['Rapidly update the health, uses more memory and cpu. Only recommended for healing.'],
  5973.                 },
  5974.                 orientation = {
  5975.                     type = 'select',
  5976.                     order = 5,
  5977.                     name = L['Orientation'],
  5978.                     desc = L['Direction the health bar moves when gaining/losing health.'],
  5979.                     values = {
  5980.                         ['HORIZONTAL'] = L['Horizontal'],
  5981.                         ['VERTICAL'] = L['Vertical'],
  5982.                     },
  5983.                 }, 
  5984.             },
  5985.         },
  5986.         power = {
  5987.             order = 200,
  5988.             type = 'group',
  5989.             name = L['Power'],
  5990.             get = function(info) return E.db.unitframe.units['raid2640']['power'][ info[#info] ] end,
  5991.             set = function(info, value) E.db.unitframe.units['raid2640']['power'][ info[#info] ] = value; UF:CreateAndUpdateHeaderGroup('raid2640') end,
  5992.             args = {
  5993.                 enable = {
  5994.                     type = 'toggle',
  5995.                     order = 1,
  5996.                     name = L['Enable'],
  5997.                 },         
  5998.                 text = {
  5999.                     type = 'toggle',
  6000.                     order = 2,
  6001.                     name = L['Text'],
  6002.                 },
  6003.                 text_format = {
  6004.                     type = 'select',
  6005.                     order = 3,
  6006.                     name = L['Text Format'],
  6007.                     values = textFormats,
  6008.                 },
  6009.                 width = {
  6010.                     type = 'select',
  6011.                     order = 4,
  6012.                     name = L['Width'],
  6013.                     values = fillValues,
  6014.                 },
  6015.                 height = {
  6016.                     type = 'range',
  6017.                     name = L['Height'],
  6018.                     order = 5,
  6019.                     min = 2, max = 50, step = 1,
  6020.                 },
  6021.                 offset = {
  6022.                     type = 'range',
  6023.                     name = L['Offset'],
  6024.                     desc = L['Offset of the powerbar to the healthbar, set to 0 to disable.'],
  6025.                     order = 6,
  6026.                     min = 0, max = 20, step = 1,
  6027.                 },
  6028.                 hideonnpc = {
  6029.                     type = 'toggle',
  6030.                     order = 7,
  6031.                     name = L['Text Toggle On NPC'],
  6032.                     desc = L['Power text will be hidden on NPC targets, in addition the name text will be repositioned to the power texts anchor point.'],
  6033.                 },
  6034.                 position = {
  6035.                     type = 'select',
  6036.                     order = 8,
  6037.                     name = L['Position'],
  6038.                     values = positionValues,
  6039.                 },                 
  6040.             },
  6041.         }, 
  6042.         name = {
  6043.             order = 300,
  6044.             type = 'group',
  6045.             name = L['Name'],
  6046.             get = function(info) return E.db.unitframe.units['raid2640']['name'][ info[#info] ] end,
  6047.             set = function(info, value) E.db.unitframe.units['raid2640']['name'][ info[#info] ] = value; UF:CreateAndUpdateHeaderGroup('raid2640') end,
  6048.             args = {
  6049.                 enable = {
  6050.                     type = 'toggle',
  6051.                     order = 1,
  6052.                     name = L['Enable'],
  6053.                 },
  6054.                 position = {
  6055.                     type = 'select',
  6056.                     order = 2,
  6057.                     name = L['Position'],
  6058.                     values = positionValues,
  6059.                 }, 
  6060.                 length = {
  6061.                     type = 'select',
  6062.                     order = 3,
  6063.                     name = L['Length'],
  6064.                     values = lengthValues,             
  6065.                 },             
  6066.             },
  6067.         },
  6068.         buffs = {
  6069.             order = 400,
  6070.             type = 'group',
  6071.             name = L['Buffs'],
  6072.             get = function(info) return E.db.unitframe.units['raid2640']['buffs'][ info[#info] ] end,
  6073.             set = function(info, value) E.db.unitframe.units['raid2640']['buffs'][ info[#info] ] = value; UF:CreateAndUpdateHeaderGroup('raid2640') end,
  6074.             args = {
  6075.                 enable = {
  6076.                     type = 'toggle',
  6077.                     order = 1,
  6078.                     name = L['Enable'],
  6079.                 },
  6080.                 perrow = {
  6081.                     type = 'range',
  6082.                     order = 2,
  6083.                     name = L['Per Row'],
  6084.                     min = 1, max = 20, step = 1,
  6085.                 },
  6086.                 numrows = {
  6087.                     type = 'range',
  6088.                     order = 3,
  6089.                     name = L['Num Rows'],
  6090.                     min = 1, max = 4, step = 1,                
  6091.                 },
  6092.                 ['growth-x'] = {
  6093.                     type = 'select',
  6094.                     order = 4,
  6095.                     name = L['X-Growth'],
  6096.                     desc = L['Growth direction of the buffs'],
  6097.                     values = {
  6098.                         ['LEFT'] = L['Left'],
  6099.                         ['RIGHT'] = L["Right"],
  6100.                     },
  6101.                 },
  6102.                 ['growth-y'] = {
  6103.                     type = 'select',
  6104.                     order = 5,
  6105.                     name = L['Y-Growth'],
  6106.                     desc = L['Growth direction of the buffs'],
  6107.                     values = {
  6108.                         ['UP'] = L['Up'],
  6109.                         ['DOWN'] = L["Down"],
  6110.                     },
  6111.                 }, 
  6112.                 initialAnchor = {
  6113.                     type = 'select',
  6114.                     order = 6,
  6115.                     name = L['Initial Anchor'],
  6116.                     desc = L['The initial anchor point of the buffs on the frame'],
  6117.                     values = auraAnchors,
  6118.                 }, 
  6119.                 attachTo = {
  6120.                     type = 'select',
  6121.                     order = 7,
  6122.                     name = L['Attach To'],
  6123.                     desc = L['What to attach the buff anchor frame to.'],
  6124.                     values = {
  6125.                         ['FRAME'] = L['Frame'],
  6126.                         ['DEBUFFS'] = L['Debuffs'],
  6127.                     },
  6128.                 },
  6129.                 anchorPoint = {
  6130.                     type = 'select',
  6131.                     order = 8,
  6132.                     name = L['Anchor Point'],
  6133.                     desc = L['What point to anchor to the frame you set to attach to.'],
  6134.                     values = auraAnchors,              
  6135.                 },
  6136.                 fontsize = {
  6137.                     order = 6,
  6138.                     name = L["Font Size"],
  6139.                     type = "range",
  6140.                     min = 6, max = 22, step = 1,
  6141.                 },             
  6142.                 useFilter = {
  6143.                     order = 7,
  6144.                     name = L['Use Filter'],
  6145.                     desc = L['Select a filter to use.'],
  6146.                     type = 'select',
  6147.                     values = function()
  6148.                         filters = {}
  6149.                         filters[''] = ''
  6150.                         for filter in pairs(E.global.unitframe['aurafilters']) do
  6151.                             filters[filter] = filter
  6152.                         end
  6153.                         return filters
  6154.                     end,
  6155.                 },     
  6156.                 showPlayerOnly = {
  6157.                     order = 8,
  6158.                     type = 'toggle',
  6159.                     name = L['Personal Auras'],
  6160.                     desc = L['If set only auras belonging to yourself in addition to any aura that passes the set filter may be shown.'],
  6161.                 }, 
  6162.                 durationLimit = {
  6163.                     order = 9,
  6164.                     name = L['Duration Limit'],
  6165.                     desc = L['The aura must be below this duration for the buff to show, set to 0 to disable. Note: This is in seconds.'],
  6166.                     type = 'range',
  6167.                     min = 0, max = 3600, step = 60,
  6168.                 },                 
  6169.             },
  6170.         }, 
  6171.         debuffs = {
  6172.             order = 500,
  6173.             type = 'group',
  6174.             name = L['Debuffs'],
  6175.             get = function(info) return E.db.unitframe.units['raid2640']['debuffs'][ info[#info] ] end,
  6176.             set = function(info, value) E.db.unitframe.units['raid2640']['debuffs'][ info[#info] ] = value; UF:CreateAndUpdateHeaderGroup('raid2640') end,
  6177.             args = {
  6178.                 enable = {
  6179.                     type = 'toggle',
  6180.                     order = 1,
  6181.                     name = L['Enable'],
  6182.                 },
  6183.                 perrow = {
  6184.                     type = 'range',
  6185.                     order = 2,
  6186.                     name = L['Per Row'],
  6187.                     min = 1, max = 20, step = 1,
  6188.                 },
  6189.                 numrows = {
  6190.                     type = 'range',
  6191.                     order = 3,
  6192.                     name = L['Num Rows'],
  6193.                     min = 1, max = 4, step = 1,                
  6194.                 },
  6195.                 ['growth-x'] = {
  6196.                     type = 'select',
  6197.                     order = 4,
  6198.                     name = L['X-Growth'],
  6199.                     desc = L['Growth direction of the buffs'],
  6200.                     values = {
  6201.                         ['LEFT'] = L['Left'],
  6202.                         ['RIGHT'] = L["Right"],
  6203.                     },
  6204.                 },
  6205.                 ['growth-y'] = {
  6206.                     type = 'select',
  6207.                     order = 5,
  6208.                     name = L['Y-Growth'],
  6209.                     desc = L['Growth direction of the buffs'],
  6210.                     values = {
  6211.                         ['UP'] = L['Up'],
  6212.                         ['DOWN'] = L["Down"],
  6213.                     },
  6214.                 }, 
  6215.                 initialAnchor = {
  6216.                     type = 'select',
  6217.                     order = 6,
  6218.                     name = L['Initial Anchor'],
  6219.                     desc = L['The initial anchor point of the buffs on the frame'],
  6220.                     values = auraAnchors,
  6221.                 }, 
  6222.                 attachTo = {
  6223.                     type = 'select',
  6224.                     order = 7,
  6225.                     name = L['Attach To'],
  6226.                     desc = L['What to attach the buff anchor frame to.'],
  6227.                     values = {
  6228.                         ['FRAME'] = L['Frame'],
  6229.                         ['BUFFS'] = L['Buffs'],
  6230.                     },
  6231.                 },
  6232.                 anchorPoint = {
  6233.                     type = 'select',
  6234.                     order = 8,
  6235.                     name = L['Anchor Point'],
  6236.                     desc = L['What point to anchor to the frame you set to attach to.'],
  6237.                     values = auraAnchors,              
  6238.                 },
  6239.                 fontsize = {
  6240.                     order = 6,
  6241.                     name = L["Font Size"],
  6242.                     type = "range",
  6243.                     min = 6, max = 22, step = 1,
  6244.                 }, 
  6245.                 useFilter = {
  6246.                     order = 7,
  6247.                     name = L['Use Filter'],
  6248.                     desc = L['Select a filter to use.'],
  6249.                     type = 'select',
  6250.                     values = function()
  6251.                         filters = {}
  6252.                         filters[''] = ''
  6253.                         for filter in pairs(E.global.unitframe['aurafilters']) do
  6254.                             filters[filter] = filter
  6255.                         end
  6256.                         return filters
  6257.                     end,
  6258.                 },
  6259.                 showPlayerOnly = {
  6260.                     order = 8,
  6261.                     type = 'toggle',
  6262.                     name = L['Personal Auras'],
  6263.                     desc = L['If set only auras belonging to yourself in addition to any aura that passes the set filter may be shown.'],
  6264.                 },
  6265.                 durationLimit = {
  6266.                     order = 9,
  6267.                     name = L['Duration Limit'],
  6268.                     desc = L['The aura must be below this duration for the buff to show, set to 0 to disable. Note: This is in seconds.'],
  6269.                     type = 'range',
  6270.                     min = 0, max = 3600, step = 60,
  6271.                 },                 
  6272.             },
  6273.         }, 
  6274.         buffIndicator = {
  6275.             order = 600,
  6276.             type = 'group',
  6277.             name = L['Buff Indicator'],
  6278.             get = function(info) return E.db.unitframe.units['raid2640']['buffIndicator'][ info[#info] ] end,
  6279.             set = function(info, value) E.db.unitframe.units['raid2640']['buffIndicator'][ info[#info] ] = value; UF:CreateAndUpdateHeaderGroup('raid2640') end,
  6280.             args = {
  6281.                 enable = {
  6282.                     type = 'toggle',
  6283.                     name = L['Enable'],
  6284.                     order = 1,
  6285.                 },
  6286.                 colorIcons = {
  6287.                     type = 'toggle',
  6288.                     name = L['Color Icons'],
  6289.                     desc = L['Color the icon to their set color in the filters section, otherwise use the icon texture.'],
  6290.                     order = 2,                 
  6291.                 },
  6292.                 size = {
  6293.                     type = 'range',
  6294.                     name = L['Size'],
  6295.                     desc = L['Size of the indicator icon.'],
  6296.                     order = 3,
  6297.                     min = 4, max = 15, step = 1,
  6298.                 },
  6299.                 fontsize = {
  6300.                     type = 'range',
  6301.                     name = L['Font Size'],
  6302.                     order = 4,
  6303.                     min = 7, max = 22, step = 1,
  6304.                 },
  6305.             },
  6306.         }, 
  6307.         roleIcon = {
  6308.             order = 700,
  6309.             type = 'group',
  6310.             name = L['Role Icon'],
  6311.             get = function(info) return E.db.unitframe.units['raid625']['roleIcon'][ info[#info] ] end,
  6312.             set = function(info, value) E.db.unitframe.units['raid625']['roleIcon'][ info[#info] ] = value; UF:CreateAndUpdateHeaderGroup('raid625') end,  
  6313.             args = {
  6314.                 enable = {
  6315.                     type = 'toggle',
  6316.                     name = L['Enable'],
  6317.                     order = 1,
  6318.                 },
  6319.                 position = {
  6320.                     type = 'select',
  6321.                     order = 2,
  6322.                     name = L['Position'],
  6323.                     values = positionValues,
  6324.                 },                         
  6325.             },
  6326.         },     
  6327.         rdebuffs = {
  6328.             order = 800,
  6329.             type = 'group',
  6330.             name = L['RaidDebuff Indicator'],
  6331.             get = function(info) return E.db.unitframe.units['raid625']['rdebuffs'][ info[#info] ] end,
  6332.             set = function(info, value) E.db.unitframe.units['raid625']['rdebuffs'][ info[#info] ] = value; UF:CreateAndUpdateHeaderGroup('raid625') end,
  6333.             args = {
  6334.                 enable = {
  6335.                     type = 'toggle',
  6336.                     name = L['Enable'],
  6337.                     order = 1,
  6338.                 }, 
  6339.                 size = {
  6340.                     type = 'range',
  6341.                     name = L['Size'],
  6342.                     order = 2,
  6343.                     min = 8, max = 35, step = 1,
  6344.                 },             
  6345.                 fontsize = {
  6346.                     type = 'range',
  6347.                     name = L['Font Size'],
  6348.                     order = 3,
  6349.                     min = 7, max = 22, step = 1,
  6350.                 },             
  6351.             },
  6352.         },     
  6353.     },
  6354. }
  6355.  
  6356. --Tank Frames
  6357. E.Options.args.unitframe.args.tank = {
  6358.     name = L['Tank Frames'],
  6359.     type = 'group',
  6360.     order = 1100,
  6361.     get = function(info) return E.db.unitframe.units['tank'][ info[#info] ] end,
  6362.     set = function(info, value) E.db.unitframe.units['tank'][ info[#info] ] = value; UF:CreateAndUpdateHeaderGroup('tank') end,
  6363.     args = {
  6364.         enable = {
  6365.             type = 'toggle',
  6366.             order = 1,
  6367.             name = L['Enable'],
  6368.         },
  6369.         resetSettings = {
  6370.             type = 'execute',
  6371.             order = 2,
  6372.             name = L['Restore Defaults'],
  6373.             func = function(info, value) UF:ResetUnitSettings('tank') end,
  6374.         },     
  6375.         general = {
  6376.             order = 3,
  6377.             type = 'group',
  6378.             name = L['General'],
  6379.             guiInline = true,
  6380.             args = {
  6381.                 width = {
  6382.                     order = 2,
  6383.                     name = L['Width'],
  6384.                     type = 'range',
  6385.                     min = 50, max = 500, step = 1,
  6386.                 },         
  6387.                 height = {
  6388.                     order = 3,
  6389.                     name = L['Height'],
  6390.                     type = 'range',
  6391.                     min = 10, max = 250, step = 1,
  6392.                 },                 
  6393.             },
  6394.         }, 
  6395.     },
  6396. }
  6397.  
  6398. --Assist Frames
  6399. E.Options.args.unitframe.args.assist = {
  6400.     name = L['Assist Frames'],
  6401.     type = 'group',
  6402.     order = 1100,
  6403.     get = function(info) return E.db.unitframe.units['assist'][ info[#info] ] end,
  6404.     set = function(info, value) E.db.unitframe.units['assist'][ info[#info] ] = value; UF:CreateAndUpdateHeaderGroup('assist') end,
  6405.     args = {
  6406.         enable = {
  6407.             type = 'toggle',
  6408.             order = 1,
  6409.             name = L['Enable'],
  6410.         },
  6411.         resetSettings = {
  6412.             type = 'execute',
  6413.             order = 2,
  6414.             name = L['Restore Defaults'],
  6415.             func = function(info, value) UF:ResetUnitSettings('assist') end,
  6416.         },     
  6417.         general = {
  6418.             order = 3,
  6419.             type = 'group',
  6420.             name = L['General'],
  6421.             guiInline = true,
  6422.             args = {
  6423.                 width = {
  6424.                     order = 2,
  6425.                     name = L['Width'],
  6426.                     type = 'range',
  6427.                     min = 50, max = 500, step = 1,
  6428.                 },         
  6429.                 height = {
  6430.                     order = 3,
  6431.                     name = L['Height'],
  6432.                     type = 'range',
  6433.                     min = 10, max = 250, step = 1,
  6434.                 },                 
  6435.             },
  6436.         }, 
  6437.     },
  6438. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement