from .auxiliary import Position class Snap(object): """Snap-to-edges manager""" def __init__(self, size, tolerance, list): self.tolerance = tolerance self.horizontal = set() self.vertical = set() for i in list: self.vertical.add(i[0].left) self.vertical.add(i[0].left+i[1].width) self.horizontal.add(i[0].top) self.horizontal.add(i[0].top+i[1].height) self.vertical.add(i[0].left-size.width) self.vertical.add(i[0].left+i[1].width-size.width) self.horizontal.add(i[0].top-size.height) self.horizontal.add(i[0].top+i[1].height-size.height) def suggest(self, position): vertical = [x for x in self.vertical if abs(x-position[0])