/[thuban]/branches/WIP-pyshapelib-bramz/Thuban/UI/view.py
ViewVC logotype

Diff of /branches/WIP-pyshapelib-bramz/Thuban/UI/view.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1551 by bh, Fri Jul 18 15:23:48 2003 UTC revision 1552 by bh, Wed Aug 6 17:21:32 2003 UTC
# Line 111  class MapCanvas(wxWindow, ViewPort): Line 111  class MapCanvas(wxWindow, ViewPort):
111    
112          self.backgroundColor = wx.wxWHITE_BRUSH          self.backgroundColor = wx.wxWHITE_BRUSH
113    
114            # Set to true if there ever is an error during redraw. There
115            # should never be errors, but unfortunately bugs happen.
116            self.error_on_redraw = 0
117    
118          # subscribe the WX events we're interested in          # subscribe the WX events we're interested in
119          EVT_PAINT(self, self.OnPaint)          EVT_PAINT(self, self.OnPaint)
120          EVT_LEFT_DOWN(self, self.OnLeftDown)          EVT_LEFT_DOWN(self, self.OnLeftDown)
# Line 173  class MapCanvas(wxWindow, ViewPort): Line 177  class MapCanvas(wxWindow, ViewPort):
177              dc.EndDrawing()              dc.EndDrawing()
178    
179      def OnIdle(self, event):      def OnIdle(self, event):
180          # render the screen if necessary          """Idle handler. Redraw the bitmap if necessary"""
181    
182          if self.bitmap != -1:          if self.bitmap != -1:
183              return              return
184            if self.error_on_redraw:
185                return
186    
187          wxBeginBusyCursor()          wxBeginBusyCursor()
188          try:          try:
189              width, height = self.GetSizeTuple()              try:
190                    self._do_redraw()
191              bitmap = wx.wxEmptyBitmap(width, height)              except:
192              dc = wx.wxMemoryDC()                  self.error_on_redraw = True
193              dc.SelectObject(bitmap)                  raise
             dc.BeginDrawing()  
   
             dc.SetBackground(self.backgroundColor)  
             dc.Clear()  
   
             selected_layer = self.selection.SelectedLayer()  
             selected_shapes = self.selection.SelectedShapes()  
   
             # draw the map into the bitmap  
             renderer = ScreenRenderer(dc, self.scale, self.offset)  
   
             # Pass the entire bitmap as update region to the renderer.  
             # We're redrawing the whole bitmap, after all.  
             renderer.RenderMap(self.Map(), (0, 0, width, height),  
                                selected_layer, selected_shapes)  
   
             dc.EndDrawing()  
             dc.SelectObject(wx.wxNullBitmap)  
   
             self.bitmap = bitmap  
194          finally:          finally:
195              wxEndBusyCursor()              wxEndBusyCursor()
             pass  
196    
197        def _do_redraw(self):
198            """Called by OnIdle to do the actual redraw.
199            """
200            width, height = self.GetSizeTuple()
201    
202            bitmap = wx.wxEmptyBitmap(width, height)
203            dc = wx.wxMemoryDC()
204            dc.SelectObject(bitmap)
205            dc.BeginDrawing()
206    
207            dc.SetBackground(self.backgroundColor)
208            dc.Clear()
209    
210            selected_layer = self.selection.SelectedLayer()
211            selected_shapes = self.selection.SelectedShapes()
212    
213            # draw the map into the bitmap
214            renderer = ScreenRenderer(dc, self.scale, self.offset)
215    
216            # Pass the entire bitmap as update region to the renderer.
217            # We're redrawing the whole bitmap, after all.
218            renderer.RenderMap(self.Map(), (0, 0, width, height),
219                               selected_layer, selected_shapes)
220    
221            dc.EndDrawing()
222            dc.SelectObject(wx.wxNullBitmap)
223    
224            self.bitmap = bitmap
225          # This causes a paint event that then draws the bitmap          # This causes a paint event that then draws the bitmap
226          self.redraw()          self.redraw()
227    

Legend:
Removed from v.1551  
changed lines
  Added in v.1552

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26