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()) |