Exemplo n.º 1
0
    def __init__(self, document=None):
        GObject.Object.__init__(self)
        self._document = document
        self._paned = Gtk.Paned()
        self._paned.show()
        self._view1 = None
        self._view2 = None

        if document:
            self._document = document
            self._name = document.name
        else:
            self._document = Document()
            EditorTab.untitled_counter += 1
            self._name = "Untitled %d" % EditorTab.untitled_counter
            self._document.set_name(self._name)

        self._tab_widget = TabLabel(self._name)
        self._tab_widget.connect("close-clicked", self._on_close_clicked)

        # connect to signals to update state
        self._document.connect("read-start", self._on_document_busy)
        self._document.connect("read-complete", self._on_document_ready)
        self._document.connect("info-changed", self._on_document_info_changed)
        # call info changed since document has queried info prior to being added
        self._on_document_info_changed(self._document, None)

        self._buffer = GtkSource.Buffer()  # create buffer before views
        sw, self._view1 = self._create_view()
        self._paned.add1(sw)

        box = Gtk.VBox()
        box.pack_start(self._paned, True, True, 0)
        #box.pack_start(self._infobar, False, True, 0)
        box.show()

        self._page_widget = box
        # yuck, I don't like this. Let's create a widget for the page_widget
        self._page_widget.editor_tab = self