Gobby::ChatSessionView::ChatSessionView(InfChatSession* session, const Glib::ustring& title, const Glib::ustring& path, const Glib::ustring& hostname, Preferences& preferences): SessionView(INF_SESSION(session), title, path, hostname), m_preferences(preferences), m_chat(INF_GTK_CHAT(inf_gtk_chat_new())) { inf_gtk_chat_set_session(m_chat, session); gtk_widget_show(GTK_WIDGET(m_chat)); gtk_box_pack_start(GTK_BOX(gobj()), GTK_WIDGET(m_chat), TRUE, TRUE, 0); }
static void subscribe_chat_cb (InfcNodeRequest *infcnoderequest, InfcBrowserIter *iter, gpointer data) { InfcSessionProxy *proxy; InfSession *session; ChatData *cdata = (ChatData *) data; GtkWidget *chat; proxy = infc_browser_get_chat_session (cdata->browser); if (proxy == NULL) { free_chat_data (data); return; } session = infc_session_proxy_get_session (proxy); cdata->proxy = proxy; chat = inf_gtk_chat_new (); cdata->chat = chat; inf_gtk_chat_set_session (INF_GTK_CHAT (chat), INF_CHAT_SESSION (session)); g_signal_connect_after (session, "synchronization-failed", G_CALLBACK (sync_failed), data); g_signal_connect_after (session, "synchronization-complete", G_CALLBACK (sync_completed), data); }