CLIM mail archive
[Prev][Next][Index][Thread]
Re: Replacing presentations (repost)
Having been unsuccessful in my previous approach to "rolling my own"
incremental redisplay, I've revised my plan and found another way to fail.
[...]
Approach #2 (current attempt):
a) get the BOUNDING-RECTANGLE-MIN-X, BOUNDING-RECTANGLE-MIN-Y, and
OUTPUT-RECORD-PARENT of each presentation
b) remove the orginal presentation using ERASE-OUTPUT-RECORD
c) create a new presentation using PRESENT inside of
WITH-OUTPUT-RECORDING-OPTIONS (STREAM :DRAW NIL :RECORD T)
Here the newly generated output-records are inserted into the output history.
d) add the new presentation (output record) to the parent of the old one
(which happens to be a STANDARD-CELL-OUTPUT-RECORD in this case)
using ADD-OUTPUT-RECORD
What is happening here if you use ADD-OUTPUT-RECORD on a child-record that
*already*
is in the output history of a pane? (i.e., it already has a parent? Is the
reference
to this child correctly removed from the old parent?)
Maybe you should use WITH-OUTPUT-TO-OUTPUT-RECORD instead of the
WITH-OUTPUT-RECORDING-OPTIONS (STREAM :DRAW NIL :RECORD T) above?!
e) fix the coordinates of the new presentation using
OUTPUT-RECORD-SET-POSITION
f) call REPLAY on the new presentation
Problem #2:
Something in the output recording protocol becomes seriously broken. One
clear
aspect of this is that presentations disappear and reappear in new positions
when the window is scrolled.
Surely there must be a simple way to achieve my very modest goal.
Would someone please put me out of my misery and tell me what it is? :-)
;;; - Stefan Bernemann (berni@iml.fhg.de)
Main Index |
Thread Index