diff options
author | Benjamin Otte <otte@redhat.com> | 2023-03-30 13:18:15 +0200 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2023-04-01 20:49:40 +0200 |
commit | 7a4ad81ed61cf39bcad5d89942bebe6f52e2dce2 (patch) | |
tree | e1912ce2d5be65b4aeb8d944f6e9fa09d7edb82e /gtk/gtkcolumnviewcellwidget.c | |
parent | e76d615d5f622d24300880e62afc1901c4cdbcbb (diff) | |
download | gtk+-7a4ad81ed61cf39bcad5d89942bebe6f52e2dce2.tar.gz |
columnview: Add GtkColumnViewCell
This splits GtkListItem into 2 objects.
It is fully backwards compatible.
Using GtkListItem for GtkColumnView is now de-facto deprecated.
Diffstat (limited to 'gtk/gtkcolumnviewcellwidget.c')
-rw-r--r-- | gtk/gtkcolumnviewcellwidget.c | 49 |
1 files changed, 19 insertions, 30 deletions
diff --git a/gtk/gtkcolumnviewcellwidget.c b/gtk/gtkcolumnviewcellwidget.c index 7020de1c0e..eb3ab7835e 100644 --- a/gtk/gtkcolumnviewcellwidget.c +++ b/gtk/gtkcolumnviewcellwidget.c @@ -21,12 +21,12 @@ #include "gtkcolumnviewcellwidgetprivate.h" +#include "gtkcolumnviewcellprivate.h" #include "gtkcolumnviewcolumnprivate.h" #include "gtkcolumnviewrowwidgetprivate.h" #include "gtkcssboxesprivate.h" #include "gtkcssnodeprivate.h" #include "gtklistfactorywidgetprivate.h" -#include "gtklistitemprivate.h" #include "gtkprivate.h" #include "gtkwidgetprivate.h" @@ -117,15 +117,7 @@ gtk_column_view_cell_widget_grab_focus (GtkWidget *widget) static gpointer gtk_column_view_cell_widget_create_object (GtkListFactoryWidget *fw) { - GtkListItem *list_item; - - list_item = gtk_list_item_new (); - - gtk_list_item_set_selectable (list_item, FALSE); - gtk_list_item_set_activatable (list_item, FALSE); - gtk_list_item_set_focusable (list_item, FALSE); - - return list_item; + return gtk_column_view_cell_new (); } static void @@ -133,20 +125,20 @@ gtk_column_view_cell_widget_setup_object (GtkListFactoryWidget *fw, gpointer object) { GtkColumnViewCellWidget *self = GTK_COLUMN_VIEW_CELL_WIDGET (fw); - GtkListItem *list_item = object; + GtkColumnViewCell *cell = object; GTK_LIST_FACTORY_WIDGET_CLASS (gtk_column_view_cell_widget_parent_class)->setup_object (fw, object); - list_item->cell = self; + cell->cell = self; - gtk_column_view_cell_widget_set_child (GTK_COLUMN_VIEW_CELL_WIDGET (self), list_item->child); + gtk_column_view_cell_widget_set_child (GTK_COLUMN_VIEW_CELL_WIDGET (self), cell->child); - gtk_widget_set_focusable (GTK_WIDGET (self), list_item->focusable); + gtk_widget_set_focusable (GTK_WIDGET (self), cell->focusable); - gtk_list_item_do_notify (list_item, - gtk_list_item_base_get_item (GTK_LIST_ITEM_BASE (self)) != NULL, - gtk_list_item_base_get_position (GTK_LIST_ITEM_BASE (self)) != GTK_INVALID_LIST_POSITION, - gtk_list_item_base_get_selected (GTK_LIST_ITEM_BASE (self))); + gtk_column_view_cell_do_notify (cell, + gtk_list_item_base_get_item (GTK_LIST_ITEM_BASE (self)) != NULL, + gtk_list_item_base_get_position (GTK_LIST_ITEM_BASE (self)) != GTK_INVALID_LIST_POSITION, + gtk_list_item_base_get_selected (GTK_LIST_ITEM_BASE (self))); } static void @@ -154,23 +146,20 @@ gtk_column_view_cell_widget_teardown_object (GtkListFactoryWidget *fw, gpointer object) { GtkColumnViewCellWidget *self = GTK_COLUMN_VIEW_CELL_WIDGET (fw); - GtkListItem *list_item = object; + GtkColumnViewCell *cell = object; GTK_LIST_FACTORY_WIDGET_CLASS (gtk_column_view_cell_widget_parent_class)->teardown_object (fw, object); - list_item->cell = NULL; + cell->cell = NULL; gtk_column_view_cell_widget_set_child (GTK_COLUMN_VIEW_CELL_WIDGET (self), NULL); gtk_widget_set_focusable (GTK_WIDGET (self), FALSE); - gtk_list_item_do_notify (list_item, - gtk_list_item_base_get_item (GTK_LIST_ITEM_BASE (self)) != NULL, - gtk_list_item_base_get_position (GTK_LIST_ITEM_BASE (self)) != GTK_INVALID_LIST_POSITION, - gtk_list_item_base_get_selected (GTK_LIST_ITEM_BASE (self))); - - /* FIXME: This is technically not correct, the child is user code, isn't it? */ - gtk_list_item_set_child (list_item, NULL); + gtk_column_view_cell_do_notify (cell, + gtk_list_item_base_get_item (GTK_LIST_ITEM_BASE (self)) != NULL, + gtk_list_item_base_get_position (GTK_LIST_ITEM_BASE (self)) != GTK_INVALID_LIST_POSITION, + gtk_list_item_base_get_selected (GTK_LIST_ITEM_BASE (self))); } static void @@ -182,7 +171,7 @@ gtk_column_view_cell_widget_update_object (GtkListFactoryWidget *fw, { GtkColumnViewCellWidget *self = GTK_COLUMN_VIEW_CELL_WIDGET (fw); GtkListItemBase *base = GTK_LIST_ITEM_BASE (self); - GtkListItem *list_item = object; + GtkColumnViewCell *cell = object; /* Track notify manually instead of freeze/thaw_notify for performance reasons. */ gboolean notify_item = FALSE, notify_position = FALSE, notify_selected = FALSE; @@ -197,8 +186,8 @@ gtk_column_view_cell_widget_update_object (GtkListFactoryWidget *fw, item, selected); - if (list_item) - gtk_list_item_do_notify (list_item, notify_item, notify_position, notify_selected); + if (cell) + gtk_column_view_cell_do_notify (cell, notify_item, notify_position, notify_selected); } static int |