Commit 1e9ebddde05b4b9a14fd7d0b998320cd3a95611d

Authored by tfmoraes
1 parent a2e45b2a

ENH: Suport to mouse wheel in the preview panel

Showing 1 changed file with 30 additions and 9 deletions   Show diff stats
invesalius/gui/dicom_preview_panel.py
... ... @@ -367,6 +367,7 @@ class DicomPreviewSeries(wx.Panel):
367 367 def _bind_events(self):
368 368 # When the user scrolls the window
369 369 self.Bind(wx.EVT_SCROLL, self.OnScroll)
  370 + self.Bind(wx.EVT_MOUSEWHEEL, self.OnWheel)
370 371  
371 372 def OnSelect(self, evt):
372 373 print dir(evt)
... ... @@ -438,11 +439,20 @@ class DicomPreviewSeries(wx.Panel):
438 439 for f, p in zip(self.files[initial:final], self.previews):
439 440 p.Show()
440 441  
441   - def OnScroll(self, evt):
442   - if self.displayed_position != evt.GetPosition():
443   - self.displayed_position = evt.GetPosition()
444   - self._display_previews()
  442 + def OnScroll(self, evt=None):
  443 + if evt:
  444 + if self.displayed_position != evt.GetPosition():
  445 + self.displayed_position = evt.GetPosition()
  446 + else:
  447 + if self.displayed_position != self.scroll.GetThumbPosition():
  448 + self.displayed_position = self.scroll.GetThumbPosition()
  449 + self._display_previews()
445 450  
  451 + def OnWheel(self, evt):
  452 + print "OnWheel"
  453 + d = evt.GetWheelDelta() / evt.GetWheelRotation()
  454 + self.scroll.SetThumbPosition(self.scroll.GetThumbPosition() - d)
  455 + self.OnScroll()
446 456  
447 457 class DicomPreviewSlice(wx.Panel):
448 458 """A dicom preview panel"""
... ... @@ -493,6 +503,7 @@ class DicomPreviewSlice(wx.Panel):
493 503 def _bind_events(self):
494 504 # When the user scrolls the window
495 505 self.Bind(wx.EVT_SCROLL, self.OnScroll)
  506 + self.Bind(wx.EVT_MOUSEWHEEL, self.OnWheel)
496 507  
497 508 def SetDicomDirectory(self, directory):
498 509 print "Setting Dicom Directory", directory
... ... @@ -580,11 +591,6 @@ class DicomPreviewSlice(wx.Panel):
580 591 for f, p in zip(self.files[initial:final], self.previews):
581 592 p.Show()
582 593  
583   - def OnScroll(self, evt):
584   - if self.displayed_position != evt.GetPosition():
585   - self.displayed_position = evt.GetPosition()
586   - self._display_previews()
587   -
588 594 def OnPreviewClick(self, evt):
589 595 print "Hey man, you've clicked over me"
590 596 my_evt = SerieEvent(myEVT_CLICK_SLICE, self.GetId())
... ... @@ -601,6 +607,20 @@ class DicomPreviewSlice(wx.Panel):
601 607 self.selected_dicom = self.selected_panel.dicom_info
602 608 self.GetEventHandler().ProcessEvent(my_evt)
603 609  
  610 + def OnScroll(self, evt=None):
  611 + if evt:
  612 + if self.displayed_position != evt.GetPosition():
  613 + self.displayed_position = evt.GetPosition()
  614 + else:
  615 + if self.displayed_position != self.scroll.GetThumbPosition():
  616 + self.displayed_position = self.scroll.GetThumbPosition()
  617 + self._display_previews()
  618 +
  619 + def OnWheel(self, evt):
  620 + print "OnWheel"
  621 + d = evt.GetWheelDelta() / evt.GetWheelRotation()
  622 + self.scroll.SetThumbPosition(self.scroll.GetThumbPosition() - d)
  623 + self.OnScroll()
604 624  
605 625 class SingleImagePreview(wx.Panel):
606 626 def __init__(self, parent):
... ... @@ -753,6 +773,7 @@ class SingleImagePreview(wx.Panel):
753 773 ## Text related to slice position
754 774 value1 = STR_SPC %(dicom.image.spacing[2])
755 775 value2 = STR_LOCAL %(dicom.image.position[2])
  776 + print "Este eh o meu tipo", type(value1)
756 777 value = "%s\n%s" %(value1, value2)
757 778 self.text_image_location.SetValue(value)
758 779  
... ...