anchor.diff:  ;;; renderer-qt.lisp --- functions for creating Qt interface onscreen
   
   (in-package :next)
  -
  -(define-condition unsupported-operation (error)
  -  ()
  -  (:report (lambda (c stream)
  -             (declare (ignore c))
  -             (format stream "~a" "Unsupported operation for this renderer."))))
   
   (defclass-export qt-browser (browser)
     ((application :accessor application)))
  
positive.code:    (lambda ()
       (did-finish-navigation buffer (qt:web-engine-view-url (qt-object buffer))))))
  
  (serapeum:export-always 'ffi-window-make)
  (defmethod ffi-window-make ((browser qt-browser))
    "Make a window."
    (make-instance *window-class*))
  
  (serapeum:export-always 'ffi-window-to-foreground)
  (defmethod ffi-window-to-foreground ((window qt-window))
    "Show window in foreground."
    (qt:window-present (qt-object window)))
  
  (serapeum:export-always 'ffi-window-set-title)
  (defmethod ffi-window-set-title ((window qt-window) title)
    "Set the title for a window."
    (qt:window-set-window-title (qt-object window) title)
    title)
  
  (serapeum:export-always 'ffi-window-active)
  (defmethod ffi-window-active ((browser qt-browser))
    "Return the window object for the currently active window."
    (setf (slot-value browser 'last-active-window)
          (or (find-if #'qt:window-is-active-window (window-list) :key #'qt-object)
              (slot-value browser 'last-active-window))))
  
  (serapeum:export-always 'ffi-window-set-active-buffer)
  (defmethod ffi-window-set-active-buffer ((window qt-window) (buffer qt-buffer))
    "Set BROWSER's WINDOW buffer to BUFFER."
    (qt:widget-set-parent (qt-object (active-buffer window)) (cffi:null-pointer))
  
negative.code: (defmethod process-destroy ((window qt-window))
    (window-delete window))
  
  (defmethod ffi-window-delete ((window qt-window))
    "Delete a window object and remove it from the hash of windows.")
  
  