Re: Topic: Tables and 1.0


Subject: Re: Topic: Tables and 1.0
From: Martin Sevior (msevior@mccubbin.ph.unimelb.edu.au)
Date: Wed May 02 2001 - 02:24:09 CDT


On Tue, 1 May 2001, Eric W. Sink wrote:

>
> 2. Implementing tables is really, really, really, really hard,
> especially when you've got some guy on the list who never shuts
> up unless things Just Work. Crappy tables are easy. If that's
> what you want, fork. AbiWord has always aimed a higher standard.
> If you think I'm wrong about the difficulty of doing tables
> right, do the macho thing and go code them, but don't even think
> about making the rest of the project wait on you. When you
> realize that I'm right, send me an email so I can say "I told
> you so".
>

Well there is a challenge! First Modeless dialogs now this :-)

I think that if Dom and I had 1 month together with no distractions we
could do a good job on tables. Not that is likely to happen.

Anyway Eric I would appreciate your feedback on what seems to us to be the
hardest part of doing tables right, that is page layout. Dom thought (and
I think it will work) of implementing something like the algorithim used
by GTK for laying out widgets in tables. GTK has containers within
containers. Each container is responsible for laying out widgits within
it's own size allocation. The size allocation it gets come from the widget
containing it.

I believe this will work for tables in abi. We can even steal the
algorithm straight from the gtk source code. Tables know their horizontal
dimensions as containts. The vertical dimensions are either imposed or
come from the amount of text and graphics within them. I'm sure we can use
the GTK algorithim to get this right.

I'm still thinking through how these would be represented in the
piecetable. Probabally as a collection of strux's per cell with an
associated id. There would be one overiding strux specifing the number of
rows and columns plus the id of the table.

Cheers

Martin



This archive was generated by hypermail 2b25 : Sat May 26 2001 - 03:51:00 CDT