hi everyone~
i'm learning Reactor programming now.
i wrote a test program to examine the response of act.
there are two questions i cant understand.
1. Can i use (vlr-pers) in :vlr-beginClose callback ?
it always return nil.
2. my object-reactor cant work well with "undo" command,can anyone give me an example code.
thank you very much.
the code:
(if (not *commandreactor
*) nil
'(
(:vlr-commandwillstart . test:commandwillstart)
(:vlr-commandended . test:commandended)
)
)
)
)
nil
'(
(:vlr-beginClose . test:beginClose)
)
)
)
)
(defun test:beginclose
(reactor para
/ reactorlist ret
) )
)
)
(defun c:test
(/ cenpt ocir otext
) *mospace*
1.0
)
)
"test circle"
'(
(:vlr-erased . test:erased)
(:vlr-unerased . test:unerased)
(:vlr-modified . test:modified)
(:vlr-copied . test:copied)
)
)
)
(defun test:undosubcommandbegin
(reactor para
) (setq *undoreactor
* (cons reactor
*undoreactor
*) *undopara
* (cons para
*undopara
*) )
)
(defun test:copied
(obj reactor para
) (setq *objcopied
* (cons para
*objcopied
*) *reactorcopied
* (cons reactor
*reactorcopied
*) )
)
(defun test:commandwillstart
(reactor para
) (setq *reactormodified
* nil *reactortoerase* nil
*reactorcopied* nil
*objmodified* nil
*objtoerase* nil
)
)
(defun test:commandended
(reactor para
) (*reactortoerase*
(test:erasereactor)
)
(*reactorcopied*
(test:copyreactor)
)
(*reactormodified*
(test:modifyreactor)
)
)
)
(defun test:modified
(obj reactor para
) (setq *objmodified
* (cons obj
*objmodified
*)) (setq *reactormodified
* (cons reactor
*reactormodified
*)) )
)
(defun test:erased
(obj reactor para
) (setq *objtoerase
* (cons obj
*objtoerase
*)) (setq *reactortoerase
* (cons reactor
*reactortoerase
*)) )
)
(defun test:modifyreactor
(/ reactor owners obj1 obj2
) )
obj2
'Textstring
)
obj1
'Textstring
)
)
)
nil
*objmodified* nil
)
)
(defun test:erasereactor
(/ reactor owners owner
) )
)
)
nil
*objtoerase* nil
)
)
(defun test:unerased
(obj reactor para
) (cons obj
*uneraseobjlist
*) *unerasereactorlist*
(cons reactor
*unerasereactorlist
*) *uneraseparalist*
(cons para
*uneraseparalist
*) )
)