[gtk/constraint-guide-2: 3/6] Give guides max-width/height



commit 376b5b326eaf009242f39d838d661b87d3f19fce
Author: Matthias Clasen <mclasen redhat com>
Date:   Thu Jun 27 19:13:38 2019 +0000

    Give guides max-width/height

 gtk/gtkconstraintlayout.c | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)
---
diff --git a/gtk/gtkconstraintlayout.c b/gtk/gtkconstraintlayout.c
index 82e11b30ba..f928cb8c16 100644
--- a/gtk/gtkconstraintlayout.c
+++ b/gtk/gtkconstraintlayout.c
@@ -94,6 +94,8 @@ typedef enum {
   GUIDE_MIN_HEIGHT,
   GUIDE_NAT_WIDTH,
   GUIDE_NAT_HEIGHT,
+  GUIDE_MAX_WIDTH,
+  GUIDE_MAX_HEIGHT,
   LAST_GUIDE_VALUE
 } GuideValue;
 
@@ -1250,6 +1252,8 @@ enum {
   GUIDE_PROP_MIN_HEIGHT,
   GUIDE_PROP_NAT_WIDTH,
   GUIDE_PROP_NAT_HEIGHT,
+  GUIDE_PROP_MAX_WIDTH,
+  GUIDE_PROP_MAX_HEIGHT,
   LAST_GUIDE_PROP
 };
 
@@ -1279,18 +1283,24 @@ gtk_constraint_guide_update (GtkConstraintGuide *guide,
     GTK_CONSTRAINT_ATTRIBUTE_HEIGHT,
     GTK_CONSTRAINT_ATTRIBUTE_WIDTH,
     GTK_CONSTRAINT_ATTRIBUTE_HEIGHT,
+    GTK_CONSTRAINT_ATTRIBUTE_WIDTH,
+    GTK_CONSTRAINT_ATTRIBUTE_HEIGHT,
   };
   int relation[LAST_GUIDE_VALUE] = {
     GTK_CONSTRAINT_RELATION_GE,
     GTK_CONSTRAINT_RELATION_GE,
     GTK_CONSTRAINT_RELATION_EQ,
     GTK_CONSTRAINT_RELATION_EQ,
+    GTK_CONSTRAINT_RELATION_LE,
+    GTK_CONSTRAINT_RELATION_LE,
   };
   double weight[LAST_GUIDE_VALUE] = {
     GTK_CONSTRAINT_WEIGHT_REQUIRED,
     GTK_CONSTRAINT_WEIGHT_REQUIRED,
     GTK_CONSTRAINT_WEIGHT_MEDIUM,
     GTK_CONSTRAINT_WEIGHT_MEDIUM,
+    GTK_CONSTRAINT_WEIGHT_REQUIRED,
+    GTK_CONSTRAINT_WEIGHT_REQUIRED,
   };
 
   if (!guide->layout)
@@ -1351,6 +1361,8 @@ gtk_constraint_guide_set_property (GObject      *gobject,
     case GUIDE_PROP_MIN_HEIGHT:
     case GUIDE_PROP_NAT_WIDTH:
     case GUIDE_PROP_NAT_HEIGHT:
+    case GUIDE_PROP_MAX_WIDTH:
+    case GUIDE_PROP_MAX_HEIGHT:
       val = g_value_get_int (value);
       index = prop_id - 1;
       if (self->values[index] != val)
@@ -1381,6 +1393,8 @@ gtk_constraint_guide_get_property (GObject    *gobject,
     case GUIDE_PROP_MIN_HEIGHT:
     case GUIDE_PROP_NAT_WIDTH:
     case GUIDE_PROP_NAT_HEIGHT:
+    case GUIDE_PROP_MAX_WIDTH:
+    case GUIDE_PROP_MAX_HEIGHT:
       g_value_set_int (value, self->values[prop_id - 1]);
       break;
 
@@ -1442,6 +1456,20 @@ gtk_constraint_guide_class_init (GtkConstraintGuideClass *class)
                         0, G_MAXINT, 0,
                         G_PARAM_READWRITE|
                         G_PARAM_EXPLICIT_NOTIFY);
+  guide_props[GUIDE_PROP_MAX_WIDTH] =
+      g_param_spec_int ("max-width",
+                        "Maximum width",
+                        "Maximum width",
+                        0, G_MAXINT, G_MAXINT,
+                        G_PARAM_READWRITE|
+                        G_PARAM_EXPLICIT_NOTIFY);
+  guide_props[GUIDE_PROP_MAX_HEIGHT] =
+      g_param_spec_int ("max-height",
+                        "Maximum height",
+                        "Maximum height",
+                        0, G_MAXINT, G_MAXINT,
+                        G_PARAM_READWRITE|
+                        G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_install_properties (object_class, LAST_GUIDE_PROP, guide_props);
 }


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