static void on_htmlview_title_changed (gpointer object, gchar *title, gpointer user_data) { tabInfo *tab = (tabInfo *)user_data; gtk_label_set_text (GTK_LABEL(tab->label), create_label_text (title)); }
static void on_htmlview_title_changed (gpointer object, gchar *title, gpointer user_data) { tabInfo *tab = (tabInfo *)user_data; GtkWidget *label; label = gtk_notebook_get_tab_label (tabs->priv->notebook, tab->widget); gtk_label_set_text (GTK_LABEL(label), create_label_text (title)); }
LifereaHtmlView * browser_tabs_add_new (const gchar *url, const gchar *title, gboolean activate) { GtkWidget *close_button, *labelBox; tabInfo *tab; int i; tab = g_new0 (tabInfo, 1); tab->htmlview = liferea_htmlview_new (TRUE /* internal browsing */); tab->widget = liferea_htmlview_get_widget (tab->htmlview); tabs->priv->list = g_slist_append (tabs->priv->list, tab); g_object_set_data (G_OBJECT (tab->widget), "tabInfo", tab); g_signal_connect (tab->htmlview, "title-changed", G_CALLBACK (on_htmlview_title_changed), tab); g_signal_connect (tab->htmlview, "statusbar-changed", G_CALLBACK (on_htmlview_status_message), NULL); /* create tab widgets */ tab->label = gtk_label_new (create_label_text (title)); gtk_label_set_ellipsize (GTK_LABEL (tab->label), PANGO_ELLIPSIZE_END); gtk_label_set_width_chars (GTK_LABEL (tab->label), 17); labelBox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 4); gtk_box_pack_start (GTK_BOX (labelBox), tab->label, FALSE, FALSE, 0); close_button = gedit_close_button_new (); gtk_box_pack_end (GTK_BOX (labelBox), close_button, FALSE, FALSE, 0); g_signal_connect ((gpointer)close_button, "clicked", G_CALLBACK (on_htmlview_close_tab), (gpointer)tab); gtk_widget_show_all (labelBox); i = gtk_notebook_append_page (tabs->priv->notebook, tab->widget, labelBox); g_signal_connect (gtk_notebook_get_nth_page (tabs->priv->notebook, i), "key-press-event", G_CALLBACK (on_tab_key_press), (gpointer)tab); gtk_notebook_set_show_tabs (tabs->priv->notebook, TRUE); gtk_notebook_set_tab_reorderable (tabs->priv->notebook, tab->widget, TRUE); if (activate && (i != -1)) gtk_notebook_set_current_page (tabs->priv->notebook, i); if (url) liferea_htmlview_launch_URL_internal (tab->htmlview, (gchar *)url); return tab->htmlview; }
LifereaHtmlView * browser_tabs_add_new (const gchar *url, const gchar *title, gboolean activate) { GtkWidget *widget, *label, *toolbar, *htmlframe, *image; tabInfo *tab; int i; tab = g_new0 (tabInfo, 1); tab->widget = gtk_vbox_new (FALSE, 0); tab->htmlview = liferea_htmlview_new (TRUE); tab->history = browser_tab_history_new (); tabs->priv->list = g_slist_append (tabs->priv->list, tab); g_object_set_data (G_OBJECT (tab->widget), "tabInfo", tab); g_signal_connect (tab->htmlview, "title-changed", G_CALLBACK (on_htmlview_title_changed), tab); g_signal_connect (tab->htmlview, "location-changed", G_CALLBACK (on_htmlview_location_changed), tab); g_signal_connect (tab->htmlview, "statusbar-changed", G_CALLBACK (on_htmlview_status_message), NULL); /* create tab widgets */ label = gtk_label_new (create_label_text (title)); gtk_label_set_ellipsize (GTK_LABEL(label), PANGO_ELLIPSIZE_END); gtk_label_set_max_width_chars (GTK_LABEL(label), 17); gtk_widget_show (label); toolbar = gtk_hbox_new (FALSE, 6); widget = gtk_button_new (); gtk_button_set_relief (GTK_BUTTON (widget), GTK_RELIEF_NONE); image = gtk_image_new_from_stock ("gtk-go-back", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image); gtk_container_add (GTK_CONTAINER (widget), image); gtk_box_pack_start (GTK_BOX (toolbar), widget, FALSE, FALSE, 0); g_signal_connect ((gpointer)widget, "clicked", G_CALLBACK (on_tab_history_back), (gpointer)tab); gtk_widget_set_sensitive(widget, FALSE); tab->back = widget; widget = gtk_button_new (); gtk_button_set_relief (GTK_BUTTON(widget), GTK_RELIEF_NONE); image = gtk_image_new_from_stock ("gtk-go-forward", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image); gtk_container_add (GTK_CONTAINER (widget), image); gtk_box_pack_start (GTK_BOX (toolbar), widget, FALSE, FALSE, 0); g_signal_connect ((gpointer)widget, "clicked", G_CALLBACK (on_tab_history_forward), (gpointer)tab); gtk_widget_set_sensitive (widget, FALSE); tab->forward = widget; widget = gtk_entry_new (); gtk_entry_set_text (GTK_ENTRY (widget), url?url:""); g_object_set_data (G_OBJECT (tab->widget), "url_entry", widget); gtk_box_pack_start (GTK_BOX (toolbar), widget, TRUE, TRUE, 0); g_signal_connect ((gpointer)widget, "activate", G_CALLBACK (on_tab_url_entry_activate), (gpointer)tab); tab->urlentry = widget; widget = gtk_button_new (); gtk_button_set_relief (GTK_BUTTON(widget), GTK_RELIEF_NONE); image = gtk_image_new_from_stock ("gtk-close", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image); gtk_container_add (GTK_CONTAINER (widget), image); gtk_box_pack_end (GTK_BOX (toolbar), widget, FALSE, FALSE, 0); g_signal_connect ((gpointer)widget, "clicked", G_CALLBACK (on_htmlview_close_tab), (gpointer)tab); htmlframe = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (htmlframe), GTK_SHADOW_IN); gtk_container_add (GTK_CONTAINER (htmlframe), liferea_htmlview_get_widget (tab->htmlview)); gtk_box_pack_start (GTK_BOX (tab->widget), toolbar, FALSE, FALSE, 0); gtk_box_pack_end (GTK_BOX (tab->widget), htmlframe, TRUE, TRUE, 0); gtk_widget_show_all (tab->widget); i = gtk_notebook_append_page (tabs->priv->notebook, tab->widget, label); g_signal_connect (gtk_notebook_get_nth_page (tabs->priv->notebook, i), "key-press-event", G_CALLBACK (on_tab_key_press), (gpointer)tab); gtk_notebook_set_show_tabs (tabs->priv->notebook, TRUE); gtk_notebook_set_tab_reorderable (tabs->priv->notebook, tab->widget, TRUE); if (activate && (i != -1)) gtk_notebook_set_current_page (tabs->priv->notebook, i); if (url) { browser_tab_history_add_location (tab, (gchar *)url); liferea_htmlview_launch_URL_internal (tab->htmlview, (gchar *)url); } return tab->htmlview; }