Package: gtk
Function gtk-current-event
Lambda Listgtk-current-event () Return ValueA 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. Example
(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 |
2020-8-22