+/* Returns the table contained by TABLE_ITEM. The caller must not modify or
+ unref the returned table. */
+const struct table *
+table_item_get_table (const struct table_item *table_item)
+{
+ return table_item->table;
+}
+
+/* Returns ITEM's title, which is a null pointer if no title has been
+ set. */
+const struct table_item_text *
+table_item_get_title (const struct table_item *item)
+{
+ return item->title;
+}
+
+/* Sets ITEM's title to TITLE, replacing any previous title. Specify NULL for
+ TITLE to clear any title from ITEM. The caller retains ownership of TITLE.
+
+ This function may only be used on a table_item that is unshared. */
+void
+table_item_set_title (struct table_item *item,
+ const struct table_item_text *title)
+{
+ assert (!table_item_is_shared (item));
+ table_item_text_destroy (item->title);
+ 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_layers *
+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_layers *layers)
+{
+ assert (!table_item_is_shared (item));
+ table_item_layers_destroy (item->layers);
+ item->layers = table_item_layers_clone (layers);
+}
+
+/* Returns ITEM's caption, which is a null pointer if no caption has been
+ set. */
+const struct table_item_text *
+table_item_get_caption (const struct table_item *item)
+{
+ return item->caption;
+}
+
+/* Sets ITEM's caption to CAPTION, replacing any previous caption. Specify
+ NULL for CAPTION to clear any caption from ITEM. The caller retains
+ ownership of CAPTION.
+
+ This function may only be used on a table_item that is unshared. */
+void
+table_item_set_caption (struct table_item *item,
+ const struct table_item_text *caption)
+{
+ assert (!table_item_is_shared (item));
+ table_item_text_destroy (item->caption);
+ item->caption = table_item_text_clone (caption);
+}
+
+/* Returns ITEM's notes, which is a null pointer if ITEM has no notes. */
+const char *
+table_item_get_notes (const struct table_item *item)
+{
+ return item->notes;
+}
+
+/* Sets ITEM's notes to NOTES, replacing any previous notes. Specify NULL for
+ NOTES to clear any notes from ITEM. The caller retains ownership of
+ NOTES.
+
+ This function may only be used on a table_item that is unshared.*/
+void
+table_item_set_notes (struct table_item *item, const char *notes)
+{
+ assert (!table_item_is_shared (item));
+ free (item->notes);
+ item->notes = notes ? xstrdup (notes) : NULL;
+}
+