[comp.sys.next] flushing buffered windows....

dz@citron.ucsb.edu (Daniel James Zerkle) (09/15/89)

I have a TextField that I want to update periodically with status
messages.  There are some bits of my program that take a somewhat
large amount of time, and I want to display a message showing the
user what is going on.

The problem with this is that the message is not displayed right
away.  The update often doesn't happen until the program is again
waiting for user input.  I assume that the delay is due to the window
being buffered.  I tried something that I thought would flush it and
display the results:

[messageField setStringValue:aString];
[messageField display];
[[messageField window] flushWindow];

The last two lines seem to have no effect, unfortunately.  I tried
making the window merely "retained" instead of "buffered", but that's
extremely ugly.  Anybody have a fix?  These messages really have to
be displayed instantly.

| Dan Zerkle home:(805) 968-4683 morning:961-2434 afternoon:687-0110  |
| dz@cornu.ucsb.edu dz%cornu@ucsbuxa.bitnet ...ucbvax!hub!cornu!dz    |
| Snailmail: 6681 Berkshire Terrace #5, Isla Vista, CA  93117         |
| Disclaimer: If it's wrong or stupid, pretend I didn't do it.        |

greid@adobe.com (Glenn Reid) (09/15/89)

In article <2344@hub.UUCP> dz@cornu.ucsb.edu (Daniel James Zerkle) writes:
    I have a TextField that I want to update periodically with status
    messages.  There are some bits of my program that take a somewhat
    large amount of time, and I want to display a message showing the
    user what is going on.
    
    The problem with this is that the message is not displayed right
    away.  The update often doesn't happen until the program is again
    waiting for user input.  I assume that the delay is due to the window
    being buffered.

Try using NXPing().  That's what the documentation says it's for;
it works for me....

Glenn Reid
Adobe Systems

eht@f.word.cs.cmu.edu (Eric Thayer) (09/15/89)

In article <2344@hub.UUCP> dz@cornu.ucsb.edu (Daniel James Zerkle) writes:
>The problem with this is that the message is not displayed right
>away.  The update often doesn't happen until the program is again
>waiting for user input.
>[messageField setStringValue:aString];
>[messageField display];
>[[messageField window] flushWindow];

You might try replacing the last two lines with a NXPing(); or a DPSFlush();

-- 
Eric H. Thayer      School of Computer Science, Carnegie Mellon
(412) 268-7679      5000 Forbes Ave, Pittsburgh, PA 15213