288 #------------------------------------------------------------------------------- |
288 #------------------------------------------------------------------------------- |
289 # Keyboard event functions |
289 # Keyboard event functions |
290 #------------------------------------------------------------------------------- |
290 #------------------------------------------------------------------------------- |
291 |
291 |
292 def OnChar(self, event): |
292 def OnChar(self, event): |
293 xpos, ypos = self.GetScrollPos(wx.HORIZONTAL), self.GetScrollPos(wx.VERTICAL) |
293 if self.GetDrawingMode() == FREEDRAWING_MODE: |
294 xmax = self.GetScrollRange(wx.HORIZONTAL) - self.GetScrollThumb(wx.HORIZONTAL) |
294 Viewer.OnChar(self, event) |
295 ymax = self.GetScrollRange(wx.VERTICAL) - self.GetScrollThumb(wx.VERTICAL) |
295 else: |
296 keycode = event.GetKeyCode() |
296 xpos, ypos = self.GetScrollPos(wx.HORIZONTAL), self.GetScrollPos(wx.VERTICAL) |
297 if self.Scaling: |
297 xmax = self.GetScrollRange(wx.HORIZONTAL) - self.GetScrollThumb(wx.HORIZONTAL) |
298 scaling = self.Scaling |
298 ymax = self.GetScrollRange(wx.VERTICAL) - self.GetScrollThumb(wx.VERTICAL) |
299 else: |
299 keycode = event.GetKeyCode() |
300 scaling = (8, 8) |
300 if self.Scaling: |
301 if keycode == wx.WXK_DELETE and self.SelectedElement: |
301 scaling = self.Scaling |
302 self.SelectedElement.Delete() |
302 else: |
303 self.SelectedElement = None |
303 scaling = (8, 8) |
304 self.RefreshBuffer() |
304 if keycode == wx.WXK_DELETE and self.SelectedElement: |
305 self.RefreshScrollBars() |
305 self.SelectedElement.Delete() |
306 self.Refresh(False) |
306 self.SelectedElement = None |
307 elif keycode == wx.WXK_LEFT: |
|
308 if event.ControlDown() and event.ShiftDown(): |
|
309 self.Scroll(0, ypos) |
|
310 elif event.ControlDown(): |
|
311 event.Skip() |
|
312 elif self.SelectedElement: |
|
313 self.SelectedElement.Move(-scaling[0], 0) |
|
314 self.SelectedElement.RefreshModel() |
|
315 self.RefreshBuffer() |
307 self.RefreshBuffer() |
316 self.RefreshScrollBars() |
308 self.RefreshScrollBars() |
317 self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(-scaling[0], 0)), False) |
309 self.Refresh(False) |
318 elif keycode == wx.WXK_RIGHT: |
310 elif keycode == wx.WXK_LEFT: |
319 if event.ControlDown() and event.ShiftDown(): |
311 if event.ControlDown() and event.ShiftDown(): |
320 self.Scroll(xmax, ypos) |
312 self.Scroll(0, ypos) |
321 elif event.ControlDown(): |
313 elif event.ControlDown(): |
|
314 event.Skip() |
|
315 elif self.SelectedElement: |
|
316 self.SelectedElement.Move(-scaling[0], 0) |
|
317 self.SelectedElement.RefreshModel() |
|
318 self.RefreshBuffer() |
|
319 self.RefreshScrollBars() |
|
320 self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(-scaling[0], 0)), False) |
|
321 elif keycode == wx.WXK_RIGHT: |
|
322 if event.ControlDown() and event.ShiftDown(): |
|
323 self.Scroll(xmax, ypos) |
|
324 elif event.ControlDown(): |
|
325 event.Skip() |
|
326 elif self.SelectedElement: |
|
327 self.SelectedElement.Move(scaling[0], 0) |
|
328 self.SelectedElement.RefreshModel() |
|
329 self.RefreshBuffer() |
|
330 self.RefreshScrollBars() |
|
331 self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(scaling[0], 0)), False) |
|
332 elif keycode == wx.WXK_UP: |
|
333 if event.ControlDown() and event.ShiftDown(): |
|
334 self.Scroll(xpos, 0) |
|
335 elif event.ControlDown(): |
|
336 event.Skip() |
|
337 elif self.SelectedElement: |
|
338 self.SelectedElement.Move(0, -scaling[1]) |
|
339 self.SelectedElement.RefreshModel() |
|
340 self.RefreshBuffer() |
|
341 self.RefreshScrollBars() |
|
342 self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(0, -scaling[1])), False) |
|
343 elif keycode == wx.WXK_DOWN: |
|
344 if event.ControlDown() and event.ShiftDown(): |
|
345 self.Scroll(xpos, ymax) |
|
346 elif event.ControlDown(): |
|
347 event.Skip() |
|
348 elif self.SelectedElement: |
|
349 self.SelectedElement.Move(0, scaling[1]) |
|
350 self.SelectedElement.RefreshModel() |
|
351 self.RefreshBuffer() |
|
352 self.RefreshScrollBars() |
|
353 self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(0, scaling[1])), False) |
|
354 else: |
322 event.Skip() |
355 event.Skip() |
323 elif self.SelectedElement: |
|
324 self.SelectedElement.Move(scaling[0], 0) |
|
325 self.SelectedElement.RefreshModel() |
|
326 self.RefreshBuffer() |
|
327 self.RefreshScrollBars() |
|
328 self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(scaling[0], 0)), False) |
|
329 elif keycode == wx.WXK_UP: |
|
330 if event.ControlDown() and event.ShiftDown(): |
|
331 self.Scroll(xpos, 0) |
|
332 elif event.ControlDown(): |
|
333 event.Skip() |
|
334 elif self.SelectedElement: |
|
335 self.SelectedElement.Move(0, -scaling[1]) |
|
336 self.SelectedElement.RefreshModel() |
|
337 self.RefreshBuffer() |
|
338 self.RefreshScrollBars() |
|
339 self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(0, -scaling[1])), False) |
|
340 elif keycode == wx.WXK_DOWN: |
|
341 if event.ControlDown() and event.ShiftDown(): |
|
342 self.Scroll(xpos, ymax) |
|
343 elif event.ControlDown(): |
|
344 event.Skip() |
|
345 elif self.SelectedElement: |
|
346 self.SelectedElement.Move(0, scaling[1]) |
|
347 self.SelectedElement.RefreshModel() |
|
348 self.RefreshBuffer() |
|
349 self.RefreshScrollBars() |
|
350 self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(0, scaling[1])), False) |
|
351 else: |
|
352 event.Skip() |
|
353 |
356 |
354 #------------------------------------------------------------------------------- |
357 #------------------------------------------------------------------------------- |
355 # Adding element functions |
358 # Adding element functions |
356 #------------------------------------------------------------------------------- |
359 #------------------------------------------------------------------------------- |
357 |
360 |