Replies: 9 comments 3 replies
-
|
It wraps at the right margin, so |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
|
My |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
|
Have you looked at the IRM documentation for SCROLLBYREPAINTFN and RESHAPEBYREPAINTFN ? This documentation should (... crosses fingers...) tell you enough about what your REPAINTFN needs to do in order to reconstruct the window contents for scrolling and reshaping. |
Beta Was this translation helpful? Give feedback.
-
|
I'm rereading the documentation of the repaint and scroll functions until something clicks. But I've noticed an interesting remark in the IRM description of
It's not clear to me whether the region refers only to the exposed or damaged portion of the window or the full inner area of the window. |
Beta Was this translation helpful? Give feedback.
-
|
The documentation of
So |
Beta Was this translation helpful? Give feedback.
-
|
Looking through the sources & library & lispusers... for uses of RESHAPEBYREPAINTFN, the TABLEBROWSER code does what I think you're trying to do -- have a look at library/TABLEBROWSER for the repaint/reshape functions and compare what they do to the IRM documentation. |
Beta Was this translation helpful? Give feedback.
-
|
Thanks for the leads, I'll study them. I'm also checking out a regexp parser design tool whose repaint and reshape functions are particularly clear even if the program mostly outputs graphics rather than text. |
Beta Was this translation helpful? Give feedback.






Uh oh!
There was an error while loading. Please reload this page.
-
I'm studying the window repainting demo of the Interlisp course notes by @fghalasz and I have a few questions.
The program, which prints a list of strings to a window, works well when the width of the longest string is shorter than the window width:
However, a narrower window wraps lines because stream output functions wrap text at the right margin rather than cropping:
which also causes screen corruption when scrolling:
I can't find an obvious way to make stream functions crop rather than wrap, so what is the idiomatic approach for repainting windows narrower than the output? Setting a minimum window width as large as the output? The windows of some Interlisp programs do crop the output.
Another question. Function
MakeStringWindowsets the width of the extent to the width of theREGIONproperty of the window, which may result in part of the output overlapping the window border. Wouldn't theWIDTHproperty be more appropriate as it constrains to the inner area?Finally, in function
StringWindowRepaintFnwhat is the purpose of the calls toADD1when calculatingFirstLineandLastLine? Accounting for lines partially displayed at the top and bottom of the window?Beta Was this translation helpful? Give feedback.
All reactions