X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Foutput%2Ftable-item.c;h=e9b854040a823982c36ac96690f7594c9a3a90b0;hb=3e7375959ad4c954b165a0b367657702bfaf70fc;hp=6d4927326c3e6ea7f89e13de81c0d730b9b56fce;hpb=6068787ea557d3a6bb636d1d5b39c75eae30fd6f;p=pspp diff --git a/src/output/table-item.c b/src/output/table-item.c index 6d4927326c..e9b854040a 100644 --- a/src/output/table-item.c +++ b/src/output/table-item.c @@ -35,8 +35,7 @@ table_item_text_create (const char *content) return NULL; struct table_item_text *text = xmalloc (sizeof *text); - *text = (struct table_item_text) { .content = xstrdup (content), - .halign = TAB_LEFT }; + *text = (struct table_item_text) { .content = xstrdup (content) }; return text; } @@ -52,8 +51,7 @@ table_item_text_clone (const struct table_item_text *old) .footnotes = xmemdup (old->footnotes, old->n_footnotes * sizeof *old->footnotes), .n_footnotes = old->n_footnotes, - .style = cell_style_clone (NULL, old->style), - .halign = old->halign, + .style = area_style_clone (NULL, old->style), }; return new; } @@ -65,7 +63,7 @@ table_item_text_destroy (struct table_item_text *text) { free (text->content); free (text->footnotes); - cell_style_free (text->style); + area_style_free (text->style); free (text); } } @@ -80,6 +78,7 @@ table_item_create (struct table *table, const char *title, const char *caption) output_item_init (&item->output_item, &table_item_class); item->table = table; item->title = table_item_text_create (title); + item->layers = NULL; item->caption = table_item_text_create (caption); return item; } @@ -113,6 +112,28 @@ table_item_set_title (struct table_item *item, item->title = table_item_text_clone (title); } +/* Returns ITEM's layers, which will be a null pointer if no layers have been + set. */ +const struct table_item_text * +table_item_get_layers (const struct table_item *item) +{ + return item->layers; +} + +/* Sets ITEM's layers to LAYERS, replacing any previous layers. Specify NULL + for LAYERS to clear any layers from ITEM. The caller retains ownership of + LAYERS. + + This function may only be used on a table_item that is unshared. */ +void +table_item_set_layers (struct table_item *item, + const struct table_item_text *layers) +{ + assert (!table_item_is_shared (item)); + table_item_text_destroy (item->layers); + item->layers = table_item_text_clone (layers); +} + /* Returns ITEM's caption, which is a null pointer if no caption has been set. */ const struct table_item_text * @@ -147,13 +168,15 @@ static void table_item_destroy (struct output_item *output_item) { struct table_item *item = to_table_item (output_item); - free (item->title); - free (item->caption); + table_item_text_destroy (item->title); + table_item_text_destroy (item->layers); + table_item_text_destroy (item->caption); table_unref (item->table); free (item); } const struct output_item_class table_item_class = { + "table", table_item_destroy, };