CLIM mail archive


Re: lack of :extend-width arg to clim:formatting-table

   Date: Thu, 2 Apr 1992 16:02-0500
   From: Scott McKay <SWM@SAPSUCKER.SCRC.Symbolics.COM>

       Date: Thu, 2 Apr 1992 14:19 EST
       From: Meir Laker <>

       dw:formatting-table had an :extend-width arg which (if specified with
       value t) caused dw to space the table columns evenly over the full
       horizontal space available.  We used this for presenting dynamically
       growing tables (i.e., the number of columns changes) so that we didn't
       have to calculate the inter-column spacing on the fly as the table
       width grew and shrunk in order to keep the table spaced evenly across
       a window.

       This option seems to be missing from the clim version.  Am I expected
       to manage the inter-column spacing myself?  I would need to write my
       table to a helper stream, retrieve the size of its bounding rectangle
       apportion the remaining space amongst the current number of columns in
       the table, and finally write the table specifying a new inter-column
       spacing.  This seems like duplication of work that clim is already

       I notice that clim:formatting-item-list is documented with the above
       behavior by default (although I couldn't get it to work either with
       even the simple case:
          (clim:formatting-item-list (stream :n-rows 1
   				   :stream-width (clim:stream-text-margin stream))
   	   . . . . )   ).

       Nevertheless, I really need the behavior with a table of 2 rows as well.

   Historical background: one very important thing for Genera users to
   remember about CLIM is that CLIM is not, and is not intended to be, a
   portable implementation of Dynamic Windows.  It is true that CLIM is the
   intellectual successor to DW, but CLIM was designed from the ground up
   based on our experiences with DW, but the DW code was not used as a
   "reference document" for CLIM's code.  We explicitly avoided porting a
   lot of the less frequently used things from DW to CLIM in order to keep
   CLIM simpler than DW.  (Those of you who have never used Dynamic Windows
   would probably be horrified at just how much more complicated DW is than
   CLIM, given the complexity of CLIM.)

   Anyway, :EXTEND-WIDTH is one of the many things that was thought to be
   of limited utility, and was therefore omitted from CLIM.  If this is
   critically important to you or is somewhat important to a larger group
   of users, then it is probably worth doing.  Otherwise, this will have to
   go on the back-burner for the time being until one of us has enough time
   to do this as a hack-attack.  If you are interested in trying to extend
   FORMATTING-TABLE in this way yourself, I would be happy to send you the
   source code for it in exchange for whatever you come up with.

3 questions:

1. What about clim:formatting-item-list which IS documented as
exhibiting the above behavior?  Apparently there was thought invested
in this behavior for clim as well!

2. In addition, clim:formatting-item-list DOESN'T WORK in the above
case although it is documented to work.  (I guess not enough thought
was invested, after all!)

3. Is the method I specify above (using a helper stream and bounding
rectangle) a reasonable approach if I don't want to hack the
clim:formatting-table code at the moment?

Meir Laker


Main Index | Thread Index