local notifications imgui OnFrame function return notifications end fu

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
local notifications = {}
imgui.OnFrame(function() return #notifications ~= 0 end, function()
local pos = imgui.ImVec2(sw - 305, sh - 15)
for i, notf in ipairs(notifications) do
local textSizeY = 55--imgui.CalcTextSize(notf.text, nil, nil, 235).y
pos.y = pos.y - 60
imgui.SetNextWindowPos(pos)
imgui.SetNextWindowSize(imgui.ImVec2(300, textSizeY))
imgui.PushStyleVarVec2(imgui.StyleVar.WindowPadding, imgui.ImVec2(5, 5))
imgui.PushStyleColor(imgui.Col.Text, imgui.ImVec4(1, 1, 1, notf.alpha))
if imgui.Begin("Notification #"..i, nil, imgui.WindowFlags.NoTitleBar + imgui.WindowFlags.NoResize + imgui.WindowFlags.NoMove + imgui.WindowFlags.NoScrollbar + imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoBackground + imgui.WindowFlags.NoSavedSettings + imgui.WindowFlags.NoInputs) then
if notf.clock - os.clock() < 1 then
notf.alpha = (notf.clock - os.clock()) / 0.3
end
local drawlist = imgui.GetWindowDrawList()
drawlist:AddRectFilled(pos, imgui.ImVec2(pos.x + 300, pos.y + textSizeY), imgui.ColorConvertFloat4ToU32(imgui.ImVec4(0.13, 0.15, 0.20, notf.alpha)), 10)
drawlist:AddImage(texture_data.logo, imgui.ImVec2(pos.x + 5, pos.y + 9), imgui.ImVec2(pos.x + 51, pos.y + 47), nil, nil, imgui.ColorConvertFloat4ToU32(imgui.ImVec4(1, 1, 1, notf.alpha)))
imgui.PushTextWrapPos(290)
imgui.Indent(55)
imgui.TextColoredRGB(notf.text)
imgui.Unindent(55)
imgui.PopTextWrapPos()
imgui.End()
end
imgui.PopStyleColor(1)
imgui.PopStyleVar()
if os.clock() > notf.clock then
table.remove(notifications, i)
end
end
end).HideCursor = true
function addNotification(text, time)
table.insert(notifications, {text = u8(text), clock = os.clock() + (time or 5), alpha = 1.00})
end