summaryrefslogtreecommitdiff
path: root/pango/pango-layout.h
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2021-11-11 21:44:56 -0500
committerMatthias Clasen <mclasen@redhat.com>2021-11-18 13:58:15 -0500
commit2aead7a8e8828de6afef96611661997a52ca6739 (patch)
treedc1c796d9c95f7784648eddcc08b26bc39a762e1 /pango/pango-layout.h
parent2f2cb72672c7f74e2648594819b7cde95ca0ed1d (diff)
downloadpango-2aead7a8e8828de6afef96611661997a52ca6739.tar.gz
Add layout serialization api
Add api to serialize PangoLayout, for the benefit of testing and debugging. Currently, this uses json, but that is an implementation detail. Some tests included.
Diffstat (limited to 'pango/pango-layout.h')
-rw-r--r--pango/pango-layout.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/pango/pango-layout.h b/pango/pango-layout.h
index e28f9295..502f5e29 100644
--- a/pango/pango-layout.h
+++ b/pango/pango-layout.h
@@ -351,6 +351,31 @@ GSList * pango_layout_get_lines (PangoLayout *layout);
PANGO_AVAILABLE_IN_1_16
GSList * pango_layout_get_lines_readonly (PangoLayout *layout);
+#define PANGO_LAYOUT_SERIALIZE_ERROR (pango_layout_serialize_error_quark ())
+
+typedef enum {
+ PANGO_LAYOUT_SERIALIZE_INVALID,
+ PANGO_LAYOUT_SERIALIZE_INVALID_SYNTAX,
+ PANGO_LAYOUT_SERIALIZE_INVALID_VALUE,
+ PANGO_LAYOUT_SERIALIZE_MISSING_VALUE,
+} PangoLayoutSerializeError;
+
+PANGO_AVAILABLE_IN_1_50
+GQuark pango_layout_serialize_error_quark (void);
+
+PANGO_AVAILABLE_IN_1_50
+GBytes * pango_layout_serialize (PangoLayout *layout);
+
+PANGO_AVAILABLE_IN_1_50
+PangoLayout * pango_layout_deserialize (PangoContext *context,
+ GBytes *bytes,
+ GError **error);
+
+PANGO_AVAILABLE_IN_1_50
+gboolean pango_layout_write_to_file (PangoLayout *layout,
+ const char *filename,
+ GError **error);
+
#define PANGO_TYPE_LAYOUT_LINE (pango_layout_line_get_type ())