diff -r d51af006fa6b -r 64d8f52bc8c8 controls/ProjectPropertiesPanel.py --- a/controls/ProjectPropertiesPanel.py Fri Aug 11 15:18:19 2017 +0300 +++ b/controls/ProjectPropertiesPanel.py Mon Aug 14 19:13:01 2017 +0300 @@ -31,7 +31,7 @@ REQUIRED_PARAMS = ["projectName", "productName", "productVersion", "companyName"] -[TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU, DISPLAYMENU, PROJECTTREE, +[TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU, DISPLAYMENU, PROJECTTREE, POUINSTANCEVARIABLESPANEL, LIBRARYTREE, SCALING, PAGETITLES ] = range(10) @@ -40,7 +40,7 @@ #------------------------------------------------------------------------------- class ProjectPropertiesPanel(wx.Notebook): - + def AddSizerParams(self, parent, sizer, params): for idx, (name, label) in enumerate(params): border = 0 @@ -48,17 +48,17 @@ border |= wx.TOP elif idx == len(params) - 1: border |= wx.BOTTOM - + st = wx.StaticText(parent, label=label) - sizer.AddWindow(st, border=10, + sizer.AddWindow(st, border=10, flag=wx.ALIGN_CENTER_VERTICAL|border|wx.LEFT) - + tc = wx.TextCtrl(parent, style=wx.TE_PROCESS_ENTER) setattr(self, name, tc) callback = self.GetTextCtrlChangedFunction(tc, name) self.Bind(wx.EVT_TEXT_ENTER, callback, tc) tc.Bind(wx.EVT_KILL_FOCUS, callback) - sizer.AddWindow(tc, border=10, + sizer.AddWindow(tc, border=10, flag=wx.GROW|border|wx.RIGHT) def __init__(self, parent, controller=None, window=None, enable_required=True): @@ -67,36 +67,36 @@ self.Controller = controller self.ParentWindow = window self.Values = None - + # Project Panel elements self.ProjectPanel = wx.Panel(self, style=wx.TAB_TRAVERSAL) projectpanel_sizer = wx.FlexGridSizer(cols=2, hgap=5, rows=5, vgap=15) projectpanel_sizer.AddGrowableCol(1) self.ProjectPanel.SetSizer(projectpanel_sizer) - + self.AddSizerParams(self.ProjectPanel, projectpanel_sizer, [("projectName", _('Project Name (required):')), ("projectVersion", _('Project Version (optional):')), ("productName", _('Product Name (required):')), ("productVersion", _('Product Version (required):')), ("productRelease", _('Product Release (optional):'))]) - + self.AddPage(self.ProjectPanel, _("Project")) - + # Author Panel elements self.AuthorPanel = wx.Panel(self, style=wx.TAB_TRAVERSAL) authorpanel_sizer = wx.FlexGridSizer(cols=2, hgap=5, rows=4, vgap=15) authorpanel_sizer.AddGrowableCol(1) self.AuthorPanel.SetSizer(authorpanel_sizer) - + self.AddSizerParams(self.AuthorPanel, authorpanel_sizer, [("companyName", _('Company Name (required):')), ("companyURL", _('Company URL (optional):')), ("authorName", _('Author Name (optional):')), ("organization", _('Organization (optional):'))]) - + self.AddPage(self.AuthorPanel, _("Author")) # Graphics Panel elements @@ -106,47 +106,47 @@ graphicpanel_sizer.AddGrowableCol(0) graphicpanel_sizer.AddGrowableRow(3) self.GraphicsPanel.SetSizer(graphicpanel_sizer) - + pageSize_st = wx.StaticText(self.GraphicsPanel, label=_('Page Size (optional):')) - graphicpanel_sizer.AddWindow(pageSize_st, border=10, + graphicpanel_sizer.AddWindow(pageSize_st, border=10, flag=wx.ALIGN_CENTER_VERTICAL|wx.TOP|wx.LEFT|wx.RIGHT) - + pageSize_sizer = wx.FlexGridSizer(cols=2, hgap=5, rows=2, vgap=5) pageSize_sizer.AddGrowableCol(1) - graphicpanel_sizer.AddSizer(pageSize_sizer, border=10, + graphicpanel_sizer.AddSizer(pageSize_sizer, border=10, flag=wx.GROW|wx.LEFT|wx.RIGHT) - + for name, label in [('PageWidth', _('Width:')), ('PageHeight', _('Height:'))]: st = wx.StaticText(self.GraphicsPanel, label=label) - pageSize_sizer.AddWindow(st, border=12, + pageSize_sizer.AddWindow(st, border=12, flag=wx.ALIGN_CENTER_VERTICAL|wx.LEFT) - - sp = wx.SpinCtrl(self.GraphicsPanel, + + sp = wx.SpinCtrl(self.GraphicsPanel, min=0, max=2**16, style=wx.TE_PROCESS_ENTER) setattr(self, name, sp) callback = self.GetPageSizeChangedFunction(sp, name) self.Bind(wx.EVT_TEXT_ENTER, callback, sp) sp.Bind(wx.EVT_KILL_FOCUS, callback) pageSize_sizer.AddWindow(sp, flag=wx.GROW) - + scaling_st = wx.StaticText(self.GraphicsPanel, label=_('Grid Resolution:')) - graphicpanel_sizer.AddWindow(scaling_st, border=10, + graphicpanel_sizer.AddWindow(scaling_st, border=10, flag=wx.GROW|wx.LEFT|wx.RIGHT) - + scaling_nb = wx.Notebook(self.GraphicsPanel) - graphicpanel_sizer.AddWindow(scaling_nb, border=10, + graphicpanel_sizer.AddWindow(scaling_nb, border=10, flag=wx.GROW|wx.BOTTOM|wx.LEFT|wx.RIGHT) - + self.Scalings = {} for language, translation in [("FBD",_("FBD")), ("LD",_("LD")), ("SFC",_("SFC"))]: scaling_panel = wx.Panel(scaling_nb, style=wx.TAB_TRAVERSAL) scalingpanel_sizer = wx.FlexGridSizer(cols=2, hgap=5, rows=2, vgap=5) scalingpanel_sizer.AddGrowableCol(1) scaling_panel.SetSizer(scalingpanel_sizer) - + scaling_controls = [] for idx, (name, label) in enumerate([('XScale', _('Horizontal:')), ('YScale', _('Vertical:'))]): @@ -154,67 +154,67 @@ border = wx.TOP else: border = wx.BOTTOM - + st = wx.StaticText(scaling_panel, label=label) - scalingpanel_sizer.AddWindow(st, border=10, + scalingpanel_sizer.AddWindow(st, border=10, flag=wx.ALIGN_CENTER_VERTICAL|border|wx.LEFT) - - sp = wx.SpinCtrl(scaling_panel, + + sp = wx.SpinCtrl(scaling_panel, min=0, max=2**16, style=wx.TE_PROCESS_ENTER) scaling_controls.append(sp) callback = self.GetScalingChangedFunction(sp, language, name) self.Bind(wx.EVT_TEXT_ENTER, callback, sp) sp.Bind(wx.EVT_KILL_FOCUS, callback) - scalingpanel_sizer.AddWindow(sp, border=10, + scalingpanel_sizer.AddWindow(sp, border=10, flag=wx.GROW|border|wx.RIGHT) - + self.Scalings[language] = scaling_controls scaling_nb.AddPage(scaling_panel, translation) - + self.AddPage(self.GraphicsPanel, _("Graphics")) # Miscellaneous Panel elements - self.MiscellaneousPanel = wx.Panel(id=-1, parent=self, + self.MiscellaneousPanel = wx.Panel(id=-1, parent=self, name='MiscellaneousPanel', pos=wx.Point(0, 0), size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL) miscellaneouspanel_sizer = wx.FlexGridSizer(cols=2, hgap=5, rows=2, vgap=15) miscellaneouspanel_sizer.AddGrowableCol(1) miscellaneouspanel_sizer.AddGrowableRow(1) self.MiscellaneousPanel.SetSizer(miscellaneouspanel_sizer) - + language_label = wx.StaticText(self.MiscellaneousPanel, label=_('Language (optional):')) - miscellaneouspanel_sizer.AddWindow(language_label, border=10, + miscellaneouspanel_sizer.AddWindow(language_label, border=10, flag=wx.ALIGN_CENTER_VERTICAL|wx.TOP|wx.LEFT) - - self.Language = wx.ComboBox(self.MiscellaneousPanel, + + self.Language = wx.ComboBox(self.MiscellaneousPanel, style=wx.CB_READONLY) self.Bind(wx.EVT_COMBOBOX, self.OnLanguageChanged, self.Language) - miscellaneouspanel_sizer.AddWindow(self.Language, border=10, + miscellaneouspanel_sizer.AddWindow(self.Language, border=10, flag=wx.GROW|wx.TOP|wx.RIGHT) - + description_label = wx.StaticText(self.MiscellaneousPanel, label=_('Content Description (optional):')) - miscellaneouspanel_sizer.AddWindow(description_label, border=10, + miscellaneouspanel_sizer.AddWindow(description_label, border=10, flag=wx.BOTTOM|wx.LEFT) - - self.ContentDescription = wx.TextCtrl(self.MiscellaneousPanel, + + self.ContentDescription = wx.TextCtrl(self.MiscellaneousPanel, size=wx.Size(240,150), style=wx.TE_MULTILINE|wx.TE_PROCESS_ENTER) - self.Bind(wx.EVT_TEXT_ENTER, self.OnContentDescriptionChanged, + self.Bind(wx.EVT_TEXT_ENTER, self.OnContentDescriptionChanged, self.ContentDescription) - self.ContentDescription.Bind(wx.EVT_KILL_FOCUS, + self.ContentDescription.Bind(wx.EVT_KILL_FOCUS, self.OnContentDescriptionChanged) - miscellaneouspanel_sizer.AddWindow(self.ContentDescription, border=10, + miscellaneouspanel_sizer.AddWindow(self.ContentDescription, border=10, flag=wx.GROW|wx.BOTTOM|wx.RIGHT) - + self.AddPage(self.MiscellaneousPanel, _("Miscellaneous")) - + for param in REQUIRED_PARAMS: getattr(self, param).Enable(enable_required) - + languages = ["", "en-US", "fr-FR", "zh-CN", "ru-RU"] - + for language in languages: self.Language.Append(language) @@ -241,13 +241,13 @@ tc = getattr(self, item, None) if tc is not None: tc.SetValue(value) - + def GetValues(self): values = {} for param in ["projectName", "projectVersion", "productName", "productVersion", "productRelease", "companyName", - "companyURL", "authorName", + "companyURL", "authorName", "organization"]: value = getattr(self, param).GetValue() if param in REQUIRED_PARAMS or value != "": @@ -270,7 +270,7 @@ values["scaling"][language] = (self.Scalings[language][0].GetValue(), self.Scalings[language][1].GetValue()) return values - + def GetTextCtrlChangedFunction(self, textctrl, name): def TextCtrlChangedFunction(event): if self.Controller is not None and self.Values is not None: @@ -304,7 +304,7 @@ wx.CallAfter(self.RefreshView) event.Skip() return PageSizeChangedFunction - + def GetScalingChangedFunction(self, spinctrl, language, name): def ScalingChangedFunction(event): if self.Controller is not None: @@ -324,7 +324,7 @@ wx.CallAfter(self.RefreshView) event.Skip() return ScalingChangedFunction - + def OnLanguageChanged(self, event): if self.Controller is not None: if self.Values is not None: @@ -339,7 +339,7 @@ self.ParentWindow._Refresh(TITLE, FILEMENU, EDITMENU, PAGETITLES) wx.CallAfter(self.RefreshView) event.Skip() - + def OnContentDescriptionChanged(self, event): if self.Controller is not None: if self.Values is not None: