Xref: utzoo comp.windows.x:32988 comp.windows.x.motif:1972 comp.windows.open-look:637 Path: utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!thunder.mcrcim.mcgill.edu!snorkelwacker.mit.edu!spool.mu.edu!uunet!stan!marvin!toml From: toml@marvin.Solbourne.COM (Tom LaStrange) Newsgroups: comp.windows.x,comp.windows.x.motif,comp.windows.open-look Subject: Re: Toolkit for Open Look *and* OSF/Motif Look and Feel Message-ID: Date: 20 Feb 91 16:09:22 GMT References: <1322@ixos.de> <1057@attc.UUCP> <1991Feb19.210822.26826@visix.com> <1991Feb20.170617.15372@cs.umn.edu> Sender: toml@Solbourne.COM (Tom LaStrange) Organization: Solbourne Computer, Inc. Lines: 34 In-Reply-To: brsmith@cs.umn.edu's message of Wed, 20 Feb 91 17:06:17 GMT } >In article <1057@attc.UUCP> marbru@auto-trol.UUCP (Martin Brunecky) writes: } >> Solbourne OI is probably as close as you can ever get. I think } >> they did a very good job implementing UI *components* which can } >> act "both ways". } } >OI looks deeply cool, but even it has some drawbacks. You need C++, } >for one. Some of us are not yet convinced that C++ is The One True } >Way :). } } Ack! An unbeliever! :-) } } I'm not yet convinced that OI is the One True Schizophrenic Toolkit, } either. From what little I've seen, it didn't look nearly as elegant } as InterViews. (InterViews == a different toolkit, also in C++) } } I.E. In an example of how to create a scrollbar, they called a routine } named "oi_create_scrollbar()" or such. This may make sense in C, but } C++ has constructors. In InterViews, you'd just declare it, like; } HScroller Foo(scrollme); // scrollme is the object to be scrolled } } or create a new one; } new HScroller *Foo = HScroller(scrollme); } } I don't understand why they didn't use constructors, and my first } guess is that the implementor wasn't completely comfortable with C++. How do you signal a failure when using a constructor? The oi_create*** routines basically do a "new" with additional checks to ensure all of the object's resources were allocated (bitmap files, fonts, etc.) If the object could not be constructed, a NULL is returned and all resources that were allocated are freed. -- Tom LaStrange toml@Solbourne.COM