Here’s a basic one that fills a SMF with junk, note the ScrollFrame.
local backdrop = {
bgFile = "Interface/BUTTONS/WHITE8X8",
edgeFile = "Interface/GLUES/Common/Glue-Tooltip-Border",
tile = true,
edgeSize = 8,
tileSize = 8,
insets = {
left = 5,
right = 5,
top = 5,
bottom = 5,
},
}
local listLen = 500
local function ScrollList(self)
local offset = FauxScrollFrame_GetOffset(self)
self:GetParent().Messages:SetScrollOffset(offset)
FauxScrollFrame_Update(self, listLen, 25, 12 )
end
local f = CreateFrame("Frame", "MyScrollMessageTextFrame", UIParent)
f:SetSize(500, 400)
f:SetPoint("CENTER")
f:SetFrameStrata("BACKGROUND")
f:SetBackdrop(backdrop)
f:SetBackdropColor(0, 0, 0)
f.Close = CreateFrame("Button", "$parentClose", f)
f.Close:SetSize(24, 24)
f.Close:SetPoint("TOPRIGHT")
f.Close:SetNormalTexture("Interface/Buttons/UI-Panel-MinimizeButton-Up")
f.Close:SetPushedTexture("Interface/Buttons/UI-Panel-MinimizeButton-Down")
f.Close:SetHighlightTexture("Interface/Buttons/UI-Panel-MinimizeButton-Highlight", "ADD")
f.Close:SetScript("OnClick", function(self)
self:GetParent():Hide()
end)
f.Messages = CreateFrame("ScrollingMessageFrame", "$parentMessages", f)
f.Messages:SetPoint("TOPLEFT", 15, -25)
f.Messages:SetPoint("BOTTOMRIGHT", -30, 15)
f.Messages:SetInsertMode(SCROLLING_MESSAGE_FRAME_INSERT_MODE_TOP)
f.Messages:SetMaxLines(listLen)
f.Messages:SetFading(false)
f.Messages:SetIndentedWordWrap(true)
f.Messages:SetFontObject(ChatFontNormal)
f.Messages:SetJustifyH("LEFT")
f.Scroll = CreateFrame("ScrollFrame", "$parentScroll", f, "FauxScrollFrameTemplate")
f.Scroll:SetPoint("TOPLEFT", 15, -25)
f.Scroll:SetPoint("BOTTOMRIGHT", -30, 15)
f.Scroll:SetScript("OnVerticalScroll", function(self, offset)
FauxScrollFrame_OnVerticalScroll(self, offset, 12, ScrollList)
end)
for i=1, listLen do
local table = {
"bfs fasjdf dsaf adsj fasjkf bsafjsaf bjs fasjkf bjsf basf badsjkf dsakfbhaskf asjkf asjkf skaf sak fsk fdsaf ",
"kkl l fjds rewpwfrjpo foewf jjfwe fpwfevzv mcvn qo fnaw[ffgngnerf we foiweffgorenfg[f fewfn sdskfn asdf sp ff",
"q[ofkgbhp i regp nIF N 'OFGRE NG;G KG IGN ;EFPIREG REG ZG; ergregp esg gg-ero rdf45540 4y q8wffn ",
}
f.Messages:AddMessage(i.. " - "..table[random(1, 3)])
FauxScrollFrame_Update(f.Scroll, i, 30, 12 )
end