ESOUI SVN TaosGroupTools

[/] [trunk/] [TaosGroupTools/] [ui/] [settings/] [GroupFramesOptions.lua] - Rev 136

Compare with Previous | Blame | View Log

--[[
        Addon: Taos Group Tools
        Author: TProg Taonnor
        Created by @Taonnor
]]--

--[[
        Local variables
]]--
local _settingsHandler = TGT_SettingsHandler

--[[
        Table GroupFramesOptions
]]--
TGT_GroupFramesOptions = {}
TGT_GroupFramesOptions.__index = TGT_GroupFramesOptions

--[[
        ===============
    PRIVATE METHODS
    ===============
]]--

--[[
        Creates options
]]--
local function CreateOptions()
    local styleChoices = {
        [1] = GetString(TGT_OPTIONS_FRAMES_STYLE_NORMAL),
        [2] = GetString(TGT_OPTIONS_FRAMES_STYLE_SMALL),
        [3] = GetString(TGT_OPTIONS_FRAMES_STYLE_TINY),
    }

    local formatChoices = {
        [1] = GetString(TGT_OPTIONS_HEALTHBAR_FORMAT_NONE),
        [2] = GetString(TGT_OPTIONS_HEALTHBAR_FORMAT_ABS),
        [3] = GetString(TGT_OPTIONS_HEALTHBAR_FORMAT_ABS_SHORT),
        [4] = GetString(TGT_OPTIONS_HEALTHBAR_FORMAT_PERCENT),
    }
    
    local buffTrackerChoises = TGT_SettingsWindow.GetBuffTrackerChoises()
    
    local optionsData = {
        -- Submenu Group Frames Options
        {   type            = "submenu",
                        name            = GetString(TGT_OPTIONS_GROUP_FRAMES_HEADER),
            controls = {
                -- Enable/Disable Group Frames
                {   type = "checkbox",
                                name = GetString(TGT_OPTIONS_GROUP_FRAMES_LABEL),
                                tooltip = GetString(TGT_OPTIONS_GROUP_FRAMES_TOOLTIP),
                                getFunc = 
                       function() 
                           return _settingsHandler.SavedVariables.IsGroupFramesEnabled
                       end,
                                setFunc = 
                       function(value) 
                           _settingsHandler.SetIsGroupFramesEnabledSettings(value)
                                   end,
                                default = TGT_DEFAULTS.IsGroupFramesEnabled
                        },
                -- Enable/Disable ZOS Group Frames
                {   type = "checkbox",
                                name = GetString(TGT_OPTIONS_HIDE_ZOS_GROUP_FRAMES_LABEL),
                                tooltip = GetString(TGT_OPTIONS_HIDE_ZOS_GROUP_FRAMES_TOOLTIP),
                                getFunc = 
                       function() 
                           return _settingsHandler.SavedVariables.HideZosGroupFrames
                       end,
                                setFunc = 
                       function(value) 
                           _settingsHandler.SavedVariables.HideZosGroupFrames = value
                           _settingsHandler.OnGroupFramesSettingsChanged()
                                   end,
                    requiresReload = true,
                    disabled = 
                        function() 
                           return _settingsHandler.SavedVariables.IsGroupFramesEnabled == false
                       end,
                                default = TGT_DEFAULTS.IsGroupFramesEnabled
                        },
                -- InCombat active
                {   type        = "checkbox",
                                name        = GetString(TGT_OPTIONS_USE_INCOMBAT_LABEL),
                                tooltip     = GetString(TGT_OPTIONS_FRAMES_INCOMBAT_TOOLTIP),
                                getFunc = 
                       function() 
                           return _settingsHandler.SavedVariables.CombatActive[GROUP_FRAMES]
                       end,
                                setFunc = 
                       function(value) 
                           _settingsHandler.SetCombatActiveSettings(GROUP_FRAMES, value)
                                   end,
                    disabled = 
                        function() 
                           return _settingsHandler.SavedVariables.IsGroupFramesEnabled == false
                       end,
                                default     = TGT_DEFAULTS.CombatActive[GROUP_FRAMES]
                        },
                -- Scaling
                {   type        = "slider", 
                    name        = GetString(TGT_OPTIONS_SCALE_LABEL),
                    tooltip     = GetString(TGT_OPTIONS_FRAMES_SCALE_TOOLTIP),
                    min         = 0.1, 
                    max         = 2.0, 
                    step        = 0.1, 
                    decimals    = 1,
                    getFunc = 
                        function() 
                            return _settingsHandler.SavedVariables.Scale[GROUP_FRAMES]
                        end, 
                    setFunc = 
                        function(value) 
                            _settingsHandler.SetScaleSettings(GROUP_FRAMES, value) 
                        end, 
                    disabled = 
                        function() 
                           return _settingsHandler.SavedVariables.IsGroupFramesEnabled == false
                       end,
                    default     = TGT_DEFAULTS.Scale[GROUP_FRAMES],
                },
                -- Style
                {   type        = "dropdown",
                                name        = GetString(TGT_OPTIONS_FRAMES_STYLE_LABEL),
                                tooltip     = GetString(TGT_OPTIONS_FRAMES_STYLE_TOOLTIP),
                    choices     = styleChoices,
                                getFunc = 
                       function() 
                           return styleChoices[_settingsHandler.SavedVariables.Style[GROUP_FRAMES]]
                       end,
                                setFunc = 
                       function(value) 
                           for index, name in ipairs(styleChoices) do
                              if (name == value) then
                                 _settingsHandler.SetStyleSettings(GROUP_FRAMES, index)
                                 break
                              end
                           end
                                   end,
                    disabled = 
                        function() 
                           return _settingsHandler.SavedVariables.IsSendingDataActive == false or _settingsHandler.SavedVariables.IsGroupFramesEnabled == false
                       end,
                                default     = styleChoices[TGT_DEFAULTS.Style[GROUP_FRAMES]]
                        },
                -- Show Ultimate instead of Health
                {   type = "checkbox",
                                name = GetString(TGT_OPTIONS_SHOW_ULTIMATE_LABEL),
                                tooltip = GetString(TGT_OPTIONS_SHOW_ULTIMATE_TOOLTIP),
                                getFunc = 
                       function() 
                           return _settingsHandler.SavedVariables.ShowUltimateInsteadHaelth
                       end,
                                setFunc = 
                       function(value) 
                           _settingsHandler.SavedVariables.ShowUltimateInsteadHaelth = value
                           _settingsHandler.OnGroupFramesSettingsChanged()
                                   end,
                                default = TGT_DEFAULTS.ShowUltimateInsteadHaelth,
                    disabled = 
                        function() 
                           return _settingsHandler.SavedVariables.IsGroupFramesEnabled == false
                       end,
                        },
                -- Group Frames Bar Width
                {   type = "slider",
                    name = GetString(TGT_OPTIONS_FRAMES_WIDTH_LABEL),
                                tooltip = GetString(TGT_OPTIONS_FRAMES_WIDTH_TOOLTIP),
                    min = 140,
                    max = 240,
                    getFunc = 
                        function() 
                            return _settingsHandler.SavedVariables.GroupFramesBarWidth
                        end,
                    setFunc = 
                        function(value)
                            _settingsHandler.SavedVariables.GroupFramesBarWidth = value
                            _settingsHandler.OnGroupFramesSettingsChanged()
                        end,
                    default = TGT_DEFAULTS.GroupFramesBarWidth,
                    disabled = 
                        function() 
                           return _settingsHandler.SavedVariables.IsSendingDataActive == false or _settingsHandler.SavedVariables.IsGroupFramesEnabled == false
                       end,
                },
                -- Enable/Disable Food Buff
                {   type = "checkbox",
                                name = GetString(TGT_OPTIONS_SHOW_FOOD_BUFF_LABEL),
                                tooltip = GetString(TGT_OPTIONS_SHOW_FOOD_BUFF_TOOLTIP),
                                getFunc = 
                       function() 
                           return _settingsHandler.SavedVariables.ShowFoodBuff
                       end,
                                setFunc = 
                       function(value) 
                           _settingsHandler.SavedVariables.ShowFoodBuff = value
                           _settingsHandler.OnGroupFramesSettingsChanged()
                                   end,
                                default = TGT_DEFAULTS.ShowFoodBuff,
                    disabled = 
                        function() 
                           return _settingsHandler.SavedVariables.IsGroupFramesEnabled == false or _settingsHandler.SavedVariables.Style[GROUP_FRAMES] == 3
                       end,
                        },
                -- HP Formats
                {   type        = "dropdown",
                                name        = GetString(TGT_OPTIONS_HEALTHBAR_FORMAT_LABEL),
                                tooltip     = GetString(TGT_OPTIONS_HEALTHBAR_FORMAT_TOOLTIP),
                    choices     = formatChoices,
                                getFunc = 
                       function() 
                           return formatChoices[_settingsHandler.SavedVariables.HealthBarFormat]
                       end,
                                setFunc = 
                       function(value) 
                           for index, name in ipairs(formatChoices) do
                              if (name == value) then
                                _settingsHandler.SavedVariables.HealthBarFormat = index
                                _settingsHandler.OnGroupFramesSettingsChanged()
                                break
                              end
                           end
                                   end,
                    disabled = 
                        function() 
                           return _settingsHandler.SavedVariables.IsGroupFramesEnabled == false or
                                  _settingsHandler.SavedVariables.ShowUltimateInsteadHaelth == true
                        end,
                                default     = formatChoices[TGT_DEFAULTS.HealthBarFormat]
                        },
                -- Shield color
                TGT_SettingsWindow.GetNewColorpicker(
                    GROUP_FRAMES,
                    "ShieldColor",
                    GetString(TGT_OPTIONS_SHIELD_COLOR_LABEL), 
                    GetString(TGT_OPTIONS_SHIELD_COLOR_TOOLTIP), 
                    function() return _settingsHandler.SavedVariables.IsGroupFramesEnabled == false or
                                      _settingsHandler.SavedVariables.ShowUltimateInsteadHaelth == true end),
                -- Progress health color
                TGT_SettingsWindow.GetNewColorpicker(
                    GROUP_FRAMES,
                    "HealthProgrColor",
                    GetString(TGT_OPTIONS_PROGR_HEALTH_COLOR_LABEL), 
                    GetString(TGT_OPTIONS_PROGR_HEALTH_COLOR_TOOLTIP), 
                    function() return _settingsHandler.SavedVariables.IsGroupFramesEnabled == false or
                                      _settingsHandler.SavedVariables.ShowUltimateInsteadHaelth == true end),
                -- Ready health color
                TGT_SettingsWindow.GetNewColorpicker(
                    GROUP_FRAMES,
                    "HealthReadyColor",
                    GetString(TGT_OPTIONS_READY_HEALTH_COLOR_LABEL), 
                    GetString(TGT_OPTIONS_READY_HEALTH_COLOR_TOOLTIP), 
                    function() return _settingsHandler.SavedVariables.IsGroupFramesEnabled == false or
                                      _settingsHandler.SavedVariables.ShowUltimateInsteadHaelth == true end),
                -- Progress ultimate color
                TGT_SettingsWindow.GetNewColorpicker(
                    GROUP_FRAMES,
                    "UltimateProgrColor",
                    GetString(TGT_OPTIONS_PROGR_ULTI_COLOR_LABEL), 
                    GetString(TGT_OPTIONS_PROGR_ULTI_COLOR_TOOLTIP), 
                    function() return _settingsHandler.SavedVariables.IsSendingDataActive == false or 
                                      _settingsHandler.SavedVariables.IsGroupFramesEnabled == false or
                                      _settingsHandler.SavedVariables.ShowUltimateInsteadHaelth == false end),
                -- Ready ultimate color
                TGT_SettingsWindow.GetNewColorpicker(
                    GROUP_FRAMES,
                    "UltimateReadyColor",
                    GetString(TGT_OPTIONS_READY_ULTI_COLOR_LABEL), 
                    GetString(TGT_OPTIONS_READY_ULTI_COLOR_TOOLTIP), 
                    function() return _settingsHandler.SavedVariables.IsSendingDataActive == false or 
                                      _settingsHandler.SavedVariables.IsGroupFramesEnabled == false or
                                      _settingsHandler.SavedVariables.ShowUltimateInsteadHaelth == false end),
                -- Progress stamina color
                TGT_SettingsWindow.GetNewColorpicker(
                    GROUP_FRAMES,
                    "StaminaProgrColor",
                    GetString(TGT_OPTIONS_PROGR_STAM_COLOR_LABEL), 
                    GetString(TGT_OPTIONS_PROGR_STAM_COLOR_TOOLTIP), 
                    function() return _settingsHandler.SavedVariables.IsGroupFramesEnabled == false or _settingsHandler.SavedVariables.Style[GROUP_FRAMES] ~= 1 end),
                -- Ready stamina color
                TGT_SettingsWindow.GetNewColorpicker(
                    GROUP_FRAMES,
                    "StaminaReadyColor",
                    GetString(TGT_OPTIONS_READY_STAM_COLOR_LABEL), 
                    GetString(TGT_OPTIONS_READY_STAM_COLOR_TOOLTIP), 
                    function() return _settingsHandler.SavedVariables.IsGroupFramesEnabled == false or _settingsHandler.SavedVariables.Style[GROUP_FRAMES] ~= 1 end),
                -- Progress magicka color
                TGT_SettingsWindow.GetNewColorpicker(
                    GROUP_FRAMES,
                    "MagickaProgrColor",
                    GetString(TGT_OPTIONS_PROGR_MAGK_COLOR_LABEL), 
                    GetString(TGT_OPTIONS_PROGR_MAGK_COLOR_TOOLTIP), 
                    function() return _settingsHandler.SavedVariables.IsGroupFramesEnabled == false or _settingsHandler.SavedVariables.Style[GROUP_FRAMES] ~= 1 end),
                -- Ready magicka color
                TGT_SettingsWindow.GetNewColorpicker(
                    GROUP_FRAMES,
                    "MagickaReadyColor",
                    GetString(TGT_OPTIONS_READY_MAGK_COLOR_LABEL), 
                    GetString(TGT_OPTIONS_READY_MAGK_COLOR_TOOLTIP), 
                    function() return _settingsHandler.SavedVariables.IsGroupFramesEnabled == false or _settingsHandler.SavedVariables.Style[GROUP_FRAMES] ~= 1 end),
                -- Submenu header
                {   type = "header",
                    name = GetString(TGT_OPTIONS_GROUP_BUFFS_HEADER), },
                -- Ability1
                {   type        = "dropdown",
                                name        = GetString(TGT_OPTIONS_TRACKED_BUFF_1_LABEL),
                                tooltip     = GetString(TGT_OPTIONS_TRACKED_BUFF_1_TOOLTIP),
                    choices     = buffTrackerChoises,
                                getFunc = 
                       function() 
                           return buffTrackerChoises[TGT_SettingsWindow.GetBuffIndex(_settingsHandler.SavedVariables.TrackedBuffs[GROUP_FRAMES].TrackedBuff1AbilityId)]
                       end,
                                setFunc = 
                       function(value) 
                           for index, choise in ipairs(buffTrackerChoises) do
                              if (choise == value) then
                                 _settingsHandler.SetTrackedBuff1AbilityIdSettings(GROUP_FRAMES, TGT_SettingsWindow.GetBuffId(index))
                                 break
                              end
                           end
                                   end,
                                default     = buffTrackerChoises[TGT_SettingsWindow.GetBuffIndex(TGT_DEFAULTS.TrackedBuffs[GROUP_FRAMES].TrackedBuff1AbilityId)],
                    disabled = 
                        function() 
                           return _settingsHandler.SavedVariables.IsGroupFramesEnabled == false or _settingsHandler.SavedVariables.Style[GROUP_FRAMES] ~= 1
                        end,
                        },
                -- Ability2
                {   type        = "dropdown",
                                name        = GetString(TGT_OPTIONS_TRACKED_BUFF_2_LABEL),
                                tooltip     = GetString(TGT_OPTIONS_TRACKED_BUFF_2_TOOLTIP),
                    choices     = buffTrackerChoises,
                                getFunc = 
                       function() 
                           return buffTrackerChoises[TGT_SettingsWindow.GetBuffIndex(_settingsHandler.SavedVariables.TrackedBuffs[GROUP_FRAMES].TrackedBuff2AbilityId)]
                       end,
                                setFunc = 
                       function(value) 
                           for index, choise in ipairs(buffTrackerChoises) do
                              if (choise == value) then
                                 _settingsHandler.SetTrackedBuff2AbilityIdSettings(GROUP_FRAMES, TGT_SettingsWindow.GetBuffId(index))
                                 break
                              end
                           end
                                   end,
                                default     = buffTrackerChoises[TGT_SettingsWindow.GetBuffIndex(TGT_DEFAULTS.TrackedBuffs[GROUP_FRAMES].TrackedBuff2AbilityId)],
                    disabled = 
                        function() 
                           return _settingsHandler.SavedVariables.IsGroupFramesEnabled == false or _settingsHandler.SavedVariables.Style[GROUP_FRAMES] ~= 1
                        end,
                        },
                -- Ability3
                {   type        = "dropdown",
                                name        = GetString(TGT_OPTIONS_TRACKED_BUFF_3_LABEL),
                                tooltip     = GetString(TGT_OPTIONS_TRACKED_BUFF_3_TOOLTIP),
                    choices     = buffTrackerChoises,
                                getFunc = 
                       function() 
                           return buffTrackerChoises[TGT_SettingsWindow.GetBuffIndex(_settingsHandler.SavedVariables.TrackedBuffs[GROUP_FRAMES].TrackedBuff3AbilityId)]
                       end,
                                setFunc = 
                       function(value) 
                           for index, choise in ipairs(buffTrackerChoises) do
                              if (choise == value) then
                                 _settingsHandler.SetTrackedBuff3AbilityIdSettings(GROUP_FRAMES, TGT_SettingsWindow.GetBuffId(index))
                                 break
                              end
                           end
                                   end,
                                default     = buffTrackerChoises[TGT_SettingsWindow.GetBuffIndex(TGT_DEFAULTS.TrackedBuffs[GROUP_FRAMES].TrackedBuff3AbilityId)],
                    disabled = 
                        function() 
                           return _settingsHandler.SavedVariables.IsGroupFramesEnabled == false or _settingsHandler.SavedVariables.Style[GROUP_FRAMES] ~= 1
                        end,
                        },
                -- Ability4
                {   type        = "dropdown",
                                name        = GetString(TGT_OPTIONS_TRACKED_BUFF_4_LABEL),
                                tooltip     = GetString(TGT_OPTIONS_TRACKED_BUFF_4_TOOLTIP),
                    choices     = buffTrackerChoises,
                                getFunc = 
                       function() 
                           return buffTrackerChoises[TGT_SettingsWindow.GetBuffIndex(_settingsHandler.SavedVariables.TrackedBuffs[GROUP_FRAMES].TrackedBuff4AbilityId)]
                       end,
                                setFunc = 
                       function(value) 
                           for index, choise in ipairs(buffTrackerChoises) do
                              if (choise == value) then
                                 _settingsHandler.SetTrackedBuff4AbilityIdSettings(GROUP_FRAMES, TGT_SettingsWindow.GetBuffId(index))
                                 break
                              end
                           end
                                   end,
                                default     = buffTrackerChoises[TGT_SettingsWindow.GetBuffIndex(TGT_DEFAULTS.TrackedBuffs[GROUP_FRAMES].TrackedBuff4AbilityId)],
                    disabled = 
                        function() 
                           return _settingsHandler.SavedVariables.IsGroupFramesEnabled == false or _settingsHandler.SavedVariables.Style[GROUP_FRAMES] ~= 1
                        end,
                        },
                -- Submenu header
                {   type = "header",
                    name = GetString(TGT_OPTIONS_SUB_GROUPS_HEADER), },
                -- Sub Group 1 Name
                {   type        = "editbox",
                                name        = GetString(TGT_OPTIONS_SUB_GROUP_1_LABEL),
                                tooltip     = GetString(TGT_OPTIONS_SUB_GROUP_TOOLTIP),
                                getFunc = 
                       function() 
                           return _settingsHandler.SavedVariables.GroupFrameGroups.SubGroup1.Name
                       end,
                                setFunc = 
                       function(value)
                            _settingsHandler.SetSubGroupName("SubGroup1", value)
                                   end,
                    disabled = 
                        function() 
                           return _settingsHandler.SavedVariables.IsGroupFramesEnabled == false
                        end,
                                default     = formatChoices[TGT_DEFAULTS.GroupFrameGroups.SubGroup1.Name]
                        },
                -- Sub Group 2 Name
                {   type        = "editbox",
                                name        = GetString(TGT_OPTIONS_SUB_GROUP_2_LABEL),
                                tooltip     = GetString(TGT_OPTIONS_SUB_GROUP_TOOLTIP),
                                getFunc = 
                       function() 
                           return _settingsHandler.SavedVariables.GroupFrameGroups.SubGroup2.Name
                       end,
                                setFunc = 
                       function(value)
                            _settingsHandler.SetSubGroupName("SubGroup2", value)
                                   end,
                    disabled = 
                        function() 
                           return _settingsHandler.SavedVariables.IsGroupFramesEnabled == false
                        end,
                                default     = formatChoices[TGT_DEFAULTS.GroupFrameGroups.SubGroup2.Name]
                        },
                -- Sub Group 3 Name
                {   type        = "editbox",
                                name        = GetString(TGT_OPTIONS_SUB_GROUP_3_LABEL),
                                tooltip     = GetString(TGT_OPTIONS_SUB_GROUP_TOOLTIP),
                                getFunc = 
                       function() 
                           return _settingsHandler.SavedVariables.GroupFrameGroups.SubGroup3.Name
                       end,
                                setFunc = 
                       function(value)
                            _settingsHandler.SetSubGroupName("SubGroup3", value)
                                   end,
                    disabled = 
                        function() 
                           return _settingsHandler.SavedVariables.IsGroupFramesEnabled == false
                        end,
                                default     = formatChoices[TGT_DEFAULTS.GroupFrameGroups.SubGroup3.Name]
                        },
                -- Sub Group 4 Name
                {   type        = "editbox",
                                name        = GetString(TGT_OPTIONS_SUB_GROUP_4_LABEL),
                                tooltip     = GetString(TGT_OPTIONS_SUB_GROUP_TOOLTIP),
                                getFunc = 
                       function() 
                           return _settingsHandler.SavedVariables.GroupFrameGroups.SubGroup4.Name
                       end,
                                setFunc = 
                       function(value)
                            _settingsHandler.SetSubGroupName("SubGroup4", value)
                                   end,
                    disabled = 
                        function() 
                           return _settingsHandler.SavedVariables.IsGroupFramesEnabled == false
                        end,
                                default     = formatChoices[TGT_DEFAULTS.GroupFrameGroups.SubGroup4.Name]
                        },
                -- Sub Group 5 Name
                {   type        = "editbox",
                                name        = GetString(TGT_OPTIONS_SUB_GROUP_5_LABEL),
                                tooltip     = GetString(TGT_OPTIONS_SUB_GROUP_TOOLTIP),
                                getFunc = 
                       function() 
                           return _settingsHandler.SavedVariables.GroupFrameGroups.SubGroup5.Name
                       end,
                                setFunc = 
                       function(value)
                            _settingsHandler.SetSubGroupName("SubGroup5", value)
                                   end,
                    disabled = 
                        function() 
                           return _settingsHandler.SavedVariables.IsGroupFramesEnabled == false
                        end,
                                default     = formatChoices[TGT_DEFAULTS.GroupFrameGroups.SubGroup5.Name]
                        },
            },
        },
        }
        
    return optionsData
end

--[[
        ==============
    PUBLIC METHODS
    ==============
]]--

--[[
        GetOptions creates settings and returns
]]--
function TGT_GroupFramesOptions.GetOptions(options)
    local optionsData = CreateOptions()
    
    -- Add options
    for i = 1 , #optionsData do 
        table.insert(options, optionsData[i])
    end
end

Compare with Previous | Blame