[glade] * gladeui/glade-design-layout.c: allocate all the remaining space to child, this fixes some al



commit 8b3317919cee6e89cd9fc1e8d777a98e146ee6fd
Author: Juan Pablo Ugarte <juanpablougarte gmail com>
Date:   Wed Feb 2 19:00:55 2011 -0300

      * gladeui/glade-design-layout.c:
        allocate all the remaining space to child, this fixes some allocation issues
        on widget where gtk_widget_get_preferred_height() value is different than
        the one returned by gtk_widget_get_preferred_size()
    
      * gladeui/glade-design-view.c: set layout halign property to GTK_ALIGN_START

 ChangeLog                     |    9 ++++++
 gladeui/glade-design-layout.c |   58 ++++++++++++++++------------------------
 gladeui/glade-design-view.c   |   37 +++++++++++++------------
 3 files changed, 51 insertions(+), 53 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index c9628be..c45e87f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2011-02-02  Juan Pablo Ugarte <juanpablougarte gmail com>
+
+  * gladeui/glade-design-layout.c: 
+    allocate all the remaining space to child, this fixes some allocation issues
+    on widget where gtk_widget_get_preferred_height() value is different than
+    the one returned by gtk_widget_get_preferred_size()
+
+  * gladeui/glade-design-view.c: set layout halign property to GTK_ALIGN_START
+
 2011-02-01  Juan Pablo Ugarte <juanpablougarte gmail com>
 
   * gladeui/glade-design-layout.c: 
diff --git a/gladeui/glade-design-layout.c b/gladeui/glade-design-layout.c
index 18eb3ee..40fb9f6 100644
--- a/gladeui/glade-design-layout.c
+++ b/gladeui/glade-design-layout.c
@@ -361,7 +361,6 @@ glade_design_layout_get_preferred_height (GtkWidget *widget,
   priv = GLADE_DESIGN_LAYOUT_GET_PRIVATE (widget);
 
   *minimum = 0;
-  *natural = 0;
 
   child = gtk_bin_get_child (GTK_BIN (widget));
 
@@ -372,7 +371,7 @@ glade_design_layout_get_preferred_height (GtkWidget *widget,
       gchild = glade_widget_get_from_gobject (child);
       g_assert (gchild);
 
-      gtk_widget_get_preferred_height (child, minimum, natural);
+      gtk_widget_get_preferred_height (child, minimum, NULL);
 
       g_object_get (gchild, "toplevel-height", &child_height, NULL);
 
@@ -382,13 +381,13 @@ glade_design_layout_get_preferred_height (GtkWidget *widget,
         pango_layout_get_pixel_size (priv->widget_name, NULL, &height);
       else
         height = PADDING;
-      
-      *minimum = MAX (*minimum, PADDING + 2.5 * OUTLINE_WIDTH + child_height + height);
-      *natural = MAX (*natural, PADDING + 2.5 * OUTLINE_WIDTH + child_height + height);
+
+      *minimum = MAX (*minimum, PADDING + 2.5*OUTLINE_WIDTH + height + child_height);
     }
 
+  border_width = gtk_container_get_border_width (GTK_CONTAINER (widget));
   *minimum += border_width * 2;
-  *natural += border_width * 2;
+  *natural = *minimum;
 }
 
 static void
@@ -404,7 +403,6 @@ glade_design_layout_get_preferred_width (GtkWidget *widget,
   priv = GLADE_DESIGN_LAYOUT_GET_PRIVATE (widget);
 
   *minimum = 0;
-  *natural = 0;
 
   child = gtk_bin_get_child (GTK_BIN (widget));
 
@@ -413,19 +411,18 @@ glade_design_layout_get_preferred_width (GtkWidget *widget,
       gchild = glade_widget_get_from_gobject (child);
       g_assert (gchild);
 
-      gtk_widget_get_preferred_width (child, minimum, natural);
+      gtk_widget_get_preferred_width (child, minimum, NULL);
 
       g_object_get (gchild, "toplevel-width", &child_width, NULL);
 
       child_width = MAX (child_width, *minimum);
 
-      *minimum = MAX (*minimum, PADDING + child_width + 3 * OUTLINE_WIDTH);
-      *natural = MAX (*natural, PADDING + child_width + 3 * OUTLINE_WIDTH);
+      *minimum = MAX (*minimum, 2*PADDING + 2*OUTLINE_WIDTH + child_width);
     }
 
   border_width = gtk_container_get_border_width (GTK_CONTAINER (widget));
   *minimum += border_width * 2;
-  *natural += border_width * 2;
+  *natural = *minimum;
 }
 
 static void
@@ -465,36 +462,27 @@ glade_design_layout_size_allocate (GtkWidget *widget,
 
   if (child && gtk_widget_get_visible (child))
     {
-      gint child_width = 0, child_height = 0;
-      GladeDesignLayoutPrivate *priv;
-      GtkAllocation child_allocation;
-      GtkRequisition requisition;
-      GladeWidget *gchild;
-        
-      gchild = glade_widget_get_from_gobject (child);        
-      g_assert (gchild);
-
-      g_object_get (gchild,
-                    "toplevel-width", &child_width,
-                    "toplevel-height", &child_height, NULL);
-
-      priv = GLADE_DESIGN_LAYOUT_GET_PRIVATE (widget);
-
-      gtk_widget_get_preferred_size (child, &requisition, NULL);
+      GladeDesignLayoutPrivate *priv = GLADE_DESIGN_LAYOUT_GET_PRIVATE (widget);
+      GtkAllocation alloc;
+      gint height, offset;
 
-      priv->child_offset = gtk_container_get_border_width (GTK_CONTAINER (widget)) + PADDING + OUTLINE_WIDTH;
+      offset = gtk_container_get_border_width (GTK_CONTAINER (widget)) + PADDING + OUTLINE_WIDTH;
+      priv->child_offset = offset;
 
-      child_allocation.x = child_allocation.y = 0;
-      child_allocation.width = MAX (requisition.width, child_width);
-      child_allocation.height = MAX (requisition.height, child_height);
+      if (priv->widget_name)
+        pango_layout_get_pixel_size (priv->widget_name, NULL, &height);
+      else
+        height = PADDING;
+      
+      alloc.x = alloc.y = 0;
+      alloc.width = allocation->width - (offset * 2);
+      alloc.height = allocation->height - (offset + OUTLINE_WIDTH * 1.5 + height);
       
       if (gtk_widget_get_realized (widget))
         gdk_window_move_resize (priv->offscreen_window,
-                                0, 0,
-                                child_allocation.width,
-                                child_allocation.height);
+                                0, 0, alloc.width, alloc.height);
 
-      gtk_widget_size_allocate (child, &child_allocation);
+      gtk_widget_size_allocate (child, &alloc);
     }
 }
 
diff --git a/gladeui/glade-design-view.c b/gladeui/glade-design-view.c
index c20a1d7..1dc433a 100644
--- a/gladeui/glade-design-view.c
+++ b/gladeui/glade-design-view.c
@@ -71,24 +71,24 @@ static GtkVBoxClass *parent_class = NULL;
 G_DEFINE_TYPE (GladeDesignView, glade_design_view, GTK_TYPE_VBOX)
 
 static void
-glade_design_view_parse_began (GladeProject * project,
-			       GladeDesignView * view)
+glade_design_view_parse_began (GladeProject *project,
+			       GladeDesignView *view)
 {
   gtk_widget_hide (view->priv->scrolled_window);
   gtk_widget_show (view->priv->progress_window);
 }
 
 static void
-glade_design_view_parse_finished (GladeProject * project,
-                                  GladeDesignView * view)
+glade_design_view_parse_finished (GladeProject *project,
+                                  GladeDesignView *view)
 {
   gtk_widget_hide (view->priv->progress_window);
   gtk_widget_show (view->priv->scrolled_window);
 }
 
 static void
-glade_design_view_load_progress (GladeProject * project,
-                                 gint total, gint step, GladeDesignView * view)
+glade_design_view_load_progress (GladeProject *project,
+                                 gint total, gint step, GladeDesignView *view)
 {
   gchar *path;
   gchar *str;
@@ -180,7 +180,8 @@ glade_design_view_add_toplevel (GladeDesignView *view, GladeWidget *widget)
 
   /* Create a GladeDesignLayout and add the toplevel widget to the view */
   layout = _glade_design_layout_new (view);
-  gtk_box_pack_start (GTK_BOX (view->priv->layout_box), layout, FALSE, TRUE, 0);
+  gtk_widget_set_halign (layout, GTK_ALIGN_START);
+  gtk_box_pack_start (GTK_BOX (view->priv->layout_box), layout, FALSE, FALSE, 0);
 
   gtk_container_add (GTK_CONTAINER (layout), GTK_WIDGET (object));
   gtk_widget_show (GTK_WIDGET (object));
@@ -231,7 +232,7 @@ on_project_remove_widget (GladeProject *project, GladeWidget *widget, GladeDesig
 }
 
 static void
-glade_design_view_set_project (GladeDesignView * view, GladeProject * project)
+glade_design_view_set_project (GladeDesignView *view, GladeProject *project)
 {
   g_return_if_fail (GLADE_IS_PROJECT (project));
 
@@ -256,9 +257,9 @@ glade_design_view_set_project (GladeDesignView * view, GladeProject * project)
 }
 
 static void
-glade_design_view_set_property (GObject * object,
+glade_design_view_set_property (GObject *object,
                                 guint prop_id,
-                                const GValue * value, GParamSpec * pspec)
+                                const GValue *value, GParamSpec *pspec)
 {
   switch (prop_id)
     {
@@ -273,9 +274,9 @@ glade_design_view_set_property (GObject * object,
 }
 
 static void
-glade_design_view_get_property (GObject * object,
+glade_design_view_get_property (GObject *object,
                                 guint prop_id,
-                                GValue * value, GParamSpec * pspec)
+                                GValue *value, GParamSpec *pspec)
 {
   switch (prop_id)
     {
@@ -289,7 +290,7 @@ glade_design_view_get_property (GObject * object,
 }
 
 static gboolean
-on_viewport_draw (GtkWidget * widget, cairo_t * cr)
+on_viewport_draw (GtkWidget *widget, cairo_t *cr)
 {
   GtkStyle *style = gtk_widget_get_style (widget);
 
@@ -300,7 +301,7 @@ on_viewport_draw (GtkWidget * widget, cairo_t * cr)
 }
 
 static void
-glade_design_view_init (GladeDesignView * view)
+glade_design_view_init (GladeDesignView *view)
 {
   GtkWidget *viewport, *filler, *align;
 
@@ -366,7 +367,7 @@ glade_design_view_init (GladeDesignView * view)
 }
 
 static void
-glade_design_view_class_init (GladeDesignViewClass * klass)
+glade_design_view_class_init (GladeDesignViewClass *klass)
 {
   GObjectClass *object_class;
   GtkWidgetClass *widget_class;
@@ -415,7 +416,7 @@ _glade_design_view_thaw   (GladeDesignView *view)
 /* Public API */
 
 GladeProject *
-glade_design_view_get_project (GladeDesignView * view)
+glade_design_view_get_project (GladeDesignView *view)
 {
   g_return_val_if_fail (GLADE_IS_DESIGN_VIEW (view), NULL);
 
@@ -424,7 +425,7 @@ glade_design_view_get_project (GladeDesignView * view)
 }
 
 GtkWidget *
-glade_design_view_new (GladeProject * project)
+glade_design_view_new (GladeProject *project)
 {
   GladeDesignView *view;
 
@@ -436,7 +437,7 @@ glade_design_view_new (GladeProject * project)
 }
 
 GladeDesignView *
-glade_design_view_get_from_project (GladeProject * project)
+glade_design_view_get_from_project (GladeProject *project)
 {
   gpointer p;
 



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