示例#1
0
/** Close tab and removes tab info structure */
static void
browser_tabs_close_tab (tabInfo *tab)
{	
	int	n = 0;
	GList	*iter, *list;

	/* Find the tab index that needs to be closed */
	iter = list = gtk_container_get_children (GTK_CONTAINER (tabs->priv->notebook));
	while (iter) {
		if (tab->widget == GTK_WIDGET (iter->data))
			break;
		n++;
		iter = g_list_next (iter);
	}
	g_list_free (list);

	if (iter) {
		gtk_notebook_remove_page (tabs->priv->notebook, n);
		browser_tabs_remove_tab (tab);
	}
		
	/* check if all tabs are closed */
	if (1 == gtk_notebook_get_n_pages (tabs->priv->notebook))
		gtk_notebook_set_show_tabs (tabs->priv->notebook, FALSE);
}
示例#2
0
static void
browser_tabs_finalize (GObject *object)
{
	BrowserTabs	*bt = BROWSER_TABS (object);
	GSList		*iter = bt->priv->list;

	while (iter) {
		browser_tabs_remove_tab (iter->data);
		iter = g_slist_next (iter);
	}
	
	G_OBJECT_CLASS (parent_class)->finalize (object);
}
示例#3
0
/** Close tab and removes tab info structure */
static void
browser_tabs_close_tab (tabInfo *tab)
{	
	int		n;

	n = gtk_notebook_get_current_page (tabs->priv->notebook);
	gtk_notebook_remove_page (tabs->priv->notebook, n);

	browser_tabs_remove_tab (tab);
		
	/* check if all tabs are closed */
	if (1 == gtk_notebook_get_n_pages (tabs->priv->notebook))
		gtk_notebook_set_show_tabs (tabs->priv->notebook, FALSE);
}