diff -r 020420ad8914 -r 07447ee3538e DataTypeEditor.py --- a/DataTypeEditor.py Fri Jul 24 12:49:57 2009 +0200 +++ b/DataTypeEditor.py Fri Jul 24 17:12:59 2009 +0200 @@ -41,6 +41,10 @@ # Structure Elements Table #------------------------------------------------------------------------------- +def GetElementsTableColnames(): + _ = lambda x : x + return ["#", _("Name"), _("Type"), _("Initial Value")] + class ElementsTable(wx.grid.PyGridTableBase): """ @@ -66,23 +70,25 @@ def GetNumberRows(self): return len(self.data) - def GetColLabelValue(self, col): + def GetColLabelValue(self, col, translate=True): if col < len(self.colnames): + if translate: + return _(self.colnames[col]) return self.colnames[col] - def GetRowLabelValues(self, row): + def GetRowLabelValues(self, row, translate=True): return row def GetValue(self, row, col): if row < self.GetNumberRows(): if col == 0: return row + 1 - name = str(self.data[row].get(self.GetColLabelValue(col), "")) + name = str(self.data[row].get(self.GetColLabelValue(col, False), "")) return name def SetValue(self, row, col, value): if col < len(self.colnames): - colname = self.GetColLabelValue(col) + colname = self.GetColLabelValue(col, False) if colname == "Name": self.old_value = self.data[row][colname] self.data[row][colname] = value @@ -140,13 +146,11 @@ Otherwise default to the default renderer. """ - typelist = None - accesslist = None for row in range(self.GetNumberRows()): for col in range(self.GetNumberCols()): editor = None renderer = None - colname = self.GetColLabelValue(col) + colname = self.GetColLabelValue(col, False) if col != 0: grid.SetReadOnly(row, col, False) if colname == "Name": @@ -227,6 +231,11 @@ ID_DATATYPEEDITORSTATICTEXT11, ] = [wx.NewId() for _init_ctrls in range(35)] +def GetDatatypeTypes(): + _ = lambda x : x + return [_("Directly"), _("Subrange"), _("Enumerated"), _("Array"), _("Structure")] +DATATYPE_TYPES_DICT = dict([(_(datatype), datatype) for datatype in GetDatatypeTypes()]) + class DataTypeEditor(wx.Panel): def _init_coll_MainSizer_Items(self, parent): @@ -238,8 +247,8 @@ parent.AddGrowableRow(1) def _init_coll_TopSizer_Items(self, parent): - parent.AddWindow(self.staticText1, 0, border=5, flag=wx.GROW|wx.LEFT) - parent.AddWindow(self.DerivationType, 0, border=0, flag=wx.GROW) + parent.AddWindow(self.staticText1, 0, border=5, flag=wx.ALIGN_CENTER_VERTICAL|wx.LEFT|wx.RIGHT) + parent.AddWindow(self.DerivationType, 0, border=5, flag=wx.GROW|wx.RIGHT) def _init_coll_TypeInfosSizer_Items(self, parent): parent.AddWindow(self.DirectlyPanel, 1, border=0, flag=wx.ALL) @@ -249,31 +258,34 @@ parent.AddWindow(self.StructurePanel, 1, border=0, flag=wx.GROW|wx.ALL) def _init_coll_DirectlyPanelSizer_Items(self, parent): - parent.AddWindow(self.staticText2, 1, border=5, flag=wx.GROW|wx.ALL) + parent.AddWindow(self.staticText2, 1, border=5, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALL) parent.AddWindow(self.DirectlyBaseType, 1, border=5, flag=wx.GROW|wx.ALL) - parent.AddWindow(self.staticText3, 1, border=5, flag=wx.GROW|wx.ALL) + parent.AddWindow(self.staticText3, 1, border=5, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALL) parent.AddWindow(self.DirectlyInitialValue, 1, border=5, flag=wx.GROW|wx.ALL) def _init_coll_SubrangePanelSizer_Items(self, parent): - parent.AddWindow(self.staticText4, 1, border=5, flag=wx.GROW|wx.ALL) + parent.AddWindow(self.staticText4, 1, border=5, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALL) parent.AddWindow(self.SubrangeBaseType, 1, border=5, flag=wx.GROW|wx.ALL) - parent.AddWindow(self.staticText5, 1, border=5, flag=wx.GROW|wx.ALL) + parent.AddWindow(self.staticText5, 1, border=5, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALL) parent.AddWindow(self.SubrangeInitialValue, 1, border=5, flag=wx.GROW|wx.ALL) - parent.AddWindow(self.staticText6, 1, border=5, flag=wx.GROW|wx.ALL) + parent.AddWindow(self.staticText6, 1, border=5, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALL) parent.AddWindow(self.SubrangeMinimum, 1, border=5, flag=wx.GROW|wx.ALL) parent.AddWindow(wx.Size(0, 0), 1, border=5, flag=wx.GROW|wx.ALL) parent.AddWindow(wx.Size(0, 0), 1, border=5, flag=wx.GROW|wx.ALL) - parent.AddWindow(self.staticText7, 1, border=5, flag=wx.GROW|wx.ALL) + parent.AddWindow(self.staticText7, 1, border=5, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALL) parent.AddWindow(self.SubrangeMaximum, 1, border=5, flag=wx.GROW|wx.ALL) def _init_coll_EnumeratedPanelSizer_Items(self, parent): - parent.AddWindow(self.EnumeratedValues, 2, border=5, flag=wx.GROW|wx.ALL) - parent.AddWindow(self.staticText8, 1, border=5, flag=wx.GROW|wx.ALL) + parent.AddWindow(self.EnumeratedValues, 1, border=5, flag=wx.GROW|wx.ALL) + parent.AddSizer(self.EnumeratedPanelRightSizer, 1, border=0, flag=0) + + def _init_coll_EnumeratedPanelRightSizer_Items(self, parent): + parent.AddWindow(self.staticText8, 1, border=5, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALL) parent.AddWindow(self.EnumeratedInitialValue, 1, border=5, flag=wx.ALL) def _init_coll_ArrayPanelSizer_Items(self, parent): parent.AddSizer(self.ArrayPanelLeftSizer, 0, border=0, flag=wx.GROW) - parent.AddSizer(self.ArrayPanelRightSizer, 0, border=0, flag=wx.GROW) + parent.AddSizer(self.ArrayPanelRightSizer, 0, border=0, flag=0) parent.AddWindow(self.ArrayDimensions, 0, border=5, flag=wx.GROW|wx.ALL) def _init_coll_ArrayPanelSizer_Growables(self, parent): @@ -282,15 +294,15 @@ parent.AddGrowableRow(1) def _init_coll_ArrayPanelLeftSizer_Items(self, parent): - parent.AddWindow(self.staticText9, 1, border=5, flag=wx.GROW|wx.ALL) + parent.AddWindow(self.staticText9, 1, border=5, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALL) parent.AddWindow(self.ArrayBaseType, 1, border=5, flag=wx.GROW|wx.ALL) def _init_coll_ArrayPanelRightSizer_Items(self, parent): - parent.AddWindow(self.staticText10, 1, border=5, flag=wx.GROW|wx.ALL) + parent.AddWindow(self.staticText10, 1, border=5, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALL) parent.AddWindow(self.ArrayInitialValue, 1, border=5, flag=wx.GROW|wx.ALL) def _init_coll_StructurePanelSizer_Items(self, parent): - parent.AddWindow(self.staticText11, 0, border=5, flag=wx.GROW|wx.ALL) + parent.AddWindow(self.staticText11, 0, border=5, flag=wx.ALL) parent.AddWindow(self.StructureElementsGrid, 0, border=0, flag=wx.GROW) parent.AddSizer(self.StructurePanelButtonSizer, 0, border=0, flag=wx.ALIGN_RIGHT) @@ -299,22 +311,23 @@ parent.AddGrowableRow(1) def _init_coll_StructurePanelButtonSizer_Items(self, parent): - parent.AddWindow(self.StructureAddButton, 1, border=5, flag=wx.GROW|wx.ALL) - parent.AddWindow(self.StructureDeleteButton, 1, border=5, flag=wx.GROW|wx.ALL) - parent.AddWindow(self.StructureUpButton, 1, border=5, flag=wx.GROW|wx.ALL) - parent.AddWindow(self.StructureDownButton, 1, border=5, flag=wx.GROW|wx.ALL) + parent.AddWindow(self.StructureAddButton, 0, border=5, flag=wx.ALL) + parent.AddWindow(self.StructureDeleteButton, 0, border=5, flag=wx.ALL) + parent.AddWindow(self.StructureUpButton, 0, border=5, flag=wx.ALL) + parent.AddWindow(self.StructureDownButton, 0, border=5, flag=wx.ALL) def _init_sizers(self): self.MainSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=10) self.TopSizer = wx.BoxSizer(wx.HORIZONTAL) self.TypeInfosSizer = wx.StaticBoxSizer(self.staticbox, wx.HORIZONTAL) self.DirectlyPanelSizer = wx.BoxSizer(wx.HORIZONTAL) - self.SubrangePanelSizer = wx.GridSizer(cols=4, hgap=0, rows=3, vgap=0) + self.SubrangePanelSizer = wx.GridSizer(cols=4, hgap=5, rows=3, vgap=0) self.EnumeratedPanelSizer = wx.BoxSizer(wx.HORIZONTAL) - self.ArrayPanelSizer = wx.FlexGridSizer(cols=2, hgap=0, rows=2, vgap=0) + self.EnumeratedPanelRightSizer = wx.BoxSizer(wx.HORIZONTAL) + self.ArrayPanelSizer = wx.FlexGridSizer(cols=2, hgap=5, rows=2, vgap=0) self.ArrayPanelLeftSizer = wx.BoxSizer(wx.HORIZONTAL) self.ArrayPanelRightSizer = wx.BoxSizer(wx.HORIZONTAL) - self.StructurePanelSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=3, vgap=0) + self.StructurePanelSizer = wx.FlexGridSizer(cols=1, hgap=5, rows=3, vgap=0) self.StructurePanelButtonSizer = wx.BoxSizer(wx.HORIZONTAL) self._init_coll_MainSizer_Items(self.MainSizer) self._init_coll_MainSizer_Growables(self.MainSizer) @@ -323,6 +336,7 @@ self._init_coll_DirectlyPanelSizer_Items(self.DirectlyPanelSizer) self._init_coll_SubrangePanelSizer_Items(self.SubrangePanelSizer) self._init_coll_EnumeratedPanelSizer_Items(self.EnumeratedPanelSizer) + self._init_coll_EnumeratedPanelRightSizer_Items(self.EnumeratedPanelRightSizer) self._init_coll_ArrayPanelSizer_Items(self.ArrayPanelSizer) self._init_coll_ArrayPanelSizer_Growables(self.ArrayPanelSizer) self._init_coll_ArrayPanelLeftSizer_Items(self.ArrayPanelLeftSizer) @@ -343,12 +357,12 @@ size=wx.Size(0, 0), style=wx.SUNKEN_BORDER) self.staticbox = wx.StaticBox(id=ID_DATATYPEEDITORSTATICBOX, - label='Type infos:', name='staticBox1', parent=self, - pos=wx.Point(0, 0), size=wx.Size(10, 0), style=0) + label=_('Type infos:'), name='staticBox1', parent=self, + pos=wx.Point(0, 0), size=wx.DefaultSize, style=0) self.staticText1 = wx.StaticText(id=ID_DATATYPEEDITORSTATICTEXT1, - label='Derivation Type:', name='staticText1', parent=self, - pos=wx.Point(0, 0), size=wx.Size(150, 17), style=0) + label=_('Derivation Type:'), name='staticText1', parent=self, + pos=wx.Point(0, 0), size=wx.DefaultSize, style=0) self.DerivationType = wx.ComboBox(id=ID_DATATYPEEDITORDERIVATIONTYPE, name='DerivationType', parent=self, pos=wx.Point(0, 0), @@ -362,8 +376,8 @@ size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL) self.staticText2 = wx.StaticText(id=ID_DATATYPEEDITORSTATICTEXT2, - label='Base Type:', name='staticText2', parent=self.DirectlyPanel, - pos=wx.Point(0, 0), size=wx.Size(150, 17), style=0) + label=_('Base Type:'), name='staticText2', parent=self.DirectlyPanel, + pos=wx.Point(0, 0), size=wx.DefaultSize, style=0) self.DirectlyBaseType = wx.ComboBox(id=ID_DATATYPEEDITORDIRECTLYBASETYPE, name='DirectlyBaseType', parent=self.DirectlyPanel, pos=wx.Point(0, 0), @@ -371,8 +385,8 @@ self.Bind(wx.EVT_COMBOBOX, self.OnInfosChanged, id=ID_DATATYPEEDITORDIRECTLYBASETYPE) self.staticText3 = wx.StaticText(id=ID_DATATYPEEDITORSTATICTEXT3, - label='Initial Value:', name='staticText3', parent=self.DirectlyPanel, - pos=wx.Point(0, 0), size=wx.Size(150, 17), style=0) + label=_('Initial Value:'), name='staticText3', parent=self.DirectlyPanel, + pos=wx.Point(0, 0), size=wx.DefaultSize, style=0) self.DirectlyInitialValue = wx.TextCtrl(id=ID_DATATYPEEDITORDIRECTLYINITIALVALUE, name='DirectlyInitialValue', parent=self.DirectlyPanel, pos=wx.Point(0, 0), @@ -386,8 +400,8 @@ size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL) self.staticText4 = wx.StaticText(id=ID_DATATYPEEDITORSTATICTEXT4, - label='Base Type:', name='staticText4', parent=self.SubrangePanel, - pos=wx.Point(0, 0), size=wx.Size(150, 17), style=0) + label=_('Base Type:'), name='staticText4', parent=self.SubrangePanel, + pos=wx.Point(0, 0), size=wx.DefaultSize, style=0) self.SubrangeBaseType = wx.ComboBox(id=ID_DATATYPEEDITORSUBRANGEBASETYPE, name='SubrangeBaseType', parent=self.SubrangePanel, pos=wx.Point(0, 0), @@ -395,8 +409,8 @@ self.Bind(wx.EVT_COMBOBOX, self.OnSubrangeBaseTypeChanged, id=ID_DATATYPEEDITORSUBRANGEBASETYPE) self.staticText5 = wx.StaticText(id=ID_DATATYPEEDITORSTATICTEXT5, - label='Initial Value:', name='staticText5', parent=self.SubrangePanel, - pos=wx.Point(0, 0), size=wx.Size(150, 17), style=0) + label=_('Initial Value:'), name='staticText5', parent=self.SubrangePanel, + pos=wx.Point(0, 0), size=wx.DefaultSize, style=0) self.SubrangeInitialValue = wx.SpinCtrl(id=ID_DATATYPEEDITORSUBRANGEINITIALVALUE, name='SubrangeInitialValue', parent=self.SubrangePanel, pos=wx.Point(0, 0), @@ -404,8 +418,8 @@ self.Bind(wx.EVT_SPINCTRL, self.OnInfosChanged, id=ID_DATATYPEEDITORSUBRANGEINITIALVALUE) self.staticText6 = wx.StaticText(id=ID_DATATYPEEDITORSTATICTEXT6, - label='Minimum:', name='staticText6', parent=self.SubrangePanel, - pos=wx.Point(0, 0), size=wx.Size(150, 17), style=0) + label=_('Minimum:'), name='staticText6', parent=self.SubrangePanel, + pos=wx.Point(0, 0), size=wx.DefaultSize, style=0) self.SubrangeMinimum = wx.SpinCtrl(id=ID_DATATYPEEDITORSUBRANGEMINIMUM, name='SubrangeMinimum', parent=self.SubrangePanel, pos=wx.Point(0, 0), @@ -413,8 +427,8 @@ self.Bind(wx.EVT_SPINCTRL, self.OnSubrangeMinimumChanged, id=ID_DATATYPEEDITORSUBRANGEMINIMUM) self.staticText7 = wx.StaticText(id=ID_DATATYPEEDITORSTATICTEXT7, - label='Maximum:', name='staticText7', parent=self.SubrangePanel, - pos=wx.Point(0, 0), size=wx.Size(150, 17), style=0) + label=_('Maximum:'), name='staticText7', parent=self.SubrangePanel, + pos=wx.Point(0, 0), size=wx.DefaultSize, style=0) self.SubrangeMaximum = wx.SpinCtrl(id=ID_DATATYPEEDITORSUBRANGEMAXIMUM, name='SubrangeMaximum', parent=self.SubrangePanel, pos=wx.Point(0, 0), @@ -428,17 +442,26 @@ size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL) self.EnumeratedValues = wx.gizmos.EditableListBox(id=ID_DATATYPEEDITORENUMERATEDVALUES, - name='EnumeratedValues', parent=self.EnumeratedPanel, label="Values:", pos=wx.Point(0, 0), + name='EnumeratedValues', parent=self.EnumeratedPanel, label=_("Values:"), pos=wx.Point(0, 0), size=wx.Size(0, 0), style=wx.gizmos.EL_ALLOW_NEW | wx.gizmos.EL_ALLOW_EDIT | wx.gizmos.EL_ALLOW_DELETE) self.EnumeratedValues.GetListCtrl().Bind(wx.EVT_LIST_END_LABEL_EDIT, self.OnEnumeratedValueEndEdit) - self.EnumeratedValues.GetNewButton().Bind(wx.EVT_BUTTON, self.OnEnumeratedValuesChanged) - self.EnumeratedValues.GetDelButton().Bind(wx.EVT_BUTTON, self.OnEnumeratedValuesChanged) - self.EnumeratedValues.GetUpButton().Bind(wx.EVT_BUTTON, self.OnEnumeratedValuesChanged) - self.EnumeratedValues.GetDownButton().Bind(wx.EVT_BUTTON, self.OnEnumeratedValuesChanged) + self.EnumeratedValues.GetEditButton().SetToolTipString(_("Edit item")) + new_button = self.EnumeratedValues.GetNewButton() + new_button.SetToolTipString(_("New item")) + new_button.Bind(wx.EVT_BUTTON, self.OnEnumeratedValuesChanged) + del_button = self.EnumeratedValues.GetDelButton() + del_button.SetToolTipString(_("Delete item")) + del_button.Bind(wx.EVT_BUTTON, self.OnEnumeratedValuesChanged) + up_button = self.EnumeratedValues.GetUpButton() + up_button.SetToolTipString(_("Move up")) + up_button.Bind(wx.EVT_BUTTON, self.OnEnumeratedValuesChanged) + down_button = self.EnumeratedValues.GetDownButton() + down_button.SetToolTipString(_("Move down")) + down_button.Bind(wx.EVT_BUTTON, self.OnEnumeratedValuesChanged) self.staticText8 = wx.StaticText(id=ID_DATATYPEEDITORSTATICTEXT8, - label='Initial Value:', name='staticText8', parent=self.EnumeratedPanel, - pos=wx.Point(0, 0), size=wx.Size(150, 17), style=0) + label=_('Initial Value:'), name='staticText8', parent=self.EnumeratedPanel, + pos=wx.Point(0, 0), size=wx.DefaultSize, style=0) self.EnumeratedInitialValue = wx.ComboBox(id=ID_DATATYPEEDITORENUMERATEDINITIALVALUE, name='EnumeratedInitialValue', parent=self.EnumeratedPanel, pos=wx.Point(0, 0), @@ -452,8 +475,8 @@ size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL) self.staticText9 = wx.StaticText(id=ID_DATATYPEEDITORSTATICTEXT9, - label='Base Type:', name='staticText9', parent=self.ArrayPanel, - pos=wx.Point(0, 0), size=wx.Size(150, 17), style=0) + label=_('Base Type:'), name='staticText9', parent=self.ArrayPanel, + pos=wx.Point(0, 0), size=wx.DefaultSize, style=0) self.ArrayBaseType = wx.ComboBox(id=ID_DATATYPEEDITORARRAYBASETYPE, name='SubrangeBaseType', parent=self.ArrayPanel, pos=wx.Point(0, 0), @@ -461,17 +484,26 @@ self.Bind(wx.EVT_COMBOBOX, self.OnInfosChanged, id=ID_DATATYPEEDITORARRAYBASETYPE) self.ArrayDimensions = wx.gizmos.EditableListBox(id=ID_DATATYPEEDITORARRAYDIMENSIONS, - name='ArrayDimensions', parent=self.ArrayPanel, label="Dimensions:", pos=wx.Point(0, 0), + name='ArrayDimensions', parent=self.ArrayPanel, label=_("Dimensions:"), pos=wx.Point(0, 0), size=wx.Size(0, 24), style=wx.gizmos.EL_ALLOW_NEW | wx.gizmos.EL_ALLOW_EDIT | wx.gizmos.EL_ALLOW_DELETE) self.ArrayDimensions.GetListCtrl().Bind(wx.EVT_LIST_END_LABEL_EDIT, self.OnDimensionsChanged) - self.ArrayDimensions.GetNewButton().Bind(wx.EVT_BUTTON, self.OnDimensionsChanged) - self.ArrayDimensions.GetDelButton().Bind(wx.EVT_BUTTON, self.OnDimensionsChanged) - self.ArrayDimensions.GetUpButton().Bind(wx.EVT_BUTTON, self.OnDimensionsChanged) - self.ArrayDimensions.GetDownButton().Bind(wx.EVT_BUTTON, self.OnDimensionsChanged) + self.ArrayDimensions.GetEditButton().SetToolTipString(_("Edit item")) + new_button = self.ArrayDimensions.GetNewButton() + new_button.SetToolTipString(_("New item")) + new_button.Bind(wx.EVT_BUTTON, self.OnDimensionsChanged) + del_button = self.ArrayDimensions.GetDelButton() + del_button.SetToolTipString(_("Delete item")) + del_button.Bind(wx.EVT_BUTTON, self.OnDimensionsChanged) + up_button = self.ArrayDimensions.GetUpButton() + up_button.SetToolTipString(_("Move up")) + up_button.Bind(wx.EVT_BUTTON, self.OnDimensionsChanged) + down_button = self.ArrayDimensions.GetDownButton() + down_button.SetToolTipString(_("Move down")) + down_button.Bind(wx.EVT_BUTTON, self.OnDimensionsChanged) self.staticText10 = wx.StaticText(id=ID_DATATYPEEDITORSTATICTEXT10, - label='Initial Value:', name='staticText10', parent=self.ArrayPanel, - pos=wx.Point(0, 0), size=wx.Size(150, 17), style=0) + label=_('Initial Value:'), name='staticText10', parent=self.ArrayPanel, + pos=wx.Point(0, 0), size=wx.DefaultSize, style=0) self.ArrayInitialValue = wx.TextCtrl(id=ID_DATATYPEEDITORARRAYINITIALVALUE, name='ArrayInitialValue', parent=self.ArrayPanel, pos=wx.Point(0, 0), @@ -485,8 +517,8 @@ size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL) self.staticText11 = wx.StaticText(id=ID_DATATYPEEDITORSTATICTEXT11, - label='Elements :', name='staticText11', parent=self.StructurePanel, - pos=wx.Point(0, 0), size=wx.Size(150, 17), style=0) + label=_('Elements :'), name='staticText11', parent=self.StructurePanel, + pos=wx.Point(0, 0), size=wx.DefaultSize, style=0) self.StructureElementsGrid = wx.grid.Grid(id=ID_DATATYPEEDITORSTRUCTUREELEMENTSGRID, name='StructureElementsGrid', parent=self.StructurePanel, pos=wx.Point(0, 0), @@ -504,14 +536,14 @@ wx.grid.EVT_GRID_CELL_CHANGE(self.StructureElementsGrid, self.OnStructureElementsGridCellChange) wx.grid.EVT_GRID_EDITOR_SHOWN(self.StructureElementsGrid, self.OnStructureElementsGridEditorShown) - self.StructureAddButton = wx.Button(id=ID_DATATYPEEDITORSTRUCTUREADDBUTTON, label='Add', + self.StructureAddButton = wx.Button(id=ID_DATATYPEEDITORSTRUCTUREADDBUTTON, label=_('Add'), name='StructureAddButton', parent=self.StructurePanel, pos=wx.Point(0, 0), - size=wx.Size(72, 32), style=0) + size=wx.DefaultSize, style=0) self.Bind(wx.EVT_BUTTON, self.OnStructureAddButton, id=ID_DATATYPEEDITORSTRUCTUREADDBUTTON) - self.StructureDeleteButton = wx.Button(id=ID_DATATYPEEDITORSTRUCTUREDELETEBUTTON, label='Delete', + self.StructureDeleteButton = wx.Button(id=ID_DATATYPEEDITORSTRUCTUREDELETEBUTTON, label=_('Delete'), name='StructureDeleteButton', parent=self.StructurePanel, pos=wx.Point(0, 0), - size=wx.Size(72, 32), style=0) + size=wx.DefaultSize, style=0) self.Bind(wx.EVT_BUTTON, self.OnStructureDeleteButton, id=ID_DATATYPEEDITORSTRUCTUREDELETEBUTTON) self.StructureUpButton = wx.Button(id=ID_DATATYPEEDITORSTRUCTUREUPBUTTON, label='^', @@ -530,7 +562,7 @@ self._init_ctrls(parent) self.StructureElementDefaultValue = {"Name" : "", "Type" : "INT", "Initial Value" : ""} - self.StructureElementsTable = ElementsTable(self, [], ["#", "Name", "Type", "Initial Value"]) + self.StructureElementsTable = ElementsTable(self, [], GetElementsTableColnames()) self.StructureColSizes = [40, 150, 100, 250] self.StructureColAlignements = [wx.ALIGN_CENTER, wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_LEFT] @@ -540,13 +572,11 @@ attr = wx.grid.GridCellAttr() attr.SetAlignment(self.StructureColAlignements[col], wx.ALIGN_CENTRE) self.StructureElementsGrid.SetColAttr(col, attr) - self.StructureElementsGrid.SetColSize(col, self.StructureColSizes[col]) - - self.DerivationType.Append("Directly") - self.DerivationType.Append("Subrange") - self.DerivationType.Append("Enumerated") - self.DerivationType.Append("Array") - self.DerivationType.Append("Structure") + self.StructureElementsGrid.SetColMinimalWidth(col, self.StructureColSizes[col]) + self.StructureElementsGrid.AutoSizeColumn(col, False) + + for datatype in GetDatatypeTypes(): + self.DerivationType.Append(_(datatype)) self.SubrangePanel.Hide() self.EnumeratedPanel.Hide() self.ArrayPanel.Hide() @@ -590,7 +620,8 @@ self.RefreshBoundsRange() type_infos = self.Controler.GetDataTypeInfos(self.TagName) if type_infos is not None: - self.DerivationType.SetStringSelection(type_infos["type"]) + datatype = type_infos["type"] + self.DerivationType.SetStringSelection(_(datatype)) if type_infos["type"] == "Directly": self.DirectlyBaseType.SetStringSelection(type_infos["base_type"]) self.DirectlyInitialValue.SetValue(type_infos["initial"]) @@ -663,12 +694,12 @@ index = event.GetIndex() if index >= len(values) or values[index].upper() != text.upper(): if text.upper() in [value.upper() for value in values]: - message = wx.MessageDialog(self, "\"%s\" value already defined!"%text, "Error", wx.OK|wx.ICON_ERROR) + message = wx.MessageDialog(self, _("\"%s\" value already defined!")%text, _("Error"), wx.OK|wx.ICON_ERROR) message.ShowModal() message.Destroy() event.Veto() elif text.upper() in IEC_KEYWORDS: - message = wx.MessageDialog(self, "\"%s\" is a keyword. It can't be used!"%text, "Error", wx.OK|wx.ICON_ERROR) + message = wx.MessageDialog(self, _("\"%s\" is a keyword. It can't be used!")%text, _("Error"), wx.OK|wx.ICON_ERROR) message.ShowModal() message.Destroy() else: @@ -723,12 +754,12 @@ value = self.StructureElementsTable.GetValue(row, col) if colname == "Name": if not TestIdentifier(value): - message = wx.MessageDialog(self, "\"%s\" is not a valid identifier!"%value, "Error", wx.OK|wx.ICON_ERROR) + message = wx.MessageDialog(self, _("\"%s\" is not a valid identifier!")%value, _("Error"), wx.OK|wx.ICON_ERROR) message.ShowModal() message.Destroy() event.Veto() elif value.upper() in IEC_KEYWORDS: - message = wx.MessageDialog(self, "\"%s\" is a keyword. It can't be used!"%value, "Error", wx.OK|wx.ICON_ERROR) + message = wx.MessageDialog(self, _("\"%s\" is a keyword. It can't be used!")%value, _("Error"), wx.OK|wx.ICON_ERROR) message.ShowModal() message.Destroy() event.Veto() @@ -738,7 +769,7 @@ ## message.Destroy() ## event.Veto() elif value.upper() in [var["Name"].upper() for idx, var in enumerate(self.StructureElementsTable.GetData()) if idx != row]: - message = wx.MessageDialog(self, "A element with \"%s\" as name exists in this structure!"%value, "Error", wx.OK|wx.ICON_ERROR) + message = wx.MessageDialog(self, _("A element with \"%s\" as name exists in this structure!")%value, _("Error"), wx.OK|wx.ICON_ERROR) message.ShowModal() message.Destroy() event.Veto() @@ -764,13 +795,13 @@ new_id = wx.NewId() AppendMenu(base_menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=base_type) self.Bind(wx.EVT_MENU, self.GetElementTypeFunction(base_type), id=new_id) - type_menu.AppendMenu(wx.NewId(), "Base Types", base_menu) + type_menu.AppendMenu(wx.NewId(), _("Base Types"), base_menu) datatype_menu = wx.Menu(title='') for datatype in self.Controler.GetDataTypes(self.TagName, False, self.ParentWindow.Debug): new_id = wx.NewId() AppendMenu(datatype_menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=datatype) self.Bind(wx.EVT_MENU, self.GetElementTypeFunction(datatype), id=new_id) - type_menu.AppendMenu(wx.NewId(), "User Data Types", datatype_menu) + type_menu.AppendMenu(wx.NewId(), _("User Data Types"), datatype_menu) ## functionblock_menu = wx.Menu(title='') ## bodytype = self.Controler.GetEditedElementBodyType(self.TagName, self.ParentWindow.Debug) ## pouname, poutype = self.Controler.GetEditedElementType(self.TagName, self.ParentWindow.Debug) @@ -779,7 +810,7 @@ ## new_id = wx.NewId() ## AppendMenu(functionblock_menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=functionblock_type) ## self.Bind(wx.EVT_MENU, self.GetVariableTypeFunction(functionblock_type), id=new_id) -## type_menu.AppendMenu(wx.NewId(), "Function Block Types", functionblock_menu) +## type_menu.AppendMenu(wx.NewId(), _("Function Block Types"), functionblock_menu) rect = self.StructureElementsGrid.BlockToDeviceRect((row, col), (row, col)) self.StructureElementsGrid.PopupMenuXY(type_menu, rect.x + rect.width, rect.y + self.StructureElementsGrid.GetColLabelSize()) event.Veto() @@ -796,7 +827,7 @@ return ElementTypeFunction def RefreshDisplayedInfos(self): - selected = self.DerivationType.GetStringSelection() + selected = DATATYPE_TYPES_DICT[self.DerivationType.GetStringSelection()] if selected != self.CurrentPanel: if self.CurrentPanel == "Directly": self.DirectlyPanel.Hide() @@ -842,7 +873,7 @@ self.SubrangeInitialValue.SetRange(self.SubrangeMinimum.GetValue(), self.SubrangeMaximum.GetValue()) def RefreshTypeInfos(self): - selected = self.DerivationType.GetStringSelection() + selected = DATATYPE_TYPES_DICT[self.DerivationType.GetStringSelection()] infos = {"type" : selected} if selected == "Directly": infos["base_type"] = self.DirectlyBaseType.GetStringSelection() @@ -865,14 +896,14 @@ for dimensions in self.ArrayDimensions.GetStrings(): result = DIMENSION_MODEL.match(dimensions) if result is None: - message = wx.MessageDialog(self, "\"%s\" value isn't a valid array dimension!"%dimensions, "Error", wx.OK|wx.ICON_ERROR) + message = wx.MessageDialog(self, _("\"%s\" value isn't a valid array dimension!")%dimensions, _("Error"), wx.OK|wx.ICON_ERROR) message.ShowModal() message.Destroy() self.RefreshView() return bounds = result.groups() if bounds[0] >= bounds[1]: - message = wx.MessageDialog(self, "\"%s\" value isn't a valid array dimension!\nRight value must be greater than left value."%dimensions, "Error", wx.OK|wx.ICON_ERROR) + message = wx.MessageDialog(self, _("\"%s\" value isn't a valid array dimension!\nRight value must be greater than left value.")%dimensions, _("Error"), wx.OK|wx.ICON_ERROR) message.ShowModal() message.Destroy() self.RefreshView()