Package: gtk
Function gtk:current-event
Lambda Listgtk:current-event () Return Value The copy of the current gdk:event instance, or nil if there
is no current event. Details
Obtains a copy of the event currently being processed by GTK. For example, if you are handling a "clicked" signal, the current event will be the gdk:event-button event that triggered the "clicked" signal. Examples
(g:signal-connect calendar "day-selected"
(lambda (calendar)
(let ((event (gtk:current-event)))
(when (eq :button-press (gdk:event-type event))
(multiple-value-bind (x y)
(gdk:window-coords-to-parent (gdk:event-window event)
(gdk:event-button-x event)
(gdk:event-button-y event))
(let ((rect (gtk:widget-allocation calendar)))
(setf (gdk:rectangle-x rect)
(- (truncate x) (gdk:rectangle-x rect)))
(setf (gdk:rectangle-y rect)
(- (truncate y) (gdk:rectangle-y rect)))
(setf (gdk:rectangle-width rect) 1)
(setf (gdk:rectangle-height rect) 1)
(let ((popover (create-popover calendar
(make-instance 'gtk:entry)
:bottom)))
(setf (gtk:popover-pointing-to popover) rect)
(gtk:widget-show popover)))))))) | See also |
#2025-06-19