Drop usage of defaction
[clinton/lisp-on-lines.git] / src / standard-wrappers.lisp
index 690ac6d..f54f1e6 100644 (file)
 
 (defvar *link-wrapped-p* nil)
 
-(define-layered-class description
+#+nil(define-layered-class description
   :in-layer wrap-link ()
   ((link :initarg :link-action
         :initarg :action
         :initform nil :special t :accessor link-action)))
 
-(defaction call-action-with-component-and-object ((self component) action-id object)
+(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))
 ;;; wrap-a-form
 (deflayer wrap-form)
 
-(define-layered-class description
+(defvar *in-form-p* nil)
+
+#+nil(define-layered-class description
   :in-layer wrap-form ()
-  ((form-buttons :initarg :form-buttons :initform nil :special t :accessor form-buttons)))
+  ((form-buttons :initarg :form-buttons :initform nil :special t :accessor form-buttons)
+   (form-type :initarg :form-type :initform '<ucw:simple-form :special t :accessor form-type)))
 
 (defattribute form-button-attribute ()
   ((form-buttons :initarg :form-buttons :initform nil :special t :accessor form-buttons)))
                                   action))))))))
 
 
-
-(defdisplay :in-layer wrap-form :around (description object)
-  (<ucw:form
-   :action (refresh-component self)
-   (with-inactive-layers (wrap-form)
-     (call-next-method)
-     (with-inactive-layers (show-attribute-labels)
-       (display-attribute
-       (make-instance
-        'form-button-attribute
-        :form-buttons
-        (form-buttons description))
-       object)))))
+(defdisplay
+  :in-layer wrap-form
+  :around (description object)
+  (flet ((body ()
+          (with-inactive-layers (wrap-form)
+            (call-next-method)
+            (with-inactive-layers (show-attribute-labels)
+              (display-attribute
+               (make-instance
+                'form-button-attribute
+                :form-buttons
+                (form-buttons description))
+               object)))))
+    (ecase (form-type description)
+      ('<ucw:simple-form
+       (<ucw:simple-form
+       :action (refresh-component self)
+       (body)))
+      ('<ucw:form
+       (<ucw:form
+       :action (refresh-component self)
+       (body))))))
 
 ;;;; wrap a DIV
 
 
 (deflayer wrap-div)
 
-(define-layered-class description
+#+nil(define-layered-class description
   :in-layer wrap-div ()
   ((div-attributes :accessor div-attributes :initarg :div :special t :initform nil)))