View Feature Request
AUI character/wide account settings
Feature #: 1841
File: AUI - Advanced UI
Date: 08/28/23 11:35 AM
By: Altorus
Status: Under Review
Hello,
I try to code the char/wide account setting in Mainmenu.lua:
Lua Code:
  1. AUI.MainMenu = {}
  2. AUI.Settings.MainMenu = {}
  3.  
  4. local g_lam = LibAddonMenu2
  5. local g_isInit = false
  6. local g_changedEnabled = false
  7. local g_modul_minimap_enabled = true
  8. local g_modul_unit_frames_enabled = true
  9. local g_modul_combat_stats_enabled = true
  10. local g_modul_action_bar_enabled = true
  11. local g_modul_buffs_enabled = true
  12. local g_modul_quest_tracker_enabled = false
  13. local g_modul_frame_mover_enabled = false
  14.  
  15. local function ConvertOptionsFromOlderVersion()
  16.     if AUI.Settings.MainMenu.converted315 then
  17.         return
  18.     end
  19.  
  20.     if AUI.Settings.MainMenu.modul_attributes_account_wide ~= nil then
  21.         AUI.Settings.MainMenu.modul_unit_frames_account_wide = AUI.Settings.MainMenu.modul_attributes_account_wide
  22.     end
  23.  
  24.     if AUI.Settings.MainMenu.modul_actionBar_account_wide ~= nil then
  25.         AUI.Settings.MainMenu.modul_action_bar_account_wide = AUI.Settings.MainMenu.modul_actionBar_account_wide
  26.     end
  27.    
  28.     if AUI.Settings.MainMenu.modul_questtacker_account_wide ~= nil then
  29.         AUI.Settings.MainMenu.modul_quest_tacker_account_wide = AUI.Settings.MainMenu.modul_questtacker_account_wide
  30.     end
  31.    
  32.     if AUI.Settings.MainMenu.modul_FrameMover_account_wide ~= nil then
  33.         AUI.Settings.MainMenu.modul_frame_mover_account_wide = AUI.Settings.MainMenu.modul_FrameMover_account_wide
  34.     end    
  35.  
  36.     if AUI.Settings.MainMenu.modul_attribute_enabled ~= nil then
  37.         AUI.Settings.MainMenu.modul_unit_frames_enabled = AUI.Settings.MainMenu.modul_attribute_enabled
  38.     end
  39.  
  40.     if AUI.Settings.MainMenu.modul_actionBar_enabled ~= nil then
  41.         AUI.Settings.MainMenu.modul_action_bar_enabled = AUI.Settings.MainMenu.modul_actionBar_enabled
  42.     end
  43.    
  44.     if AUI.Settings.MainMenu.modul_questtracker_enabled ~= nil then
  45.         AUI.Settings.MainMenu.modul_quest_tracker_enabled = AUI.Settings.MainMenu.modul_questtracker_enabled
  46.     end
  47.    
  48.     if AUI.Settings.MainMenu.modul_FrameMover_enabled ~= nil then
  49.         AUI.Settings.MainMenu.modul_frame_mover_enabled = AUI.Settings.MainMenu.modul_FrameMover_enabled
  50.     end
  51.  
  52.     AUI.Settings.MainMenu.converted315 = true
  53. end
  54.  
  55. local function GetDefaultSettings()
  56.     local defaultSettings =
  57.     {      
  58.         modul_minimap_account_wide = true,
  59.         modul_unit_frames_account_wide = true,
  60.         modul_combat_account_wide = true,
  61.         modul_action_bar_account_wide = true,  
  62.         modul_buffs_account_wide = true,   
  63.         modul_quest_tacker_account_wide = true,
  64.         modul_frame_mover_account_wide = true,
  65.         modul_minimap_enabled = true,
  66.         modul_unit_frames_enabled = true,  
  67.         modul_combat_stats_enabled = true
  68.         modul_action_bar_enabled = true,   
  69.         modul_buffs_enabled = true,
  70.         modul_quest_tracker_enabled = true,
  71.         modul_frame_mover_enabled = true,
  72.         show_start_message = true,
  73.         AUI_wide = nil,
  74.     }
  75.  
  76.     return defaultSettings
  77. end
  78.  
  79. local function AcceptSettings()
  80.     AUI.Settings.MainMenu.modul_minimap_enabled = g_modul_minimap_enabled
  81.     AUI.Settings.MainMenu.modul_unit_frames_enabled = g_modul_unit_frames_enabled
  82.     AUI.Settings.MainMenu.modul_combat_stats_enabled = g_modul_combat_stats_enabled
  83.     AUI.Settings.MainMenu.modul_action_bar_enabled = g_modul_action_bar_enabled
  84.     AUI.Settings.MainMenu.modul_buffs_enabled = g_modul_buffs_enabled
  85.     AUI.Settings.MainMenu.modul_quest_tracker_enabled = g_modul_quest_tracker_enabled
  86.     AUI.Settings.MainMenu.modul_frame_mover_enabled = g_modul_frame_mover_enabled
  87.    
  88.     ReloadUI()
  89. end
  90.  
  91. local function GetOptions()
  92.     local optionsTable = { 
  93.         {
  94.             type = "header",
  95.             name = AUI_TXT_COLOR_HEADER:Colorize(AUI.L10n.GetString("general"))
  96.         },     
  97.         {
  98.             type = "checkbox",
  99.             name = AUI.L10n.GetString("show_start_message"),
  100.             getFunc = function() return AUI.Settings.MainMenu.show_start_message end,
  101.             setFunc = function(value)
  102.                         AUI.Settings.MainMenu.show_start_message = value
  103.             end,
  104.             default = GetDefaultSettings().show_start_message,
  105.             width = "full",
  106.         },
  107.         {
  108.             type = "checkbox",
  109.             name = AUI.L10n.GetString("acount_wide"),
  110.             getFunc = function() if AUI.Settings.MainMenu.AUI_wide == nil then return true end return AUI.Settings.MainMenu.AUI_wide end,
  111.             setFunc = function(value)
  112.                         AUI.Settings.MainMenu.AUI_wide = value
  113.                         g_changedEnabled = true
  114.             end,
  115.             default = true,
  116.             width = "full",
  117.             warning = AUI.L10n.GetString("reloadui_manual_warning_tooltip"),
  118.         }
  119.         {
  120.             type = "header",
  121.             name = AUI_TXT_COLOR_HEADER:Colorize(AUI.L10n.GetString("module_management"))
  122.         }
  123.         {
  124.             type = "checkbox",
  125.             name = AUI.L10n.GetString("minimap_module_name"),
  126.             getFunc = function() return g_modul_minimap_enabled end,
  127.             setFunc = function(value)
  128.                         g_modul_minimap_enabled = value
  129.                         g_changedEnabled = true
  130.             end,
  131.             default = GetDefaultSettings().modul_minimap_enabled,
  132.             width = "full",
  133.             warning = AUI.L10n.GetString("reloadui_manual_warning_tooltip"),
  134.         },     
  135.         {
  136.             type = "checkbox",
  137.             name = AUI.L10n.GetString("attributes_module_name"),
  138.             getFunc = function() return g_modul_unit_frames_enabled end,
  139.             setFunc = function(value)
  140.                         g_modul_unit_frames_enabled  = value
  141.                         g_changedEnabled = true                    
  142.             end,
  143.             default = GetDefaultSettings().modul_unit_frames_enabled,
  144.             width = "full",
  145.             warning = AUI.L10n.GetString("reloadui_manual_warning_tooltip"),
  146.         },             
  147.         {
  148.             type = "checkbox",
  149.             name = AUI.L10n.GetString("combat_module_name"),
  150.             getFunc = function() return g_modul_combat_stats_enabled end,
  151.             setFunc = function(value)
  152.                         g_modul_combat_stats_enabled = value   
  153.                         g_changedEnabled = true
  154.             end,
  155.             default = GetDefaultSettings().modul_combat_stats_enabled,
  156.             width = "full",
  157.             warning = AUI.L10n.GetString("reloadui_manual_warning_tooltip"),
  158.         },         
  159.         {
  160.             type = "checkbox",
  161.             name = AUI.L10n.GetString("actionbar_module_name"),
  162.             getFunc = function() return g_modul_action_bar_enabled end,
  163.             setFunc = function(value)
  164.                         g_modul_action_bar_enabled = value
  165.                         g_changedEnabled = true
  166.             end,
  167.             default = GetDefaultSettings().modul_action_bar_enabled,
  168.             width = "full",
  169.             warning = AUI.L10n.GetString("reloadui_manual_warning_tooltip"),
  170.         }
  171.         {
  172.             type = "checkbox",
  173.             name = AUI.L10n.GetString("buffs_module_name"),
  174.             getFunc = function() return g_modul_buffs_enabled end,
  175.             setFunc = function(value)
  176.                         g_modul_buffs_enabled = value
  177.                         g_changedEnabled = true
  178.             end,
  179.             default = GetDefaultSettings().modul_buffs_enabled,
  180.             width = "full",
  181.             warning = AUI.L10n.GetString("reloadui_manual_warning_tooltip"),
  182.         }
  183.         {
  184.             type = "checkbox",
  185.             name = AUI.L10n.GetString("quest_tracker_module_name"),
  186.             getFunc = function() return g_modul_quest_tracker_enabled end,
  187.             setFunc = function(value)
  188.                         g_modul_quest_tracker_enabled = value
  189.                         g_changedEnabled = true
  190.             end,
  191.             default = GetDefaultSettings().modul_quest_tracker_enabled,
  192.             width = "full",
  193.             warning = AUI.L10n.GetString("reloadui_manual_warning_tooltip"),
  194.         },     
  195.         {
  196.             type = "checkbox",
  197.             name = AUI.L10n.GetString("frame_mover_module_name"),
  198.             getFunc = function() return g_modul_frame_mover_enabled end,
  199.             setFunc = function(value)
  200.                         g_modul_frame_mover_enabled = value
  201.                         g_changedEnabled = true
  202.             end,
  203.             default = GetDefaultSettings().modul_frame_mover_enabled,
  204.             width = "full",
  205.             warning = AUI.L10n.GetString("reloadui_manual_warning_tooltip"),
  206.         },         
  207.         {
  208.             type = "header",
  209.         },     
  210.         {
  211.             type = "button",
  212.             name = AUI.L10n.GetString("accept_settings"),
  213.             func = function() AcceptSettings() end,
  214.             disabled = function() return not g_changedEnabled end,
  215.         },     
  216.     }
  217.    
  218.     return optionsTable
  219. end
  220.  
  221. local function LoadSettings()
  222.     AUI.Settings.MainMenu = ZO_SavedVars:NewAccountWide("AUI_Main", 1, nil, GetDefaultSettings())
  223.  
  224.     if AUI.Settings.MainMenu.AUI_wide == false then
  225.         AUI.Settings.MainMenu_Pers = ZO_SavedVars:New("AUI_Main", 1, nil, GetDefaultSettings())
  226. -- if AUI_wide is nil copy AccountWide settings
  227.         if AUI.Settings.MainMenu_Pers.AUI_wide == nil then
  228.             AUI.Settings.MainMenu_Pers.modul_minimap_enabled = AUI.Settings.MainMenu.modul_minimap_enabled
  229.             AUI.Settings.MainMenu_Pers.modul_unit_frames_enabled = AUI.Settings.MainMenu.modul_unit_frames_enabled
  230.             AUI.Settings.MainMenu_Pers.modul_combat_stats_enabled = AUI.Settings.MainMenu.modul_combat_stats_enabled
  231.             AUI.Settings.MainMenu_Pers.modul_action_bar_enabled = AUI.Settings.MainMenu.modul_action_bar_enabled
  232.             AUI.Settings.MainMenu_Pers.modul_buffs_enabled = AUI.Settings.MainMenu.modul_buffs_enabled
  233.             AUI.Settings.MainMenu_Pers.modul_quest_tracker_enabled = AUI.Settings.MainMenu.modul_quest_tracker_enabled
  234.             AUI.Settings.MainMenu_Pers.modul_frame_mover_enabled  = AUI.Settings.MainMenu.modul_frame_mover_enabled
  235.         end
  236.         AUI.Settings.MainMenu_Pers.AUI_wide = false
  237.         AUI.Settings.MainMenu = AUI.Settings.MainMenu_Pers
  238.     end
  239.     g_modul_minimap_enabled = AUI.Settings.MainMenu.modul_minimap_enabled
  240.     g_modul_unit_frames_enabled = AUI.Settings.MainMenu.modul_unit_frames_enabled
  241.     g_modul_combat_stats_enabled = AUI.Settings.MainMenu.modul_combat_stats_enabled
  242.     g_modul_action_bar_enabled = AUI.Settings.MainMenu.modul_action_bar_enabled
  243.     g_modul_buffs_enabled = AUI.Settings.MainMenu.modul_buffs_enabled
  244.     g_modul_quest_tracker_enabled = AUI.Settings.MainMenu.modul_quest_tracker_enabled
  245.     g_modul_frame_mover_enabled = AUI.Settings.MainMenu.modul_frame_mover_enabled
  246. end
  247.  
  248. function AUI.MainMenu.SetMenuData()
  249.     if g_isInit then
  250.         return
  251.     end
  252.    
  253.     local panelData = {
  254.         type = "panel",
  255.         name = AUI_MAIN_NAME .. " (" .. AUI.L10n.GetString("module_management") .. ")",
  256.         displayName = "|cFFFFB0" .. AUI_MAIN_NAME .. " (" .. AUI.L10n.GetString("module_management") .. ")",
  257.         author = AUI_TXT_COLOR_AUTHOR:Colorize(AUI_MAIN_AUTHOR),
  258.         version = AUI_TXT_COLOR_VERSION:Colorize(AUI_MAIN_VERSION),
  259.         slashCommand = "/aui",
  260.         registerForRefresh = true,
  261.         registerForDefaults = true,
  262.     }
  263.    
  264.     LoadSettings()
  265.     ConvertOptionsFromOlderVersion()
  266.    
  267.     g_lam:RegisterOptionControls("AUI_MainMenu", GetOptions())
  268.     g_lam:RegisterAddonPanel("AUI_MainMenu", panelData)
  269.    
  270.     g_isInit = true
  271. end