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() |