Commit 1e9ebddde05b4b9a14fd7d0b998320cd3a95611d
1 parent
a2e45b2a
Exists in
master
and in
6 other branches
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 |