1 /* 2 * Distributed under the Boost Software License, Version 1.0. 3 * (See accompanying file LICENSE_1_0.txt or copy at 4 * http://www.boost.org/LICENSE_1_0.txt) 5 */ 6 module pango.c.item; 7 8 import pango.c.types; 9 import pango.c.font; 10 import pango.c.engine; 11 12 import glib; 13 import gobject; 14 15 extern (C): 16 17 /** 18 * PANGO_ANALYSIS_FLAG_CENTERED_BASELINE: 19 * 20 * Whether the segment should be shifted to center around the baseline. 21 * Used in vertical writing directions mostly. 22 * 23 * Since: 1.16 24 */ 25 enum PANGO_ANALYSIS_FLAG_CENTERED_BASELINE = (1 << 0); 26 27 /** 28 * PANGO_ANALYSIS_FLAG_IS_ELLIPSIS: 29 * 30 * This flag is used to mark runs that hold ellipsized text, 31 * in an ellipsized layout. 32 * 33 * Since: 1.36.7 34 */ 35 enum PANGO_ANALYSIS_FLAG_IS_ELLIPSIS = (1 << 1); 36 37 /** 38 * PangoAnalysis: 39 * @shape_engine: the engine for doing rendering-system-dependent processing. 40 * @lang_engine: the engine for doing rendering-system-independent processing. 41 * @font: the font for this segment. 42 * @level: the bidirectional level for this segment. 43 * @gravity: the glyph orientation for this segment (A #PangoGravity). 44 * @flags: boolean flags for this segment (currently only one) (Since: 1.16). 45 * @script: the detected script for this segment (A #PangoScript) (Since: 1.18). 46 * @language: the detected language for this segment. 47 * @extra_attrs: extra attributes for this segment. 48 * 49 * The #PangoAnalysis structure stores information about 50 * the properties of a segment of text. 51 */ 52 struct PangoAnalysis 53 { 54 PangoEngineShape *shape_engine; 55 PangoEngineLang *lang_engine; 56 PangoFont *font; 57 58 guint8 level; 59 guint8 gravity; /* PangoGravity */ 60 guint8 flags; 61 62 guint8 script; /* PangoScript */ 63 PangoLanguage *language; 64 65 GSList *extra_attrs; 66 } 67 68 /** 69 * PangoItem: 70 * 71 * The #PangoItem structure stores information about a segment of text. 72 */ 73 struct PangoItem 74 { 75 gint offset; 76 gint length; 77 gint num_chars; 78 PangoAnalysis analysis; 79 } 80 81 82 pure GType pango_item_get_type (); 83 84 PangoItem *pango_item_new (); 85 PangoItem *pango_item_copy (PangoItem *item); 86 void pango_item_free (PangoItem *item); 87 PangoItem *pango_item_split (PangoItem *orig, 88 int split_index, 89 int split_offset); 90