diff --git a/LAddMin.lua b/LAddMin.lua
index 63860bb..a72b602 100644
--- a/LAddMin.lua
+++ b/LAddMin.lua
@@ -1,5 +1,5 @@
-------------------------------------------------------------------------------
--- LAddMin v0.1
+-- LAddMin v0.2
-------------------------------------------------------------------------------
--
-- Copyright (c) 2014 Ales Machat (Garkin)
@@ -34,42 +34,40 @@ local LAM1 = LibStub("LibAddonMenu-1.0")
local LAM2 = LibStub("LibAddonMenu-2.0")
-------------------------------------------------------------------------------
--- Library replacement --------------------------------------------------------
+-- Local variables ------------------------------------------------------------
-------------------------------------------------------------------------------
-local FAKE_LAM1 = setmetatable ({}, { __index = LAM1 })
-LibStub.libs["LibAddonMenu-1.0"] = FAKE_LAM1
-LibStub.minors["LibAddonMenu-1.0"] = 999
-
-local settingsTable = {}
+local sv
local panelIDs = {}
+local settingsTable = {}
+local invalidAddons = {
+ ["Rainbow Config"] = true,
+}
+-- local missedPanelIDs = {}
+-- local lastID = 1000
-local excludeList = {
- "_mainPanel",
- "_optionsRestacker",
- "_vicstersAddons",
- "X4D_LibAntiSpam_CPL",
- "X4D_Chat_CPL",
- "SCA",
- "|cFF2222Wykkyd's|r ConfigPanel",
- "FTC_SettingsPanel",
- "SousChefMenu",
- "SpamFilter_OptionsPanel",
- "Undiscovered_OptionsPanel",
- "Azurah_SettingsMenu",
- "Srendarr_SettingsMenu",
- "pCHAT_OPTIONS",
- }
-------------------------------------------------------------------------------
--- FAKE_LAM1 functions --------------------------------------------------------
+-- Library replacement --------------------------------------------------------
-------------------------------------------------------------------------------
+--LAM 1.0 to 2.0 interface
+FAKE_LAM1 = setmetatable ({}, { __index = LAM1 })
+LibStub.libs["LibAddonMenu-1.0"] = FAKE_LAM1
+LibStub.minors["LibAddonMenu-1.0"] = 999
-- LAM1:CreateControlPanel(controlPanelID, controlPanelName)
function FAKE_LAM1:CreateControlPanel(controlPanelID, controlPanelName)
local name = controlPanelName:gsub("|[cC]%w%w%w%w%w%w",""):gsub("|[rR]","")
- for i,v in ipairs(excludeList) do
- if controlPanelID == v then
+ if sv == nil then
+ if not invalidAddons[name] then
+ invalidAddons[name] = false
+ return LAM1:CreateControlPanel(controlPanelID, name)
+ end
+ else
+ if not sv.enabled[name] then
+ if sv.enabled[name] == nil then
+ sv.enabled[name] = false
+ end
return LAM1:CreateControlPanel(controlPanelID, name)
end
end
@@ -278,3 +276,63 @@ function FAKE_LAM1:AddSubMenu(panelID, controlName, text, tooltip)
return tab[#tab].controls
end
+
+
+-------------------------------------------------------------------------------
+-- Local functions ------------------------------------------------------------
+-------------------------------------------------------------------------------
+local function CreateSettingsMenu()
+ local panel = {
+ name = "L'AddonMinder",
+ displayName = "|cFFFFB0L'AddonMinder|r",
+ author = "Garkin",
+ version = "0.2",
+ registerForRefresh = true,
+ registerForDefaults = true
+ }
+ LAM2:RegisterAddonPanel("LAddMin_Panel", panel)
+
+ local addonNames = {}
+ for name in pairs(sv.enabled) do
+ table.insert(addonNames, name)
+ end
+ table.sort(addonNames)
+
+ local controlTable = {}
+ for _,name in ipairs(addonNames) do
+ local checkbox = {
+ type = "checkbox",
+ name = name,
+ getFunc = function() return sv.enabled[name] end,
+ setFunc = function(value) sv.enabled[name] = value end,
+ default = false
+ }
+ table.insert(controlTable, checkbox)
+ end
+
+ local text = {}
+ for name in pairs(invalidAddons) do
+ table.insert(text, name)
+ end
+ if #text > 0 then
+ table.insert(controlTable, { type = "description", title = "Invalid addons:", text = table.concat(text, "\n- ") })
+ end
+
+ table.insert(controlTable, { type = "button", name = GetString(SI_ADDON_MANAGER_RELOAD), func = function() ReloadUI("ingame") end } )
+
+ LAM2:RegisterOptionControls("LAddMin_Panel", controlTable)
+end
+
+local function OnAddonLoaded(code, addon)
+ if addon ~= "LAddMin" then return end
+
+ sv = ZO_SavedVars:NewAccountWide("LAddMin_SavedVariables", 1, "Addons", { enabled = {} })
+
+ CreateSettingsMenu()
+
+ CALLBACK_MANAGER:RegisterCallback("LAM-PanelControlsCreated", DelayedCalls)
+
+ EVENT_MANAGER:UnregisterForEvent(addon, code)
+end
+
+EVENT_MANAGER:RegisterForEvent("LAddMin", EVENT_ADD_ON_LOADED, OnAddonLoaded)
diff --git a/LAddMin.txt b/LAddMin.txt
index 5aa7723..e26949b 100644
--- a/LAddMin.txt
+++ b/LAddMin.txt
@@ -1,10 +1,13 @@
-## Title: |cFFFFB0LAddMin|r 0.1 - By |c00C000Garkin|r
-## Version: 0.1
+## Title: |cFFFFB0L'AddonMinder|r 0.2 - By |c00C000Garkin|r
+## Version: 0.2
## Author: Garkin
## APIVersion: 100004
+## SavedVariables: LAddMin_SavedVariables
Libs\LibStub\LibStub.lua
+
Libs\LibAddonMenu-1.0\LibAddonMenu-1.0.lua
+
Libs\LibAddonMenu-2.0\LibAddonMenu-2.0.lua
Libs\LibAddonMenu-2.0\controls\panel.lua
Libs\LibAddonMenu-2.0\controls\submenu.lua
diff --git a/LibAddonMenu-1.0.txt b/LibAddonMenu-1.0.txt
index 2347272..98cad4c 100644
--- a/LibAddonMenu-1.0.txt
+++ b/LibAddonMenu-1.0.txt
@@ -1,4 +1,5 @@
-## Title: |cFFFFB0LAddMin loader|r 0.1
+## Title: |cFFFFB0L'AddonMinder loader|r
+## Version: 0.1
## APIVersion: 100004
## DependsOn: LAddMin