Re: Make XForms multi-platform (i.e. non UNIX)?

Rob Fletcher (rpf1@york.ac.uk)
Mon, 10 Feb 1997 10:00:38 +0000 (GMT)

To subscribers of the xforms list from Rob Fletcher <rpf1@york.ac.uk> :

On Sat, 8 Feb 1997, Steve Lamont scrawled:

> To subscribers of the xforms list from spl@szechuan.ucsd.edu (Steve Lamont) :
>
> > Are thier plans in the future to port XForms to non-UNIX and non-X
> > platforms? It shouldn't be too hard as it doesn't seem a whole lot in the
> > XForms API is X specific.
>
> Actually, most of it is. I think it would be pretty difficult to
> separate out the X-centric code. You'd probably more or less have to
> start with the API function calls and work your way down. One of the
> ways that XForms is so relatively light weight is that it doesn't add
> an extra layer of abstraction.
>
> There was a group back on the east (US) coast who did try to do this
> sort of thing with a system called 'SUIT.' It worked on Unix systems
> and on Macs and PCs. I tried it. Among its several failings was that
> it was pretty doggy slow.

I used SUIT extensively before FORMS moved on to become XFORMS. Yes, SUIT
was slow, but given a fast machine, it was not *that* bad. One nice thing
it did have (which I have talked to TC about - remember TC?), was the fact
that every object had properties, integer, float, boolean etc. You simply
called routines to get and set them. It the property being "set" did not
already exist, it would be created. Thus:

#define MYINT "My Integer"
SUIT_set_integer( SUIT_Object *obj, MYINT, 20 );

(or "set_float", "set_boolean", "set_enum" , "set_pointer" etc ...)

Then, in a callback you could call something like,

my_value_today = SUIT_get_integer( me,MYINT );

SUIT_set_intger( me , MYINT, my_value_today+1);

and so on.

The standard "properties" like "current value" for a slider and so on were
accessed and set by the same mechanisms - quite neat, and made it very
easy for the user to "carry" user data around without any extra
programming (which we have to do with XFORMS).

I do feel that some form of "generic device" for users to set and unset
data associated with objects is overdue. Note the various ways people
have been programming round this in the archives.

Of course, to get the portability (WINDOWS 3.1, Unix and Mac), it was
all built on top of a simple generic graphics library, SRGP out of CS
Brown (I think), and SUIT was done by CS Virginia. Part of the slowness
would be to traverse the many layers down to the native graphics system!

I in fact still have to use SUIT, as a major application still in research
use was written (by me) with the kit. Now some major additions are
being planned. Getting my brain round TWO GUI toolkits, when it does not
really want to get round one (sometimes), can be painful!

>
> I'd be interested to hear what TC has to say, though. XForms for
> Windows -- YUCK!

I think the concensus would be for an NT 4.0 (4.x) version. People are
not being quite so "unkind" about this MS offerring ...

Also, many people do not have a choice, but have to use what there
systems people think is "good for them", or is it "best for them" ...
You choose ...

Me??? Unix is fine, but my users out there have el-cheapo PC's on their
desktops now and so an NT version would go down a storm.

Regards,

Rob

+===========================+=======================================+
| Dr R P Fletcher (Rob) | Email R.Fletcher@york.ac.uk |
| Graphics Coordinator | Phone +44 1904 433816 (ddi) |
| Computing Service | Frontdesk +44 1904 433800 (ddi) |
| University of York | Fax +44 1904 433740 |
| YORK YO1 5DD | URL http://www.york.ac.uk/~rpf1/|
| UK | DU Moo Rob_F |
| RobCam http://www.york.ac.uk/~rpf1/robcam.html |
+===================================================================+

_________________________________________________
To unsubscribe, send the message "unsubscribe" to
xforms-request@bob.usuf2.usuhs.mil or see
http://bob.usuf2.usuhs.mil/mailserv/xforms.html
Xforms Home Page: http://bragg.phys.uwm.edu/xforms
List Archive: http://bob.usuf2.usuhs.mil/mailserv/list-archives/xforms-archive/