46 @param tagname: Tagname of project POU edited |
46 @param tagname: Tagname of project POU edited |
47 """ |
47 """ |
48 BlockPreviewDialog.__init__(self, parent, controller, tagname, |
48 BlockPreviewDialog.__init__(self, parent, controller, tagname, |
49 size=wx.Size(350, 260), title=_('Power Rail Properties')) |
49 size=wx.Size(350, 260), title=_('Power Rail Properties')) |
50 |
50 |
51 # Create dialog main sizer |
51 # Init common sizers |
52 main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=10) |
52 self._init_sizers(2, 0, 5, None, 2, 1) |
53 main_sizer.AddGrowableCol(0) |
|
54 main_sizer.AddGrowableRow(0) |
|
55 |
|
56 # Create a sizer for dividing power rail parameters in two columns |
|
57 column_sizer = wx.BoxSizer(wx.HORIZONTAL) |
|
58 main_sizer.AddSizer(column_sizer, border=20, |
|
59 flag=wx.GROW|wx.TOP|wx.LEFT|wx.RIGHT) |
|
60 |
|
61 # Create a sizer for left column |
|
62 left_gridsizer = wx.FlexGridSizer(cols=1, hgap=0, rows=5, vgap=5) |
|
63 left_gridsizer.AddGrowableCol(0) |
|
64 column_sizer.AddSizer(left_gridsizer, 1, border=5, |
|
65 flag=wx.GROW|wx.RIGHT) |
|
66 |
53 |
67 # Create label for connection type |
54 # Create label for connection type |
68 type_label = wx.StaticText(self, label=_('Type:')) |
55 type_label = wx.StaticText(self, label=_('Type:')) |
69 left_gridsizer.AddWindow(type_label, flag=wx.GROW) |
56 self.LeftGridSizer.AddWindow(type_label, flag=wx.GROW) |
70 |
57 |
71 # Create radio buttons for selecting power rail type |
58 # Create radio buttons for selecting power rail type |
72 self.TypeRadioButtons = {} |
59 self.TypeRadioButtons = {} |
73 first = True |
60 first = True |
74 for type, label in [(LEFTRAIL, _('Left PowerRail')), |
61 for type, label in [(LEFTRAIL, _('Left PowerRail')), |
75 (RIGHTRAIL, _('Right PowerRail'))]: |
62 (RIGHTRAIL, _('Right PowerRail'))]: |
76 radio_button = wx.RadioButton(self, label=label, |
63 radio_button = wx.RadioButton(self, label=label, |
77 style=(wx.RB_GROUP if first else 0)) |
64 style=(wx.RB_GROUP if first else 0)) |
78 radio_button.SetValue(first) |
65 radio_button.SetValue(first) |
79 self.Bind(wx.EVT_RADIOBUTTON, self.OnTypeChanged, radio_button) |
66 self.Bind(wx.EVT_RADIOBUTTON, self.OnTypeChanged, radio_button) |
80 left_gridsizer.AddWindow(radio_button, flag=wx.GROW) |
67 self.LeftGridSizer.AddWindow(radio_button, flag=wx.GROW) |
81 self.TypeRadioButtons[type] = radio_button |
68 self.TypeRadioButtons[type] = radio_button |
82 first = False |
69 first = False |
83 |
70 |
84 # Create label for power rail pin number |
71 # Create label for power rail pin number |
85 pin_number_label = wx.StaticText(self, label=_('Pin number:')) |
72 pin_number_label = wx.StaticText(self, label=_('Pin number:')) |
86 left_gridsizer.AddWindow(pin_number_label, flag=wx.GROW) |
73 self.LeftGridSizer.AddWindow(pin_number_label, flag=wx.GROW) |
87 |
74 |
88 # Create spin control for defining power rail pin number |
75 # Create spin control for defining power rail pin number |
89 self.PinNumber = wx.SpinCtrl(self, min=1, max=50, |
76 self.PinNumber = wx.SpinCtrl(self, min=1, max=50, |
90 style=wx.SP_ARROW_KEYS) |
77 style=wx.SP_ARROW_KEYS) |
91 self.Bind(wx.EVT_SPINCTRL, self.OnPinNumberChanged, self.PinNumber) |
78 self.Bind(wx.EVT_SPINCTRL, self.OnPinNumberChanged, self.PinNumber) |
92 left_gridsizer.AddWindow(self.PinNumber, flag=wx.GROW) |
79 self.LeftGridSizer.AddWindow(self.PinNumber, flag=wx.GROW) |
93 |
|
94 # Create a sizer for right column |
|
95 right_gridsizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5) |
|
96 right_gridsizer.AddGrowableCol(0) |
|
97 right_gridsizer.AddGrowableRow(1) |
|
98 column_sizer.AddSizer(right_gridsizer, 1, border=5, |
|
99 flag=wx.GROW|wx.LEFT) |
|
100 |
80 |
101 # Add preview panel and associated label to sizers |
81 # Add preview panel and associated label to sizers |
102 right_gridsizer.AddWindow(self.PreviewLabel, flag=wx.GROW) |
82 self.RightGridSizer.AddWindow(self.PreviewLabel, flag=wx.GROW) |
103 right_gridsizer.AddWindow(self.Preview, flag=wx.GROW) |
83 self.RightGridSizer.AddWindow(self.Preview, flag=wx.GROW) |
104 |
84 |
105 # Add buttons sizer to sizers |
85 # Add buttons sizer to sizers |
106 main_sizer.AddSizer(self.ButtonSizer, border=20, |
86 self.MainSizer.AddSizer(self.ButtonSizer, border=20, |
107 flag=wx.ALIGN_RIGHT|wx.BOTTOM|wx.LEFT|wx.RIGHT) |
87 flag=wx.ALIGN_RIGHT|wx.BOTTOM|wx.LEFT|wx.RIGHT) |
108 |
|
109 self.SetSizer(main_sizer) |
|
110 |
88 |
111 # Left Power Rail radio button is default control having keyboard focus |
89 # Left Power Rail radio button is default control having keyboard focus |
112 self.TypeRadioButtons[LEFTRAIL].SetFocus() |
90 self.TypeRadioButtons[LEFTRAIL].SetFocus() |
113 |
91 |
114 def GetMinElementSize(self): |
92 def GetMinElementSize(self): |