Compare with Previous | Blame | View Log
--[[ Addon: Taos Group Tools Author: TProg Taonnor Created by @Taonnor ]]-- --[[ Local variables ]]-- local _settingsHandler = TGT_SettingsHandler local _lamPanel = nil local _choosenIconTexture = nil --[[ Table GroupLeaderOptions ]]-- TGT_GroupLeaderOptions = {} TGT_GroupLeaderOptions.__index = TGT_GroupLeaderOptions --[[ =============== PRIVATE METHODS =============== ]]-- --[[ SetupLAMIcon Setups the LAM icon control "TGT_ChoosenIcon" ]]-- local function SetupLAMIcon(control) if (control == _lamPanel) then if (_choosenIconTexture == nil) then _choosenIconTexture = WINDOW_MANAGER:CreateControl(nil, TGT_ChoosenIcon, CT_TEXTURE) _choosenIconTexture:ClearAnchors() _choosenIconTexture:SetAnchor(RIGHT, TGT_ChoosenIcon.dropdown:GetControl(), LEFT, -48, -2) _choosenIconTexture:SetTexture(_settingsHandler.Icons[_settingsHandler.SavedVariables.Icon].path) _choosenIconTexture:SetDimensions(48, 48) end CALLBACK_MANAGER:UnregisterCallback("LAM-PanelControlsCreated", SetupLAMIcon) end end --[[ Creates options ]]-- local function CreateOptions() -- Add icon choises local iconChoises = {} for key, val in pairs(_settingsHandler.Icons) do table.insert(iconChoises, val.name) end -- Add font choises local fontChoises = {} for key, val in pairs(_settingsHandler.CompassFonts) do table.insert(fontChoises, val.name) end local optionsData = { -- Submenu Group Leader Options { type = "submenu", name = GetString(TGT_OPTIONS_GROUP_LEADER_HEADER), controls = { -- Submenu header { type = "header", name = GetString(TGT_OPTIONS_GROUP_LEADER_CROWN), }, -- Leader icon active { type = "checkbox", name = GetString(TGT_OPTIONS_ICONS_ACTIVE_LABEL), tooltip = GetString(TGT_OPTIONS_ICONS_ACTIVE_TOOLTIP), getFunc = function() return _settingsHandler.SavedVariables.IsLeaderIconActive end, setFunc = function(value) _settingsHandler.SetIsLeaderIconActiveSettings(value) end, default = TGT_DEFAULTS.IsLeaderIconActive, }, -- Icon size { type = "slider", name = GetString(TGT_OPTIONS_SIZE_LABEL), tooltip = GetString(TGT_OPTIONS_SIZE_TOOLTIP), min = 32, max = 256, getFunc = function() return _settingsHandler.SavedVariables.IconSize end, setFunc = function(value) _settingsHandler.SetIconSizeSettings(value) end, default = TGT_DEFAULTS.IconSize, disabled = function() return _settingsHandler.SavedVariables.IsLeaderIconActive == false end, }, -- Icon type { type = "dropdown", name = GetString(TGT_OPTIONS_ICONS_LABEL), tooltip = GetString(TGT_OPTIONS_ICONS_TOOLTIP), choices = iconChoises, getFunc = function() return _settingsHandler.Icons[_settingsHandler.SavedVariables.Icon].name end, setFunc = function(value) for index, icon in ipairs(_settingsHandler.Icons) do if (icon.name == value) then _settingsHandler.SetIconSettings(index) _choosenIconTexture:SetTexture(icon.path) break end end end, default = _settingsHandler.Icons[TGT_DEFAULTS.Icon], reference = "TGT_ChoosenIcon", disabled = function() return _settingsHandler.SavedVariables.IsLeaderIconActive == false end, }, -- Submenu header { type = "header", name = GetString(TGT_OPTIONS_GROUP_LEADER_ARROW), }, -- Leader arrow active { type = "checkbox", name = GetString(TGT_OPTIONS_ARROW_ACTIVE_LABEL), tooltip = GetString(TGT_OPTIONS_ARROW_ACTIVE_TOOLTIP), getFunc = function() return _settingsHandler.SavedVariables.IsLeaderArrowActive end, setFunc = function(value) _settingsHandler.SetIsLeaderArrowActiveSettings(value) end, default = TGT_DEFAULTS.IsLeaderArrowActive, }, -- Arrow color TGT_SettingsWindow.GetNewColorpicker( GROUP_LEADER, "ArrowColor", GetString(TGT_OPTIONS_ARROW_COLOR_LABEL), GetString(TGT_OPTIONS_ARROW_COLOR_TOOLTIP), function() return _settingsHandler.SavedVariables.IsLeaderArrowActive == false end), -- Circle distance { type = "slider", name = GetString(TGT_OPTIONS_CIRCLE_DISTANCE_LABEL), tooltip = GetString(TGT_OPTIONS_CIRCLE_DISTANCE_TOOLTIP), min = 0, max = 256, step = 1, getFunc = function() return _settingsHandler.SavedVariables.CircleDistance end, setFunc = function(value) _settingsHandler.SetCircleDistanceSettings(value) end, default = TGT_DEFAULTS.CircleDistance, disabled = function() return _settingsHandler.SavedVariables.IsLeaderArrowActive == false end, }, -- Leader arrow distance active { type = "checkbox", name = GetString(TGT_OPTIONS_ARROW_DISTANCE_LABEL), tooltip = GetString(TGT_OPTIONS_ARROW_DISTANCE_TOOLTIP), getFunc = function() return _settingsHandler.SavedVariables.LeaderArrowDistance end, setFunc = function(value) _settingsHandler.SetLeaderArrowDistanceSettings(value) end, default = TGT_DEFAULTS.LeaderArrowDistance, disabled = function() return _settingsHandler.SavedVariables.IsLeaderArrowActive == false end, }, -- Min distance { type = "slider", name = GetString(TGT_OPTIONS_MIN_DISTANCE_LABEL), tooltip = GetString(TGT_OPTIONS_MIN_DISTANCE_TOOLTIP), min = 0, max = 256, step = 1, getFunc = function() return _settingsHandler.SavedVariables.MinDistance end, setFunc = function(value) _settingsHandler.SetMinDistanceSettings(value) end, default = TGT_DEFAULTS.MinDistance, disabled = function() return _settingsHandler.SavedVariables.IsLeaderArrowActive == false end, }, -- Max distance { type = "slider", name = GetString(TGT_OPTIONS_MAX_DISTANCE_LABEL), tooltip = GetString(TGT_OPTIONS_MAX_DISTANCE_TOOLTIP), min = 0, max = 256, step = 1, getFunc = function() return _settingsHandler.SavedVariables.MaxDistance end, setFunc = function(value) _settingsHandler.SetMaxDistanceSettings(value) end, default = TGT_DEFAULTS.MaxDistance, disabled = function() return _settingsHandler.SavedVariables.IsLeaderArrowActive == false end, }, -- Submenu header { type = "header", name = GetString(TGT_OPTIONS_GROUP_LEADER_COMPASS), }, -- Leader compass active { type = "checkbox", name = GetString(TGT_OPTIONS_COMPASS_ACTIVE_LABEL), tooltip = GetString(TGT_OPTIONS_COMPASS_ACTIVE_TOOLTIP), getFunc = function() return _settingsHandler.SavedVariables.IsCustomizedCompassActive end, setFunc = function(value) _settingsHandler.SetIsCustomizedCompassActiveSettings(value) end, default = TGT_DEFAULTS.IsCustomizedCompassActive, }, -- Default compass hidden { type = "checkbox", name = GetString(TGT_OPTIONS_ZOS_COMPASS_ACTIVE_LABEL), tooltip = GetString(TGT_OPTIONS_ZOS_COMPASS_ACTIVE_TOOLTIP), getFunc = function() return _settingsHandler.SavedVariables.HideStandardCompass end, setFunc = function(value) _settingsHandler.SetHideStandardCompassSettings(value) end, default = TGT_DEFAULTS.HideStandardCompass, disabled = function() return _settingsHandler.SavedVariables.IsCustomizedCompassActive == false end, }, -- Compass color TGT_SettingsWindow.GetNewColorpicker( GROUP_LEADER, "CompassColor", GetString(TGT_OPTIONS_COMPASS_COLOR_LABEL), GetString(TGT_OPTIONS_COMPASS_COLOR_TOOLTIP), function() return _settingsHandler.SavedVariables.IsCustomizedCompassActive == false end), -- Radius { type = "slider", name = GetString(TGT_OPTIONS_COMPASS_RADIUS_LABEL), tooltip = GetString(TGT_OPTIONS_COMPASS_RADIUS_TOOLTIP), min = 64, max = 512, step = 1, getFunc = function() return _settingsHandler.SavedVariables.CompassRadius end, setFunc = function(value) _settingsHandler.SetCompassRadiusSettings(value) end, default = TGT_DEFAULTS.CompassRadius, disabled = function() return _settingsHandler.SavedVariables.IsCustomizedCompassActive == false end, }, -- Font { type = "dropdown", name = GetString(TGT_OPTIONS_COMPASS_FONTS_LABEL), tooltip = GetString(TGT_OPTIONS_COMPASS_FONTS_TOOLTIP), choices = fontChoises, getFunc = function() return _settingsHandler.CompassFonts[_settingsHandler.SavedVariables.CompassFont].name end, setFunc = function(value) for index, icon in ipairs(_settingsHandler.CompassFonts) do if (icon.name == value) then _settingsHandler.SetCompassFontSettings(index) break end end end, default = _settingsHandler.CompassFonts[TGT_DEFAULTS.CompassFont], disabled = function() return _settingsHandler.SavedVariables.IsCustomizedCompassActive == false end, }, -- Font Size { type = "slider", name = GetString(TGT_OPTIONS_COMPASS_FONT_SIZE_LABEL), tooltip = GetString(TGT_OPTIONS_COMPASS_FONT_SIZE_TOOLTIP), min = 12, max = 32, step = 1, getFunc = function() return _settingsHandler.SavedVariables.CompassFontSize end, setFunc = function(value) _settingsHandler.SetCompassFontSizeSettings(value) end, default = TGT_DEFAULTS.CompassFontSize, disabled = function() return _settingsHandler.SavedVariables.IsCustomizedCompassActive == false end, }, -- Flat compass { type = "checkbox", name = GetString(TGT_OPTIONS_COMPASS_FLAT_LABEL), tooltip = GetString(TGT_OPTIONS_COMPASS_FLAT_TOOLTIP), getFunc = function() return _settingsHandler.SavedVariables.FlatCompass end, setFunc = function(value) _settingsHandler.SetCompassFlatCompassSettings(value) end, default = TGT_DEFAULTS.FlatCompass, disabled = function() return _settingsHandler.SavedVariables.IsCustomizedCompassActive == false end, }, }, }, } return optionsData end --[[ ============== PUBLIC METHODS ============== ]]-- --[[ SetLamPanel sets lamPanel to create icon callback ]]-- function TGT_GroupLeaderOptions.SetLamPanel(lamPanel) _lamPanel = lamPanel end --[[ GetOptions creates settings and returns ]]-- function TGT_GroupLeaderOptions.GetOptions(options, lamPanel) local optionsData = CreateOptions() -- Register to callback for creating preview icon CALLBACK_MANAGER:RegisterCallback("LAM-PanelControlsCreated", SetupLAMIcon) -- Add options for i = 1 , #optionsData do table.insert(options, optionsData[i]) end end