controls/ProjectPropertiesPanel.py
changeset 1745 f9d32913bad4
parent 1740 b789b695b5c6
child 1768 691083b5682a
equal deleted inserted replaced
1744:69dfdb26f600 1745:f9d32913bad4
    50             elif idx == len(params) - 1:
    50             elif idx == len(params) - 1:
    51                 border |= wx.BOTTOM
    51                 border |= wx.BOTTOM
    52 
    52 
    53             st = wx.StaticText(parent, label=label)
    53             st = wx.StaticText(parent, label=label)
    54             sizer.AddWindow(st, border=10,
    54             sizer.AddWindow(st, border=10,
    55                   flag=wx.ALIGN_CENTER_VERTICAL|border|wx.LEFT)
    55                   flag=wx.ALIGN_CENTER_VERTICAL | border | wx.LEFT)
    56 
    56 
    57             tc = wx.TextCtrl(parent, style=wx.TE_PROCESS_ENTER)
    57             tc = wx.TextCtrl(parent, style=wx.TE_PROCESS_ENTER)
    58             setattr(self, name, tc)
    58             setattr(self, name, tc)
    59             callback = self.GetTextCtrlChangedFunction(tc, name)
    59             callback = self.GetTextCtrlChangedFunction(tc, name)
    60             self.Bind(wx.EVT_TEXT_ENTER, callback, tc)
    60             self.Bind(wx.EVT_TEXT_ENTER, callback, tc)
    61             tc.Bind(wx.EVT_KILL_FOCUS, callback)
    61             tc.Bind(wx.EVT_KILL_FOCUS, callback)
    62             sizer.AddWindow(tc, border=10,
    62             sizer.AddWindow(tc, border=10,
    63                   flag=wx.GROW|border|wx.RIGHT)
    63                   flag=wx.GROW | border | wx.RIGHT)
    64 
    64 
    65     def __init__(self, parent, controller=None, window=None, enable_required=True):
    65     def __init__(self, parent, controller=None, window=None, enable_required=True):
    66         wx.Notebook.__init__(self, parent)
    66         wx.Notebook.__init__(self, parent)
    67 
    67 
    68         self.Controller = controller
    68         self.Controller = controller
   109         self.GraphicsPanel.SetSizer(graphicpanel_sizer)
   109         self.GraphicsPanel.SetSizer(graphicpanel_sizer)
   110 
   110 
   111         pageSize_st = wx.StaticText(self.GraphicsPanel,
   111         pageSize_st = wx.StaticText(self.GraphicsPanel,
   112               label=_('Page Size (optional):'))
   112               label=_('Page Size (optional):'))
   113         graphicpanel_sizer.AddWindow(pageSize_st, border=10,
   113         graphicpanel_sizer.AddWindow(pageSize_st, border=10,
   114               flag=wx.ALIGN_CENTER_VERTICAL|wx.TOP|wx.LEFT|wx.RIGHT)
   114               flag=wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.LEFT | wx.RIGHT)
   115 
   115 
   116         pageSize_sizer = wx.FlexGridSizer(cols=2, hgap=5, rows=2, vgap=5)
   116         pageSize_sizer = wx.FlexGridSizer(cols=2, hgap=5, rows=2, vgap=5)
   117         pageSize_sizer.AddGrowableCol(1)
   117         pageSize_sizer.AddGrowableCol(1)
   118         graphicpanel_sizer.AddSizer(pageSize_sizer, border=10,
   118         graphicpanel_sizer.AddSizer(pageSize_sizer, border=10,
   119               flag=wx.GROW|wx.LEFT|wx.RIGHT)
   119               flag=wx.GROW | wx.LEFT | wx.RIGHT)
   120 
   120 
   121         for name, label in [('PageWidth', _('Width:')),
   121         for name, label in [('PageWidth', _('Width:')),
   122                             ('PageHeight', _('Height:'))]:
   122                             ('PageHeight', _('Height:'))]:
   123             st = wx.StaticText(self.GraphicsPanel, label=label)
   123             st = wx.StaticText(self.GraphicsPanel, label=label)
   124             pageSize_sizer.AddWindow(st, border=12,
   124             pageSize_sizer.AddWindow(st, border=12,
   125                   flag=wx.ALIGN_CENTER_VERTICAL|wx.LEFT)
   125                   flag=wx.ALIGN_CENTER_VERTICAL | wx.LEFT)
   126 
   126 
   127             sp = wx.SpinCtrl(self.GraphicsPanel,
   127             sp = wx.SpinCtrl(self.GraphicsPanel,
   128                   min=0, max=2**16, style=wx.TE_PROCESS_ENTER)
   128                   min=0, max=2**16, style=wx.TE_PROCESS_ENTER)
   129             setattr(self, name, sp)
   129             setattr(self, name, sp)
   130             callback = self.GetPageSizeChangedFunction(sp, name)
   130             callback = self.GetPageSizeChangedFunction(sp, name)
   133             pageSize_sizer.AddWindow(sp, flag=wx.GROW)
   133             pageSize_sizer.AddWindow(sp, flag=wx.GROW)
   134 
   134 
   135         scaling_st = wx.StaticText(self.GraphicsPanel,
   135         scaling_st = wx.StaticText(self.GraphicsPanel,
   136               label=_('Grid Resolution:'))
   136               label=_('Grid Resolution:'))
   137         graphicpanel_sizer.AddWindow(scaling_st, border=10,
   137         graphicpanel_sizer.AddWindow(scaling_st, border=10,
   138               flag=wx.GROW|wx.LEFT|wx.RIGHT)
   138               flag=wx.GROW | wx.LEFT | wx.RIGHT)
   139 
   139 
   140         scaling_nb = wx.Notebook(self.GraphicsPanel)
   140         scaling_nb = wx.Notebook(self.GraphicsPanel)
   141         graphicpanel_sizer.AddWindow(scaling_nb, border=10,
   141         graphicpanel_sizer.AddWindow(scaling_nb, border=10,
   142               flag=wx.GROW|wx.BOTTOM|wx.LEFT|wx.RIGHT)
   142               flag=wx.GROW | wx.BOTTOM | wx.LEFT | wx.RIGHT)
   143 
   143 
   144         self.Scalings = {}
   144         self.Scalings = {}
   145         for language, translation in [("FBD", _("FBD")), ("LD", _("LD")), ("SFC", _("SFC"))]:
   145         for language, translation in [("FBD", _("FBD")), ("LD", _("LD")), ("SFC", _("SFC"))]:
   146             scaling_panel = wx.Panel(scaling_nb, style=wx.TAB_TRAVERSAL)
   146             scaling_panel = wx.Panel(scaling_nb, style=wx.TAB_TRAVERSAL)
   147             scalingpanel_sizer = wx.FlexGridSizer(cols=2, hgap=5, rows=2, vgap=5)
   147             scalingpanel_sizer = wx.FlexGridSizer(cols=2, hgap=5, rows=2, vgap=5)
   156                 else:
   156                 else:
   157                     border = wx.BOTTOM
   157                     border = wx.BOTTOM
   158 
   158 
   159                 st = wx.StaticText(scaling_panel, label=label)
   159                 st = wx.StaticText(scaling_panel, label=label)
   160                 scalingpanel_sizer.AddWindow(st, border=10,
   160                 scalingpanel_sizer.AddWindow(st, border=10,
   161                       flag=wx.ALIGN_CENTER_VERTICAL|border|wx.LEFT)
   161                       flag=wx.ALIGN_CENTER_VERTICAL | border | wx.LEFT)
   162 
   162 
   163                 sp = wx.SpinCtrl(scaling_panel,
   163                 sp = wx.SpinCtrl(scaling_panel,
   164                       min=0, max=2**16, style=wx.TE_PROCESS_ENTER)
   164                       min=0, max=2**16, style=wx.TE_PROCESS_ENTER)
   165                 scaling_controls.append(sp)
   165                 scaling_controls.append(sp)
   166                 callback = self.GetScalingChangedFunction(sp, language, name)
   166                 callback = self.GetScalingChangedFunction(sp, language, name)
   167                 self.Bind(wx.EVT_TEXT_ENTER, callback, sp)
   167                 self.Bind(wx.EVT_TEXT_ENTER, callback, sp)
   168                 sp.Bind(wx.EVT_KILL_FOCUS, callback)
   168                 sp.Bind(wx.EVT_KILL_FOCUS, callback)
   169                 scalingpanel_sizer.AddWindow(sp, border=10,
   169                 scalingpanel_sizer.AddWindow(sp, border=10,
   170                       flag=wx.GROW|border|wx.RIGHT)
   170                       flag=wx.GROW | border | wx.RIGHT)
   171 
   171 
   172             self.Scalings[language] = scaling_controls
   172             self.Scalings[language] = scaling_controls
   173             scaling_nb.AddPage(scaling_panel, translation)
   173             scaling_nb.AddPage(scaling_panel, translation)
   174 
   174 
   175         self.AddPage(self.GraphicsPanel, _("Graphics"))
   175         self.AddPage(self.GraphicsPanel, _("Graphics"))
   185         self.MiscellaneousPanel.SetSizer(miscellaneouspanel_sizer)
   185         self.MiscellaneousPanel.SetSizer(miscellaneouspanel_sizer)
   186 
   186 
   187         language_label = wx.StaticText(self.MiscellaneousPanel,
   187         language_label = wx.StaticText(self.MiscellaneousPanel,
   188               label=_('Language (optional):'))
   188               label=_('Language (optional):'))
   189         miscellaneouspanel_sizer.AddWindow(language_label, border=10,
   189         miscellaneouspanel_sizer.AddWindow(language_label, border=10,
   190               flag=wx.ALIGN_CENTER_VERTICAL|wx.TOP|wx.LEFT)
   190               flag=wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.LEFT)
   191 
   191 
   192         self.Language = wx.ComboBox(self.MiscellaneousPanel,
   192         self.Language = wx.ComboBox(self.MiscellaneousPanel,
   193               style=wx.CB_READONLY)
   193               style=wx.CB_READONLY)
   194         self.Bind(wx.EVT_COMBOBOX, self.OnLanguageChanged, self.Language)
   194         self.Bind(wx.EVT_COMBOBOX, self.OnLanguageChanged, self.Language)
   195         miscellaneouspanel_sizer.AddWindow(self.Language, border=10,
   195         miscellaneouspanel_sizer.AddWindow(self.Language, border=10,
   196               flag=wx.GROW|wx.TOP|wx.RIGHT)
   196               flag=wx.GROW | wx.TOP | wx.RIGHT)
   197 
   197 
   198         description_label = wx.StaticText(self.MiscellaneousPanel,
   198         description_label = wx.StaticText(self.MiscellaneousPanel,
   199               label=_('Content Description (optional):'))
   199               label=_('Content Description (optional):'))
   200         miscellaneouspanel_sizer.AddWindow(description_label, border=10,
   200         miscellaneouspanel_sizer.AddWindow(description_label, border=10,
   201               flag=wx.BOTTOM|wx.LEFT)
   201               flag=wx.BOTTOM | wx.LEFT)
   202 
   202 
   203         self.ContentDescription = wx.TextCtrl(self.MiscellaneousPanel,
   203         self.ContentDescription = wx.TextCtrl(self.MiscellaneousPanel,
   204               size=wx.Size(240, 150), style=wx.TE_MULTILINE|wx.TE_PROCESS_ENTER)
   204               size=wx.Size(240, 150), style=wx.TE_MULTILINE | wx.TE_PROCESS_ENTER)
   205         self.Bind(wx.EVT_TEXT_ENTER, self.OnContentDescriptionChanged,
   205         self.Bind(wx.EVT_TEXT_ENTER, self.OnContentDescriptionChanged,
   206               self.ContentDescription)
   206               self.ContentDescription)
   207         self.ContentDescription.Bind(wx.EVT_KILL_FOCUS,
   207         self.ContentDescription.Bind(wx.EVT_KILL_FOCUS,
   208               self.OnContentDescriptionChanged)
   208               self.OnContentDescriptionChanged)
   209         miscellaneouspanel_sizer.AddWindow(self.ContentDescription, border=10,
   209         miscellaneouspanel_sizer.AddWindow(self.ContentDescription, border=10,
   210               flag=wx.GROW|wx.BOTTOM|wx.RIGHT)
   210               flag=wx.GROW | wx.BOTTOM | wx.RIGHT)
   211 
   211 
   212         self.AddPage(self.MiscellaneousPanel, _("Miscellaneous"))
   212         self.AddPage(self.MiscellaneousPanel, _("Miscellaneous"))
   213 
   213 
   214         for param in REQUIRED_PARAMS:
   214         for param in REQUIRED_PARAMS:
   215             getattr(self, param).Enable(enable_required)
   215             getattr(self, param).Enable(enable_required)