vanilla-wow-addons – Rev 1
?pathlinks?
local MIN_DROPDOWN_WIDTH = 120;
--create a player button, which is used to switch between characters
local function CreateButton(id, parent, clickAction)
local button = CreateFrame("CheckButton", parent:GetName() .. id, parent, "BongosOptionsDropDownItem");
if id == 1 then
button:SetPoint("TOPLEFT", parent, "TOPLEFT", 4, -2);
else
button:SetPoint("TOP", parent:GetName() .. (id - 1), "BOTTOM", 0, 6);
end
button:SetScript("OnClick", function() clickAction(); end);
return button;
end
local function BarListItem_OnClick()
getglobal(this:GetParent():GetParent():GetName() .. "BarNameBox"):SetText(this:GetText());
this:GetParent():Hide();
end
function BOptionsScript_ShowBarList(parent)
local parentName = parent:GetName();
local currentBar = getglobal(parent:GetParent():GetName() .. "BarNameBox"):GetText()
currentBar = tonumber(currentBar) or currentBar;
local index = 0;
local barList = BongosCustomScripts;
local maxWidth = MIN_DROPDOWN_WIDTH;
if barList then
for barID in barList do
index = index + 1;
local button = getglobal(parentName .. index) or CreateButton(index, parent, BarListItem_OnClick);
button:SetText(barID);
if 24 + button:GetTextWidth() > maxWidth then
maxWidth = 32 + button:GetTextWidth();
end
if barID == currentBar then
button:SetChecked(true);
else
button:SetChecked(false);
end
button:Show();
end
local i = index + 1;
while getglobal(parentName .. i) do
getglobal(parentName .. i):Hide();
i = i + 1;
end
parent:SetWidth(maxWidth);
parent:SetHeight(10 + 18 * index);
parent:Show();
end
end
local function BarListItem_OnClick()
getglobal(this:GetParent():GetParent():GetName() .. "EventBox"):SetText(this:GetText());
local currentBar = getglobal(this:GetParent():GetParent():GetName() .. "BarNameBox"):GetText();
currentBar = tonumber(currentBar) or currentBar;
local scriptData = BongosCustomScripts[currentBar][this:GetText()]
if scriptData then
getglobal(this:GetParent():GetParent():GetName() .. "ActionBox"):SetText((scriptData.script or ""));
getglobal(this:GetParent():GetParent():GetName() .. "RunNow"):SetChecked(scriptData.runNow);
else
getglobal(this:GetParent():GetParent():GetName() .. "ActionBox"):SetText("");
getglobal(this:GetParent():GetParent():GetName() .. "RunNow"):SetChecked(false);
end
this:GetParent():Hide();
end
function BOptionsScript_ShowEventList(parent)
local parentName = parent:GetName();
local currentBar = getglobal(parent:GetParent():GetName() .. "BarNameBox"):GetText();
local currentEvent = getglobal(parent:GetParent():GetName() .. "EventBox"):GetText();
local index = 0;
local maxWidth = MIN_DROPDOWN_WIDTH;
if BongosCustomScripts then
local eventList = BongosCustomScripts[tonumber(currentBar) or currentBar];
if eventList then
for event in eventList do
index = index + 1;
local button = getglobal(parentName .. index) or CreateButton(index, parent, BarListItem_OnClick);
button:SetText(event);
if 24 + button:GetTextWidth() > maxWidth then
maxWidth = 32 + button:GetTextWidth();
end
if event == currentEvent then
button:SetChecked(true);
else
button:SetChecked(false);
end
button:Show();
end
local i = index + 1;
while getglobal(parentName .. i) do
getglobal(parentName .. i):Hide();
i = i + 1;
end
parent:SetWidth(maxWidth);
parent:SetHeight(10 + 18 * index);
parent:Show();
end
end
end
Generated by GNU Enscript 1.6.5.90.