class Tab(Gtk.Notebook, TabWidgets): def __init__(self, ClassRegister): Gtk.Notebook.__init__(self) TabWidgets.__init__(self) self.Tabs = Enum() self.TempTabs = Enum() self.NamedTabs = Enum() self.Scrollabe = False self.ClassRegister = ClassRegister self.connect("switch-page", self.tabChanged) def addTab(self, TabWidget, TabLabel, Pos=None): CurrentPage = self.get_n_pages() if Pos: CurrentPage = Pos self.Tabs[CurrentPage] = Enum(TabWidget=TabWidget, TabLabel=TabLabel) TabLabel.connect("close-clicked", self.removeTabByWidget, TabWidget) if hasattr(TabLabel, "get_text"): self.NamedTabs[TabLabel.get_text()] = CurrentPage self.insert_page(TabWidget, TabLabel, CurrentPage) return True def removeTabByWidget(self, TabLabel=None, TabWidget=None): self.remove_page(self.page_num(TabWidget)) def hasTab(self, name): return self.NamedTabs.has_key(name) def tabChanged(self, notebook, current_page, index): if self.ClassRegister.CreatingTabsIsFinish: if hasattr(self.Tabs[index].TabWidget, "preload"): if not self.Tabs[index].TabWidget.IsLoad: self.Tabs[index].TabWidget.preload() if not index: return try: title = self.Tabs[index].TabWidget.title except AttributeError: title = "" if title: self.ClassRegister.Window.set_title("{0} - {1}".format(self.ClassRegister.Windowname, title)) def setScrollabe(self, state=None): if state: self.set_scrollable(state) else: self.set_scrollable(not self.Scrollabe) self.Scrollabe = not self.Scrollabe