[comp.windows.x.motif] Non-standard scrollbar placement

drk@twinkie.Rational.COM (David Kaelbling) (01/17/91)

One of my users wants a non-standard window layout, and I don't know
a good way to do it.  We want something like this:

	+-----------------------------------+
	|	      Menu bar		    |
	+---+---------------------------+---+
	| P |				| S |
	| a |				| c |
 	| l |				| r |
	| e |	      Work Area		| o |
	| t |				| l |
	| t |				| l |
	| e |				|   |
	+---+----+----------------------+---+
	| Button |	Scroll bar	|   |
	+--------+----------------------+---+

Note that the horizontal scroll bar isn't the same width as the work
area.  XmAUTOMATIC behavior is desired, although it doesn't strictly
need to be implemented that way.

My first idea was that all the widgets could be peers in a big happy
XmForm, but XmScrolledWindow suggests that the scroll bars need to be
its children.  Life without all the built-in XmScrolledWindow
functionality would be very painful.

My second idea was to try explicit XtSetValues() calls on the position
and size of the scroll bar, but the code in XmScrolledWindow doesn't
look very promising for that either.

My third idea was to find something the Style guide that said this
was a no-no, but I couldn't.

Is there an easy way out of this?  Maybe one of the approaches
mentioned isn't as difficult as it looks?  Maybe I missed the
obvious solution?  I haven't tried coding all the permutations, but
rather am hoping somebody in netland has already solved this problem.

	Thanks in advance,
	David
--
David Kaelbling                                       (408) 496-3600
c/o Rational; 3320 Scott Boulevard; Santa Clara, CA       95054-3197
Email: DKaelbling@Rational.COM, or uucp {uunet,ubvax,aeras}!igor!drk

colin@nbc1.nbc1.ge.com (Colin Rafferty) (01/18/91)

In article <823@igor.Rational.COM> drk@twinkie.Rational.COM (David Kaelbling) writes:
[I want to have a horizontal scrollbar that isn't the same width as the
work area.]

What I would suggest, although I've never done it, is to have the visible
scrollbar as separate from the XmScrolledWindow, have the scrollbar that's
attached not displayed, and have a callback on every resize/increment/etc
notification do that same thing to the visible scrollbar.

I don't think it would be too pretty a piece of code to do, but it should
work, whereas I can't see having the scrollbar that comes with the
XmScrolledWindow do what you want on its own.
--

-- 
Colin Owen Rafferty                      |         "Life is so complex, parts
colin@nbc1.ge.com                        |          of it must be imaginary."
{philabs,crdgw1,ge-dab}!nbc1!colin       |                         -Tim Thiel
	    (I don't speak for NBC.  Watch Tom Brokaw for that.)
-- 

-- 
Colin Owen Rafferty                      |         "Life is so complex, parts
colin@nbc1.ge.com                        |          of it must be imaginary."