diff options
Diffstat (limited to 'pango/pango-layout.h')
-rw-r--r-- | pango/pango-layout.h | 78 |
1 files changed, 63 insertions, 15 deletions
diff --git a/pango/pango-layout.h b/pango/pango-layout.h index 3b725adc..32dc16f0 100644 --- a/pango/pango-layout.h +++ b/pango/pango-layout.h @@ -351,30 +351,78 @@ 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 ()) - +/** + * PangoLayoutSerializeFlags: + * @PANGO_LAYOUT_SERIALIZE_DEFAULT: Default behavior + * @PANGO_LAYOUT_SERIALIZE_CONTEXT: Include context information + * @PANGO_LAYOUT_SERIALIZE_OUTPUT: Include information about the formatted output + * + * Flags that influence the behavior of [method@Pango.Layout.serialize]. + * + * New members may be added to this enumeration over time. + */ typedef enum { - PANGO_LAYOUT_SERIALIZE_INVALID, - PANGO_LAYOUT_SERIALIZE_INVALID_SYNTAX, - PANGO_LAYOUT_SERIALIZE_INVALID_VALUE, - PANGO_LAYOUT_SERIALIZE_MISSING_VALUE, -} PangoLayoutSerializeError; + PANGO_LAYOUT_SERIALIZE_DEFAULT = 0, + PANGO_LAYOUT_SERIALIZE_CONTEXT = 1 << 0, + PANGO_LAYOUT_SERIALIZE_OUTPUT = 1 << 1, +} PangoLayoutSerializeFlags; PANGO_AVAILABLE_IN_1_50 -GQuark pango_layout_serialize_error_quark (void); +GBytes * pango_layout_serialize (PangoLayout *layout, + PangoLayoutSerializeFlags flags); PANGO_AVAILABLE_IN_1_50 -GBytes * pango_layout_serialize (PangoLayout *layout); +gboolean pango_layout_write_to_file (PangoLayout *layout, + PangoLayoutSerializeFlags flags, + + const char *filename, + GError **error); + +#define PANGO_LAYOUT_DESERIALIZE_ERROR (pango_layout_deserialize_error_quark ()) + +/** + * PangoLayoutDeserializeError: + * @PANGO_LAYOUT_SERIALIZE_INVALID: Unspecified error + * @PANGO_LAYOUT_SERIALIZE_INVALID_SYNTAX: The serialized data had + * the wrong structure (e.g. a member was expected to be a JSon object, + * but was an array) + * @PANGO_LAYOUT_SERIALIZE_INVALID_VALUE: A JSon value could not be + * interpreted + * @PANGO_LAYOUT_SERIALIZE_MISSING_VALUE: A required JSon member was + * not found + * + * Errors that can be returned by [func@Pango.Layout.deserialize]. + */ +typedef enum { + PANGO_LAYOUT_DESERIALIZE_INVALID, + PANGO_LAYOUT_DESERIALIZE_INVALID_SYNTAX, + PANGO_LAYOUT_DESERIALIZE_INVALID_VALUE, + PANGO_LAYOUT_DESERIALIZE_MISSING_VALUE, +} PangoLayoutDeserializeError; PANGO_AVAILABLE_IN_1_50 -PangoLayout * pango_layout_deserialize (PangoContext *context, - GBytes *bytes, - GError **error); +GQuark pango_layout_deserialize_error_quark (void); + +/** + * PangoLayoutDeserializeFlags: + * @PANGO_LAYOUT_DESERIALIZE_DEFAULT: Default behavior + * @PANGO_LAYOUT_DESERIALIZE_CONTEXT: Apply context information + * from the serialization to the `PangoContext` + * + * Flags that influence the behavior of [method@Pango.Layout.deserialize]. + * + * New members may be added to this enumeration over time. + */ +typedef enum { + PANGO_LAYOUT_DESERIALIZE_DEFAULT = 0, + PANGO_LAYOUT_DESERIALIZE_CONTEXT = 1 << 0, +} PangoLayoutDeserializeFlags; PANGO_AVAILABLE_IN_1_50 -gboolean pango_layout_write_to_file (PangoLayout *layout, - const char *filename, - GError **error); +PangoLayout * pango_layout_deserialize (PangoContext *context, + GBytes *bytes, + PangoLayoutDeserializeFlags flags, + GError **error); #define PANGO_TYPE_LAYOUT_LINE (pango_layout_line_get_type ()) |