tMake GtkListStore derive from GObject - vaccinewars - be a doctor and try to vaccinate the world (HTM) git clone git://src.adamsgaard.dk/vaccinewars (DIR) Log (DIR) Files (DIR) Refs (DIR) README (DIR) LICENSE --- (DIR) commit 7be3bfd72043b8786fddbac23f5b4ab3e988b455 (DIR) parent 2cef1a49dd2aca421d8fd1a93135e726db0f24c2 (HTM) Author: Ben Webb <ben@salilab.org> Date: Sat, 28 Nov 2020 19:03:05 -0800 Make GtkListStore derive from GObject This allows us to cast GtkListStore* to GObject*, and to use GObject behavior such as g_object_set_data(). Diffstat: M src/gtkport/gtkport.c | 2 +- M src/gtkport/gtkport.h | 1 + M src/gtkport/treeview.c | 6 +++++- M src/gtkport/treeview.h | 1 + 4 files changed, 8 insertions(+), 2 deletions(-) --- (DIR) diff --git a/src/gtkport/gtkport.c b/src/gtkport/gtkport.c t@@ -258,7 +258,7 @@ static GtkSignalType GtkObjectSignals[] = { {"", NULL, NULL} }; -static GtkClass GtkObjectClass = { +GtkClass GtkObjectClass = { "object", NULL, sizeof(GObject), GtkObjectSignals, NULL }; (DIR) diff --git a/src/gtkport/gtkport.h b/src/gtkport/gtkport.h t@@ -293,6 +293,7 @@ struct _GtkTableRowCol { }; extern GtkClass GtkContainerClass; +extern GtkClass GtkObjectClass; extern HFONT defFont; extern HINSTANCE hInst; (DIR) diff --git a/src/gtkport/treeview.c b/src/gtkport/treeview.c t@@ -80,6 +80,10 @@ static GtkClass GtkTreeViewClass = { gtk_tree_view_wndproc }; +static GtkClass GtkListStoreClass = { + "list_store", &GtkObjectClass, sizeof(GtkListStore), NULL, NULL +}; + static void SetTreeViewHeaderSize(GtkTreeView *clist) { RECT rc; t@@ -917,7 +921,7 @@ GtkListStore *gtk_list_store_new(gint n_columns, ...) va_list ap; va_start(ap, n_columns); - store = g_new0(GtkListStore, 1); + store = GTK_LIST_STORE(GtkNewObject(&GtkListStoreClass)); store->view = NULL; store->ncols = n_columns; store->coltype = g_new(int, n_columns); (DIR) diff --git a/src/gtkport/treeview.h b/src/gtkport/treeview.h t@@ -86,6 +86,7 @@ struct _GtkListStoreRow { }; struct _GtkListStore { + GObject object; int ncols; /* Number of columns */ int *coltype; /* Type of each column (e.g. G_TYPE_STRING) */ GArray *rows; /* All rows in the list as GtkListStoreRow */