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