X-Git-Url: https://git.hcoop.net/clinton/lisp-on-lines.git/blobdiff_plain/e1645f63189477f1b39a173a41fcbbfefb5e88a6..1d51a2eea8537084e9e681c297422047ae858989:/src/standard-wrappers.lisp diff --git a/src/standard-wrappers.lisp b/src/standard-wrappers.lisp index 43151ca..f54f1e6 100644 --- a/src/standard-wrappers.lisp +++ b/src/standard-wrappers.lisp @@ -25,63 +25,98 @@ (defvar *link-wrapped-p* nil) -(define-layered-class description +#+nil(define-layered-class description :in-layer wrap-link () - ((link :initarg :link :initform nil :special t :accessor link))) + ((link :initarg :link-action + :initarg :action + :initform nil :special t :accessor link-action))) -(defdisplay - :in-layer wrap-link :around (description object) - (let ((link (link description))) +(defmethod/cc call-action-with-component-and-object ((self component) action-id object) + (funcall (ucw::find-action (ucw::context.current-frame *context*) action-id) + self + object)) - (with-inactive-layers (wrap-link) - (if *link-wrapped-p* - (call-next-method) - (let ((*link-wrapped-p* t)) - (