где биндинг для этой ф-ции в cl-gtk2? widget-event? тогда не пойму, почему не работает такой код -
(within-main-loop
(let ((w (make-instance 'gtk-window))
(ev (make-instance 'event-box))
(l (make-instance 'label :label "usudfs")))
(g-signal-connect w "destroy" #'gtk-main-quit)
(container-add w ev)
(widget-show ev)
(container-add ev l)
(widget-show l)
(widget-event ev :button-press-mask)
(g-signal-connect ev "button-press-event" #'(lambda (w e)
(declare (ignore e))
(quit-callback w)))
(widget-realize ev)
(widget-show w)))
lindie@laptop ~/.sbcl/site $ grep -r 'gtk_widget_set_event' ./
lindie@laptop ~/.sbcl/site $ grep -r 'gtk-event' ./
./cl-gtk2-gtk-0.1.1/gtk.main-loop-events.lisp:(defcfun gtk-events-pending :boolean)
./cl-gtk2-gtk-0.1.1/gtk.main-loop-events.lisp:(export 'gtk-events-pending)
./cl-gtk2/gtk/gtk.main-loop-events.lisp:(defcfun gtk-events-pending :boolean)
./cl-gtk2/gtk/gtk.main-loop-events.lisp:(export 'gtk-events-pending)
./cl-gtk2/doc/gtk.main_loop.texi:Runs a single iteration of the mainloop. If no events are waiting to be processed Gtk+ will block until the next event is noticed. If you don't want to block look at @ref{gtk-main-iteration-do} or check if any events are pending with @ref{gtk-events-pending} first.
./cl-gtk2/doc/gtk.main_loop.texi:@RFunction gtk-events-pending
./cl-gtk2/doc/gtk.main_loop.texi:(gtk-events-pending) @result{} boolean