Fixed bug with mouse capture not released in graphic Viewers in debug mode when drag'n dropping wire variable to DebugVariablePanel
import wx
from controls import ProjectPropertiesPanel
from EditorPanel import EditorPanel
from ConfTreeNodeEditor import ConfTreeNodeEditor, WINDOW_COLOUR
class ProjectNodeEditor(ConfTreeNodeEditor):
VARIABLE_PANEL_TYPE = "config"
ENABLE_REQUIRED = True
def _init_Editor(self, prnt):
self.Editor = wx.ScrolledWindow(prnt, -1, size=wx.Size(-1, -1),
style=wx.TAB_TRAVERSAL|wx.SUNKEN_BORDER|wx.HSCROLL|wx.VSCROLL)
self.Editor.SetBackgroundColour(WINDOW_COLOUR)
self.Editor.Bind(wx.EVT_SIZE, self.OnWindowResize)
self.Editor.Bind(wx.EVT_MOUSEWHEEL, self.OnMouseWheel)
self.ParamsEditor = self.Editor
# Variable allowing disabling of Editor scroll when Popup shown
self.ScrollingEnabled = True
self.ParamsEditorSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5)
self.ParamsEditorSizer.AddGrowableCol(0)
self.ParamsEditorSizer.AddGrowableRow(1)
self.Editor.SetSizer(self.ParamsEditorSizer)
buttons_sizer = self.GenerateMethodButtonSizer()
self.ParamsEditorSizer.AddSizer(buttons_sizer, 0, border=5,
flag=wx.GROW|wx.LEFT|wx.RIGHT|wx.TOP)
projectproperties_sizer = wx.BoxSizer(wx.HORIZONTAL)
self.ParamsEditorSizer.AddSizer(projectproperties_sizer, 0, border=5,
flag=wx.LEFT|wx.RIGHT|wx.BOTTOM)
if self.SHOW_PARAMS:
self.ConfNodeParamsSizer = wx.BoxSizer(wx.VERTICAL)
projectproperties_sizer.AddSizer(self.ConfNodeParamsSizer, 0, border=5,
flag=wx.RIGHT)
else:
self.ConfNodeParamsSizer = None
self.ProjectProperties = ProjectPropertiesPanel(self.Editor, self.Controler, self.ParentWindow, self.ENABLE_REQUIRED)
projectproperties_sizer.AddWindow(self.ProjectProperties, 0, border=0, flag=0)
def __init__(self, parent, controler, window):
configuration = controler.GetProjectMainConfigurationName()
if configuration is not None:
tagname = controler.ComputeConfigurationName(configuration)
else:
tagname = ""
ConfTreeNodeEditor.__init__(self, parent, controler, window, tagname)
def GetTagName(self):
return self.Controler.CTNName()
def GetTitle(self):
fullname = _(self.Controler.CTNName())
if self.Controler.CTNTestModified():
return "~%s~" % fullname
return fullname
def RefreshView(self, variablepanel=True):
EditorPanel.RefreshView(self, variablepanel)
if self.ConfNodeParamsSizer is not None:
self.RefreshConfNodeParamsSizer()
self.ProjectProperties.RefreshView()
def GetBufferState(self):
return self.Controler.GetBufferState()
def Undo(self):
self.Controler.LoadPrevious()
self.ParentWindow.CloseTabsWithoutModel()
def Redo(self):
self.Controler.LoadNext()
self.ParentWindow.CloseTabsWithoutModel()