-function calendar:attach(widget, background, foreground)
- create(background, foreground)
- widget:connect_signal("mouse::enter", function () calendar:show() end)
- widget:connect_signal("mouse::leave", function () calendar:hide() end)
- widget:buttons(awful.util.table.join( awful.button({ }, 1, function ()
- calendar:show(0, -1) end),
- awful.button({ }, 3, function ()
- calendar:show(0, 1) end) ))
+function calendar.attach(widget)
+ widget:connect_signal("mouse::enter", function () calendar.show(0) end)
+ widget:connect_signal("mouse::leave", function () calendar.hide() end)
+ widget:buttons(awful.util.table.join(awful.button({ }, 1, function ()
+ calendar.show(0, -1, calendar.scr_pos) end),
+ awful.button({ }, 3, function ()
+ calendar.show(0, 1, calendar.scr_pos) end),
+ awful.button({ }, 4, function ()
+ calendar.show(0, -1, calendar.scr_pos) end),
+ awful.button({ }, 5, function ()
+ calendar.show(0, 1, calendar.scr_pos) end)))
+end
+
+local function worker(args)
+ local args = args or {}
+ calendar.cal = args.cal or "/usr/bin/cal"
+ calendar.attach_to = args.attach_to or {}
+ calendar.followtag = args.followtag or false
+ calendar.icons = args.icons or helpers.icons_dir .. "cal/white/"
+ calendar.notification_preset = args.notification_preset
+
+ if not calendar.notification_preset then
+ calendar.notification_preset = {
+ font = "Monospace 10",
+ fg = "#FFFFFF",
+ bg = "#000000"
+ }
+ end
+
+ for i, widget in ipairs(calendar.attach_to) do calendar.attach(widget) end
+
+ calendar.update(calendar.cal, false)