aboutsummaryrefslogtreecommitdiffstats
path: root/gtk/gui_utils.c
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2009-08-27 06:57:53 +0000
committerAnders Broman <anders.broman@ericsson.com>2009-08-27 06:57:53 +0000
commitbeb57e259bef95cead6fe7ff0dceaceae2e754ab (patch)
treed20f41c943cbeb51fd849505766f069ff2541de8 /gtk/gui_utils.c
parent0267ffb01c08da9fb9bb524e1279cc09465b5111 (diff)
make the columns sortable.
svn path=/trunk/; revision=29583
Diffstat (limited to 'gtk/gui_utils.c')
-rw-r--r--gtk/gui_utils.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/gtk/gui_utils.c b/gtk/gui_utils.c
index 29a8c40a31..2a34a504d7 100644
--- a/gtk/gui_utils.c
+++ b/gtk/gui_utils.c
@@ -1221,3 +1221,28 @@ str_ptr_data_func (GtkTreeViewColumn *column _U_,
g_object_set(renderer, "text", str, NULL);
}
+gint
+str_ptr_sort_func(GtkTreeModel *model,
+ GtkTreeIter *a,
+ GtkTreeIter *b,
+ gpointer user_data)
+{
+ const gchar *str_a = NULL;
+ const gchar *str_b = NULL;
+ gint ret = 0;
+
+ /* The col to get data from is in userdata */
+ gint data_column = GPOINTER_TO_INT(user_data);
+
+ gtk_tree_model_get(model, a, data_column, &str_a, -1);
+ gtk_tree_model_get(model, b, data_column, &str_b, -1);
+
+ if (str_a == NULL || str_b == NULL){
+ if (str_a == NULL && str_b == NULL)
+ return 0;
+ ret = (str_a == NULL) ? -1 : 1;
+ }else{
+ ret = g_ascii_strcasecmp(str_a,str_b);
+ }
+ return ret;
+}