Viewer.py
changeset 363 5eb9c5536334
parent 361 62570186dad4
child 372 8cab11dd2325
equal deleted inserted replaced
362:f56181aa99ea 363:5eb9c5536334
   448     def __del__(self):
   448     def __del__(self):
   449         DebugViewer.__del__(self)
   449         DebugViewer.__del__(self)
   450         self.Flush()
   450         self.Flush()
   451         self.ResetView()
   451         self.ResetView()
   452     
   452     
   453     def SetScale(self, scale_number):
   453     def SetScale(self, scale_number, refresh=True):
   454         self.CurrentScale = max(0, min(scale_number, len(ZOOM_FACTORS) - 1))
   454         self.CurrentScale = max(0, min(scale_number, len(ZOOM_FACTORS) - 1))
   455         self.ViewScale = (ZOOM_FACTORS[self.CurrentScale], ZOOM_FACTORS[self.CurrentScale])
   455         self.ViewScale = (ZOOM_FACTORS[self.CurrentScale], ZOOM_FACTORS[self.CurrentScale])
   456         self.RefreshScaling()
   456         self.RefreshScaling(refresh)
   457 
   457 
   458     def GetScale(self):
   458     def GetScale(self):
   459         return self.CurrentScale
   459         return self.CurrentScale
   460 
   460 
   461     def GetLogicalDC(self, buffered=False):
   461     def GetLogicalDC(self, buffered=False):
   640             self.PagePen = wx.Pen(wx.Colour(180, 180, 180))
   640             self.PagePen = wx.Pen(wx.Colour(180, 180, 180))
   641         else:
   641         else:
   642             self.PageSize = None
   642             self.PageSize = None
   643             self.PagePen = wx.TRANSPARENT_PEN
   643             self.PagePen = wx.TRANSPARENT_PEN
   644         if refresh:
   644         if refresh:
       
   645             self.RefreshVisibleElements()
   645             self.Refresh(False)
   646             self.Refresh(False)
   646         
   647         
   647         
   648         
   648 #-------------------------------------------------------------------------------
   649 #-------------------------------------------------------------------------------
   649 #                          Refresh functions
   650 #                          Refresh functions
  2806                 xp = max(0, min(x - rotation * 3, self.GetVirtualSize()[0] / self.GetScrollPixelsPerUnit()[0]))
  2807                 xp = max(0, min(x - rotation * 3, self.GetVirtualSize()[0] / self.GetScrollPixelsPerUnit()[0]))
  2807                 self.RefreshVisibleElements(xp = xp)
  2808                 self.RefreshVisibleElements(xp = xp)
  2808                 self.Scroll(xp, y)
  2809                 self.Scroll(xp, y)
  2809             elif event.ControlDown():
  2810             elif event.ControlDown():
  2810                 dc = self.GetLogicalDC()
  2811                 dc = self.GetLogicalDC()
       
  2812                 self.Freeze()
  2811                 pos = event.GetLogicalPosition(dc)
  2813                 pos = event.GetLogicalPosition(dc)
  2812                 mouse_pos = event.GetPosition()
  2814                 mouse_pos = event.GetPosition()
  2813                 self.SetScale(self.CurrentScale + rotation)
  2815                 self.SetScale(self.CurrentScale + rotation, False)
  2814                 self.Scroll(round(pos.x * self.ViewScale[0] - mouse_pos.x) / SCROLLBAR_UNIT,
  2816                 xmax = self.GetScrollRange(wx.HORIZONTAL) - self.GetScrollThumb(wx.HORIZONTAL)
  2815                             round(pos.y * self.ViewScale[1] - mouse_pos.y) / SCROLLBAR_UNIT)
  2817                 ymax = self.GetScrollRange(wx.VERTICAL) - self.GetScrollThumb(wx.VERTICAL)
  2816                 self.RefreshScrollBars()
  2818                 scrollx = max(0, round(pos.x * self.ViewScale[0] - mouse_pos.x) / SCROLLBAR_UNIT)
       
  2819                 scrolly = max(0, round(pos.y * self.ViewScale[1] - mouse_pos.y) / SCROLLBAR_UNIT)
       
  2820                 if scrollx > xmax or scrolly > ymax:
       
  2821                     self.RefreshScrollBars(max(0, scrollx - xmax), max(0, scrolly - ymax))
       
  2822                     self.Scroll(scrollx, scrolly)
       
  2823                 else:
       
  2824                     self.Scroll(scrollx, scrolly)
       
  2825                     self.RefreshScrollBars()
  2817                 self.RefreshVisibleElements()
  2826                 self.RefreshVisibleElements()
  2818                 self.Refresh()
  2827                 self.Refresh()
       
  2828                 self.Thaw()
  2819                 self.ParentWindow.RefreshDisplayMenu()
  2829                 self.ParentWindow.RefreshDisplayMenu()
  2820             else:
  2830             else:
  2821                 x, y = self.GetViewStart()
  2831                 x, y = self.GetViewStart()
  2822                 yp = max(0, min(y - rotation * 3, self.GetVirtualSize()[1] / self.GetScrollPixelsPerUnit()[1]))
  2832                 yp = max(0, min(y - rotation * 3, self.GetVirtualSize()[1] / self.GetScrollPixelsPerUnit()[1]))
  2823                 self.RefreshVisibleElements(yp = yp)
  2833                 self.RefreshVisibleElements(yp = yp)