def __init__(self, net, id, position, size): NetItem.__init__(self, net, id) self.point1 = citems.Point(self, "point1", citems.AbsPlacement(position)) self.point1.action = "resize_ltop" self.point2 = citems.Point( self, "point2", citems.AbsPlacement(utils.vector_add(position, size))) self.point2.owner = self self.point2.action = "resize_rbottom"
def add_point(self, position): inscription_position = self.inscription.get_position() for i, (a, b) in enumerate(utils.pairs_generator(self.get_all_points())): if utils.is_near_line_segment(a, b, position, 5): point = citems.Point(self, "point", citems.AbsPlacement(position)) point.owner = self self.points.insert(i, point) break self.inscription.set_position(inscription_position) self.net.changed( ) # Canvas items changed, so self.changed() is not sufficient
def __init__(self, net, id, from_item, to_item, points): NetItem.__init__(self, net, id) self.from_item = from_item self.to_item = to_item self.points = [ citems.Point(self, "point", citems.AbsPlacement(p)) for p in points ] self.line = citems.ArrowLine(self, "line", self.get_all_points) self.inscription = citems.Text(self, "inscription", self.line.get_relative_placement(None), "") self.label_simrun = citems.SimRunLabel( self, "simrunbox", self.inscription.get_relative_placement((0, 18), absolute=False)) self.label_simrun.text_fn = self.get_simrun_label_text