187 |
187 |
188 self.IEC_Type = iec_type |
188 self.IEC_Type = iec_type |
189 info_sizer = wx.BoxSizer(wx.VERTICAL) |
189 info_sizer = wx.BoxSizer(wx.VERTICAL) |
190 |
190 |
191 message_label = wx.StaticText(self, label=_("Forcing Variable Value")) |
191 message_label = wx.StaticText(self, label=_("Forcing Variable Value")) |
192 info_sizer.AddWindow(message_label, border=10, |
192 info_sizer.Add(message_label, border=10, |
193 flag=wx.ALIGN_LEFT | wx.GROW | wx.TOP | wx.LEFT | wx.RIGHT) |
193 flag=wx.ALIGN_LEFT | wx.GROW | wx.TOP | wx.LEFT | wx.RIGHT) |
194 |
194 |
195 if GetTypeValue[self.IEC_Type] in [getinteger, getfloat]: |
195 if GetTypeValue[self.IEC_Type] in [getinteger, getfloat]: |
196 self.InitCtrlNumber(info_sizer, defaultValue) |
196 self.InitCtrlNumber(info_sizer, defaultValue) |
197 elif self.IEC_Type == "BOOL": |
197 elif self.IEC_Type == "BOOL": |
199 else: |
199 else: |
200 self.InitCtrlDefault(info_sizer, defaultValue) |
200 self.InitCtrlDefault(info_sizer, defaultValue) |
201 self.GetEnteredValue = self.GetValueDefault |
201 self.GetEnteredValue = self.GetValueDefault |
202 |
202 |
203 button_sizer = self.CreateButtonSizer(wx.OK | wx.CANCEL | wx.CENTRE) |
203 button_sizer = self.CreateButtonSizer(wx.OK | wx.CANCEL | wx.CENTRE) |
204 self.Bind(wx.EVT_BUTTON, self.OnOK, button_sizer.GetAffirmativeButton()) |
204 self.Bind(wx.EVT_BUTTON, self.OnOK, id=self.GetAffirmativeId()) |
205 info_sizer.AddSizer(button_sizer, border=10, flag=wx.ALIGN_RIGHT | wx.ALL) |
205 info_sizer.Add(button_sizer, border=10, flag=wx.ALIGN_RIGHT | wx.ALL) |
206 |
206 |
207 self.SetSizer(info_sizer) |
207 self.SetSizer(info_sizer) |
208 self.Fit() |
208 self.Fit() |
209 self.ValueCtrl.SetFocus() |
209 self.ValueCtrl.SetFocus() |
210 |
210 |
214 |
214 |
215 def InitCtrlDefault(self, info_sizer, defaultValue): |
215 def InitCtrlDefault(self, info_sizer, defaultValue): |
216 """Add simple text control to change variable of any type""" |
216 """Add simple text control to change variable of any type""" |
217 self.ValueCtrl = wx.TextCtrl(self) |
217 self.ValueCtrl = wx.TextCtrl(self) |
218 self.ValueCtrl.SetValue(defaultValue) |
218 self.ValueCtrl.SetValue(defaultValue) |
219 info_sizer.AddWindow(self.ValueCtrl, border=10, proportion=1, |
219 info_sizer.Add(self.ValueCtrl, border=10, proportion=1, |
220 flag=wx.ALIGN_LEFT | wx.GROW | wx.TOP | wx.LEFT | wx.RIGHT) |
220 flag=wx.ALIGN_LEFT | wx.GROW | wx.TOP | wx.LEFT | wx.RIGHT) |
221 |
221 |
222 def GetValueDefault(self): |
222 def GetValueDefault(self): |
223 """ |
223 """ |
224 Returns text representation for a variable value |
224 Returns text representation for a variable value |
233 def InitCtrlNumber(self, info_sizer, defaultValue): |
233 def InitCtrlNumber(self, info_sizer, defaultValue): |
234 """Add controls to change float and integer variables""" |
234 """Add controls to change float and integer variables""" |
235 sizer = wx.BoxSizer(wx.HORIZONTAL) |
235 sizer = wx.BoxSizer(wx.HORIZONTAL) |
236 self.InitCtrlDefault(sizer, defaultValue) |
236 self.InitCtrlDefault(sizer, defaultValue) |
237 self.SpinButtonCtrl = wx.SpinButton(self, style=wx.HORIZONTAL | wx.SP_WRAP) |
237 self.SpinButtonCtrl = wx.SpinButton(self, style=wx.HORIZONTAL | wx.SP_WRAP) |
238 sizer.AddWindow(self.SpinButtonCtrl, border=10, |
238 sizer.Add(self.SpinButtonCtrl, border=10, |
239 flag=wx.ALIGN_LEFT | wx.GROW | wx.TOP | wx.LEFT | wx.RIGHT | wx.EXPAND) |
239 flag=wx.ALIGN_LEFT | wx.GROW | wx.TOP | wx.LEFT | wx.RIGHT | wx.EXPAND) |
240 self.Bind(wx.EVT_SPIN_UP, self.SpinButtonChanged) |
240 self.Bind(wx.EVT_SPIN_UP, self.SpinButtonChanged) |
241 self.Bind(wx.EVT_SPIN_DOWN, self.SpinButtonChanged) |
241 self.Bind(wx.EVT_SPIN_DOWN, self.SpinButtonChanged) |
242 info_sizer.AddWindow(sizer, proportion=1, flag=wx.EXPAND) |
242 info_sizer.Add(sizer, proportion=1, flag=wx.EXPAND) |
243 |
243 |
244 def SpinButtonChanged(self, evt): |
244 def SpinButtonChanged(self, evt): |
245 """Increment/decrement variable value""" |
245 """Increment/decrement variable value""" |
246 value = self.GetValue() |
246 value = self.GetValue() |
247 if value is not None: |
247 if value is not None: |
259 self.ValueCtrl = wx.ToggleButton(self, label=_("Toggle value")) |
259 self.ValueCtrl = wx.ToggleButton(self, label=_("Toggle value")) |
260 value = GetTypeValue[self.IEC_Type](defaultValue) |
260 value = GetTypeValue[self.IEC_Type](defaultValue) |
261 if value is not None: |
261 if value is not None: |
262 self.ValueCtrl.SetValue(value) |
262 self.ValueCtrl.SetValue(value) |
263 |
263 |
264 info_sizer.AddWindow(self.ValueCtrl, border=10, |
264 info_sizer.Add(self.ValueCtrl, border=10, |
265 flag=wx.ALIGN_LEFT | wx.GROW | wx.TOP | wx.LEFT | wx.RIGHT | wx.GROW) |
265 flag=wx.ALIGN_LEFT | wx.GROW | wx.TOP | wx.LEFT | wx.RIGHT | wx.GROW) |
266 |
266 |
267 def OnOK(self, event): |
267 def OnOK(self, event): |
268 """ |
268 """ |
269 Checks new entered value |
269 Checks new entered value |