[gtk/css-line-height2: 2/8] Handle the new line height pango attribute




commit b5abe747e64cbfbaa3bcd2200e9d61867da41fd4
Author: Matthias Clasen <mclasen redhat com>
Date:   Sat Aug 7 12:11:29 2021 -0400

    Handle the new line height pango attribute
    
    Update all the places where we switch over
    PangoAttributeType to handle the new line
    height attribute.

 demos/gtk-demo/fontify.c | 5 +++++
 gtk/gtkpango.c           | 8 ++++++++
 gtk/gtktextbuffer.c      | 8 ++++++++
 testsuite/gtk/label.c    | 2 ++
 4 files changed, 23 insertions(+)
---
diff --git a/demos/gtk-demo/fontify.c b/demos/gtk-demo/fontify.c
index 62bc34b803..f66ab17484 100644
--- a/demos/gtk-demo/fontify.c
+++ b/demos/gtk-demo/fontify.c
@@ -255,6 +255,11 @@ insert_tags_for_attributes (GtkTextBuffer     *buffer,
           INT_ATTR (insert_hyphens);
           break;
 
+        case PANGO_ATTR_LINE_HEIGHT:
+          FLOAT_ATTR (line_height);
+          break;
+
+        case PANGO_ATTR_ABSOLUTE_LINE_HEIGHT:
         case PANGO_ATTR_SHAPE:
         case PANGO_ATTR_ABSOLUTE_SIZE:
         case PANGO_ATTR_GRAVITY:
diff --git a/gtk/gtkpango.c b/gtk/gtkpango.c
index 8a176b56aa..1a87d2c165 100644
--- a/gtk/gtkpango.c
+++ b/gtk/gtkpango.c
@@ -249,6 +249,14 @@ attribute_from_text (GtkBuilder  *builder,
                                                      color->blue * 65535);
         }
       break;
+    case PANGO_ATTR_LINE_HEIGHT:
+      if (gtk_builder_value_from_string_type (builder, G_TYPE_DOUBLE, value, &val, error))
+        attribute = pango_attr_line_height_new (g_value_get_double (&val));
+      break;
+    case PANGO_ATTR_ABSOLUTE_LINE_HEIGHT:
+      if (gtk_builder_value_from_string_type (builder, G_TYPE_INT, value, &val, error))
+        attribute = pango_attr_line_height_new_absolute (g_value_get_int (&val) * PANGO_SCALE);
+      break;
     case PANGO_ATTR_INVALID:
     default:
       break;
diff --git a/gtk/gtktextbuffer.c b/gtk/gtktextbuffer.c
index 5d550e5372..13b8a403a3 100644
--- a/gtk/gtktextbuffer.c
+++ b/gtk/gtktextbuffer.c
@@ -4689,6 +4689,14 @@ insert_tags_for_attributes (GtkTextBuffer     *buffer,
           INT_ATTR (letter_spacing);
           break;
 
+        case PANGO_ATTR_LINE_HEIGHT:
+          FLOAT_ATTR (line_height);
+          break;
+
+        case PANGO_ATTR_ABSOLUTE_LINE_HEIGHT:
+          INT_ATTR (line_height);
+          break;
+
         case PANGO_ATTR_FONT_FEATURES:
           STRING_ATTR (font_features);
           break;
diff --git a/testsuite/gtk/label.c b/testsuite/gtk/label.c
index e220432aac..ba1dc5df19 100644
--- a/testsuite/gtk/label.c
+++ b/testsuite/gtk/label.c
@@ -41,6 +41,7 @@ print_attribute (PangoAttribute *attr, GString *string)
     case PANGO_ATTR_ALLOW_BREAKS:
     case PANGO_ATTR_INSERT_HYPHENS:
     case PANGO_ATTR_SHOW:
+    case PANGO_ATTR_ABSOLUTE_LINE_HEIGHT:
       g_string_append_printf (string, "%d", ((PangoAttrInt *)attr)->value);
       break;
     case PANGO_ATTR_FONT_DESC:
@@ -65,6 +66,7 @@ print_attribute (PangoAttribute *attr, GString *string)
       g_string_append_printf (string, "shape");
       break;
     case PANGO_ATTR_SCALE:
+    case PANGO_ATTR_LINE_HEIGHT:
       {
         char val[20];
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]