def __init__(self, textview=None): RichTextBaseBuffer.__init__(self, RichTextTagTable()) # indentation manager self._indent = IndentHandler(self) # set of all anchors in buffer self._anchors = set() self._child_uninit = set() # anchors that still need to be added, # they are defferred because textview was not available at insert-time self._anchors_deferred = set()
def _on_delete_range(self, textbuffer, start, end): # TODO: should I add something like this back? # let indent manager prepare the delete #if self.is_interactive(): # self._indent.prepare_delete_range(start, end) # call super class RichTextBaseBuffer._on_delete_range(self, textbuffer, start, end) # deregister any deleted anchors for kind, offset, param in self._next_action.contents: if kind == "anchor": self._anchors.remove(param[0])
def get_font(self, font=None): """Get font under cursor""" if font is None: font = RichTextFont() return RichTextBaseBuffer.get_font(self, font)
def clear(self): """Clear buffer contents""" RichTextBaseBuffer.clear(self) self._anchors.clear() self._anchors_deferred.clear()