#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
+
+#ifdef HAVE_CAIRO
+#include <cairo.h>
+#endif
+
#include "libpspp/compiler.h"
struct fmt_spec;
SPV_ITEM_TABLE,
SPV_ITEM_GRAPH,
SPV_ITEM_MODEL,
- SPV_ITEM_OBJECT,
+ SPV_ITEM_IMAGE,
SPV_ITEM_TREE,
};
char *structure_member;
enum spv_item_type type;
- char *label;
- char *command_id; /* Unique command identifier. */
+ char *label; /* Localized label. */
+ char *command_id; /* Non-localized unique command identifier. */
/* Whether the item is visible.
For SPV_ITEM_HEADING, false indicates that the item is collapsed.
/* SPV_ITEM_TABLE only. */
struct pivot_table *table; /* NULL if not yet loaded. */
- struct spv_table_look *table_look;
+ struct pivot_table_look *table_look;
char *bin_member;
char *xml_member;
char *subtype;
/* SPV_ITEM_TEXT only. */
struct pivot_value *text;
- /* SPV_ITEM_OBJECT only. */
- char *object_type;
- char *uri;
+ /* SPV_ITEM_IMAGE only. */
+ char *png_member;
+#ifdef HAVE_CAIRO
+ cairo_surface_t *image;
+#endif
};
void spv_item_format_path (const struct spv_item *, struct string *);
struct spv_item *spv_item_get_child (const struct spv_item *, size_t idx);
bool spv_item_is_table (const struct spv_item *);
-struct pivot_table *spv_item_get_table (const struct spv_item *);
+const struct pivot_table *spv_item_get_table (const struct spv_item *);
bool spv_item_is_text (const struct spv_item *);
const struct pivot_value *spv_item_get_text (const struct spv_item *);
+bool spv_item_is_image (const struct spv_item *);
+#ifdef HAVE_CAIRO
+cairo_surface_t *spv_item_get_image (const struct spv_item *);
+#endif
+
bool spv_item_is_visible (const struct spv_item *);
#define SPV_ITEM_FOR_EACH(ITER, ROOT) \
const struct spv_item *spv_item_get_parent (const struct spv_item *);
size_t spv_item_get_level (const struct spv_item *);
-const char *spv_item_get_member_name (const struct spv_item *);
const char *spv_item_get_command_id (const struct spv_item *);
const char *spv_item_get_subtype (const struct spv_item *);
WARN_UNUSED_RESULT;
void spv_item_set_table_look (struct spv_item *,
- const struct spv_table_look *);
+ const struct pivot_table_look *);
char *spv_decode_fmt_spec (uint32_t u32, struct fmt_spec *) WARN_UNUSED_RESULT;