controls/ProjectPropertiesPanel.py
branchwxPython4
changeset 3303 0ffb41625592
parent 2228 12cb48823b8c
child 3750 f62625418bff
equal deleted inserted replaced
3302:c89fc366bebd 3303:0ffb41625592
    55                 border |= wx.TOP
    55                 border |= wx.TOP
    56             elif idx == len(params) - 1:
    56             elif idx == len(params) - 1:
    57                 border |= wx.BOTTOM
    57                 border |= wx.BOTTOM
    58 
    58 
    59             st = wx.StaticText(parent, label=label)
    59             st = wx.StaticText(parent, label=label)
    60             sizer.AddWindow(st, border=10,
    60             sizer.Add(st, border=10,
    61                             flag=wx.ALIGN_CENTER_VERTICAL | border | wx.LEFT)
    61                             flag=wx.ALIGN_CENTER_VERTICAL | border | wx.LEFT)
    62 
    62 
    63             tc = wx.TextCtrl(parent, style=wx.TE_PROCESS_ENTER)
    63             tc = wx.TextCtrl(parent, style=wx.TE_PROCESS_ENTER)
    64             setattr(self, name, tc)
    64             setattr(self, name, tc)
    65             callback = self.GetTextCtrlChangedFunction(tc, name)
    65             callback = self.GetTextCtrlChangedFunction(tc, name)
    66             self.Bind(wx.EVT_TEXT_ENTER, callback, tc)
    66             self.Bind(wx.EVT_TEXT_ENTER, callback, tc)
    67             tc.Bind(wx.EVT_KILL_FOCUS, callback)
    67             tc.Bind(wx.EVT_KILL_FOCUS, callback)
    68             sizer.AddWindow(tc, border=10,
    68             sizer.Add(tc, border=10,
    69                             flag=wx.GROW | border | wx.RIGHT)
    69                             flag=wx.GROW | border | wx.RIGHT)
    70 
    70 
    71     def __init__(self, parent, controller=None, window=None, enable_required=True, scrolling=True):
    71     def __init__(self, parent, controller=None, window=None, enable_required=True, scrolling=True):
    72         wx.Notebook.__init__(self, parent)
    72         wx.Notebook.__init__(self, parent)
    73 
    73 
   123         graphicpanel_sizer.AddGrowableRow(3)
   123         graphicpanel_sizer.AddGrowableRow(3)
   124         self.GraphicsPanel.SetSizer(graphicpanel_sizer)
   124         self.GraphicsPanel.SetSizer(graphicpanel_sizer)
   125 
   125 
   126         pageSize_st = wx.StaticText(self.GraphicsPanel,
   126         pageSize_st = wx.StaticText(self.GraphicsPanel,
   127                                     label=_('Page Size (optional):'))
   127                                     label=_('Page Size (optional):'))
   128         graphicpanel_sizer.AddWindow(
   128         graphicpanel_sizer.Add(
   129             pageSize_st, border=10,
   129             pageSize_st, border=10,
   130             flag=wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.LEFT | wx.RIGHT)
   130             flag=wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.LEFT | wx.RIGHT)
   131 
   131 
   132         pageSize_sizer = wx.FlexGridSizer(cols=2, hgap=5, rows=2, vgap=5)
   132         pageSize_sizer = wx.FlexGridSizer(cols=2, hgap=5, rows=2, vgap=5)
   133         pageSize_sizer.AddGrowableCol(1)
   133         pageSize_sizer.AddGrowableCol(1)
   134         graphicpanel_sizer.AddSizer(pageSize_sizer, border=10,
   134         graphicpanel_sizer.Add(pageSize_sizer, border=10,
   135                                     flag=wx.GROW | wx.LEFT | wx.RIGHT)
   135                                     flag=wx.GROW | wx.LEFT | wx.RIGHT)
   136 
   136 
   137         for name, label in [('PageWidth', _('Width:')),
   137         for name, label in [('PageWidth', _('Width:')),
   138                             ('PageHeight', _('Height:'))]:
   138                             ('PageHeight', _('Height:'))]:
   139             st = wx.StaticText(self.GraphicsPanel, label=label)
   139             st = wx.StaticText(self.GraphicsPanel, label=label)
   140             pageSize_sizer.AddWindow(st, border=12,
   140             pageSize_sizer.Add(st, border=12,
   141                                      flag=wx.ALIGN_CENTER_VERTICAL | wx.LEFT)
   141                                      flag=wx.ALIGN_CENTER_VERTICAL | wx.LEFT)
   142 
   142 
   143             sp = wx.SpinCtrl(self.GraphicsPanel,
   143             sp = wx.SpinCtrl(self.GraphicsPanel,
   144                              min=0, max=2**16, style=wx.TE_PROCESS_ENTER)
   144                              min=0, max=2**16, style=wx.TE_PROCESS_ENTER)
   145             setattr(self, name, sp)
   145             setattr(self, name, sp)
   146             callback = self.GetPageSizeChangedFunction(sp, name)
   146             callback = self.GetPageSizeChangedFunction(sp, name)
   147             self.Bind(wx.EVT_TEXT_ENTER, callback, sp)
   147             self.Bind(wx.EVT_TEXT_ENTER, callback, sp)
   148             sp.Bind(wx.EVT_KILL_FOCUS, callback)
   148             sp.Bind(wx.EVT_KILL_FOCUS, callback)
   149             pageSize_sizer.AddWindow(sp, flag=wx.GROW)
   149             pageSize_sizer.Add(sp, flag=wx.GROW)
   150 
   150 
   151         scaling_st = wx.StaticText(self.GraphicsPanel,
   151         scaling_st = wx.StaticText(self.GraphicsPanel,
   152                                    label=_('Grid Resolution:'))
   152                                    label=_('Grid Resolution:'))
   153         graphicpanel_sizer.AddWindow(scaling_st, border=10,
   153         graphicpanel_sizer.Add(scaling_st, border=10,
   154                                      flag=wx.GROW | wx.LEFT | wx.RIGHT)
   154                                      flag=wx.GROW | wx.LEFT | wx.RIGHT)
   155 
   155 
   156         scaling_nb = wx.Notebook(self.GraphicsPanel)
   156         scaling_nb = wx.Notebook(self.GraphicsPanel)
   157         graphicpanel_sizer.AddWindow(scaling_nb, border=10,
   157         graphicpanel_sizer.Add(scaling_nb, border=10,
   158                                      flag=wx.GROW | wx.BOTTOM | wx.LEFT | wx.RIGHT)
   158                                      flag=wx.GROW | wx.BOTTOM | wx.LEFT | wx.RIGHT)
   159 
   159 
   160         self.Scalings = {}
   160         self.Scalings = {}
   161         for language, translation in [("FBD", _("FBD")), ("LD", _("LD")), ("SFC", _("SFC"))]:
   161         for language, translation in [("FBD", _("FBD")), ("LD", _("LD")), ("SFC", _("SFC"))]:
   162             scaling_panel = wx.Panel(scaling_nb, style=wx.TAB_TRAVERSAL)
   162             scaling_panel = wx.Panel(scaling_nb, style=wx.TAB_TRAVERSAL)
   171                     border = wx.TOP
   171                     border = wx.TOP
   172                 else:
   172                 else:
   173                     border = wx.BOTTOM
   173                     border = wx.BOTTOM
   174 
   174 
   175                 st = wx.StaticText(scaling_panel, label=label)
   175                 st = wx.StaticText(scaling_panel, label=label)
   176                 scalingpanel_sizer.AddWindow(
   176                 scalingpanel_sizer.Add(
   177                     st, border=10,
   177                     st, border=10,
   178                     flag=wx.ALIGN_CENTER_VERTICAL | border | wx.LEFT)
   178                     flag=wx.ALIGN_CENTER_VERTICAL | border | wx.LEFT)
   179 
   179 
   180                 sp = wx.SpinCtrl(scaling_panel,
   180                 sp = wx.SpinCtrl(scaling_panel,
   181                                  min=0, max=2**16, style=wx.TE_PROCESS_ENTER)
   181                                  min=0, max=2**16, style=wx.TE_PROCESS_ENTER)
   182                 scaling_controls.append(sp)
   182                 scaling_controls.append(sp)
   183                 callback = self.GetScalingChangedFunction(sp, language, name)
   183                 callback = self.GetScalingChangedFunction(sp, language, name)
   184                 self.Bind(wx.EVT_TEXT_ENTER, callback, sp)
   184                 self.Bind(wx.EVT_TEXT_ENTER, callback, sp)
   185                 sp.Bind(wx.EVT_KILL_FOCUS, callback)
   185                 sp.Bind(wx.EVT_KILL_FOCUS, callback)
   186                 scalingpanel_sizer.AddWindow(sp, border=10,
   186                 scalingpanel_sizer.Add(sp, border=10,
   187                                              flag=wx.GROW | border | wx.RIGHT)
   187                                              flag=wx.GROW | border | wx.RIGHT)
   188 
   188 
   189             self.Scalings[language] = scaling_controls
   189             self.Scalings[language] = scaling_controls
   190             scaling_nb.AddPage(scaling_panel, translation)
   190             scaling_nb.AddPage(scaling_panel, translation)
   191 
   191 
   204         miscellaneouspanel_sizer.AddGrowableRow(1)
   204         miscellaneouspanel_sizer.AddGrowableRow(1)
   205         self.MiscellaneousPanel.SetSizer(miscellaneouspanel_sizer)
   205         self.MiscellaneousPanel.SetSizer(miscellaneouspanel_sizer)
   206 
   206 
   207         language_label = wx.StaticText(self.MiscellaneousPanel,
   207         language_label = wx.StaticText(self.MiscellaneousPanel,
   208                                        label=_('Language (optional):'))
   208                                        label=_('Language (optional):'))
   209         miscellaneouspanel_sizer.AddWindow(language_label, border=10,
   209         miscellaneouspanel_sizer.Add(language_label, border=10,
   210                                            flag=wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.LEFT)
   210                                            flag=wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.LEFT)
   211 
   211 
   212         self.Language = wx.ComboBox(self.MiscellaneousPanel,
   212         self.Language = wx.ComboBox(self.MiscellaneousPanel,
   213                                     style=wx.CB_READONLY)
   213                                     style=wx.CB_READONLY)
   214         self.Bind(wx.EVT_COMBOBOX, self.OnLanguageChanged, self.Language)
   214         self.Bind(wx.EVT_COMBOBOX, self.OnLanguageChanged, self.Language)
   215         miscellaneouspanel_sizer.AddWindow(self.Language, border=10,
   215         miscellaneouspanel_sizer.Add(self.Language, border=10,
   216                                            flag=wx.GROW | wx.TOP | wx.RIGHT)
   216                                            flag=wx.GROW | wx.TOP | wx.RIGHT)
   217 
   217 
   218         description_label = wx.StaticText(
   218         description_label = wx.StaticText(
   219             self.MiscellaneousPanel, label=_('Content Description (optional):'))
   219             self.MiscellaneousPanel, label=_('Content Description (optional):'))
   220         miscellaneouspanel_sizer.AddWindow(description_label, border=10,
   220         miscellaneouspanel_sizer.Add(description_label, border=10,
   221                                            flag=wx.BOTTOM | wx.LEFT)
   221                                            flag=wx.BOTTOM | wx.LEFT)
   222 
   222 
   223         self.ContentDescription = wx.TextCtrl(
   223         self.ContentDescription = wx.TextCtrl(
   224             self.MiscellaneousPanel, size=wx.Size(240, 150),
   224             self.MiscellaneousPanel, size=wx.Size(240, 150),
   225             style=wx.TE_MULTILINE | wx.TE_PROCESS_ENTER)
   225             style=wx.TE_MULTILINE | wx.TE_PROCESS_ENTER)
   226         self.Bind(wx.EVT_TEXT_ENTER, self.OnContentDescriptionChanged,
   226         self.Bind(wx.EVT_TEXT_ENTER, self.OnContentDescriptionChanged,
   227                   self.ContentDescription)
   227                   self.ContentDescription)
   228         self.ContentDescription.Bind(wx.EVT_KILL_FOCUS,
   228         self.ContentDescription.Bind(wx.EVT_KILL_FOCUS,
   229                                      self.OnContentDescriptionChanged)
   229                                      self.OnContentDescriptionChanged)
   230         miscellaneouspanel_sizer.AddWindow(self.ContentDescription, border=10,
   230         miscellaneouspanel_sizer.Add(self.ContentDescription, border=10,
   231                                            flag=wx.GROW | wx.BOTTOM | wx.RIGHT)
   231                                            flag=wx.GROW | wx.BOTTOM | wx.RIGHT)
   232 
   232 
   233         self.AddPage(self.MiscellaneousPanel, _("Miscellaneous"))
   233         self.AddPage(self.MiscellaneousPanel, _("Miscellaneous"))
   234 
   234 
   235         for param in REQUIRED_PARAMS:
   235         for param in REQUIRED_PARAMS: