Updating branch refs/heads/stephan/gtk3
to df1bce813f1c730c27b516d551cd928aa781d903 (commit)
from f7cc8b5f39b6f9c936e81ee3f2553669f027a3a0 (commit)
commit df1bce813f1c730c27b516d551cd928aa781d903
Author: Stephan Arts <[email protected]>
Date: Sat May 5 16:13:32 2012 +0200
Partially port ExoCellRendererIcon
exo/exo-cell-renderer-icon.c | 58 ++++++++++++++++++++++++------------------
1 files changed, 33 insertions(+), 25 deletions(-)
diff --git a/exo/exo-cell-renderer-icon.c b/exo/exo-cell-renderer-icon.c
index 0e6ead7..e79da86 100644
--- a/exo/exo-cell-renderer-icon.c
+++ b/exo/exo-cell-renderer-icon.c
@@ -78,17 +78,16 @@ static void exo_cell_renderer_icon_set_property (GObject
*objec
GParamSpec
*pspec);
static void exo_cell_renderer_icon_get_size (GtkCellRenderer
*renderer,
GtkWidget
*widget,
- GdkRectangle
*cell_area,
+ const GdkRectangle
*cell_area,
gint
*x_offset,
gint
*y_offset,
gint
*width,
gint
*height);
static void exo_cell_renderer_icon_render (GtkCellRenderer
*renderer,
- GdkWindow
*window,
+ cairo_t *cr,
GtkWidget
*widget,
- GdkRectangle
*background_area,
- GdkRectangle
*cell_area,
- GdkRectangle
*expose_area,
+ const GdkRectangle
*background_area,
+ const GdkRectangle
*cell_area,
GtkCellRendererState
flags);
@@ -316,29 +315,39 @@ exo_cell_renderer_icon_set_property (GObject *object,
static void
-exo_cell_renderer_icon_get_size (GtkCellRenderer *renderer,
- GtkWidget *widget,
- GdkRectangle *cell_area,
- gint *x_offset,
- gint *y_offset,
- gint *width,
- gint *height)
+exo_cell_renderer_icon_get_size (GtkCellRenderer *renderer,
+ GtkWidget *widget,
+ const GdkRectangle *cell_area,
+ gint *x_offset,
+ gint *y_offset,
+ gint *width,
+ gint *height)
{
const ExoCellRendererIconPrivate *priv = EXO_CELL_RENDERER_ICON_GET_PRIVATE
(renderer);
+ GdkRectangle aligned_area;
+ gint xpad;
+ gint ypad;
+
+ gtk_cell_renderer_get_padding (renderer, &xpad, &ypad);
if (cell_area != NULL)
{
+ gtk_cell_renderer_get_aligned_area (renderer,
+ widget,
+ 0,
+ cell_area,
+ &aligned_area);
if (x_offset != NULL)
{
- *x_offset = ((gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL)
? 1.0 - renderer->xalign : renderer->xalign)
+ *x_offset = ((gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL)
? 1.0 - aligned_area.x: aligned_area.x)
* (cell_area->width - priv->size);
- *x_offset = MAX (*x_offset, 0) + renderer->xpad;
+ *x_offset = MAX (*x_offset, 0) + xpad;
}
if (y_offset != NULL)
{
- *y_offset = renderer->yalign * (cell_area->height - priv->size);
- *y_offset = MAX (*y_offset, 0) + renderer->ypad;
+ *y_offset = aligned_area.y * (cell_area->height - priv->size);
+ *y_offset = MAX (*y_offset, 0) + ypad;
}
}
else
@@ -351,21 +360,20 @@ exo_cell_renderer_icon_get_size (GtkCellRenderer
*renderer,
}
if (G_LIKELY (width != NULL))
- *width = (gint) renderer->xpad * 2 + priv->size;
+ *width = (gint) xpad * 2 + priv->size;
if (G_LIKELY (height != NULL))
- *height = (gint) renderer->ypad * 2 + priv->size;
+ *height = (gint) ypad * 2 + priv->size;
}
static void
exo_cell_renderer_icon_render (GtkCellRenderer *renderer,
- GdkWindow *window,
+ cairo_t *cr,
GtkWidget *widget,
- GdkRectangle *background_area,
- GdkRectangle *cell_area,
- GdkRectangle *expose_area,
+ const GdkRectangle *background_area,
+ const GdkRectangle *cell_area,
GtkCellRendererState flags)
{
const ExoCellRendererIconPrivate *priv = EXO_CELL_RENDERER_ICON_GET_PRIVATE
(renderer);
@@ -494,14 +502,14 @@ exo_cell_renderer_icon_render (GtkCellRenderer
*renderer,
icon_area.y = cell_area->y + (cell_area->height - icon_area.height) / 2;
/* check whether the icon is affected by the expose event */
- if (gdk_rectangle_intersect (expose_area, &icon_area, &draw_area))
+ if (gdk_rectangle_intersect (&icon_area, &draw_area, NULL))
{
/* colorize the icon if we should follow the selection state */
if ((flags & (GTK_CELL_RENDERER_SELECTED | GTK_CELL_RENDERER_PRELIT)) !=
0 && priv->follow_state)
{
if ((flags & GTK_CELL_RENDERER_SELECTED) != 0)
{
- state = GTK_WIDGET_HAS_FOCUS (widget) ? GTK_STATE_SELECTED :
GTK_STATE_ACTIVE;
+ state = gtk_widget_has_focus (widget) ? GTK_STATE_SELECTED :
GTK_STATE_ACTIVE;
temp = exo_gdk_pixbuf_colorize (icon,
&widget->style->base[state]);
g_object_unref (G_OBJECT (icon));
icon = temp;
@@ -516,7 +524,7 @@ exo_cell_renderer_icon_render (GtkCellRenderer
*renderer,
}
/* check if we should render an insensitive icon */
- if (G_UNLIKELY (GTK_WIDGET_STATE (widget) == GTK_STATE_INSENSITIVE ||
!renderer->sensitive))
+ if (G_UNLIKELY (gtk_widget_get_state (widget) == GTK_STATE_INSENSITIVE
|| !gtk_cell_renderer_get_sensitive (renderer)))
{
/* allocate an icon source */
icon_source = gtk_icon_source_new ();
_______________________________________________
Xfce4-commits mailing list
[email protected]
https://mail.xfce.org/mailman/listinfo/xfce4-commits