# Python imports # Lib imports import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk # Application imports from .pages_tab_widget import PagesTabWidget class Page(Gtk.ScrolledWindow): def __init__(self, close_tab, section_pth, manifest_pth): super(Page, self).__init__() self._close_tab = close_tab self._tab_widget = PagesTabWidget(self, self._close_tab) self._manifest_pth = settings.generate_page_manifest(section_pth) if not manifest_pth else manifest_pth self._name = None self._date = None self._setup_styling() self._setup_signals() self._subscribe_to_events() self._load_widgets() def _setup_styling(self): ... def _setup_signals(self): ... def _subscribe_to_events(self): ... def _load_widgets(self): viewport = Gtk.Viewport() viewport.set_vexpand(True) viewport.set_hexpand(True) fixed = Gtk.Fixed() viewport.add(fixed) self.add(viewport) def get_tab_widget(self): return self._tab_widget def get_manifest_pth(self): return self._manifest_pth def _load_page_manifest(self, manifest_pth = None): if manifest_pth: self._manifest_pth = manifest_pth with open(self._manifest_pth, "r") as f: lines = f.readlines() for line in lines: parts = line.split("=") if parts[0] == "name": self._name = parts[1].strip() if parts[0] == "date": self._date = parts[1].strip()