[comp.windows.x] cursors vs. fonts

djb@cbnews.ATT.COM (David J. Bryant) (10/26/88)

Continuing on the subject of cursors, it strikes me as curious that X11
treats cursors and fonts so differently.  I realize there are some important
distinctions between the two, but I like the idea that I can freely add 
fonts after I've built my installation, while I can only use those cursors
that existed at compile time.

I admit I have little experience building broad-scale X-type applications,
and I'm certainly not intimately aware of server-innards problems and
tradeoffs.  Still, it's been my observation that many people are more 
interested in customizing cursors that they are in generating fonts.  (People 
around here like to make up their own cursors as a way of personalizing 
their working environment -- we have state outline cursors, university logo 
cursors, sports cursors, festive holiday cursors, humorous cursors, etc.)  

Obviously you could advocate cursor mechanics analogous to the current
font mechanics (each cursor is in a separate "font" file in some subdirectory).
Perhaps there are better solutions as well.  Just what are the issues?
Performance?  (How many cursors do applications tend to use?  Do they "open"
and "close" them frequently?)  Something else?

	David Bryant  (djb@cbosgd.att.com)
	AT&T Bell Laboratories
	Columbus, OH  43213  614/860-4516

RWS@ZERMATT.LCS.MIT.EDU (Robert Scheifler) (10/27/88)

    Date: 26 Oct 88 13:02:59 GMT
    From: att!cbnews!djb@bloom-beacon.mit.edu  (David J. Bryant)

    it strikes me as curious that X11
    treats cursors and fonts so differently.

Most cursors *come* from font glyphs.

    I can only use those cursors that existed at compile time.

This is not a restriction at the protocol level, nor is it a restriction
at the Xlib level.  And, with proper converters, it isn't a restriction
at the widget level either.

    each cursor is in a separate "font" file in some subdirectory

Take a look at cursor.bdf sometime.

RWS@ZERMATT.LCS.MIT.EDU (Robert Scheifler) (10/29/88)

    Date: 28 Oct 88 12:32:28 EDT (Fri)
    From: djb@cbnews.ATT.COM (David J. Bryant)

    Still, while Xlib will dutifully provide for
    me whatever (numerically referenced) cursor I desire, the X environment
    mechanics and conventions aren't open-ended as is the case with fonts.  Long 
    after my X stuff is installed and built I can add and use new fonts without 
    having to recompile.  It's not nearly so straightfoward for cursors.

From the R3 Xmu library:

 * XmuConvertStringToCursor:
 *
 * allows String to specify a standard cursor name (from cursorfont.h), a
 * font name and glyph index of the form "FONT fontname index [[font] index]", 
 * or a bitmap file name (absolute, or relative to the global resource
 * bitmapFilePath, class BitmapFilePath).  If the resource is not
 * defined, the default value is the build symbol BITMAPDIR.


    It even seems hard to make a good generalization for the "value" of the 
    pointerShape resource.  What is it?

See above for an example of what it might be; unfortunately there wasn't
time to get the R3 xterm converted to this.

    What's a "proper converter"?

E.g., XmuConvertStringToCursor.