[gtk+/treeview-refactor] Added GtkCellRendererState flags to GtkCellArea->event/render() methods
- From: Tristan Van Berkom <tvb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/treeview-refactor] Added GtkCellRendererState flags to GtkCellArea->event/render() methods
- Date: Mon, 1 Nov 2010 06:57:23 +0000 (UTC)
commit 54004237be39428743461ce948f23e945ff3c1f7
Author: Tristan Van Berkom <tristan van berkom gmail com>
Date: Mon Nov 1 12:39:00 2010 +0900
Added GtkCellRendererState flags to GtkCellArea->event/render() methods
gtk/gtkcellarea.c | 26 +++++----
gtk/gtkcellarea.h | 42 ++++++++------
gtk/gtkcellareabox.c | 154 ++++++++++++++++++++++++++------------------------
3 files changed, 117 insertions(+), 105 deletions(-)
---
diff --git a/gtk/gtkcellarea.c b/gtk/gtkcellarea.c
index 7bb991f..cd41fc6 100644
--- a/gtk/gtkcellarea.c
+++ b/gtk/gtkcellarea.c
@@ -628,11 +628,12 @@ gtk_cell_area_forall (GtkCellArea *area,
}
gint
-gtk_cell_area_event (GtkCellArea *area,
- GtkCellAreaIter *iter,
- GtkWidget *widget,
- GdkEvent *event,
- const GdkRectangle *cell_area)
+gtk_cell_area_event (GtkCellArea *area,
+ GtkCellAreaIter *iter,
+ GtkWidget *widget,
+ GdkEvent *event,
+ const GdkRectangle *cell_area,
+ GtkCellRendererState flags)
{
GtkCellAreaClass *class;
@@ -645,7 +646,7 @@ gtk_cell_area_event (GtkCellArea *area,
class = GTK_CELL_AREA_GET_CLASS (area);
if (class->event)
- return class->event (area, iter, widget, event, cell_area);
+ return class->event (area, iter, widget, event, cell_area, flags);
g_warning ("GtkCellAreaClass::event not implemented for `%s'",
g_type_name (G_TYPE_FROM_INSTANCE (area)));
@@ -653,11 +654,12 @@ gtk_cell_area_event (GtkCellArea *area,
}
void
-gtk_cell_area_render (GtkCellArea *area,
- GtkCellAreaIter *iter,
- GtkWidget *widget,
- cairo_t *cr,
- const GdkRectangle *cell_area)
+gtk_cell_area_render (GtkCellArea *area,
+ GtkCellAreaIter *iter,
+ GtkWidget *widget,
+ cairo_t *cr,
+ const GdkRectangle *cell_area,
+ GtkCellRendererState flags)
{
GtkCellAreaClass *class;
@@ -670,7 +672,7 @@ gtk_cell_area_render (GtkCellArea *area,
class = GTK_CELL_AREA_GET_CLASS (area);
if (class->render)
- class->render (area, iter, widget, cr, cell_area);
+ class->render (area, iter, widget, cr, cell_area, flags);
else
g_warning ("GtkCellAreaClass::render not implemented for `%s'",
g_type_name (G_TYPE_FROM_INSTANCE (area)));
diff --git a/gtk/gtkcellarea.h b/gtk/gtkcellarea.h
index 1046469..39bf8eb 100644
--- a/gtk/gtkcellarea.h
+++ b/gtk/gtkcellarea.h
@@ -83,12 +83,14 @@ struct _GtkCellAreaClass
GtkCellAreaIter *iter,
GtkWidget *widget,
GdkEvent *event,
- const GdkRectangle *cell_area);
+ const GdkRectangle *cell_area,
+ GtkCellRendererState flags);
void (* render) (GtkCellArea *area,
GtkCellAreaIter *iter,
GtkWidget *widget,
cairo_t *cr,
- const GdkRectangle *cell_area);
+ const GdkRectangle *cell_area,
+ GtkCellRendererState flags);
/* Geometry */
GtkCellAreaIter *(* create_iter) (GtkCellArea *area);
@@ -142,23 +144,25 @@ struct _GtkCellAreaClass
GType gtk_cell_area_get_type (void) G_GNUC_CONST;
/* Basic methods */
-void gtk_cell_area_add (GtkCellArea *area,
- GtkCellRenderer *renderer);
-void gtk_cell_area_remove (GtkCellArea *area,
- GtkCellRenderer *renderer);
-void gtk_cell_area_forall (GtkCellArea *area,
- GtkCellCallback callback,
- gpointer callback_data);
-gint gtk_cell_area_event (GtkCellArea *area,
- GtkCellAreaIter *iter,
- GtkWidget *widget,
- GdkEvent *event,
- const GdkRectangle *cell_area);
-void gtk_cell_area_render (GtkCellArea *area,
- GtkCellAreaIter *iter,
- GtkWidget *widget,
- cairo_t *cr,
- const GdkRectangle *cell_area);
+void gtk_cell_area_add (GtkCellArea *area,
+ GtkCellRenderer *renderer);
+void gtk_cell_area_remove (GtkCellArea *area,
+ GtkCellRenderer *renderer);
+void gtk_cell_area_forall (GtkCellArea *area,
+ GtkCellCallback callback,
+ gpointer callback_data);
+gint gtk_cell_area_event (GtkCellArea *area,
+ GtkCellAreaIter *iter,
+ GtkWidget *widget,
+ GdkEvent *event,
+ const GdkRectangle *cell_area,
+ GtkCellRendererState flags);
+void gtk_cell_area_render (GtkCellArea *area,
+ GtkCellAreaIter *iter,
+ GtkWidget *widget,
+ cairo_t *cr,
+ const GdkRectangle *cell_area,
+ GtkCellRendererState flags);
/* Geometry */
GtkCellAreaIter *gtk_cell_area_create_iter (GtkCellArea *area);
diff --git a/gtk/gtkcellareabox.c b/gtk/gtkcellareabox.c
index 920bd07..aa10026 100644
--- a/gtk/gtkcellareabox.c
+++ b/gtk/gtkcellareabox.c
@@ -31,71 +31,73 @@
/* GObjectClass */
-static void gtk_cell_area_box_finalize (GObject *object);
-static void gtk_cell_area_box_dispose (GObject *object);
-static void gtk_cell_area_box_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec);
-static void gtk_cell_area_box_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec);
+static void gtk_cell_area_box_finalize (GObject *object);
+static void gtk_cell_area_box_dispose (GObject *object);
+static void gtk_cell_area_box_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec);
+static void gtk_cell_area_box_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec);
/* GtkCellAreaClass */
-static void gtk_cell_area_box_add (GtkCellArea *area,
- GtkCellRenderer *renderer);
-static void gtk_cell_area_box_remove (GtkCellArea *area,
- GtkCellRenderer *renderer);
-static void gtk_cell_area_box_forall (GtkCellArea *area,
- GtkCellCallback callback,
- gpointer callback_data);
-static gint gtk_cell_area_box_event (GtkCellArea *area,
- GtkCellAreaIter *iter,
- GtkWidget *widget,
- GdkEvent *event,
- const GdkRectangle *cell_area);
-static void gtk_cell_area_box_render (GtkCellArea *area,
- GtkCellAreaIter *iter,
- GtkWidget *widget,
- cairo_t *cr,
- const GdkRectangle *cell_area);
-
-static void gtk_cell_area_box_set_cell_property (GtkCellArea *area,
- GtkCellRenderer *renderer,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec);
-static void gtk_cell_area_box_get_cell_property (GtkCellArea *area,
- GtkCellRenderer *renderer,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec);
-
-static GtkCellAreaIter *gtk_cell_area_box_create_iter (GtkCellArea *area);
-static GtkSizeRequestMode gtk_cell_area_box_get_request_mode (GtkCellArea *area);
-static void gtk_cell_area_box_get_preferred_width (GtkCellArea *area,
- GtkCellAreaIter *iter,
- GtkWidget *widget,
- gint *minimum_width,
- gint *natural_width);
-static void gtk_cell_area_box_get_preferred_height (GtkCellArea *area,
- GtkCellAreaIter *iter,
- GtkWidget *widget,
- gint *minimum_height,
- gint *natural_height);
-static void gtk_cell_area_box_get_preferred_height_for_width (GtkCellArea *area,
- GtkCellAreaIter *iter,
- GtkWidget *widget,
- gint width,
- gint *minimum_height,
- gint *natural_height);
-static void gtk_cell_area_box_get_preferred_width_for_height (GtkCellArea *area,
- GtkCellAreaIter *iter,
- GtkWidget *widget,
- gint height,
- gint *minimum_width,
- gint *natural_width);
+static void gtk_cell_area_box_add (GtkCellArea *area,
+ GtkCellRenderer *renderer);
+static void gtk_cell_area_box_remove (GtkCellArea *area,
+ GtkCellRenderer *renderer);
+static void gtk_cell_area_box_forall (GtkCellArea *area,
+ GtkCellCallback callback,
+ gpointer callback_data);
+static gint gtk_cell_area_box_event (GtkCellArea *area,
+ GtkCellAreaIter *iter,
+ GtkWidget *widget,
+ GdkEvent *event,
+ const GdkRectangle *cell_area,
+ GtkCellRendererState flags);
+static void gtk_cell_area_box_render (GtkCellArea *area,
+ GtkCellAreaIter *iter,
+ GtkWidget *widget,
+ cairo_t *cr,
+ const GdkRectangle *cell_area,
+ GtkCellRendererState flags);
+
+static void gtk_cell_area_box_set_cell_property (GtkCellArea *area,
+ GtkCellRenderer *renderer,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec);
+static void gtk_cell_area_box_get_cell_property (GtkCellArea *area,
+ GtkCellRenderer *renderer,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec);
+
+static GtkCellAreaIter *gtk_cell_area_box_create_iter (GtkCellArea *area);
+static GtkSizeRequestMode gtk_cell_area_box_get_request_mode (GtkCellArea *area);
+static void gtk_cell_area_box_get_preferred_width (GtkCellArea *area,
+ GtkCellAreaIter *iter,
+ GtkWidget *widget,
+ gint *minimum_width,
+ gint *natural_width);
+static void gtk_cell_area_box_get_preferred_height (GtkCellArea *area,
+ GtkCellAreaIter *iter,
+ GtkWidget *widget,
+ gint *minimum_height,
+ gint *natural_height);
+static void gtk_cell_area_box_get_preferred_height_for_width (GtkCellArea *area,
+ GtkCellAreaIter *iter,
+ GtkWidget *widget,
+ gint width,
+ gint *minimum_height,
+ gint *natural_height);
+static void gtk_cell_area_box_get_preferred_width_for_height (GtkCellArea *area,
+ GtkCellAreaIter *iter,
+ GtkWidget *widget,
+ gint height,
+ gint *minimum_width,
+ gint *natural_width);
/* GtkCellLayoutIface */
static void gtk_cell_area_box_cell_layout_init (GtkCellLayoutIface *iface);
@@ -751,11 +753,12 @@ gtk_cell_area_box_forall (GtkCellArea *area,
}
static gint
-gtk_cell_area_box_event (GtkCellArea *area,
- GtkCellAreaIter *iter,
- GtkWidget *widget,
- GdkEvent *event,
- const GdkRectangle *cell_area)
+gtk_cell_area_box_event (GtkCellArea *area,
+ GtkCellAreaIter *iter,
+ GtkWidget *widget,
+ GdkEvent *event,
+ const GdkRectangle *cell_area,
+ GtkCellRendererState flags)
{
@@ -763,11 +766,12 @@ gtk_cell_area_box_event (GtkCellArea *area,
}
static void
-gtk_cell_area_box_render (GtkCellArea *area,
- GtkCellAreaIter *iter,
- GtkWidget *widget,
- cairo_t *cr,
- const GdkRectangle *cell_area)
+gtk_cell_area_box_render (GtkCellArea *area,
+ GtkCellAreaIter *iter,
+ GtkWidget *widget,
+ cairo_t *cr,
+ const GdkRectangle *cell_area,
+ GtkCellRendererState flags)
{
GtkCellAreaBox *box = GTK_CELL_AREA_BOX (area);
GtkCellAreaBoxPrivate *priv = box->priv;
@@ -800,9 +804,11 @@ gtk_cell_area_box_render (GtkCellArea *area,
*/
gtk_cell_area_inner_cell_area (area, &background_area, &inner_area);
+ /* XXX We have to do some per-cell considerations for the 'flags'
+ * for focus handling */
gtk_cell_renderer_render (cell->renderer, cr, widget,
&background_area, &inner_area,
- /* flags */0);
+ flags);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]