The distinction between layouts and widgets makes no sense, so you should combine
the different data required.  Consider a grouping widget.  Is this a layout or a
widget?  It draws, like a widget, but has children, like a layout.  Same for a tab
widget, properly implemented.  It draws, handles input, has children, and makes
choices about how to lay them out.
ben
Andy Piper wrote:
 At 10:39 PM 10/6/99 -0700, Ben Wing wrote:
 >Congrats!  Looks good.  But there are some problems.  In particular, you
 don't
 >handle multiple animated gifs properly. (In fact, there will be a timeout
 leak
 >in such a case!) You need to have each separate animated gif have its own
 >timeout, which you store as a field in the image instance, and the timeout's
 >argument should be the image instance, not a device.  This allows for
 animated
 Yes I know. I will fix.
 >gifs with different time delays (is this not a property of the gif itself?
 You
 >hardcode it at 100ms) and would also allow each gif to be stopped
 independently
 It is but I have no idea what property.
 >of the others. You also really need to implement this stop ability, or people
 >will go crazy.  You should do this using a weak list or hashtable of all the
 >animated gifs, which you map over.  You might also think about providing a
 lisp
 >interface to retrieve this list, and possibly other similar lists of extant
 >image instances. (Somebody, probably whose last name is Perry, is going to
 want
 >this.)
 Ok, I'll look into it.
 >Also, why do you have a separate IMAGE_WIDGET_MASK and IMAGE_LAYOUT_MASK?
 >These are really one and the same.
 I don't think so - the image data is different.
 andy
 --------------------------------------------------------------
 Dr Andy Piper
 Senior Consultant Architect, BEA Systems Ltd