typedef struct lkb_edge { int from, to, id, key; char *abbr, *type, *label; // label is as displayed, usually = id+abbr int ndaughters; int *daughters; // XXX should probably precompute what lkb_edge each daughter points to some time int x, y, dx, dy, bold, filter; } lkb_edge; typedef struct lkb_chart_cell { int from, to; int x, y, dx, dy; } lkb_chart_cell; typedef struct lkb_chart { int id, size; int nedges; lkb_edge *edges; int ncells; lkb_chart_cell *cells; int hold_selections; } lkb_chart; lkb_chart *build_chart(int id, int size, int nedges, lkb_edge **edges);