summaryrefslogtreecommitdiff
path: root/pango/pango-layout.h
diff options
context:
space:
mode:
Diffstat (limited to 'pango/pango-layout.h')
-rw-r--r--pango/pango-layout.h78
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 ())