#include <config.h>
-#include <libempathy-gtk/empathy-roster-view.h>
-#include <libempathy-gtk/empathy-ui-utils.h>
+#include "libempathy-gtk/empathy-roster-model.h"
+#include "libempathy-gtk/empathy-roster-model-manager.h"
+
+#include "libempathy-gtk/empathy-roster-view.h"
+#include "libempathy-gtk/empathy-ui-utils.h"
static gboolean show_offline = FALSE;
static gboolean show_groups = FALSE;
gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, button, time);
}
+static gboolean
+individual_tooltip_cb (EmpathyRosterView *view,
+ FolksIndividual *individual,
+ gboolean keyboard_mode,
+ GtkTooltip *tooltip,
+ gpointer user_data)
+{
+ gtk_tooltip_set_text (tooltip,
+ folks_alias_details_get_alias (FOLKS_ALIAS_DETAILS (individual)));
+
+ return TRUE;
+}
+
+static void
+empty_cb (EmpathyRosterView *view,
+ GParamSpec *spec,
+ gpointer user_data)
+{
+ if (empathy_roster_view_is_empty (view))
+ g_print ("view is now empty\n");
+ else
+ g_print ("view is no longer empty\n");
+}
+
int
main (int argc,
char **argv)
EmpathyIndividualManager *mgr;
GError *error = NULL;
GOptionContext *context;
+ EmpathyRosterModel *model;
gtk_init (&argc, &argv);
empathy_gtk_init ();
mgr = empathy_individual_manager_dup_singleton ();
- view = empathy_roster_view_new (mgr);
+ model = EMPATHY_ROSTER_MODEL (empathy_roster_model_manager_new (mgr));
+ view = empathy_roster_view_new (model);
+ g_object_unref (model);
g_signal_connect (view, "individual-activated",
G_CALLBACK (individual_activated_cb), NULL);
g_signal_connect (view, "popup-individual-menu",
G_CALLBACK (popup_individual_menu_cb), NULL);
+ g_signal_connect (view, "notify::empty",
+ G_CALLBACK (empty_cb), NULL);
+ g_signal_connect (view, "individual-tooltip",
+ G_CALLBACK (individual_tooltip_cb), NULL);
+
+ gtk_widget_set_has_tooltip (view, TRUE);
empathy_roster_view_show_offline (EMPATHY_ROSTER_VIEW (view), show_offline);
empathy_roster_view_show_groups (EMPATHY_ROSTER_VIEW (view), show_groups);