diff options
author | Matthias Clasen <mclasen@redhat.com> | 2021-11-11 21:44:56 -0500 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2021-11-18 13:58:15 -0500 |
commit | 2aead7a8e8828de6afef96611661997a52ca6739 (patch) | |
tree | dc1c796d9c95f7784648eddcc08b26bc39a762e1 /pango/pango-layout.h | |
parent | 2f2cb72672c7f74e2648594819b7cde95ca0ed1d (diff) | |
download | pango-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.h | 25 |
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 ()) |