Kyle Jones wrote:
Kirill 'Big K' Katsnelson writes:
> Some time ago, Ben Wing wrote...
> >The hope was the opposite -- eliminate the "font" property and
> >separate out each individual property of it to a separate face
> >property. The problem was, there was disagreement over how to
> >design this. Kyle wants to have a "font" property containing a
> >list of all the actual font properties. I think it's arbitrary
> >to distinguish between font and other properties, and that all
> >properties should be equal at the face level.
>
> Why the opposite? Perhaps I misworded the question somehow. Second
> try. :) Should underline and strike out properties go away from
> fonts and remain only on the face level?
>
> I agree with Ben. I wrote not the best code in my life just
> to separate underline property of the font to be a property
> of the face, despite that in Windows it is a property of the
> former. 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. The differences are due to difference
in these environments. That's exactly why we should not add a
bunch of face properties for fonts. 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.
> 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 don't want so much abstraction
that it is hard to specify a single font, simply and exactly. I
don't want to have to set fifteen face properties just to specify a
font. I don't want code that uses the existing API to be broken.
Kyle, I don't have the hands to argue much. Let me just make a few
points:
1) Consensus is nice -- if we could agree, Kirill or someone else might
actually implement it ...
2) All of your objections are solvable in my model. You can probably
figure them out yourself if you take this model as given, e.g.
1. set-face-font becomes a compatibility function that sets the actual
properties; ibid for face-font
2. set-face-properties sets multiple properties easily (and is more
powerful without an arbitary font/no-font distinction)
3. I don't understand your arguments here, but they don't seem relevant:
It isn't random, it is just not the same under X and under
Windows and under ttys. The differences are due to difference
in these environments. That's exactly why we should not add a
bunch of face properties for fonts. 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.
ben
--
In order to save my hands, I am cutting back on my responses, especially
to XEmacs-related mail. You _will_ get a response, but please be patient.
If you need an immediate response and it is not apparent in your message,
please say so. Thanks for your understanding.