anchor.diff:    (
      ))
   
  +
  +(defclass pointer-button-press-event (pointer-button-event) ())
  +
  +(defclass pointer-button-release-event (pointer-button-event) ())
  +
  +(defclass pointer-button-hold-event (pointer-button-event) ())
  +
  +
   (defclass pointer-button-click-event (pointer-button-event)
     (
      ))
  
positive.code:   (
     ))
  
  (defclass pointer-enter-event (pointer-motion-event)
    (
     ))
  
  (defclass pointer-exit-event (pointer-motion-event)
    (
     ))
  
  
negative.code:   (
     ))
  
  (defclass window-manager-event (event) ())
  
  (defclass window-manager-delete-event (window-manager-event) ())
  
  (defclass timer-event (event)
    (
     ))
  
  (defmethod event-instance-slots ((self event))
    '(timestamp))
  
  (defmethod event-instance-slots ((self device-event))
    '(timestamp modifier-state sheet))
  
  (defmethod event-instance-slots ((self keyboard-event))
     '(timestamp modifier-state sheet key-name))
  
  (defmethod event-instance-slots ((self pointer-event))
    '(timestamp modifier-state sheet pointer button x y root-x root-y))
  
  (defmethod event-instance-slots ((self window-event))
    '(timestamp region))
  
  (defmethod print-object ((self event) sink)
   ; (print-object-with-slots self (event-instance-slots self) sink))
    nil)
  
  (defmethod translate-event ((self pointer-event) dx dy)
    (apply #'make-instance (class-of self)
           :x (+ dx (pointer-event-x self))
           :y (+ dy (pointer-event-y self))
           (fetch-slots-as-kwlist self (event-instance-slots self))))
  
  (defmethod translate-event ((self window-event) dx dy)
    (apply #'make-instance (class-of self)
           :region (translate-region (window-event-region self) dx dy)
           (fetch-slots-as-kwlist self (event-instance-slots self))))
  
  (defmethod translate-event ((self event) dx dy)
    (declare (ignore dx dy))
    self)
  
  ;;; Constants dealing with events
  
  