Also set the title within the tab labels
This commit is contained in:
parent
230fd1defc
commit
76d467f53a
34
src/surfer.c
34
src/surfer.c
@ -214,7 +214,7 @@ Surfer * _new_do(char const * url)
|
||||
#if GTK_CHECK_VERSION(2, 6, 0)
|
||||
gtk_window_set_icon_name(GTK_WINDOW(surfer->window), "stock_internet");
|
||||
#endif
|
||||
gtk_window_set_title(GTK_WINDOW(surfer->window), "Surfer");
|
||||
gtk_window_set_title(GTK_WINDOW(surfer->window), _("Web surfer"));
|
||||
g_signal_connect_swapped(G_OBJECT(surfer->window), "delete-event",
|
||||
G_CALLBACK(on_closex), surfer);
|
||||
vbox = gtk_vbox_new(FALSE, 0);
|
||||
@ -459,13 +459,28 @@ void surfer_set_title(Surfer * surfer, char const * title)
|
||||
{
|
||||
GtkWidget * view;
|
||||
char buf[256];
|
||||
gint n;
|
||||
gint i;
|
||||
GtkWidget * label;
|
||||
|
||||
if((view = surfer_get_view(surfer)) == NULL)
|
||||
return; /* consider the current tab only */
|
||||
title = ghtml_get_title(view);
|
||||
snprintf(buf, sizeof(buf), "%s%s%s", "Web surfer", (title != NULL)
|
||||
snprintf(buf, sizeof(buf), "%s%s%s", _("Web surfer"), (title != NULL)
|
||||
? " - " : "", (title != NULL) ? title : "");
|
||||
gtk_window_set_title(GTK_WINDOW(surfer->window), buf);
|
||||
/* XXX this could all be much more efficient */
|
||||
n = gtk_notebook_get_n_pages(GTK_NOTEBOOK(surfer->notebook));
|
||||
for(i = 0; i < n; i++)
|
||||
{
|
||||
view = gtk_notebook_get_nth_page(GTK_NOTEBOOK(surfer->notebook),
|
||||
i);
|
||||
if((label = g_object_get_data(G_OBJECT(view), "label")) == NULL)
|
||||
continue;
|
||||
title = ghtml_get_title(view);
|
||||
gtk_label_set_text(GTK_LABEL(label), (title != NULL) ? title
|
||||
: _("Untitled"));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -761,7 +776,8 @@ void surfer_open_dialog(Surfer * surfer)
|
||||
|
||||
|
||||
/* surfer_open_tab */
|
||||
static GtkWidget * _tab_button(Surfer * surfer, char const * label);
|
||||
static GtkWidget * _tab_button(Surfer * surfer, GtkWidget * widget,
|
||||
char const * text);
|
||||
|
||||
void surfer_open_tab(Surfer * surfer, char const * url)
|
||||
{
|
||||
@ -775,20 +791,26 @@ void surfer_open_tab(Surfer * surfer, char const * url)
|
||||
if(url != NULL)
|
||||
ghtml_load_url(widget, url);
|
||||
gtk_notebook_append_page(GTK_NOTEBOOK(surfer->notebook), widget,
|
||||
_tab_button(surfer, _("Untitled")));
|
||||
_tab_button(surfer, widget, _("Untitled")));
|
||||
if(gtk_notebook_get_n_pages(GTK_NOTEBOOK(surfer->notebook)) > 1)
|
||||
gtk_notebook_set_show_tabs(GTK_NOTEBOOK(surfer->notebook),
|
||||
TRUE);
|
||||
gtk_widget_show_all(widget);
|
||||
}
|
||||
|
||||
static GtkWidget * _tab_button(Surfer * surfer, char const * label)
|
||||
static GtkWidget * _tab_button(Surfer * surfer, GtkWidget * widget,
|
||||
char const * text)
|
||||
{
|
||||
GtkWidget * hbox;
|
||||
GtkWidget * label;
|
||||
GtkWidget * button;
|
||||
|
||||
hbox = gtk_hbox_new(FALSE, 0);
|
||||
gtk_box_pack_start(GTK_BOX(hbox), gtk_label_new(label), TRUE, TRUE, 4);
|
||||
label = gtk_label_new(text);
|
||||
gtk_label_set_ellipsize(GTK_LABEL(label), PANGO_ELLIPSIZE_END);
|
||||
gtk_label_set_width_chars(GTK_LABEL(label), 10);
|
||||
g_object_set_data(G_OBJECT(widget), "label", label);
|
||||
gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 4);
|
||||
button = gtk_button_new();
|
||||
gtk_button_set_image(GTK_BUTTON(button), gtk_image_new_from_stock(
|
||||
GTK_STOCK_CLOSE, GTK_ICON_SIZE_MENU));
|
||||
|
Loading…
Reference in New Issue
Block a user