43 wxID_FBDVIEWERCONTEXTUALMENUITEMS5, wxID_FBDVIEWERCONTEXTUALMENUITEMS6, |
43 wxID_FBDVIEWERCONTEXTUALMENUITEMS5, wxID_FBDVIEWERCONTEXTUALMENUITEMS6, |
44 wxID_FBDVIEWERCONTEXTUALMENUITEMS8, wxID_FBDVIEWERCONTEXTUALMENUITEMS9, |
44 wxID_FBDVIEWERCONTEXTUALMENUITEMS8, wxID_FBDVIEWERCONTEXTUALMENUITEMS9, |
45 wxID_FBDVIEWERCONTEXTUALMENUITEMS11, |
45 wxID_FBDVIEWERCONTEXTUALMENUITEMS11, |
46 ] = [wx.NewId() for _init_coll_ContextualMenu_Items in range(9)] |
46 ] = [wx.NewId() for _init_coll_ContextualMenu_Items in range(9)] |
47 |
47 |
|
48 |
|
49 class ViewerDropTarget(wx.TextDropTarget): |
|
50 |
|
51 def __init__(self, parent): |
|
52 wx.TextDropTarget.__init__(self) |
|
53 self.Parent = parent |
|
54 |
|
55 def OnDropText(self, x, y, data): |
|
56 values = eval(data) |
|
57 if values[1] in ["function", "functionBlock", "program"]: |
|
58 id = self.Parent.GetNewId() |
|
59 block = FBD_Block(self.Parent, values[0], "", id) |
|
60 block.SetPosition(x, y) |
|
61 width, height = block.GetMinSize() |
|
62 block.SetSize(width, height) |
|
63 self.Parent.AddBlock(block) |
|
64 self.Parent.Controler.AddCurrentElementEditingBlock(id) |
|
65 self.Parent.RefreshBlockModel(block) |
|
66 self.Parent.RefreshScrollBars() |
|
67 self.Parent.Refresh() |
|
68 else: |
|
69 id = self.Parent.GetNewId() |
|
70 if values[1] == "Output": |
|
71 var_type = OUTPUT |
|
72 elif values[1] == "InOut": |
|
73 var_type = INPUT |
|
74 else: |
|
75 var_type = INPUT |
|
76 variable = FBD_Variable(self.Parent, var_type, values[0], values[2], id) |
|
77 variable.SetPosition(x, y) |
|
78 width, height = variable.GetMinSize() |
|
79 variable.SetSize(width, height) |
|
80 self.Parent.AddBlock(variable) |
|
81 self.Parent.Controler.AddCurrentElementEditingVariable(id, var_type) |
|
82 self.Parent.RefreshVariableModel(variable) |
|
83 self.Parent.RefreshScrollBars() |
|
84 self.Parent.Refresh() |
|
85 |
48 |
86 |
49 """ |
87 """ |
50 Class that implements a Viewer based on a wxScrolledWindow for drawing and |
88 Class that implements a Viewer based on a wxScrolledWindow for drawing and |
51 manipulating graphic elements |
89 manipulating graphic elements |
52 """ |
90 """ |
124 self.SavedMode = False |
162 self.SavedMode = False |
125 |
163 |
126 self.Parent = window |
164 self.Parent = window |
127 self.Controler = controler |
165 self.Controler = controler |
128 |
166 |
|
167 self.SetDropTarget(ViewerDropTarget(self)) |
|
168 |
129 # Link Viewer event to corresponding methods |
169 # Link Viewer event to corresponding methods |
130 EVT_PAINT(self, self.OnPaint) |
170 EVT_PAINT(self, self.OnPaint) |
131 EVT_LEFT_DOWN(self, self.OnViewerLeftDown) |
171 EVT_LEFT_DOWN(self, self.OnViewerLeftDown) |
132 EVT_LEFT_UP(self, self.OnViewerLeftUp) |
172 EVT_LEFT_UP(self, self.OnViewerLeftUp) |
133 EVT_LEFT_DCLICK(self, self.OnViewerLeftDClick) |
173 EVT_LEFT_DCLICK(self, self.OnViewerLeftDClick) |