Viewer.py
changeset 95 ee66a9a1748b
parent 94 e7f5a251f251
child 97 28337cd092fd
equal deleted inserted replaced
94:e7f5a251f251 95:ee66a9a1748b
   190     def GetLogicalDC(self, buffered=False):
   190     def GetLogicalDC(self, buffered=False):
   191         if buffered:
   191         if buffered:
   192             dc = wx.BufferedPaintDC(self)
   192             dc = wx.BufferedPaintDC(self)
   193         else:
   193         else:
   194             dc = wx.ClientDC(self)
   194             dc = wx.ClientDC(self)
   195         dc.SetFont(wx.NORMAL_FONT)
   195         if wx.Platform != '__WXMSW__':
       
   196             dc.SetFont(wx.NORMAL_FONT)
   196         self.DoPrepareDC(dc)
   197         self.DoPrepareDC(dc)
   197         return dc
   198         return dc
   198 
   199 
   199 #-------------------------------------------------------------------------------
   200 #-------------------------------------------------------------------------------
   200 #                         Element management functions
   201 #                         Element management functions
   302             instance = self.Controler.GetCurrentElementEditingInstanceInfos(exclude=ids)
   303             instance = self.Controler.GetCurrentElementEditingInstanceInfos(exclude=ids)
   303             if instance:
   304             if instance:
   304                 self.loadInstance(instance, ids)
   305                 self.loadInstance(instance, ids)
   305         self.RefreshScrollBars()
   306         self.RefreshScrollBars()
   306         self.Refresh(False)
   307         self.Refresh(False)
       
   308     
       
   309     def Scroll(self, x, y):
       
   310         print "Scroll to (%d, %d)"%(x, y)
       
   311         wx.ScrolledWindow.Scroll(self, x, y)
   307     
   312     
   308     def RefreshScrollBars(self):
   313     def RefreshScrollBars(self):
   309         xstart, ystart = self.GetViewStart()
   314         xstart, ystart = self.GetViewStart()
   310         window_size = self.GetClientSize()
   315         window_size = self.GetClientSize()
   311         maxx = maxy = 0
   316         maxx = maxy = 0
   319         if self.rubberBand.IsShown():
   324         if self.rubberBand.IsShown():
   320             extent = self.rubberBand.GetCurrentExtent()
   325             extent = self.rubberBand.GetCurrentExtent()
   321             maxx = max(maxx, extent.x + extent.width)
   326             maxx = max(maxx, extent.x + extent.width)
   322             maxy = max(maxy, extent.y + extent.height)
   327             maxy = max(maxy, extent.y + extent.height)
   323         self.SetScrollbars(SCROLLBAR_UNIT, SCROLLBAR_UNIT, 
   328         self.SetScrollbars(SCROLLBAR_UNIT, SCROLLBAR_UNIT, 
   324             maxx / SCROLLBAR_UNIT, maxy / SCROLLBAR_UNIT, xstart, ystart)
   329             maxx / SCROLLBAR_UNIT, maxy / SCROLLBAR_UNIT, xstart, ystart, True)
   325     
   330         
   326     # Load instance from given informations
   331     # Load instance from given informations
   327     def loadInstance(self, instance, ids):
   332     def loadInstance(self, instance, ids):
   328         ids.append(instance["id"])
   333         ids.append(instance["id"])
   329         self.current_id = max(self.current_id, instance["id"]) 
   334         self.current_id = max(self.current_id, instance["id"]) 
   330         if instance["type"] == "input":
   335         if instance["type"] == "input":
   924             if not connector or self.SelectedElement.EndConnected == None:
   929             if not connector or self.SelectedElement.EndConnected == None:
   925                 self.SelectedElement.ResetPoints()
   930                 self.SelectedElement.ResetPoints()
   926                 self.SelectedElement.OnMotion(event, dc, self.Scaling)
   931                 self.SelectedElement.OnMotion(event, dc, self.Scaling)
   927                 self.SelectedElement.GeneratePoints()
   932                 self.SelectedElement.GeneratePoints()
   928                 self.Refresh(False)
   933                 self.Refresh(False)
       
   934         self.UpdateScrollPos(event)
   929         event.Skip()
   935         event.Skip()
   930 
   936 
   931     def UpdateScrollPos(self, event):
   937     def UpdateScrollPos(self, event):
   932         if (event.Dragging() and self.SelectedElement) or self.rubberBand.IsShown():
   938         if (event.Dragging() and self.SelectedElement) or self.rubberBand.IsShown():
   933             position = event.GetPosition()
   939             position = event.GetPosition()