/* * Copyright (C) 2000 Red Hat Software * * SPDX-License-Identifier: LGPL-2.1-or-later * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, see . */ #pragma once #include #include #include #include #include G_BEGIN_DECLS #define PANGO2_TYPE_LAYOUT pango2_layout_get_type () PANGO2_AVAILABLE_IN_ALL G_DECLARE_FINAL_TYPE (Pango2Layout, pango2_layout, PANGO2, LAYOUT, GObject); PANGO2_AVAILABLE_IN_ALL Pango2Layout * pango2_layout_new (Pango2Context *context); PANGO2_AVAILABLE_IN_ALL Pango2Layout * pango2_layout_copy (Pango2Layout *layout); PANGO2_AVAILABLE_IN_ALL guint pango2_layout_get_serial (Pango2Layout *layout); PANGO2_AVAILABLE_IN_ALL Pango2Context * pango2_layout_get_context (Pango2Layout *layout); PANGO2_AVAILABLE_IN_ALL void pango2_layout_context_changed (Pango2Layout *layout); PANGO2_AVAILABLE_IN_ALL void pango2_layout_set_text (Pango2Layout *layout, const char *text, int length); PANGO2_AVAILABLE_IN_ALL const char * pango2_layout_get_text (Pango2Layout *layout); PANGO2_AVAILABLE_IN_ALL void pango2_layout_set_markup (Pango2Layout *layout, const char *markup, int length); PANGO2_AVAILABLE_IN_ALL int pango2_layout_get_character_count (Pango2Layout *layout); PANGO2_AVAILABLE_IN_ALL void pango2_layout_set_attributes (Pango2Layout *layout, Pango2AttrList *attrs); PANGO2_AVAILABLE_IN_ALL Pango2AttrList * pango2_layout_get_attributes (Pango2Layout *layout); PANGO2_AVAILABLE_IN_ALL void pango2_layout_set_font_description (Pango2Layout *layout, const Pango2FontDescription *desc); PANGO2_AVAILABLE_IN_ALL const Pango2FontDescription * pango2_layout_get_font_description (Pango2Layout *layout); PANGO2_AVAILABLE_IN_ALL void pango2_layout_set_line_height (Pango2Layout *layout, float line_height); PANGO2_AVAILABLE_IN_ALL float pango2_layout_get_line_height (Pango2Layout *layout); PANGO2_AVAILABLE_IN_ALL void pango2_layout_set_spacing (Pango2Layout *layout, int spacing); PANGO2_AVAILABLE_IN_ALL int pango2_layout_get_spacing (Pango2Layout *layout); PANGO2_AVAILABLE_IN_ALL void pango2_layout_set_width (Pango2Layout *layout, int width); PANGO2_AVAILABLE_IN_ALL int pango2_layout_get_width (Pango2Layout *layout); PANGO2_AVAILABLE_IN_ALL void pango2_layout_set_height (Pango2Layout *layout, int height); PANGO2_AVAILABLE_IN_ALL int pango2_layout_get_height (Pango2Layout *layout); PANGO2_AVAILABLE_IN_ALL void pango2_layout_set_tabs (Pango2Layout *layout, Pango2TabArray *tabs); PANGO2_AVAILABLE_IN_ALL Pango2TabArray * pango2_layout_get_tabs (Pango2Layout *layout); PANGO2_AVAILABLE_IN_ALL void pango2_layout_set_single_paragraph (Pango2Layout *layout, gboolean single_paragraph); PANGO2_AVAILABLE_IN_ALL gboolean pango2_layout_get_single_paragraph (Pango2Layout *layout); PANGO2_AVAILABLE_IN_ALL void pango2_layout_set_wrap (Pango2Layout *layout, Pango2WrapMode wrap); PANGO2_AVAILABLE_IN_ALL Pango2WrapMode pango2_layout_get_wrap (Pango2Layout *layout); PANGO2_AVAILABLE_IN_ALL void pango2_layout_set_indent (Pango2Layout *layout, int indent); PANGO2_AVAILABLE_IN_ALL int pango2_layout_get_indent (Pango2Layout *layout); PANGO2_AVAILABLE_IN_ALL void pango2_layout_set_alignment (Pango2Layout *layout, Pango2Alignment alignment); PANGO2_AVAILABLE_IN_ALL Pango2Alignment pango2_layout_get_alignment (Pango2Layout *layout); PANGO2_AVAILABLE_IN_ALL void pango2_layout_set_ellipsize (Pango2Layout *layout, Pango2EllipsizeMode ellipsize); PANGO2_AVAILABLE_IN_ALL Pango2EllipsizeMode pango2_layout_get_ellipsize (Pango2Layout *layout); PANGO2_AVAILABLE_IN_ALL void pango2_layout_set_auto_dir (Pango2Layout *layout, gboolean auto_dir); PANGO2_AVAILABLE_IN_ALL gboolean pango2_layout_get_auto_dir (Pango2Layout *layout); PANGO2_AVAILABLE_IN_ALL Pango2Lines * pango2_layout_get_lines (Pango2Layout *layout); PANGO2_AVAILABLE_IN_ALL Pango2LineIter * pango2_layout_get_iter (Pango2Layout *layout); PANGO2_AVAILABLE_IN_ALL const Pango2LogAttr * pango2_layout_get_log_attrs (Pango2Layout *layout, int *n_attrs); typedef enum { PANGO2_LAYOUT_SERIALIZE_DEFAULT = 0, PANGO2_LAYOUT_SERIALIZE_CONTEXT = 1 << 0, PANGO2_LAYOUT_SERIALIZE_OUTPUT = 1 << 1, } Pango2LayoutSerializeFlags; PANGO2_AVAILABLE_IN_ALL GBytes * pango2_layout_serialize (Pango2Layout *layout, Pango2LayoutSerializeFlags flags); PANGO2_AVAILABLE_IN_ALL gboolean pango2_layout_write_to_file (Pango2Layout *layout, const char *filename); #define PANGO2_LAYOUT_DESERIALIZE_ERROR (pango2_layout_deserialize_error_quark ()) /** * Pango2LayoutDeserializeError: * @PANGO2_LAYOUT_DESERIALIZE_INVALID: Unspecified error * @PANGO2_LAYOUT_DESERIALIZE_INVALID_VALUE: A JSon value could not be * interpreted * @PANGO2_LAYOUT_DESERIALIZE_MISSING_VALUE: A required JSon member was * not found * * Errors that can be returned by [func@Pango2.Layout.deserialize]. */ typedef enum { PANGO2_LAYOUT_DESERIALIZE_INVALID, PANGO2_LAYOUT_DESERIALIZE_INVALID_VALUE, PANGO2_LAYOUT_DESERIALIZE_MISSING_VALUE, } Pango2LayoutDeserializeError; typedef enum { PANGO2_LAYOUT_DESERIALIZE_DEFAULT = 0, PANGO2_LAYOUT_DESERIALIZE_CONTEXT = 1 << 0, } Pango2LayoutDeserializeFlags; PANGO2_AVAILABLE_IN_ALL GQuark pango2_layout_deserialize_error_quark (void); PANGO2_AVAILABLE_IN_ALL Pango2Layout * pango2_layout_deserialize (Pango2Context *context, GBytes *bytes, Pango2LayoutDeserializeFlags flags, GError **error); G_END_DECLS