--- a/Viewer.py Tue Aug 07 17:37:38 2007 +0200
+++ b/Viewer.py Tue Aug 07 17:38:48 2007 +0200
@@ -22,7 +22,6 @@
#License along with this library; if not, write to the Free Software
#Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-from wxPython.wx import *
import wx
from plcopen.structures import *
@@ -38,11 +37,11 @@
#-------------------------------------------------------------------------------
# ID Constants for menu items
-[wxID_FBDVIEWERCONTEXTUALMENUITEMS0, wxID_FBDVIEWERCONTEXTUALMENUITEMS1,
- wxID_FBDVIEWERCONTEXTUALMENUITEMS2, wxID_FBDVIEWERCONTEXTUALMENUITEMS3,
- wxID_FBDVIEWERCONTEXTUALMENUITEMS5, wxID_FBDVIEWERCONTEXTUALMENUITEMS6,
- wxID_FBDVIEWERCONTEXTUALMENUITEMS8, wxID_FBDVIEWERCONTEXTUALMENUITEMS9,
- wxID_FBDVIEWERCONTEXTUALMENUITEMS11,
+[ID_FBDVIEWERCONTEXTUALMENUITEMS0, ID_FBDVIEWERCONTEXTUALMENUITEMS1,
+ ID_FBDVIEWERCONTEXTUALMENUITEMS2, ID_FBDVIEWERCONTEXTUALMENUITEMS3,
+ ID_FBDVIEWERCONTEXTUALMENUITEMS5, ID_FBDVIEWERCONTEXTUALMENUITEMS6,
+ ID_FBDVIEWERCONTEXTUALMENUITEMS8, ID_FBDVIEWERCONTEXTUALMENUITEMS9,
+ ID_FBDVIEWERCONTEXTUALMENUITEMS11,
] = [wx.NewId() for _init_coll_ContextualMenu_Items in range(9)]
@@ -85,7 +84,7 @@
"""
-Class that implements a Viewer based on a wxScrolledWindow for drawing and
+Class that implements a Viewer based on a wx.ScrolledWindow for drawing and
manipulating graphic elements
"""
@@ -94,46 +93,46 @@
# Create Contextual Menu items
def _init_coll_ContextualMenu_Items(self, parent):
# Create menu items
- parent.Append(help='', id=wxID_FBDVIEWERCONTEXTUALMENUITEMS0,
+ parent.Append(help='', id=ID_FBDVIEWERCONTEXTUALMENUITEMS0,
kind=wx.ITEM_RADIO, text=u'No Modifier')
- parent.Append(help='', id=wxID_FBDVIEWERCONTEXTUALMENUITEMS1,
+ parent.Append(help='', id=ID_FBDVIEWERCONTEXTUALMENUITEMS1,
kind=wx.ITEM_RADIO, text=u'Negated')
- parent.Append(help='', id=wxID_FBDVIEWERCONTEXTUALMENUITEMS2,
+ parent.Append(help='', id=ID_FBDVIEWERCONTEXTUALMENUITEMS2,
kind=wx.ITEM_RADIO, text=u'Rising Edge')
- parent.Append(help='', id=wxID_FBDVIEWERCONTEXTUALMENUITEMS3,
+ parent.Append(help='', id=ID_FBDVIEWERCONTEXTUALMENUITEMS3,
kind=wx.ITEM_RADIO, text=u'Falling Edge')
parent.AppendSeparator()
- parent.Append(help='', id=wxID_FBDVIEWERCONTEXTUALMENUITEMS5,
+ parent.Append(help='', id=ID_FBDVIEWERCONTEXTUALMENUITEMS5,
kind=wx.ITEM_NORMAL, text=u'Add Wire Segment')
- parent.Append(help='', id=wxID_FBDVIEWERCONTEXTUALMENUITEMS6,
+ parent.Append(help='', id=ID_FBDVIEWERCONTEXTUALMENUITEMS6,
kind=wx.ITEM_NORMAL, text=u'Delete Wire Segment')
parent.AppendSeparator()
- parent.Append(help='', id=wxID_FBDVIEWERCONTEXTUALMENUITEMS8,
+ parent.Append(help='', id=ID_FBDVIEWERCONTEXTUALMENUITEMS8,
kind=wx.ITEM_NORMAL, text=u'Add Divergence Branch')
- parent.Append(help='', id=wxID_FBDVIEWERCONTEXTUALMENUITEMS9,
+ parent.Append(help='', id=ID_FBDVIEWERCONTEXTUALMENUITEMS9,
kind=wx.ITEM_NORMAL, text=u'Delete Divergence Branch')
parent.AppendSeparator()
- parent.Append(help='', id=wxID_FBDVIEWERCONTEXTUALMENUITEMS11,
+ parent.Append(help='', id=ID_FBDVIEWERCONTEXTUALMENUITEMS11,
kind=wx.ITEM_NORMAL, text=u'Delete')
# Link menu event to corresponding called functions
self.Bind(wx.EVT_MENU, self.OnNoModifierMenu,
- id=wxID_FBDVIEWERCONTEXTUALMENUITEMS0)
+ id=ID_FBDVIEWERCONTEXTUALMENUITEMS0)
self.Bind(wx.EVT_MENU, self.OnNegatedMenu,
- id=wxID_FBDVIEWERCONTEXTUALMENUITEMS1)
+ id=ID_FBDVIEWERCONTEXTUALMENUITEMS1)
self.Bind(wx.EVT_MENU, self.OnRisingEdgeMenu,
- id=wxID_FBDVIEWERCONTEXTUALMENUITEMS2)
+ id=ID_FBDVIEWERCONTEXTUALMENUITEMS2)
self.Bind(wx.EVT_MENU, self.OnFallingEdgeMenu,
- id=wxID_FBDVIEWERCONTEXTUALMENUITEMS3)
+ id=ID_FBDVIEWERCONTEXTUALMENUITEMS3)
self.Bind(wx.EVT_MENU, self.OnAddSegmentMenu,
- id=wxID_FBDVIEWERCONTEXTUALMENUITEMS5)
+ id=ID_FBDVIEWERCONTEXTUALMENUITEMS5)
self.Bind(wx.EVT_MENU, self.OnDeleteSegmentMenu,
- id=wxID_FBDVIEWERCONTEXTUALMENUITEMS6)
+ id=ID_FBDVIEWERCONTEXTUALMENUITEMS6)
self.Bind(wx.EVT_MENU, self.OnAddBranchMenu,
- id=wxID_FBDVIEWERCONTEXTUALMENUITEMS8)
+ id=ID_FBDVIEWERCONTEXTUALMENUITEMS8)
self.Bind(wx.EVT_MENU, self.OnDeleteBranchMenu,
- id=wxID_FBDVIEWERCONTEXTUALMENUITEMS9)
+ id=ID_FBDVIEWERCONTEXTUALMENUITEMS9)
self.Bind(wx.EVT_MENU, self.OnDeleteMenu,
- id=wxID_FBDVIEWERCONTEXTUALMENUITEMS11)
+ id=ID_FBDVIEWERCONTEXTUALMENUITEMS11)
# Create and initialize Contextual Menu
def _init_menus(self):
@@ -147,7 +146,7 @@
self._init_menus()
# Adding a rubberband to Viewer
self.rubberBand = RubberBand(drawingSurface=self)
- self.SetBackgroundColour(wxColour(255,255,255))
+ self.SetBackgroundColour(wx.Colour(255,255,255))
self.ResetView()
self.Scaling = None
#self.Scaling = (8, 8)
@@ -167,15 +166,15 @@
self.SetDropTarget(ViewerDropTarget(self))
# Link Viewer event to corresponding methods
- EVT_PAINT(self, self.OnPaint)
- EVT_LEFT_DOWN(self, self.OnViewerLeftDown)
- EVT_LEFT_UP(self, self.OnViewerLeftUp)
- EVT_LEFT_DCLICK(self, self.OnViewerLeftDClick)
- EVT_RIGHT_UP(self, self.OnViewerRightUp)
- EVT_MOTION(self, self.OnViewerMotion)
- EVT_CHAR(self, self.OnChar)
- EVT_SCROLLWIN(self, self.OnMoveWindow)
- EVT_SIZE(self, self.OnMoveWindow)
+ self.Bind(wx.EVT_PAINT, self.OnPaint)
+ self.Bind(wx.EVT_LEFT_DOWN, self.OnViewerLeftDown)
+ self.Bind(wx.EVT_LEFT_UP, self.OnViewerLeftUp)
+ self.Bind(wx.EVT_LEFT_DCLICK, self.OnViewerLeftDClick)
+ self.Bind(wx.EVT_RIGHT_UP, self.OnViewerRightUp)
+ self.Bind(wx.EVT_MOTION, self.OnViewerMotion)
+ self.Bind(wx.EVT_CHAR, self.OnChar)
+ self.Bind(wx.EVT_SCROLLWIN, self.OnMoveWindow)
+ self.Bind(wx.EVT_SIZE, self.OnMoveWindow)
# Returns a new id
def GetNewId(self):
@@ -187,7 +186,7 @@
self.ResetView()
def GetLogicalDC(self):
- dc = wxClientDC(self)
+ dc = wx.ClientDC(self)
self.DoPrepareDC(dc)
return dc
@@ -328,7 +327,7 @@
variable.SetSize(instance["width"], instance["height"])
self.AddBlock(variable)
connectors = variable.GetConnectors()
- connectors["output"].SetPosition(wxPoint(*instance["connector"]["position"]))
+ connectors["output"].SetPosition(wx.Point(*instance["connector"]["position"]))
if instance["connector"]["negated"]:
connectors["output"].SetNegated(True)
if instance["connector"]["edge"]:
@@ -339,7 +338,7 @@
variable.SetSize(instance["width"], instance["height"])
self.AddBlock(variable)
connectors = variable.GetConnectors()
- connectors["input"].SetPosition(wxPoint(*instance["connector"]["position"]))
+ connectors["input"].SetPosition(wx.Point(*instance["connector"]["position"]))
if instance["connector"]["negated"]:
connectors["input"].SetNegated(True)
if instance["connector"]["edge"]:
@@ -351,8 +350,8 @@
variable.SetSize(instance["width"], instance["height"])
self.AddBlock(variable)
connectors = variable.GetConnectors()
- connectors["output"].SetPosition(wxPoint(*instance["connectors"]["output"]["position"]))
- connectors["input"].SetPosition(wxPoint(*instance["connectors"]["input"]["position"]))
+ connectors["output"].SetPosition(wx.Point(*instance["connectors"]["output"]["position"]))
+ connectors["input"].SetPosition(wx.Point(*instance["connectors"]["input"]["position"]))
if instance["connectors"]["output"]["negated"]:
connectors["output"].SetNegated(True)
if instance["connectors"]["output"]["edge"]:
@@ -368,14 +367,14 @@
connection.SetSize(instance["width"], instance["height"])
self.AddBlock(connection)
connector = connection.GetConnector()
- connector.SetPosition(wxPoint(*instance["connector"]["position"]))
+ connector.SetPosition(wx.Point(*instance["connector"]["position"]))
elif instance["type"] == "connection":
connection = FBD_Connector(self, CONNECTOR, instance["name"], instance["id"])
connection.SetPosition(instance["x"], instance["y"])
connection.SetSize(instance["width"], instance["height"])
self.AddBlock(connection)
connector = connection.GetConnector()
- connector.SetPosition(wxPoint(*instance["connector"]["position"]))
+ connector.SetPosition(wx.Point(*instance["connector"]["position"]))
self.CreateWires(connector, instance["connector"]["links"], ids)
elif instance["type"] == "comment":
comment = Comment(self, instance["content"], instance["id"])
@@ -388,14 +387,14 @@
self.AddBlock(leftpowerrail)
connectors = leftpowerrail.GetConnectors()
for i, connector in enumerate(instance["connectors"]):
- connectors[i].SetPosition(wxPoint(*connector["position"]))
+ connectors[i].SetPosition(wx.Point(*connector["position"]))
elif instance["type"] == "rightPowerRail":
rightpowerrail = LD_PowerRail(self, RIGHTRAIL, instance["id"], [True for i in range(len(instance["connectors"]))])
rightpowerrail.SetPosition(instance["x"], instance["y"])
self.AddBlock(rightpowerrail)
connectors = rightpowerrail.GetConnectors()
for i, connector in enumerate(instance["connectors"]):
- connectors[i].SetPosition(wxPoint(*connector["position"]))
+ connectors[i].SetPosition(wx.Point(*connector["position"]))
self.CreateWires(connectors[i], connector["links"], ids)
elif instance["type"] == "contact":
if instance["negated"]:
@@ -418,9 +417,9 @@
contact.SetPosition(instance["x"], instance["y"])
self.AddBlock(contact)
connectors = contact.GetConnectors()
- connectors["input"].SetPosition(wxPoint(*instance["connectors"]["input"]["position"]))
+ connectors["input"].SetPosition(wx.Point(*instance["connectors"]["input"]["position"]))
self.CreateWires(connectors["input"], instance["connectors"]["input"]["links"], ids)
- connectors["output"].SetPosition(wxPoint(*instance["connectors"]["output"]["position"]))
+ connectors["output"].SetPosition(wx.Point(*instance["connectors"]["output"]["position"]))
elif instance["type"] == "coil":
if instance["negated"]:
negated = instance["negated"]
@@ -442,9 +441,9 @@
coil.SetPosition(instance["x"], instance["y"])
self.AddBlock(coil)
connectors = coil.GetConnectors()
- connectors["input"].SetPosition(wxPoint(*instance["connectors"]["input"]["position"]))
+ connectors["input"].SetPosition(wx.Point(*instance["connectors"]["input"]["position"]))
self.CreateWires(connectors["input"], instance["connectors"]["input"]["links"], ids)
- connectors["output"].SetPosition(wxPoint(*instance["connectors"]["output"]["position"]))
+ connectors["output"].SetPosition(wx.Point(*instance["connectors"]["output"]["position"]))
elif instance["type"] == "step":
if instance["initial"]:
initial = instance["initial"]
@@ -460,20 +459,22 @@
step.AddAction()
connectors = step.GetConnectors()
if connectors["input"]:
- connectors["input"].SetPosition(wxPoint(*instance["connectors"]["input"]["position"]))
+ connectors["input"].SetPosition(wx.Point(*instance["connectors"]["input"]["position"]))
self.CreateWires(connectors["input"], instance["connectors"]["input"]["links"], ids)
if connectors["output"]:
- connectors["output"].SetPosition(wxPoint(*instance["connectors"]["output"]["position"]))
+ connectors["output"].SetPosition(wx.Point(*instance["connectors"]["output"]["position"]))
if connectors["action"]:
- connectors["action"].SetPosition(wxPoint(*instance["connectors"]["action"]["position"]))
+ connectors["action"].SetPosition(wx.Point(*instance["connectors"]["action"]["position"]))
elif instance["type"] == "transition":
transition = SFC_Transition(self, instance["condition_type"], instance["condition"], instance["id"])
transition.SetPosition(instance["x"], instance["y"])
self.AddBlock(transition)
connectors = transition.GetConnectors()
- connectors["input"].SetPosition(wxPoint(*instance["connectors"]["input"]["position"]))
+ connectors["input"].SetPosition(wx.Point(*instance["connectors"]["input"]["position"]))
self.CreateWires(connectors["input"], instance["connectors"]["input"]["links"], ids)
- connectors["output"].SetPosition(wxPoint(*instance["connectors"]["output"]["position"]))
+ connectors["output"].SetPosition(wx.Point(*instance["connectors"]["output"]["position"]))
+ if instance["condition_type"] == "connection":
+ self.CreateWires(connectors["connection"], instance["connectors"]["connection"]["links"], ids)
elif instance["type"] in ["selectionDivergence", "selectionConvergence", "simultaneousDivergence", "simultaneousConvergence"]:
if instance["type"] == "selectionDivergence":
divergence = SFC_Divergence(self, SELECTION_DIVERGENCE,
@@ -493,17 +494,17 @@
connectors = divergence.GetConnectors()
for i, input_connector in enumerate(instance["connectors"]["inputs"]):
connector = connectors["inputs"][i]
- connector.SetPosition(wxPoint(*input_connector["position"]))
+ connector.SetPosition(wx.Point(*input_connector["position"]))
self.CreateWires(connector, input_connector["links"], ids)
for i, output_connector in enumerate(instance["connectors"]["outputs"]):
connector = connectors["outputs"][i]
- connector.SetPosition(wxPoint(*output_connector["position"]))
+ connector.SetPosition(wx.Point(*output_connector["position"]))
elif instance["type"] == "jump":
jump = SFC_Jump(self, instance["target"], instance["id"])
jump.SetPosition(instance["x"], instance["y"])
self.AddBlock(jump)
connector = jump.GetConnector()
- connector.SetPosition(wxPoint(*instance["connector"]["position"]))
+ connector.SetPosition(wx.Point(*instance["connector"]["position"]))
self.CreateWires(connector, instance["connector"]["links"], ids)
elif instance["type"] == "actionBlock":
actionBlock = SFC_ActionBlock(self, instance["actions"], instance["id"])
@@ -511,7 +512,7 @@
actionBlock.SetSize(instance["width"], instance["height"])
self.AddBlock(actionBlock)
connector = actionBlock.GetConnector()
- connector.SetPosition(wxPoint(*instance["connector"]["position"]))
+ connector.SetPosition(wx.Point(*instance["connector"]["position"]))
self.CreateWires(connector, instance["connector"]["links"], ids)
else:
if instance["name"] != None:
@@ -524,7 +525,7 @@
connectors = block.GetConnectors()
for i, input_connector in enumerate(instance["connectors"]["inputs"]):
connector = connectors["inputs"][i]
- connector.SetPosition(wxPoint(*input_connector["position"]))
+ connector.SetPosition(wx.Point(*input_connector["position"]))
if input_connector["negated"]:
connector.SetNegated(True)
if input_connector["edge"]:
@@ -536,7 +537,7 @@
connector.SetNegated(True)
if output_connector["edge"]:
connector.SetEdge(output_connector["edge"])
- connector.SetPosition(wxPoint(*output_connector["position"]))
+ connector.SetPosition(wx.Point(*output_connector["position"]))
def CreateWires(self, start_connector, links, ids):
for link in links:
@@ -549,7 +550,7 @@
connected = self.FindElementById(refLocalId)
if connected:
points = link["points"]
- end_connector = connected.GetConnector(wxPoint(points[-1][0], points[-1][1]), link["formalParameter"])
+ end_connector = connected.GetConnector(wx.Point(points[-1][0], points[-1][1]), link["formalParameter"])
if end_connector:
wire = Wire(self)
wire.SetPoints(points)
@@ -682,8 +683,8 @@
self.PopupMenu(self.ContextualMenu)
def EditCommentContent(self, comment):
- dialog = wxTextEntryDialog(self.Parent, "Edit comment", "Please enter comment text", comment.GetContent(), wxOK|wxCANCEL|wxTE_MULTILINE)
- if dialog.ShowModal() == wxID_OK:
+ dialog = wx.TextEntryDialog(self.Parent, "Edit comment", "Please enter comment text", comment.GetContent(), wx.OK|wx.CANCEL|wx.TE_MULTILINE)
+ if dialog.ShowModal() == wx.ID_OK:
value = dialog.GetValue()
comment.SetContent(value)
infos = {"content" : value}
@@ -790,9 +791,9 @@
connector = self.FindBlockConnector(pos)
if connector:
if (connector.GetDirection() == EAST):
- wire = Wire(self, [wxPoint(pos.x, pos.y), EAST], [wxPoint(pos.x, pos.y), WEST])
+ wire = Wire(self, [wx.Point(pos.x, pos.y), EAST], [wx.Point(pos.x, pos.y), WEST])
else:
- wire = Wire(self, [wxPoint(pos.x, pos.y), WEST], [wxPoint(pos.x, pos.y), EAST])
+ wire = Wire(self, [wx.Point(pos.x, pos.y), WEST], [wx.Point(pos.x, pos.y), EAST])
wire.oldPos = pos
wire.Handle = (HANDLE_POINT, 0)
wire.ProcessDragging(0, 0)
@@ -821,34 +822,34 @@
bbox = self.rubberBand.GetCurrentExtent()
self.rubberBand.OnLeftUp(event, self.GetLogicalDC(), self.Scaling)
if self.Mode == MODE_BLOCK:
- wxCallAfter(self.AddNewBlock, bbox)
+ wx.CallAfter(self.AddNewBlock, bbox)
elif self.Mode == MODE_VARIABLE:
- wxCallAfter(self.AddNewVariable, bbox)
+ wx.CallAfter(self.AddNewVariable, bbox)
elif self.Mode == MODE_CONNECTION:
- wxCallAfter(self.AddNewConnection, bbox)
+ wx.CallAfter(self.AddNewConnection, bbox)
elif self.Mode == MODE_COMMENT:
- wxCallAfter(self.AddNewComment, bbox)
+ wx.CallAfter(self.AddNewComment, bbox)
elif self.Mode == MODE_CONTACT:
- wxCallAfter(self.AddNewContact, bbox)
+ wx.CallAfter(self.AddNewContact, bbox)
elif self.Mode == MODE_COIL:
- wxCallAfter(self.AddNewContact, bbox)
+ wx.CallAfter(self.AddNewContact, bbox)
elif self.Mode == MODE_POWERRAIL:
- wxCallAfter(self.AddNewPowerRail, bbox)
+ wx.CallAfter(self.AddNewPowerRail, bbox)
elif self.Mode == MODE_INITIALSTEP:
- wxCallAfter(self.AddNewInitialStep, bbox)
+ wx.CallAfter(self.AddNewInitialStep, bbox)
elif self.Mode == MODE_STEP:
- wxCallAfter(self.AddNewStep, bbox)
+ wx.CallAfter(self.AddNewStep, bbox)
elif self.Mode == MODE_TRANSITION:
- wxCallAfter(self.AddNewTransition, bbox)
+ wx.CallAfter(self.AddNewTransition, bbox)
elif self.Mode == MODE_DIVERGENCE:
- wxCallAfter(self.AddNewDivergence, bbox)
+ wx.CallAfter(self.AddNewDivergence, bbox)
elif self.Mode == MODE_JUMP:
- wxCallAfter(self.AddNewJump, bbox)
+ wx.CallAfter(self.AddNewJump, bbox)
elif self.Mode == MODE_ACTION:
- wxCallAfter(self.AddNewActionBlock, bbox)
+ wx.CallAfter(self.AddNewActionBlock, bbox)
elif self.Mode == MODE_SELECTION and self.SelectedElement:
self.SelectedElement.OnLeftUp(event, self.GetLogicalDC(), self.Scaling)
- wxCallAfter(self.SetCursor, wxNullCursor)
+ wx.CallAfter(self.SetCursor, wx.NullCursor)
self.ReleaseMouse()
self.Refresh()
elif self.Mode == MODE_WIRE and self.SelectedElement:
@@ -864,7 +865,7 @@
self.SelectedElement = None
self.Refresh()
if not self.SavedMode:
- wxCallAfter(self.Parent.ResetCurrentMode)
+ wx.CallAfter(self.Parent.ResetCurrentMode)
event.Skip()
def OnViewerRightUp(self, event):
@@ -876,7 +877,7 @@
self.SelectedElement = element
self.SelectedElement.SetSelected(True)
self.SelectedElement.OnRightUp(event, self.GetLogicalDC(), self.Scaling)
- wxCallAfter(self.SetCursor, wxNullCursor)
+ wx.CallAfter(self.SetCursor, wx.NullCursor)
self.ReleaseMouse()
self.Refresh()
event.Skip()
@@ -904,7 +905,7 @@
self.Refresh()
if (event.Dragging() and self.SelectedElement) or self.rubberBand.IsShown():
position = event.GetPosition()
- move_window = wxPoint()
+ move_window = wx.Point()
window_size = self.GetClientSize()
xstart, ystart = self.GetViewStart()
if position.x < SCROLL_ZONE and xstart > 0:
@@ -925,22 +926,22 @@
#-------------------------------------------------------------------------------
def OnChar(self, event):
- xpos, ypos = self.GetScrollPos(wxHORIZONTAL), self.GetScrollPos(wxVERTICAL)
- xmax = self.GetScrollRange(wxHORIZONTAL) - self.GetScrollThumb(wxHORIZONTAL)
- ymax = self.GetScrollRange(wxVERTICAL) - self.GetScrollThumb(wxVERTICAL)
+ xpos, ypos = self.GetScrollPos(wx.HORIZONTAL), self.GetScrollPos(wx.VERTICAL)
+ xmax = self.GetScrollRange(wx.HORIZONTAL) - self.GetScrollThumb(wx.HORIZONTAL)
+ ymax = self.GetScrollRange(wx.VERTICAL) - self.GetScrollThumb(wx.VERTICAL)
keycode = event.GetKeyCode()
if self.Scaling:
scaling = self.Scaling
else:
scaling = (8, 8)
- if keycode == WXK_DELETE and self.SelectedElement:
+ if keycode == wx.WXK_DELETE and self.SelectedElement:
self.SelectedElement.Clean()
self.SelectedElement.Delete()
self.SelectedElement = None
self.RefreshBuffer()
self.RefreshScrollBars()
self.Refresh()
- elif keycode == WXK_LEFT:
+ elif keycode == wx.WXK_LEFT:
if event.ControlDown() and event.ShiftDown():
self.Scroll(0, ypos)
elif event.ControlDown():
@@ -950,7 +951,7 @@
self.RefreshBuffer()
self.RefreshScrollBars()
self.Refresh()
- elif keycode == WXK_RIGHT:
+ elif keycode == wx.WXK_RIGHT:
if event.ControlDown() and event.ShiftDown():
self.Scroll(xmax, ypos)
elif event.ControlDown():
@@ -960,7 +961,7 @@
self.RefreshBuffer()
self.RefreshScrollBars()
self.Refresh()
- elif keycode == WXK_UP:
+ elif keycode == wx.WXK_UP:
if event.ControlDown() and event.ShiftDown():
self.Scroll(xpos, 0)
elif event.ControlDown():
@@ -970,7 +971,7 @@
self.RefreshBuffer()
self.RefreshScrollBars()
self.Refresh()
- elif keycode == WXK_DOWN:
+ elif keycode == wx.WXK_DOWN:
if event.ControlDown() and event.ShiftDown():
self.Scroll(xpos, ymax)
elif event.ControlDown():
@@ -989,7 +990,7 @@
dialog = BlockPropertiesDialog(self.Parent)
dialog.SetBlockList(self.Controler.GetBlockTypes())
dialog.SetMinBlockSize((bbox.width, bbox.height))
- if dialog.ShowModal() == wxID_OK:
+ if dialog.ShowModal() == wx.ID_OK:
id = self.GetNewId()
values = dialog.GetValues()
if "name" in values:
@@ -1018,7 +1019,7 @@
if returntype:
varlist.append((self.Controler.GetCurrentElementEditingName(), "Output", returntype))
dialog.SetVariables(varlist)
- if dialog.ShowModal() == wxID_OK:
+ if dialog.ShowModal() == wx.ID_OK:
id = self.GetNewId()
values = dialog.GetValues()
variable = FBD_Variable(self, values["type"], values["name"], values["value_type"], id)
@@ -1035,7 +1036,7 @@
def AddNewConnection(self, bbox):
dialog = ConnectionPropertiesDialog(self.Parent)
dialog.SetMinConnectionSize((bbox.width, bbox.height))
- if dialog.ShowModal() == wxID_OK:
+ if dialog.ShowModal() == wx.ID_OK:
id = self.GetNewId()
values = dialog.GetValues()
connection = FBD_Connector(self, values["type"], values["name"], id)
@@ -1050,8 +1051,8 @@
dialog.Destroy()
def AddNewComment(self, bbox):
- dialog = wxTextEntryDialog(self.Parent, "Add a new comment", "Please enter comment text", "", wxOK|wxCANCEL|wxTE_MULTILINE)
- if dialog.ShowModal() == wxID_OK:
+ dialog = wx.TextEntryDialog(self.Parent, "Add a new comment", "Please enter comment text", "", wx.OK|wx.CANCEL|wx.TE_MULTILINE)
+ if dialog.ShowModal() == wx.ID_OK:
value = dialog.GetValue()
id = self.GetNewId()
comment = Comment(self, value, id)
@@ -1077,7 +1078,7 @@
dialog.SetVariables(varlist)
dialog.SetValues({"name":"","type":CONTACT_NORMAL})
dialog.SetElementSize((bbox.width, bbox.height))
- if dialog.ShowModal() == wxID_OK:
+ if dialog.ShowModal() == wx.ID_OK:
id = self.GetNewId()
values = dialog.GetValues()
contact = LD_Contact(self, values["type"], values["name"], id)
@@ -1105,7 +1106,7 @@
dialog.SetVariables(varlist)
dialog.SetValues({"name":"","type":COIL_NORMAL})
dialog.SetElementSize((bbox.width, bbox.height))
- if dialog.ShowModal() == wxID_OK:
+ if dialog.ShowModal() == wx.ID_OK:
id = self.GetNewId()
values = dialog.GetValues()
coil = LD_Coil(self, values["type"], values["name"], id)
@@ -1122,7 +1123,7 @@
def AddNewPowerRail(self, bbox):
dialog = LDPowerRailDialog(self.Parent)
dialog.SetMinSize((bbox.width, bbox.height))
- if dialog.ShowModal() == wxID_OK:
+ if dialog.ShowModal() == wx.ID_OK:
id = self.GetNewId()
values = dialog.GetValues()
powerrail = LD_PowerRail(self, values["type"], id, [True for i in xrange(values["number"])])
@@ -1139,7 +1140,7 @@
def AddNewTransition(self, bbox):
dialog = TransitionContentDialog(self.Parent)
dialog.SetTransitions(self.Controler.GetCurrentElementEditingTransitions())
- if dialog.ShowModal() == wxID_OK:
+ if dialog.ShowModal() == wx.ID_OK:
id = self.GetNewId()
values = dialog.GetValues()
transition = SFC_Transition(self, values["type"], values["value"], id)
@@ -1157,7 +1158,7 @@
def AddNewDivergence(self, bbox):
dialog = DivergenceCreateDialog(self.Parent)
dialog.SetMinSize((bbox.width, bbox.height))
- if dialog.ShowModal() == wxID_OK:
+ if dialog.ShowModal() == wx.ID_OK:
id = self.GetNewId()
values = dialog.GetValues()
divergence = SFC_Divergence(self, values["type"], values["number"], id)
@@ -1184,7 +1185,7 @@
values = {"name" : block.GetName(), "type" : block.GetType(), "inputs" : block.GetInputTypes()}
values["extension"] = block.GetExtension()
dialog.SetValues(values)
- if dialog.ShowModal() == wxID_OK:
+ if dialog.ShowModal() == wx.ID_OK:
values = dialog.GetValues()
if "name" in values:
block.SetName(values["name"])
@@ -1210,7 +1211,7 @@
dialog.SetVariables(varlist)
values = {"name" : variable.GetName(), "type" : variable.GetType()}
dialog.SetValues(values)
- if dialog.ShowModal() == wxID_OK:
+ if dialog.ShowModal() == wx.ID_OK:
old_type = variable.GetType()
values = dialog.GetValues()
variable.SetName(values["name"])
@@ -1231,7 +1232,7 @@
dialog.SetMinConnectionSize(connection.GetSize())
values = {"name" : connection.GetName(), "type" : connection.GetType()}
dialog.SetValues(values)
- if dialog.ShowModal() == wxID_OK:
+ if dialog.ShowModal() == wx.ID_OK:
old_type = connection.GetType()
values = dialog.GetValues()
connection.SetName(values["name"])
@@ -1259,7 +1260,7 @@
values = {"name" : contact.GetName(), "type" : contact.GetType()}
dialog.SetValues(values)
dialog.SetElementSize(contact.GetSize())
- if dialog.ShowModal() == wxID_OK:
+ if dialog.ShowModal() == wx.ID_OK:
values = dialog.GetValues()
contact.SetName(values["name"])
contact.SetType(values["type"])
@@ -1285,12 +1286,12 @@
values = {"name" : coil.GetName(), "type" : coil.GetType()}
dialog.SetValues(values)
dialog.SetElementSize(coil.GetSize())
- if dialog.ShowModal() == wxID_OK:
+ if dialog.ShowModal() == wx.ID_OK:
values = dialog.GetValues()
coil.SetName(values["name"])
coil.SetType(values["type"])
coil.SetSize(values["width"], values["height"])
- self.RefreshContactModel(coil)
+ self.RefreshCoilModel(coil)
self.RefreshBuffer()
self.RefreshScrollBars()
self.Refresh()
@@ -1299,7 +1300,7 @@
def EditPowerRailContent(self, powerrail):
dialog = LDPowerRailDialog(self.Parent, powerrail.GetType(), len(powerrail.GetConnectors()))
dialog.SetMinSize(powerrail.GetSize())
- if dialog.ShowModal() == wxID_OK:
+ if dialog.ShowModal() == wx.ID_OK:
old_type = powerrail.GetType()
values = dialog.GetValues()
powerrail.SetType(values["type"], [True for i in xrange(values["number"])])
@@ -1313,43 +1314,52 @@
self.RefreshScrollBars()
self.Refresh()
dialog.Destroy()
-##
-##
-## def AddNewTransition(self, bbox):
-## dialog = TransitionContentDialog(self.Parent)
-## dialog.SetTransitions(self.Controler.GetCurrentElementEditingTransitions())
-## if dialog.ShowModal() == wxID_OK:
-## id = self.GetNewId()
-## values = dialog.GetValues()
-## transition = SFC_Transition(self, values["type"], values["value"], id)
-## transition.SetPosition(bbox.x, bbox.y)
-## min_width, min_height = transition.GetMinSize()
-## transition.SetSize(max(bbox.width, min_width), max(bbox.height, min_height))
-## self.Blocks.append(transition)
-## self.Elements.append(transition)
-## self.Controler.AddCurrentElementEditingTransition(id)
-## self.RefreshTransitionModel(transition)
-## self.RefreshScrollBars()
-## self.Refresh()
-## dialog.Destroy()
-##
-## def AddNewDivergence(self, bbox):
-## dialog = DivergenceCreateDialog(self.Parent)
-## dialog.SetMinSize((bbox.width, bbox.height))
-## if dialog.ShowModal() == wxID_OK:
-## id = self.GetNewId()
-## values = dialog.GetValues()
-## divergence = SFC_Divergence(self, values["type"], values["number"], id)
-## divergence.SetPosition(bbox.x, bbox.y)
-## min_width, min_height = divergence.GetMinSize()
-## divergence.SetSize(max(bbox.width, min_width), max(bbox.height, min_height))
-## self.Blocks.append(divergence)
-## self.Elements.append(divergence)
-## self.Controler.AddCurrentElementEditingDivergence(id, values["type"])
-## self.RefreshDivergenceModel(divergence)
-## self.RefreshScrollBars()
-## self.Refresh()
-## dialog.Destroy()
+
+
+ def EditTransitionContent(self, transition):
+ dialog = TransitionContentDialog(self.Parent, self.GetDrawingMode() == FREEDRAWING_MODE)
+ dialog.SetTransitions(self.Controler.GetCurrentElementEditingTransitions())
+ dialog.SetValues({"type":transition.GetType(),"value":transition.GetCondition()})
+ dialog.SetElementSize(transition.GetSize())
+ if dialog.ShowModal() == wx.ID_OK:
+ values = dialog.GetValues()
+ transition.SetType(values["type"],values["value"])
+ transition.RefreshModel()
+ self.RefreshBuffer()
+ self.RefreshScrollBars()
+ self.Refresh()
+ dialog.Destroy()
+
+ def EditJumpContent(self, jump):
+ choices = []
+ for block in self.Blocks:
+ if isinstance(block, SFC_Step):
+ choices.append(block.GetName())
+ dialog = wx.SingleChoiceDialog(self.Parent, "Edit jump target", "Please choose a target", choices, wx.OK|wx.CANCEL)
+ dialog.SetSelection(choices.index(jump.GetTarget()))
+ if dialog.ShowModal() == wx.ID_OK:
+ value = dialog.GetStringSelection()
+ jump.SetTarget(value)
+ jump.RefreshModel()
+ self.RefreshBuffer()
+ self.RefreshScrollBars()
+ self.Refresh()
+ dialog.Destroy()
+
+ def EditActionBlockContent(self, actionblock):
+ dialog = ActionBlockDialog(self.Parent)
+ dialog.SetQualifierList(self.Controler.GetQualifierTypes())
+ dialog.SetActionList(self.Controler.GetCurrentElementEditingActions())
+ dialog.SetVariableList(self.Controler.GetCurrentElementEditingInterfaceVars())
+ dialog.SetValues(actionblock.GetActions())
+ if dialog.ShowModal() == wx.ID_OK:
+ actions = dialog.GetValues()
+ actionblock.SetActions(actions)
+ actionblock.RefreshModel()
+ self.RefreshBuffer()
+ self.RefreshScrollBars()
+ self.Refresh()
+ dialog.Destroy()
#-------------------------------------------------------------------------------
# Model update functions
@@ -1627,7 +1637,7 @@
def OnPaint(self, event):
dc = self.GetLogicalDC()
dc.Clear()
- dc.SetPen(wxPen(wxColour(230, 230, 230)))
+ dc.SetPen(wx.Pen(wx.Colour(230, 230, 230)))
if self.Scaling and self.DrawGrid:
width, height = dc.GetSize()
for i in xrange(1, width / self.Scaling[0] + 1):