[gtk+] Do not use deprecated gtk_cell_renderer_get_size()
- From: Javier Jardón <jjardon src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] Do not use deprecated gtk_cell_renderer_get_size()
- Date: Fri, 17 Sep 2010 18:14:35 +0000 (UTC)
commit 15a5a231fce34fdc571fb708c2483edc5d25714c
Author: Javier Jardón <jjardon gnome org>
Date: Mon Sep 13 02:50:04 2010 +0200
Do not use deprecated gtk_cell_renderer_get_size()
Use gtk_cell_size_request_get_size() instead
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=629785
gtk/gtkiconview.c | 54 ++++++++++++++++++-------------
gtk/gtktreeviewcolumn.c | 79 +++++++++++++++++++++++++---------------------
2 files changed, 74 insertions(+), 59 deletions(-)
---
diff --git a/gtk/gtkiconview.c b/gtk/gtkiconview.c
index 2d97dce..522c517 100644
--- a/gtk/gtkiconview.c
+++ b/gtk/gtkiconview.c
@@ -29,6 +29,7 @@
#include "gtkcellrenderer.h"
#include "gtkcellrenderertext.h"
#include "gtkcellrendererpixbuf.h"
+#include "gtkcellsizerequest.h"
#include "gtkmarshalers.h"
#include "gtkbindings.h"
#include "gtkdnd.h"
@@ -2963,24 +2964,22 @@ adjust_wrap_width (GtkIconView *icon_view,
{
GtkIconViewCellInfo *text_info;
GtkIconViewCellInfo *pixbuf_info;
- gint pixbuf_width, wrap_width;
-
+ gint wrap_width;
+
if (icon_view->priv->text_cell != -1 &&
icon_view->priv->pixbuf_cell != -1)
{
+ GtkRequisition min_size;
gint item_width;
text_info = g_list_nth_data (icon_view->priv->cell_list,
icon_view->priv->text_cell);
pixbuf_info = g_list_nth_data (icon_view->priv->cell_list,
icon_view->priv->pixbuf_cell);
-
- gtk_cell_renderer_get_size (pixbuf_info->cell,
- GTK_WIDGET (icon_view),
- NULL, NULL, NULL,
- &pixbuf_width,
- NULL);
-
+
+ gtk_cell_size_request_get_size (GTK_CELL_SIZE_REQUEST (pixbuf_info->cell),
+ GTK_WIDGET (icon_view),
+ &min_size, NULL);
if (icon_view->priv->item_width > 0)
item_width = icon_view->priv->item_width;
@@ -2991,9 +2990,9 @@ adjust_wrap_width (GtkIconView *icon_view,
wrap_width = item_width;
else {
if (item->width == -1 && item_width <= 0)
- wrap_width = MAX (2 * pixbuf_width, 50);
+ wrap_width = MAX (2 * min_size.width, 50);
else
- wrap_width = item_width - pixbuf_width - icon_view->priv->spacing;
+ wrap_width = item_width - min_size.width - icon_view->priv->spacing;
}
wrap_width -= icon_view->priv->item_padding * 2;
@@ -3007,6 +3006,7 @@ static void
gtk_icon_view_calculate_item_size (GtkIconView *icon_view,
GtkIconViewItem *item)
{
+ GtkRequisition min_size;
gint spacing;
GList *l;
@@ -3038,11 +3038,12 @@ gtk_icon_view_calculate_item_size (GtkIconView *icon_view,
if (!gtk_cell_renderer_get_visible (info->cell))
continue;
-
- gtk_cell_renderer_get_size (info->cell, GTK_WIDGET (icon_view),
- NULL, NULL, NULL,
- &item->box[info->position].width,
- &item->box[info->position].height);
+
+ gtk_cell_size_request_get_size (GTK_CELL_SIZE_REQUEST (info->cell),
+ GTK_WIDGET (icon_view),
+ &min_size, NULL);
+ item->box[info->position].width = min_size.width;
+ item->box[info->position].height = min_size.height;
if (icon_view->priv->item_orientation == GTK_ORIENTATION_HORIZONTAL)
{
@@ -3066,6 +3067,7 @@ gtk_icon_view_calculate_item_size2 (GtkIconView *icon_view,
GtkIconViewItem *item,
gint *max_height)
{
+ GtkRequisition min_size;
GdkRectangle cell_area;
gint spacing;
GList *l;
@@ -3094,7 +3096,7 @@ gtk_icon_view_calculate_item_size2 (GtkIconView *icon_view,
for (l = icon_view->priv->cell_list, i = 0; l; l = l->next, i++)
{
GtkIconViewCellInfo *info = (GtkIconViewCellInfo *)l->data;
-
+
if (info->pack == (k ? GTK_PACK_START : GTK_PACK_END))
continue;
@@ -3118,14 +3120,20 @@ gtk_icon_view_calculate_item_size2 (GtkIconView *icon_view,
cell_area.width = item->width - 2 * icon_view->priv->item_padding;
cell_area.height = max_height[i];
}
-
- gtk_cell_renderer_get_size (info->cell, GTK_WIDGET (icon_view),
- &cell_area,
- &item->box[info->position].x, &item->box[info->position].y,
- &item->box[info->position].width, &item->box[info->position].height);
-
+
+ gtk_cell_size_request_get_size (GTK_CELL_SIZE_REQUEST (info->cell),
+ GTK_WIDGET (icon_view),
+ &min_size, NULL);
+ item->box[info->position].width = min_size.width;
+ item->box[info->position].height = min_size.height;
+
+ _gtk_cell_renderer_calc_offset (info->cell, &cell_area,
+ gtk_widget_get_direction (GTK_WIDGET (icon_view)),
+ item->box[info->position].width, item->box[info->position].height,
+ &item->box[info->position].x, &item->box[info->position].y);
item->box[info->position].x += cell_area.x;
item->box[info->position].y += cell_area.y;
+
if (icon_view->priv->item_orientation == GTK_ORIENTATION_HORIZONTAL)
{
item->before[info->position] = item->box[info->position].x - cell_area.x;
diff --git a/gtk/gtktreeviewcolumn.c b/gtk/gtktreeviewcolumn.c
index ebc054d..bd5b36e 100644
--- a/gtk/gtktreeviewcolumn.c
+++ b/gtk/gtktreeviewcolumn.c
@@ -18,8 +18,12 @@
*/
#include "config.h"
-#include <string.h>
+
#include "gtktreeviewcolumn.h"
+
+#include <string.h>
+
+#include "gtkcellsizerequest.h"
#include "gtktreeview.h"
#include "gtktreeprivate.h"
#include "gtkcelllayout.h"
@@ -2611,6 +2615,7 @@ gtk_tree_view_column_cell_get_size (GtkTreeViewColumn *tree_column,
gint *width,
gint *height)
{
+ GtkRequisition min_size;
GList *list;
gboolean first_cell = TRUE;
gint focus_line_width;
@@ -2628,8 +2633,6 @@ gtk_tree_view_column_cell_get_size (GtkTreeViewColumn *tree_column,
{
GtkTreeViewColumnCellInfo *info = (GtkTreeViewColumnCellInfo *) list->data;
gboolean visible;
- gint new_height = 0;
- gint new_width = 0;
g_object_get (info->cell, "visible", &visible, NULL);
if (visible == FALSE)
@@ -2638,17 +2641,13 @@ gtk_tree_view_column_cell_get_size (GtkTreeViewColumn *tree_column,
if (first_cell == FALSE && width)
*width += tree_column->spacing;
- gtk_cell_renderer_get_size (info->cell,
- tree_column->tree_view,
- cell_area,
- x_offset,
- y_offset,
- &new_width,
- &new_height);
+ gtk_cell_size_request_get_size (GTK_CELL_SIZE_REQUEST (info->cell),
+ GTK_WIDGET (tree_column->tree_view),
+ &min_size, NULL);
if (height)
- * height = MAX (*height, new_height + focus_line_width * 2);
- info->requested_width = MAX (info->requested_width, new_width + focus_line_width * 2);
+ * height = MAX (*height, min_size.height + focus_line_width * 2);
+ info->requested_width = MAX (info->requested_width, min_size.width + focus_line_width * 2);
if (width)
* width += info->requested_width;
first_cell = FALSE;
@@ -2839,34 +2838,38 @@ gtk_tree_view_column_cell_process_action (GtkTreeViewColumn *tree_column,
/* FOCUS */
else if (action == CELL_ACTION_FOCUS)
{
- gint x_offset, y_offset, width, height;
+ gint x_offset, y_offset;
+ GtkRequisition min_size;
+
+ gtk_cell_size_request_get_size (GTK_CELL_SIZE_REQUEST (info->cell),
+ tree_column->tree_view,
+ &min_size, NULL);
- gtk_cell_renderer_get_size (info->cell,
- tree_column->tree_view,
- &rtl_cell_area,
- &x_offset, &y_offset,
- &width, &height);
+ _gtk_cell_renderer_calc_offset (info->cell, &rtl_cell_area,
+ gtk_widget_get_direction (tree_column->tree_view),
+ min_size.width, min_size.height,
+ &x_offset, &y_offset);
if (special_cells > 1)
{
if (info->has_focus)
{
min_x = rtl_cell_area.x + x_offset;
- max_x = min_x + width;
+ max_x = min_x + min_size.width;
min_y = rtl_cell_area.y + y_offset;
- max_y = min_y + height;
+ max_y = min_y + min_size.height;
}
}
else
{
if (min_x > (rtl_cell_area.x + x_offset))
min_x = rtl_cell_area.x + x_offset;
- if (max_x < rtl_cell_area.x + x_offset + width)
- max_x = rtl_cell_area.x + x_offset + width;
+ if (max_x < rtl_cell_area.x + x_offset + min_size.width)
+ max_x = rtl_cell_area.x + x_offset + min_size.width;
if (min_y > (rtl_cell_area.y + y_offset))
min_y = rtl_cell_area.y + y_offset;
- if (max_y < rtl_cell_area.y + y_offset + height)
- max_y = rtl_cell_area.y + y_offset + height;
+ if (max_y < rtl_cell_area.y + y_offset + min_size.height)
+ max_y = rtl_cell_area.y + y_offset + min_size.height;
}
}
/* EVENT */
@@ -3004,34 +3007,38 @@ gtk_tree_view_column_cell_process_action (GtkTreeViewColumn *tree_column,
/* FOCUS */
else if (action == CELL_ACTION_FOCUS)
{
- gint x_offset, y_offset, width, height;
+ gint x_offset, y_offset;
+ GtkRequisition min_size;
+
+ gtk_cell_size_request_get_size (GTK_CELL_SIZE_REQUEST (info->cell),
+ tree_column->tree_view,
+ &min_size, NULL);
- gtk_cell_renderer_get_size (info->cell,
- tree_column->tree_view,
- &rtl_cell_area,
- &x_offset, &y_offset,
- &width, &height);
+ _gtk_cell_renderer_calc_offset (info->cell, &rtl_cell_area,
+ gtk_widget_get_direction (tree_column->tree_view),
+ min_size.width, min_size.height,
+ &x_offset, &y_offset);
if (special_cells > 1)
{
if (info->has_focus)
{
min_x = rtl_cell_area.x + x_offset;
- max_x = min_x + width;
+ max_x = min_x + min_size.width;
min_y = rtl_cell_area.y + y_offset;
- max_y = min_y + height;
+ max_y = min_y + min_size.height;
}
}
else
{
if (min_x > (rtl_cell_area.x + x_offset))
min_x = rtl_cell_area.x + x_offset;
- if (max_x < rtl_cell_area.x + x_offset + width)
- max_x = rtl_cell_area.x + x_offset + width;
+ if (max_x < rtl_cell_area.x + x_offset + min_size.width)
+ max_x = rtl_cell_area.x + x_offset + min_size.width;
if (min_y > (rtl_cell_area.y + y_offset))
min_y = rtl_cell_area.y + y_offset;
- if (max_y < rtl_cell_area.y + y_offset + height)
- max_y = rtl_cell_area.y + y_offset + height;
+ if (max_y < rtl_cell_area.y + y_offset + min_size.height)
+ max_y = rtl_cell_area.y + y_offset + min_size.height;
}
}
/* EVENT */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]