[gtk+/extended-layout-jhs: 26/64] Properly report feature set and consider baseline_policy when evaluating



commit d4c505fa9f881f96021a0406b46663fe37a0c6d0
Author: Mathias Hasselmann <mathias hasselmann gmx de>
Date:   Sun Jul 1 21:12:07 2007 +0000

    Properly report feature set and consider baseline_policy when evaluating
    
    2007-07-01  Mathias Hasselmann  <mathias hasselmann gmx de>
    
    	* gtk/gtkhbox.c: Properly report feature set and consider
    	baseline_policy when evaluating the baseline of the box.
    	* gtk/gtklabel.c: Adjust the coding style of get_features
    	to match the style of GtkHBox.
    
    svn path=/branches/extended-layout/; revision=18327

 ChangeLog.gtk-extended-layout |    7 ++++++
 gtk/gtkhbox.c                 |   46 ++++++++++++++++-------------------------
 gtk/gtklabel.c                |   13 +++++------
 3 files changed, 31 insertions(+), 35 deletions(-)
---
diff --git a/ChangeLog.gtk-extended-layout b/ChangeLog.gtk-extended-layout
index fc29b68..abaf707 100644
--- a/ChangeLog.gtk-extended-layout
+++ b/ChangeLog.gtk-extended-layout
@@ -1,5 +1,12 @@
 2007-07-01  Mathias Hasselmann  <mathias hasselmann gmx de>
 
+	* gtk/gtkhbox.c: Properly report feature set and consider
+	baseline_policy when evaluating the baseline of the box.
+	* gtk/gtklabel.c: Adjust the coding style of get_features
+	to match the style of GtkHBox.
+
+2007-07-01  Mathias Hasselmann  <mathias hasselmann gmx de>
+
 	* gtk/gtkhbox.c: Make baseline alignment work, by ignoring the uniform
 	height constraint a GtkHBox implies. TODO: Obey that constraint.
 
diff --git a/gtk/gtkhbox.c b/gtk/gtkhbox.c
index 9540f48..a0b32d3 100644
--- a/gtk/gtkhbox.c
+++ b/gtk/gtkhbox.c
@@ -161,24 +161,6 @@ gtk_hbox_get_property (GObject    *object,
     }
 }
 
-static gboolean
-debug_wanted (GtkWidget *widget)
-{
-  gpointer ptr;
-
-  while (widget)
-    {
-      ptr = g_object_get_data (G_OBJECT (widget), "debug-wanted");
-
-      if (GPOINTER_TO_INT (ptr))
-        return TRUE;
-
-      widget = gtk_widget_get_parent (widget);
-    }
-
-  return FALSE;
-}
-
 static void
 gtk_hbox_size_request (GtkWidget      *widget,
 		       GtkRequisition *requisition)
@@ -260,11 +242,6 @@ gtk_hbox_size_request (GtkWidget      *widget,
                   requisition->width += child_requisition.width + child->padding * 2;
                 }
 
-if (debug_wanted (child->widget))
-  g_debug("%s[%d:%s]: baseline=%d (%d)", 
-    gtk_widget_get_name (widget), i_child, G_OBJECT_TYPE_NAME (child->widget),
-    priv->baselines[i_child], priv->effective_baseline);
-
               child_requisition.height += MAX (0, (priv->effective_baseline - priv->baselines[i_child]));
               requisition->height = MAX (requisition->height, child_requisition.height);
 
@@ -481,9 +458,16 @@ gtk_hbox_set_baseline_policy (GtkHBox           *hbox,
 static GtkExtendedLayoutFeatures
 gtk_hbox_extended_layout_get_features (GtkExtendedLayout *layout)
 {
-  return 
-    GTK_EXTENDED_LAYOUT_NATURAL_SIZE |
-    GTK_EXTENDED_LAYOUT_BASELINES;
+  GtkExtendedLayoutFeatures features;
+  GtkHBoxPrivate *priv;
+
+  features = GTK_EXTENDED_LAYOUT_NATURAL_SIZE;
+  priv = GTK_HBOX_GET_PRIVATE (layout);
+
+  if (GTK_BASELINE_NONE != priv->baseline_policy)
+    features |= GTK_EXTENDED_LAYOUT_BASELINES;
+  
+  return features;
 }
 
 static void
@@ -524,7 +508,8 @@ static gint
 gtk_hbox_extended_layout_get_baselines (GtkExtendedLayout  *layout,
                                         gint              **baselines)
 {
-  GtkBox *box = GTK_BOX (layout);
+  GtkHBoxPrivate *priv;
+  GtkBox *box;
 
   gint hbox_baseline = 0;
   gint child_baseline;
@@ -532,6 +517,11 @@ gtk_hbox_extended_layout_get_baselines (GtkExtendedLayout  *layout,
   GtkBoxChild *child;
   GList *children;
 
+  priv = GTK_HBOX_GET_PRIVATE (layout);
+
+  g_return_val_if_fail (GTK_BASELINE_NONE != priv->baseline_policy, -1);
+
+  box = GTK_BOX (layout);
   children = box->children;
 
   while (children)
@@ -544,7 +534,7 @@ gtk_hbox_extended_layout_get_baselines (GtkExtendedLayout  *layout,
           GTK_EXTENDED_LAYOUT_HAS_BASELINES (child->widget))
         {
           child_baseline = gtk_extended_layout_get_single_baseline (
-            GTK_EXTENDED_LAYOUT (child->widget), GTK_BASELINE_FIRST);
+            GTK_EXTENDED_LAYOUT (child->widget), priv->baseline_policy);
           hbox_baseline = MAX (hbox_baseline, child_baseline);
         }
     }
diff --git a/gtk/gtklabel.c b/gtk/gtklabel.c
index f7f0d75..45e3465 100644
--- a/gtk/gtklabel.c
+++ b/gtk/gtklabel.c
@@ -4230,19 +4230,18 @@ gtk_label_do_popup (GtkLabel       *label,
 static GtkExtendedLayoutFeatures
 gtk_label_extended_layout_get_features (GtkExtendedLayout *layout)
 {
+  GtkExtendedLayoutFeatures features;
   GtkLabel *label;
 
+  features =
+    GTK_EXTENDED_LAYOUT_NATURAL_SIZE |
+    GTK_EXTENDED_LAYOUT_BASELINES;
   label = GTK_LABEL (layout);
 
   if (label->wrap)
-    return
-      GTK_EXTENDED_LAYOUT_HEIGHT_FOR_WIDTH |
-      GTK_EXTENDED_LAYOUT_NATURAL_SIZE |
-      GTK_EXTENDED_LAYOUT_BASELINES;
+    features |= GTK_EXTENDED_LAYOUT_HEIGHT_FOR_WIDTH;
 
-  return 
-    GTK_EXTENDED_LAYOUT_NATURAL_SIZE |
-    GTK_EXTENDED_LAYOUT_BASELINES;
+  return features;
 }
 
 static gint



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