sheffler@colt.CS.CMU.EDU (Thomas Sheffler) (06/15/90)
Are there any good ways to build robust interfaces? I've examined the sources to many different PD programs and have seen no good examples. By its very nature, C is not a great language for encapsulation or data hiding, and it seems that most interfaces are built from tons of initialized data structures with ampersands linking them together. Then, the messages sent for each gadget are handled individually with lots of special cases. Some of the tools I've come across for building interfaces are: PowerWindows - I've only heard about Req - a requester builder (PD) CanDo - I don't know much about, but it seems that it's like a hypercard application builder. I'm aware of the fact that 2.0 has the new 'gadgets.library', but I believe that this will only shortcut the use of most common types of gadgets, while not really opening up the possibility of easy design and management of new gadgets. It seems that some sort of object-oriented language for describing gadgets and interfaces would be in order. Such a beast would take care of complicated update procedures (inter-related gadgets) and allow the program writer to concentrate on issues other than processing INTUI-MESSAGES. This might involve a separation of the program into two parts: the interface handler, and the guts of what the application is doing. Other window systems are moving in this direction - so this is not that far-fetched. Any ideas/comments? -Tom
test@sparc1 (06/16/90)
I've just gotten started using CANDO. It's a very slick hypermedia program designed for the Amiga (what-- not ported from Messy-DOS?) that appears to do the vast majority of what Hypercard does, with a lot of extra features, like variably-sized windows, and the stacks that you create can be compiled into a freely-distributable program (although some stacks may make use of a library that comes with CANDO; if you use this library, you have to make arrangements with INOVAtronics). It's not as versatile as a programming language, obviously, but it has a well-designed scripting language, and scripts can be created that are carried out under specific situations: when a card is first put on the screen, after the card is on the screen, when the card is removed, when the mouse is clicked on a button, when the mouse button is released while on a card's button... and lots more besides. The company has a (non-toll-free) support line; when I've called, my questions were answered by the person who answered the phone-- I've never had THAT experience before! All in all, it's a great program for less than $100 (mail order price, that is), if you don't need absolute control over every aspect of what's on the screen-- the shape of the gadgets, etc. Dave Witzany witzany@sparc1.isgs.uiuc.edu