From 2ecd8e1030d6c89f4d8d2d9f692f88bb9c9a9919 Mon Sep 17 00:00:00 2001 From: Azilroka Date: Sat, 15 Mar 2014 12:10:28 -0500 Subject: [PATCH] Incompatible System --- ElvUI_SLE/ElvUI_SLE.lua | 25 ++++++++++++++++++++++--- ElvUI_SLE/dev/staticpopups.lua | 9 +++++++++ ElvUI_SLE/locales/english.lua | 1 + ElvUI_SLE/modules/minimap/minimapicons.lua | 4 +++- ElvUI_SLE/modules/minimap/options.lua | 10 +++++++++- 5 files changed, 44 insertions(+), 5 deletions(-) diff --git a/ElvUI_SLE/ElvUI_SLE.lua b/ElvUI_SLE/ElvUI_SLE.lua index 0ee22da..a62a797 100755 --- a/ElvUI_SLE/ElvUI_SLE.lua +++ b/ElvUI_SLE/ElvUI_SLE.lua @@ -163,6 +163,27 @@ function SLE:GetOptions() end end +function SLE:IncompatibleAddOn(addon, module, optiontable, value) + E.PopupDialogs['SLE_INCOMPATIBLE_ADDON'].button1 = addon + E.PopupDialogs['SLE_INCOMPATIBLE_ADDON'].button2 = 'S&L: '..module + E.PopupDialogs['SLE_INCOMPATIBLE_ADDON'].addon = addon + E.PopupDialogs['SLE_INCOMPATIBLE_ADDON'].module = module + E.PopupDialogs['SLE_INCOMPATIBLE_ADDON'].optiontable = optiontable + E.PopupDialogs['SLE_INCOMPATIBLE_ADDON'].value = value + E.PopupDialogs['SLE_INCOMPATIBLE_ADDON'].showAlert = true + E:StaticPopup_Show('SLE_INCOMPATIBLE_ADDON', addon, module) +end + +function SLE:CheckIncompatible() + if E.global.ignoreIncompatible then return; end + if IsAddOnLoaded('ElvUI_Enhanced') then + E:StaticPopup_Show('ENHANCED_SLE_INCOMPATIBLE') + end + if IsAddOnLoaded('SquareMinimapButtons') and E.private.sle.minimap.mapicons.enable then + SLE:IncompatibleAddOn('SquareMinimapButtons', 'SquareMinimapButtons', E.private.sle.minimap.mapicons, "enable") + end +end + function SLE:Initialize() --Showing warning message about too old versions of ElvUI if tonumber(E.version) < 6.55 then @@ -182,9 +203,7 @@ function SLE:Initialize() SLE:ConfigCats() SLE:ChatPos() SLE:RegisterCommands() - if select(4, GetAddOnInfo('ElvUI_Enhanced')) then - E:StaticPopup_Show('ENHANCED_SLE_INCOMPATIBLE') - end + SLE:CheckIncompatible() end E:RegisterModule(SLE:GetName()) \ No newline at end of file diff --git a/ElvUI_SLE/dev/staticpopups.lua b/ElvUI_SLE/dev/staticpopups.lua index 1cf63e6..6ddd32e 100755 --- a/ElvUI_SLE/dev/staticpopups.lua +++ b/ElvUI_SLE/dev/staticpopups.lua @@ -17,4 +17,13 @@ E.PopupDialogs['ENHANCED_SLE_INCOMPATIBLE'] = { timeout = 0, whileDead = 1, hideOnEscape = false, +} + +E.PopupDialogs['SLE_INCOMPATIBLE_ADDON'] = { + text = L["SLE_INCOMPATIBLE_ADDON"], + OnAccept = function(self) DisableAddOn(E.PopupDialogs['SLE_INCOMPATIBLE_ADDON'].addon); ReloadUI(); end, + OnCancel = function(self) E.PopupDialogs['SLE_INCOMPATIBLE_ADDON'].optiontable[E.PopupDialogs['SLE_INCOMPATIBLE_ADDON'].value] = false; ReloadUI(); end, + timeout = 0, + whileDead = 1, + hideOnEscape = false, } \ No newline at end of file diff --git a/ElvUI_SLE/locales/english.lua b/ElvUI_SLE/locales/english.lua index 8190a09..512bc06 100755 --- a/ElvUI_SLE/locales/english.lua +++ b/ElvUI_SLE/locales/english.lua @@ -26,6 +26,7 @@ L["Reset All"] = true L["Reset all Shadow & Light options and movers to their defaults"] = true L["Reset these options to defaults"] = true L['Oh lord, you have got ElvUI Enhanced and Shadow & Light both enabled at the same time. Select an addon to disable.'] = true +L["SLE_INCOMPATIBLE_ADDON"] = "The addon %s is not compatible with Shadow & Light's %s module. Please select either the addon or the Shadow & Light module to disable." --Install-- L["Shadow & Light Settings"] = true diff --git a/ElvUI_SLE/modules/minimap/minimapicons.lua b/ElvUI_SLE/modules/minimap/minimapicons.lua index 411362e..e2848a4 100755 --- a/ElvUI_SLE/modules/minimap/minimapicons.lua +++ b/ElvUI_SLE/modules/minimap/minimapicons.lua @@ -14,6 +14,7 @@ if E.private.sle == nil then E.private.sle = {} end if E.private.sle.minimap == nil then E.private.sle.minimap = {} end if E.private.sle.minimap.mapicons == nil then E.private.sle.minimap.mapicons = {} end if E.private.sle.minimap.mapicons.enable == nil then E.private.sle.minimap.mapicons.enable = false end +if E.private.sle.minimap.mapicons.barenable == nil then E.private.sle.minimap.mapicons.barenable = false end if E.db.sle.minimap == nil then E.db.sle.minimap = {} end if E.db.sle.minimap.mapicons == nil then E.db.sle.minimap.mapicons = {} end @@ -248,7 +249,7 @@ local function SkinButton(Button) end function SMB:Update(self) - if not E.private.sle.minimap.mapicons.enable then return end + if not E.private.sle.minimap.mapicons.barenable then return end local AnchorX, AnchorY, MaxX = 0, 1, E.db.sle.minimap.mapicons.iconperrow local ButtonsPerRow = E.db.sle.minimap.mapicons.iconperrow @@ -316,6 +317,7 @@ function SMB:Update(self) end function SMB:Initialize() + if not E.private.sle.minimap.mapicons.enable then return end SquareMinimapButtonBar = CreateFrame('Frame', 'SquareMinimapButtonBar', E.UIParent) SquareMinimapButtonBar:RegisterEvent('ADDON_LOADED') SquareMinimapButtonBar.Skin = function() diff --git a/ElvUI_SLE/modules/minimap/options.lua b/ElvUI_SLE/modules/minimap/options.lua index 90fcb01..ed5a647 100755 --- a/ElvUI_SLE/modules/minimap/options.lua +++ b/ElvUI_SLE/modules/minimap/options.lua @@ -77,10 +77,18 @@ local function configTable() order = 1, type = 'toggle', name = L['Enable'], - desc = L['Enable/Disable Square Minimap Bar.'], + desc = L['Enable/Disable Square Minimap Buttons.'], get = function(info) return E.private.sle.minimap.mapicons.enable end, set = function(info, value) E.private.sle.minimap.mapicons.enable = value; E:StaticPopup_Show("PRIVATE_RL") end, }, + barenable = { + order = 2, + type = "toggle", + name = L["Bar Enable"], + desc = L['Enable/Disable Square Minimap Bar.'], + get = function(info) return E.private.sle.minimap.mapicons.barenable end, + set = function(info, value) E.private.sle.minimap.mapicons.barenable = value; E:StaticPopup_Show("PRIVATE_RL") end, + }, skindungeon = { order = 3, type = 'toggle', -- 1.7.9.5