210 if self.IsWire(self.SelectedElement): |
210 if self.IsWire(self.SelectedElement): |
211 self.SelectedElement.SetSelectedSegment(None) |
211 self.SelectedElement.SetSelectedSegment(None) |
212 else: |
212 else: |
213 self.SelectedElement.SetSelected(False) |
213 self.SelectedElement.SetSelected(False) |
214 self.SelectedElement = None |
214 self.SelectedElement = None |
215 self.Refresh() |
|
216 if element: |
215 if element: |
217 self.SelectedElement = element |
216 self.SelectedElement = element |
218 self.SelectedElement.OnLeftDown(event, dc, self.Scaling) |
217 self.SelectedElement.OnLeftDown(event, dc, self.Scaling) |
219 self.Refresh() |
218 self.SelectedElement.Refresh() |
220 else: |
219 else: |
221 self.rubberBand.Reset() |
220 self.rubberBand.Reset() |
222 self.rubberBand.OnLeftDown(event, dc, self.Scaling) |
221 self.rubberBand.OnLeftDown(event, dc, self.Scaling) |
223 elif self.Mode == MODE_COMMENT: |
222 elif self.Mode == MODE_COMMENT: |
224 self.rubberBand.Reset() |
223 self.rubberBand.Reset() |
232 wire.Handle = (HANDLE_POINT, 1) |
231 wire.Handle = (HANDLE_POINT, 1) |
233 self.AddWire(wire) |
232 self.AddWire(wire) |
234 if self.SelectedElement: |
233 if self.SelectedElement: |
235 self.SelectedElement.SetSelected(False) |
234 self.SelectedElement.SetSelected(False) |
236 self.SelectedElement = wire |
235 self.SelectedElement = wire |
237 self.Refresh() |
|
238 event.Skip() |
236 event.Skip() |
239 |
237 |
240 def OnViewerLeftUp(self, event): |
238 def OnViewerLeftUp(self, event): |
241 if self.GetDrawingMode() == FREEDRAWING_MODE: |
239 if self.GetDrawingMode() == FREEDRAWING_MODE: |
242 Viewer.OnViewerLeftUp(self, event) |
240 Viewer.OnViewerLeftUp(self, event) |
246 self.rubberBand.OnLeftUp(event, self.GetLogicalDC(), self.Scaling) |
244 self.rubberBand.OnLeftUp(event, self.GetLogicalDC(), self.Scaling) |
247 if len(elements) > 0: |
245 if len(elements) > 0: |
248 self.SelectedElement = Graphic_Group(self) |
246 self.SelectedElement = Graphic_Group(self) |
249 self.SelectedElement.SetElements(elements) |
247 self.SelectedElement.SetElements(elements) |
250 self.SelectedElement.SetSelected(True) |
248 self.SelectedElement.SetSelected(True) |
251 self.Refresh() |
|
252 elif self.Mode == MODE_COMMENT: |
249 elif self.Mode == MODE_COMMENT: |
253 bbox = self.rubberBand.GetCurrentExtent() |
250 bbox = self.rubberBand.GetCurrentExtent() |
254 self.rubberBand.OnLeftUp(event, self.GetLogicalDC(), self.Scaling) |
251 self.rubberBand.OnLeftUp(event, self.GetLogicalDC(), self.Scaling) |
255 wx.CallAfter(self.AddComment, bbox) |
252 wx.CallAfter(self.AddComment, bbox) |
256 elif self.Mode == MODE_INITIALSTEP: |
253 elif self.Mode == MODE_INITIALSTEP: |
258 elif self.Mode == MODE_SELECTION and self.SelectedElement: |
255 elif self.Mode == MODE_SELECTION and self.SelectedElement: |
259 if self.IsWire(self.SelectedElement): |
256 if self.IsWire(self.SelectedElement): |
260 self.SelectedElement.SetSelectedSegment(0) |
257 self.SelectedElement.SetSelectedSegment(0) |
261 else: |
258 else: |
262 self.SelectedElement.OnLeftUp(event, self.GetLogicalDC(), self.Scaling) |
259 self.SelectedElement.OnLeftUp(event, self.GetLogicalDC(), self.Scaling) |
|
260 self.SelectedElement.Refresh() |
263 wx.CallAfter(self.SetCursor, wx.NullCursor) |
261 wx.CallAfter(self.SetCursor, wx.NullCursor) |
264 self.ReleaseMouse() |
|
265 self.Refresh() |
|
266 elif self.Mode == MODE_WIRE and self.SelectedElement: |
262 elif self.Mode == MODE_WIRE and self.SelectedElement: |
267 self.SelectedElement.ResetPoints() |
263 self.SelectedElement.ResetPoints() |
268 self.SelectedElement.OnMotion(event, self.GetLogicalDC(), self.Scaling) |
264 self.SelectedElement.OnMotion(event, self.GetLogicalDC(), self.Scaling) |
269 self.SelectedElement.GeneratePoints() |
265 self.SelectedElement.GeneratePoints() |
270 self.SelectedElement.RefreshModel() |
266 self.SelectedElement.RefreshModel() |
271 self.SelectedElement.SetSelected(True) |
267 self.SelectedElement.SetSelected(True) |
272 self.Refresh() |
|
273 event.Skip() |
268 event.Skip() |
274 |
269 |
275 def OnViewerRightUp(self, event): |
270 def OnViewerRightUp(self, event): |
276 if self.GetDrawingMode() == FREEDRAWING_MODE: |
271 if self.GetDrawingMode() == FREEDRAWING_MODE: |
277 Viewer.OnViewerRightUp(self, event) |
272 Viewer.OnViewerRightUp(self, event) |
286 if self.IsWire(self.SelectedElement): |
281 if self.IsWire(self.SelectedElement): |
287 self.SelectedElement.SetSelectedSegment(0) |
282 self.SelectedElement.SetSelectedSegment(0) |
288 else: |
283 else: |
289 self.SelectedElement.SetSelected(True) |
284 self.SelectedElement.SetSelected(True) |
290 self.SelectedElement.OnRightUp(event, dc, self.Scaling) |
285 self.SelectedElement.OnRightUp(event, dc, self.Scaling) |
|
286 self.SelectedElement.Refresh() |
291 wx.CallAfter(self.SetCursor, wx.NullCursor) |
287 wx.CallAfter(self.SetCursor, wx.NullCursor) |
292 self.ReleaseMouse() |
|
293 self.Refresh() |
|
294 event.Skip() |
288 event.Skip() |
295 |
289 |
296 def OnViewerLeftDClick(self, event): |
290 def OnViewerLeftDClick(self, event): |
297 if self.GetDrawingMode() == FREEDRAWING_MODE: |
291 if self.GetDrawingMode() == FREEDRAWING_MODE: |
298 Viewer.OnViewerLeftDClick(self, event) |
292 Viewer.OnViewerLeftDClick(self, event) |
308 if self.rubberBand.IsShown(): |
302 if self.rubberBand.IsShown(): |
309 self.rubberBand.OnMotion(event, self.GetLogicalDC(), self.Scaling) |
303 self.rubberBand.OnMotion(event, self.GetLogicalDC(), self.Scaling) |
310 elif self.Mode == MODE_SELECTION and self.SelectedElement: |
304 elif self.Mode == MODE_SELECTION and self.SelectedElement: |
311 if not self.IsWire(self.SelectedElement) and not isinstance(self.SelectedElement, Graphic_Group): |
305 if not self.IsWire(self.SelectedElement) and not isinstance(self.SelectedElement, Graphic_Group): |
312 self.SelectedElement.OnMotion(event, self.GetLogicalDC(), self.Scaling) |
306 self.SelectedElement.OnMotion(event, self.GetLogicalDC(), self.Scaling) |
313 self.Refresh() |
307 self.SelectedElement.Refresh() |
314 elif self.Mode == MODE_WIRE and self.SelectedElement: |
308 elif self.Mode == MODE_WIRE and self.SelectedElement: |
315 self.SelectedElement.ResetPoints() |
309 self.SelectedElement.ResetPoints() |
316 self.SelectedElement.OnMotion(event, self.GetLogicalDC(), self.Scaling) |
310 self.SelectedElement.OnMotion(event, self.GetLogicalDC(), self.Scaling) |
317 self.SelectedElement.GeneratePoints() |
311 self.SelectedElement.GeneratePoints() |
318 self.Refresh() |
312 self.SelectedElement.Refresh() |
319 self.UpdateScrollPos(event) |
313 self.UpdateScrollPos(event) |
320 event.Skip() |
314 event.Skip() |
321 |
315 |
322 #------------------------------------------------------------------------------- |
316 #------------------------------------------------------------------------------- |
323 # Keyboard event functions |
317 # Keyboard event functions |
346 elif self.SelectedElement: |
340 elif self.SelectedElement: |
347 self.SelectedElement.Move(-scaling[0], 0) |
341 self.SelectedElement.Move(-scaling[0], 0) |
348 self.SelectedElement.RefreshModel() |
342 self.SelectedElement.RefreshModel() |
349 self.RefreshBuffer() |
343 self.RefreshBuffer() |
350 self.RefreshScrollBars() |
344 self.RefreshScrollBars() |
351 self.Refresh() |
345 self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(-scaling[0], 0))) |
352 elif keycode == wx.WXK_RIGHT: |
346 elif keycode == wx.WXK_RIGHT: |
353 if event.ControlDown() and event.ShiftDown(): |
347 if event.ControlDown() and event.ShiftDown(): |
354 self.Scroll(xmax, ypos) |
348 self.Scroll(xmax, ypos) |
355 elif event.ControlDown(): |
349 elif event.ControlDown(): |
356 event.Skip() |
350 event.Skip() |
357 elif self.SelectedElement: |
351 elif self.SelectedElement: |
358 self.SelectedElement.Move(scaling[0], 0) |
352 self.SelectedElement.Move(scaling[0], 0) |
359 self.SelectedElement.RefreshModel() |
353 self.SelectedElement.RefreshModel() |
360 self.RefreshBuffer() |
354 self.RefreshBuffer() |
361 self.RefreshScrollBars() |
355 self.RefreshScrollBars() |
362 self.Refresh() |
356 self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(scaling[0], 0))) |
363 elif keycode == wx.WXK_UP: |
357 elif keycode == wx.WXK_UP: |
364 if event.ControlDown() and event.ShiftDown(): |
358 if event.ControlDown() and event.ShiftDown(): |
365 self.Scroll(xpos, 0) |
359 self.Scroll(xpos, 0) |
366 elif event.ControlDown(): |
360 elif event.ControlDown(): |
367 event.Skip() |
361 event.Skip() |
368 elif self.SelectedElement: |
362 elif self.SelectedElement: |
369 self.SelectedElement.Move(0, -scaling[1]) |
363 self.SelectedElement.Move(0, -scaling[1]) |
370 self.SelectedElement.RefreshModel() |
364 self.SelectedElement.RefreshModel() |
371 self.RefreshBuffer() |
365 self.RefreshBuffer() |
372 self.RefreshScrollBars() |
366 self.RefreshScrollBars() |
373 self.Refresh() |
367 self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(0, -scaling[1]))) |
374 elif keycode == wx.WXK_DOWN: |
368 elif keycode == wx.WXK_DOWN: |
375 if event.ControlDown() and event.ShiftDown(): |
369 if event.ControlDown() and event.ShiftDown(): |
376 self.Scroll(xpos, ymax) |
370 self.Scroll(xpos, ymax) |
377 elif event.ControlDown(): |
371 elif event.ControlDown(): |
378 event.Skip() |
372 event.Skip() |
379 elif self.SelectedElement: |
373 elif self.SelectedElement: |
380 self.SelectedElement.Move(0, scaling[1]) |
374 self.SelectedElement.Move(0, scaling[1]) |
381 self.SelectedElement.RefreshModel() |
375 self.SelectedElement.RefreshModel() |
382 self.RefreshBuffer() |
376 self.RefreshBuffer() |
383 self.RefreshScrollBars() |
377 self.RefreshScrollBars() |
384 self.Refresh() |
378 self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(0, scaling[1]))) |
385 else: |
379 else: |
386 event.Skip() |
380 event.Skip() |
387 |
381 |
388 #------------------------------------------------------------------------------- |
382 #------------------------------------------------------------------------------- |
389 # Adding element functions |
383 # Adding element functions |