2.2.5 Borders

Borders =>
    count(
        ib1[endian]
        be32[n-borders] Border*[n-borders]
        bool[show-grid-lines]
        00 00 00)

Border =>
    be32[border-type]
    be32[stroke-type]
    be32[color]

The Borders reflect how borders between regions are drawn.

The fixed value of endian can be used to validate the endianness.

show-grid-lines is 1 to draw grid lines, otherwise 0.

Each Border describes one kind of border. n-borders seems to always be 19. Each border-type appears once (although in an unpredictable order) and correspond to the following borders:

0

Title.

1…4

Left, top, right, and bottom outer frame.

5…8

Left, top, right, and bottom inner frame.

9, 10

Left and top of data area.

11, 12

Horizontal and vertical dimension rows.

13, 14

Horizontal and vertical dimension columns.

15, 16

Horizontal and vertical category rows.

17, 18

Horizontal and vertical category columns.

stroke-type describes how a border is drawn, as one of:

0

No line.

1

Solid line.

2

Dashed line.

3

Thick line.

4

Thin line.

5

Double line.

color is an RGB color. Bits 24–31 are alpha, bits 16–23 are red, 8–15 are green, 0–7 are blue. An alpha of 255 indicates an opaque color, therefore opaque black is 0xff000000.