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,6 +367,7 @@ class DicomPreviewSeries(wx.Panel):
367 def _bind_events(self): 367 def _bind_events(self):
368 # When the user scrolls the window 368 # When the user scrolls the window
369 self.Bind(wx.EVT_SCROLL, self.OnScroll) 369 self.Bind(wx.EVT_SCROLL, self.OnScroll)
  370 + self.Bind(wx.EVT_MOUSEWHEEL, self.OnWheel)
370 371
371 def OnSelect(self, evt): 372 def OnSelect(self, evt):
372 print dir(evt) 373 print dir(evt)
@@ -438,11 +439,20 @@ class DicomPreviewSeries(wx.Panel): @@ -438,11 +439,20 @@ class DicomPreviewSeries(wx.Panel):
438 for f, p in zip(self.files[initial:final], self.previews): 439 for f, p in zip(self.files[initial:final], self.previews):
439 p.Show() 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 class DicomPreviewSlice(wx.Panel): 457 class DicomPreviewSlice(wx.Panel):
448 """A dicom preview panel""" 458 """A dicom preview panel"""
@@ -493,6 +503,7 @@ class DicomPreviewSlice(wx.Panel): @@ -493,6 +503,7 @@ class DicomPreviewSlice(wx.Panel):
493 def _bind_events(self): 503 def _bind_events(self):
494 # When the user scrolls the window 504 # When the user scrolls the window
495 self.Bind(wx.EVT_SCROLL, self.OnScroll) 505 self.Bind(wx.EVT_SCROLL, self.OnScroll)
  506 + self.Bind(wx.EVT_MOUSEWHEEL, self.OnWheel)
496 507
497 def SetDicomDirectory(self, directory): 508 def SetDicomDirectory(self, directory):
498 print "Setting Dicom Directory", directory 509 print "Setting Dicom Directory", directory
@@ -580,11 +591,6 @@ class DicomPreviewSlice(wx.Panel): @@ -580,11 +591,6 @@ class DicomPreviewSlice(wx.Panel):
580 for f, p in zip(self.files[initial:final], self.previews): 591 for f, p in zip(self.files[initial:final], self.previews):
581 p.Show() 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 def OnPreviewClick(self, evt): 594 def OnPreviewClick(self, evt):
589 print "Hey man, you've clicked over me" 595 print "Hey man, you've clicked over me"
590 my_evt = SerieEvent(myEVT_CLICK_SLICE, self.GetId()) 596 my_evt = SerieEvent(myEVT_CLICK_SLICE, self.GetId())
@@ -601,6 +607,20 @@ class DicomPreviewSlice(wx.Panel): @@ -601,6 +607,20 @@ class DicomPreviewSlice(wx.Panel):
601 self.selected_dicom = self.selected_panel.dicom_info 607 self.selected_dicom = self.selected_panel.dicom_info
602 self.GetEventHandler().ProcessEvent(my_evt) 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 class SingleImagePreview(wx.Panel): 625 class SingleImagePreview(wx.Panel):
606 def __init__(self, parent): 626 def __init__(self, parent):
@@ -753,6 +773,7 @@ class SingleImagePreview(wx.Panel): @@ -753,6 +773,7 @@ class SingleImagePreview(wx.Panel):
753 ## Text related to slice position 773 ## Text related to slice position
754 value1 = STR_SPC %(dicom.image.spacing[2]) 774 value1 = STR_SPC %(dicom.image.spacing[2])
755 value2 = STR_LOCAL %(dicom.image.position[2]) 775 value2 = STR_LOCAL %(dicom.image.position[2])
  776 + print "Este eh o meu tipo", type(value1)
756 value = "%s\n%s" %(value1, value2) 777 value = "%s\n%s" %(value1, value2)
757 self.text_image_location.SetValue(value) 778 self.text_image_location.SetValue(value)
758 779