start_elem (w, "heading");
if (item->command_name)
write_attr (w, "commandName", item->command_name);
+ if (!item->show)
+ write_attr (w, "visibility", "collapsed");
/* XXX locale */
/* XXX olang */
const char *inner_elem)
{
start_elem (w, "container");
- write_attr (w, "visibility", "visible");
+ write_attr (w, "visibility", item->show ? "visible" : "hidden");
if (w->need_page_break)
{
write_attr (w, "page-break-before", "always");
}
break;
- case OUTPUT_ITEM_GROUP_OPEN:
+ case OUTPUT_ITEM_GROUP:
spv_writer_open_heading (w, item);
- break;
-
- case OUTPUT_ITEM_GROUP_CLOSE:
+ for (size_t i = 0; i < item->group.n_children; i++)
+ spv_writer_write (w, item->group.children[i]);
spv_writer_close_heading (w);
break;
w->need_page_break = true;
break;
- case OUTPUT_ITEM_PAGE_SETUP:
- page_setup_destroy (w->page_setup);
- w->page_setup = page_setup_clone (item->page_setup);
- break;
-
case OUTPUT_ITEM_TABLE:
spv_writer_put_table (w, item);
break;
break;
}
}
+
+void
+spv_writer_set_page_setup (struct spv_writer *w,
+ const struct page_setup *ps)
+{
+ page_setup_destroy (w->page_setup);
+ w->page_setup = page_setup_clone (ps);
+}