56 lines
1.2 KiB
Lua
56 lines
1.2 KiB
Lua
local constants = require("constants")
|
|
local settings = require("config.settings")
|
|
|
|
local message = sbar.add("item", constants.items.MESSAGE, {
|
|
width = 0,
|
|
position = "center",
|
|
popup = { align = "center" },
|
|
label = {
|
|
padding_left = 0,
|
|
padding_right = 0,
|
|
},
|
|
background = {
|
|
padding_left = 0,
|
|
padding_right = 0,
|
|
}
|
|
})
|
|
|
|
local messagePopup = sbar.add("item", {
|
|
position = "popup." .. message.name,
|
|
width = "dynamic",
|
|
label = {
|
|
padding_right = settings.dimens.padding.label,
|
|
padding_left = settings.dimens.padding.label,
|
|
},
|
|
icon = {
|
|
padding_left = 0,
|
|
padding_right = 0,
|
|
},
|
|
})
|
|
|
|
local function hideMessage()
|
|
message:set({ popup = { drawing = false } })
|
|
end
|
|
|
|
local function showMessage(content, hold)
|
|
hideMessage()
|
|
|
|
message:set({ popup = { drawing = true } })
|
|
messagePopup:set({ label = { string = content } })
|
|
|
|
if hold == false then
|
|
sbar.delay(5, function()
|
|
if hold then return end
|
|
hideMessage()
|
|
end)
|
|
end
|
|
end
|
|
|
|
message:subscribe(constants.events.SEND_MESSAGE, function(env)
|
|
local content = env.MESSAGE
|
|
local hold = env.HOLD ~= nil and env.HOLD == "true" or false
|
|
showMessage(content, hold)
|
|
end)
|
|
|
|
message:subscribe(constants.events.HIDE_MESSAGE, hideMessage)
|