Пример #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 ButtonUp(self, p, button, state):
     p = self.apply_constraint(p, state)
     SelectAndDrag.DragStop(self, p)
     cur = self.drag_cur
     oldstart = self.start
     oldend = self.end
     start, end = self.compute_endpoints()
     self.start = start
     self.end = end
     result = self.ComputeTrafo(oldstart, oldend, start, end)
     self.Normalize()
     return result
Пример #3
0
 def ButtonUp(self, p, button, state):
     if self.selection == self.selCenter:
         p = self.constrain_center(p, state)
     SelectAndDrag.DragStop(self, p)
     sel = self.selection
     if sel == self.selCenter:
         self.center = self.drag_cur
         return '', None
     else:
         self.compute_trafo(state)
         trafo = self.trafo
         if self.selection in self.selShear:
             text = _("Shear Objects")
         else:
             text = _("Rotate Objects")
         return text, trafo
Пример #4
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
Пример #5
0
 def __init__(self):
     SelectAndDrag.__init__(self)
     self.outline_object = None
Пример #6
0
 def MouseMove(self, p, state):
     self.drag_state = state
     if self.selection == self.selCenter:
         p = self.constrain_center(p, state)
     SelectAndDrag.MouseMove(self, p, state)
     self.compute_trafo(state)
Пример #7
0
 def MouseMove(self, p, state):
     p = self.apply_constraint(p, state)
     SelectAndDrag.MouseMove(self, p, state)
     start, end = self.compute_endpoints()
     text, self.trafo = self.ComputeTrafo(self.start, self.end, start, end)
Пример #8
0
 def __init__(self):
     SelectAndDrag.__init__(self)
     self.outline_object = None
Пример #9
0
 def MouseMove(self, p, state):
     p = self.apply_constraint(p, state)
     SelectAndDrag.MouseMove(self, p, state)