(defmacro define-snippet (name (cr) &body body)
(let ((widget (make-symbol "WIDGET"))
(window (make-symbol "WINDOW"))
(defmacro define-snippet (name (cr) &body body)
(let ((widget (make-symbol "WIDGET"))
(window (make-symbol "WINDOW"))
(signal-connect ,window 'destroy
#'(lambda () (setq ,window nil)))
(signal-connect ,widget 'expose-event
(signal-connect ,window 'destroy
#'(lambda () (setq ,window nil)))
(signal-connect ,widget 'expose-event
(let ((,cr (gdk:cairo-create (widget-window ,widget))))
(multiple-value-bind (width height)
(widget-get-size-allocation ,widget)
(let ((,cr (gdk:cairo-create (widget-window ,widget))))
(multiple-value-bind (width height)
(widget-get-size-allocation ,widget)
(defun snippet-set-bg-svg (cr filename)
(let ((handle (make-instance 'rsvg:handle :filename filename)))
(cairo:with-context (cr)
(defun snippet-set-bg-svg (cr filename)
(let ((handle (make-instance 'rsvg:handle :filename filename)))
(cairo:with-context (cr)