controls/DebugVariablePanel.py
changeset 938 ef1bfe848bf9
parent 937 bd6fdbb61784
child 943 da7f80e04a54
equal deleted inserted replaced
937:bd6fdbb61784 938:ef1bfe848bf9
   909             wx.CallAfter(self.ParentWindow.DeleteValue, self.Parent, 
   909             wx.CallAfter(self.ParentWindow.DeleteValue, self.Parent, 
   910                          self.ContextualButtonsItem)
   910                          self.ContextualButtonsItem)
   911             self.DismissContextualButtons()
   911             self.DismissContextualButtons()
   912         
   912         
   913         def RefreshButtonsState(self, refresh_positions=False):
   913         def RefreshButtonsState(self, refresh_positions=False):
   914             width, height = self.GetSize()
   914             if self:
   915             min_width, min_height = self.Parent.GetCanvasMinSize()
   915                 width, height = self.GetSize()
   916             for button, size in zip(self.Buttons, 
   916                 min_width, min_height = self.Parent.GetCanvasMinSize()
   917                                     [min_height, SIZE_MIDDLE, SIZE_MAXI]):
   917                 for button, size in zip(self.Buttons, 
   918                 if size == height and button.IsEnabled():
   918                                         [min_height, SIZE_MIDDLE, SIZE_MAXI]):
   919                     button.Disable()
   919                     if size == height and button.IsEnabled():
   920                     refresh_positions = True
   920                         button.Disable()
   921                 elif not button.IsEnabled():
   921                         refresh_positions = True
   922                     button.Enable()
   922                     elif not button.IsEnabled():
   923                     refresh_positions = True
   923                         button.Enable()
   924             if refresh_positions:
   924                         refresh_positions = True
   925                 offset = 0
   925                 if refresh_positions:
   926                 buttons = self.Buttons[:]
   926                     offset = 0
   927                 buttons.reverse()
   927                     buttons = self.Buttons[:]
   928                 for button in buttons:
   928                     buttons.reverse()
   929                     if button.IsShown() and button.IsEnabled():
   929                     for button in buttons:
   930                         w, h = button.GetSize()
   930                         if button.IsShown() and button.IsEnabled():
   931                         button.SetPosition(width - 5 - w - offset, 5)
   931                             w, h = button.GetSize()
   932                         offset += w + 2
   932                             button.SetPosition(width - 5 - w - offset, 5)
   933                 self.ParentWindow.ForceRefresh()
   933                             offset += w + 2
       
   934                     self.ParentWindow.ForceRefresh()
   934         
   935         
   935         def OnResizeWindow(self, event):
   936         def OnResizeWindow(self, event):
   936             wx.CallAfter(self.RefreshButtonsState, True)
   937             wx.CallAfter(self.RefreshButtonsState, True)
   937             event.Skip()
   938             event.Skip()
   938     
   939     
  1015         
  1016         
  1016         def OnCanvasButtonPressed(self, event):
  1017         def OnCanvasButtonPressed(self, event):
  1017             width, height = self.Canvas.GetSize()
  1018             width, height = self.Canvas.GetSize()
  1018             x, y = event.x, height - event.y
  1019             x, y = event.x, height - event.y
  1019             if not self.Canvas.IsOverButton(x, y):
  1020             if not self.Canvas.IsOverButton(x, y):
  1020                 if event.inaxes == self.Axes and not self.Is3DCanvas():
  1021                 if event.inaxes == self.Axes:
  1021                     self.MouseStartPos = wx.Point(x, y)
       
  1022                     item_idx = None
  1022                     item_idx = None
  1023                     for i, t in ([pair for pair in enumerate(self.AxesLabels)] + 
  1023                     for i, t in ([pair for pair in enumerate(self.AxesLabels)] + 
  1024                                  [pair for pair in enumerate(self.Labels)]):
  1024                                  [pair for pair in enumerate(self.Labels)]):
  1025                         (x0, y0), (x1, y1) = t.get_window_extent().get_points()
  1025                         (x0, y0), (x1, y1) = t.get_window_extent().get_points()
  1026                         rect = wx.Rect(x0, height - y1, x1 - x0, y1 - y0)
  1026                         rect = wx.Rect(x0, height - y1, x1 - x0, y1 - y0)
  1031                         self.Canvas.ShowButtons(False)
  1031                         self.Canvas.ShowButtons(False)
  1032                         self.Canvas.DismissContextualButtons()
  1032                         self.Canvas.DismissContextualButtons()
  1033                         xw, yw = self.GetPosition()
  1033                         xw, yw = self.GetPosition()
  1034                         self.ParentWindow.StartDragNDrop(self, 
  1034                         self.ParentWindow.StartDragNDrop(self, 
  1035                             self.Items[item_idx], x + xw, y + yw, x + xw, y + yw)
  1035                             self.Items[item_idx], x + xw, y + yw, x + xw, y + yw)
  1036                     elif event.button == 1 and event.inaxes == self.Axes:
  1036                     elif not self.Is3DCanvas():
  1037                         self.StartCursorTick = self.CursorTick
  1037                         self.MouseStartPos = wx.Point(x, y)
  1038                         self.HandleCursorMove(event)
  1038                         if event.button == 1 and event.inaxes == self.Axes:
  1039                     elif event.button == 2 and self.GraphType == GRAPH_PARALLEL:
  1039                             self.StartCursorTick = self.CursorTick
  1040                         width, height = self.Canvas.GetSize()
  1040                             self.HandleCursorMove(event)
  1041                         start_tick, end_tick = self.ParentWindow.GetRange()
  1041                         elif event.button == 2 and self.GraphType == GRAPH_PARALLEL:
  1042                         self.StartCursorTick = start_tick
  1042                             width, height = self.Canvas.GetSize()
       
  1043                             start_tick, end_tick = self.ParentWindow.GetRange()
       
  1044                             self.StartCursorTick = start_tick
  1043                 
  1045                 
  1044                 elif event.button == 1 and event.y <= 5:
  1046                 elif event.button == 1 and event.y <= 5:
  1045                     self.MouseStartPos = wx.Point(x, y)
  1047                     self.MouseStartPos = wx.Point(x, y)
  1046                     self.CanvasStartSize = self.Canvas.GetSize()
  1048                     self.CanvasStartSize = self.Canvas.GetSize()
  1047         
  1049         
  1095                     self.SetCanvasSize(width, 
  1097                     self.SetCanvasSize(width, 
  1096                         self.CanvasStartSize.height + height - event.y - self.MouseStartPos.y)
  1098                         self.CanvasStartSize.height + height - event.y - self.MouseStartPos.y)
  1097                     
  1099                     
  1098                 elif event.button in [None, "up", "down"]:
  1100                 elif event.button in [None, "up", "down"]:
  1099                     if self.GraphType == GRAPH_PARALLEL:
  1101                     if self.GraphType == GRAPH_PARALLEL:
  1100                             orientation = [wx.RIGHT] * len(self.AxesLabels) + [wx.LEFT] * len(self.Labels)
  1102                         orientation = [wx.RIGHT] * len(self.AxesLabels) + [wx.LEFT] * len(self.Labels)
  1101                     elif len(self.AxesLabels) > 0:
  1103                     elif len(self.AxesLabels) > 0:
  1102                         orientation = [wx.RIGHT, wx.TOP, wx.LEFT, wx.BOTTOM]
  1104                         orientation = [wx.RIGHT, wx.TOP, wx.LEFT, wx.BOTTOM]
       
  1105                     else:
       
  1106                         orientation = [wx.LEFT] * len(self.Labels)
  1103                     item_idx = None
  1107                     item_idx = None
  1104                     item_style = None
  1108                     item_style = None
  1105                     for (i, t), style in zip([pair for pair in enumerate(self.AxesLabels)] + 
  1109                     for (i, t), style in zip([pair for pair in enumerate(self.AxesLabels)] + 
  1106                                              [pair for pair in enumerate(self.Labels)], 
  1110                                              [pair for pair in enumerate(self.Labels)], 
  1107                                              orientation):
  1111                                              orientation):