;;; widget/clickable-container.fnl --- Clickable container

;;; Commentary:
;; From https://github.com/PapyElGringo/material-awesome/blob/57116136a904560e8626b673370d2130b40dc62a/widgets/clickable-container.lua

;;; Code:

(local wibox (require :wibox))
(local naughty (require :naughty))
(local awful (require :awful))

;;;
;; Functions

(fn build [widget]
  (let [container (wibox.container.background widget)]
    (var old-cursor {})
    (var old-wibox {})

    (: container :connect_signal
       :mouse::enter
       (lambda []
         (let [cw _G.mouse.current_wibox]
           (tset container :bg "#ffffff11")
           ;; Hm, no idea how to get the wibox from this signal's arguments...
           (when cw
             (set old-cursor cw.cursor)
             (set old-wibox cw)
             (tset cw :cursor :hand1)))))

    (: container :connect_signal
       :mouse::leave
       (lambda []
         (tset container :bg "#ffffff00")
         (when old-wibox
           (tset old-wibox :cursor old-cursor)
           (set old-wibox nil))))

    (: container :connect_signal
       :button::press
       (lambda []
         (tset container :bg "#ffffff22")))

    (: container :connect_signal
       :button::release
       (lambda []
         (tset container :bg "#ffffff11")))

    container))

build
;;; widget/clickable-container.fnl ends here