aboutsummaryrefslogtreecommitdiffstats
path: root/mdns.c
diff options
context:
space:
mode:
authorkraxel <kraxel>2006-01-30 13:51:22 +0000
committerkraxel <kraxel>2006-01-30 13:51:22 +0000
commitc28bc1bc12c466c58a71eeed8f2d38e46008ee2f (patch)
tree78a4b1b3a7cd0de09620dc1d6690db68eb8088e0 /mdns.c
parent0c4259cab79fe4c57cf2eb626170d5855f2ebb9a (diff)
downloadxenwatch-c28bc1bc12c466c58a71eeed8f2d38e46008ee2f.tar.gz
- xfer.
Diffstat (limited to 'mdns.c')
-rw-r--r--mdns.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/mdns.c b/mdns.c
index 3f6d66f..c7375b9 100644
--- a/mdns.c
+++ b/mdns.c
@@ -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;
}