# Python imports # Lib imports import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk # Application imports from ..sections_tab_widget import SectionsTabWidget from ..page_widget import Page class Pages(Gtk.Notebook): def __init__(self, close_tab): super(Pages, self).__init__() self._close_tab = close_tab self._tab_widget = SectionsTabWidget(self, self._close_tab) self._setup_styling() self._setup_signals() self._load_widgets() self.show_all() def _setup_styling(self): self.set_tab_pos(1) # NOTE: LEFT = 0, RIGHT = 1, TOP = 2, BOTTOM = 3 def _setup_signals(self): self.set_scrollable(True) def _load_widgets(self): start_box = Gtk.Box() end_box = Gtk.Box() search = Gtk.SearchEntry() search.set_placeholder_text("Search...") search.connect("changed", self._text_search) add_btn = Gtk.Button() add_btn.set_image( Gtk.Image.new_from_icon_name("add", 4) ) add_btn.set_always_show_image(True) add_btn.connect("released", self.create_page_view) start_box.add(search) start_box.add(add_btn) start_box.show_all() end_box.show_all() # PACKTYPE: 0 Start, 1 = End self.set_action_widget(start_box, 0) self.set_action_widget(end_box, 1) def _close_tab(self, button, page, eve = None): page_num = self.page_num(page) self.remove_page(page_num) def create_page_view(self, widget = None, eve = None): page = Page(self._close_tab) page_num = self.append_page(page, page.get_tab_widget()) self.set_tab_detachable(page, False) self.set_tab_reorderable(page, True) self.show_all() self.set_current_page(page_num) def get_tab_widget(self): return self._tab_widget def _text_search(self, widget = None, eve = None): ...