def add_child(self, node): self._children if self._children: self._children[-1]._link_ref = wref(node) node._link_right = wref(self._children[-1]) node._link_parent = wref(self) self._children += node, self._notify_children_change()
def _set_children(self, children): self._children = list(children) prev = None for child in self._children: child._link_left = wref(prev) child._link_parent = wref(self) prev = child prev = None for child in reversed(self._children): child._link_right = wref(prev) prev = child
def __init__(self, sexpr, owner): self._owner = owner self._type = djvu.const.get_text_zone_type(sexpr[0].value) x0, y0, x1, y1 = (sexpr[i].value for i in xrange(1, 5)) self._x = x0 self._y = y0 self._w = x1 - x0 self._h = y1 - y0 self._link_left = self._link_right = self._link_parent = wref(None)
def remove_child(self, child): child_idx = self._children.index(child) if child_idx - 1 >= 0: self._children[child_idx - 1]._link_right = child._link_right if child_idx + 1 < len(self._children): self._children[child_idx + 1]._link_left = child._link_left child._link_left = child._link_right = child._link_parent = wref(None) del self._children[child_idx] self._notify_children_change()
def __init__(self, sexpr, owner): self._owner = owner self._type = djvu.const.get_text_zone_type(sexpr[0].value) x0, y0, x1, y1 = (sexpr[i].value for i in xrange(1, 5)) self._x = x0 self._y = y0 self._w = x1 - x0 self._h = y1 - y0 self._link_left = self._link_right = self._link_parent = wref(None) self.shapes = [] self.blits = [] self.shape_selected = False
def __init__(self, sexpr, owner): self._owner = owner self._type = None self._link_left = self._link_right = self._link_parent = wref(None)