diff options
author | kraxel <kraxel> | 2006-01-30 13:51:22 +0000 |
---|---|---|
committer | kraxel <kraxel> | 2006-01-30 13:51:22 +0000 |
commit | c28bc1bc12c466c58a71eeed8f2d38e46008ee2f (patch) | |
tree | 78a4b1b3a7cd0de09620dc1d6690db68eb8088e0 /mdns.c | |
parent | 0c4259cab79fe4c57cf2eb626170d5855f2ebb9a (diff) | |
download | xenwatch-c28bc1bc12c466c58a71eeed8f2d38e46008ee2f.tar.gz |
- xfer.
Diffstat (limited to 'mdns.c')
-rw-r--r-- | mdns.c | 27 |
1 files changed, 27 insertions, 0 deletions
@@ -543,9 +543,29 @@ static char ui_xml[] = /* ------------------------------------------------------------------ */ +static gint gtk_sort_iter_compare_str(GtkTreeModel *model, + GtkTreeIter *a, + GtkTreeIter *b, + gpointer userdata) +{ + gint sortcol = GPOINTER_TO_INT(userdata); + char *aa,*bb; + + gtk_tree_model_get(model, a, sortcol, &aa, -1); + gtk_tree_model_get(model, b, sortcol, &bb, -1); + if (NULL == aa && NULL == bb) + return 0; + if (NULL == aa) + return 1; + if (NULL == bb) + return -1; + return strcmp(aa,bb); +} + static GtkWidget *mdns_create_view(struct mdns_window *mdns) { GtkCellRenderer *renderer; + GtkTreeSortable *sortable; GtkWidget *view; view = gtk_tree_view_new(); @@ -635,6 +655,13 @@ static GtkWidget *mdns_create_view(struct mdns_window *mdns) (GTK_TREE_VIEW(view), -1, "", renderer, NULL); + sortable = GTK_TREE_SORTABLE(mdns->store); + gtk_tree_sortable_set_sort_func(sortable, ST_COL_NAME, + gtk_sort_iter_compare_str, + GINT_TO_POINTER(ST_COL_NAME), NULL); + gtk_tree_sortable_set_sort_column_id(sortable, ST_COL_NAME, + GTK_SORT_ASCENDING); + return view; } |