controls/DebugVariablePanel.py
changeset 1174 9cc1a3fa9619
parent 1102 cd4a996ddaa7
child 1176 f4b434672204
equal deleted inserted replaced
1173:ad09b4a755ce 1174:9cc1a3fa9619
   810             self.Figure = matplotlib.figure.Figure(facecolor='w')
   810             self.Figure = matplotlib.figure.Figure(facecolor='w')
   811             self.Figure.subplotpars.update(top=0.95, left=0.1, bottom=0.1, right=0.95)
   811             self.Figure.subplotpars.update(top=0.95, left=0.1, bottom=0.1, right=0.95)
   812             
   812             
   813             FigureCanvas.__init__(self, parent, -1, self.Figure)
   813             FigureCanvas.__init__(self, parent, -1, self.Figure)
   814             self.SetBackgroundColour(wx.WHITE)
   814             self.SetBackgroundColour(wx.WHITE)
       
   815             self.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)
   815             self.Bind(wx.EVT_ENTER_WINDOW, self.OnEnter)
   816             self.Bind(wx.EVT_ENTER_WINDOW, self.OnEnter)
   816             self.Bind(wx.EVT_LEAVE_WINDOW, self.OnLeave)
   817             self.Bind(wx.EVT_LEAVE_WINDOW, self.OnLeave)
   817             self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground)
   818             self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground)
   818             self.Bind(wx.EVT_SIZE, self.OnResize)
   819             self.Bind(wx.EVT_SIZE, self.OnResize)
   819             
   820             
  1157         def OnLeave(self, event):
  1158         def OnLeave(self, event):
  1158             if self.CanvasStartSize is None and self.SetHighlight(HIGHLIGHT_NONE):
  1159             if self.CanvasStartSize is None and self.SetHighlight(HIGHLIGHT_NONE):
  1159                 self.SetCursor(wx.NullCursor)
  1160                 self.SetCursor(wx.NullCursor)
  1160                 self.ParentWindow.ForceRefresh()
  1161                 self.ParentWindow.ForceRefresh()
  1161             DebugVariableViewer.OnLeave(self, event)
  1162             DebugVariableViewer.OnLeave(self, event)
       
  1163         
       
  1164         KEY_CURSOR_INCREMENT = {
       
  1165             wx.WXK_LEFT: -1,
       
  1166             wx.WXK_RIGHT: 1,
       
  1167             wx.WXK_UP: -10,
       
  1168             wx.WXK_DOWN: 10}
       
  1169         def OnKeyDown(self, event):
       
  1170             if self.CursorTick is not None:
       
  1171                 self.ParentWindow.MoveCursorTick(
       
  1172                     self.KEY_CURSOR_INCREMENT.get(
       
  1173                       event.GetKeyCode(), 0))
       
  1174             event.Skip()
  1162         
  1175         
  1163         def HandleCursorMove(self, event):
  1176         def HandleCursorMove(self, event):
  1164             start_tick, end_tick = self.ParentWindow.GetRange()
  1177             start_tick, end_tick = self.ParentWindow.GetRange()
  1165             cursor_tick = None
  1178             cursor_tick = None
  1166             if self.GraphType == GRAPH_ORTHOGONAL:
  1179             if self.GraphType == GRAPH_ORTHOGONAL:
  1619     def SetCursorTick(self, cursor_tick):
  1632     def SetCursorTick(self, cursor_tick):
  1620         self.CursorTick = cursor_tick
  1633         self.CursorTick = cursor_tick
  1621         self.Fixed = True
  1634         self.Fixed = True
  1622         self.UpdateCursorTick() 
  1635         self.UpdateCursorTick() 
  1623     
  1636     
       
  1637     def MoveCursorTick(self, move):
       
  1638         if self.CursorTick is not None:
       
  1639             cursor_tick = max(self.Ticks[0], 
       
  1640                           min(self.CursorTick + move, 
       
  1641                               self.Ticks[-1]))
       
  1642             self.CursorTick = self.Ticks[
       
  1643                 numpy.argmin(numpy.abs(self.Ticks - cursor_tick))]
       
  1644             self.StartTick = max(self.Ticks[
       
  1645                                 numpy.argmin(numpy.abs(self.Ticks - 
       
  1646                                         self.CursorTick + self.CurrentRange))],
       
  1647                              min(self.StartTick, self.CursorTick))
       
  1648             self.RefreshCanvasPosition()
       
  1649             self.UpdateCursorTick() 
       
  1650             
  1624     def ResetCursorTick(self):
  1651     def ResetCursorTick(self):
  1625         self.CursorTick = None
  1652         self.CursorTick = None
  1626         self.UpdateCursorTick()
  1653         self.UpdateCursorTick()
  1627     
  1654     
  1628     def UpdateCursorTick(self):
  1655     def UpdateCursorTick(self):