--- a/Dialogs.py Fri Oct 26 17:04:18 2007 +0200
+++ b/Dialogs.py Tue Oct 30 16:53:08 2007 +0100
@@ -34,9 +34,10 @@
[ID_BLOCKPROPERTIESDIALOG, ID_BLOCKPROPERTIESDIALOGNAME,
ID_BLOCKPROPERTIESDIALOGTYPETREE, ID_BLOCKPROPERTIESDIALOGTYPEDESC,
ID_BLOCKPROPERTIESDIALOGINPUTS, ID_BLOCKPROPERTIESDIALOGPREVIEW,
- ID_BLOCKPROPERTIESDIALOGSTATICTEXT1, ID_BLOCKPROPERTIESDIALOGSTATICTEXT2,
- ID_BLOCKPROPERTIESDIALOGSTATICTEXT3, ID_BLOCKPROPERTIESDIALOGSTATICTEXT4,
-] = [wx.NewId() for _init_ctrls in range(10)]
+ ID_BLOCKPROPERTIESDIALOGEXECUTIONORDER, ID_BLOCKPROPERTIESDIALOGSTATICTEXT1,
+ ID_BLOCKPROPERTIESDIALOGSTATICTEXT2, ID_BLOCKPROPERTIESDIALOGSTATICTEXT3,
+ ID_BLOCKPROPERTIESDIALOGSTATICTEXT4, ID_BLOCKPROPERTIESDIALOGSTATICTEXT5,
+] = [wx.NewId() for _init_ctrls in range(12)]
[CATEGORY, BLOCK] = range(2)
@@ -67,7 +68,7 @@
def _init_coll_RightGridSizer_Items(self, parent):
parent.AddSizer(self.RightUpGridSizer, 0, border=0, flag=wx.GROW)
- parent.AddWindow(self.staticText4, 0, border=0, flag=wx.GROW)
+ parent.AddWindow(self.staticText5, 0, border=0, flag=wx.GROW)
parent.AddWindow(self.Preview, 0, border=0, flag=wx.GROW)
def _init_coll_RightGridSizer_Growables(self, parent):
@@ -75,17 +76,19 @@
parent.AddGrowableRow(2)
def _init_coll_RightUpGridSizer_Items(self, parent):
- parent.AddWindow(self.staticText2, 0, border=0, flag=wx.GROW|wx.ALIGN_BOTTOM)
- parent.AddWindow(self.staticText3, 0, border=0, flag=wx.GROW|wx.ALIGN_BOTTOM)
+ parent.AddWindow(self.staticText2, 0, border=4, flag=wx.GROW|wx.TOP)
parent.AddWindow(self.BlockName, 0, border=0, flag=wx.GROW)
+ parent.AddWindow(self.staticText3, 0, border=4, flag=wx.GROW|wx.TOP)
parent.AddWindow(self.Inputs, 0, border=0, flag=wx.GROW)
-
+ parent.AddWindow(self.staticText4, 0, border=4, flag=wx.GROW|wx.TOP)
+ parent.AddWindow(self.ExecutionOrder, 0, border=0, flag=wx.GROW)
+
def _init_sizers(self):
self.flexGridSizer1 = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=10)
self.MainSizer = wx.BoxSizer(wx.HORIZONTAL)
self.LeftBoxSizer = wx.StaticBoxSizer(self.staticbox1, wx.VERTICAL)
self.RightGridSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=3, vgap=5)
- self.RightUpGridSizer = wx.GridSizer(cols=2, hgap=5, rows=2, vgap=5)
+ self.RightUpGridSizer = wx.GridSizer(cols=2, hgap=5, rows=3, vgap=5)
self._init_coll_flexGridSizer1_Items(self.flexGridSizer1)
self._init_coll_flexGridSizer1_Growables(self.flexGridSizer1)
@@ -100,9 +103,9 @@
def _init_ctrls(self, prnt):
wx.Dialog.__init__(self, id=ID_BLOCKPROPERTIESDIALOG,
name='BlockPropertiesDialog', parent=prnt, pos=wx.Point(376, 223),
- size=wx.Size(600, 360), style=wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER,
+ size=wx.Size(600, 380), style=wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER,
title='Block Properties')
- self.SetClientSize(wx.Size(600, 360))
+ self.SetClientSize(wx.Size(600, 380))
self.staticbox1 = wx.StaticBox(id=ID_BLOCKPROPERTIESDIALOGSTATICTEXT1,
label='Type:', name='staticBox1', parent=self,
@@ -117,7 +120,11 @@
pos=wx.Point(0, 0), size=wx.Size(0, 17), style=0)
self.staticText4 = wx.StaticText(id=ID_BLOCKPROPERTIESDIALOGSTATICTEXT4,
- label='Preview:', name='staticText4', parent=self,
+ label='Execution Order:', name='staticText4', parent=self,
+ pos=wx.Point(0, 0), size=wx.Size(0, 17), style=0)
+
+ self.staticText5 = wx.StaticText(id=ID_BLOCKPROPERTIESDIALOGSTATICTEXT5,
+ label='Preview:', name='staticText5', parent=self,
pos=wx.Point(0, 0), size=wx.Size(0, 17), style=0)
if wx.Platform == '__WXMSW__':
@@ -144,6 +151,11 @@
size=wx.Size(0, 24), style=wx.SP_ARROW_KEYS, min=2, max=20)
self.Bind(wx.EVT_SPINCTRL, self.OnInputsChanged, id=ID_BLOCKPROPERTIESDIALOGINPUTS)
+ self.ExecutionOrder = wx.SpinCtrl(id=ID_BLOCKPROPERTIESDIALOGEXECUTIONORDER,
+ name='ExecutionOrder', parent=self, pos=wx.Point(0, 0),
+ size=wx.Size(0, 24), style=wx.SP_ARROW_KEYS, min=0)
+ self.Bind(wx.EVT_SPINCTRL, self.OnExecutionOrderChanged, id=ID_BLOCKPROPERTIESDIALOGEXECUTIONORDER)
+
self.Preview = wx.Panel(id=ID_BLOCKPROPERTIESDIALOGPREVIEW,
name='Preview', parent=self, pos=wx.Point(0, 0),
size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL|wx.SIMPLE_BORDER)
@@ -262,6 +274,8 @@
self.BlockName.SetValue(value)
elif name == "extension":
self.Inputs.SetValue(value)
+ elif name == "executionOrder":
+ self.ExecutionOrder.SetValue(value)
self.RefreshPreview()
def GetValues(self):
@@ -273,6 +287,7 @@
values["name"] = self.BlockName.GetValue()
values["width"], values["height"] = self.Block.GetSize()
values["extension"] = self.Inputs.GetValue()
+ values["executionOrder"] = self.ExecutionOrder.GetValue()
return values
def OnTypeTreeItemSelected(self, event):
@@ -311,6 +326,10 @@
self.RefreshPreview()
event.Skip()
+ def OnExecutionOrderChanged(self, event):
+ self.RefreshPreview()
+ event.Skip()
+
def ErasePreview(self):
dc = wx.ClientDC(self.Preview)
dc.Clear()
@@ -327,7 +346,7 @@
else:
blocktype = self.TypeTree.GetItemText(item)
if blocktype:
- self.Block = FBD_Block(self.Preview, blocktype, self.BlockName.GetValue(), extension = self.Inputs.GetValue(), inputs = pydata["inputs"])
+ self.Block = FBD_Block(self.Preview, blocktype, self.BlockName.GetValue(), extension = self.Inputs.GetValue(), inputs = pydata["inputs"], executionOrder = self.ExecutionOrder.GetValue())
width, height = self.MinBlockSize
min_width, min_height = self.Block.GetMinSize()
width, height = max(min_width, width), max(min_height, height)
@@ -352,9 +371,10 @@
[ID_VARIABLEPROPERTIESDIALOG, ID_VARIABLEPROPERTIESDIALOGSPACER,
ID_VARIABLEPROPERTIESDIALOGNAME, ID_VARIABLEPROPERTIESDIALOGCLASS,
ID_VARIABLEPROPERTIESDIALOGPREVIEW, ID_VARIABLEPROPERTIESDIALOGEXPRESSION,
- ID_VARIABLEPROPERTIESDIALOGSTATICTEXT1, ID_VARIABLEPROPERTIESDIALOGSTATICTEXT2,
- ID_VARIABLEPROPERTIESDIALOGSTATICTEXT3, ID_VARIABLEPROPERTIESDIALOGSTATICTEXT4,
-] = [wx.NewId() for _init_ctrls in range(10)]
+ ID_VARIABLEPROPERTIESDIALOGEXECUTIONORDER, ID_VARIABLEPROPERTIESDIALOGSTATICTEXT1,
+ ID_VARIABLEPROPERTIESDIALOGSTATICTEXT2, ID_VARIABLEPROPERTIESDIALOGSTATICTEXT3,
+ ID_VARIABLEPROPERTIESDIALOGSTATICTEXT4, ID_VARIABLEPROPERTIESDIALOGSTATICTEXT5
+] = [wx.NewId() for _init_ctrls in range(12)]
class VariablePropertiesDialog(wx.Dialog):
@@ -389,16 +409,18 @@
def _init_coll_LeftGridSizer_Items(self, parent):
parent.AddWindow(self.staticText1, 0, border=0, flag=wx.GROW)
parent.AddWindow(self.Class, 0, border=0, flag=wx.GROW)
- parent.AddWindow(self.Spacer, 0, border=0, flag=wx.GROW)
parent.AddWindow(self.staticText2, 0, border=0, flag=wx.GROW)
parent.AddWindow(self.Expression, 0, border=0, flag=wx.GROW)
+ parent.AddWindow(self.staticText3, 0, border=0, flag=wx.GROW)
+ parent.AddWindow(self.ExecutionOrder, 0, border=0, flag=wx.GROW)
+ parent.AddWindow(self.Spacer, 0, border=0, flag=wx.GROW)
def _init_coll_LeftGridSizer_Growables(self, parent):
parent.AddGrowableCol(0)
parent.AddGrowableRow(2)
def _init_coll_RightGridSizer_Items(self, parent):
- parent.AddWindow(self.staticText3, 0, border=0, flag=wx.GROW)
+ parent.AddWindow(self.staticText5, 0, border=0, flag=wx.GROW)
parent.AddWindow(self.VariableName, 0, border=0, flag=wx.GROW)
def _init_coll_RightGridSizer_Growables(self, parent):
@@ -409,7 +431,7 @@
self.flexGridSizer1 = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=10)
self.MainSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=3, vgap=5)
self.TopSizer = wx.BoxSizer(wx.HORIZONTAL)
- self.LeftGridSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=5, vgap=5)
+ self.LeftGridSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=7, vgap=5)
self.RightGridSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5)
self._init_coll_flexGridSizer1_Items(self.flexGridSizer1)
@@ -440,11 +462,15 @@
pos=wx.Point(0, 0), size=wx.Size(0, 17), style=0)
self.staticText3 = wx.StaticText(id=ID_VARIABLEPROPERTIESDIALOGSTATICTEXT3,
- label='Name:', name='staticText3', parent=self,
+ label='Execution Order:', name='staticText3', parent=self,
pos=wx.Point(0, 0), size=wx.Size(0, 17), style=0)
self.staticText4 = wx.StaticText(id=ID_VARIABLEPROPERTIESDIALOGSTATICTEXT4,
- label='Preview:', name='staticText4', parent=self,
+ label='Name:', name='staticText4', parent=self,
+ pos=wx.Point(0, 0), size=wx.Size(0, 17), style=0)
+
+ self.staticText5 = wx.StaticText(id=ID_VARIABLEPROPERTIESDIALOGSTATICTEXT5,
+ label='Preview:', name='staticText5', parent=self,
pos=wx.Point(0, 0), size=wx.Size(0, 17), style=0)
self.Class = wx.Choice(id=ID_VARIABLEPROPERTIESDIALOGCLASS,
@@ -462,6 +488,11 @@
size=wx.Size(0, 24), style=0)
self.Bind(wx.EVT_TEXT, self.OnExpressionChanged, id=ID_VARIABLEPROPERTIESDIALOGEXPRESSION)
+ self.ExecutionOrder = wx.SpinCtrl(id=ID_VARIABLEPROPERTIESDIALOGEXECUTIONORDER,
+ name='ExecutionOrder', parent=self, pos=wx.Point(0, 0),
+ size=wx.Size(0, 24), style=wx.SP_ARROW_KEYS, min=0)
+ self.Bind(wx.EVT_SPINCTRL, self.OnExecutionOrderChanged, id=ID_VARIABLEPROPERTIESDIALOGEXECUTIONORDER)
+
self.Spacer = wx.Panel(id=ID_VARIABLEPROPERTIESDIALOGSPACER,
name='Spacer', parent=self, pos=wx.Point(0, 0),
size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL)
@@ -536,6 +567,8 @@
else:
self.Expression.SetValue(value_name)
self.VariableName.Enable(False)
+ if "executionOrder" in values:
+ self.ExecutionOrder.SetValue(values["executionOrder"])
self.RefreshPreview()
def GetValues(self):
@@ -557,6 +590,7 @@
if var_name == values["name"]:
values["value_type"] = value_type
values["width"], values["height"] = self.Variable.GetSize()
+ values["executionOrder"] = self.ExecutionOrder.GetValue()
return values
def OnClassChanged(self, event):
@@ -584,6 +618,10 @@
self.RefreshPreview()
event.Skip()
+ def OnExecutionOrderChanged(self, event):
+ self.RefreshPreview()
+ event.Skip()
+
def RefreshPreview(self):
dc = wx.ClientDC(self.Preview)
dc.Clear()
@@ -598,11 +636,11 @@
type = value_type
classtype = self.Class.GetStringSelection()
if classtype == "Input":
- self.Variable = FBD_Variable(self.Preview, INPUT, name, type)
+ self.Variable = FBD_Variable(self.Preview, INPUT, name, type, executionOrder = self.ExecutionOrder.GetValue())
elif classtype == "Output":
- self.Variable = FBD_Variable(self.Preview, OUTPUT, name, type)
+ self.Variable = FBD_Variable(self.Preview, OUTPUT, name, type, executionOrder = self.ExecutionOrder.GetValue())
elif classtype == "InOut":
- self.Variable = FBD_Variable(self.Preview, INOUT, name, type)
+ self.Variable = FBD_Variable(self.Preview, INOUT, name, type, executionOrder = self.ExecutionOrder.GetValue())
width, height = self.MinVariableSize
min_width, min_height = self.Variable.GetMinSize()
width, height = max(min_width, width), max(min_height, height)