(defmacro define-snippet (name (cr) &body body)
(let ((widget (make-symbol "WIDGET"))
(window (make-symbol "WINDOW"))
- (pointer (make-symbol "POINTER")))
+ (event (make-symbol "EVENT")))
`(let ((,window nil))
(pushnew ',name *snippets*)
(defun ,name ()
(signal-connect ,window 'destroy
#'(lambda () (setq ,window nil)))
(signal-connect ,widget 'expose-event
- #'(lambda (,pointer)
- (declare (ignore ,pointer))
+ #'(lambda (,event)
+ (declare (ignore ,event))
(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)
- (with-slots (rsvg:width rsvg:height) (rsvg:handle-dimensions handle)
+ (with-slots (rsvg:width rsvg:height) handle
(cairo:scale cr (/ 1.0 rsvg:width) (/ 1.0 rsvg:height))
- (rsvg:cairo-render cr handle)))))
+ (rsvg:render-cairo handle cr)))))
(define-snippet librsvg (cr)
(snippet-set-bg-svg cr "clg:examples;home.svg"))