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)