[glade] * gladeui/glade-design-layout.c: allocate all the remaining space to child, this fixes some al
- From: Juan Pablo Ugarte <jpu src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glade] * gladeui/glade-design-layout.c: allocate all the remaining space to child, this fixes some al
- Date: Wed, 2 Feb 2011 22:12:59 +0000 (UTC)
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]