from retail

This commit is contained in:
Bunny67
2020-07-16 23:23:54 +03:00
parent 85345af8a2
commit f9dab14beb
41 changed files with 3843 additions and 3869 deletions
@@ -0,0 +1,75 @@
--[[-----------------------------------------------------------------------------
WeakAurasInlineGroup based on InlineGroup Container
Simple container widget that has the same API as a InlineGroup, without actually
showing any borders or a title.
-------------------------------------------------------------------------------]]
local Type, Version = "WeakAurasInlineGroup", 1
local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end
-- Lua APIs
local pairs = pairs
-- WoW APIs
local CreateFrame, UIParent = CreateFrame, UIParent
--[[-----------------------------------------------------------------------------
Methods
-------------------------------------------------------------------------------]]
local methods = {
["OnAcquire"] = function(self)
self:SetWidth(300)
self:SetHeight(100)
self:SetTitle("")
end,
-- ["OnRelease"] = nil,
["SetTitle"] = function(self)
-- Do nothing
end,
["LayoutFinished"] = function(self, width, height)
if self.noAutoHeight then return end
self:SetHeight((height or 0) + 40)
end,
["OnWidthSet"] = function(self, width)
local content = self.content
content:SetWidth(width)
content.width = width
end,
["OnHeightSet"] = function(self, height)
local content = self.content
content:SetHeight(height)
content.height = height
end
}
--[[-----------------------------------------------------------------------------
Constructor
-------------------------------------------------------------------------------]]
local function Constructor()
local frame = CreateFrame("Frame", nil, UIParent)
frame:SetFrameStrata("FULLSCREEN_DIALOG")
--Container Support
local content = CreateFrame("Frame", nil, frame)
content:SetPoint("TOPLEFT", 0, 0)
content:SetPoint("BOTTOMRIGHT", 0, 0)
local widget = {
frame = frame,
content = content,
type = Type
}
for method, func in pairs(methods) do
widget[method] = func
end
return AceGUI:RegisterAsContainer(widget)
end
AceGUI:RegisterWidgetType(Type, Constructor, Version)
@@ -4,7 +4,7 @@ local tinsert, tconcat, tremove, wipe = table.insert, table.concat, table.remove
local select, pairs, next, type, unpack = select, pairs, next, type, unpack
local tostring, error = tostring, error
local Type, Version = "WeakAurasDisplayButton", 54
local Type, Version = "WeakAurasDisplayButton", 55
local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end
@@ -95,18 +95,21 @@ clipboard.pasteMenuEntry = {
for index, childId in pairs(clipboard.current.controlledChildren) do
local childData = WeakAuras.GetData(childId);
copyAuraPart(clipboard.source, childData, clipboard.part);
WeakAuras.Add(childData);
WeakAuras.Add(childData)
WeakAuras.ClearAndUpdateOptions(childData.id)
end
else
copyAuraPart(clipboard.source, clipboard.current, clipboard.part);
WeakAuras.Add(clipboard.current);
WeakAuras.Add(clipboard.current)
WeakAuras.ClearAndUpdateOptions(clipboard.current.id)
end
WeakAuras.FillOptions()
WeakAuras.ScanForLoads({[clipboard.current.id] = true});
WeakAuras.SortDisplayButtons();
WeakAuras.PickDisplay(clipboard.current.id);
WeakAuras.UpdateDisplayButton(clipboard.current.id);
WeakAuras.ReloadOptions2(clipboard.current.id, clipboard.current);
WeakAuras.ClearAndUpdateOptions(clipboard.current.id);
end
}
@@ -304,16 +307,22 @@ local Actions = {
WeakAuras.Add(source.data)
WeakAuras.Add(group.data)
WeakAuras.UpdateGroupOrders(group.data)
WeakAuras.ReloadGroupRegionOptions(group.data)
WeakAuras.ClearAndUpdateOptions(group.data.id)
WeakAuras.ClearAndUpdateOptions(source.data.id)
WeakAuras.UpdateDisplayButton(group.data)
WeakAuras.FillOptions()
group.callbacks.UpdateExpandButton();
group:ReloadTooltip()
else
WeakAuras.Add(source.data)
WeakAuras.ClearAndUpdateOptions(source.data.id)
WeakAuras.FillOptions()
end
else
-- move source into the top-level list
WeakAuras.Add(source.data)
WeakAuras.ClearAndUpdateOptions(source.data.id)
WeakAuras.FillOptions()
end
else
error("Calling 'Group' with invalid source. Reload your UI to fix the display list.")
@@ -331,7 +340,7 @@ local Actions = {
source.data.parent = nil
WeakAuras.Add(parent);
WeakAuras.UpdateGroupOrders(parent);
WeakAuras.ReloadGroupRegionOptions(parent);
WeakAuras.ClearAndUpdateOptions(parent.id);
WeakAuras.UpdateDisplayButton(parent);
local group = WeakAuras.GetDisplayButton(parent.id)
group.callbacks.UpdateExpandButton();
@@ -367,6 +376,8 @@ local Actions = {
tinsert(children, 1, source.data.id)
end
WeakAuras.Add(parent)
WeakAuras.ClearAndUpdateOptions(parent.id)
WeakAuras.FillOptions()
WeakAuras.UpdateGroupOrders(parent)
WeakAuras.UpdateDisplayButton(parent)
else
@@ -572,6 +583,7 @@ local methods = {
childButton:SetGroupOrder(#data.controlledChildren, #data.controlledChildren);
childData.parent = data.id;
WeakAuras.Add(childData);
WeakAuras.ClearAndUpdateOptions(childData.id)
end
else
tinsert(data.controlledChildren, self.grouping.id);
@@ -580,16 +592,19 @@ local methods = {
childButton:SetGroupOrder(#data.controlledChildren, #data.controlledChildren);
self.grouping.parent = data.id;
WeakAuras.Add(self.grouping);
WeakAuras.ClearAndUpdateOptions(self.grouping.id);
end
if (data.regionType == "dynamicgroup") then
self.grouping.xOffset = 0;
self.grouping.yOffset = 0;
end
WeakAuras.Add(data);
WeakAuras.ClearAndUpdateOptions(data.id)
self.callbacks.UpdateExpandButton();
WeakAuras.SetGrouping();
WeakAuras.UpdateDisplayButton(data);
WeakAuras.ReloadGroupRegionOptions(data);
WeakAuras.ClearAndUpdateOptions(data.id);
WeakAuras.FillOptions();
WeakAuras.UpdateGroupOrders(data);
WeakAuras.SortDisplayButtons();
self:ReloadTooltip();
@@ -670,6 +685,7 @@ local methods = {
tremove(parentData.controlledChildren, index);
tinsert(parentData.controlledChildren, index - 1, id);
WeakAuras.Add(parentData);
WeakAuras.ClearAndUpdateOptions(parentData.id)
self:SetGroupOrder(index - 1, #parentData.controlledChildren);
local otherbutton = WeakAuras.GetDisplayButton(parentData.controlledChildren[index]);
otherbutton:SetGroupOrder(index, #parentData.controlledChildren);
@@ -679,6 +695,7 @@ local methods = {
WeakAuras.Animate("button", WeakAuras.GetData(parentData.controlledChildren[index-1]), "main", updata, self.frame, true, function() WeakAuras.SortDisplayButtons() end);
WeakAuras.Animate("button", WeakAuras.GetData(parentData.controlledChildren[index]), "main", downdata, otherbutton.frame, true, function() WeakAuras.SortDisplayButtons() end);
WeakAuras.UpdateDisplayButton(parentData);
WeakAuras.FillOptions()
end
else
error("Display thinks it is a member of a group which does not control it");
@@ -707,6 +724,7 @@ local methods = {
tremove(parentData.controlledChildren, index);
tinsert(parentData.controlledChildren, index + 1, id);
WeakAuras.Add(parentData);
WeakAuras.ClearAndUpdateOptions(parentData.id)
self:SetGroupOrder(index + 1, #parentData.controlledChildren);
local otherbutton = WeakAuras.GetDisplayButton(parentData.controlledChildren[index]);
otherbutton:SetGroupOrder(index, #parentData.controlledChildren);
@@ -716,6 +734,7 @@ local methods = {
WeakAuras.Animate("button", WeakAuras.GetData(parentData.controlledChildren[index+1]), "main", downdata, self.frame, true, function() WeakAuras.SortDisplayButtons() end);
WeakAuras.Animate("button", WeakAuras.GetData(parentData.controlledChildren[index]), "main", updata, otherbutton.frame, true, function() WeakAuras.SortDisplayButtons() end);
WeakAuras.UpdateDisplayButton(parentData);
WeakAuras.FillOptions()
end
else
error("Display thinks it is a member of a group which does not control it");
@@ -788,13 +807,12 @@ local methods = {
if not(newid == oldid) then
WeakAuras.Rename(data, newid);
WeakAuras.Add(data);
WeakAuras.Add(data)
WeakAuras.displayButtons[newid] = WeakAuras.displayButtons[oldid];
WeakAuras.displayButtons[newid]:SetData(data)
WeakAuras.displayButtons[oldid] = nil;
WeakAuras.displayOptions[oldid] = nil;
WeakAuras.AddOption(newid, data);
WeakAuras.ClearOptions(oldid)
WeakAuras.displayButtons[newid]:SetTitle(newid);
@@ -1156,13 +1174,14 @@ local methods = {
if(index) then
tremove(parentData.controlledChildren, index);
WeakAuras.Add(parentData);
WeakAuras.ReloadGroupRegionOptions(parentData);
WeakAuras.ClearAndUpdateOptions(parentData.id);
else
error("Display thinks it is a member of a group which does not control it");
end
self:SetGroup();
self.data.parent = nil;
WeakAuras.Add(self.data);
WeakAuras.ClearAndUpdateOptions(self.data.id);
WeakAuras.UpdateGroupOrders(parentData);
WeakAuras.UpdateDisplayButton(parentData);
WeakAuras.SortDisplayButtons();
@@ -1521,13 +1540,11 @@ local methods = {
-- no addon, or no data, or ignore flag
return false, false, nil, nil
end,
-- TODO: remove this once legacy aura trigger is removed
["RefreshBT2UpgradeIcon"] = function(self)
if not self.data.controlledChildren and self.data.triggers then
for index, t in ipairs(self.data.triggers) do
if t.trigger and t.trigger.type == "aura" then
self.bt2upgrade:SetScript("OnClick", function()
WeakAuras.optionTriggerChoices[self.data.id] = index
WeakAuras.PickDisplay(self.data.id, "trigger")
end)
self.bt2upgrade:Show()