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 |
75 projectpanel_sizer = wx.FlexGridSizer(cols=2, hgap=5, rows=5, vgap=15) |
75 projectpanel_sizer = wx.FlexGridSizer(cols=2, hgap=5, rows=5, vgap=15) |
76 projectpanel_sizer.AddGrowableCol(1) |
76 projectpanel_sizer.AddGrowableCol(1) |
77 self.ProjectPanel.SetSizer(projectpanel_sizer) |
77 self.ProjectPanel.SetSizer(projectpanel_sizer) |
78 |
78 |
79 self.AddSizerParams(self.ProjectPanel, projectpanel_sizer, |
79 self.AddSizerParams(self.ProjectPanel, projectpanel_sizer, |
80 [("projectName", _('Project Name (required):')), |
80 [("projectName", _('Project Name (required):')), |
81 ("projectVersion", _('Project Version (optional):')), |
81 ("projectVersion", _('Project Version (optional):')), |
82 ("productName", _('Product Name (required):')), |
82 ("productName", _('Product Name (required):')), |
83 ("productVersion", _('Product Version (required):')), |
83 ("productVersion", _('Product Version (required):')), |
84 ("productRelease", _('Product Release (optional):'))]) |
84 ("productRelease", _('Product Release (optional):'))]) |
85 |
85 |
86 self.AddPage(self.ProjectPanel, _("Project")) |
86 self.AddPage(self.ProjectPanel, _("Project")) |
87 |
87 |
88 # Author Panel elements |
88 # Author Panel elements |
89 |
89 |
91 authorpanel_sizer = wx.FlexGridSizer(cols=2, hgap=5, rows=4, vgap=15) |
91 authorpanel_sizer = wx.FlexGridSizer(cols=2, hgap=5, rows=4, vgap=15) |
92 authorpanel_sizer.AddGrowableCol(1) |
92 authorpanel_sizer.AddGrowableCol(1) |
93 self.AuthorPanel.SetSizer(authorpanel_sizer) |
93 self.AuthorPanel.SetSizer(authorpanel_sizer) |
94 |
94 |
95 self.AddSizerParams(self.AuthorPanel, authorpanel_sizer, |
95 self.AddSizerParams(self.AuthorPanel, authorpanel_sizer, |
96 [("companyName", _('Company Name (required):')), |
96 [("companyName", _('Company Name (required):')), |
97 ("companyURL", _('Company URL (optional):')), |
97 ("companyURL", _('Company URL (optional):')), |
98 ("authorName", _('Author Name (optional):')), |
98 ("authorName", _('Author Name (optional):')), |
99 ("organization", _('Organization (optional):'))]) |
99 ("organization", _('Organization (optional):'))]) |
100 |
100 |
101 self.AddPage(self.AuthorPanel, _("Author")) |
101 self.AddPage(self.AuthorPanel, _("Author")) |
102 |
102 |
103 # Graphics Panel elements |
103 # Graphics Panel elements |
104 |
104 |
107 graphicpanel_sizer.AddGrowableCol(0) |
107 graphicpanel_sizer.AddGrowableCol(0) |
108 graphicpanel_sizer.AddGrowableRow(3) |
108 graphicpanel_sizer.AddGrowableRow(3) |
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( |
114 flag=wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.LEFT | wx.RIGHT) |
114 pageSize_st, border=10, |
|
115 flag=wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.LEFT | wx.RIGHT) |
115 |
116 |
116 pageSize_sizer = wx.FlexGridSizer(cols=2, hgap=5, rows=2, vgap=5) |
117 pageSize_sizer = wx.FlexGridSizer(cols=2, hgap=5, rows=2, vgap=5) |
117 pageSize_sizer.AddGrowableCol(1) |
118 pageSize_sizer.AddGrowableCol(1) |
118 graphicpanel_sizer.AddSizer(pageSize_sizer, border=10, |
119 graphicpanel_sizer.AddSizer(pageSize_sizer, border=10, |
119 flag=wx.GROW | wx.LEFT | wx.RIGHT) |
120 flag=wx.GROW | wx.LEFT | wx.RIGHT) |
120 |
121 |
121 for name, label in [('PageWidth', _('Width:')), |
122 for name, label in [('PageWidth', _('Width:')), |
122 ('PageHeight', _('Height:'))]: |
123 ('PageHeight', _('Height:'))]: |
123 st = wx.StaticText(self.GraphicsPanel, label=label) |
124 st = wx.StaticText(self.GraphicsPanel, label=label) |
124 pageSize_sizer.AddWindow(st, border=12, |
125 pageSize_sizer.AddWindow(st, border=12, |
125 flag=wx.ALIGN_CENTER_VERTICAL | wx.LEFT) |
126 flag=wx.ALIGN_CENTER_VERTICAL | wx.LEFT) |
126 |
127 |
127 sp = wx.SpinCtrl(self.GraphicsPanel, |
128 sp = wx.SpinCtrl(self.GraphicsPanel, |
128 min=0, max=2**16, style=wx.TE_PROCESS_ENTER) |
129 min=0, max=2**16, style=wx.TE_PROCESS_ENTER) |
129 setattr(self, name, sp) |
130 setattr(self, name, sp) |
130 callback = self.GetPageSizeChangedFunction(sp, name) |
131 callback = self.GetPageSizeChangedFunction(sp, name) |
131 self.Bind(wx.EVT_TEXT_ENTER, callback, sp) |
132 self.Bind(wx.EVT_TEXT_ENTER, callback, sp) |
132 sp.Bind(wx.EVT_KILL_FOCUS, callback) |
133 sp.Bind(wx.EVT_KILL_FOCUS, callback) |
133 pageSize_sizer.AddWindow(sp, flag=wx.GROW) |
134 pageSize_sizer.AddWindow(sp, flag=wx.GROW) |
134 |
135 |
135 scaling_st = wx.StaticText(self.GraphicsPanel, |
136 scaling_st = wx.StaticText(self.GraphicsPanel, |
136 label=_('Grid Resolution:')) |
137 label=_('Grid Resolution:')) |
137 graphicpanel_sizer.AddWindow(scaling_st, border=10, |
138 graphicpanel_sizer.AddWindow(scaling_st, border=10, |
138 flag=wx.GROW | wx.LEFT | wx.RIGHT) |
139 flag=wx.GROW | wx.LEFT | wx.RIGHT) |
139 |
140 |
140 scaling_nb = wx.Notebook(self.GraphicsPanel) |
141 scaling_nb = wx.Notebook(self.GraphicsPanel) |
141 graphicpanel_sizer.AddWindow(scaling_nb, border=10, |
142 graphicpanel_sizer.AddWindow(scaling_nb, border=10, |
142 flag=wx.GROW | wx.BOTTOM | wx.LEFT | wx.RIGHT) |
143 flag=wx.GROW | wx.BOTTOM | wx.LEFT | wx.RIGHT) |
143 |
144 |
144 self.Scalings = {} |
145 self.Scalings = {} |
145 for language, translation in [("FBD", _("FBD")), ("LD", _("LD")), ("SFC", _("SFC"))]: |
146 for language, translation in [("FBD", _("FBD")), ("LD", _("LD")), ("SFC", _("SFC"))]: |
146 scaling_panel = wx.Panel(scaling_nb, style=wx.TAB_TRAVERSAL) |
147 scaling_panel = wx.Panel(scaling_nb, style=wx.TAB_TRAVERSAL) |
147 scalingpanel_sizer = wx.FlexGridSizer(cols=2, hgap=5, rows=2, vgap=5) |
148 scalingpanel_sizer = wx.FlexGridSizer(cols=2, hgap=5, rows=2, vgap=5) |
155 border = wx.TOP |
156 border = wx.TOP |
156 else: |
157 else: |
157 border = wx.BOTTOM |
158 border = wx.BOTTOM |
158 |
159 |
159 st = wx.StaticText(scaling_panel, label=label) |
160 st = wx.StaticText(scaling_panel, label=label) |
160 scalingpanel_sizer.AddWindow(st, border=10, |
161 scalingpanel_sizer.AddWindow( |
161 flag=wx.ALIGN_CENTER_VERTICAL | border | wx.LEFT) |
162 st, border=10, |
|
163 flag=wx.ALIGN_CENTER_VERTICAL | border | wx.LEFT) |
162 |
164 |
163 sp = wx.SpinCtrl(scaling_panel, |
165 sp = wx.SpinCtrl(scaling_panel, |
164 min=0, max=2**16, style=wx.TE_PROCESS_ENTER) |
166 min=0, max=2**16, style=wx.TE_PROCESS_ENTER) |
165 scaling_controls.append(sp) |
167 scaling_controls.append(sp) |
166 callback = self.GetScalingChangedFunction(sp, language, name) |
168 callback = self.GetScalingChangedFunction(sp, language, name) |
167 self.Bind(wx.EVT_TEXT_ENTER, callback, sp) |
169 self.Bind(wx.EVT_TEXT_ENTER, callback, sp) |
168 sp.Bind(wx.EVT_KILL_FOCUS, callback) |
170 sp.Bind(wx.EVT_KILL_FOCUS, callback) |
169 scalingpanel_sizer.AddWindow(sp, border=10, |
171 scalingpanel_sizer.AddWindow(sp, border=10, |
170 flag=wx.GROW | border | wx.RIGHT) |
172 flag=wx.GROW | border | wx.RIGHT) |
171 |
173 |
172 self.Scalings[language] = scaling_controls |
174 self.Scalings[language] = scaling_controls |
173 scaling_nb.AddPage(scaling_panel, translation) |
175 scaling_nb.AddPage(scaling_panel, translation) |
174 |
176 |
175 self.AddPage(self.GraphicsPanel, _("Graphics")) |
177 self.AddPage(self.GraphicsPanel, _("Graphics")) |
176 |
178 |
177 # Miscellaneous Panel elements |
179 # Miscellaneous Panel elements |
178 |
180 |
179 self.MiscellaneousPanel = wx.Panel(id=-1, parent=self, |
181 self.MiscellaneousPanel = wx.Panel( |
180 name='MiscellaneousPanel', pos=wx.Point(0, 0), |
182 id=-1, parent=self, name='MiscellaneousPanel', pos=wx.Point(0, 0), |
181 size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL) |
183 size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL) |
182 miscellaneouspanel_sizer = wx.FlexGridSizer(cols=2, hgap=5, rows=2, vgap=15) |
184 miscellaneouspanel_sizer = wx.FlexGridSizer(cols=2, hgap=5, rows=2, vgap=15) |
183 miscellaneouspanel_sizer.AddGrowableCol(1) |
185 miscellaneouspanel_sizer.AddGrowableCol(1) |
184 miscellaneouspanel_sizer.AddGrowableRow(1) |
186 miscellaneouspanel_sizer.AddGrowableRow(1) |
185 self.MiscellaneousPanel.SetSizer(miscellaneouspanel_sizer) |
187 self.MiscellaneousPanel.SetSizer(miscellaneouspanel_sizer) |
186 |
188 |
187 language_label = wx.StaticText(self.MiscellaneousPanel, |
189 language_label = wx.StaticText(self.MiscellaneousPanel, |
188 label=_('Language (optional):')) |
190 label=_('Language (optional):')) |
189 miscellaneouspanel_sizer.AddWindow(language_label, border=10, |
191 miscellaneouspanel_sizer.AddWindow(language_label, border=10, |
190 flag=wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.LEFT) |
192 flag=wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.LEFT) |
191 |
193 |
192 self.Language = wx.ComboBox(self.MiscellaneousPanel, |
194 self.Language = wx.ComboBox(self.MiscellaneousPanel, |
193 style=wx.CB_READONLY) |
195 style=wx.CB_READONLY) |
194 self.Bind(wx.EVT_COMBOBOX, self.OnLanguageChanged, self.Language) |
196 self.Bind(wx.EVT_COMBOBOX, self.OnLanguageChanged, self.Language) |
195 miscellaneouspanel_sizer.AddWindow(self.Language, border=10, |
197 miscellaneouspanel_sizer.AddWindow(self.Language, border=10, |
196 flag=wx.GROW | wx.TOP | wx.RIGHT) |
198 flag=wx.GROW | wx.TOP | wx.RIGHT) |
197 |
199 |
198 description_label = wx.StaticText(self.MiscellaneousPanel, |
200 description_label = wx.StaticText( |
199 label=_('Content Description (optional):')) |
201 self.MiscellaneousPanel, label=_('Content Description (optional):')) |
200 miscellaneouspanel_sizer.AddWindow(description_label, border=10, |
202 miscellaneouspanel_sizer.AddWindow(description_label, border=10, |
201 flag=wx.BOTTOM | wx.LEFT) |
203 flag=wx.BOTTOM | wx.LEFT) |
202 |
204 |
203 self.ContentDescription = wx.TextCtrl(self.MiscellaneousPanel, |
205 self.ContentDescription = wx.TextCtrl( |
204 size=wx.Size(240, 150), style=wx.TE_MULTILINE | wx.TE_PROCESS_ENTER) |
206 self.MiscellaneousPanel, size=wx.Size(240, 150), |
|
207 style=wx.TE_MULTILINE | wx.TE_PROCESS_ENTER) |
205 self.Bind(wx.EVT_TEXT_ENTER, self.OnContentDescriptionChanged, |
208 self.Bind(wx.EVT_TEXT_ENTER, self.OnContentDescriptionChanged, |
206 self.ContentDescription) |
209 self.ContentDescription) |
207 self.ContentDescription.Bind(wx.EVT_KILL_FOCUS, |
210 self.ContentDescription.Bind(wx.EVT_KILL_FOCUS, |
208 self.OnContentDescriptionChanged) |
211 self.OnContentDescriptionChanged) |
209 miscellaneouspanel_sizer.AddWindow(self.ContentDescription, border=10, |
212 miscellaneouspanel_sizer.AddWindow(self.ContentDescription, border=10, |
210 flag=wx.GROW | wx.BOTTOM | wx.RIGHT) |
213 flag=wx.GROW | wx.BOTTOM | wx.RIGHT) |
211 |
214 |
212 self.AddPage(self.MiscellaneousPanel, _("Miscellaneous")) |
215 self.AddPage(self.MiscellaneousPanel, _("Miscellaneous")) |
213 |
216 |
214 for param in REQUIRED_PARAMS: |
217 for param in REQUIRED_PARAMS: |
215 getattr(self, param).Enable(enable_required) |
218 getattr(self, param).Enable(enable_required) |