diff --git a/SVUI_Skins/Loader.lua b/SVUI_Skins/Loader.lua
index 20e7109..1a70ce8 100644
--- a/SVUI_Skins/Loader.lua
+++ b/SVUI_Skins/Loader.lua
@@ -57,6 +57,7 @@ end
SV.defaults[Schema] = {
["enable"] = true,
+ ["enableAddonDock"] = true,
["blizzard"] = {
["enable"] = true,
["bags"] = true,
@@ -170,27 +171,37 @@ function MOD:LoadOptions()
name = L["Docked Addons"],
guiInline = true,
args = {
+ enableAddonDock = {
+ type = "toggle",
+ order = 1,
+ width = "full",
+ name = "Enable Docking",
+ get = function() return SV.db[Schema].enableAddonDock end,
+ set = function(a,value) SV.db[Schema].enableAddonDock = value; MOD:RegisterAddonDocklets() end,
+ },
DockletMain = {
type = "select",
- order = 1,
+ order = 2,
name = "Primary Docklet",
desc = "Select an addon to occupy the primary docklet window",
+ disabled = function() return not SV.db[Schema].enableAddonDock end,
values = function() return MOD:GetDockables() end,
get = function() return SV.private.Docks.Embed1 end,
set = function(a,value) SV.private.Docks.Embed1 = value; MOD:RegisterAddonDocklets() end,
},
DockletSplit = {
type = "select",
- order = 2,
+ order = 3,
name = "Secondary Docklet",
desc = "Select another addon",
+ disabled = function() return not SV.db[Schema].enableAddonDock end,
values = function() return MOD:GetDockables(true) end,
get = function() return SV.private.Docks.Embed2 end,
set = function(a,value) SV.private.Docks.Embed2 = value; MOD:RegisterAddonDocklets() end,
}
}
};
-
+
SV.Options.args[Schema] = {
type = 'group',
name = Schema,
diff --git a/SVUI_Skins/components/docklet.lua b/SVUI_Skins/components/docklet.lua
index f612936..e6f0ef6 100644
--- a/SVUI_Skins/components/docklet.lua
+++ b/SVUI_Skins/components/docklet.lua
@@ -307,7 +307,7 @@ end
-- if(not IsAddOnLoaded("Details")) then return false end
-- local width = self:GetWidth()
-- local height = SV.Dock.BottomRight.Window:GetHeight();
-
+
-- if(DetailsBaseFrame1) then
-- DetailsBaseFrame1:ClearAllPoints()
-- DetailsBaseFrame1:SetParent(self)
@@ -394,7 +394,7 @@ function MOD:FindDockables()
test = true;
end
end
- return test;
+ self.Docklet:SetDocked(test);
end
function MOD:SetEmbedHandlers()
@@ -415,64 +415,76 @@ function MOD:SetEmbedHandlers()
end
function MOD:RegisterAddonDocklets()
- if(self:FindDockables()) then
- self.Docklet:SetDocked(true);
- self.Docklet:Enable();
- else
- self.Docklet:Disable();
- self.Docklet:SetDocked(false);
- return
+ -- if(self:FindDockables()) then
+ -- self.Docklet:SetDocked(true);
+ -- self.Docklet:Enable();
+ -- else
+ -- self.Docklet:Disable();
+ -- self.Docklet:SetDocked(false);
+ -- return
+ -- end
+ local available = false;
+ if(SV.db.Skins.enableAddonDock) then
+ for addon,_ in pairs(DOCK_EMBEDS) do
+ if IsAddOnLoaded(addon) then
+ available = true;
+ end
+ end
end
- local embed1,embed2,enabled1,enabled2 = RequestEmbedded();
- local addon1, addon2, extraTip = "", "", "";
- local active1, active2 = false, false;
+ self.Docklet:SetDocked(available);
+
+ if(available) then
+ local embed1,embed2,enabled1,enabled2 = RequestEmbedded();
+ local addon1, addon2, extraTip = "", "", "";
+ local active1, active2 = false, false;
+
+ self.Docklet.Embedded = {}
+ self.Docklet.Dock1.FrameLink = nil;
+ self.Docklet.Dock1.ExpandCallback = nil;
+ self.Docklet.Dock2.FrameLink = nil;
+ self.Docklet.Dock2.ExpandCallback = nil;
+
+ local width = self.Docklet:GetWidth() - 2;
+ self.Docklet.Dock1:SetWidth(width)
+
+ if(enabled2) then
+ if(enabled1) then
+ self.Docklet.Dock1:SetWidth(width * 0.5)
+ else
+ self.Docklet.Dock1:SetWidth(0.1)
+ end
- self.Docklet.Embedded = {}
- self.Docklet.Dock1.FrameLink = nil;
- self.Docklet.Dock1.ExpandCallback = nil;
- self.Docklet.Dock2.FrameLink = nil;
- self.Docklet.Dock2.ExpandCallback = nil;
+ self.Docklet.Dock2:ClearAllPoints()
+ self.Docklet.Dock2:SetPoint('TOPLEFT', self.Docklet.Dock1, 'TOPRIGHT', 0, 0);
+ self.Docklet.Dock2:SetPoint('BOTTOMRIGHT', self.Docklet, 'BOTTOMRIGHT', 1, -1);
- local width = self.Docklet:GetWidth() - 2;
- self.Docklet.Dock1:SetWidth(width)
+ active2, addon2 = self.Docklet.Dock2:EmbedAddon(embed2)
- if(enabled2) then
- if(enabled1) then
- self.Docklet.Dock1:SetWidth(width * 0.5)
- else
- self.Docklet.Dock1:SetWidth(0.1)
+ if(not active2) then
+ self.Docklet.Dock1:SetWidth(width)
+ end
end
- self.Docklet.Dock2:ClearAllPoints()
- self.Docklet.Dock2:SetPoint('TOPLEFT', self.Docklet.Dock1, 'TOPRIGHT', 0, 0);
- self.Docklet.Dock2:SetPoint('BOTTOMRIGHT', self.Docklet, 'BOTTOMRIGHT', 1, -1);
-
- active2, addon2 = self.Docklet.Dock2:EmbedAddon(embed2)
-
- if(not active2) then
- self.Docklet.Dock1:SetWidth(width)
+ if(enabled1) then
+ active1, addon1 = self.Docklet.Dock1:EmbedAddon(embed1)
end
- end
- if(enabled1) then
- active1, addon1 = self.Docklet.Dock1:EmbedAddon(embed1)
- end
+ if(active1 or active2) then
+ if(active2) then
+ extraTip = TIP_RIGHT_PATTERN:format(addon2)
+ self.Docklet.Dock1:Show()
+ self.Docklet.Dock2:Show()
+ else
+ self.Docklet.Dock1:Show()
+ self.Docklet.Dock2:Hide()
+ end
- if(active1 or active2) then
- if(active2) then
- extraTip = TIP_RIGHT_PATTERN:format(addon2)
- self.Docklet.Dock1:Show()
- self.Docklet.Dock2:Show()
+ self.Docklet.Button:SetAttribute("tipText", ("%s%s"):format(addon1, extraTip));
else
- self.Docklet.Dock1:Show()
+ self.Docklet.Dock1:Hide()
self.Docklet.Dock2:Hide()
end
-
- self.Docklet.Button:SetAttribute("tipText", ("%s%s"):format(addon1, extraTip));
- else
- self.Docklet.Dock1:Hide()
- self.Docklet.Dock2:Hide()
end
end
diff --git a/SVUI_UnitFrames/class_resources/monk.lua b/SVUI_UnitFrames/class_resources/monk.lua
index a89025f..2a391d2 100644
--- a/SVUI_UnitFrames/class_resources/monk.lua
+++ b/SVUI_UnitFrames/class_resources/monk.lua
@@ -157,6 +157,7 @@ function MOD:CreateClassBar(playerFrame)
-- stagger.icon = stagger:CreateTexture(nil,'OVERLAY')
-- stagger.icon:SetAllPoints(stagger)
-- stagger.icon:SetTexture(STAGGER_ICON)
+ stagger.isEnabled = true;
bar.DrunkenMaster = stagger
diff --git a/SVUI_UnitFrames/libs/Plugins/oUF_KungFu/oUF_KungFu.lua b/SVUI_UnitFrames/libs/Plugins/oUF_KungFu/oUF_KungFu.lua
index 3cde5ec..109bc6c 100644
--- a/SVUI_UnitFrames/libs/Plugins/oUF_KungFu/oUF_KungFu.lua
+++ b/SVUI_UnitFrames/libs/Plugins/oUF_KungFu/oUF_KungFu.lua
@@ -164,7 +164,7 @@ local Update = function(self, event, unit)
bar.numPoints = numPoints
- if(stagger:IsShown()) then
+ if(stagger.available) then
local staggering = getStaggerAmount()
if staggering == 0 then
stagger:SetValue(0)
@@ -203,17 +203,31 @@ local Update = function(self, event, unit)
if(bar.PostUpdate) then bar:PostUpdate(event) end
end
+local ProxyDisable = function(self, element)
+ if(element:IsShown()) then
+ element:Hide()
+ end
+ element.available = false;
+ self:UnregisterEvent('UNIT_AURA', Update)
+end
+
+local ProxyEnable = function(self, element)
+ if(not element.isEnabled) then
+ element.available = false;
+ return
+ end
+ element:Show()
+ element.available = true;
+ self:RegisterEvent('UNIT_AURA', Update)
+end
+
local Visibility = function(self, ...)
- local bar = self.KungFu
- local stagger = bar.DrunkenMaster
- if((not stagger.isEnabled) or STANCE_OF_THE_STURY_OX_ID ~= GetShapeshiftFormID() or UnitHasVehiclePlayerFrameUI("player")) then
- if(stagger:IsShown()) then
- stagger:Hide()
- end
- self:UnregisterEvent('UNIT_AURA', Update)
+ local bar = self.KungFu;
+ local stagger = bar.DrunkenMaster;
+ if(STANCE_OF_THE_STURY_OX_ID ~= GetShapeshiftFormID() or UnitHasVehiclePlayerFrameUI("player")) then
+ ProxyDisable(self, stagger)
else
- stagger:Show()
- self:RegisterEvent('UNIT_AURA', Update)
+ ProxyEnable(self, stagger)
return Update(self, ...)
end
end