167 # ------------------------------------------------------------------------------- |
167 # ------------------------------------------------------------------------------- |
168 # Force Variable Dialog |
168 # Force Variable Dialog |
169 # ------------------------------------------------------------------------------- |
169 # ------------------------------------------------------------------------------- |
170 |
170 |
171 |
171 |
172 class ForceVariableDialog(wx.TextEntryDialog): |
172 class ForceVariableDialog(wx.Dialog): |
|
173 """Dialog to enforce new value for variables in debug panel""" |
173 |
174 |
174 def __init__(self, parent, iec_type, defaultValue=""): |
175 def __init__(self, parent, iec_type, defaultValue=""): |
175 wx.TextEntryDialog.__init__( |
176 wx.Dialog.__init__( |
176 self, parent, |
177 self, parent, |
177 message=_("Forcing Variable Value"), |
178 name='ForceVariableDialog', |
178 caption=_("Please enter value for a \"%s\" variable:") % iec_type, |
179 title=_("Please enter value for a \"%s\" variable:") % iec_type, |
179 defaultValue=defaultValue, |
180 style=wx.DEFAULT_DIALOG_STYLE, pos=wx.DefaultPosition) |
180 style=wx.OK | wx.CANCEL | wx.CENTRE, pos=wx.DefaultPosition) |
|
181 |
181 |
182 self.IEC_Type = iec_type |
182 self.IEC_Type = iec_type |
183 |
183 info_sizer = wx.BoxSizer(wx.VERTICAL) |
184 self.Bind(wx.EVT_BUTTON, self.OnOK, |
184 |
185 self.GetSizer().GetItem(2).GetSizer().GetItem(1). |
185 message_label = wx.StaticText(self, label=_("Forcing Variable Value")) |
186 GetSizer().GetAffirmativeButton()) |
186 info_sizer.AddWindow(message_label, border=10, |
187 self.ValueTextCtrl = self.GetSizer().GetItem(1).GetWindow() |
187 flag=wx.ALIGN_LEFT | wx.GROW | wx.TOP | wx.LEFT | wx.RIGHT) |
|
188 |
|
189 self.ValueTextCtrl = wx.TextCtrl(self) |
|
190 self.ValueTextCtrl.SetValue(defaultValue) |
|
191 info_sizer.AddWindow(self.ValueTextCtrl, border=10, |
|
192 flag=wx.ALIGN_LEFT | wx.GROW | wx.TOP | wx.LEFT | wx.RIGHT | wx.GROW) |
|
193 |
188 if self.IEC_Type == "BOOL": |
194 if self.IEC_Type == "BOOL": |
189 self.ToggleButton = wx.ToggleButton(self, label=_("Toggle value")) |
195 self.ToggleButton = wx.ToggleButton(self, label=_("Toggle value")) |
190 value = GetTypeValue[self.IEC_Type](defaultValue) |
196 value = GetTypeValue[self.IEC_Type](defaultValue) |
191 if value is not None: |
197 if value is not None: |
192 self.ToggleButton.SetValue(value) |
198 self.ToggleButton.SetValue(value) |
193 |
199 |
194 border = self.GetSizer().GetItem(1).GetBorder() |
200 info_sizer.AddWindow(self.ToggleButton, border=10, |
195 self.GetSizer().Insert(before=2, item=self.ToggleButton, |
201 flag=wx.ALIGN_LEFT | wx.GROW | wx.TOP | wx.LEFT | wx.RIGHT | wx.GROW) |
196 border=border, |
|
197 flag=wx.LEFT | wx.RIGHT | wx.EXPAND) |
|
198 self.Bind(wx.EVT_TOGGLEBUTTON, self.ToggleBoolValue, self.ToggleButton) |
202 self.Bind(wx.EVT_TOGGLEBUTTON, self.ToggleBoolValue, self.ToggleButton) |
199 |
203 |
|
204 button_sizer = self.CreateButtonSizer(wx.OK | wx.CANCEL | wx.CENTRE) |
|
205 self.Bind(wx.EVT_BUTTON, self.OnOK, button_sizer.GetAffirmativeButton()) |
|
206 info_sizer.AddSizer(button_sizer, border=10, flag=wx.ALIGN_RIGHT | wx.ALL) |
|
207 |
|
208 self.SetSizer(info_sizer) |
200 self.Fit() |
209 self.Fit() |
201 |
210 |
202 def ToggleBoolValue(self, event): |
211 def ToggleBoolValue(self, event): |
203 value = self.ToggleButton.GetValue() |
212 value = self.ToggleButton.GetValue() |
204 self.ValueTextCtrl.SetValue(text(value)) |
213 self.ValueTextCtrl.SetValue(text(value)) |