Prepare for size_request removal in GTK3

https://bugzilla.gnome.org/show_bug.cgi?id=633321
This commit is contained in:
Matthias Clasen 2010-11-08 14:07:47 +01:00 committed by Rodrigo Moya
parent 55a02383f2
commit f5f5aac5c0
3 changed files with 61 additions and 39 deletions

View file

@ -124,26 +124,31 @@ cc_panel_finalize (GObject *object)
} }
static void static void
cc_panel_size_request (GtkWidget *widget, cc_panel_get_preferred_width (GtkWidget *widget,
GtkRequisition *requisition) gint *minimum,
gint *natural)
{ {
GtkBin *bin = GTK_BIN (widget); GtkBin *bin = GTK_BIN (widget);
GtkWidget *child; GtkWidget *child;
guint border_width;
*minimum = *natural = 0;
if ((child = gtk_bin_get_child (bin))) if ((child = gtk_bin_get_child (bin)))
{ gtk_widget_get_preferred_width (child, minimum, natural);
GtkRequisition child_requisition; }
gtk_widget_size_request (child, &child_requisition); static void
cc_panel_get_preferred_height (GtkWidget *widget,
gint *minimum,
gint *natural)
{
GtkBin *bin = GTK_BIN (widget);
GtkWidget *child;
requisition->width = child_requisition.width; *minimum = *natural = 0;
requisition->height = child_requisition.height;
}
border_width = gtk_container_get_border_width (GTK_CONTAINER (widget)); if ((child = gtk_bin_get_child (bin)))
requisition->width += 2 * border_width; gtk_widget_get_preferred_height (child, minimum, natural);
requisition->height += 2 * border_width;
} }
static void static void
@ -151,18 +156,11 @@ cc_panel_size_allocate (GtkWidget *widget,
GtkAllocation *allocation) GtkAllocation *allocation)
{ {
GtkAllocation child_allocation; GtkAllocation child_allocation;
guint border_width;
gtk_widget_set_allocation (widget, allocation); gtk_widget_set_allocation (widget, allocation);
child_allocation = *allocation; child_allocation = *allocation;
border_width = gtk_container_get_border_width (GTK_CONTAINER (widget));
child_allocation.width -= 2 * border_width;
child_allocation.height -= 2 * border_width;
gtk_widget_size_allocate (gtk_bin_get_child (GTK_BIN (widget)), gtk_widget_size_allocate (gtk_bin_get_child (GTK_BIN (widget)),
&child_allocation); &child_allocation);
} }
@ -178,9 +176,12 @@ cc_panel_class_init (CcPanelClass *klass)
object_class->set_property = cc_panel_set_property; object_class->set_property = cc_panel_set_property;
object_class->finalize = cc_panel_finalize; object_class->finalize = cc_panel_finalize;
widget_class->size_request = cc_panel_size_request; widget_class->get_preferred_width = cc_panel_get_preferred_width;
widget_class->get_preferred_height = cc_panel_get_preferred_height;
widget_class->size_allocate = cc_panel_size_allocate; widget_class->size_allocate = cc_panel_size_allocate;
gtk_container_class_handle_border_width (GTK_CONTAINER_CLASS (klass));
g_type_class_add_private (klass, sizeof (CcPanelPrivate)); g_type_class_add_private (klass, sizeof (CcPanelPrivate));
pspec = g_param_spec_object ("shell", pspec = g_param_spec_object ("shell",

View file

@ -189,17 +189,26 @@ cc_timezone_map_finalize (GObject *object)
/* GtkWidget functions */ /* GtkWidget functions */
static void static void
cc_timezone_map_size_request (GtkWidget *widget, cc_timezone_map_get_preferred_width (GtkWidget *widget,
GtkRequisition *req) gint *minimum,
gint *natural)
{ {
CcTimezoneMapPrivate *priv = CC_TIMEZONE_MAP (widget)->priv; CcTimezoneMapPrivate *priv = CC_TIMEZONE_MAP (widget)->priv;
GTK_WIDGET_CLASS (cc_timezone_map_parent_class)->size_request (widget, req); /* FIXME: should natural == full pixmap size ? */
*minimum = *natural = gdk_pixbuf_get_width (priv->orig_background) * 0.6;
req->width = gdk_pixbuf_get_width (priv->orig_background) * 0.6;
req->height = gdk_pixbuf_get_height (priv->orig_background) * 0.6;
} }
static void
cc_timezone_map_get_preferred_height (GtkWidget *widget,
gint *minimum,
gint *natural)
{
CcTimezoneMapPrivate *priv = CC_TIMEZONE_MAP (widget)->priv;
/* FIXME: should natural == full pixmap size ? */
*minimum = *natural = gdk_pixbuf_get_height (priv->orig_background) * 0.6;
}
static void static void
cc_timezone_map_size_allocate (GtkWidget *widget, cc_timezone_map_size_allocate (GtkWidget *widget,
GtkAllocation *allocation) GtkAllocation *allocation)
@ -392,7 +401,8 @@ cc_timezone_map_class_init (CcTimezoneMapClass *klass)
object_class->dispose = cc_timezone_map_dispose; object_class->dispose = cc_timezone_map_dispose;
object_class->finalize = cc_timezone_map_finalize; object_class->finalize = cc_timezone_map_finalize;
widget_class->size_request = cc_timezone_map_size_request; widget_class->get_preferred_width = cc_timezone_map_get_preferred_width;
widget_class->get_preferred_height = cc_timezone_map_get_preferred_height;
widget_class->size_allocate = cc_timezone_map_size_allocate; widget_class->size_allocate = cc_timezone_map_size_allocate;
widget_class->realize = cc_timezone_map_realize; widget_class->realize = cc_timezone_map_realize;
widget_class->draw = cc_timezone_map_draw; widget_class->draw = cc_timezone_map_draw;

View file

@ -117,10 +117,14 @@ enum {
static guint signals [LAST_SIGNAL] = { 0 }; static guint signals [LAST_SIGNAL] = { 0 };
static void foo_scroll_area_size_request (GtkWidget *widget,
GtkRequisition *requisition);
static gboolean foo_scroll_area_draw (GtkWidget *widget, static gboolean foo_scroll_area_draw (GtkWidget *widget,
cairo_t *cr); cairo_t *cr);
static void foo_scroll_area_get_preferred_width (GtkWidget *widget,
gint *minimum,
gint *natural);
static void foo_scroll_area_get_preferred_height (GtkWidget *widget,
gint *minimum,
gint *natural);
static void foo_scroll_area_size_allocate (GtkWidget *widget, static void foo_scroll_area_size_allocate (GtkWidget *widget,
GtkAllocation *allocation); GtkAllocation *allocation);
static void foo_scroll_area_set_hadjustment (FooScrollArea *scroll_area, static void foo_scroll_area_set_hadjustment (FooScrollArea *scroll_area,
@ -224,7 +228,8 @@ foo_scroll_area_class_init (FooScrollAreaClass *class)
object_class->set_property = foo_scroll_area_set_property; object_class->set_property = foo_scroll_area_set_property;
object_class->get_property = foo_scroll_area_get_property; object_class->get_property = foo_scroll_area_get_property;
widget_class->size_request = foo_scroll_area_size_request; widget_class->get_preferred_width = foo_scroll_area_get_preferred_width;
widget_class->get_preferred_height = foo_scroll_area_get_preferred_height;
widget_class->draw = foo_scroll_area_draw; widget_class->draw = foo_scroll_area_draw;
widget_class->size_allocate = foo_scroll_area_size_allocate; widget_class->size_allocate = foo_scroll_area_size_allocate;
widget_class->realize = foo_scroll_area_realize; widget_class->realize = foo_scroll_area_realize;
@ -944,17 +949,23 @@ foo_scroll_area_set_size (FooScrollArea *scroll_area,
} }
static void static void
foo_scroll_area_size_request (GtkWidget *widget, foo_scroll_area_get_preferred_width (GtkWidget *widget,
GtkRequisition *requisition) gint *minimum,
gint *natural)
{ {
FooScrollArea *scroll_area = FOO_SCROLL_AREA (widget); FooScrollArea *scroll_area = FOO_SCROLL_AREA (widget);
requisition->width = scroll_area->priv->min_width; *minimum = *natural = scroll_area->priv->min_width;
requisition->height = scroll_area->priv->min_height; }
#if 0 static void
g_print ("request %d %d\n", requisition->width, requisition->height); foo_scroll_area_get_preferred_height (GtkWidget *widget,
#endif gint *minimum,
gint *natural)
{
FooScrollArea *scroll_area = FOO_SCROLL_AREA (widget);
*minimum = *natural = scroll_area->priv->min_height;
} }
static void static void