Exemplo n.º 1
0
    def add_keep_rect_within_constraint(canvas, parent, child):
        solver = canvas.solver

        child_nw = ItemProjection(child.handles()[NW].pos, child, parent)
        child_se = ItemProjection(child.handles()[SE].pos, child, parent)
        constraint = KeepRectangleWithinConstraint(parent.handles()[NW].pos, parent.handles()[SE].pos,
                                                   child_nw, child_se, child, lambda: parent.border_width)
        solver.add_constraint(constraint)
        parent.keep_rect_constraints[child] = constraint
Exemplo n.º 2
0
 def _keep_handle_in_parent_state(self, handle):
     canvas = self.canvas
     parent = canvas.get_parent(self)
     solver = canvas.solver
     if parent is None:
         return
     handle_pos = ItemProjection(handle.pos, self, self.parent)
     constraint = KeepPointWithinConstraint(parent.handles()[NW].pos, parent.handles()[SE].pos,
                                            handle_pos, lambda: parent.border_width)
     solver.add_constraint(constraint)
     self._waypoint_constraints.append(constraint)