struct tab_table *t;
t = pool_create_container (struct tab_table, container);
- table_init (&t->table, &tab_table_class);
- table_set_nc (&t->table, nc);
- table_set_nr (&t->table, nr);
+ table_init (&t->table, &tab_table_class, nc, nr);
- t->cf = nc;
t->cc = pool_calloc (t->container, nr * nc, sizeof *t->cc);
t->ct = pool_calloc (t->container, nr * nc, sizeof *t->ct);
{
int y;
for (y = y1; y <= y2; y++)
- t->rv[x + (t->cf + 1) * y] = style;
+ t->rv[x + (tab_nc (t) + 1) * y] = style;
}
}
{
int x;
for (x = x1; x <= x2; x++)
- t->rh[x + t->cf * y] = style;
+ t->rh[x + tab_nc (t) * y] = style;
}
}
int x;
for (x = x1; x <= x2; x++)
{
- t->rh[x + t->cf * y1] = f_h;
- t->rh[x + t->cf * (y2 + 1)] = f_h;
+ t->rh[x + tab_nc (t) * y1] = f_h;
+ t->rh[x + tab_nc (t) * (y2 + 1)] = f_h;
}
}
if (f_v != -1)
int y;
for (y = y1; y <= y2; y++)
{
- t->rv[x1 + (t->cf + 1) * y] = f_v;
- t->rv[(x2 + 1) + (t->cf + 1) * y] = f_v;
+ t->rv[x1 + (tab_nc (t) + 1) * y] = f_v;
+ t->rv[(x2 + 1) + (tab_nc (t) + 1) * y] = f_v;
}
}
int x;
for (x = x1; x <= x2; x++)
- t->rh[x + t->cf * y] = i_h;
+ t->rh[x + tab_nc (t) * y] = i_h;
}
}
if (i_v != -1)
int y;
for (y = y1; y <= y2; y++)
- t->rv[x + (t->cf + 1) * y] = i_v;
+ t->rv[x + (tab_nc (t) + 1) * y] = i_v;
}
}
}
}
}
- table->cc[c + r * table->cf] = text;
- table->ct[c + r * table->cf] = opt;
+ table->cc[c + r * tab_nc (table)] = text;
+ table->ct[c + r * tab_nc (table)] = opt;
}
/* Sets cell (C,R) in TABLE, with options OPT, to have text value
j->style = NULL;
{
- void **cc = &table->cc[x1 + y1 * table->cf];
- unsigned short *ct = &table->ct[x1 + y1 * table->cf];
- const int ofs = table->cf - (x2 - x1);
+ void **cc = &table->cc[x1 + y1 * tab_nc (table)];
+ unsigned short *ct = &table->ct[x1 + y1 * tab_nc (table)];
+ const int ofs = tab_nc (table) - (x2 - x1);
int y;
tab_add_footnote (struct tab_table *table, int x, int y,
const struct footnote *f)
{
- int index = x + y * table->cf;
+ int index = x + y * tab_nc (table);
unsigned short opt = table->ct[index];
struct tab_joined_cell *j;
tab_add_style (struct tab_table *table, int x, int y,
const struct area_style *style)
{
- int index = x + y * table->cf;
+ int index = x + y * tab_nc (table);
unsigned short opt = table->ct[index];
struct tab_joined_cell *j;
bool
tab_cell_is_empty (const struct tab_table *table, int c, int r)
{
- return table->cc[c + r * table->cf] == NULL;
+ return table->cc[c + r * tab_nc (table)] == NULL;
}
\f
/* Editing. */
struct table_cell *cell)
{
const struct tab_table *t = tab_cast (table);
- int index = x + y * t->cf;
+ int index = x + y * tab_nc (t);
unsigned short opt = t->ct[index];
const void *cc = t->cc[index];
cell->options = opt;
cell->n_footnotes = 0;
- cell->destructor = NULL;
int style_idx = (opt & TAB_STYLE_MASK) >> TAB_STYLE_SHIFT;
const struct area_style *style = t->styles[style_idx];
{
const struct tab_table *t = tab_cast (table);
uint8_t raw = (axis == TABLE_VERT
- ? t->rh[x + t->cf * y] : t->rv[x + (t->cf + 1) * y]);
+ ? t->rh[x + tab_nc (t) * y]
+ : t->rv[x + (tab_nc (t) + 1) * y]);
struct cell_color *p = t->rule_colors[(raw & TAB_RULE_STYLE_MASK)
>> TAB_RULE_STYLE_SHIFT];
if (p)