Dialogs.py
changeset 165 e464a4e4e06d
parent 154 203c4acdaf27
child 226 6a2f7ddd2e50
equal deleted inserted replaced
164:0fb64076d3f5 165:e464a4e4e06d
   182         self.MinBlockSize = None
   182         self.MinBlockSize = None
   183         self.First = True
   183         self.First = True
   184         
   184         
   185         self.PouNames = []
   185         self.PouNames = []
   186         self.PouElementNames = []
   186         self.PouElementNames = []
       
   187     
       
   188     def SetPreviewFont(self, font):
       
   189         self.Preview.SetFont(font)
   187     
   190     
   188     def FindTreeItem(self, root, name, inputs = None):
   191     def FindTreeItem(self, root, name, inputs = None):
   189         if root.IsOk():
   192         if root.IsOk():
   190             pydata = self.TypeTree.GetPyData(root)
   193             pydata = self.TypeTree.GetPyData(root)
   191             if inputs and "inputs" in pydata:
   194             if inputs and "inputs" in pydata:
   336         dc.Clear()
   339         dc.Clear()
   337         self.Block = None
   340         self.Block = None
   338         
   341         
   339     def RefreshPreview(self):
   342     def RefreshPreview(self):
   340         dc = wx.ClientDC(self.Preview)
   343         dc = wx.ClientDC(self.Preview)
       
   344         dc.SetFont(self.Preview.GetFont())
   341         dc.Clear()
   345         dc.Clear()
   342         item = self.TypeTree.GetSelection()
   346         item = self.TypeTree.GetSelection()
   343         if item.IsOk():
   347         if item.IsOk():
   344             pydata = self.TypeTree.GetPyData(item)
   348             pydata = self.TypeTree.GetPyData(item)
   345             if pydata["type"] == CATEGORY:
   349             if pydata["type"] == CATEGORY:
   523         
   527         
   524         for choice in ["Input", "Output", "InOut"]:
   528         for choice in ["Input", "Output", "InOut"]:
   525             self.Class.Append(choice)
   529             self.Class.Append(choice)
   526         self.Class.SetStringSelection("Input")
   530         self.Class.SetStringSelection("Input")
   527 
   531 
       
   532     def SetPreviewFont(self, font):
       
   533         self.Preview.SetFont(font)
       
   534 
   528     def RefreshNameList(self):
   535     def RefreshNameList(self):
   529         selected = self.VariableName.GetStringSelection()
   536         selected = self.VariableName.GetStringSelection()
   530         self.VariableName.Clear()
   537         self.VariableName.Clear()
   531         self.VariableName.Append("")
   538         self.VariableName.Append("")
   532         for name, var_type, value_type in self.VarList:
   539         for name, var_type, value_type in self.VarList:
   624         self.RefreshPreview()
   631         self.RefreshPreview()
   625         event.Skip()
   632         event.Skip()
   626     
   633     
   627     def RefreshPreview(self):
   634     def RefreshPreview(self):
   628         dc = wx.ClientDC(self.Preview)
   635         dc = wx.ClientDC(self.Preview)
       
   636         dc.SetFont(self.Preview.GetFont())
   629         dc.Clear()
   637         dc.Clear()
   630         expression = self.Expression.GetValue()
   638         expression = self.Expression.GetValue()
   631         if self.Expression.IsEnabled() and expression != "":
   639         if self.Expression.IsEnabled() and expression != "":
   632             name = expression
   640             name = expression
   633         else:
   641         else:
   783 
   791 
   784     def __init__(self, parent):
   792     def __init__(self, parent):
   785         self._init_ctrls(parent)
   793         self._init_ctrls(parent)
   786         self.Connection = None
   794         self.Connection = None
   787         self.MinConnectionSize = None
   795         self.MinConnectionSize = None
   788             
   796     
       
   797     def SetPreviewFont(self, font):
       
   798         self.Preview.SetFont(font)
       
   799     
   789     def SetMinConnectionSize(self, size):
   800     def SetMinConnectionSize(self, size):
   790         self.MinConnectionSize = size
   801         self.MinConnectionSize = size
   791     
   802     
   792     def SetValues(self, values):
   803     def SetValues(self, values):
   793         for name, value in values.items():
   804         for name, value in values.items():
   818         self.RefreshPreview()
   829         self.RefreshPreview()
   819         event.Skip()
   830         event.Skip()
   820         
   831         
   821     def RefreshPreview(self):
   832     def RefreshPreview(self):
   822         dc = wx.ClientDC(self.Preview)
   833         dc = wx.ClientDC(self.Preview)
       
   834         dc.SetFont(self.Preview.GetFont())
   823         dc.Clear()
   835         dc.Clear()
   824         if self.radioButton1.GetValue():
   836         if self.radioButton1.GetValue():
   825             self.Connection = FBD_Connector(self.Preview, CONNECTOR, self.ConnectionName.GetValue())
   837             self.Connection = FBD_Connector(self.Preview, CONNECTOR, self.ConnectionName.GetValue())
   826         else:
   838         else:
   827             self.Connection = FBD_Connector(self.Preview, CONTINUATION, self.ConnectionName.GetValue())
   839             self.Connection = FBD_Connector(self.Preview, CONTINUATION, self.ConnectionName.GetValue())
   982             self._init_ctrls(parent, "Edit Contact Values", ['Normal','Negate','Rising Edge','Falling Edge'])
   994             self._init_ctrls(parent, "Edit Contact Values", ['Normal','Negate','Rising Edge','Falling Edge'])
   983             self.Element = LD_Contact(self.Preview, CONTACT_NORMAL, "")
   995             self.Element = LD_Contact(self.Preview, CONTACT_NORMAL, "")
   984         elif type == "coil":
   996         elif type == "coil":
   985             self._init_ctrls(parent, "Edit Coil Values", ['Normal','Negate','Set','Reset'])
   997             self._init_ctrls(parent, "Edit Coil Values", ['Normal','Negate','Set','Reset'])
   986             self.Element = LD_Coil(self.Preview, COIL_NORMAL, "")
   998             self.Element = LD_Coil(self.Preview, COIL_NORMAL, "")
   987         
   999     
       
  1000     def SetPreviewFont(self, font):
       
  1001         self.Preview.SetFont(font)
       
  1002     
   988     def SetElementSize(self, size):
  1003     def SetElementSize(self, size):
   989         min_width, min_height = self.Element.GetMinSize()
  1004         min_width, min_height = self.Element.GetMinSize()
   990         width, height = max(min_width, size[0]), max(min_height, size[1])
  1005         width, height = max(min_width, size[0]), max(min_height, size[1])
   991         self.Element.SetSize(width, height)
  1006         self.Element.SetSize(width, height)
   992         
  1007         
  1056         self.RefreshPreview()
  1071         self.RefreshPreview()
  1057         event.Skip()
  1072         event.Skip()
  1058 
  1073 
  1059     def RefreshPreview(self):
  1074     def RefreshPreview(self):
  1060         dc = wx.ClientDC(self.Preview)
  1075         dc = wx.ClientDC(self.Preview)
       
  1076         dc.SetFont(self.Preview.GetFont())
  1061         dc.Clear()
  1077         dc.Clear()
  1062         clientsize = self.Preview.GetClientSize()
  1078         clientsize = self.Preview.GetClientSize()
  1063         width, height = self.Element.GetSize()
  1079         width, height = self.Element.GetSize()
  1064         self.Element.SetPosition((clientsize.width - width) / 2, (clientsize.height - height) / 2)
  1080         self.Element.SetPosition((clientsize.width - width) / 2, (clientsize.height - height) / 2)
  1065         self.Element.Draw(dc)
  1081         self.Element.Draw(dc)
  1203         self.PinNumber.SetValue(number)
  1219         self.PinNumber.SetValue(number)
  1204         
  1220         
  1205         self.PowerRailMinSize = (0, 0)
  1221         self.PowerRailMinSize = (0, 0)
  1206         self.PowerRail = None
  1222         self.PowerRail = None
  1207 
  1223 
       
  1224     def SetPreviewFont(self, font):
       
  1225         self.Preview.SetFont(font)
       
  1226 
  1208     def SetMinSize(self, size):
  1227     def SetMinSize(self, size):
  1209         self.PowerRailMinSize = size
  1228         self.PowerRailMinSize = size
  1210         self.RefreshPreview()    
  1229         self.RefreshPreview()    
  1211 
  1230 
  1212     def GetValues(self):
  1231     def GetValues(self):
  1228         self.RefreshPreview()
  1247         self.RefreshPreview()
  1229         event.Skip()
  1248         event.Skip()
  1230 
  1249 
  1231     def RefreshPreview(self):
  1250     def RefreshPreview(self):
  1232         dc = wx.ClientDC(self.Preview)
  1251         dc = wx.ClientDC(self.Preview)
       
  1252         dc.SetFont(self.Preview.GetFont())
  1233         dc.Clear()
  1253         dc.Clear()
  1234         self.PowerRail = LD_PowerRail(self.Preview, self.Type, connectors = [True for i in xrange(self.PinNumber.GetValue())])
  1254         self.PowerRail = LD_PowerRail(self.Preview, self.Type, connectors = [True for i in xrange(self.PinNumber.GetValue())])
  1235         min_width, min_height = 2, LD_LINE_SIZE * self.PinNumber.GetValue()
  1255         min_width, min_height = 2, LD_LINE_SIZE * self.PinNumber.GetValue()
  1236         width, height = max(min_width, self.PowerRailMinSize[0]), max(min_height, self.PowerRailMinSize[1])
  1256         width, height = max(min_width, self.PowerRailMinSize[0]), max(min_height, self.PowerRailMinSize[1])
  1237         self.PowerRail.SetSize(width, height)
  1257         self.PowerRail.SetSize(width, height)
  1381         self.MinStepSize = None
  1401         self.MinStepSize = None
  1382     
  1402     
  1383         self.PouNames = []
  1403         self.PouNames = []
  1384         self.Variables = []
  1404         self.Variables = []
  1385         self.StepNames = []
  1405         self.StepNames = []
       
  1406     
       
  1407     def SetPreviewFont(self, font):
       
  1408         self.Preview.SetFont(font)
  1386     
  1409     
  1387     def OnOK(self, event):
  1410     def OnOK(self, event):
  1388         step_name = self.StepName.GetValue()
  1411         step_name = self.StepName.GetValue()
  1389         if step_name == "":
  1412         if step_name == "":
  1390             message = wx.MessageDialog(self, "You must type a name!", "Error", wx.OK|wx.ICON_ERROR)
  1413             message = wx.MessageDialog(self, "You must type a name!", "Error", wx.OK|wx.ICON_ERROR)
  1453         self.RefreshPreview()
  1476         self.RefreshPreview()
  1454         event.Skip()
  1477         event.Skip()
  1455     
  1478     
  1456     def RefreshPreview(self):
  1479     def RefreshPreview(self):
  1457         dc = wx.ClientDC(self.Preview)
  1480         dc = wx.ClientDC(self.Preview)
       
  1481         dc.SetFont(self.Preview.GetFont())
  1458         dc.Clear()
  1482         dc.Clear()
  1459         self.Step = SFC_Step(self.Preview, self.StepName.GetValue(), self.Initial)
  1483         self.Step = SFC_Step(self.Preview, self.StepName.GetValue(), self.Initial)
  1460         if self.checkBox1.IsChecked():
  1484         if self.checkBox1.IsChecked():
  1461             self.Step.AddInput()
  1485             self.Step.AddInput()
  1462         else:
  1486         else:
  1637         self._init_ctrls(parent)
  1661         self._init_ctrls(parent)
  1638         self.Transition = None
  1662         self.Transition = None
  1639         self.MinTransitionSize = None
  1663         self.MinTransitionSize = None
  1640         
  1664         
  1641         self.Element = SFC_Transition(self.Preview)
  1665         self.Element = SFC_Transition(self.Preview)
  1642         
  1666     
       
  1667     def SetPreviewFont(self, font):
       
  1668         self.Preview.SetFont(font)
       
  1669     
  1643     def SetElementSize(self, size):
  1670     def SetElementSize(self, size):
  1644         min_width, min_height = self.Element.GetMinSize()
  1671         min_width, min_height = self.Element.GetMinSize()
  1645         width, height = max(min_width, size[0]), max(min_height, size[1])
  1672         width, height = max(min_width, size[0]), max(min_height, size[1])
  1646         self.Element.SetSize(width, height)
  1673         self.Element.SetSize(width, height)
  1647     
  1674     
  1743             values["value"] = None
  1770             values["value"] = None
  1744         return values
  1771         return values
  1745 
  1772 
  1746     def RefreshPreview(self):
  1773     def RefreshPreview(self):
  1747         dc = wx.ClientDC(self.Preview)
  1774         dc = wx.ClientDC(self.Preview)
       
  1775         dc.SetFont(self.Preview.GetFont())
  1748         dc.Clear()
  1776         dc.Clear()
  1749         clientsize = self.Preview.GetClientSize()
  1777         clientsize = self.Preview.GetClientSize()
  1750         posx, posy = self.Element.GetPosition()
  1778         posx, posy = self.Element.GetPosition()
  1751         rect = self.Element.GetBoundingBox()
  1779         rect = self.Element.GetBoundingBox()
  1752         diffx, diffy = posx - rect.x, posy - rect.y
  1780         diffx, diffy = posx - rect.x, posy - rect.y
  1898     def __init__(self, parent):
  1926     def __init__(self, parent):
  1899         self._init_ctrls(parent)
  1927         self._init_ctrls(parent)
  1900         
  1928         
  1901         self.Divergence = None
  1929         self.Divergence = None
  1902         self.MinSize = (0, 0)
  1930         self.MinSize = (0, 0)
  1903         
  1931     
       
  1932     def SetPreviewFont(self, font):
       
  1933         self.Preview.SetFont(font)
       
  1934     
  1904     def GetValues(self):
  1935     def GetValues(self):
  1905         values = {}
  1936         values = {}
  1906         if self.radioButton1.GetValue():
  1937         if self.radioButton1.GetValue():
  1907             values["type"] = SELECTION_DIVERGENCE
  1938             values["type"] = SELECTION_DIVERGENCE
  1908         elif self.radioButton2.GetValue():
  1939         elif self.radioButton2.GetValue():
  1925         self.RefreshPreview()
  1956         self.RefreshPreview()
  1926         event.Skip()
  1957         event.Skip()
  1927         
  1958         
  1928     def RefreshPreview(self):
  1959     def RefreshPreview(self):
  1929         dc = wx.ClientDC(self.Preview)
  1960         dc = wx.ClientDC(self.Preview)
       
  1961         dc.SetFont(self.Preview.GetFont())
  1930         dc.Clear()
  1962         dc.Clear()
  1931         if self.radioButton1.GetValue():
  1963         if self.radioButton1.GetValue():
  1932             self.Divergence = SFC_Divergence(self.Preview, SELECTION_DIVERGENCE, self.Sequences.GetValue())
  1964             self.Divergence = SFC_Divergence(self.Preview, SELECTION_DIVERGENCE, self.Sequences.GetValue())
  1933         elif self.radioButton2.GetValue():
  1965         elif self.radioButton2.GetValue():
  1934             self.Divergence = SFC_Divergence(self.Preview, SELECTION_CONVERGENCE, self.Sequences.GetValue())
  1966             self.Divergence = SFC_Divergence(self.Preview, SELECTION_CONVERGENCE, self.Sequences.GetValue())