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: