[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
help
- To: info-macl@cambridge.apple.com
 
- Subject: help
 
- From: lynch@aristotle.ils.nwu.edu
 
- Date: Thu, 14 May 1992 12:18:52 -0600
 
I'm building a region from a user's click-and-drag and associating it with
a target which will then be selected.
I have something like this:
(defmethod view-click-event-handler ((view zoomer) where)
  (let ((rgn (build-region view where))
        (target (funcall (target-selector view) view))))
    (add-subviews (make-instance 'hot-spot :region rgn :target target))))
Now, it's entirely possible that after making the hot-spot, the user will
not like any of his/her choices or will realize that the region made is
"not right".  
Ideally, then target-selector will have a cancel option.
How do I catch whether or not the target was cancelled?
[I need to dispose the rgn, if so.]
I'm not quite sure how to use unwind-protect and/or catch-cancel in this
case...
I *don't* want the behavior I've indicated changed:
  1.  User clicks on zoomer and drags to build region.
  2.  User is presented with a selection of targets to associate with rgn.
      User *may* press cancel to forget the whole thing.
  3.  Call #_DisposeRgn *ONLY* if the user canceled in step 2.
I'm probably just being stupid, but I can't get my brain to figure out how
to set this up.
"TANSTAAFL" Rich lynch@ils.nwu.edu
- Follow-Ups:
- Re: help
- From: hohmann@zug.csmil.umich.edu