summaryrefslogtreecommitdiff
path: root/pango/pango-layout.c
diff options
context:
space:
mode:
Diffstat (limited to 'pango/pango-layout.c')
-rw-r--r--pango/pango-layout.c860
1 files changed, 430 insertions, 430 deletions
diff --git a/pango/pango-layout.c b/pango/pango-layout.c
index 5a2f50aa..9a01b490 100644
--- a/pango/pango-layout.c
+++ b/pango/pango-layout.c
@@ -8,34 +8,34 @@
#include "pango-context.h"
/**
- * PangoLayout:
+ * Pango2Layout:
*
- * A `PangoLayout` structure represents an entire paragraph of text.
+ * A `Pango2Layout` structure represents an entire paragraph of text.
*
- * While complete access to the layout capabilities of Pango is provided
+ * While complete access to the layout capabilities of Pango2 is provided
* using the detailed interfaces for itemization, segmentation and shaping,
* using that functionality directly involves writing a fairly large amount
- * of code. `PangoLayout` provides a high-level driver for formatting entire
+ * of code. `Pango2Layout` provides a high-level driver for formatting entire
* paragraphs of text at once. This includes paragraph-level functionality
* such as line breaking, justification, alignment and ellipsization.
*
- * A `PangoLayout` is initialized with a `PangoContext`, a UTF-8 string
+ * A `Pango2Layout` is initialized with a `Pango2Context`, a UTF-8 string
* and set of attributes for that string. Once that is done, the set of
- * formatted lines can be extracted in the form of a [class@Pango.Lines]
+ * formatted lines can be extracted in the form of a [class@Pango2.Lines]
* object, the layout can be rendered, and conversion between logical
* character positions within the layout's text, and the physical position
* of the resulting glyphs can be made.
*
* The most convenient way to access the visual extents and components
- * of a formatted layout is via a [struct@Pango.LineIter] iterator.
+ * of a formatted layout is via a [struct@Pango2.LineIter] iterator.
*
* There are a number of parameters to adjust the formatting of a
- * `PangoLayout`. The following image shows adjustable parameters
+ * `Pango2Layout`. The following image shows adjustable parameters
* (on the left) and font metrics (on the right):
*
* <picture>
* <source srcset="layout-dark.png" media="(prefers-color-scheme: dark)">
- * <img alt="Pango Layout Parameters" src="layout-light.png">
+ * <img alt="Pango2 Layout Parameters" src="layout-light.png">
* </picture>
*
* The following images demonstrate the effect of alignment and justification
@@ -47,44 +47,44 @@
* | ![align=justify](align-left-justify.png) | | |
*
* It is possible, as well, to ignore the 2-D setup, and simply treat the
- * resulting `PangoLines` object as a list of lines.
+ * resulting `Pango2Lines` object as a list of lines.
*
* If you have more complex line breaking needs, such as shaping text
- * to flow around images, or multi-column layout, the [class@Pango.LineBreaker]
+ * to flow around images, or multi-column layout, the [class@Pango2.LineBreaker]
* makes the underlying line-breaking functionality available outside of
- * `PangoLayout`.
+ * `Pango2Layout`.
*/
-/* {{{ PangoLayout implementation */
+/* {{{ Pango2Layout implementation */
-struct _PangoLayout
+struct _Pango2Layout
{
GObject parent_instance;
- PangoContext *context;
+ Pango2Context *context;
char *text;
int length;
- PangoAttrList *attrs;
- PangoFontDescription *font_desc;
+ Pango2AttrList *attrs;
+ Pango2FontDescription *font_desc;
float line_height;
int spacing;
int width;
int height;
- PangoTabArray *tabs;
+ Pango2TabArray *tabs;
gboolean single_paragraph;
- PangoWrapMode wrap;
+ Pango2WrapMode wrap;
int indent;
guint serial;
guint context_serial;
- PangoAlignment alignment;
- PangoEllipsizeMode ellipsize;
+ Pango2Alignment alignment;
+ Pango2EllipsizeMode ellipsize;
gboolean auto_dir;
- PangoLines *lines;
+ Pango2Lines *lines;
};
-struct _PangoLayoutClass
+struct _Pango2LayoutClass
{
GObjectClass parent_class;
};
@@ -112,18 +112,18 @@ enum
static GParamSpec *props[NUM_PROPERTIES] = { NULL, };
-G_DEFINE_FINAL_TYPE (PangoLayout, pango_layout, G_TYPE_OBJECT)
+G_DEFINE_FINAL_TYPE (Pango2Layout, pango2_layout, G_TYPE_OBJECT)
static void
-pango_layout_init (PangoLayout *layout)
+pango2_layout_init (Pango2Layout *layout)
{
layout->serial = 1;
layout->width = -1;
layout->height = -1;
layout->indent = 0;
- layout->wrap = PANGO_WRAP_WORD;
- layout->alignment = PANGO_ALIGN_NATURAL;
- layout->ellipsize = PANGO_ELLIPSIZE_NONE;
+ layout->wrap = PANGO2_WRAP_WORD;
+ layout->alignment = PANGO2_ALIGN_NATURAL;
+ layout->ellipsize = PANGO2_ELLIPSIZE_NONE;
layout->line_height = 0.0;
layout->spacing = 0;
layout->auto_dir = TRUE;
@@ -132,89 +132,89 @@ pango_layout_init (PangoLayout *layout)
}
static void
-pango_layout_finalize (GObject *object)
+pango2_layout_finalize (GObject *object)
{
- PangoLayout *layout = PANGO_LAYOUT (object);
+ Pango2Layout *layout = PANGO2_LAYOUT (object);
- g_clear_pointer (&layout->font_desc, pango_font_description_free);
+ g_clear_pointer (&layout->font_desc, pango2_font_description_free);
g_object_unref (layout->context);
g_free (layout->text);
- g_clear_pointer (&layout->attrs, pango_attr_list_unref);
- g_clear_pointer (&layout->tabs, pango_tab_array_free);
+ g_clear_pointer (&layout->attrs, pango2_attr_list_unref);
+ g_clear_pointer (&layout->tabs, pango2_tab_array_free);
g_clear_object (&layout->lines);
- G_OBJECT_CLASS (pango_layout_parent_class)->finalize (object);
+ G_OBJECT_CLASS (pango2_layout_parent_class)->finalize (object);
}
static void
-pango_layout_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
+pango2_layout_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
{
- PangoLayout *layout = PANGO_LAYOUT (object);
+ Pango2Layout *layout = PANGO2_LAYOUT (object);
switch (prop_id)
{
case PROP_CONTEXT:
layout->context = g_value_dup_object (value);
- layout->context_serial = pango_context_get_serial (layout->context);
+ layout->context_serial = pango2_context_get_serial (layout->context);
break;
case PROP_TEXT:
- pango_layout_set_text (layout, g_value_get_string (value), -1);
+ pango2_layout_set_text (layout, g_value_get_string (value), -1);
break;
case PROP_ATTRIBUTES:
- pango_layout_set_attributes (layout, g_value_get_boxed (value));
+ pango2_layout_set_attributes (layout, g_value_get_boxed (value));
break;
case PROP_FONT_DESCRIPTION:
- pango_layout_set_font_description (layout, g_value_get_boxed (value));
+ pango2_layout_set_font_description (layout, g_value_get_boxed (value));
break;
case PROP_LINE_HEIGHT:
- pango_layout_set_line_height (layout, g_value_get_float (value));
+ pango2_layout_set_line_height (layout, g_value_get_float (value));
break;
case PROP_SPACING:
- pango_layout_set_spacing (layout, g_value_get_int (value));
+ pango2_layout_set_spacing (layout, g_value_get_int (value));
break;
case PROP_WIDTH:
- pango_layout_set_width (layout, g_value_get_int (value));
+ pango2_layout_set_width (layout, g_value_get_int (value));
break;
case PROP_HEIGHT:
- pango_layout_set_height (layout, g_value_get_int (value));
+ pango2_layout_set_height (layout, g_value_get_int (value));
break;
case PROP_TABS:
- pango_layout_set_tabs (layout, g_value_get_boxed (value));
+ pango2_layout_set_tabs (layout, g_value_get_boxed (value));
break;
case PROP_SINGLE_PARAGRAPH:
- pango_layout_set_single_paragraph (layout, g_value_get_boolean (value));
+ pango2_layout_set_single_paragraph (layout, g_value_get_boolean (value));
break;
case PROP_WRAP:
- pango_layout_set_wrap (layout, g_value_get_enum (value));
+ pango2_layout_set_wrap (layout, g_value_get_enum (value));
break;
case PROP_INDENT:
- pango_layout_set_indent (layout, g_value_get_int (value));
+ pango2_layout_set_indent (layout, g_value_get_int (value));
break;
case PROP_ALIGNMENT:
- pango_layout_set_alignment (layout, g_value_get_enum (value));
+ pango2_layout_set_alignment (layout, g_value_get_enum (value));
break;
case PROP_ELLIPSIZE:
- pango_layout_set_ellipsize (layout, g_value_get_enum (value));
+ pango2_layout_set_ellipsize (layout, g_value_get_enum (value));
break;
case PROP_AUTO_DIR:
- pango_layout_set_auto_dir (layout, g_value_get_boolean (value));
+ pango2_layout_set_auto_dir (layout, g_value_get_boolean (value));
break;
default:
@@ -224,12 +224,12 @@ pango_layout_set_property (GObject *object,
}
static void
-pango_layout_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
+pango2_layout_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
{
- PangoLayout *layout = PANGO_LAYOUT (object);
+ Pango2Layout *layout = PANGO2_LAYOUT (object);
switch (prop_id)
{
@@ -294,7 +294,7 @@ pango_layout_get_property (GObject *object,
break;
case PROP_LINES:
- g_value_set_object (value, pango_layout_get_lines (layout));
+ g_value_set_object (value, pango2_layout_get_lines (layout));
break;
default:
@@ -304,56 +304,56 @@ pango_layout_get_property (GObject *object,
}
static void
-pango_layout_class_init (PangoLayoutClass *class)
+pango2_layout_class_init (Pango2LayoutClass *class)
{
GObjectClass *object_class = G_OBJECT_CLASS (class);
- object_class->finalize = pango_layout_finalize;
- object_class->set_property = pango_layout_set_property;
- object_class->get_property = pango_layout_get_property;
+ object_class->finalize = pango2_layout_finalize;
+ object_class->set_property = pango2_layout_set_property;
+ object_class->get_property = pango2_layout_get_property;
/**
- * PangoLayout:context: (attributes org.gtk.Property.get=pango_layout_get_context)
+ * Pango2Layout:context: (attributes org.gtk.Property.get=pango2_layout_get_context)
*
- * The context for the `PangoLayout`.
+ * The context for the `Pango2Layout`.
*/
props[PROP_CONTEXT] = g_param_spec_object ("context", "context", "context",
- PANGO_TYPE_CONTEXT,
+ PANGO2_TYPE_CONTEXT,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
/**
- * PangoLayout:text: (attributes org.gtk.Property.get=pango_layout_get_text org.gtk.Property.set=pango_layout_set_text)
+ * Pango2Layout:text: (attributes org.gtk.Property.get=pango2_layout_get_text org.gtk.Property.set=pango2_layout_set_text)
*
- * The text of the `PangoLayout`.
+ * The text of the `Pango2Layout`.
*/
props[PROP_TEXT] = g_param_spec_string ("text", "text", "text",
"",
G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
- * PangoLayout:attributes: (attributes org.gtk.Property.get=pango_layout_get_attributes org.gtk.Property.set=pango_layout_set_attributes)
+ * Pango2Layout:attributes: (attributes org.gtk.Property.get=pango2_layout_get_attributes org.gtk.Property.set=pango2_layout_set_attributes)
*
- * The attributes of the `PangoLayout`.
+ * The attributes of the `Pango2Layout`.
*
* Attributes can affect how the text is formatted.
*/
props[PROP_ATTRIBUTES] = g_param_spec_boxed ("attributes", "attributes", "attributes",
- PANGO_TYPE_ATTR_LIST,
+ PANGO2_TYPE_ATTR_LIST,
G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
- * PangoLayout:font-description: (attributes org.gtk.Property.get=pango_layout_get_font_description org.gtk.Property.set=pango_layout_set_font_description)
+ * Pango2Layout:font-description: (attributes org.gtk.Property.get=pango2_layout_get_font_description org.gtk.Property.set=pango2_layout_set_font_description)
*
- * The font description of the `PangoLayout`.
+ * The font description of the `Pango2Layout`.
*/
props[PROP_FONT_DESCRIPTION] = g_param_spec_boxed ("font-description", "font-description", "font-description",
- PANGO_TYPE_FONT_DESCRIPTION,
+ PANGO2_TYPE_FONT_DESCRIPTION,
G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
- * PangoLayout:line-height: (attributes org.gtk.Property.get=pango_layout_get_line_height org.gtk.Property.set=pango_layout_set_line_height)
+ * Pango2Layout:line-height: (attributes org.gtk.Property.get=pango2_layout_get_line_height org.gtk.Property.set=pango2_layout_set_line_height)
*
- * The line height factor of the `PangoLayout`.
+ * The line height factor of the `Pango2Layout`.
*
* If non-zero, the line height is multiplied by this factor to determine
* the logical extents of the text.
@@ -365,11 +365,11 @@ pango_layout_class_init (PangoLayoutClass *class)
G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
- * PangoLayout:spacing: (attributes org.gtk.Property.get=pango_layout_get_spacing org.gtk.Property.set=pango_layout_set_spacing)
+ * Pango2Layout:spacing: (attributes org.gtk.Property.get=pango2_layout_get_spacing org.gtk.Property.set=pango2_layout_set_spacing)
*
- * Spacing to add between the lines of the `PangoLayout`.
+ * Spacing to add between the lines of the `Pango2Layout`.
*
- * The spacing is specified in Pango units.
+ * The spacing is specified in Pango2 units.
*
* The default value is 0.
*/
@@ -378,11 +378,11 @@ pango_layout_class_init (PangoLayoutClass *class)
G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
- * PangoLayout:width: (attributes org.gtk.Property.get=pango_layout_get_width org.gtk.Property.set=pango_layout_set_width)
+ * Pango2Layout:width: (attributes org.gtk.Property.get=pango2_layout_get_width org.gtk.Property.set=pango2_layout_set_width)
*
- * The width to which the text of `PangoLayout` will be broken.
+ * The width to which the text of `Pango2Layout` will be broken.
*
- * The width is specified in Pango units, with -1 meaning unlimited.
+ * The width is specified in Pango2 units, with -1 meaning unlimited.
*
* The default value is -1.
*/
@@ -391,9 +391,9 @@ pango_layout_class_init (PangoLayoutClass *class)
G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
- * PangoLayout:height: (attributes org.gtk.Property.get=pango_layout_get_height org.gtk.Property.set=pango_layout_set_height)
+ * Pango2Layout:height: (attributes org.gtk.Property.get=pango2_layout_get_height org.gtk.Property.set=pango2_layout_set_height)
*
- * The height to which the `PangoLayout` will be ellipsized.
+ * The height to which the `Pango2Layout` will be ellipsized.
*
* If @height is positive, it will be the maximum height of the
* layout. Only lines would be shown that would fit, and if there
@@ -411,9 +411,9 @@ pango_layout_class_init (PangoLayoutClass *class)
* paragraph is ellipsized.
*
* Height setting only has effect if a positive width is set on the
- * layout and its ellipsization mode is not `PANGO_ELLIPSIZE_NONE`.
+ * layout and its ellipsization mode is not `PANGO2_ELLIPSIZE_NONE`.
* The behavior is undefined if a height other than -1 is set and
- * ellipsization mode is set to `PANGO_ELLIPSIZE_NONE`.
+ * ellipsization mode is set to `PANGO2_ELLIPSIZE_NONE`.
*
* The default value is -1.
*/
@@ -422,19 +422,19 @@ pango_layout_class_init (PangoLayoutClass *class)
G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
- * PangoLayout:tabs: (attributes org.gtk.Property.get=pango_layout_get_tabs org.gtk.Property.set=pango_layout_set_tabs)
+ * Pango2Layout:tabs: (attributes org.gtk.Property.get=pango2_layout_get_tabs org.gtk.Property.set=pango2_layout_set_tabs)
*
- * The tabs to use when formatting the text of `PangoLayout`.
+ * The tabs to use when formatting the text of `Pango2Layout`.
*
- * `PangoLayout` will place content at the next tab position
+ * `Pango2Layout` will place content at the next tab position
* whenever it meets a Tab character (U+0009).
*/
props[PROP_TABS] = g_param_spec_boxed ("tabs", "tabs", "tabs",
- PANGO_TYPE_TAB_ARRAY,
+ PANGO2_TYPE_TAB_ARRAY,
G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
- * PangoLayout:single-paragraph: (attributes org.gtk.Property.get=pango_layout_get_single_paragraph org.gtk.Property.set=pango_layout_set_single_paragraph)
+ * Pango2Layout:single-paragraph: (attributes org.gtk.Property.get=pango2_layout_get_single_paragraph org.gtk.Property.set=pango2_layout_set_single_paragraph)
*
* Whether to treat newlines and similar characters as paragraph
* separators or not.
@@ -451,26 +451,26 @@ pango_layout_class_init (PangoLayoutClass *class)
G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
- * PangoLayout:wrap: (attributes org.gtk.Property.get=pango_layout_get_wrap org.gtk.Property.set=pango_layout_set_wrap)
+ * Pango2Layout:wrap: (attributes org.gtk.Property.get=pango2_layout_get_wrap org.gtk.Property.set=pango2_layout_set_wrap)
*
- * The wrap mode of this `PangoLayout`.
+ * The wrap mode of this `Pango2Layout`.
*
- * The wrap mode influences how Pango chooses line breaks
+ * The wrap mode influences how Pango2 chooses line breaks
* when text needs to be wrapped.
*
- * The default value is `PANGO_WRAP_WORD`.
+ * The default value is `PANGO2_WRAP_WORD`.
*/
props[PROP_WRAP] = g_param_spec_enum ("wrap", "wrap", "wrap",
- PANGO_TYPE_WRAP_MODE,
- PANGO_WRAP_WORD,
+ PANGO2_TYPE_WRAP_MODE,
+ PANGO2_WRAP_WORD,
G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
- * PangoLayout:indent: (attributes org.gtk.Property.get=pango_layout_get_indent org.gtk.Property.set=pango_layout_set_indent)
+ * Pango2Layout:indent: (attributes org.gtk.Property.get=pango2_layout_get_indent org.gtk.Property.set=pango2_layout_set_indent)
*
- * The indent of this `PangoLayout`.
+ * The indent of this `Pango2Layout`.
*
- * The indent is specified in Pango units.
+ * The indent is specified in Pango2 units.
*
* A negative value of @indent will produce a hanging indentation.
* That is, the first line will have the full width, and subsequent
@@ -483,33 +483,33 @@ pango_layout_class_init (PangoLayoutClass *class)
G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
- * PangoLayout:alignment: (attributes org.gtk.Property.get=pango_layout_get_alignment org.gtk.Property.set=pango_layout_set_alignment)
+ * Pango2Layout:alignment: (attributes org.gtk.Property.get=pango2_layout_get_alignment org.gtk.Property.set=pango2_layout_set_alignment)
*
- * The alignment mode of this `PangoLayout`.
+ * The alignment mode of this `Pango2Layout`.
*
- * The default value is `PANGO_ALIGN_NATURAL`.
+ * The default value is `PANGO2_ALIGN_NATURAL`.
*/
props[PROP_ALIGNMENT] = g_param_spec_enum ("alignment", "alignment", "alignment",
- PANGO_TYPE_ALIGNMENT,
- PANGO_ALIGN_NATURAL,
+ PANGO2_TYPE_ALIGNMENT,
+ PANGO2_ALIGN_NATURAL,
G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
- * PangoLayout:ellipsize: (attributes org.gtk.Property.get=pango_layout_get_ellipsize org.gtk.Property.set=pango_layout_set_ellipsize)
+ * Pango2Layout:ellipsize: (attributes org.gtk.Property.get=pango2_layout_get_ellipsize org.gtk.Property.set=pango2_layout_set_ellipsize)
*
- * The ellipsization mode of this `PangoLayout`.
+ * The ellipsization mode of this `Pango2Layout`.
*
- * The default value is `PANGO_ELLIPSIZE_NONE`.
+ * The default value is `PANGO2_ELLIPSIZE_NONE`.
*/
props[PROP_ELLIPSIZE] = g_param_spec_enum ("ellipsize", "ellipsize", "ellipsize",
- PANGO_TYPE_ELLIPSIZE_MODE,
- PANGO_ELLIPSIZE_NONE,
+ PANGO2_TYPE_ELLIPSIZE_MODE,
+ PANGO2_ELLIPSIZE_NONE,
G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
- * PangoLayout:auto-dir: (attributes org.gtk.Property.get=pango_layout_get_auto_dir org.gtk.Property.set=pango_layout_set_auto_dir)
+ * Pango2Layout:auto-dir: (attributes org.gtk.Property.get=pango2_layout_get_auto_dir org.gtk.Property.set=pango2_layout_set_auto_dir)
*
- * Whether this `PangoLayout` determines the
+ * Whether this `Pango2Layout` determines the
* base direction from the content.
*
* The default value is `TRUE`.
@@ -519,12 +519,12 @@ pango_layout_class_init (PangoLayoutClass *class)
G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
- * PangoLayout:lines: (attributes org.gtk.Property.get=pango_layout_get_lines)
+ * Pango2Layout:lines: (attributes org.gtk.Property.get=pango2_layout_get_lines)
*
- * The `PangoLines` object holding the formatted lines.
+ * The `Pango2Lines` object holding the formatted lines.
*/
props[PROP_LINES] = g_param_spec_object ("lines", "lines", "lines",
- PANGO_TYPE_LINES,
+ PANGO2_TYPE_LINES,
G_PARAM_READABLE);
g_object_class_install_properties (object_class, NUM_PROPERTIES, props);
@@ -534,7 +534,7 @@ pango_layout_class_init (PangoLayoutClass *class)
/* {{{ Utilities */
static void
-layout_changed (PangoLayout *layout)
+layout_changed (Pango2Layout *layout)
{
layout->serial++;
if (layout->serial == 0)
@@ -545,69 +545,69 @@ layout_changed (PangoLayout *layout)
}
static void
-check_context_changed (PangoLayout *layout)
+check_context_changed (Pango2Layout *layout)
{
guint old_serial = layout->context_serial;
- layout->context_serial = pango_context_get_serial (layout->context);
+ layout->context_serial = pango2_context_get_serial (layout->context);
if (old_serial != layout->context_serial)
- pango_layout_context_changed (layout);
+ pango2_layout_context_changed (layout);
}
-static PangoAttrList *
-ensure_attrs (PangoLayout *layout,
- PangoAttrList *attrs)
+static Pango2AttrList *
+ensure_attrs (Pango2Layout *layout,
+ Pango2AttrList *attrs)
{
if (attrs)
return attrs;
else if (layout->attrs)
- return pango_attr_list_copy (layout->attrs);
+ return pango2_attr_list_copy (layout->attrs);
else
- return pango_attr_list_new ();
+ return pango2_attr_list_new ();
}
-static PangoAttrList *
-get_effective_attributes (PangoLayout *layout)
+static Pango2AttrList *
+get_effective_attributes (Pango2Layout *layout)
{
- PangoAttrList *attrs = NULL;
+ Pango2AttrList *attrs = NULL;
if (layout->font_desc)
{
attrs = ensure_attrs (layout, attrs);
- pango_attr_list_insert_before (attrs,
- pango_attr_font_desc_new (layout->font_desc));
+ pango2_attr_list_insert_before (attrs,
+ pango2_attr_font_desc_new (layout->font_desc));
}
if (layout->line_height != 0.0)
{
attrs = ensure_attrs (layout, attrs);
- pango_attr_list_insert_before (attrs,
- pango_attr_line_height_new (layout->line_height));
+ pango2_attr_list_insert_before (attrs,
+ pango2_attr_line_height_new (layout->line_height));
}
if (layout->spacing != 0)
{
attrs = ensure_attrs (layout, attrs);
- pango_attr_list_insert_before (attrs,
- pango_attr_line_spacing_new (layout->spacing));
+ pango2_attr_list_insert_before (attrs,
+ pango2_attr_line_spacing_new (layout->spacing));
}
if (layout->single_paragraph)
{
attrs = ensure_attrs (layout, attrs);
- pango_attr_list_insert_before (attrs,
- pango_attr_paragraph_new ());
+ pango2_attr_list_insert_before (attrs,
+ pango2_attr_paragraph_new ());
}
if (attrs)
return attrs;
- return pango_attr_list_ref (layout->attrs);
+ return pango2_attr_list_ref (layout->attrs);
}
static gboolean
-ends_with_paragraph_separator (PangoLayout *layout)
+ends_with_paragraph_separator (Pango2Layout *layout)
{
if (layout->single_paragraph)
return FALSE;
@@ -619,10 +619,10 @@ ends_with_paragraph_separator (PangoLayout *layout)
}
static void
-ensure_lines (PangoLayout *layout)
+ensure_lines (Pango2Layout *layout)
{
- PangoLineBreaker *breaker;
- PangoAttrList *attrs;
+ Pango2LineBreaker *breaker;
+ Pango2AttrList *attrs;
int x, y, width;
int line_no;
@@ -631,30 +631,30 @@ ensure_lines (PangoLayout *layout)
if (layout->lines)
return;
- breaker = pango_line_breaker_new (layout->context);
+ breaker = pango2_line_breaker_new (layout->context);
- pango_line_breaker_set_tabs (breaker, layout->tabs);
- pango_line_breaker_set_base_dir (breaker,
- layout->auto_dir
- ? PANGO_DIRECTION_NEUTRAL
- : pango_context_get_base_dir (layout->context));
+ pango2_line_breaker_set_tabs (breaker, layout->tabs);
+ pango2_line_breaker_set_base_dir (breaker,
+ layout->auto_dir
+ ? PANGO2_DIRECTION_NEUTRAL
+ : pango2_context_get_base_dir (layout->context));
attrs = get_effective_attributes (layout);
- pango_line_breaker_add_text (breaker, layout->text ? layout->text : "", -1, attrs);
+ pango2_line_breaker_add_text (breaker, layout->text ? layout->text : "", -1, attrs);
if (attrs)
- pango_attr_list_unref (attrs);
+ pango2_attr_list_unref (attrs);
- layout->lines = pango_lines_new ();
+ layout->lines = pango2_lines_new ();
x = y = 0;
line_no = 0;
- while (pango_line_breaker_has_line (breaker))
+ while (pango2_line_breaker_has_line (breaker))
{
- PangoLine *line;
- PangoRectangle ext;
+ Pango2Line *line;
+ Pango2Rectangle ext;
int offset;
- PangoEllipsizeMode ellipsize = PANGO_ELLIPSIZE_NONE;
- PangoLeadingTrim trim = PANGO_LEADING_TRIM_NONE;
+ Pango2EllipsizeMode ellipsize = PANGO2_ELLIPSIZE_NONE;
+ Pango2LeadingTrim trim = PANGO2_LEADING_TRIM_NONE;
if ((line_no == 0) == (layout->indent > 0))
{
@@ -671,21 +671,21 @@ ensure_lines (PangoLayout *layout)
ellipsize = layout->ellipsize;
retry:
- line = pango_line_breaker_next_line (breaker, x, width, layout->wrap, ellipsize);
+ line = pango2_line_breaker_next_line (breaker, x, width, layout->wrap, ellipsize);
if (line->starts_paragraph)
- trim |= PANGO_LEADING_TRIM_START;
+ trim |= PANGO2_LEADING_TRIM_START;
if (line->ends_paragraph)
- trim |= PANGO_LEADING_TRIM_END;
+ trim |= PANGO2_LEADING_TRIM_END;
- pango_line_get_trimmed_extents (line, trim, &ext);
+ pango2_line_get_trimmed_extents (line, trim, &ext);
if (layout->height >= 0 && y + 2 * ext.height >= layout->height &&
ellipsize != layout->ellipsize)
{
- if (pango_line_breaker_undo_line (breaker, line))
+ if (pango2_line_breaker_undo_line (breaker, line))
{
- g_clear_pointer (&line, pango_line_free);
+ g_clear_pointer (&line, pango2_line_free);
ellipsize = layout->ellipsize;
goto retry;
}
@@ -696,35 +696,35 @@ retry:
switch (layout->alignment)
{
- case PANGO_ALIGN_LEFT:
+ case PANGO2_ALIGN_LEFT:
break;
- case PANGO_ALIGN_CENTER:
+ case PANGO2_ALIGN_CENTER:
if (ext.width < width)
offset = (width - ext.width) / 2;
break;
- case PANGO_ALIGN_JUSTIFY:
- if (!pango_line_is_paragraph_end (line))
+ case PANGO2_ALIGN_JUSTIFY:
+ if (!pango2_line_is_paragraph_end (line))
{
- line = pango_line_justify (line, width);
+ line = pango2_line_justify (line, width);
break;
}
G_GNUC_FALLTHROUGH;
- case PANGO_ALIGN_NATURAL:
+ case PANGO2_ALIGN_NATURAL:
{
- PangoLine *first_line;
- if (pango_lines_get_line_count (layout->lines) > 0)
- first_line = pango_lines_get_lines (layout->lines)[0];
+ Pango2Line *first_line;
+ if (pango2_lines_get_line_count (layout->lines) > 0)
+ first_line = pango2_lines_get_lines (layout->lines)[0];
else
first_line = line;
- if (pango_line_get_resolved_direction (first_line) == PANGO_DIRECTION_LTR)
+ if (pango2_line_get_resolved_direction (first_line) == PANGO2_DIRECTION_LTR)
break;
}
G_GNUC_FALLTHROUGH;
- case PANGO_ALIGN_RIGHT:
+ case PANGO2_ALIGN_RIGHT:
if (ext.width < width)
offset = width - ext.width;
break;
@@ -733,7 +733,7 @@ retry:
g_assert_not_reached ();
}
- pango_lines_add_line (layout->lines, line, x + offset, y - ext.y);
+ pango2_lines_add_line (layout->lines, line, x + offset, y - ext.y);
y += ext.height;
line_no++;
@@ -742,21 +742,21 @@ retry:
/* Append an empty line if we end with a newline.
* And always provide at least one line
*/
- if (pango_lines_get_line_count (layout->lines) == 0 ||
+ if (pango2_lines_get_line_count (layout->lines) == 0 ||
ends_with_paragraph_separator (layout))
{
LineData *data;
int start_index;
int start_offset;
int offset;
- PangoLine *line;
- PangoRectangle ext;
+ Pango2Line *line;
+ Pango2Rectangle ext;
- if (pango_lines_get_line_count (layout->lines) > 0)
+ if (pango2_lines_get_line_count (layout->lines) > 0)
{
- PangoLine *last;
+ Pango2Line *last;
- last = pango_lines_get_lines (layout->lines)[pango_lines_get_line_count (layout->lines) - 1];
+ last = pango2_lines_get_lines (layout->lines)[pango2_lines_get_line_count (layout->lines) - 1];
data = line_data_ref (last->data);
start_index = data->length;
start_offset = last->data->n_chars;
@@ -768,14 +768,14 @@ retry:
data->text = g_strdup ("");
data->length = 0;
data->attrs = get_effective_attributes (layout);
- data->log_attrs = g_new0 (PangoLogAttr, 1);
+ data->log_attrs = g_new0 (Pango2LogAttr, 1);
data->log_attrs[0].is_cursor_position = TRUE;
start_index = 0;
start_offset = 0;
offset = 0;
}
- line = pango_line_new (layout->context, data);
+ line = pango2_line_new (layout->context, data);
line->starts_paragraph = TRUE;
line->ends_paragraph = TRUE;
line->start_index = start_index;
@@ -783,9 +783,9 @@ retry:
line->start_offset = start_offset;
line->n_chars = 0;
- pango_line_get_extents (line, NULL, &ext);
+ pango2_line_get_extents (line, NULL, &ext);
- pango_lines_add_line (layout->lines, line, x + offset, y - ext.y);
+ pango2_lines_add_line (layout->lines, line, x + offset, y - ext.y);
line_data_unref (data);
}
@@ -797,54 +797,54 @@ retry:
/* {{{ Public API */
/**
- * pango_layout_new:
- * @context: a `PangoContext`
+ * pango2_layout_new:
+ * @context: a `Pango2Context`
*
- * Creates a new `PangoLayout` with attribute initialized to
- * default values for a particular `PangoContext`
+ * Creates a new `Pango2Layout` with attribute initialized to
+ * default values for a particular `Pango2Context`
*
- * Return value: a newly allocated `PangoLayout`
+ * Return value: a newly allocated `Pango2Layout`
*/
-PangoLayout *
-pango_layout_new (PangoContext *context)
+Pango2Layout *
+pango2_layout_new (Pango2Context *context)
{
- g_return_val_if_fail (PANGO_IS_CONTEXT (context), NULL);
+ g_return_val_if_fail (PANGO2_IS_CONTEXT (context), NULL);
- return g_object_new (PANGO_TYPE_LAYOUT, "context", context, NULL);
+ return g_object_new (PANGO2_TYPE_LAYOUT, "context", context, NULL);
}
/**
- * pango_layout_copy:
- * @layout: a `PangoLayout`
+ * pango2_layout_copy:
+ * @layout: a `Pango2Layout`
*
* Creates a deep copy-by-value of the layout.
*
* The attribute list, tab array, and text from the original layout
* are all copied by value.
*
- * Return value: (transfer full): the newly allocated `PangoLayout`
+ * Return value: (transfer full): the newly allocated `Pango2Layout`
*/
-PangoLayout *
-pango_layout_copy (PangoLayout *layout)
+Pango2Layout *
+pango2_layout_copy (Pango2Layout *layout)
{
- PangoLayout *copy;
+ Pango2Layout *copy;
- g_return_val_if_fail (PANGO_IS_LAYOUT (layout), NULL);
+ g_return_val_if_fail (PANGO2_IS_LAYOUT (layout), NULL);
- copy = pango_layout_new (layout->context);
+ copy = pango2_layout_new (layout->context);
copy->text = g_strdup (layout->text);
copy->length = layout->length;
if (layout->attrs)
- copy->attrs = pango_attr_list_copy (layout->attrs);
+ copy->attrs = pango2_attr_list_copy (layout->attrs);
if (layout->font_desc)
- copy->font_desc = pango_font_description_copy (layout->font_desc);
+ copy->font_desc = pango2_font_description_copy (layout->font_desc);
copy->line_height = layout->line_height;
copy->spacing = layout->spacing;
copy->width = layout->width;
copy->height = layout->height;
if (layout->tabs)
- copy->tabs = pango_tab_array_copy (layout->tabs);
+ copy->tabs = pango2_tab_array_copy (layout->tabs);
copy->single_paragraph = layout->single_paragraph;
copy->wrap = layout->wrap;
copy->indent = layout->indent;
@@ -858,26 +858,26 @@ pango_layout_copy (PangoLayout *layout)
}
/**
- * pango_layout_get_serial:
- * @layout: a `PangoLayout`
+ * pango2_layout_get_serial:
+ * @layout: a `Pango2Layout`
*
* Returns the current serial number of the layout.
*
* The serial number is initialized to an small number larger than zero
* when a new layout is created and is increased whenever the layout is
- * changed using any of the setter functions, or the `PangoContext` it
+ * changed using any of the setter functions, or the `Pango2Context` it
* uses has changed.
*
* The serial may wrap, but will never have the value 0. Since it can
* wrap, never compare it with "less than", always use "not equals".
*
- * This can be used to automatically detect changes to a `PangoLayout`,
+ * This can be used to automatically detect changes to a `Pango2Layout`,
* and is useful for example to decide whether a layout needs redrawing.
*
* Return value: The current serial number of @layout
*/
guint
-pango_layout_get_serial (PangoLayout *layout)
+pango2_layout_get_serial (Pango2Layout *layout)
{
check_context_changed (layout);
@@ -885,8 +885,8 @@ pango_layout_get_serial (PangoLayout *layout)
}
/**
- * pango_layout_context_changed:
- * @layout: a `PangoLayout`
+ * pango2_layout_context_changed:
+ * @layout: a `Pango2Layout`
*
* Forces recomputation of any state in the layout that
* might depend on the layout's context.
@@ -895,9 +895,9 @@ pango_layout_get_serial (PangoLayout *layout)
* context subsequent to creating the layout.
*/
void
-pango_layout_context_changed (PangoLayout *layout)
+pango2_layout_context_changed (Pango2Layout *layout)
{
- g_return_if_fail (PANGO_IS_LAYOUT (layout));
+ g_return_if_fail (PANGO2_IS_LAYOUT (layout));
layout_changed (layout);
}
@@ -905,24 +905,24 @@ pango_layout_context_changed (PangoLayout *layout)
/* {{{ Property getters and setters */
/**
- * pango_layout_get_context:
- * @layout: a `PangoLayout`
+ * pango2_layout_get_context:
+ * @layout: a `Pango2Layout`
*
- * Retrieves the `PangoContext` used for this layout.
+ * Retrieves the `Pango2Context` used for this layout.
*
- * Return value: (transfer none): the `PangoContext` for the layout
+ * Return value: (transfer none): the `Pango2Context` for the layout
*/
-PangoContext *
-pango_layout_get_context (PangoLayout *layout)
+Pango2Context *
+pango2_layout_get_context (Pango2Layout *layout)
{
- g_return_val_if_fail (PANGO_IS_LAYOUT (layout), NULL);
+ g_return_val_if_fail (PANGO2_IS_LAYOUT (layout), NULL);
return layout->context;
}
/**
- * pango_layout_set_text:
- * @layout: a `PangoLayout`
+ * pango2_layout_set_text:
+ * @layout: a `Pango2Layout`
* @text: the text
* @length: maximum length of @text, in bytes. -1 indicates that
* the string is nul-terminated
@@ -930,11 +930,11 @@ pango_layout_get_context (PangoLayout *layout)
* Sets the text of the layout.
*/
void
-pango_layout_set_text (PangoLayout *layout,
- const char *text,
- int length)
+pango2_layout_set_text (Pango2Layout *layout,
+ const char *text,
+ int length)
{
- g_return_if_fail (PANGO_IS_LAYOUT (layout));
+ g_return_if_fail (PANGO2_IS_LAYOUT (layout));
if (length < 0)
length = strlen (text);
@@ -948,8 +948,8 @@ pango_layout_set_text (PangoLayout *layout,
}
/**
- * pango_layout_get_text:
- * @layout: a `PangoLayout`
+ * pango2_layout_get_text:
+ * @layout: a `Pango2Layout`
*
* Gets the text in the layout.
*
@@ -958,57 +958,57 @@ pango_layout_set_text (PangoLayout *layout,
* Return value: (transfer none): the text in the @layout
*/
const char *
-pango_layout_get_text (PangoLayout *layout)
+pango2_layout_get_text (Pango2Layout *layout)
{
- g_return_val_if_fail (PANGO_IS_LAYOUT (layout), NULL);
+ g_return_val_if_fail (PANGO2_IS_LAYOUT (layout), NULL);
return layout->text;
}
/**
- * pango_layout_set_attributes:
- * @layout: a `PangoLayout`
- * @attrs: (nullable) (transfer none): a `PangoAttrList`
+ * pango2_layout_set_attributes:
+ * @layout: a `Pango2Layout`
+ * @attrs: (nullable) (transfer none): a `Pango2AttrList`
*
* Sets the attributes for a layout object.
*
* References @attrs, so the caller can unref its reference.
*/
void
-pango_layout_set_attributes (PangoLayout *layout,
- PangoAttrList *attrs)
+pango2_layout_set_attributes (Pango2Layout *layout,
+ Pango2AttrList *attrs)
{
- g_return_if_fail (PANGO_IS_LAYOUT (layout));
+ g_return_if_fail (PANGO2_IS_LAYOUT (layout));
- g_clear_pointer (&layout->attrs, pango_attr_list_unref);
+ g_clear_pointer (&layout->attrs, pango2_attr_list_unref);
layout->attrs = attrs;
if (layout->attrs)
- pango_attr_list_ref (layout->attrs);
+ pango2_attr_list_ref (layout->attrs);
g_object_notify_by_pspec (G_OBJECT (layout), props[PROP_ATTRIBUTES]);
layout_changed (layout);
}
/**
- * pango_layout_get_attributes:
- * @layout: a `PangoLayout`
+ * pango2_layout_get_attributes:
+ * @layout: a `Pango2Layout`
*
* Gets the attribute list for the layout, if any.
*
- * Return value: (transfer none) (nullable): a `PangoAttrList`
+ * Return value: (transfer none) (nullable): a `Pango2AttrList`
*/
-PangoAttrList *
-pango_layout_get_attributes (PangoLayout *layout)
+Pango2AttrList *
+pango2_layout_get_attributes (Pango2Layout *layout)
{
- g_return_val_if_fail (PANGO_IS_LAYOUT (layout), NULL);
+ g_return_val_if_fail (PANGO2_IS_LAYOUT (layout), NULL);
return layout->attrs;
}
/**
- * pango_layout_set_font_description:
- * @layout: a `PangoLayout`
- * @desc: (nullable): the new `PangoFontDescription`
+ * pango2_layout_set_font_description:
+ * @layout: a `Pango2Layout`
+ * @desc: (nullable): the new `Pango2FontDescription`
*
* Sets the default font description for the layout.
*
@@ -1018,18 +1018,18 @@ pango_layout_get_attributes (PangoLayout *layout)
* This method is a shorthand for adding a font-desc attribute.
*/
void
-pango_layout_set_font_description (PangoLayout *layout,
- const PangoFontDescription *desc)
+pango2_layout_set_font_description (Pango2Layout *layout,
+ const Pango2FontDescription *desc)
{
- g_return_if_fail (PANGO_IS_LAYOUT (layout));
+ g_return_if_fail (PANGO2_IS_LAYOUT (layout));
if (desc != layout->font_desc &&
- (!desc || !layout->font_desc || !pango_font_description_equal (desc, layout->font_desc)))
+ (!desc || !layout->font_desc || !pango2_font_description_equal (desc, layout->font_desc)))
{
if (layout->font_desc)
- pango_font_description_free (layout->font_desc);
+ pango2_font_description_free (layout->font_desc);
- layout->font_desc = desc ? pango_font_description_copy (desc) : NULL;
+ layout->font_desc = desc ? pango2_font_description_copy (desc) : NULL;
g_object_notify_by_pspec (G_OBJECT (layout), props[PROP_FONT_DESCRIPTION]);
layout_changed (layout);
@@ -1037,8 +1037,8 @@ pango_layout_set_font_description (PangoLayout *layout,
}
/**
- * pango_layout_get_font_description:
- * @layout: a `PangoLayout`
+ * pango2_layout_get_font_description:
+ * @layout: a `Pango2Layout`
*
* Gets the font description for the layout, if any.
*
@@ -1046,17 +1046,17 @@ pango_layout_set_font_description (PangoLayout *layout,
* layout's font description, or %NULL if the font description
* from the layout's context is inherited.
*/
-const PangoFontDescription *
-pango_layout_get_font_description (PangoLayout *layout)
+const Pango2FontDescription *
+pango2_layout_get_font_description (Pango2Layout *layout)
{
- g_return_val_if_fail (PANGO_IS_LAYOUT (layout), NULL);
+ g_return_val_if_fail (PANGO2_IS_LAYOUT (layout), NULL);
return layout->font_desc;
}
/**
- * pango_layout_set_line_height:
- * @layout: a `PangoLayout`
+ * pango2_layout_set_line_height:
+ * @layout: a `Pango2Layout`
* @line_height: the new line height factor
*
* Sets a factor for line height.
@@ -1073,10 +1073,10 @@ pango_layout_get_font_description (PangoLayout *layout)
* This method is a shorthand for adding a line-height attribute.
*/
void
-pango_layout_set_line_height (PangoLayout *layout,
- float line_height)
+pango2_layout_set_line_height (Pango2Layout *layout,
+ float line_height)
{
- g_return_if_fail (PANGO_IS_LAYOUT (layout));
+ g_return_if_fail (PANGO2_IS_LAYOUT (layout));
if (layout->line_height == line_height)
return;
@@ -1088,42 +1088,42 @@ pango_layout_set_line_height (PangoLayout *layout,
}
/**
- * pango_layout_get_line_height:
- * @layout: a `PangoLayout`
+ * pango2_layout_get_line_height:
+ * @layout: a `Pango2Layout`
*
* Gets the line height factor of the layout.
*
- * See [method@Pango.Layout.set_line_height].
+ * See [method@Pango2.Layout.set_line_height].
*/
float
-pango_layout_get_line_height (PangoLayout *layout)
+pango2_layout_get_line_height (Pango2Layout *layout)
{
- g_return_val_if_fail (PANGO_IS_LAYOUT (layout), 0.0);
+ g_return_val_if_fail (PANGO2_IS_LAYOUT (layout), 0.0);
return layout->line_height;
}
/**
- * pango_layout_set_spacing:
- * @layout: a `PangoLayout`
- * @spacing: the amount of spacing, in Pango units
+ * pango2_layout_set_spacing:
+ * @layout: a `Pango2Layout`
+ * @spacing: the amount of spacing, in Pango2 units
*
* Sets the amount of spacing between the lines of the layout.
*
- * When placing lines with spacing, Pango arranges things so that
+ * When placing lines with spacing, Pango2 arranges things so that
*
* line2.top = line1.bottom + spacing
*
* The default value is 0.
*
* Spacing only takes effect if the line height is not
- * overridden via [method@Pango.Layout.set_line_height].
+ * overridden via [method@Pango2.Layout.set_line_height].
*/
void
-pango_layout_set_spacing (PangoLayout *layout,
- int spacing)
+pango2_layout_set_spacing (Pango2Layout *layout,
+ int spacing)
{
- g_return_if_fail (PANGO_IS_LAYOUT (layout));
+ g_return_if_fail (PANGO2_IS_LAYOUT (layout));
if (layout->spacing == spacing)
return;
@@ -1135,25 +1135,25 @@ pango_layout_set_spacing (PangoLayout *layout,
}
/**
- * pango_layout_get_spacing:
- * @layout: a `PangoLayout`
+ * pango2_layout_get_spacing:
+ * @layout: a `Pango2Layout`
*
* Gets the amount of spacing between the lines of the layout.
*
- * Return value: the spacing in Pango units
+ * Return value: the spacing in Pango2 units
*/
int
-pango_layout_get_spacing (PangoLayout *layout)
+pango2_layout_get_spacing (Pango2Layout *layout)
{
- g_return_val_if_fail (PANGO_IS_LAYOUT (layout), 0);
+ g_return_val_if_fail (PANGO2_IS_LAYOUT (layout), 0);
return layout->spacing;
}
/**
- * pango_layout_set_width:
- * @layout: a `PangoLayout`.
- * @width: the desired width in Pango units, or -1 to indicate that no
+ * pango2_layout_set_width:
+ * @layout: a `Pango2Layout`.
+ * @width: the desired width in Pango2 units, or -1 to indicate that no
* wrapping or ellipsization should be performed
*
* Sets the width to which the lines of the layout should
@@ -1162,10 +1162,10 @@ pango_layout_get_spacing (PangoLayout *layout)
* The default value is -1: no width set.
*/
void
-pango_layout_set_width (PangoLayout *layout,
- int width)
+pango2_layout_set_width (Pango2Layout *layout,
+ int width)
{
- g_return_if_fail (PANGO_IS_LAYOUT (layout));
+ g_return_if_fail (PANGO2_IS_LAYOUT (layout));
if (width < -1)
width = -1;
@@ -1180,38 +1180,38 @@ pango_layout_set_width (PangoLayout *layout,
}
/**
- * pango_layout_get_width:
- * @layout: a `PangoLayout`
+ * pango2_layout_get_width:
+ * @layout: a `Pango2Layout`
*
* Gets the width to which the lines of the layout should wrap.
*
- * Return value: the width in Pango units, or -1 if no width set.
+ * Return value: the width in Pango2 units, or -1 if no width set.
*/
int
-pango_layout_get_width (PangoLayout *layout)
+pango2_layout_get_width (Pango2Layout *layout)
{
- g_return_val_if_fail (PANGO_IS_LAYOUT (layout), -1);
+ g_return_val_if_fail (PANGO2_IS_LAYOUT (layout), -1);
return layout->width;
}
/**
- * pango_layout_set_height:
- * @layout: a `PangoLayout`.
+ * pango2_layout_set_height:
+ * @layout: a `Pango2Layout`.
* @height: the desired height
*
- * Sets the height to which the `PangoLayout` should be ellipsized at.
+ * Sets the height to which the `Pango2Layout` should be ellipsized at.
*
* There are two different behaviors, based on whether @height is positive
* or negative.
*
- * See [property@Pango.Layout:height] for details.
+ * See [property@Pango2.Layout:height] for details.
*/
void
-pango_layout_set_height (PangoLayout *layout,
- int height)
+pango2_layout_set_height (Pango2Layout *layout,
+ int height)
{
- g_return_if_fail (PANGO_IS_LAYOUT (layout));
+ g_return_if_fail (PANGO2_IS_LAYOUT (layout));
if (layout->height == height)
return;
@@ -1223,27 +1223,27 @@ pango_layout_set_height (PangoLayout *layout,
}
/**
- * pango_layout_get_height:
- * @layout: a `PangoLayout`
+ * pango2_layout_get_height:
+ * @layout: a `Pango2Layout`
*
* Gets the height to which the lines of the layout should ellipsize.
*
- * See [property@Pango.Layout:height] for details.
+ * See [property@Pango2.Layout:height] for details.
*
* Return value: the height
*/
int
-pango_layout_get_height (PangoLayout *layout)
+pango2_layout_get_height (Pango2Layout *layout)
{
- g_return_val_if_fail (PANGO_IS_LAYOUT (layout), -1);
+ g_return_val_if_fail (PANGO2_IS_LAYOUT (layout), -1);
return layout->height;
}
/**
- * pango_layout_set_tabs:
- * @layout: a `PangoLayout`
- * @tabs: (nullable): a `PangoTabArray`
+ * pango2_layout_set_tabs:
+ * @layout: a `Pango2Layout`
+ * @tabs: (nullable): a `Pango2TabArray`
*
* Sets the tabs to use for the layout, overriding the
* default tabs.
@@ -1251,47 +1251,47 @@ pango_layout_get_height (PangoLayout *layout)
* Setting the tabs to `NULL` reinstates the default
* tabs.
*
- * See [method@Pango.LineBreaker.set_tabs] for details.
+ * See [method@Pango2.LineBreaker.set_tabs] for details.
*/
void
-pango_layout_set_tabs (PangoLayout *layout,
- PangoTabArray *tabs)
+pango2_layout_set_tabs (Pango2Layout *layout,
+ Pango2TabArray *tabs)
{
- g_return_if_fail (PANGO_IS_LAYOUT (layout));
+ g_return_if_fail (PANGO2_IS_LAYOUT (layout));
if (layout->tabs == tabs)
return;
- g_clear_pointer (&layout->tabs, pango_tab_array_free);
+ g_clear_pointer (&layout->tabs, pango2_tab_array_free);
if (tabs)
- layout->tabs = pango_tab_array_copy (tabs);
+ layout->tabs = pango2_tab_array_copy (tabs);
g_object_notify_by_pspec (G_OBJECT (layout), props[PROP_TABS]);
layout_changed (layout);
}
/**
- * pango_layout_get_tabs:
- * @layout: a `PangoLayout`
+ * pango2_layout_get_tabs:
+ * @layout: a `Pango2Layout`
*
- * Gets the current `PangoTabArray` used by this layout.
+ * Gets the current `Pango2TabArray` used by this layout.
*
- * If no `PangoTabArray` has been set, then the default tabs are
+ * If no `Pango2TabArray` has been set, then the default tabs are
* in use and %NULL is returned. Default tabs are every 8 spaces.
*
* Return value: (transfer none) (nullable): the tabs for this layout
*/
-PangoTabArray *
-pango_layout_get_tabs (PangoLayout *layout)
+Pango2TabArray *
+pango2_layout_get_tabs (Pango2Layout *layout)
{
- g_return_val_if_fail (PANGO_IS_LAYOUT (layout), NULL);
+ g_return_val_if_fail (PANGO2_IS_LAYOUT (layout), NULL);
return layout->tabs;
}
/**
- * pango_layout_set_single_paragraph:
- * @layout: a `PangoLayout`
+ * pango2_layout_set_single_paragraph:
+ * @layout: a `Pango2Layout`
* @single_paragraph: the new setting
*
* Sets the single paragraph mode of the layout.
@@ -1306,10 +1306,10 @@ pango_layout_get_tabs (PangoLayout *layout)
* The default value is %FALSE.
*/
void
-pango_layout_set_single_paragraph (PangoLayout *layout,
- gboolean single_paragraph)
+pango2_layout_set_single_paragraph (Pango2Layout *layout,
+ gboolean single_paragraph)
{
- g_return_if_fail (PANGO_IS_LAYOUT (layout));
+ g_return_if_fail (PANGO2_IS_LAYOUT (layout));
if (layout->single_paragraph == single_paragraph)
return;
@@ -1321,42 +1321,42 @@ pango_layout_set_single_paragraph (PangoLayout *layout,
}
/**
- * pango_layout_get_single_paragraph:
- * @layout: a `PangoLayout`
+ * pango2_layout_get_single_paragraph:
+ * @layout: a `Pango2Layout`
*
* Obtains whether this layout is in single paragraph mode.
*
- * See [method@Pango.Layout.set_single_paragraph].
+ * See [method@Pango2.Layout.set_single_paragraph].
*
* Return value: `TRUE` if the layout does not break paragraphs
* at paragraph separator characters, %FALSE otherwise
*/
gboolean
-pango_layout_get_single_paragraph (PangoLayout *layout)
+pango2_layout_get_single_paragraph (Pango2Layout *layout)
{
- g_return_val_if_fail (PANGO_IS_LAYOUT (layout), FALSE);
+ g_return_val_if_fail (PANGO2_IS_LAYOUT (layout), FALSE);
return layout->single_paragraph;
}
/**
- * pango_layout_set_wrap:
- * @layout: a `PangoLayout`
+ * pango2_layout_set_wrap:
+ * @layout: a `Pango2Layout`
* @wrap: the wrap mode
*
* Sets the wrap mode.
*
* The wrap mode only has effect if a width is set on the layout
- * with [method@Pango.Layout.set_width]. To turn off wrapping,
+ * with [method@Pango2.Layout.set_width]. To turn off wrapping,
* set the width to -1.
*
- * The default value is %PANGO_WRAP_WORD.
+ * The default value is %PANGO2_WRAP_WORD.
*/
void
-pango_layout_set_wrap (PangoLayout *layout,
- PangoWrapMode wrap)
+pango2_layout_set_wrap (Pango2Layout *layout,
+ Pango2WrapMode wrap)
{
- g_return_if_fail (PANGO_IS_LAYOUT (layout));
+ g_return_if_fail (PANGO2_IS_LAYOUT (layout));
if (layout->wrap == wrap)
return;
@@ -1368,27 +1368,27 @@ pango_layout_set_wrap (PangoLayout *layout,
}
/**
- * pango_layout_get_wrap:
- * @layout: a `PangoLayout`
+ * pango2_layout_get_wrap:
+ * @layout: a `Pango2Layout`
*
* Gets the wrap mode for the layout.
*
* Return value: active wrap mode.
*/
-PangoWrapMode
-pango_layout_get_wrap (PangoLayout *layout)
+Pango2WrapMode
+pango2_layout_get_wrap (Pango2Layout *layout)
{
- g_return_val_if_fail (PANGO_IS_LAYOUT (layout), PANGO_WRAP_WORD);
+ g_return_val_if_fail (PANGO2_IS_LAYOUT (layout), PANGO2_WRAP_WORD);
return layout->wrap;
}
/**
- * pango_layout_set_indent:
- * @layout: a `PangoLayout`
+ * pango2_layout_set_indent:
+ * @layout: a `Pango2Layout`
* @indent: the amount by which to indent
*
- * Sets the width in Pango units to indent each paragraph.
+ * Sets the width in Pango2 units to indent each paragraph.
*
* A negative value of @indent will produce a hanging indentation.
* That is, the first line will have the full width, and subsequent
@@ -1397,10 +1397,10 @@ pango_layout_get_wrap (PangoLayout *layout)
* The default value is 0.
*/
void
-pango_layout_set_indent (PangoLayout *layout,
- int indent)
+pango2_layout_set_indent (Pango2Layout *layout,
+ int indent)
{
- g_return_if_fail (PANGO_IS_LAYOUT (layout));
+ g_return_if_fail (PANGO2_IS_LAYOUT (layout));
if (layout->indent == indent)
return;
@@ -1412,26 +1412,26 @@ pango_layout_set_indent (PangoLayout *layout,
}
/**
- * pango_layout_get_indent:
- * @layout: a `PangoLayout`
+ * pango2_layout_get_indent:
+ * @layout: a `Pango2Layout`
*
- * Gets the paragraph indent width in Pango units.
+ * Gets the paragraph indent width in Pango2 units.
*
* A negative value indicates a hanging indentation.
*
- * Return value: the indent in Pango units
+ * Return value: the indent in Pango2 units
*/
int
-pango_layout_get_indent (PangoLayout *layout)
+pango2_layout_get_indent (Pango2Layout *layout)
{
- g_return_val_if_fail (PANGO_IS_LAYOUT (layout), 0);
+ g_return_val_if_fail (PANGO2_IS_LAYOUT (layout), 0);
return layout->indent;
}
/**
- * pango_layout_set_alignment:
- * @layout: a `PangoLayout`
+ * pango2_layout_set_alignment:
+ * @layout: a `Pango2Layout`
* @alignment: the alignment
*
* Sets the alignment for the layout.
@@ -1439,13 +1439,13 @@ pango_layout_get_indent (PangoLayout *layout)
* The alignment determines how short lines are
* positioned within the available horizontal space.
*
- * The default alignment is `PANGO_ALIGN_NATURAL`.
+ * The default alignment is `PANGO2_ALIGN_NATURAL`.
*/
void
-pango_layout_set_alignment (PangoLayout *layout,
- PangoAlignment alignment)
+pango2_layout_set_alignment (Pango2Layout *layout,
+ Pango2Alignment alignment)
{
- g_return_if_fail (PANGO_IS_LAYOUT (layout));
+ g_return_if_fail (PANGO2_IS_LAYOUT (layout));
if (layout->alignment == alignment)
return;
@@ -1457,8 +1457,8 @@ pango_layout_set_alignment (PangoLayout *layout,
}
/**
- * pango_layout_get_alignment:
- * @layout: a `PangoLayout`
+ * pango2_layout_get_alignment:
+ * @layout: a `Pango2Layout`
*
* Gets the alignment for the layout.
*
@@ -1467,32 +1467,32 @@ pango_layout_set_alignment (PangoLayout *layout,
*
* Return value: the alignment
*/
-PangoAlignment
-pango_layout_get_alignment (PangoLayout *layout)
+Pango2Alignment
+pango2_layout_get_alignment (Pango2Layout *layout)
{
- g_return_val_if_fail (PANGO_IS_LAYOUT (layout), PANGO_ALIGN_NATURAL);
+ g_return_val_if_fail (PANGO2_IS_LAYOUT (layout), PANGO2_ALIGN_NATURAL);
return layout->alignment;
}
/**
- * pango_layout_set_ellipsize:
- * @layout: a `PangoLayout`
+ * pango2_layout_set_ellipsize:
+ * @layout: a `Pango2Layout`
* @ellipsize: the new ellipsization mode for @layout
*
* Sets the type of ellipsization to use for this layout.
*
* Depending on the ellipsization mode @ellipsize text is removed
* from the start, middle, or end of text so they fit within the
- * width of layout set with [method@Pango.Layout.set_width].
+ * width of layout set with [method@Pango2.Layout.set_width].
*
- * The default value is `PANGO_ELLIPSIZE_NONE`.
+ * The default value is `PANGO2_ELLIPSIZE_NONE`.
*/
void
-pango_layout_set_ellipsize (PangoLayout *layout,
- PangoEllipsizeMode ellipsize)
+pango2_layout_set_ellipsize (Pango2Layout *layout,
+ Pango2EllipsizeMode ellipsize)
{
- g_return_if_fail (PANGO_IS_LAYOUT (layout));
+ g_return_if_fail (PANGO2_IS_LAYOUT (layout));
if (layout->ellipsize == ellipsize)
return;
@@ -1504,26 +1504,26 @@ pango_layout_set_ellipsize (PangoLayout *layout,
}
/**
- * pango_layout_get_ellipsize:
- * @layout: a `PangoLayout`
+ * pango2_layout_get_ellipsize:
+ * @layout: a `Pango2Layout`
*
* Gets the type of ellipsization being performed for the layout.
*
- * See [method@Pango.Layout.set_ellipsize].
+ * See [method@Pango2.Layout.set_ellipsize].
*
* Return value: the current ellipsization mode for @layout
*/
-PangoEllipsizeMode
-pango_layout_get_ellipsize (PangoLayout *layout)
+Pango2EllipsizeMode
+pango2_layout_get_ellipsize (Pango2Layout *layout)
{
- g_return_val_if_fail (PANGO_IS_LAYOUT (layout), PANGO_ELLIPSIZE_NONE);
+ g_return_val_if_fail (PANGO2_IS_LAYOUT (layout), PANGO2_ELLIPSIZE_NONE);
return layout->ellipsize;
}
/**
- * pango_layout_set_auto_dir:
- * @layout: a `PangoLayout`
+ * pango2_layout_set_auto_dir:
+ * @layout: a `Pango2Layout`
* @auto_dir: if %TRUE, compute the bidirectional base direction
* from the layout's contents
*
@@ -1540,17 +1540,17 @@ pango_layout_get_ellipsize (PangoLayout *layout)
*
* When `FALSE`, the choice between left-to-right and right-to-left
* layout is done according to the base direction of the layout's
- * `PangoContext`. (See [method@Pango.Context.set_base_dir]).
+ * `Pango2Context`. (See [method@Pango2.Context.set_base_dir]).
*
* When the auto-computed direction of a paragraph differs
* from the base direction of the context, the interpretation
- * of `PANGO_ALIGN_LEFT` and `PANGO_ALIGN_RIGHT` are swapped.
+ * of `PANGO2_ALIGN_LEFT` and `PANGO2_ALIGN_RIGHT` are swapped.
*/
void
-pango_layout_set_auto_dir (PangoLayout *layout,
- gboolean auto_dir)
+pango2_layout_set_auto_dir (Pango2Layout *layout,
+ gboolean auto_dir)
{
- g_return_if_fail (PANGO_IS_LAYOUT (layout));
+ g_return_if_fail (PANGO2_IS_LAYOUT (layout));
if (auto_dir == layout->auto_dir)
return;
@@ -1562,21 +1562,21 @@ pango_layout_set_auto_dir (PangoLayout *layout,
}
/**
- * pango_layout_get_auto_dir:
- * @layout: a `PangoLayout`
+ * pango2_layout_get_auto_dir:
+ * @layout: a `Pango2Layout`
*
* Gets whether to calculate the base direction for the layout
* according to its contents.
*
- * See [method@Pango.Layout.set_auto_dir].
+ * See [method@Pango2.Layout.set_auto_dir].
*
* Return value: `TRUE` if the bidirectional base direction
* is computed from the layout's contents, `FALSE` otherwise
*/
gboolean
-pango_layout_get_auto_dir (PangoLayout *layout)
+pango2_layout_get_auto_dir (Pango2Layout *layout)
{
- g_return_val_if_fail (PANGO_IS_LAYOUT (layout), TRUE);
+ g_return_val_if_fail (PANGO2_IS_LAYOUT (layout), TRUE);
return layout->auto_dir;
}
@@ -1585,32 +1585,32 @@ pango_layout_get_auto_dir (PangoLayout *layout)
/* {{{ Miscellaneous */
/**
- * pango_layout_set_markup:
- * @layout: a `PangoLayout`
+ * pango2_layout_set_markup:
+ * @layout: a `Pango2Layout`
* @markup: marked-up text
* @length: length of @markup in bytes, or -1 if it is `NUL`-terminated
*
* Sets the layout text and attribute list from marked-up text.
*
- * See [Pango Markup](pango_markup.html)).
+ * See [Pango2 Markup](pango2_markup.html)).
*
* Replaces the current text and attributes.
*/
void
-pango_layout_set_markup (PangoLayout *layout,
- const char *markup,
- int length)
+pango2_layout_set_markup (Pango2Layout *layout,
+ const char *markup,
+ int length)
{
- PangoAttrList *attrs;
+ Pango2AttrList *attrs;
char *text;
GError *error = NULL;
- g_return_if_fail (PANGO_IS_LAYOUT (layout));
+ g_return_if_fail (PANGO2_IS_LAYOUT (layout));
g_return_if_fail (markup != NULL);
- if (!pango_parse_markup (markup, length, 0, &attrs, &text, NULL, &error))
+ if (!pango2_parse_markup (markup, length, 0, &attrs, &text, NULL, &error))
{
- g_warning ("pango_layout_set_markup_with_accel: %s", error->message);
+ g_warning ("pango2_layout_set_markup_with_accel: %s", error->message);
g_error_free (error);
return;
}
@@ -1619,7 +1619,7 @@ pango_layout_set_markup (PangoLayout *layout,
layout->text = text;
layout->length = strlen (text);
- g_clear_pointer (&layout->attrs, pango_attr_list_unref);
+ g_clear_pointer (&layout->attrs, pango2_attr_list_unref);
layout->attrs = attrs;
g_object_notify_by_pspec (G_OBJECT (layout), props[PROP_TEXT]);
@@ -1628,8 +1628,8 @@ pango_layout_set_markup (PangoLayout *layout,
}
/**
- * pango_layout_get_character_count:
- * @layout: a `PangoLayout`
+ * pango2_layout_get_character_count:
+ * @layout: a `Pango2Layout`
*
* Returns the number of Unicode characters in the
* the text of the layout.
@@ -1637,15 +1637,15 @@ pango_layout_set_markup (PangoLayout *layout,
* Return value: the number of Unicode characters in @layout
*/
int
-pango_layout_get_character_count (PangoLayout *layout)
+pango2_layout_get_character_count (Pango2Layout *layout)
{
- PangoLine *line;
+ Pango2Line *line;
- g_return_val_if_fail (PANGO_IS_LAYOUT (layout), 0);
+ g_return_val_if_fail (PANGO2_IS_LAYOUT (layout), 0);
ensure_lines (layout);
- line = pango_lines_get_lines (layout->lines)[0];
+ line = pango2_lines_get_lines (layout->lines)[0];
return line->data->n_chars;
}
@@ -1654,8 +1654,8 @@ pango_layout_get_character_count (PangoLayout *layout)
/* {{{ Output getters */
/**
- * pango_layout_get_lines:
- * @layout: a `PangoLayout`
+ * pango2_layout_get_lines:
+ * @layout: a `Pango2Layout`
*
* Gets the lines of the layout.
*
@@ -1663,13 +1663,13 @@ pango_layout_get_character_count (PangoLayout *layout)
* property of @layout is changed. Take a reference
* to keep it.
*
- * Return value: (transfer none): a `PangoLines` object
+ * Return value: (transfer none): a `Pango2Lines` object
* with the lines of @layout
*/
-PangoLines *
-pango_layout_get_lines (PangoLayout *layout)
+Pango2Lines *
+pango2_layout_get_lines (Pango2Layout *layout)
{
- g_return_val_if_fail (PANGO_IS_LAYOUT (layout), NULL);
+ g_return_val_if_fail (PANGO2_IS_LAYOUT (layout), NULL);
ensure_lines (layout);
@@ -1677,29 +1677,29 @@ pango_layout_get_lines (PangoLayout *layout)
}
/**
- * pango_layout_get_log_attrs:
- * @layout: a `PangoLayout`
+ * pango2_layout_get_log_attrs:
+ * @layout: a `Pango2Layout`
* @n_attrs: (out): return location for the length of the array
*
- * Gets the `PangoLogAttr` array for the content of layout.
+ * Gets the `Pango2LogAttr` array for the content of layout.
*
* The returned array becomes invalid when
* any properties of @layout change. Make a
* copy if you want to keep it.
*
- * Returns: (transfer none): the `PangoLogAttr` array
+ * Returns: (transfer none): the `Pango2LogAttr` array
*/
-const PangoLogAttr *
-pango_layout_get_log_attrs (PangoLayout *layout,
- int *n_attrs)
+const Pango2LogAttr *
+pango2_layout_get_log_attrs (Pango2Layout *layout,
+ int *n_attrs)
{
- PangoLine *line;
+ Pango2Line *line;
- g_return_val_if_fail (PANGO_IS_LAYOUT (layout), NULL);
+ g_return_val_if_fail (PANGO2_IS_LAYOUT (layout), NULL);
ensure_lines (layout);
- line = pango_lines_get_lines (layout->lines)[0];
+ line = pango2_lines_get_lines (layout->lines)[0];
if (n_attrs)
*n_attrs = line->data->n_chars + 1;
@@ -1708,24 +1708,24 @@ pango_layout_get_log_attrs (PangoLayout *layout,
}
/**
- * pango_layout_get_iter:
- * @layout: a `PangoLayout`
+ * pango2_layout_get_iter:
+ * @layout: a `Pango2Layout`
*
* Returns an iterator to iterate over the visual extents
* of the layout.
*
- * This is a convenience wrapper for [method@Pango.Lines.get_iter].
+ * This is a convenience wrapper for [method@Pango2.Lines.get_iter].
*
- * Returns: the new `PangoLineIter`
+ * Returns: the new `Pango2LineIter`
*/
-PangoLineIter *
-pango_layout_get_iter (PangoLayout *layout)
+Pango2LineIter *
+pango2_layout_get_iter (Pango2Layout *layout)
{
- g_return_val_if_fail (PANGO_IS_LAYOUT (layout), NULL);
+ g_return_val_if_fail (PANGO2_IS_LAYOUT (layout), NULL);
ensure_lines (layout);
- return pango_lines_get_iter (layout->lines);
+ return pango2_lines_get_iter (layout->lines);
}
/* }}} */