diff -r 4a36e38e51d3 -r 1499a4d225db editors/ProjectNodeEditor.py --- a/editors/ProjectNodeEditor.py Wed Jan 30 19:07:59 2013 +0100 +++ b/editors/ProjectNodeEditor.py Wed Jan 30 23:46:41 2013 +0100 @@ -1,51 +1,29 @@ import wx -from controls import ProjectPropertiesPanel +from controls import ProjectPropertiesPanel, VariablePanel from EditorPanel import EditorPanel -from ConfTreeNodeEditor import ConfTreeNodeEditor, WINDOW_COLOUR +from ConfTreeNodeEditor import ConfTreeNodeEditor class ProjectNodeEditor(ConfTreeNodeEditor): - VARIABLE_PANEL_TYPE = "config" + SHOW_BASE_PARAMS = False ENABLE_REQUIRED = True + CONFNODEEDITOR_TABS = [ + (_("Config variables"), "_create_VariablePanel"), + (_("Project properties"), "_create_ProjectPropertiesPanel")] - 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 + def _create_VariablePanel(self, prnt): + self.VariableEditorPanel = VariablePanel(prnt, self, self.Controler, "config", self.Debug) + self.VariableEditorPanel.SetTagName(self.TagName) + + return self.VariableEditorPanel + + def _create_ProjectPropertiesPanel(self, prnt): + self.ProjectProperties = ProjectPropertiesPanel(prnt, self.Controler, self.ParentWindow, self.ENABLE_REQUIRED) - # 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) - + return self.ProjectProperties + def __init__(self, parent, controler, window): configuration = controler.GetProjectMainConfigurationName() if configuration is not None: @@ -54,10 +32,22 @@ tagname = "" ConfTreeNodeEditor.__init__(self, parent, controler, window, tagname) + + buttons_sizer = self.GenerateMethodButtonSizer() + self.ParamsEditorSizer.InsertSizer(0, buttons_sizer, 0, border=5, + flag=wx.LEFT|wx.RIGHT|wx.TOP) + self.ParamsEditorSizer.Layout() + + self.VariableEditor = self.VariableEditorPanel def GetTagName(self): return self.Controler.CTNName() + def SetTagName(self, tagname): + self.TagName = tagname + if self.VariableEditor is not None: + self.VariableEditor.SetTagName(tagname) + def GetTitle(self): fullname = _(self.Controler.CTNName()) if self.Controler.CTNTestModified(): @@ -65,10 +55,10 @@ return fullname def RefreshView(self, variablepanel=True): - EditorPanel.RefreshView(self, variablepanel) - if self.ConfNodeParamsSizer is not None: - self.RefreshConfNodeParamsSizer() - self.ProjectProperties.RefreshView() + ConfTreeNodeEditor.RefreshView(self) + if variablepanel: + self.VariableEditor.RefreshView() + #self.ProjectProperties.RefreshView() def GetBufferState(self): return self.Controler.GetBufferState()