summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2022-01-23 22:54:21 -0500
committerMatthias Clasen <mclasen@redhat.com>2022-01-25 15:29:16 -0500
commit25dc165392f311e1c4d65496acaa8aa1294eab8e (patch)
treeeb431863fb4971fd7d0a77ba2d0c7593cb2ff5a2
parentd137b6bc7fd92274a7a94ef6cde371f7617e79de (diff)
downloadpango-25dc165392f311e1c4d65496acaa8aa1294eab8e.tar.gz
layout: Rename line-spacing to line-height
This matches better with the CSS terminology, and reduces the clash with the spacing property that is about to come back. Update all callers.
-rw-r--r--pango/pango-layout.c63
-rw-r--r--pango/pango-layout.h6
-rw-r--r--pango/serializer.c12
-rw-r--r--tests/testserialize.c4
-rw-r--r--utils/viewer-render.c2
5 files changed, 46 insertions, 41 deletions
diff --git a/pango/pango-layout.c b/pango/pango-layout.c
index 4d33bb83..9a190a88 100644
--- a/pango/pango-layout.c
+++ b/pango/pango-layout.c
@@ -19,7 +19,7 @@ struct _PangoLayout
int length;
PangoAttrList *attrs;
PangoFontDescription *font_desc;
- float line_spacing;
+ float line_height;
int width;
int height;
PangoTabArray *tabs;
@@ -46,7 +46,7 @@ enum
PROP_TEXT,
PROP_ATTRIBUTES,
PROP_FONT_DESCRIPTION,
- PROP_LINE_SPACING,
+ PROP_LINE_HEIGHT,
PROP_WIDTH,
PROP_HEIGHT,
PROP_TABS,
@@ -74,7 +74,7 @@ pango_layout_init (PangoLayout *layout)
layout->wrap = PANGO_WRAP_WORD;
layout->alignment = PANGO_ALIGN_NATURAL;
layout->ellipsize = PANGO_ELLIPSIZE_NONE;
- layout->line_spacing = 0.0;
+ layout->line_height = 0.0;
layout->auto_dir = TRUE;
layout->text = g_strdup ("");
layout->length = 0;
@@ -122,8 +122,8 @@ pango_layout_set_property (GObject *object,
pango_layout_set_font_description (layout, g_value_get_boxed (value));
break;
- case PROP_LINE_SPACING:
- pango_layout_set_line_spacing (layout, g_value_get_float (value));
+ case PROP_LINE_HEIGHT:
+ pango_layout_set_line_height (layout, g_value_get_float (value));
break;
case PROP_WIDTH:
@@ -194,8 +194,8 @@ pango_layout_get_property (GObject *object,
g_value_set_boxed (value, layout->font_desc);
break;
- case PROP_LINE_SPACING:
- g_value_set_float (value, layout->line_spacing);
+ case PROP_LINE_HEIGHT:
+ g_value_set_float (value, layout->line_height);
break;
case PROP_WIDTH:
@@ -292,13 +292,18 @@ pango_layout_class_init (PangoLayoutClass *class)
G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
- * PangoLayout:line-spacing: (attributes org.gtk.Property.get=pango_layout_get_line_spacing org.gtk.Property.set=pango_layout_set_line_spacing)
+ * PangoLayout:line-height: (attributes org.gtk.Property.get=pango_layout_get_line_height org.gtk.Property.set=pango_layout_set_line_height)
*
- * The line spacing factor of the `PangoLayout`.
+ * The line height factor of the `PangoLayout`.
+ *
+ * If non-zero, the line height is multiplied by this factor to determine
+ * the logical extents of the text.
+ *
+ * The default value is 0.
*/
- props[PROP_LINE_SPACING] = g_param_spec_float ("line-spacing", "line-spacing", "line-spacing",
- 0., G_MAXFLOAT, 0.,
- G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+ props[PROP_LINE_HEIGHT] = g_param_spec_float ("line-height", "line-height", "line-height",
+ 0., G_MAXFLOAT, 0.,
+ 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)
@@ -501,11 +506,11 @@ get_effective_attributes (PangoLayout *layout)
pango_attr_font_desc_new (layout->font_desc));
}
- if (layout->line_spacing != 0.0)
+ if (layout->line_height != 0.0)
{
attrs = ensure_attrs (layout, attrs);
pango_attr_list_insert_before (attrs,
- pango_attr_line_height_new (layout->line_spacing));
+ pango_attr_line_height_new (layout->line_height));
}
if (layout->single_paragraph)
@@ -748,7 +753,7 @@ pango_layout_copy (PangoLayout *layout)
copy->attrs = pango_attr_list_copy (layout->attrs);
if (layout->font_desc)
copy->font_desc = pango_font_description_copy (layout->font_desc);
- copy->line_spacing = layout->line_spacing;
+ copy->line_height = layout->line_height;
copy->width = layout->width;
copy->height = layout->height;
if (layout->tabs)
@@ -965,15 +970,15 @@ pango_layout_get_font_description (PangoLayout *layout)
}
/**
- * pango_layout_set_line_spacing:
+ * pango_layout_set_line_height:
* @layout: a `PangoLayout`
- * @line_spacing: the new line spacing factor
+ * @line_height: the new line height factor
*
- * Sets a factor for line spacing.
+ * Sets a factor for line height.
*
* Typical values are: 0, 1, 1.5, 2. The default values is 0.
*
- * If @line_spacing is non-zero, lines are placed so that
+ * If @line_height is non-zero, lines are placed so that
*
* baseline2 = baseline1 + factor * height2
*
@@ -983,34 +988,34 @@ pango_layout_get_font_description (PangoLayout *layout)
* This method is a shorthand for adding a line-height attribute.
*/
void
-pango_layout_set_line_spacing (PangoLayout *layout,
- float line_spacing)
+pango_layout_set_line_height (PangoLayout *layout,
+ float line_height)
{
g_return_if_fail (PANGO_IS_LAYOUT (layout));
- if (layout->line_spacing == line_spacing)
+ if (layout->line_height == line_height)
return;
- layout->line_spacing = line_spacing;
+ layout->line_height = line_height;
- g_object_notify_by_pspec (G_OBJECT (layout), props[PROP_LINE_SPACING]);
+ g_object_notify_by_pspec (G_OBJECT (layout), props[PROP_LINE_HEIGHT]);
layout_changed (layout);
}
/**
- * pango_layout_get_line_spacing:
+ * pango_layout_get_line_height:
* @layout: a `PangoLayout`
*
- * Gets the line spacing factor of @layout.
+ * Gets the line height factor of @layout.
*
- * See [method@Pango.Layout.set_line_spacing].
+ * See [method@Pango.Layout.set_line_height].
*/
float
-pango_layout_get_line_spacing (PangoLayout *layout)
+pango_layout_get_line_height (PangoLayout *layout)
{
g_return_val_if_fail (PANGO_IS_LAYOUT (layout), 0.0);
- return layout->line_spacing;
+ return layout->line_height;
}
/**
diff --git a/pango/pango-layout.h b/pango/pango-layout.h
index 1a5d5d41..6e939984 100644
--- a/pango/pango-layout.h
+++ b/pango/pango-layout.h
@@ -62,12 +62,12 @@ const PangoFontDescription *
(PangoLayout *layout);
PANGO_AVAILABLE_IN_ALL
-void pango_layout_set_line_spacing
+void pango_layout_set_line_height
(PangoLayout *layout,
- float line_spacing);
+ float line_height);
PANGO_AVAILABLE_IN_ALL
-float pango_layout_get_line_spacing
+float pango_layout_get_line_height
(PangoLayout *layout);
PANGO_AVAILABLE_IN_ALL
diff --git a/pango/serializer.c b/pango/serializer.c
index 3dd55368..0cdc77ed 100644
--- a/pango/serializer.c
+++ b/pango/serializer.c
@@ -831,8 +831,8 @@ layout_to_json (GtkJsonPrinter *printer,
if (pango_layout_get_indent (layout) != 0)
gtk_json_printer_add_integer (printer, "indent", pango_layout_get_indent (layout));
- if (pango_layout_get_line_spacing (layout) != 0.)
- gtk_json_printer_add_number (printer, "line-spacing", pango_layout_get_line_spacing (layout));
+ if (pango_layout_get_line_height (layout) != 0.)
+ gtk_json_printer_add_number (printer, "line-height", pango_layout_get_line_height (layout));
if (flags & PANGO_LAYOUT_SERIALIZE_OUTPUT)
{
@@ -1406,7 +1406,7 @@ enum {
LAYOUT_WIDTH,
LAYOUT_HEIGHT,
LAYOUT_INDENT,
- LAYOUT_LINE_SPACING,
+ LAYOUT_LINE_HEIGHT,
LAYOUT_LINES
};
@@ -1424,7 +1424,7 @@ static const char *layout_members[] = {
"width",
"height",
"indent",
- "line-spacing",
+ "line-height",
"lines",
NULL
};
@@ -1479,8 +1479,8 @@ json_parser_fill_layout (GtkJsonParser *parser,
pango_layout_set_auto_dir (layout, gtk_json_parser_get_boolean (parser));
break;
- case LAYOUT_LINE_SPACING:
- pango_layout_set_line_spacing (layout, gtk_json_parser_get_number (parser));
+ case LAYOUT_LINE_HEIGHT:
+ pango_layout_set_line_height (layout, gtk_json_parser_get_number (parser));
break;
case LAYOUT_TABS:
diff --git a/tests/testserialize.c b/tests/testserialize.c
index dabcf798..c19521f0 100644
--- a/tests/testserialize.c
+++ b/tests/testserialize.c
@@ -267,7 +267,7 @@ test_serialize_layout_valid (void)
" },\n"
" \"alignment\" : \"center\",\n"
" \"width\" : 350000,\n"
- " \"line-spacing\" : 1.5\n"
+ " \"line-height\" : 1.5\n"
"}\n";
PangoContext *context;
@@ -292,7 +292,7 @@ test_serialize_layout_valid (void)
g_free (s);
g_assert_cmpint (pango_layout_get_alignment (layout), ==, PANGO_ALIGN_CENTER);
g_assert_cmpint (pango_layout_get_width (layout), ==, 350000);
- g_assert_cmpfloat_with_epsilon (pango_layout_get_line_spacing (layout), 1.5, 0.0001);
+ g_assert_cmpfloat_with_epsilon (pango_layout_get_line_height (layout), 1.5, 0.0001);
out_bytes = pango_layout_serialize (layout, PANGO_LAYOUT_SERIALIZE_DEFAULT);
diff --git a/utils/viewer-render.c b/utils/viewer-render.c
index e85c0d6c..d75a886a 100644
--- a/utils/viewer-render.c
+++ b/utils/viewer-render.c
@@ -162,7 +162,7 @@ make_layout(PangoContext *context,
}
if (opt_line_spacing >= 0.0)
- pango_layout_set_line_spacing (layout, (float)opt_line_spacing);
+ pango_layout_set_line_height (layout, (float)opt_line_spacing);
align = opt_align;
if (align != PANGO_ALIGN_CENTER &&