dialogs/ForceVariableDialog.py
changeset 2508 9076249f11eb
parent 2439 f0a040f1de1b
child 2510 4f78f0e201d9
equal deleted inserted replaced
2506:8dbdf20f795b 2508:9076249f11eb
   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))