Table Cellmap - Border Collapse

Introduction

This document describes the additional information that is stored for border collapse tables in the cellmap.

Information storage

Each cellmap entry stores for tables in the border collapse mode additional information about its top and left edge and its top left corner.

As one can see from the following illustration this is enough to cover a whole table.

Image:bcentry.png

Only the right most edge and the bottom most edge of a table need to be stored in a different place.

Border

For the top and left border we store the width and the owner of the border. The width is stored in pixel coordinates.

The following owners are possible:

 eTableOwner        =  0,
 eColGroupOwner     =  1, 
 eAjaColGroupOwner  =  2, // col group to the left 
 eColOwner          =  3,
 eAjaColOwner       =  4, // col to the left
 eRowGroupOwner     =  5, 
 eAjaRowGroupOwner  =  6, // row group above
 eRowOwner          =  7, 
 eAjaRowOwner       =  8, // row above
 eCellOwner         =  9,
 eAjaCellOwner      = 10  // cell to the top or to the left

The ownership is determined by the rules for border conflict resolution as defined in CSS 2.1

Corner

For the corner we store

  • the corner ownership, defined by the orientation of the major edge relative to the corner that goes into that corner. It can have 4 values:
    • NS_SIDE_TOP
    • NS_SIDE_RIGHT
    • NS_SIDE_BOTTOM
    • NS_SIDE_LEFT
  • The size of the smaller border that goes into that corner.
  • if this corner is a start for a horizontal segment,
  • if this corner is a start for a vertical segment,
  • if this corner should be beveled.

Document Tags and Contributors

 Contributors to this page: teoli, Bernd mozilla
 Last updated by: Bernd mozilla,