tAdd support for G_TYPE_INT to list store - 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 faacc26fe63bc4333bfabb89fa87b9b680d30b5f (DIR) parent 6b5a20bd79872de4d3a6b005b8111fe7d3e2f204 (HTM) Author: Ben Webb <ben@salilab.org> Date: Thu, 26 Nov 2020 01:12:27 -0800 Add support for G_TYPE_INT to list store Diffstat: M src/gtkport/gtkenums.h | 1 + M src/gtkport/treeview.c | 18 ++++++++++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) --- (DIR) diff --git a/src/gtkport/gtkenums.h b/src/gtkport/gtkenums.h t@@ -131,6 +131,7 @@ enum { G_TYPE_STRING, G_TYPE_UINT, + G_TYPE_INT, G_TYPE_POINTER }; (DIR) diff --git a/src/gtkport/treeview.c b/src/gtkport/treeview.c t@@ -366,7 +366,10 @@ void gtk_list_store_set(GtkListStore *list_store, GtkTreeIter *iter, ...) row->data[colind] = g_strdup(va_arg(ap, const char*)); break; case G_TYPE_UINT: - row->data[colind] = GINT_TO_POINTER(va_arg(ap, unsigned)); + row->data[colind] = GUINT_TO_POINTER(va_arg(ap, unsigned)); + break; + case G_TYPE_INT: + row->data[colind] = GINT_TO_POINTER(va_arg(ap, int)); break; case G_TYPE_POINTER: row->data[colind] = va_arg(ap, gpointer); t@@ -393,6 +396,7 @@ void gtk_tree_model_get(GtkTreeModel *tree_model, GtkTreeIter *iter, ...) va_list ap; char **strpt; unsigned *uintpt; + int *intpt; gpointer *ptpt; int colind; GtkListStoreRow *row = &g_array_index(tree_model->rows, GtkListStoreRow, t@@ -407,7 +411,11 @@ void gtk_tree_model_get(GtkTreeModel *tree_model, GtkTreeIter *iter, ...) break; case G_TYPE_UINT: uintpt = va_arg(ap, unsigned *); - *uintpt = GPOINTER_TO_INT(row->data[colind]); + *uintpt = GPOINTER_TO_UINT(row->data[colind]); + break; + case G_TYPE_INT: + intpt = va_arg(ap, int *); + *intpt = GPOINTER_TO_INT(row->data[colind]); break; case G_TYPE_POINTER: ptpt = va_arg(ap, gpointer *); t@@ -486,6 +494,11 @@ static void draw_cell_text(GtkTreeViewColumn *col, GtkTreeModel *model, } break; case G_TYPE_UINT: + val = g_strdup_printf("%u", GPOINTER_TO_UINT(row->data[modcol])); + myDrawText(lpdis->hDC, val, -1, rcCol, align); + g_free(val); + break; + case G_TYPE_INT: val = g_strdup_printf("%d", GPOINTER_TO_INT(row->data[modcol])); myDrawText(lpdis->hDC, val, -1, rcCol, align); g_free(val); t@@ -618,6 +631,7 @@ void gtk_tree_view_update_widths(GtkTreeView *tv, GtkTreeModel *model, text = row->data[modcol]; break; case G_TYPE_UINT: + case G_TYPE_INT: text = "9999"; /* hack */ break; default: