[Cairo] Re: [xsvg] cairo_text_extents ?
spitzak at d2.com
Fri Dec 5 11:36:48 PST 2003
On Friday 05 December 2003 10:16 am, Carl Worth wrote:
> > I want to allow a platform-specific "configuration" program that says
> > "the default font is this". As designed I CANNOT do this unless every
> > program uses the platform-specific interface.
> I don't think I've understood your comment here. Is it that you would
> like an interface that would enumerate the acceptable family names
> that could be passed to cairo_select_font? We could probably add that
> without going too far over the slippery slope.
The enumeration interface would be very nice, and also a requirement for a
usable Cairo. It should not be hard, because I don't think any guarantee that
it returns *everything* is required. But that is not what I am talking about.
When you run KDE/Gnome, there is a "configuration" panel that lets the user
select things such as the default font to use. I think the user would be
extremely disappointed if this did not allow them to choose all possible
fonts on their platform by using the device-specific interface. For instance
the device may provide controls for the weight or other attributes. It would
be very nice if a portable application could use such configuration data. It
may also be very useful to drag & drop fonts from one program to another
(this would make font-selection panels reusable and allow device-specific
font selection even for non-device-aware programs), and to store fonts
generated by a device-specific program into files readable by
I think this means there *must* be a public "turn a string into a
device-specific font" interface somewhere. Unless cairo provides this, we
have just added the requirement for a second "font naming" interface. Having
two interfaces that do the same thing is a *bad* idea.
Notice that there is no requirement that the a program be able to
*understand* the string. Only the device-specific interface needs to do that.
Therefore I do not see this as a slippery-slope.
My current recommendation for this string is to have the following form:
"cairo-name : gibberish"
Where ':' is some seperating character that is not allowed in a cairo font
name. "gibberish" is an unreadable hex dump of internal data from the
device-specific interface, including an id for what device it is. This data
may completely define the font, or the device-specific interface can use both
it and the cairo-name. Any other device will recognize that it does not
understand the gibberish and will select the font based on the cairo name
,~,~,~,~ ~ ~ ~ ~
/\_ _|_========___ Bill Spitzak
~~~/\/\\~~~~~~\____________/~~~~~~~~ spitzak at d2.com
More information about the cairo