[comp.windows.x] XVT, what is it?

paul@tredysvr.Tredydev.Unisys.COM (Paul Siu) (10/04/90)

I have to use XVT library to write X-window applications, but I am not sure what
it is.  It claims to have the ability to compile to Motif, open look, and other
styles, but how does it work?  Is it another layer on top of your widget sets?
What must you do to make a XVT program look like a motif program?

Any information would be very helpful.  Thanks.

nazgul@alphalpha.com (Kee Hinckley) (10/04/90)

In article <941@tredysvr.Tredydev.Unisys.COM> paul@tredysvr.Tredydev.Unisys.COM (Paul Siu) writes:
>I have to use XVT library to write X-window applications, but I am not sure what
>it is.  It claims to have the ability to compile to Motif, open look, and other
>styles, but how does it work?  Is it another layer on top of your widget sets?
>What must you do to make a XVT program look like a motif program?

XVT is a toolkit which is layered on top of existing toolkits.  To the best
of my knowlege they currently have PM, MS-Windows, Mac, Motif and character-based
versions working.  You use it just like any other GUI toolkit (if you can say
such a thing :-).  To get a Motif version presumbably you buy that set of binaries
from them - I'm not to clear on what they'll do when they release OL and have
the possibility of running two styles on the same machine.

You do *not* get full access to either the functionality or all the style of
Motif.  Let me try a rather strange analogy.  Imagine a toolkit as a mountain.
Some toolkits provide highlevel constructs for some features, others for other
features.  Each of these constructs is a peak.  What XVT attempts to do is take
what they felt were the most useful peaks of a variety of toolkits, and where
those features weren't directly provided in a particular instance they fill in
the valley.  For instance - the Mac has a printer-setup dialog, Motif doesn't.
So they provide a printer-setup dialog for Motif, while on the Mac they just
use the provided one.

The catch is there is a lot of underlying stuff that is specific to a particular
toolkit which is not provided.  In addition, Xt toolkits are not blazingly fast.
I've found it necessary to play tricks to get optimizations.  Since XVT hides
the underlying toolkit (there is limited punch-through, but not much) you may
not be able to make that optimization.  So you may have a slow app.  You'll
also find multiple windows with multiple menubars difficult, accelerators are
not supported, no constraint widgets are supported (everything is in absolute
coordinates), pixel independance isn't there, I don't believe there is multiple
display support, and XVT uses UIL for it's resource construction - so they'll
be no such thing as a small application (UIL pulls in the entire widget library).

My personal opinion is that XVT may be useful in limited contexts (where quick
portability is critical, or dumb terminals need to be supported without a lot
of effort (although terminal support without a mouse is complicated)).  I don't
see it as worthwhile if you are just planning on supporting one hardware platform,
or have time to do a real port that takes full advantage of each system.  I
should note that this opinion is formed from evaluation of the XVT manual,
heavy experience with Motif, and evaluation of the OL style guide and Xt+ API.

						-kee
-- 
Alphalpha Software, Inc.	|	motif-request@alphalpha.com
nazgul@alphalpha.com		|-----------------------------------
617/646-7703 (voice/fax)	|	Proline BBS: 617/641-3722

I'm not sure which upsets me more; that people are so unwilling to accept
responsibility for their own actions, or that they are so eager to regulate
everyone else's.