Kyle Jones <kyle_jones(a)wonderworks.com> writes:
> > Not only the division line between font and face properties is
> > random, it is different in Windows and in
> > X. Faces should be -- eh -- homogenized?
>
> It isn't random, it is just not the same under X and under Windows
> and under ttys.
When designing an application whose API is supposed to work across
window systems, I don't really see the difference between "random" and
"closely modeled after X".
> The differences are due to difference in these environments. That's
> exactly why we should not add a bunch of face properties for fonts.
Actually, the proposal goes the other way around: to add a bunch of
what are now font properties to faces. One reason why we'd want to do
that is for more logical support of face merging. You probably
disagree, but I liked the new FSF model a lot.
Another reason we might want to do that is the fact that there are few
"obvious" font properties.
> Let the differences be encoded in the instantiators for the face's
> font specifier. This way when the next operating system comes
> along, with yet another font model, we won't have to change the low
> level API once again to try to make everything look the same.
But the same goes the other way around, doesn't it? If we just use
the face properties to construct the full outlook of a face, the code
that does the construction will be window-system-specific and (mostly)
invisible from the outside. So when another system comes by, we just
add new device methods in C and stuff.
> > Is it possible to kick fonts away form the lisp level at all?
> > Fonts are not abstract enough, faces are.
>
> I really don't want to do this.
I do, and not only for ease of use. This kind of thing is really
needed for proper merging of faces. As someone who has tried to
support the `:bold' property in Customize, I find the lack of
existence of a font model awful.
> I don't want so much abstraction that it is hard to specify a single
> font, simply and exactly.
Noone said this would be impossible. The way I see it, if you wanted,
you could always specify a single font and leave it at that.
> I don't want code that uses the existing API to be broken.
Neither do I. But backward compatibility should not be hard to
achieve if we have a sane low-level API to build upon.