Пример #1
0
 def ButtonDown(self, p, button, state):
     self.drag_state = state
     self.trafo = Identity
     self.trafo_desc = (0, 0)
     SelectAndDrag.DragStart(self, p)
     sel = self.selection
     if sel == self.selCenter:
         self.drag_cur = self.drag_start = self.center
         return p - self.center
     ds_x = ds_y = 0
     if sel in self.selLeft:
         ds_x = self.start.x
     if sel in self.selTop:
         ds_y = self.start.y
     if sel in self.selRight:
         ds_x = self.end.x
     if sel in self.selBottom:
         ds_y = self.end.y
     self.drag_cur = self.drag_start = ds = Point(ds_x, ds_y)
     if sel in self.selTurn:
         vec = ds - self.center
         self.start_angle = math.atan2(vec.y, vec.x)
     else:
         if sel == 2:
             self.reference = self.end.y
         elif sel == 4:
             self.reference = self.start.x
         elif sel == 6:
             self.reference = self.start.y
         elif sel == 8:
             self.reference = self.end.x
     return p - ds
Пример #2
0
 def ButtonDown(self, p, button, state):
     SelectAndDrag.DragStart(self, p)
     sel = self.selection
     if sel == -1:
         if self.anchor:  #XXX shouldn't this be 'if self.anchor is not None'
             start = self.anchor
         else:
             start = self.start
         self.drag_start = self.drag_cur = start
         return (p - start, self.coord_rect.translated(-start))
     ds_x, ds_y = (self.start + self.end) / 2
     if sel in self.selLeft:
         ds_x = self.start.x
     if sel in self.selTop:
         ds_y = self.start.y
     if sel in self.selRight:
         ds_x = self.end.x
     if sel in self.selBottom:
         ds_y = self.end.y
     self.drag_cur = self.drag_start = ds = Point(ds_x, ds_y)
     self.init_constraint()
     return p - ds