]> git.0d.be Git - empathy.git/commitdiff
Improve the contact-manager to display contacts in a combobox
authorXavier Claessens <xclaesse@src.gnome.org>
Thu, 4 Dec 2008 20:38:55 +0000 (20:38 +0000)
committerXavier Claessens <xclaesse@src.gnome.org>
Thu, 4 Dec 2008 20:38:55 +0000 (20:38 +0000)
svn path=/trunk/; revision=1946

tests/contact-manager.c

index 31a6012498b66dca9b6ab2b6c2ef799bec13a625..4372f20931b0d0e48f80c8fda2858f4b3d6cbbca 100644 (file)
@@ -1,36 +1,41 @@
 #include <stdlib.h>
 
 #include <glib.h>
+#include <gtk/gtk.h>
 #include <libempathy/empathy-contact-manager.h>
 #include <libempathy/empathy-debug.h>
 
-
-static gboolean
-time_out (gpointer main_loop)
-{
-       g_main_loop_quit (main_loop);
-
-       return FALSE;
-}
+#include <libempathy-gtk/empathy-contact-list-store.h>
 
 int
 main (int argc, char **argv)
 {
        EmpathyContactManager *manager;
        GMainLoop             *main_loop;
+       EmpathyContactListStore *store;
+       GtkWidget *combo;
+       GtkWidget *window;
+       GtkCellRenderer *renderer;
 
-       g_type_init ();
+       gtk_init (&argc, &argv);
 
        empathy_debug_set_flags (g_getenv ("EMPATHY_DEBUG"));
        main_loop = g_main_loop_new (NULL, FALSE);
        manager = empathy_contact_manager_new ();
-
-       g_timeout_add_seconds (5, time_out, main_loop);
-
-       g_main_loop_run (main_loop);
-
+       store = empathy_contact_list_store_new (EMPATHY_CONTACT_LIST (manager));
+       empathy_contact_list_store_set_is_compact (store, TRUE);
+       empathy_contact_list_store_set_show_groups (store, FALSE);
+       combo = gtk_combo_box_new_with_model (GTK_TREE_MODEL (store));
+       renderer = gtk_cell_renderer_text_new ();
+       gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, TRUE);
+       gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (combo), renderer, "text", EMPATHY_CONTACT_LIST_STORE_COL_NAME);
+       window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+       gtk_container_add (GTK_CONTAINER (window), combo);
+       gtk_widget_show (combo);
+       gtk_widget_show (window);
        g_object_unref (manager);
-       g_main_loop_unref (main_loop);
+
+       gtk_main ();
 
        return EXIT_SUCCESS;
 }