[gtk+/treeview-refactor: 79/102] Removed attribute handling from class vfuncs of GtkCellArea.
- From: Tristan Van Berkom <tvb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/treeview-refactor: 79/102] Removed attribute handling from class vfuncs of GtkCellArea.
- Date: Tue, 26 Oct 2010 09:22:11 +0000 (UTC)
commit 0722fbe7c872f348d9d29383d7a97eae93e52b0d
Author: Tristan Van Berkom <tristan van berkom gmail com>
Date: Sun Oct 24 19:20:10 2010 +0900
Removed attribute handling from class vfuncs of GtkCellArea.
Now GtkCellArea handles attribute connections in the base class,
subclasses only need to add/remove the renderers, render them,
do geometry and handle events.
gtk/gtkcellarea.c | 417 ++++++++++++++++++++++++++++----------------------
gtk/gtkcellarea.h | 53 +------
gtk/gtkcellareabox.c | 48 ------
3 files changed, 238 insertions(+), 280 deletions(-)
---
diff --git a/gtk/gtkcellarea.c b/gtk/gtkcellarea.c
index e4611e3..be47423 100644
--- a/gtk/gtkcellarea.c
+++ b/gtk/gtkcellarea.c
@@ -49,7 +49,7 @@ static void gtk_cell_area_clear (GtkCellLayout
static void gtk_cell_area_add_attribute (GtkCellLayout *cell_layout,
GtkCellRenderer *renderer,
const gchar *attribute,
- gint id);
+ gint column);
static void gtk_cell_area_set_cell_data_func (GtkCellLayout *cell_layout,
GtkCellRenderer *cell,
GtkCellLayoutDataFunc func,
@@ -62,20 +62,31 @@ static void gtk_cell_area_reorder (GtkCellLayout
gint position);
static GList *gtk_cell_area_get_cells (GtkCellLayout *cell_layout);
-/* GtkCellLayoutDataFunc handling */
+/* Attribute/Cell metadata */
typedef struct {
- GtkCellLayoutDataFunc func;
- gpointer data;
- GDestroyNotify destroy;
-} CustomCellData;
-
-static CustomCellData *custom_cell_data_new (GtkCellLayoutDataFunc func,
- gpointer data,
- GDestroyNotify destroy);
-static void custom_cell_data_free (CustomCellData *custom);
-
-/* Struct to pass data while looping over
- * cell renderer attributes
+ const gchar *attribute;
+ gint column;
+} CellAttribute;
+
+typedef struct {
+ GSList *attributes;
+
+ GtkCellLayoutDataFunc func;
+ gpointer data;
+ GDestroyNotify destroy;
+} CellInfo;
+
+static CellInfo *cell_info_new (GtkCellLayoutDataFunc func,
+ gpointer data,
+ GDestroyNotify destroy);
+static void cell_info_free (CellInfo *info);
+static CellAttribute *cell_attribute_new (GtkCellRenderer *renderer,
+ const gchar *attribute,
+ gint column);
+static void cell_attribute_free (CellAttribute *attribute);
+
+/* Struct to pass data along while looping over
+ * cell renderers to apply attributes
*/
typedef struct {
GtkCellArea *area;
@@ -85,7 +96,7 @@ typedef struct {
struct _GtkCellAreaPrivate
{
- GHashTable *custom_cell_data;
+ GHashTable *cell_info;
};
G_DEFINE_ABSTRACT_TYPE_WITH_CODE (GtkCellArea, gtk_cell_area, G_TYPE_INITIALLY_UNOWNED,
@@ -102,10 +113,10 @@ gtk_cell_area_init (GtkCellArea *area)
GtkCellAreaPrivate);
priv = area->priv;
- priv->custom_cell_data = g_hash_table_new_full (g_direct_hash,
- g_direct_equal,
- NULL,
- (GDestroyNotify)custom_cell_data_free);
+ priv->cell_info = g_hash_table_new_full (g_direct_hash,
+ g_direct_equal,
+ NULL,
+ (GDestroyNotify)cell_info_free);
}
static void
@@ -124,11 +135,6 @@ gtk_cell_area_class_init (GtkCellAreaClass *class)
class->event = NULL;
class->render = NULL;
- /* attributes */
- class->attribute_connect = NULL;
- class->attribute_disconnect = NULL;
- class->attribute_forall = NULL;
-
/* geometry */
class->get_request_mode = NULL;
class->get_preferred_width = NULL;
@@ -152,7 +158,7 @@ gtk_cell_area_finalize (GObject *object)
/* All cell renderers should already be removed at this point,
* just kill our hash table here.
*/
- g_hash_table_destroy (priv->custom_cell_data);
+ g_hash_table_destroy (priv->cell_info);
G_OBJECT_CLASS (gtk_cell_area_parent_class)->finalize (object);
}
@@ -199,27 +205,70 @@ gtk_cell_area_real_get_preferred_width_for_height (GtkCellArea *area,
/*************************************************************
* GtkCellLayoutIface *
*************************************************************/
-static CustomCellData *
-custom_cell_data_new (GtkCellLayoutDataFunc func,
- gpointer data,
- GDestroyNotify destroy)
+static CellInfo *
+cell_info_new (GtkCellLayoutDataFunc func,
+ gpointer data,
+ GDestroyNotify destroy)
{
- CustomCellData *custom = g_slice_new (CustomCellData);
+ CellInfo *info = g_slice_new (CellInfo);
- custom->func = func;
- custom->data = data;
- custom->destroy = destroy;
+ info->attributes = NULL;
+ info->func = func;
+ info->data = data;
+ info->destroy = destroy;
- return custom;
+ return info;
}
static void
-custom_cell_data_free (CustomCellData *custom)
+cell_info_free (CellInfo *info)
+{
+ if (info->destroy)
+ info->destroy (info->data);
+
+ g_slist_foreach (info->attributes, (GFunc)cell_attribute_free, NULL);
+ g_slist_free (info->attributes);
+
+ g_slice_free (CellInfo, info);
+}
+
+static CellAttribute *
+cell_attribute_new (GtkCellRenderer *renderer,
+ const gchar *attribute,
+ gint column)
{
- if (custom->destroy)
- custom->destroy (custom->data);
+ GParamSpec *pspec;
+
+ /* Check if the attribute really exists and point to
+ * the property string installed on the cell renderer
+ * class (dont dup the string)
+ */
+ pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (renderer), attribute);
+
+ if (pspec)
+ {
+ CellAttribute *cell_attribute = g_slice_new (CellAttribute);
- g_slice_free (CustomCellData, custom);
+ cell_attribute->attribute = pspec->name;
+ cell_attribute->column = column;
+
+ return cell_attribute;
+ }
+
+ return NULL;
+}
+
+static void
+cell_attribute_free (CellAttribute *attribute)
+{
+ g_slice_free (CellAttribute, attribute);
+}
+
+static gint
+cell_attribute_find (CellAttribute *cell_attribute,
+ const gchar *attribute)
+{
+ return g_strcmp0 (cell_attribute->attribute, attribute);
}
static void
@@ -263,76 +312,68 @@ static void
gtk_cell_area_add_attribute (GtkCellLayout *cell_layout,
GtkCellRenderer *renderer,
const gchar *attribute,
- gint id)
+ gint column)
{
gtk_cell_area_attribute_connect (GTK_CELL_AREA (cell_layout),
- renderer, attribute, id);
-}
-
-typedef struct {
- const gchar *attribute;
- gchar id;
-} CellAttribute;
-
-static void
-accum_attributes (GtkCellArea *area,
- GtkCellRenderer *renderer,
- const gchar *attribute,
- gint id,
- GList **accum)
-{
- CellAttribute *attrib = g_slice_new (CellAttribute);
-
- attrib->attribute = attribute;
- attrib->id = id;
-
- *accum = g_list_prepend (*accum, attrib);
+ renderer, attribute, column);
}
static void
gtk_cell_area_set_cell_data_func (GtkCellLayout *cell_layout,
- GtkCellRenderer *cell,
+ GtkCellRenderer *renderer,
GtkCellLayoutDataFunc func,
gpointer func_data,
GDestroyNotify destroy)
{
GtkCellArea *area = GTK_CELL_AREA (cell_layout);
GtkCellAreaPrivate *priv = area->priv;
- CustomCellData *custom;
+ CellInfo *info;
+
+ info = g_hash_table_lookup (priv->cell_info, renderer);
- if (func)
+ if (info)
{
- custom = custom_cell_data_new (func, func_data, destroy);
- g_hash_table_insert (priv->custom_cell_data, cell, custom);
+ if (info->destroy && info->data)
+ info->destroy (info->data);
+
+ if (func)
+ {
+ info->func = func;
+ info->data = func_data;
+ info->destroy = destroy;
+ }
+ else
+ {
+ info->func = NULL;
+ info->data = NULL;
+ info->destroy = NULL;
+ }
}
else
- g_hash_table_remove (priv->custom_cell_data, cell);
-}
+ {
+ info = cell_info_new (func, func_data, destroy);
+ g_hash_table_insert (priv->cell_info, renderer, info);
+ }
+}
static void
gtk_cell_area_clear_attributes (GtkCellLayout *cell_layout,
GtkCellRenderer *renderer)
{
- GtkCellArea *area = GTK_CELL_AREA (cell_layout);
- GList *l, *attributes = NULL;
+ GtkCellArea *area = GTK_CELL_AREA (cell_layout);
+ GtkCellAreaPrivate *priv = area->priv;
+ CellInfo *info;
- /* Get a list of attributes so we dont modify the list inline */
- gtk_cell_area_attribute_forall (area, renderer,
- (GtkCellAttributeCallback)accum_attributes,
- &attributes);
+ info = g_hash_table_lookup (priv->cell_info, renderer);
- for (l = attributes; l; l = l->next)
+ if (info)
{
- CellAttribute *attrib = l->data;
+ g_slist_foreach (info->attributes, (GFunc)cell_attribute_free, NULL);
+ g_slist_free (info->attributes);
- gtk_cell_area_attribute_disconnect (area, renderer,
- attrib->attribute, attrib->id);
-
- g_slice_free (CellAttribute, attrib);
+ info->attributes = NULL;
}
-
- g_list_free (attributes);
}
static void
@@ -368,7 +409,6 @@ gtk_cell_area_get_cells (GtkCellLayout *cell_layout)
* API *
*************************************************************/
-/* Basic methods */
void
gtk_cell_area_add (GtkCellArea *area,
GtkCellRenderer *renderer)
@@ -391,16 +431,17 @@ void
gtk_cell_area_remove (GtkCellArea *area,
GtkCellRenderer *renderer)
{
- GtkCellAreaClass *class;
+ GtkCellAreaClass *class;
+ GtkCellAreaPrivate *priv;
g_return_if_fail (GTK_IS_CELL_AREA (area));
g_return_if_fail (GTK_IS_CELL_RENDERER (renderer));
class = GTK_CELL_AREA_GET_CLASS (area);
+ priv = area->priv;
- /* Remove any custom cell data func we have for this renderer */
- gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (area),
- renderer, NULL, NULL, NULL);
+ /* Remove any custom attributes and custom cell data func here first */
+ g_hash_table_remove (priv->cell_info, renderer);
if (class->remove)
class->remove (area, renderer);
@@ -473,71 +514,6 @@ gtk_cell_area_render (GtkCellArea *area,
g_type_name (G_TYPE_FROM_INSTANCE (area)));
}
-/* Attributes */
-void
-gtk_cell_area_attribute_connect (GtkCellArea *area,
- GtkCellRenderer *renderer,
- const gchar *attribute,
- gint id)
-{
- GtkCellAreaClass *class;
-
- g_return_if_fail (GTK_IS_CELL_AREA (area));
- g_return_if_fail (GTK_IS_CELL_RENDERER (renderer));
- g_return_if_fail (attribute != NULL);
-
- class = GTK_CELL_AREA_GET_CLASS (area);
-
- if (class->attribute_connect)
- class->attribute_connect (area, renderer, attribute, id);
- else
- g_warning ("GtkCellAreaClass::attribute_connect not implemented for `%s'",
- g_type_name (G_TYPE_FROM_INSTANCE (area)));
-}
-
-void
-gtk_cell_area_attribute_disconnect (GtkCellArea *area,
- GtkCellRenderer *renderer,
- const gchar *attribute,
- gint id)
-{
- GtkCellAreaClass *class;
-
- g_return_if_fail (GTK_IS_CELL_AREA (area));
- g_return_if_fail (GTK_IS_CELL_RENDERER (renderer));
- g_return_if_fail (attribute != NULL);
-
- class = GTK_CELL_AREA_GET_CLASS (area);
-
- if (class->attribute_disconnect)
- class->attribute_disconnect (area, renderer, attribute, id);
- else
- g_warning ("GtkCellAreaClass::attribute_disconnect not implemented for `%s'",
- g_type_name (G_TYPE_FROM_INSTANCE (area)));
-}
-
-void
-gtk_cell_area_attribute_forall (GtkCellArea *area,
- GtkCellRenderer *renderer,
- GtkCellAttributeCallback callback,
- gpointer user_data)
-{
- GtkCellAreaClass *class;
-
- g_return_if_fail (GTK_IS_CELL_AREA (area));
- g_return_if_fail (GTK_IS_CELL_RENDERER (renderer));
- g_return_if_fail (callback != NULL);
-
- class = GTK_CELL_AREA_GET_CLASS (area);
-
- if (class->attribute_forall)
- class->attribute_forall (area, renderer, callback, user_data);
- else
- g_warning ("GtkCellAreaClass::attribute_forall not implemented for `%s'",
- g_type_name (G_TYPE_FROM_INSTANCE (area)));
-}
-
-
/* Geometry */
GtkSizeRequestMode
gtk_cell_area_get_request_mode (GtkCellArea *area)
@@ -630,44 +606,118 @@ gtk_cell_area_get_preferred_width_for_height (GtkCellArea *area,
class->get_preferred_width_for_height (area, widget, height, minimum_width, natural_width);
}
+void
+gtk_cell_area_attribute_connect (GtkCellArea *area,
+ GtkCellRenderer *renderer,
+ const gchar *attribute,
+ gint column)
+{
+ GtkCellAreaPrivate *priv;
+ CellInfo *info;
+ CellAttribute *cell_attribute;
-static void
-apply_attributes (GtkCellRenderer *renderer,
- const gchar *attribute,
- gint id,
- AttributeData *data)
-{
- GValue value = { 0, };
+ g_return_if_fail (GTK_IS_CELL_AREA (area));
+ g_return_if_fail (GTK_IS_CELL_RENDERER (renderer));
+ g_return_if_fail (attribute != NULL);
- /* For each attribute of each renderer we apply the value
- * from the model to the renderer here
- */
- gtk_tree_model_get_value (data->model, data->iter, id, &value);
- g_object_set_property (G_OBJECT (renderer), attribute, &value);
- g_value_unset (&value);
+ priv = area->priv;
+ info = g_hash_table_lookup (priv->cell_info, renderer);
+
+ if (!info)
+ {
+ info = cell_info_new (NULL, NULL, NULL);
+
+ g_hash_table_insert (priv->cell_info, renderer, info);
+ }
+ else
+ {
+ GSList *node;
+
+ /* Check we are not adding the same attribute twice */
+ if ((node = g_slist_find_custom (info->attributes, attribute,
+ (GCompareFunc)cell_attribute_find)) != NULL)
+ {
+ cell_attribute = node->data;
+
+ g_warning ("Cannot connect attribute `%s' for cell renderer class `%s' "
+ "since `%s' is already attributed to column %d",
+ attribute,
+ g_type_name (G_TYPE_FROM_INSTANCE (area)),
+ attribute, cell_attribute->column);
+ return;
+ }
+ }
+
+ cell_attribute = cell_attribute_new (renderer, attribute, column);
+
+ if (!cell_attribute)
+ {
+ g_warning ("Cannot connect attribute `%s' for cell renderer class `%s' "
+ "since attribute does not exist",
+ attribute,
+ g_type_name (G_TYPE_FROM_INSTANCE (area)));
+ return;
+ }
+
+ info->attributes = g_slist_prepend (info->attributes, cell_attribute);
}
-static void
-apply_render_attributes (GtkCellRenderer *renderer,
- AttributeData *data)
+void
+gtk_cell_area_attribute_disconnect (GtkCellArea *area,
+ GtkCellRenderer *renderer,
+ const gchar *attribute)
{
- gtk_cell_area_attribute_forall (data->area, renderer,
- (GtkCellAttributeCallback)apply_attributes,
- data);
+ GtkCellAreaPrivate *priv;
+ CellInfo *info;
+ CellAttribute *cell_attribute;
+ GSList *node;
+
+ g_return_if_fail (GTK_IS_CELL_AREA (area));
+ g_return_if_fail (GTK_IS_CELL_RENDERER (renderer));
+ g_return_if_fail (attribute != NULL);
+
+ priv = area->priv;
+ info = g_hash_table_lookup (priv->cell_info, renderer);
+
+ if (info)
+ {
+ node = g_slist_find_custom (info->attributes, attribute,
+ (GCompareFunc)cell_attribute_find);
+ if (node)
+ {
+ cell_attribute = node->data;
+
+ cell_attribute_free (cell_attribute);
+
+ info->attributes = g_slist_delete_link (info->attributes, node);
+ }
+ }
}
static void
-apply_custom_cell_data (GtkCellRenderer *renderer,
- CustomCellData *custom,
- AttributeData *data)
+apply_cell_attributes (GtkCellRenderer *renderer,
+ CellInfo *info,
+ AttributeData *data)
{
- g_assert (custom->func);
+ CellAttribute *attribute;
+ GSList *list;
+ GValue value = { 0, };
+
+ /* Apply the attributes directly to the renderer */
+ for (list = info->attributes; list; list = list->next)
+ {
+ attribute = list->data;
+
+ gtk_tree_model_get_value (data->model, data->iter, attribute->column, &value);
+ g_object_set_property (G_OBJECT (renderer), attribute->attribute, &value);
+ g_value_unset (&value);
+ }
- /* For each renderer that has a GtkCellLayoutDataFunc set,
- * go ahead and envoke it to apply the data from the model
+ /* Call any GtkCellLayoutDataFunc that may have been set by the user
*/
- custom->func (GTK_CELL_LAYOUT (data->area), renderer,
- data->model, data->iter, custom->data);
+ if (info->func)
+ info->func (GTK_CELL_LAYOUT (data->area), renderer,
+ data->model, data->iter, info->data);
}
void
@@ -684,12 +734,7 @@ gtk_cell_area_apply_attributes (GtkCellArea *area,
priv = area->priv;
- /* For every cell renderer, for every attribute, apply the attribute */
- data.area = area;
- data.model = tree_model;
- data.iter = iter;
- gtk_cell_area_forall (area, (GtkCellCallback)apply_render_attributes, &data);
-
- /* Now go over any custom cell data functions */
- g_hash_table_foreach (priv->custom_cell_data, (GHFunc)apply_custom_cell_data, &data);
+ /* Go over any cells that have attributes or custom GtkCellLayoutDataFuncs and
+ * apply the data from the treemodel */
+ g_hash_table_foreach (priv->cell_info, (GHFunc)apply_cell_attributes, &data);
}
diff --git a/gtk/gtkcellarea.h b/gtk/gtkcellarea.h
index 073f76a..1454883 100644
--- a/gtk/gtkcellarea.h
+++ b/gtk/gtkcellarea.h
@@ -45,7 +45,6 @@ typedef struct _GtkCellArea GtkCellArea;
typedef struct _GtkCellAreaClass GtkCellAreaClass;
typedef struct _GtkCellAreaPrivate GtkCellAreaPrivate;
-
/**
* GtkCellCallback:
* @renderer: the cell renderer to operate on
@@ -58,23 +57,6 @@ typedef void (*GtkCellCallback) (GtkCellRenderer *renderer,
gpointer data);
-/**
- * GtkCellAttributeCallback:
- * @renderer: the #GtkCellRenderer that has an attribute
- * @attribute: the property attributed to @id
- * @id: the identifier of this attributed value
- * @data: user-supplied data
- *
- * The type of the callback functions used for iterating over the
- * attributes of the cell renderers in a #GtkCellArea,
- * see gtk_cell_area_attribute_forall().
- */
-typedef void (*GtkCellAttributeCallback) (GtkCellRenderer *renderer,
- const gchar *attribute,
- gint id,
- gpointer data);
-
-
struct _GtkCellArea
{
GInitiallyUnowned parent_instance;
@@ -105,20 +87,6 @@ struct _GtkCellAreaClass
GtkWidget *widget,
const GdkRectangle *cell_area);
- /* Attributes */
- void (* attribute_connect) (GtkCellArea *area,
- GtkCellRenderer *renderer,
- const gchar *attribute,
- gint id);
- void (* attribute_disconnect) (GtkCellArea *area,
- GtkCellRenderer *renderer,
- const gchar *attribute,
- gint id);
- void (* attribute_forall) (GtkCellArea *area,
- GtkCellRenderer *renderer,
- GtkCellAttributeCallback callback,
- gpointer user_data);
-
/* Geometry */
GtkSizeRequestMode (* get_request_mode) (GtkCellArea *area);
void (* get_preferred_width) (GtkCellArea *area,
@@ -171,20 +139,6 @@ void gtk_cell_area_render (GtkCellArea
GtkWidget *widget,
const GdkRectangle *cell_area);
-/* Attributes */
-void gtk_cell_area_attribute_connect (GtkCellArea *area,
- GtkCellRenderer *renderer,
- const gchar *attribute,
- gint id);
-void gtk_cell_area_attribute_disconnect (GtkCellArea *area,
- GtkCellRenderer *renderer,
- const gchar *attribute,
- gint id);
-void gtk_cell_area_attribute_forall (GtkCellArea *area,
- GtkCellRenderer *renderer,
- GtkCellAttributeCallback callback,
- gpointer user_data);
-
/* Geometry */
GtkSizeRequestMode gtk_cell_area_get_request_mode (GtkCellArea *area);
void gtk_cell_area_get_preferred_width (GtkCellArea *area,
@@ -211,6 +165,13 @@ void gtk_cell_area_get_preferred_width_for_height (GtkCellArea
void gtk_cell_area_apply_attributes (GtkCellArea *area,
GtkTreeModel *tree_model,
GtkTreeIter *iter);
+void gtk_cell_area_attribute_connect (GtkCellArea *area,
+ GtkCellRenderer *renderer,
+ const gchar *attribute,
+ gint column);
+void gtk_cell_area_attribute_disconnect (GtkCellArea *area,
+ GtkCellRenderer *renderer,
+ const gchar *attribute);
G_END_DECLS
diff --git a/gtk/gtkcellareabox.c b/gtk/gtkcellareabox.c
index 52db6e9..a635df2 100644
--- a/gtk/gtkcellareabox.c
+++ b/gtk/gtkcellareabox.c
@@ -53,19 +53,6 @@ static void gtk_cell_area_box_render (GtkCellArea
GtkWidget *widget,
const GdkRectangle *cell_area);
-static void gtk_cell_area_box_attribute_connect (GtkCellArea *area,
- GtkCellRenderer *renderer,
- const gchar *attribute,
- gint id);
-static void gtk_cell_area_box_attribute_disconnect (GtkCellArea *area,
- GtkCellRenderer *renderer,
- const gchar *attribute,
- gint id);
-static void gtk_cell_area_box_attribute_forall (GtkCellArea *area,
- GtkCellRenderer *renderer,
- GtkCellAttributeCallback callback,
- gpointer user_data);
-
static GtkSizeRequestMode gtk_cell_area_box_get_request_mode (GtkCellArea *area);
static void gtk_cell_area_box_get_preferred_width (GtkCellArea *area,
GtkWidget *widget,
@@ -91,7 +78,6 @@ struct _GtkCellAreaBoxPrivate
{
GtkOrientation orientation;
-
};
enum {
@@ -99,7 +85,6 @@ enum {
PROP_ORIENTATION
};
-
G_DEFINE_TYPE_WITH_CODE (GtkCellAreaBox, gtk_cell_area_box, GTK_TYPE_CELL_AREA,
G_IMPLEMENT_INTERFACE (GTK_TYPE_ORIENTABLE, NULL));
@@ -136,10 +121,6 @@ gtk_cell_area_box_class_init (GtkCellAreaBoxClass *class)
area_class->event = gtk_cell_area_box_event;
area_class->render = gtk_cell_area_box_render;
- area_class->attribute_connect = gtk_cell_area_box_attribute_connect;
- area_class->attribute_disconnect = gtk_cell_area_box_attribute_disconnect;
- area_class->attribute_forall = gtk_cell_area_box_attribute_forall;
-
area_class->get_request_mode = gtk_cell_area_box_get_request_mode;
area_class->get_preferred_width = gtk_cell_area_box_get_preferred_width;
area_class->get_preferred_height = gtk_cell_area_box_get_preferred_height;
@@ -186,7 +167,6 @@ gtk_cell_area_box_get_property (GObject *object,
}
-
/*************************************************************
* GtkCellAreaClass *
*************************************************************/
@@ -232,34 +212,6 @@ gtk_cell_area_box_render (GtkCellArea *area,
}
-static void
-gtk_cell_area_box_attribute_connect (GtkCellArea *area,
- GtkCellRenderer *renderer,
- const gchar *attribute,
- gint id)
-{
-
-}
-
-static void
-gtk_cell_area_box_attribute_disconnect (GtkCellArea *area,
- GtkCellRenderer *renderer,
- const gchar *attribute,
- gint id)
-{
-
-}
-
-static void
-gtk_cell_area_box_attribute_forall (GtkCellArea *area,
- GtkCellRenderer *renderer,
- GtkCellAttributeCallback callback,
- gpointer user_data)
-{
-
-}
-
-
static GtkSizeRequestMode
gtk_cell_area_box_get_request_mode (GtkCellArea *area)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]