All pastes #988055 Raw Edit

Untitled

public text v1 · immutable
#988055 ·published 2008-04-17 05:28 UTC
rendered paste body
#!/usr/bin/env python
#
#   Expand Tabs
#   Copyright (C) 2008 Christopher Williams
#
#   Based on:
#   Only One Close Button - Epiphany Extension
#   Copyright (C) 2006  Stefan Stuhr
#
#   Tab Close Button	
#   Copyright (C) 2005, 2006 Christian Persch
#
#   This program is free software; you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation; either version 2 of the License, or
#   (at your option) any later version.
#
#   This program is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU General Public License for more details.
#
#   You should have received a copy of the GNU General Public License along
#   with this program; if not, write to the Free Software Foundation, Inc.,
#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

def on_switch_page(notebook, page, page_num):
	if notebook._oocb_current > -1:
		old_child = notebook.get_nth_page(notebook._oocb_current)
		if old_child:
			old_tab = notebook.get_tab_label(old_child)
			old_tab.get_children()[-1].hide()

	child = notebook.get_nth_page(page_num)
	tab = notebook.get_tab_label(child)
	tab.get_children()[-1].show()
	notebook._oocb_current = page_num

def attach_window(window):
	notebook = window.get_notebook()
	notebook.connect("switch-page", on_switch_page)
	notebook._expandtabs_current = 0

def detach_window(window):
	notebook = window.get_notebook()
	notebook.disconnect_by_func(on_switch_page)
	del notebook._oocb_current

def attach_tab(window, child):
	notebook = window.get_notebook()
	tab = notebook.get_tab_label(child)
	if len(notebook.get_children()) == 2:
		first_tab = notebook.get_tab_label(notebook.get_children()[0])
		first_tab.set_size_request(48, -1)

	tab.get_children()[-1].hide()
	tab.set_size_request(48, -1)
	notebook.child_set(child, "tab-expand", True)