CLIM mail archive
[Prev][Next][Index][Thread]
Hardcopy of Output History
Here is mail on that topic from Scott. His suggestion to use
REDISPLAY T did to cause a redraw to the new stream did work,
but I ended up having to just redrawing everything to postscript.
Let me know if you discover any tricks. You might want to monitor
the clipping regions mail traffic.
To: gma@bitterroot.apl.washington.edu
Cc: clim@BBN.COM
In-Reply-To: Gregory M Anderson's message of Wed, 11 May 1994 14:07-0700 <19940511210711.3.GMA@BITTERROOT.apl.washington.edu>
Subject: Postscript dumps of frame output history.
Date: Wed, 11 May 1994 14:07-0700
From: Gregory M Anderson <gma@bitterroot.apl.washington.edu>
Date: Tue, 10 May 1994 12:36 PDT
From: Scott McKay <swm@harlequin.com>
Date: Mon, 9 May 1994 19:24-0700
From: Gregory M Anderson <gma@bitterroot.apl.washington.edu>
Character-Type-Mappings: (1 0 (NIL 0) (:FIX :ROMAN :TINY) "TINY")
(2 0 (NIL 0) (NIL :BOLD NIL) "CPTFONTCB")
(3 0 (NIL 0) (NIL :ITALIC NIL) "CPTFONTI")
Fonts: CPTFONT, TINY, CPTFONTCB, CPTFONTI
I'm trying to dump an application frame output to a postscript stream (the
frame display functions are presentations with incremental redisplay). I thought
that all I would have to do is call the display functions again with
output to the postscript stream. But CLIM seems to be trying to
redisplay the output history on the new stream (Is it acceptable
to change the stream on an output history? Doesn't seem
like it would be although it partially worked once.)
And I get this error. What am I doing wrong.
It looks to me like you created the output records on one stream, and
then used REPLAY to try to replay them onto a different stream, namely
the PostScript stream. Unfortunately, you can't do this.
The reason you can't is that output records have their size measured
for the stream they are created on. For example, text style metrics
are going to be completely different on a PS stream than they are on
some X terminal.
That's what it looks like to me too, but the question is, why.
What I did is call the frame display function (which has the presents
with incremental redisplay) with output to the postscript stream, and
that frame display code decided to replay the output history. I didn't ask
specifically to replay the history. I suppose it's the redisplay code,
not the presents, that cause the replay attempt.
Correct -- REDISPLAY is doing the minimum amount of work it can get
away with, so it's replaying on you.
One option is to duplicate the frame display function without
the incremental redisplay code. It seems strange to have to do that.
Is there a way to force a comprehensive redraw without duplicating the code?
REDISPLAY-FRAME-PANE :FORCE-P T might work.
Seems like the redisplay code should record the stream the
history was created on, and changing to a different stream should cause
a comprehensive redraw. Might this be a CLIM improvement?
It's probably not worth hairing up the basic protocols.
References:
Main Index |
Thread Index