editors/Viewer.py
branchwxPython4
changeset 3304 3d736248ab3b
parent 3303 0ffb41625592
child 3529 b9737bb5f92a
equal deleted inserted replaced
3303:0ffb41625592 3304:3d736248ab3b
   823         return self.CurrentScale
   823         return self.CurrentScale
   824 
   824 
   825     def GetViewScale(self):
   825     def GetViewScale(self):
   826         return self.ViewScale
   826         return self.ViewScale
   827 
   827 
   828     def GetLogicalDC(self, buffered=False):
   828     def PrepareDC(self, dc):
   829         if buffered:
       
   830             bitmap = wx.Bitmap(*self.Editor.GetClientSize())
       
   831             dc = wx.MemoryDC(bitmap)
       
   832         else:
       
   833             dc = wx.ClientDC(self.Editor)
       
   834         dc.SetFont(self.GetFont())
   829         dc.SetFont(self.GetFont())
   835         self.Editor.DoPrepareDC(dc)
   830         self.Editor.DoPrepareDC(dc)
   836         dc.SetUserScale(self.ViewScale[0], self.ViewScale[1])
   831         dc.SetUserScale(self.ViewScale[0], self.ViewScale[1])
       
   832 
       
   833     def GetLogicalDC(self):
       
   834         dc = wx.ClientDC(self.Editor)
       
   835         self.PrepareDC(dc)
   837         return dc
   836         return dc
   838 
   837 
   839     def RefreshRect(self, rect, eraseBackground=True):
   838     def RefreshRect(self, rect, eraseBackground=True):
   840         self.Editor.RefreshRect(rect, eraseBackground)
   839         self.Editor.RefreshRect(rect, eraseBackground)
   841 
   840 
  3679                 self.InstanceName.Draw(dc)
  3678                 self.InstanceName.Draw(dc)
  3680             if self.rubberBand.IsShown():
  3679             if self.rubberBand.IsShown():
  3681                 self.rubberBand.Draw(dc)
  3680                 self.rubberBand.Draw(dc)
  3682 
  3681 
  3683     def OnPaint(self, event):
  3682     def OnPaint(self, event):
  3684         dc = self.GetLogicalDC(True)
  3683         event.Skip()
       
  3684         sx,sy = self.Editor.GetClientSize()
       
  3685         if sx <= 0 or sy <= 0 :
       
  3686             return
       
  3687         dc = wx.MemoryDC(wx.Bitmap(sx,sy))
       
  3688         self.PrepareDC(dc)
  3685         self.DoDrawing(dc)
  3689         self.DoDrawing(dc)
  3686         wx.BufferedPaintDC(self.Editor, dc.GetAsBitmap())
  3690         wx.BufferedPaintDC(self.Editor, dc.GetAsBitmap())
  3687         if self.Debug:
  3691         if self.Debug:
  3688             DebugViewer.RefreshNewData(self)
  3692             DebugViewer.RefreshNewData(self)
  3689         event.Skip()