}
static void
-gtk_column_view_cell_root (GtkWidget *widget)
-{
- GtkColumnViewCell *self = GTK_COLUMN_VIEW_CELL (widget);
-
- GTK_WIDGET_CLASS (gtk_column_view_cell_parent_class)->root (widget);
-
- self->next_cell = gtk_column_view_column_get_first_cell (self->column);
- if (self->next_cell)
- self->next_cell->prev_cell = self;
-
- gtk_column_view_column_add_cell (self->column, self);
-}
-
-static void
-gtk_column_view_cell_unroot (GtkWidget *widget)
+gtk_column_view_cell_dispose (GObject *object)
{
- GtkColumnViewCell *self = GTK_COLUMN_VIEW_CELL (widget);
-
- gtk_column_view_column_remove_cell (self->column, self);
-
- if (self->prev_cell)
- self->prev_cell->next_cell = self->next_cell;
- if (self->next_cell)
- self->next_cell->prev_cell = self->prev_cell;
+ GtkColumnViewCell *self = GTK_COLUMN_VIEW_CELL (object);
- self->prev_cell = NULL;
- self->next_cell = NULL;
+ if (self->column)
+ {
+ gtk_column_view_column_remove_cell (self->column, self);
- GTK_WIDGET_CLASS (gtk_column_view_cell_parent_class)->unroot (widget);
-}
+ if (self->prev_cell)
+ self->prev_cell->next_cell = self->next_cell;
+ if (self->next_cell)
+ self->next_cell->prev_cell = self->prev_cell;
-static void
-gtk_column_view_cell_dispose (GObject *object)
-{
- GtkColumnViewCell *self = GTK_COLUMN_VIEW_CELL (object);
+ self->prev_cell = NULL;
+ self->next_cell = NULL;
- g_clear_object (&self->column);
+ g_clear_object (&self->column);
+ }
G_OBJECT_CLASS (gtk_column_view_cell_parent_class)->dispose (object);
}
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- widget_class->root = gtk_column_view_cell_root;
- widget_class->unroot = gtk_column_view_cell_unroot;
widget_class->measure = gtk_column_view_cell_measure;
widget_class->size_allocate = gtk_column_view_cell_size_allocate;
widget_class->get_request_mode = gtk_column_view_cell_get_request_mode;
GtkWidget *
gtk_column_view_cell_new (GtkColumnViewColumn *column)
{
- GtkColumnViewCell *cell;
+ GtkColumnViewCell *self;
- cell = g_object_new (GTK_TYPE_COLUMN_VIEW_CELL,
+ self = g_object_new (GTK_TYPE_COLUMN_VIEW_CELL,
"factory", gtk_column_view_column_get_factory (column),
NULL);
- cell->column = g_object_ref (column);
+ self->column = g_object_ref (column);
+
+ self->next_cell = gtk_column_view_column_get_first_cell (self->column);
+ if (self->next_cell)
+ self->next_cell->prev_cell = self;
+
+ gtk_column_view_column_add_cell (self->column, self);
- return GTK_WIDGET (cell);
+ return GTK_WIDGET (self);
}
void