Prepare for size_request removal in GTK3
https://bugzilla.gnome.org/show_bug.cgi?id=633321
This commit is contained in:
parent
55a02383f2
commit
f5f5aac5c0
3 changed files with 61 additions and 39 deletions
|
@ -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);
|
|
||||||
|
|
||||||
requisition->width = child_requisition.width;
|
|
||||||
requisition->height = child_requisition.height;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
border_width = gtk_container_get_border_width (GTK_CONTAINER (widget));
|
static void
|
||||||
requisition->width += 2 * border_width;
|
cc_panel_get_preferred_height (GtkWidget *widget,
|
||||||
requisition->height += 2 * border_width;
|
gint *minimum,
|
||||||
|
gint *natural)
|
||||||
|
{
|
||||||
|
GtkBin *bin = GTK_BIN (widget);
|
||||||
|
GtkWidget *child;
|
||||||
|
|
||||||
|
*minimum = *natural = 0;
|
||||||
|
|
||||||
|
if ((child = gtk_bin_get_child (bin)))
|
||||||
|
gtk_widget_get_preferred_height (child, minimum, natural);
|
||||||
}
|
}
|
||||||
|
|
||||||
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",
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue