Hello everyone. There are two lua files
The first one displays the table
Lua Code:
local addonName, addon = ...
local CELL_WIDTH = 400
local CELL_HEIGHT = 80
local NUM_CELLS = 2
local data = {}
local f = CreateFrame("Frame", "SimpleScrollFrameTableDemo", UIParent, "BasicFrameTemplateWithInset")
-- Create the button here
local btn = CreateFrame("Button", nil, UIParent, "UIPanelButtonTemplate")
local function updateData() --commented out because addon.db hasn't been created... in the code at least
wipe(data)
for _, item in ipairs(addon.db) do
tinsert(data, {item.announce[GetLocale()], item.icon, item.name})
end
end
f:SetSize(CELL_WIDTH * NUM_CELLS + 80, 600)
f:SetPoint("CENTER")
f:Hide()
f:SetMovable(true)
f:SetScript("OnMouseDown", f.StartMoving)
f:SetScript("OnMouseUp", f.StopMovingOrSizing)
-- I added this OnHide script
f:SetScript("OnHide", function()
btn:Show()
end)
f.scrollFrame = CreateFrame("ScrollFrame", nil, f, "UIPanelScrollFrameTemplate")
f.scrollFrame:SetPoint("TOPLEFT", 12, -32)
f.scrollFrame:SetPoint("BOTTOMRIGHT", -34, 8)
f.scrollFrame.scrollChild = CreateFrame("Frame", nil, f.scrollFrame)
f.scrollFrame.scrollChild:SetSize(100, 100)
f.scrollFrame.scrollChild:SetPoint("TOPLEFT", 5, -5)
f.scrollFrame:SetScrollChild(f.scrollFrame.scrollChild)
local content = f.scrollFrame.scrollChild
content.rows = {}
local function updateList()
for i = 1, #data do
if not content.rows[i] then
local button = CreateFrame("Button", nil, content)
button:SetSize(CELL_WIDTH * NUM_CELLS, CELL_HEIGHT)
button:SetPoint("TOPLEFT", 0, -(i - 1) * CELL_HEIGHT)
button.columns = {}
button.columns[1] = button:CreateFontString(nil, "ARTWORK", "GameFontHighlight")
button.columns[1]:SetPoint("LEFT", (0) * CELL_WIDTH, 0)
button.columns[2] = button:CreateTexture()
button.columns[2]:SetPoint("LEFT", 410, 0, (1) * CELL_WIDTH, 0)
button.columns[3] = button:CreateFontString(nil, "ARTWORK", "GameFontHighlight")
button.columns[3]:SetPoint("LEFT", 480, 0, (2) * CELL_WIDTH, 0)
content.rows[i] = button
end
content.rows[i].columns[1]:SetText(data[i][1])
content.rows[i].columns[2]:SetTexture(data[i][2])
content.rows[i].columns[3]:SetText(data[i][3])
content.rows[i]:Show()
end
for i = #data + 1, #content.rows do
content.rows[i]:Hide()
end
end
-- Set your button options here
local btn = CreateFrame("Button", "Hubb777MovingButton", UIParent, "UIPanelButtonTemplate")
btn:SetPoint("CENTER")
btn:SetSize(100, 40)
btn:SetText("Click me")
btn:SetMovable(true)
btn:RegisterForDrag('LeftButton')
btn:RegisterForClicks("AnyDown", "AnyUp")
btn:SetUserPlaced(true)
btn:SetScript('OnDragStart', function(self, button, down)
if button == "LeftButton" and IsShiftKeyDown() then
self:StartMoving()
end
end)
btn:SetScript('OnDragStop', function(self)
self:StopMovingOrSizing()
end)
btn:SetScript("OnMouseUp", function(self, button, ...)
if (button == "RightButton" and self:IsVisible()) then
self:Hide()
elseif button == "LeftButton" and not IsShiftKeyDown() then
updateData()
updateList()
f:Show()
end
end)
SLASH_HUBB1 = "/hubb"
SlashCmdList["HUBB"] = function(msg)
updateData()
updateList()
f:Show()
end
The second file is a data table
Lua Code:
local addonName, addon = ...
addon.db = {
{
name = "Emerald Mark of Mastery",
questID = 75612,
icon = "interface/icons/inv_mushroom_11",
announce = {
enUS = "Awarded for outstanding service to Dragonkind.\n(clickable link to the item) \nBring it to Theozhaklos the Curious at the Wellspring \nOverlook in the Emerald Dream to receive powerful \nequipment for your efforts"
}
},
{
name = "Emerald Mark of Mastery",
questID = 75624,
icon = "interface/icons/inv_mushroom_11",
announce = {
enUS = "Awarded for outstanding service to Dragonkind.\n(clickable link to the item) \nBring it to Theozhaklos the Curious at the Wellspring \nOverlook in the Emerald Dream to receive powerful \nequipment for your efforts"
}
},
{
name = "Emerald Mark of Mastery",
questID = 74352,
icon = "interface/icons/inv_mushroom_11",
announce = {
enUS = "Awarded for outstanding service to Dragonkind.\n(clickable link to the item) \nBring it to Theozhaklos the Curious at the Wellspring \nOverlook in the Emerald Dream to receive powerful \nequipment for your efforts"
}
}
}
How to add a clickable link to the item to the line along with "TEXT2"
Using the example of this item
Code:
/run local item = Item:CreateFromItemID(210399); local itemLink = item:GetItemLink(); local enUS = format("test %s test", itemLink); print(enUS);
It should look like - TEXT: Unlocks this customization option for the Renewed Proto-Drake at the Rostrum of Transformation
link to the item TEXT: Renewed Proto-Drake: Love Armor.