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)
|
#if GTK_CHECK_VERSION(2, 6, 0)
|
||||||
gtk_window_set_icon_name(GTK_WINDOW(surfer->window), "stock_internet");
|
gtk_window_set_icon_name(GTK_WINDOW(surfer->window), "stock_internet");
|
||||||
#endif
|
#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_signal_connect_swapped(G_OBJECT(surfer->window), "delete-event",
|
||||||
G_CALLBACK(on_closex), surfer);
|
G_CALLBACK(on_closex), surfer);
|
||||||
vbox = gtk_vbox_new(FALSE, 0);
|
vbox = gtk_vbox_new(FALSE, 0);
|
||||||
@ -459,13 +459,28 @@ void surfer_set_title(Surfer * surfer, char const * title)
|
|||||||
{
|
{
|
||||||
GtkWidget * view;
|
GtkWidget * view;
|
||||||
char buf[256];
|
char buf[256];
|
||||||
|
gint n;
|
||||||
|
gint i;
|
||||||
|
GtkWidget * label;
|
||||||
|
|
||||||
if((view = surfer_get_view(surfer)) == NULL)
|
if((view = surfer_get_view(surfer)) == NULL)
|
||||||
return; /* consider the current tab only */
|
return; /* consider the current tab only */
|
||||||
title = ghtml_get_title(view);
|
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 : "");
|
? " - " : "", (title != NULL) ? title : "");
|
||||||
gtk_window_set_title(GTK_WINDOW(surfer->window), buf);
|
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 */
|
/* 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)
|
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)
|
if(url != NULL)
|
||||||
ghtml_load_url(widget, url);
|
ghtml_load_url(widget, url);
|
||||||
gtk_notebook_append_page(GTK_NOTEBOOK(surfer->notebook), widget,
|
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)
|
if(gtk_notebook_get_n_pages(GTK_NOTEBOOK(surfer->notebook)) > 1)
|
||||||
gtk_notebook_set_show_tabs(GTK_NOTEBOOK(surfer->notebook),
|
gtk_notebook_set_show_tabs(GTK_NOTEBOOK(surfer->notebook),
|
||||||
TRUE);
|
TRUE);
|
||||||
gtk_widget_show_all(widget);
|
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 * hbox;
|
||||||
|
GtkWidget * label;
|
||||||
GtkWidget * button;
|
GtkWidget * button;
|
||||||
|
|
||||||
hbox = gtk_hbox_new(FALSE, 0);
|
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();
|
button = gtk_button_new();
|
||||||
gtk_button_set_image(GTK_BUTTON(button), gtk_image_new_from_stock(
|
gtk_button_set_image(GTK_BUTTON(button), gtk_image_new_from_stock(
|
||||||
GTK_STOCK_CLOSE, GTK_ICON_SIZE_MENU));
|
GTK_STOCK_CLOSE, GTK_ICON_SIZE_MENU));
|
||||||
|
Loading…
Reference in New Issue
Block a user