Actually, from having just looked at the viola code, I don't see that it
uses a text widget anywhere. They have their own code to figure out the
visible text, and draw it each time.
> Actually, I don't think it's a pixmap. What every X text widget I'm
> aware of does, is this: It puts up a single window, and figures out
> what lines of the text to paint in that window. When the user scrolls
> the text, it re-figures the lines, and repaints the window. Thus it can
> handle text of arbitrary length, with relatively small use of X Window
> resources, even if backing store is enabled; in fact, backing store
> works well with this scheme.
How many X text widgets are you aware of? Certainly the Motif Text widget
does NOT do what you describe. The Athena Text widget does. You have some
other text widget somewhere you are referring to?
As the author of the HTMLwidget (yes, it IS a widget, and you could link it
into either Athena or Motif and it will work with the other widgets) I
suppose I should defend it a little here.
In general the criticisms of my design decision are correct, in specifics
they have all been wrong. As I believe others have pointed out by now, your
X server is NOT allocating some huge chunk of memory. Motif made the same
decision I did, and Athena did not. There are many reasons behind the
decision, I will only mention one important one here that no one else has
covered yet. I wanted my widget to work with other widgets sets
(specifically with either Athena or Motif). In order to do the kind of
viewport scrolling Bill would like, the widget, has to know intimate details
about the internals of a second scrollbar widget which it is going to
display for scrolling. This ties you to whatever widgets set's scrollbar
you end up using.
In the long run (xmosaic 2.0 or 3.0 if the project lasts that long) the
widget will be changed to do pretty much what Bill describes. This will
tie it to the Motif widget set, and make it unusable in other widget
sets. I personally dislike this because I disapprove of OSF's frequently
heavy handed methods, and don't like to see all my work benefitting them,
and only them, but other design decisions override my personal preferences,
and simple practicality forces the widget re-write.
As to the heated argument that seems to have resulted. Sigh........
It would be nice if everyone double checked their facts before posting
them to thousands of people world-wide, but the majority of the people
on the net do not (including me at times). This is unfortunate.
It seems to be human nature that if something works and they like
it, most say nothing. But if they don't like it, most yell loudly.
Someone once told me you can tell a software success by how many people
were complaining, the more complaints, the more successful it was. I
believe this is true. So far we are in the envious position of receiveing
MORE praise than complaints. Think a moment about how many happy quiet
people this means, compared to how few unhappy noisy people