153 self.MainSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=10) |
153 self.MainSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=10) |
154 self.MainSizer.AddGrowableCol(0) |
154 self.MainSizer.AddGrowableCol(0) |
155 self.MainSizer.AddGrowableRow(1) |
155 self.MainSizer.AddGrowableRow(1) |
156 |
156 |
157 top_sizer = wx.BoxSizer(wx.HORIZONTAL) |
157 top_sizer = wx.BoxSizer(wx.HORIZONTAL) |
158 self.MainSizer.AddSizer(top_sizer, border=5, |
158 self.MainSizer.Add(top_sizer, border=5, |
159 flag=wx.GROW | wx.TOP | wx.LEFT | wx.RIGHT) |
159 flag=wx.GROW | wx.TOP | wx.LEFT | wx.RIGHT) |
160 |
160 |
161 derivation_type_label = wx.StaticText(self.Editor, label=_('Derivation Type:')) |
161 derivation_type_label = wx.StaticText(self.Editor, label=_('Derivation Type:')) |
162 top_sizer.AddWindow(derivation_type_label, border=5, |
162 top_sizer.Add(derivation_type_label, border=5, |
163 flag=wx.ALIGN_CENTER_VERTICAL | wx.LEFT | wx.RIGHT) |
163 flag=wx.ALIGN_CENTER_VERTICAL | wx.LEFT | wx.RIGHT) |
164 |
164 |
165 self.DerivationType = wx.ComboBox(self.Editor, |
165 self.DerivationType = wx.ComboBox(self.Editor, |
166 size=wx.Size(200, -1), style=wx.CB_READONLY) |
166 size=wx.Size(200, -1), style=wx.CB_READONLY) |
167 self.Bind(wx.EVT_COMBOBOX, self.OnDerivationTypeChanged, self.DerivationType) |
167 self.Bind(wx.EVT_COMBOBOX, self.OnDerivationTypeChanged, self.DerivationType) |
168 top_sizer.AddWindow(self.DerivationType, border=5, flag=wx.GROW | wx.RIGHT) |
168 top_sizer.Add(self.DerivationType, border=5, flag=wx.GROW | wx.RIGHT) |
169 |
169 |
170 typeinfos_staticbox = wx.StaticBox(self.Editor, label=_('Type infos:')) |
170 typeinfos_staticbox = wx.StaticBox(self.Editor, label=_('Type infos:')) |
171 typeinfos_sizer = wx.StaticBoxSizer(typeinfos_staticbox, wx.HORIZONTAL) |
171 typeinfos_sizer = wx.StaticBoxSizer(typeinfos_staticbox, wx.HORIZONTAL) |
172 self.MainSizer.AddSizer(typeinfos_sizer, border=5, |
172 self.MainSizer.Add(typeinfos_sizer, border=5, |
173 flag=wx.GROW | wx.BOTTOM | wx.LEFT | wx.RIGHT) |
173 flag=wx.GROW | wx.BOTTOM | wx.LEFT | wx.RIGHT) |
174 |
174 |
175 # Panel for Directly derived data types |
175 # Panel for Directly derived data types |
176 |
176 |
177 self.DirectlyPanel = wx.Panel(self.Editor, style=wx.TAB_TRAVERSAL) |
177 self.DirectlyPanel = wx.Panel(self.Editor, style=wx.TAB_TRAVERSAL) |
178 typeinfos_sizer.AddWindow(self.DirectlyPanel, 1) |
178 typeinfos_sizer.Add(self.DirectlyPanel, 1) |
179 |
179 |
180 directly_panel_sizer = wx.BoxSizer(wx.HORIZONTAL) |
180 directly_panel_sizer = wx.BoxSizer(wx.HORIZONTAL) |
181 |
181 |
182 directly_basetype_label = wx.StaticText(self.DirectlyPanel, |
182 directly_basetype_label = wx.StaticText(self.DirectlyPanel, |
183 label=_('Base Type:')) |
183 label=_('Base Type:')) |
184 directly_panel_sizer.AddWindow(directly_basetype_label, 1, border=5, |
184 directly_panel_sizer.Add(directly_basetype_label, 1, border=5, |
185 flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL) |
185 flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL) |
186 |
186 |
187 self.DirectlyBaseType = wx.ComboBox(self.DirectlyPanel, style=wx.CB_READONLY) |
187 self.DirectlyBaseType = wx.ComboBox(self.DirectlyPanel, style=wx.CB_READONLY) |
188 self.Bind(wx.EVT_COMBOBOX, self.OnInfosChanged, self.DirectlyBaseType) |
188 self.Bind(wx.EVT_COMBOBOX, self.OnInfosChanged, self.DirectlyBaseType) |
189 directly_panel_sizer.AddWindow(self.DirectlyBaseType, 1, border=5, |
189 directly_panel_sizer.Add(self.DirectlyBaseType, 1, border=5, |
190 flag=wx.GROW | wx.ALL) |
190 flag=wx.GROW | wx.ALL) |
191 |
191 |
192 directly_initialvalue_label = wx.StaticText(self.DirectlyPanel, |
192 directly_initialvalue_label = wx.StaticText(self.DirectlyPanel, |
193 label=_('Initial Value:')) |
193 label=_('Initial Value:')) |
194 directly_panel_sizer.AddWindow(directly_initialvalue_label, 1, border=5, |
194 directly_panel_sizer.Add(directly_initialvalue_label, 1, border=5, |
195 flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL) |
195 flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL) |
196 |
196 |
197 self.DirectlyInitialValue = wx.TextCtrl(self.DirectlyPanel, |
197 self.DirectlyInitialValue = wx.TextCtrl(self.DirectlyPanel, |
198 style=wx.TE_PROCESS_ENTER | wx.TE_RICH) |
198 style=wx.TE_PROCESS_ENTER | wx.TE_RICH) |
199 self.Bind(wx.EVT_TEXT_ENTER, self.OnReturnKeyPressed, self.DirectlyInitialValue) |
199 self.Bind(wx.EVT_TEXT_ENTER, self.OnReturnKeyPressed, self.DirectlyInitialValue) |
200 directly_panel_sizer.AddWindow(self.DirectlyInitialValue, 1, border=5, |
200 directly_panel_sizer.Add(self.DirectlyInitialValue, 1, border=5, |
201 flag=wx.ALL) |
201 flag=wx.ALL) |
202 |
202 |
203 self.DirectlyPanel.SetSizer(directly_panel_sizer) |
203 self.DirectlyPanel.SetSizer(directly_panel_sizer) |
204 |
204 |
205 # Panel for Subrange data types |
205 # Panel for Subrange data types |
206 |
206 |
207 self.SubrangePanel = wx.Panel(self.Editor, style=wx.TAB_TRAVERSAL) |
207 self.SubrangePanel = wx.Panel(self.Editor, style=wx.TAB_TRAVERSAL) |
208 typeinfos_sizer.AddWindow(self.SubrangePanel, 1) |
208 typeinfos_sizer.Add(self.SubrangePanel, 1) |
209 |
209 |
210 subrange_panel_sizer = wx.GridSizer(cols=4, hgap=5, rows=3, vgap=0) |
210 subrange_panel_sizer = wx.GridSizer(cols=4, hgap=5, rows=3, vgap=0) |
211 |
211 |
212 subrange_basetype_label = wx.StaticText(self.SubrangePanel, |
212 subrange_basetype_label = wx.StaticText(self.SubrangePanel, |
213 label=_('Base Type:')) |
213 label=_('Base Type:')) |
214 subrange_panel_sizer.AddWindow(subrange_basetype_label, 1, border=5, |
214 subrange_panel_sizer.Add(subrange_basetype_label, 1, border=5, |
215 flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL) |
215 flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL) |
216 |
216 |
217 self.SubrangeBaseType = wx.ComboBox(self.SubrangePanel, style=wx.CB_READONLY) |
217 self.SubrangeBaseType = wx.ComboBox(self.SubrangePanel, style=wx.CB_READONLY) |
218 self.Bind(wx.EVT_COMBOBOX, self.OnSubrangeBaseTypeChanged, |
218 self.Bind(wx.EVT_COMBOBOX, self.OnSubrangeBaseTypeChanged, |
219 self.SubrangeBaseType) |
219 self.SubrangeBaseType) |
220 subrange_panel_sizer.AddWindow(self.SubrangeBaseType, 1, border=5, |
220 subrange_panel_sizer.Add(self.SubrangeBaseType, 1, border=5, |
221 flag=wx.GROW | wx.ALL) |
221 flag=wx.GROW | wx.ALL) |
222 |
222 |
223 subrange_initialvalue_label = wx.StaticText(self.SubrangePanel, |
223 subrange_initialvalue_label = wx.StaticText(self.SubrangePanel, |
224 label=_('Initial Value:')) |
224 label=_('Initial Value:')) |
225 subrange_panel_sizer.AddWindow(subrange_initialvalue_label, 1, border=5, |
225 subrange_panel_sizer.Add(subrange_initialvalue_label, 1, border=5, |
226 flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL) |
226 flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL) |
227 |
227 |
228 self.SubrangeInitialValue = CustomIntCtrl(self.SubrangePanel, style=wx.TAB_TRAVERSAL) |
228 self.SubrangeInitialValue = CustomIntCtrl(self.SubrangePanel, style=wx.TAB_TRAVERSAL) |
229 self.SubrangeInitialValue.Bind(CustomIntCtrl.EVT_CUSTOM_INT, self.OnInfosChanged) |
229 self.SubrangeInitialValue.Bind(CustomIntCtrl.EVT_CUSTOM_INT, self.OnInfosChanged) |
230 subrange_panel_sizer.AddWindow(self.SubrangeInitialValue, 1, border=5, |
230 subrange_panel_sizer.Add(self.SubrangeInitialValue, 1, border=5, |
231 flag=wx.GROW | wx.ALL) |
231 flag=wx.GROW | wx.ALL) |
232 |
232 |
233 subrange_minimum_label = wx.StaticText(self.SubrangePanel, label=_('Minimum:')) |
233 subrange_minimum_label = wx.StaticText(self.SubrangePanel, label=_('Minimum:')) |
234 subrange_panel_sizer.AddWindow(subrange_minimum_label, 1, border=5, |
234 subrange_panel_sizer.Add(subrange_minimum_label, 1, border=5, |
235 flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL) |
235 flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL) |
236 |
236 |
237 self.SubrangeMinimum = CustomIntCtrl(self.SubrangePanel, style=wx.TAB_TRAVERSAL) |
237 self.SubrangeMinimum = CustomIntCtrl(self.SubrangePanel, style=wx.TAB_TRAVERSAL) |
238 self.SubrangeMinimum.Bind(CustomIntCtrl.EVT_CUSTOM_INT, self.OnSubrangeMinimumChanged) |
238 self.SubrangeMinimum.Bind(CustomIntCtrl.EVT_CUSTOM_INT, self.OnSubrangeMinimumChanged) |
239 subrange_panel_sizer.AddWindow(self.SubrangeMinimum, 1, border=5, |
239 subrange_panel_sizer.Add(self.SubrangeMinimum, 1, border=5, |
240 flag=wx.GROW | wx.ALL) |
240 flag=wx.GROW | wx.ALL) |
241 |
241 |
242 for dummy in xrange(2): |
242 for dummy in xrange(2): |
243 subrange_panel_sizer.AddWindow(wx.Size(0, 0), 1) |
243 subrange_panel_sizer.Add(wx.Size(0, 0), 1) |
244 |
244 |
245 subrange_maximum_label = wx.StaticText(self.SubrangePanel, |
245 subrange_maximum_label = wx.StaticText(self.SubrangePanel, |
246 label=_('Maximum:')) |
246 label=_('Maximum:')) |
247 subrange_panel_sizer.AddWindow(subrange_maximum_label, 1, border=5, |
247 subrange_panel_sizer.Add(subrange_maximum_label, 1, border=5, |
248 flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL) |
248 flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL) |
249 |
249 |
250 self.SubrangeMaximum = CustomIntCtrl(self.SubrangePanel, style=wx.TAB_TRAVERSAL) |
250 self.SubrangeMaximum = CustomIntCtrl(self.SubrangePanel, style=wx.TAB_TRAVERSAL) |
251 self.SubrangeMaximum.Bind(CustomIntCtrl.EVT_CUSTOM_INT, self.OnSubrangeMaximumChanged) |
251 self.SubrangeMaximum.Bind(CustomIntCtrl.EVT_CUSTOM_INT, self.OnSubrangeMaximumChanged) |
252 |
252 |
253 subrange_panel_sizer.AddWindow(self.SubrangeMaximum, 1, border=5, |
253 subrange_panel_sizer.Add(self.SubrangeMaximum, 1, border=5, |
254 flag=wx.GROW | wx.ALL) |
254 flag=wx.GROW | wx.ALL) |
255 |
255 |
256 self.SubrangePanel.SetSizer(subrange_panel_sizer) |
256 self.SubrangePanel.SetSizer(subrange_panel_sizer) |
257 |
257 |
258 # Panel for Enumerated data types |
258 # Panel for Enumerated data types |
259 |
259 |
260 self.EnumeratedPanel = wx.Panel(self.Editor, style=wx.TAB_TRAVERSAL) |
260 self.EnumeratedPanel = wx.Panel(self.Editor, style=wx.TAB_TRAVERSAL) |
261 typeinfos_sizer.AddWindow(self.EnumeratedPanel, 1) |
261 typeinfos_sizer.Add(self.EnumeratedPanel, 1) |
262 |
262 |
263 enumerated_panel_sizer = wx.BoxSizer(wx.HORIZONTAL) |
263 enumerated_panel_sizer = wx.BoxSizer(wx.HORIZONTAL) |
264 |
264 |
265 self.EnumeratedValues = CustomEditableListBox( |
265 self.EnumeratedValues = CustomEditableListBox( |
266 self.EnumeratedPanel, |
266 self.EnumeratedPanel, |
267 label=_("Values:"), |
267 label=_("Values:"), |
268 style=(wx.gizmos.EL_ALLOW_NEW | |
268 style=(wx.adv.EL_ALLOW_NEW | |
269 wx.gizmos.EL_ALLOW_EDIT | |
269 wx.adv.EL_ALLOW_EDIT | |
270 wx.gizmos.EL_ALLOW_DELETE)) |
270 wx.adv.EL_ALLOW_DELETE)) |
271 setattr(self.EnumeratedValues, "_OnLabelEndEdit", self.OnEnumeratedValueEndEdit) |
271 setattr(self.EnumeratedValues, "_OnLabelEndEdit", self.OnEnumeratedValueEndEdit) |
272 for func in ["_OnAddButton", "_OnDelButton", "_OnUpButton", "_OnDownButton"]: |
272 for func in ["_OnAddButton", "_OnDelButton", "_OnUpButton", "_OnDownButton"]: |
273 setattr(self.EnumeratedValues, func, self.OnEnumeratedValuesChanged) |
273 setattr(self.EnumeratedValues, func, self.OnEnumeratedValuesChanged) |
274 enumerated_panel_sizer.AddWindow(self.EnumeratedValues, 1, border=5, |
274 enumerated_panel_sizer.Add(self.EnumeratedValues, 1, border=5, |
275 flag=wx.GROW | wx.ALL) |
275 flag=wx.GROW | wx.ALL) |
276 |
276 |
277 enumerated_panel_rightsizer = wx.BoxSizer(wx.HORIZONTAL) |
277 enumerated_panel_rightsizer = wx.BoxSizer(wx.HORIZONTAL) |
278 enumerated_panel_sizer.AddSizer(enumerated_panel_rightsizer, 1) |
278 enumerated_panel_sizer.Add(enumerated_panel_rightsizer, 1) |
279 |
279 |
280 enumerated_initialvalue_label = wx.StaticText(self.EnumeratedPanel, |
280 enumerated_initialvalue_label = wx.StaticText(self.EnumeratedPanel, |
281 label=_('Initial Value:')) |
281 label=_('Initial Value:')) |
282 enumerated_panel_rightsizer.AddWindow(enumerated_initialvalue_label, 1, |
282 enumerated_panel_rightsizer.Add(enumerated_initialvalue_label, 1, |
283 border=5, |
283 border=5, |
284 flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL) |
284 flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL) |
285 |
285 |
286 self.EnumeratedInitialValue = wx.ComboBox(self.EnumeratedPanel, |
286 self.EnumeratedInitialValue = wx.ComboBox(self.EnumeratedPanel, |
287 style=wx.CB_READONLY) |
287 style=wx.CB_READONLY) |
288 self.Bind(wx.EVT_COMBOBOX, self.OnInfosChanged, self.EnumeratedInitialValue) |
288 self.Bind(wx.EVT_COMBOBOX, self.OnInfosChanged, self.EnumeratedInitialValue) |
289 enumerated_panel_rightsizer.AddWindow(self.EnumeratedInitialValue, 1, |
289 enumerated_panel_rightsizer.Add(self.EnumeratedInitialValue, 1, |
290 border=5, flag=wx.ALL) |
290 border=5, flag=wx.ALL) |
291 |
291 |
292 self.EnumeratedPanel.SetSizer(enumerated_panel_sizer) |
292 self.EnumeratedPanel.SetSizer(enumerated_panel_sizer) |
293 |
293 |
294 # Panel for Array data types |
294 # Panel for Array data types |
295 |
295 |
296 self.ArrayPanel = wx.Panel(self.Editor, style=wx.TAB_TRAVERSAL) |
296 self.ArrayPanel = wx.Panel(self.Editor, style=wx.TAB_TRAVERSAL) |
297 typeinfos_sizer.AddWindow(self.ArrayPanel, 1) |
297 typeinfos_sizer.Add(self.ArrayPanel, 1) |
298 |
298 |
299 array_panel_sizer = wx.FlexGridSizer(cols=2, hgap=5, rows=2, vgap=0) |
299 array_panel_sizer = wx.FlexGridSizer(cols=2, hgap=5, rows=2, vgap=0) |
300 array_panel_sizer.AddGrowableCol(0) |
300 array_panel_sizer.AddGrowableCol(0) |
301 array_panel_sizer.AddGrowableCol(1) |
301 array_panel_sizer.AddGrowableCol(1) |
302 array_panel_sizer.AddGrowableRow(1) |
302 array_panel_sizer.AddGrowableRow(1) |
303 |
303 |
304 array_panel_leftSizer = wx.BoxSizer(wx.HORIZONTAL) |
304 array_panel_leftSizer = wx.BoxSizer(wx.HORIZONTAL) |
305 array_panel_sizer.AddSizer(array_panel_leftSizer, flag=wx.GROW) |
305 array_panel_sizer.Add(array_panel_leftSizer, flag=wx.GROW) |
306 |
306 |
307 array_basetype_label = wx.StaticText(self.ArrayPanel, label=_('Base Type:')) |
307 array_basetype_label = wx.StaticText(self.ArrayPanel, label=_('Base Type:')) |
308 array_panel_leftSizer.AddWindow(array_basetype_label, 1, border=5, |
308 array_panel_leftSizer.Add(array_basetype_label, 1, border=5, |
309 flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL) |
309 flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL) |
310 |
310 |
311 self.ArrayBaseType = wx.ComboBox(self.ArrayPanel, style=wx.CB_READONLY) |
311 self.ArrayBaseType = wx.ComboBox(self.ArrayPanel, style=wx.CB_READONLY) |
312 self.Bind(wx.EVT_COMBOBOX, self.OnInfosChanged, self.ArrayBaseType) |
312 self.Bind(wx.EVT_COMBOBOX, self.OnInfosChanged, self.ArrayBaseType) |
313 array_panel_leftSizer.AddWindow(self.ArrayBaseType, 1, border=5, |
313 array_panel_leftSizer.Add(self.ArrayBaseType, 1, border=5, |
314 flag=wx.GROW | wx.ALL) |
314 flag=wx.GROW | wx.ALL) |
315 |
315 |
316 array_panel_rightsizer = wx.BoxSizer(wx.HORIZONTAL) |
316 array_panel_rightsizer = wx.BoxSizer(wx.HORIZONTAL) |
317 array_panel_sizer.AddSizer(array_panel_rightsizer, flag=wx.GROW) |
317 array_panel_sizer.Add(array_panel_rightsizer, flag=wx.GROW) |
318 |
318 |
319 array_initialvalue_label = wx.StaticText(self.ArrayPanel, |
319 array_initialvalue_label = wx.StaticText(self.ArrayPanel, |
320 label=_('Initial Value:')) |
320 label=_('Initial Value:')) |
321 array_panel_rightsizer.AddWindow(array_initialvalue_label, 1, border=5, |
321 array_panel_rightsizer.Add(array_initialvalue_label, 1, border=5, |
322 flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL) |
322 flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL) |
323 |
323 |
324 self.ArrayInitialValue = wx.TextCtrl(self.ArrayPanel, |
324 self.ArrayInitialValue = wx.TextCtrl(self.ArrayPanel, |
325 style=wx.TE_PROCESS_ENTER | wx.TE_RICH) |
325 style=wx.TE_PROCESS_ENTER | wx.TE_RICH) |
326 self.Bind(wx.EVT_TEXT_ENTER, self.OnReturnKeyPressed, self.ArrayInitialValue) |
326 self.Bind(wx.EVT_TEXT_ENTER, self.OnReturnKeyPressed, self.ArrayInitialValue) |
327 array_panel_rightsizer.AddWindow(self.ArrayInitialValue, 1, border=5, |
327 array_panel_rightsizer.Add(self.ArrayInitialValue, 1, border=5, |
328 flag=wx.ALL) |
328 flag=wx.ALL) |
329 |
329 |
330 self.ArrayDimensions = CustomEditableListBox( |
330 self.ArrayDimensions = CustomEditableListBox( |
331 self.ArrayPanel, |
331 self.ArrayPanel, |
332 label=_("Dimensions:"), |
332 label=_("Dimensions:"), |
333 style=(wx.gizmos.EL_ALLOW_NEW | |
333 style=(wx.adv.EL_ALLOW_NEW | |
334 wx.gizmos.EL_ALLOW_EDIT | |
334 wx.adv.EL_ALLOW_EDIT | |
335 wx.gizmos.EL_ALLOW_DELETE)) |
335 wx.adv.EL_ALLOW_DELETE)) |
336 for func in ["_OnLabelEndEdit", "_OnAddButton", "_OnDelButton", |
336 for func in ["_OnLabelEndEdit", "_OnAddButton", "_OnDelButton", |
337 "_OnUpButton", "_OnDownButton"]: |
337 "_OnUpButton", "_OnDownButton"]: |
338 setattr(self.ArrayDimensions, func, self.OnDimensionsChanged) |
338 setattr(self.ArrayDimensions, func, self.OnDimensionsChanged) |
339 array_panel_sizer.AddWindow(self.ArrayDimensions, 0, border=5, |
339 array_panel_sizer.Add(self.ArrayDimensions, 0, border=5, |
340 flag=wx.GROW | wx.ALL) |
340 flag=wx.GROW | wx.ALL) |
341 |
341 |
342 self.ArrayPanel.SetSizer(array_panel_sizer) |
342 self.ArrayPanel.SetSizer(array_panel_sizer) |
343 |
343 |
344 # Panel for Structure data types |
344 # Panel for Structure data types |
345 |
345 |
346 self.StructurePanel = wx.Panel(self.Editor, style=wx.TAB_TRAVERSAL) |
346 self.StructurePanel = wx.Panel(self.Editor, style=wx.TAB_TRAVERSAL) |
347 typeinfos_sizer.AddWindow(self.StructurePanel, 1) |
347 typeinfos_sizer.Add(self.StructurePanel, 1) |
348 |
348 |
349 structure_panel_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=0) |
349 structure_panel_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=0) |
350 structure_panel_sizer.AddGrowableCol(0) |
350 structure_panel_sizer.AddGrowableCol(0) |
351 structure_panel_sizer.AddGrowableRow(1) |
351 structure_panel_sizer.AddGrowableRow(1) |
352 |
352 |
353 structure_button_sizer = wx.FlexGridSizer(cols=5, hgap=5, rows=1, vgap=0) |
353 structure_button_sizer = wx.FlexGridSizer(cols=5, hgap=5, rows=1, vgap=0) |
354 structure_button_sizer.AddGrowableCol(0) |
354 structure_button_sizer.AddGrowableCol(0) |
355 structure_button_sizer.AddGrowableRow(0) |
355 structure_button_sizer.AddGrowableRow(0) |
356 structure_panel_sizer.AddSizer(structure_button_sizer, 0, border=5, |
356 structure_panel_sizer.Add(structure_button_sizer, 0, border=5, |
357 flag=wx.ALL | wx.GROW) |
357 flag=wx.ALL | wx.GROW) |
358 |
358 |
359 structure_elements_label = wx.StaticText(self.StructurePanel, |
359 structure_elements_label = wx.StaticText(self.StructurePanel, |
360 label=_('Elements :')) |
360 label=_('Elements :')) |
361 structure_button_sizer.AddWindow(structure_elements_label, flag=wx.ALIGN_BOTTOM) |
361 structure_button_sizer.Add(structure_elements_label, flag=wx.ALIGN_BOTTOM) |
362 |
362 |
363 for name, bitmap, help in [ |
363 for name, bitmap, help in [ |
364 ("StructureAddButton", "add_element", _("Add element")), |
364 ("StructureAddButton", "add_element", _("Add element")), |
365 ("StructureDeleteButton", "remove_element", _("Remove element")), |
365 ("StructureDeleteButton", "remove_element", _("Remove element")), |
366 ("StructureUpButton", "up", _("Move element up")), |
366 ("StructureUpButton", "up", _("Move element up")), |
367 ("StructureDownButton", "down", _("Move element down"))]: |
367 ("StructureDownButton", "down", _("Move element down"))]: |
368 button = wx.lib.buttons.GenBitmapButton(self.StructurePanel, |
368 button = wx.lib.buttons.GenBitmapButton(self.StructurePanel, |
369 bitmap=GetBitmap(bitmap), |
369 bitmap=GetBitmap(bitmap), |
370 size=wx.Size(28, 28), |
370 size=wx.Size(28, 28), |
371 style=wx.NO_BORDER) |
371 style=wx.NO_BORDER) |
372 button.SetToolTipString(help) |
372 button.SetToolTip(help) |
373 setattr(self, name, button) |
373 setattr(self, name, button) |
374 structure_button_sizer.AddWindow(button) |
374 structure_button_sizer.Add(button) |
375 |
375 |
376 self.StructureElementsGrid = CustomGrid(self.StructurePanel, |
376 self.StructureElementsGrid = CustomGrid(self.StructurePanel, |
377 size=wx.Size(0, 150), style=wx.VSCROLL) |
377 size=wx.Size(0, 150), style=wx.VSCROLL) |
378 self.StructureElementsGrid.Bind(wx.grid.EVT_GRID_CELL_CHANGE, |
378 self.StructureElementsGrid.Bind(wx.grid.EVT_GRID_CELL_CHANGING, |
379 self.OnStructureElementsGridCellChange) |
379 self.OnStructureElementsGridCellChange) |
380 self.StructureElementsGrid.Bind(wx.grid.EVT_GRID_EDITOR_SHOWN, |
380 self.StructureElementsGrid.Bind(wx.grid.EVT_GRID_EDITOR_SHOWN, |
381 self.OnStructureElementsGridEditorShown) |
381 self.OnStructureElementsGridEditorShown) |
382 structure_panel_sizer.AddWindow(self.StructureElementsGrid, flag=wx.GROW) |
382 structure_panel_sizer.Add(self.StructureElementsGrid, flag=wx.GROW) |
383 |
383 |
384 self.StructurePanel.SetSizer(structure_panel_sizer) |
384 self.StructurePanel.SetSizer(structure_panel_sizer) |
385 |
385 |
386 self.Editor.SetSizer(self.MainSizer) |
386 self.Editor.SetSizer(self.MainSizer) |
387 |
387 |