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 */