[comp.windows.x] Setting the `thumb' of scrollbars using the resources file

Damian.Cugley@prg.ox.ac.uk (Damian Cugley) (12/04/90)

[Sorry if this has already been discussed to death and is about to be
fixed in X11R5.]

So.  The X toolkit uses string-comparisons for every aspect of its
operation.  This is rationalized on the grounds that it makes X
maximally configurable by the user: if *everything* is be set from the
resources database then every customization is possible, whereas leaving
it to the programmer to decide what is configurable will always leave
something useful out.

Unfortunately this fine theory doesn't quite work.  

I wanted to use the `thumb' resource of Xaw to make my scrollbars match
the titlebar stripe (and also so that the resources nonsense was finally
doing something other than make X run slow).

The first snag is that the resources for scrollbars assumes both
horizontal and vertical scrollbars use the same bitmap, which is very
foolish.

I can get around this partially by setting the two scrollbars of (say)
Viewports explicitly, and similarly for applications that use horizontal
bars separately.  (Since most scrollbars are vertical the easiest way is
to set *Scrollbar.thumb to the vertical bitmap and set each horizontal
bar separately.)

But.

The Text widget.

The Text @#$%!&* widgit.

This has two scrollbars which are PRIVATE to the widget structure - they
CAN'T have their resources set.

Result: either I make do with the horizontal scrollbar looking terrible
because it has the vertical bar's pattern replicated oddly, or I come up
with some pattern that works both horizontally and vertically, which
either way really does suck.

OK, OK, I know what you'll say.  "If you don't like this toolkit, why
don't you write your own?"  "Why not write a window manager that works
they way you want it?"  "If you don't like XTerm, write your own
termulator!"  "Patch the source, everybody else does!"  Good grief.

Alternately, is there a solution I've missed?  Some
EccentricallyNamedResource for the TextSourceSinkInterfaceWidgetThing
that does what I want?

Damian

P.S. I hate the X naming conventions.  Not that that matters.