CLIM mail archive

[Prev][Next][Index][Thread]

Cell borders in formatting tables



    Date: Wed, 22 Sep 1993 14:17 EDT
    From: Adam Carlson <carlson@titanic.cs.umass.edu>

    Clim 1.1 with Allegro 4.1/Lucid 4.1 on Decstation and SPARCstation

    I am trying to get a table that has borders around arbitrary cells, in
    particular I want one that looks like this:

      |  X1  X2  X3
    --+------------
    Y1| 7.2   3   1
    Y2|   2  -5   3
    Y3|   4   2   5

    I first tried using the surrounding-output-with-borders macro to put
    boxes around the X and Y labels, figuring I could write a border type
    for a line on the right hand side of a cell, but the boxes don't show
    up in the right places.  I tried putting the
    surrounding-output-with-borders outside the formatting-cell and inside
    and both gave me the same results.  The boxes are horizontally
    adjacent and each is a few pixels lower than the previous one.  How do
    I arbitrarily put borders around cells in a table?

Putting SURROUNDING-OUTPUT-WITH-BORDERS will definitely not work
properly, because the table formatter's constraint engine won't know to
move the borders.

Putting the borders inside the cells will place borders correctly
(modulo any bugs in CLIM 1.1 -- it works for me in CLIM 2.0), but note
that table cells do not necessarily abut completely adjacent, so using
SURROUNDING-OUTPUT-WITH-BORDERS won't work for adding table rules.

    Also, if you look closely at the demo, you will see that the size of
    the border is determined by the size of the contents in the cell.
    This makes sense if the surrounding-output-with-borders were inside
    the formatting-cell, but if it's outside (as it is in the demo), it
    would be nice if it surrounding the entire area of the cell.  (What if
    I wanted my table in a grid, spreadsheet style?)

SURROUNDING-OUTPUT-WITH-BORDERS is the wrong thing for this.  CLIM
does not presently provide what you want.

    The following is some code that will demonstrate the problem:

Inspired by this mail, I wrote a little piece of code that adds
horizontal or vertical rules to tables.  You specify where you want
the rules by specifying row or column numbers, and the hack puts a
rule before that row or column.  The code only works for CLIM 2.0.
I'll post it at some point if people are interested, but I'm afraid I
don't have time to port it back to CLIM 1.1.


References:

Main Index | Thread Index