local wibox = require("wibox")
local gears = require("gears")

local widgets = {}

function widgets.add_timer(w, callback, timeout)
	w._timer = gears.timer({
		timeout = timeout or 5,
		call_now = true,
		autostart = true,
		callback = function()
			callback(w)
		end
	})
	return w
end

function widgets.watchfn(callback, timeout, base_widget)
	local widget = (base_widget or wibox.widget.textbox)()
	return widgets.add_timer(widget, callback, timeout)
end

return widgets