[comp.windows.interviews] Graphics in ibuild.

grahamd@otc.otca.oz.au (Graham Dumpleton) (04/24/91)

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. 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.

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.

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.

--
Graham Dumpleton (grahamd@otc.otca.oz.au)

vlis@lurch.stanford.edu (John Vlissides) (04/24/91)

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