Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!swrinde!elroy.jpl.nasa.gov!decwrl!stanford.edu!leland.Stanford.EDU!portia!vlis From: vlis@lurch.stanford.edu (John Vlissides) Newsgroups: comp.windows.interviews Subject: Re: Graphics in ibuild. Message-ID: Date: 24 Apr 91 13:27:24 GMT References: <2613@otc.otca.oz> Sender: news@leland.Stanford.EDU (Mr News) Organization: stanford university Lines: 70 In-Reply-To: grahamd@otc.otca.oz.au's message of 24 Apr 91 01:16:08 GMT In article <2613@otc.otca.oz> grahamd@otc.otca.oz.au (Graham Dumpleton) writes: Path: leland.Stanford.EDU!stanford.edu!agate!bionet!uwm.edu!zaphod.mps.ohio-state.edu!mips!spool.mu.edu!munnari.oz.au!metro!otc!grahamd From: grahamd@otc.otca.oz.au (Graham Dumpleton) Newsgroups: comp.windows.interviews Date: 24 Apr 91 01:16:08 GMT Sender: news@otc.otca.oz Reply-To: grahamd@otc.otca.oz.au (Graham Dumpleton) Organization: OTC Development Unit, Australia Lines: 19 From what I have been able to work out with ibuild, I can only construct interfaces which use the basic tools supplied. what I want to do however is to place in the interface a canvas or graphic on which I would be performing direct drawing operations using a Painter. If you want to do immediate-mode graphics, then you must define a new Interactor subclass. Ibuild doesn't yet support this directly. You can, however, put a "hole" in your interface, that is, an frame or some other MonoScene into which you insert an arbitrary interactor programmatically. If you want to exploit structured graphics, you could use the same technique to insert a GraphicBlock (subclass) instance into such a hole. (You'll need to put something in the hole in ibuild, a dummy interactor that has the same shape as the instance you'll end up inserting. You can use an HBox with a piece of HGlue and a piece of VGlue to define the proper shape.) Ibuild doesn't let you specify such semantics by direct manipulation, so you must implement it in the core subclass. Alternatively I may want to stick my own scene in the interface and do manipulations on that. Is this possible using ibuild or do I have to do everything by hand by deriving from the Editor class etc, like idraw and ibuild do. You'd use the same technique I described above to put your own Scene subclass instance into the rest of your ibuild-specified interface. I guess the real question is is it possible to have plain Interactors and Scenes as tools in the menu down the bottom of ibuild. Introducing plain Interactor and Scene instances wouldn't make sense, since these are abstract classes. It WOULD make sense to provide Interactor and Scene subclass instances (analogous to the MonoScene subclass instance from the Composition menu) that you'd define programmatically. In fact, we plan on adding the capability to introduce a subclass of any of the predefined objects. It's hard to provide a general metaphor for specifying behavior by direct manipulation that's as flexible and expressive as a textual programming language. Only when you have abstractions at the object level does it become easier to describe complex behavior interactively. To this end, we plan to add representations of Unidraw objects to ibuild, which will let you go beyond specifying just the "widgety" aspects of the interface. Also, is the Ibuild User's Guide the only documentation on ibuild, there doesn't seem to be a normal manual page. Admittedly I did have one file corrupted when I fetched everything, I have since got it again and believe I have a complete lot of src and documentation. There is no man page yet. -- John Vlissides Computer Systems Lab Stanford University vlis@interviews.stanford.edu