static void init_infinity_discovery (GeditCollaborationWindowHelper *helper, InfXmppManager *xmpp_manager) { InfDiscoveryAvahi *discovery; GeditCollaborationUser *user; user = gedit_collaboration_user_get_default (); discovery = inf_discovery_avahi_new (helper->priv->io, xmpp_manager, helper->priv->certificate_credentials, gedit_collaboration_user_get_sasl_context (user), "ANONYMOUS PLAIN"); g_signal_connect (user, "request-password", G_CALLBACK (user_request_password), helper); inf_gtk_browser_store_add_discovery (helper->priv->browser_store, INF_DISCOVERY (discovery)); }
Gobby::Browser::Browser(Gtk::Window& parent, StatusBar& status_bar, ConnectionManager& connection_manager): m_parent(parent), m_status_bar(status_bar), m_connection_manager(connection_manager), m_expander(_("_Direct Connection"), true), m_hbox(false, 6), m_label_hostname(_("Host Name:")), m_entry_hostname(config_filename("recent_hosts"), 5) { m_label_hostname.show(); m_entry_hostname.get_entry()->signal_activate().connect( sigc::mem_fun(*this, &Browser::on_hostname_activate)); m_entry_hostname.show(); m_hbox.pack_start(m_label_hostname, Gtk::PACK_SHRINK); m_hbox.pack_start(m_entry_hostname, Gtk::PACK_EXPAND_WIDGET); m_hbox.show(); m_expander.add(m_hbox); m_expander.show(); m_expander.property_expanded().signal_changed().connect( sigc::mem_fun(*this, &Browser::on_expanded_changed)); m_browser_store = inf_gtk_browser_store_new( connection_manager.get_io(), connection_manager.get_communication_manager()); m_sort_model = inf_gtk_browser_model_sort_new( INF_GTK_BROWSER_MODEL(m_browser_store)); gtk_tree_sortable_set_default_sort_func( GTK_TREE_SORTABLE(m_sort_model), compare_func, NULL, NULL); if(m_connection_manager.get_discovery() != NULL) { inf_gtk_browser_store_add_discovery( m_browser_store, m_connection_manager.get_discovery()); } Glib::ustring known_hosts_file = config_filename("known_hosts"); m_cert_checker = inf_gtk_certificate_manager_new( parent.gobj(), m_connection_manager.get_xmpp_manager(), known_hosts_file.c_str()); m_browser_view = INF_GTK_BROWSER_VIEW( inf_gtk_browser_view_new_with_model( INF_GTK_BROWSER_MODEL(m_sort_model))); gtk_widget_show(GTK_WIDGET(m_browser_view)); gtk_container_add(GTK_CONTAINER(m_scroll.gobj()), GTK_WIDGET(m_browser_view)); m_scroll.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); m_scroll.set_shadow_type(Gtk::SHADOW_IN); m_scroll.show(); g_signal_connect( m_browser_store, "set-browser", G_CALLBACK(&on_set_browser_static), this ); g_signal_connect( m_browser_view, "activate", G_CALLBACK(&on_activate_static), this ); set_spacing(6); pack_start(m_scroll, Gtk::PACK_EXPAND_WIDGET); pack_start(m_expander, Gtk::PACK_SHRINK); init_accessibility(); set_focus_child(m_expander); }
int main(int argc, char* argv[]) { InfGtkIo* io; InfConnectionManager* connection_manager; #ifdef LIBINFINITY_HAVE_AVAHI InfXmppManager* xmpp_manager; InfDiscoveryAvahi* avahi; #endif InfGtkBrowserStore* store; GtkWidget* view; GtkWidget* scroll; GtkWidget* window; gtk_init(&argc, &argv); gnutls_global_init(); io = inf_gtk_io_new(); #ifdef LIBINFINITY_HAVE_AVAHI xmpp_manager = inf_xmpp_manager_new(); avahi = inf_discovery_avahi_new(INF_IO(io), xmpp_manager, NULL, NULL, NULL); g_object_unref(G_OBJECT(xmpp_manager)); #endif connection_manager = inf_connection_manager_new(); store = inf_gtk_browser_store_new(INF_IO(io), connection_manager, NULL); g_object_unref(G_OBJECT(connection_manager)); g_object_unref(G_OBJECT(io)); g_signal_connect( G_OBJECT(store), "set-browser", G_CALLBACK(on_set_browser), NULL ); #ifdef LIBINFINITY_HAVE_AVAHI inf_gtk_browser_store_add_discovery(store, INF_DISCOVERY(avahi)); g_object_unref(G_OBJECT(avahi)); #endif view = inf_gtk_browser_view_new_with_model(INF_GTK_BROWSER_MODEL(store)); g_object_unref(G_OBJECT(store)); gtk_widget_show(view); g_signal_connect( G_OBJECT(view), "activate", G_CALLBACK(on_activate), NULL ); scroll = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW(scroll), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC ); gtk_scrolled_window_set_shadow_type( GTK_SCROLLED_WINDOW(scroll), GTK_SHADOW_IN ); gtk_container_add(GTK_CONTAINER(scroll), view); gtk_widget_show(scroll); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(window),"Infinote Browser"); gtk_window_set_default_size(GTK_WINDOW(window), 400, 400); gtk_window_set_icon_name(GTK_WINDOW(window), "infinote"); gtk_container_set_border_width(GTK_CONTAINER(window), 6); gtk_container_add(GTK_CONTAINER(window), scroll); gtk_widget_show(window); g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(on_destroy), NULL); gtk_main(); return 0; }