local config = ezCollections.Config.Windows[self:GetParent():GetName()];
if config.Layout or config.Lock then return; end
self:GetParent():StartMoving();
local config = ezCollections.Config.Windows[self:GetParent():GetName()];
if config.Layout or config.Lock then return; end
self:GetParent():StopMovingOrSizing();
do return end
local function round(num, numDecimalPlaces)
local mult = 10 ^ (numDecimalPlaces or 0)
return math.floor(num * mult + 0.5) / mult
end
if self:GetParent():IsProtected() and InCombatLockdown() then return; end
local point, relativeFrame, relativePoint, x, y = self:GetParent():GetPoint(1);
x = round(x);
y = round(y);
if (point == "CENTER" or point == "TOP" or point == "BOTTOM") and (round(self:GetParent():GetWidth() ) % 2 == 1) then x = x + 0.5; end
if (point == "CENTER" or point == "LEFT" or point == "RIGHT") and (round(self:GetParent():GetHeight()) % 2 == 1) then y = y + 0.5; end
self:GetParent():ClearAllPoints();
self:GetParent():SetPoint(point, relativeFrame, relativePoint, x, y);
function self:UpdateText()
local width = self:GetRight() - self:GetLeft();
local offsetX = 6 + self.ContentsFrame.Icon:GetWidth();
self.ContentsFrame.Header:SetWidth(width - offsetX - 6);
self.ContentsFrame.Text:SetWidth(width - offsetX - 6);
self.ContentsFrame.Text:SetHeight(0);
local heightHeader = self.ContentsFrame.Header:GetHeight();
local heightText = self.ContentsFrame.Text:GetHeight();
if 6 + heightHeader + heightText + 6 > self:GetHeight() + 2 then
heightText = self:GetHeight() + 2 - 6 - heightHeader - 6;
end
self.ContentsFrame.Header:SetPoint("TOPLEFT", offsetX, -6 -(self:GetHeight() - 6 - 6 - heightHeader - heightText) / 2);
self.ContentsFrame.Text:SetHeight(heightText);
end
self:UpdateText();
if self.obj and self.obj:GetUserDataTable() then
PlaySound("igMainMenuOptionCheckBoxOn");
self.obj:GetUserDataTable().option.func();
end
function self:UpdateText()
local width = self:GetRight() - self:GetLeft();
local offsetX = 6 + self.ContentsFrame.Icon:GetWidth();
self.ContentsFrame.Header:SetWidth(width - offsetX - 6);
self.ContentsFrame.Text:SetWidth(width - offsetX - 6);
self.ContentsFrame.Text:SetHeight(0);
local heightHeader = self.ContentsFrame.Header:GetHeight();
local heightText = self.ContentsFrame.Text:GetHeight();
if 6 + heightHeader + heightText + 6 > self:GetHeight() + 2 then
heightText = self:GetHeight() + 2 - 6 - heightHeader - 6;
end
self.ContentsFrame.Header:SetPoint("TOPLEFT", offsetX, -6 -(self:GetHeight() - 6 - 6 - heightHeader - heightText) / 2);
self.ContentsFrame.Text:SetHeight(heightText);
end
self:UpdateText();
if self.obj and self.obj:GetUserDataTable() then
PlaySound("igMainMenuOptionCheckBoxOn");
self.obj:GetUserDataTable().option.func();
end
if ( self:IsEnabled() == 1 ) then
local name = self:GetName();
_G[name.."TopLeft"]:SetTexture([[Interface\AddOns\ezCollections\Interface\Buttons\UI-SilverButtonLG-Left-Down]]);
_G[name.."TopMiddle"]:SetTexture([[Interface\AddOns\ezCollections\Interface\Buttons\UI-SilverButtonLG-Mid-Down]]);
_G[name.."TopRight"]:SetTexture([[Interface\AddOns\ezCollections\Interface\Buttons\UI-SilverButtonLG-Right-Down]]);
_G[name.."MidLeft"]:SetTexture([[Interface\AddOns\ezCollections\Interface\Buttons\UI-SilverButtonLG-Left-Down]]);
_G[name.."MidMiddle"]:SetTexture([[Interface\AddOns\ezCollections\Interface\Buttons\UI-SilverButtonLG-Mid-Down]]);
_G[name.."MidRight"]:SetTexture([[Interface\AddOns\ezCollections\Interface\Buttons\UI-SilverButtonLG-Right-Down]]);
_G[name.."BotLeft"]:SetTexture([[Interface\AddOns\ezCollections\Interface\Buttons\UI-SilverButtonLG-Left-Down]]);
_G[name.."BotMiddle"]:SetTexture([[Interface\AddOns\ezCollections\Interface\Buttons\UI-SilverButtonLG-Mid-Down]]);
_G[name.."BotRight"]:SetTexture([[Interface\AddOns\ezCollections\Interface\Buttons\UI-SilverButtonLG-Right-Down]]);
local contentsFrame = _G[name.."ContentsFrame"];
if ( contentsFrame ) then
contentsFrame:SetPoint("TOPLEFT", -2+16, -1);
end
end
if ( self:IsEnabled() == 1 ) then
local name = self:GetName();
_G[name.."TopLeft"]:SetTexture([[Interface\AddOns\ezCollections\Interface\Buttons\UI-SilverButtonLG-Left-Up]]);
_G[name.."TopMiddle"]:SetTexture([[Interface\AddOns\ezCollections\Interface\Buttons\UI-SilverButtonLG-Mid-Up]]);
_G[name.."TopRight"]:SetTexture([[Interface\AddOns\ezCollections\Interface\Buttons\UI-SilverButtonLG-Right-Up]]);
_G[name.."MidLeft"]:SetTexture([[Interface\AddOns\ezCollections\Interface\Buttons\UI-SilverButtonLG-Left-Up]]);
_G[name.."MidMiddle"]:SetTexture([[Interface\AddOns\ezCollections\Interface\Buttons\UI-SilverButtonLG-Mid-Up]]);
_G[name.."MidRight"]:SetTexture([[Interface\AddOns\ezCollections\Interface\Buttons\UI-SilverButtonLG-Right-Up]]);
_G[name.."BotLeft"]:SetTexture([[Interface\AddOns\ezCollections\Interface\Buttons\UI-SilverButtonLG-Left-Up]]);
_G[name.."BotMiddle"]:SetTexture([[Interface\AddOns\ezCollections\Interface\Buttons\UI-SilverButtonLG-Mid-Up]]);
_G[name.."BotRight"]:SetTexture([[Interface\AddOns\ezCollections\Interface\Buttons\UI-SilverButtonLG-Right-Up]]);
local contentsFrame = _G[name.."ContentsFrame"];
if ( contentsFrame ) then
contentsFrame:SetPoint("TOPLEFT", 0+16, 0);
end
end
if self.obj and self.obj:GetUserDataTable() then
self:SetChecked(ezCollections.Config.Wardrobe.MicroButtonsIcon == self.obj:GetUserDataTable().option.order);
end
if self.obj and self.obj:GetUserDataTable() then
PlaySound("igMainMenuOptionCheckBoxOn");
self.obj:GetUserDataTable().option.func();
end
self:SetPushedTextOffset(1, -1);
function self:UpdateButtonState()
if self:GetChecked() then
self:SetButtonState("PUSHED");
self:LockHighlight();
self.Icon:SetPoint("CENTER", self, "CENTER", self:GetPushedTextOffset());
else
self:SetButtonState("NORMAL");
self:UnlockHighlight();
self.Icon:SetPoint("CENTER", self, "CENTER");
end
end
self.Icon:SetPoint("CENTER", self, "CENTER", self:GetPushedTextOffset());
self.Icon:SetPoint("CENTER", self, "CENTER");
self:SetPoint("LEFT", self.obj.text, "LEFT", self.obj.text:GetStringWidth() + 5, 1);
local checked = self:GetArg().get();
if self:GetChecked() ~= checked then
self:SetChecked(checked);
self:UpdateButtonState();
end
if self:GetChecked() then
PlaySound("igMainMenuOptionCheckBoxOn");
else
PlaySound("igMainMenuOptionCheckBoxOff");
end
self:UpdateButtonState();
self:GetArg().set(self:GetChecked());
self.obj:Fire("OnValueChanged", self.obj.checked);
local name = self:GetArg().name;
local desc = self:GetArg().desc;
GameTooltip:SetOwner(self, "ANCHOR_RIGHT");
GameTooltip:SetText(name, 1, .82, 0, 1);
if type(desc) == "string" then
GameTooltip:AddLine(desc, 1, 1, 1, 1);
end
GameTooltip:Show();
GameTooltip:SetOwner(self, "ANCHOR_RIGHT");
GameTooltip:SetText(format(LFG_CALL_TO_ARMS, _G[self.role]), 1, 1, 1);
GameTooltip:AddLine(LFG_CALL_TO_ARMS_EXPLANATION, nil, nil, nil, 1);
GameTooltip:Show();