CLIM mail archive



   Date: Thu, 30 Jun 1994 09:54-0700
   From: Gregory M Anderson <>

       Date: Wed, 29 Jun 1994 18:31 PDT
       From: (Robert Pfeiffer)

	   Date: Wed, 29 Jun 1994 16:37 PDT
	   From: Gregory M Anderson <>

	   Did you ever get an answer to your question?  I've been wondering
	   the same thing, and have some thoughts, but no answers.
	   Maybe we could bash heads

       Unfortunately, no answer has been forthcoming. I'm  still optimistic that
       someone will provide a simple solution to this. It just can't be that
       difficult, can it?

   Well, I'm not sure, but I do know that I tried several unsuccessful methods.

   I've looked at the output record contents, and I don't think that output records 
   have enough information to be able change their color, shape, and so on.  I believe
   the presentation is required.  So I tried erasing the output record (no problem)
   and drawing a new one in its place (again no problem), but I can't seem to get
   the new record to replace the old correctly in the history, and redisplays break
   on (the new?) output record.  

   To implement this, I stored the original output record in the objects being presented using

   (setf (output-record object)
	   (UPDATING-OUTPUT (stream :unique-id object :cache-value (color color))
			    (present object 'type :stream stream))

   I used the following to erase the record:

       (erase-output-record (output-record object) stream)
       ;; not sure whether or not to use this 
       ;; (delete-output-record (output-record object) parent)

   Here is where it gets fuzzy, candidates I've tried to get new the record displayed are:

     (present object 'type:stream stream)
     (redisplay (output-record object) stream)
     (replay-output-record (output-record object) stream)

   So I'm stuck.

I would have done this to create the record

 (setf (output-record object)
       (updating-output (stream)
         (updating-output (stream :unique-id object :cache-value (color color))
           (present object 'type :stream stream))))

and then simply used REDISPLAY on the cached record.

You don't need to dink around with erasing or replaying.


Main Index | Thread Index