[brasero] Fix #633375 - prepare for the demise of size_request Patch by Matthias Clasen
- From: Philippe Rouquier <philippr src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [brasero] Fix #633375 - prepare for the demise of size_request Patch by Matthias Clasen
- Date: Mon, 8 Nov 2010 18:54:38 +0000 (UTC)
commit 8c97ee72501bbebc1677ac1ff5b173cccf190c00
Author: Philippe Rouquier <bonfire-app wanadoo fr>
Date: Mon Nov 8 19:48:53 2010 +0100
Fix #633375 - prepare for the demise of size_request
Patch by Matthias Clasen
libbrasero-utils/brasero-jacket-view.c | 52 ++++++++++++++++++++++++++-----
src/brasero-player-bacon.c | 31 ++++++++++++++----
2 files changed, 67 insertions(+), 16 deletions(-)
---
diff --git a/libbrasero-utils/brasero-jacket-view.c b/libbrasero-utils/brasero-jacket-view.c
index 5a84b49..35de456 100644
--- a/libbrasero-utils/brasero-jacket-view.c
+++ b/libbrasero-utils/brasero-jacket-view.c
@@ -1280,12 +1280,14 @@ brasero_jacket_view_realize (GtkWidget *widget)
}
static void
-brasero_jacket_view_size_request (GtkWidget *widget,
- GtkRequisition *request)
+brasero_jacket_view_get_preferred_width (GtkWidget *widget,
+ gint *minimum,
+ gint *natural)
{
BraseroJacketViewPrivate *priv;
GtkWidget *toplevel;
gdouble resolution;
+ gint width;
priv = BRASERO_JACKET_VIEW_PRIVATE (widget);
@@ -1299,16 +1301,47 @@ brasero_jacket_view_size_request (GtkWidget *widget,
resolution = gdk_screen_get_resolution (gtk_window_get_screen (GTK_WINDOW (toplevel)));
if (priv->side == BRASERO_JACKET_FRONT) {
- request->width = COVER_WIDTH_FRONT_INCH * resolution + BRASERO_JACKET_VIEW_MARGIN * 2.0;
- request->height = COVER_HEIGHT_FRONT_INCH * resolution + BRASERO_JACKET_VIEW_MARGIN * 2.0;
+ width = COVER_WIDTH_FRONT_INCH * resolution + BRASERO_JACKET_VIEW_MARGIN * 2.0;
}
else if (priv->side == BRASERO_JACKET_BACK) {
- request->width = COVER_WIDTH_BACK_INCH * resolution +
+ width = COVER_WIDTH_BACK_INCH * resolution +
BRASERO_JACKET_VIEW_MARGIN * 2.0;
- request->height = COVER_HEIGHT_BACK_INCH * resolution +
- COVER_WIDTH_SIDE_INCH * resolution +
- BRASERO_JACKET_VIEW_MARGIN * 3.0;
}
+
+ *minimum = *natural = width;
+}
+
+static void
+brasero_jacket_view_get_preferred_height (GtkWidget *widget,
+ gint *minimum,
+ gint *natural)
+{
+ BraseroJacketViewPrivate *priv;
+ GtkWidget *toplevel;
+ gdouble resolution;
+ gint height;
+
+ priv = BRASERO_JACKET_VIEW_PRIVATE (widget);
+
+ if (!gtk_widget_get_parent (widget))
+ return;
+
+ toplevel = gtk_widget_get_toplevel (widget);
+ if (!GTK_IS_WINDOW (toplevel))
+ return;
+
+ resolution = gdk_screen_get_resolution (gtk_window_get_screen (GTK_WINDOW (toplevel)));
+
+ if (priv->side == BRASERO_JACKET_FRONT) {
+ height = COVER_HEIGHT_FRONT_INCH * resolution + BRASERO_JACKET_VIEW_MARGIN * 2.0;
+ }
+ else if (priv->side == BRASERO_JACKET_BACK) {
+ height = COVER_HEIGHT_BACK_INCH * resolution +
+ COVER_WIDTH_SIDE_INCH * resolution +
+ BRASERO_JACKET_VIEW_MARGIN * 3.0;
+ }
+
+ *minimum = *natural = height;
}
static void
@@ -1507,7 +1540,8 @@ brasero_jacket_view_class_init (BraseroJacketViewClass *klass)
widget_class->draw = brasero_jacket_view_draw;
widget_class->realize = brasero_jacket_view_realize;
widget_class->size_allocate = brasero_jacket_view_size_allocate;
- widget_class->size_request = brasero_jacket_view_size_request;
+ widget_class->get_preferred_width = brasero_jacket_view_get_preferred_width;
+ widget_class->get_preferred_height = brasero_jacket_view_get_preferred_height;
container_class->forall = brasero_jacket_view_container_forall;
container_class->remove = brasero_jacket_view_container_remove;
diff --git a/src/brasero-player-bacon.c b/src/brasero-player-bacon.c
index e9c93ab..49854a9 100644
--- a/src/brasero-player-bacon.c
+++ b/src/brasero-player-bacon.c
@@ -200,19 +200,35 @@ brasero_player_bacon_draw (GtkWidget *widget, cairo_t *cr)
}
static void
-brasero_player_bacon_size_request (GtkWidget *widget,
- GtkRequisition *requisition)
+brasero_player_bacon_get_preferred_width (GtkWidget *widget,
+ gint *minimum,
+ gint *natural)
{
BraseroPlayerBacon *bacon;
g_return_if_fail (widget != NULL);
bacon = BRASERO_PLAYER_BACON (widget);
- requisition->width = PLAYER_BACON_WIDTH;
- requisition->height = PLAYER_BACON_HEIGHT;
+ *minimum = *natural = PLAYER_BACON_WIDTH;
- if (GTK_WIDGET_CLASS (brasero_player_bacon_parent_class)->size_request)
- GTK_WIDGET_CLASS (brasero_player_bacon_parent_class)->size_request (widget, requisition);
+ if (GTK_WIDGET_CLASS (brasero_player_bacon_parent_class)->get_preferred_width)
+ GTK_WIDGET_CLASS (brasero_player_bacon_parent_class)->get_preferred_width (widget, minimum, natural);
+}
+
+static void
+brasero_player_bacon_get_preferred_height (GtkWidget *widget,
+ gint *minimum,
+ gint *natural)
+{
+ BraseroPlayerBacon *bacon;
+
+ g_return_if_fail (widget != NULL);
+ bacon = BRASERO_PLAYER_BACON (widget);
+
+ *minimum = *natural = PLAYER_BACON_WIDTH;
+
+ if (GTK_WIDGET_CLASS (brasero_player_bacon_parent_class)->get_preferred_height)
+ GTK_WIDGET_CLASS (brasero_player_bacon_parent_class)->get_preferred_height (widget, minimum, natural);
}
static void
@@ -672,7 +688,8 @@ brasero_player_bacon_class_init (BraseroPlayerBaconClass *klass)
widget_class->draw = brasero_player_bacon_draw;
widget_class->realize = brasero_player_bacon_realize;
widget_class->unrealize = brasero_player_bacon_unrealize;
- widget_class->size_request = brasero_player_bacon_size_request;
+ widget_class->get_preferred_width = brasero_player_bacon_get_preferred_width;
+ widget_class->get_preferred_height = brasero_player_bacon_get_preferred_height;
widget_class->size_allocate = brasero_player_bacon_size_allocate;
brasero_player_bacon_signals [STATE_CHANGED_SIGNAL] =
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]