129 (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARWIRE, "OnWireTool", "wire.png", "Create a new wire")], |
129 (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARWIRE, "OnWireTool", "wire.png", "Create a new wire")], |
130 "ST" : [], |
130 "ST" : [], |
131 "IL" : [] |
131 "IL" : [] |
132 } |
132 } |
133 |
133 |
|
134 def AppendMenu(parent, help, id, kind, text): |
|
135 if wx.VERSION >= (2, 6, 0): |
|
136 parent.Append(help=help, id=id, kind=kind, text=text) |
|
137 else: |
|
138 parent.Append(helpString=help, id=id, kind=kind, item=text) |
|
139 |
134 class PLCOpenEditor(wx.Frame): |
140 class PLCOpenEditor(wx.Frame): |
135 _custom_classes = {'wx.SashWindow' : ['Viewer']} |
141 _custom_classes = {'wx.SashWindow' : ['Viewer']} |
136 |
142 |
|
143 if wx.VERSION < (2, 6, 0): |
|
144 def Bind(self, event, function, id = None): |
|
145 if id is not None: |
|
146 event(self, id, function) |
|
147 else: |
|
148 event(self, function) |
|
149 |
137 def _init_coll_EditMenu_Items(self, parent): |
150 def _init_coll_EditMenu_Items(self, parent): |
138 parent.Append(help='', id=ID_PLCOPENEDITOREDITMENUITEMS0, |
151 AppendMenu(parent, help='', id=ID_PLCOPENEDITOREDITMENUITEMS0, |
139 kind=wx.ITEM_NORMAL, text=u'Refresh\tCTRL+R') |
152 kind=wx.ITEM_NORMAL, text=u'Refresh\tCTRL+R') |
140 parent.Append(help='', id=ID_PLCOPENEDITOREDITMENUITEMS1, |
153 AppendMenu(parent, help='', id=ID_PLCOPENEDITOREDITMENUITEMS1, |
141 kind=wx.ITEM_NORMAL, text=u'Undo\tCTRL+Z') |
154 kind=wx.ITEM_NORMAL, text=u'Undo\tCTRL+Z') |
142 parent.Append(help='', id=ID_PLCOPENEDITOREDITMENUITEMS2, |
155 AppendMenu(parent, help='', id=ID_PLCOPENEDITOREDITMENUITEMS2, |
143 kind=wx.ITEM_NORMAL, text=u'Redo\tCTRL+Y') |
156 kind=wx.ITEM_NORMAL, text=u'Redo\tCTRL+Y') |
144 parent.AppendSeparator() |
157 parent.AppendSeparator() |
145 parent.Append(help='', id=ID_PLCOPENEDITOREDITMENUITEMS4, |
158 AppendMenu(parent, help='', id=ID_PLCOPENEDITOREDITMENUITEMS4, |
146 kind=wx.ITEM_NORMAL, text=u'Cut\tCTRL+X') |
159 kind=wx.ITEM_NORMAL, text=u'Cut\tCTRL+X') |
147 parent.Append(help='', id=ID_PLCOPENEDITOREDITMENUITEMS5, |
160 AppendMenu(parent, help='', id=ID_PLCOPENEDITOREDITMENUITEMS5, |
148 kind=wx.ITEM_NORMAL, text=u'Copy\tCTRL+C') |
161 kind=wx.ITEM_NORMAL, text=u'Copy\tCTRL+C') |
149 parent.Append(help='', id=ID_PLCOPENEDITOREDITMENUITEMS6, |
162 AppendMenu(parent, help='', id=ID_PLCOPENEDITOREDITMENUITEMS6, |
150 kind=wx.ITEM_NORMAL, text=u'Paste\tCTRL+V') |
163 kind=wx.ITEM_NORMAL, text=u'Paste\tCTRL+V') |
151 parent.AppendSeparator() |
164 parent.AppendSeparator() |
152 parent.Append(help='', id=ID_PLCOPENEDITOREDITMENUITEMS8, |
165 AppendMenu(parent, help='', id=ID_PLCOPENEDITOREDITMENUITEMS8, |
153 kind=wx.ITEM_NORMAL, text=u'Add POU') |
166 kind=wx.ITEM_NORMAL, text=u'Add POU') |
154 parent.Append(help='', id=ID_PLCOPENEDITOREDITMENUITEMS9, |
167 AppendMenu(parent, help='', id=ID_PLCOPENEDITOREDITMENUITEMS9, |
155 kind=wx.ITEM_NORMAL, text=u'Remove POU') |
168 kind=wx.ITEM_NORMAL, text=u'Remove POU') |
156 parent.AppendSeparator() |
169 parent.AppendSeparator() |
157 parent.Append(help='', id=ID_PLCOPENEDITOREDITMENUITEMS11, |
170 AppendMenu(parent, help='', id=ID_PLCOPENEDITOREDITMENUITEMS11, |
158 kind=wx.ITEM_NORMAL, text=u'Add Configuration') |
171 kind=wx.ITEM_NORMAL, text=u'Add Configuration') |
159 parent.Append(help='', id=ID_PLCOPENEDITOREDITMENUITEMS12, |
172 AppendMenu(parent, help='', id=ID_PLCOPENEDITOREDITMENUITEMS12, |
160 kind=wx.ITEM_NORMAL, text=u'Remove Configuration') |
173 kind=wx.ITEM_NORMAL, text=u'Remove Configuration') |
161 self.Bind(wx.EVT_MENU, self.OnRefreshMenu, |
174 self.Bind(wx.EVT_MENU, self.OnRefreshMenu, |
162 id=ID_PLCOPENEDITOREDITMENUITEMS0) |
175 id=ID_PLCOPENEDITOREDITMENUITEMS0) |
163 self.Bind(wx.EVT_MENU, self.OnUndoMenu, |
176 self.Bind(wx.EVT_MENU, self.OnUndoMenu, |
164 id=ID_PLCOPENEDITOREDITMENUITEMS1) |
177 id=ID_PLCOPENEDITOREDITMENUITEMS1) |
184 parent.Append(menu=self.FileMenu, title=u'File') |
197 parent.Append(menu=self.FileMenu, title=u'File') |
185 parent.Append(menu=self.EditMenu, title=u'Edit') |
198 parent.Append(menu=self.EditMenu, title=u'Edit') |
186 parent.Append(menu=self.HelpMenu, title=u'Help') |
199 parent.Append(menu=self.HelpMenu, title=u'Help') |
187 |
200 |
188 def _init_coll_ConfigMenu_Items(self, parent): |
201 def _init_coll_ConfigMenu_Items(self, parent): |
189 parent.Append(help='', id=ID_PLCOPENEDITORCONFIGMENUITEMS0, |
202 AppendMenu(parent, help='', id=ID_PLCOPENEDITORCONFIGMENUITEMS0, |
190 kind=wx.ITEM_NORMAL, text=u'Add Resource') |
203 kind=wx.ITEM_NORMAL, text=u'Add Resource') |
191 parent.Append(help='', id=ID_PLCOPENEDITORCONFIGMENUITEMS1, |
204 AppendMenu(parent, help='', id=ID_PLCOPENEDITORCONFIGMENUITEMS1, |
192 kind=wx.ITEM_NORMAL, text=u'Remove Resource') |
205 kind=wx.ITEM_NORMAL, text=u'Remove Resource') |
193 self.Bind(wx.EVT_MENU, self.OnAddResourceMenu, |
206 self.Bind(wx.EVT_MENU, self.OnAddResourceMenu, |
194 id=ID_PLCOPENEDITORCONFIGMENUITEMS0) |
207 id=ID_PLCOPENEDITORCONFIGMENUITEMS0) |
195 self.Bind(wx.EVT_MENU, self.OnRemoveResourceMenu, |
208 self.Bind(wx.EVT_MENU, self.OnRemoveResourceMenu, |
196 id=ID_PLCOPENEDITORCONFIGMENUITEMS1) |
209 id=ID_PLCOPENEDITORCONFIGMENUITEMS1) |
197 |
210 |
198 def _init_coll_HelpMenu_Items(self, parent): |
211 def _init_coll_HelpMenu_Items(self, parent): |
199 parent.Append(help='', id=ID_PLCOPENEDITORHELPMENUITEMS0, |
212 AppendMenu(parent, help='', id=ID_PLCOPENEDITORHELPMENUITEMS0, |
200 kind=wx.ITEM_NORMAL, text=u'PLCOpenEditor\tF1') |
213 kind=wx.ITEM_NORMAL, text=u'PLCOpenEditor\tF1') |
201 parent.Append(help='', id=ID_PLCOPENEDITORHELPMENUITEMS1, |
214 AppendMenu(parent, help='', id=ID_PLCOPENEDITORHELPMENUITEMS1, |
202 kind=wx.ITEM_NORMAL, text=u'PLCOpen\tF2') |
215 kind=wx.ITEM_NORMAL, text=u'PLCOpen\tF2') |
203 parent.Append(help='', id=ID_PLCOPENEDITORHELPMENUITEMS2, |
216 AppendMenu(parent, help='', id=ID_PLCOPENEDITORHELPMENUITEMS2, |
204 kind=wx.ITEM_NORMAL, text=u'IEC 61131-3\tF3') |
217 kind=wx.ITEM_NORMAL, text=u'IEC 61131-3\tF3') |
205 if self.ModeSolo: |
218 if self.ModeSolo: |
206 parent.Append(help='', id=ID_PLCOPENEDITORHELPMENUITEMS3, |
219 AppendMenu(parent, help='', id=ID_PLCOPENEDITORHELPMENUITEMS3, |
207 kind=wx.ITEM_NORMAL, text=u'About') |
220 kind=wx.ITEM_NORMAL, text=u'About') |
208 self.Bind(wx.EVT_MENU, self.OnPLCOpenMenu, |
221 self.Bind(wx.EVT_MENU, self.OnPLCOpenMenu, |
209 id=ID_PLCOPENEDITORHELPMENUITEMS1) |
222 id=ID_PLCOPENEDITORHELPMENUITEMS1) |
210 |
223 |
211 def _init_coll_FileMenu_Items(self, parent): |
224 def _init_coll_FileMenu_Items(self, parent): |
212 parent.Append(help='', id=ID_PLCOPENEDITORFILEMENUITEMS0, |
225 AppendMenu(parent, help='', id=ID_PLCOPENEDITORFILEMENUITEMS0, |
213 kind=wx.ITEM_NORMAL, text=u'New\tCTRL+N') |
226 kind=wx.ITEM_NORMAL, text=u'New\tCTRL+N') |
214 parent.Append(help='', id=ID_PLCOPENEDITORFILEMENUITEMS1, |
227 AppendMenu(parent, help='', id=ID_PLCOPENEDITORFILEMENUITEMS1, |
215 kind=wx.ITEM_NORMAL, text=u'Open\tCTRL+O') |
228 kind=wx.ITEM_NORMAL, text=u'Open\tCTRL+O') |
216 parent.Append(help='', id=ID_PLCOPENEDITORFILEMENUITEMS2, |
229 AppendMenu(parent, help='', id=ID_PLCOPENEDITORFILEMENUITEMS2, |
217 kind=wx.ITEM_NORMAL, text=u'Close Tab\tCTRL+W') |
230 kind=wx.ITEM_NORMAL, text=u'Close Tab\tCTRL+W') |
218 parent.Append(help='', id=ID_PLCOPENEDITORFILEMENUITEMS3, |
231 AppendMenu(parent, help='', id=ID_PLCOPENEDITORFILEMENUITEMS3, |
219 kind=wx.ITEM_NORMAL, text=u'Close Project') |
232 kind=wx.ITEM_NORMAL, text=u'Close Project') |
220 parent.AppendSeparator() |
233 parent.AppendSeparator() |
221 parent.Append(help='', id=ID_PLCOPENEDITORFILEMENUITEMS5, |
234 AppendMenu(parent, help='', id=ID_PLCOPENEDITORFILEMENUITEMS5, |
222 kind=wx.ITEM_NORMAL, text=u'Save\tCTRL+S') |
235 kind=wx.ITEM_NORMAL, text=u'Save\tCTRL+S') |
223 parent.Append(help='', id=ID_PLCOPENEDITORFILEMENUITEMS6, |
236 AppendMenu(parent, help='', id=ID_PLCOPENEDITORFILEMENUITEMS6, |
224 kind=wx.ITEM_NORMAL, text=u'Save As...\tCTRL+SHIFT+S') |
237 kind=wx.ITEM_NORMAL, text=u'Save As...\tCTRL+SHIFT+S') |
225 parent.Append(help='', id=ID_PLCOPENEDITORFILEMENUITEMS7, |
238 AppendMenu(parent, help='', id=ID_PLCOPENEDITORFILEMENUITEMS7, |
226 kind=wx.ITEM_NORMAL, text=u'Generate Program\tCTRL+G') |
239 kind=wx.ITEM_NORMAL, text=u'Generate Program\tCTRL+G') |
227 parent.AppendSeparator() |
240 parent.AppendSeparator() |
228 parent.Append(help='', id=ID_PLCOPENEDITORFILEMENUITEMS9, |
241 AppendMenu(parent, help='', id=ID_PLCOPENEDITORFILEMENUITEMS9, |
229 kind=wx.ITEM_NORMAL, text=u'Properties') |
242 kind=wx.ITEM_NORMAL, text=u'Properties') |
230 parent.AppendSeparator() |
243 parent.AppendSeparator() |
231 parent.Append(help='', id=ID_PLCOPENEDITORFILEMENUITEMS11, |
244 AppendMenu(parent, help='', id=ID_PLCOPENEDITORFILEMENUITEMS11, |
232 kind=wx.ITEM_NORMAL, text=u'Quit\tCTRL+Q') |
245 kind=wx.ITEM_NORMAL, text=u'Quit\tCTRL+Q') |
233 self.Bind(wx.EVT_MENU, self.OnNewProjectMenu, |
246 self.Bind(wx.EVT_MENU, self.OnNewProjectMenu, |
234 id=ID_PLCOPENEDITORFILEMENUITEMS0) |
247 id=ID_PLCOPENEDITORFILEMENUITEMS0) |
235 self.Bind(wx.EVT_MENU, self.OnOpenProjectMenu, |
248 self.Bind(wx.EVT_MENU, self.OnOpenProjectMenu, |
236 id=ID_PLCOPENEDITORFILEMENUITEMS1) |
249 id=ID_PLCOPENEDITORFILEMENUITEMS1) |
248 id=ID_PLCOPENEDITORFILEMENUITEMS9) |
261 id=ID_PLCOPENEDITORFILEMENUITEMS9) |
249 self.Bind(wx.EVT_MENU, self.OnQuitMenu, |
262 self.Bind(wx.EVT_MENU, self.OnQuitMenu, |
250 id=ID_PLCOPENEDITORFILEMENUITEMS11) |
263 id=ID_PLCOPENEDITORFILEMENUITEMS11) |
251 |
264 |
252 def _init_coll_SFCMenu_Items(self, parent): |
265 def _init_coll_SFCMenu_Items(self, parent): |
253 parent.Append(help='', id=ID_PLCOPENEDITORSFCMENUITEMS0, |
266 AppendMenu(parent, help='', id=ID_PLCOPENEDITORSFCMENUITEMS0, |
254 kind=wx.ITEM_NORMAL, text=u'Add Transition') |
267 kind=wx.ITEM_NORMAL, text=u'Add Transition') |
255 parent.Append(help='', id=ID_PLCOPENEDITORSFCMENUITEMS1, |
268 AppendMenu(parent, help='', id=ID_PLCOPENEDITORSFCMENUITEMS1, |
256 kind=wx.ITEM_NORMAL, text=u'Add Action') |
269 kind=wx.ITEM_NORMAL, text=u'Add Action') |
257 parent.Append(help='', id=ID_PLCOPENEDITORSFCMENUITEMS2, |
270 AppendMenu(parent, help='', id=ID_PLCOPENEDITORSFCMENUITEMS2, |
258 kind=wx.ITEM_NORMAL, text=u'Remove Transition') |
271 kind=wx.ITEM_NORMAL, text=u'Remove Transition') |
259 parent.Append(help='', id=ID_PLCOPENEDITORSFCMENUITEMS3, |
272 AppendMenu(parent, help='', id=ID_PLCOPENEDITORSFCMENUITEMS3, |
260 kind=wx.ITEM_NORMAL, text=u'Remove Action') |
273 kind=wx.ITEM_NORMAL, text=u'Remove Action') |
261 self.Bind(wx.EVT_MENU, self.OnAddPouTransitionMenu, |
274 self.Bind(wx.EVT_MENU, self.OnAddPouTransitionMenu, |
262 id=ID_PLCOPENEDITORSFCMENUITEMS0) |
275 id=ID_PLCOPENEDITORSFCMENUITEMS0) |
263 self.Bind(wx.EVT_MENU, self.OnAddPouActionMenu, |
276 self.Bind(wx.EVT_MENU, self.OnAddPouActionMenu, |
264 id=ID_PLCOPENEDITORSFCMENUITEMS1) |
277 id=ID_PLCOPENEDITORSFCMENUITEMS1) |
308 |
321 |
309 self.ProjectTree = wx.TreeCtrl(id=ID_PLCOPENEDITORPROJECTTREE, |
322 self.ProjectTree = wx.TreeCtrl(id=ID_PLCOPENEDITORPROJECTTREE, |
310 name='treeCtrl1', parent=self.MainSplitter, pos=wx.Point(0, 0), |
323 name='treeCtrl1', parent=self.MainSplitter, pos=wx.Point(0, 0), |
311 size=wx.Size(-1, -1), |
324 size=wx.Size(-1, -1), |
312 style=wx.TR_HAS_BUTTONS|wx.TR_EDIT_LABELS|wx.TR_SINGLE|wx.SUNKEN_BORDER) |
325 style=wx.TR_HAS_BUTTONS|wx.TR_EDIT_LABELS|wx.TR_SINGLE|wx.SUNKEN_BORDER) |
313 self.ProjectTree.Bind(wx.EVT_RIGHT_UP, self.OnProjectTreeRightUp) |
326 if wx.VERSION >= (2, 6, 0): |
|
327 self.ProjectTree.Bind(wx.EVT_RIGHT_UP, self.OnProjectTreeRightUp) |
|
328 else: |
|
329 wx.EVT_RIGHT_UP(self.ProjectTree, self.OnProjectTreeRightUp) |
314 self.Bind(wx.EVT_TREE_BEGIN_DRAG, self.OnProjectTreeBeginDrag, |
330 self.Bind(wx.EVT_TREE_BEGIN_DRAG, self.OnProjectTreeBeginDrag, |
315 id=ID_PLCOPENEDITORPROJECTTREE) |
331 id=ID_PLCOPENEDITORPROJECTTREE) |
316 self.Bind(wx.EVT_TREE_BEGIN_LABEL_EDIT, self.OnProjectTreeItemBeginEdit, |
332 self.Bind(wx.EVT_TREE_BEGIN_LABEL_EDIT, self.OnProjectTreeItemBeginEdit, |
317 id=ID_PLCOPENEDITORPROJECTTREE) |
333 id=ID_PLCOPENEDITORPROJECTTREE) |
318 self.Bind(wx.EVT_TREE_END_LABEL_EDIT, self.OnProjectTreeItemEndEdit, |
334 self.Bind(wx.EVT_TREE_END_LABEL_EDIT, self.OnProjectTreeItemEndEdit, |
332 id=ID_PLCOPENEDITORTOOLBARSELECTION) |
348 id=ID_PLCOPENEDITORTOOLBARSELECTION) |
333 |
349 |
334 self.TabsOpened = wx.Notebook(id=ID_PLCOPENEDITORTABSOPENED, |
350 self.TabsOpened = wx.Notebook(id=ID_PLCOPENEDITORTABSOPENED, |
335 name='TabsOpened', parent=self.MainSplitter, pos=wx.Point(0, |
351 name='TabsOpened', parent=self.MainSplitter, pos=wx.Point(0, |
336 0), size=wx.Size(0, 0), style=0) |
352 0), size=wx.Size(0, 0), style=0) |
337 self.TabsOpened.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED, |
353 if wx.VERSION >= (2, 6, 0): |
338 self.OnPouSelectedChanged, id=ID_PLCOPENEDITORTABSOPENED) |
354 self.TabsOpened.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED, |
339 |
355 self.OnPouSelectedChanged, id=ID_PLCOPENEDITORTABSOPENED) |
|
356 else: |
|
357 wx.EVT_NOTEBOOK_PAGE_CHANGED(self.TabsOpened, ID_PLCOPENEDITORTABSOPENED, |
|
358 self.OnPouSelectedChanged) |
340 self.MainSplitter.SplitVertically(self.ProjectTree, self.TabsOpened, 200) |
359 self.MainSplitter.SplitVertically(self.ProjectTree, self.TabsOpened, 200) |
341 |
360 |
342 def __init__(self, parent, controler = None, fileOpen = None): |
361 def __init__(self, parent, controler = None, fileOpen = None): |
343 self.ModeSolo = controler == None |
362 self.ModeSolo = controler == None |
344 self._init_ctrls(parent) |
363 self._init_ctrls(parent) |
379 |
406 |
380 def RefreshFileMenu(self): |
407 def RefreshFileMenu(self): |
381 if self.FileMenu: |
408 if self.FileMenu: |
382 if self.Controler.HasOpenedProject(): |
409 if self.Controler.HasOpenedProject(): |
383 if self.TabsOpened.GetPageCount() > 0: |
410 if self.TabsOpened.GetPageCount() > 0: |
384 self.FileMenu.FindItemByPosition(2).Enable(True) |
411 self.FileMenu.Enable(ID_PLCOPENEDITORFILEMENUITEMS2, True) |
385 else: |
412 else: |
386 self.FileMenu.FindItemByPosition(2).Enable(False) |
413 self.FileMenu.Enable(ID_PLCOPENEDITORFILEMENUITEMS2, False) |
387 self.FileMenu.FindItemByPosition(3).Enable(True) |
414 self.FileMenu.Enable(ID_PLCOPENEDITORFILEMENUITEMS3, True) |
388 self.FileMenu.FindItemByPosition(5).Enable(True) |
415 self.FileMenu.Enable(ID_PLCOPENEDITORFILEMENUITEMS5, True) |
389 self.FileMenu.FindItemByPosition(6).Enable(True) |
416 self.FileMenu.Enable(ID_PLCOPENEDITORFILEMENUITEMS6, True) |
390 self.FileMenu.FindItemByPosition(7).Enable(True) |
417 self.FileMenu.Enable(ID_PLCOPENEDITORFILEMENUITEMS7, True) |
391 self.FileMenu.FindItemByPosition(9).Enable(True) |
418 self.FileMenu.Enable(ID_PLCOPENEDITORFILEMENUITEMS9, True) |
392 else: |
419 else: |
393 self.FileMenu.FindItemByPosition(2).Enable(False) |
420 self.FileMenu.Enable(ID_PLCOPENEDITORFILEMENUITEMS2, False) |
394 self.FileMenu.FindItemByPosition(3).Enable(False) |
421 self.FileMenu.Enable(ID_PLCOPENEDITORFILEMENUITEMS3, False) |
395 self.FileMenu.FindItemByPosition(5).Enable(False) |
422 self.FileMenu.Enable(ID_PLCOPENEDITORFILEMENUITEMS5, False) |
396 self.FileMenu.FindItemByPosition(6).Enable(False) |
423 self.FileMenu.Enable(ID_PLCOPENEDITORFILEMENUITEMS6, False) |
397 self.FileMenu.FindItemByPosition(7).Enable(False) |
424 self.FileMenu.Enable(ID_PLCOPENEDITORFILEMENUITEMS7, False) |
398 self.FileMenu.FindItemByPosition(9).Enable(False) |
425 self.FileMenu.Enable(ID_PLCOPENEDITORFILEMENUITEMS9, False) |
399 |
426 |
400 def RefreshEditMenu(self): |
427 def RefreshEditMenu(self): |
401 if self.EditMenu: |
428 if self.EditMenu: |
402 if self.Controler.HasOpenedProject(): |
429 if self.Controler.HasOpenedProject(): |
403 undo, redo = self.Controler.GetBufferState() |
430 undo, redo = self.Controler.GetBufferState() |
406 else: |
433 else: |
407 self.EditMenu.Enable(ID_PLCOPENEDITOREDITMENUITEMS1, False) |
434 self.EditMenu.Enable(ID_PLCOPENEDITOREDITMENUITEMS1, False) |
408 self.EditMenu.Enable(ID_PLCOPENEDITOREDITMENUITEMS2, False) |
435 self.EditMenu.Enable(ID_PLCOPENEDITOREDITMENUITEMS2, False) |
409 if self.Controler.HasOpenedProject(): |
436 if self.Controler.HasOpenedProject(): |
410 if self.TabsOpened.GetPageCount() > 0: |
437 if self.TabsOpened.GetPageCount() > 0: |
411 self.EditMenu.FindItemByPosition(0).Enable(True) |
438 self.EditMenu.Enable(ID_PLCOPENEDITOREDITMENUITEMS0, True) |
412 else: |
439 else: |
413 self.EditMenu.FindItemByPosition(0).Enable(False) |
440 self.EditMenu.Enable(ID_PLCOPENEDITOREDITMENUITEMS0, False) |
414 self.EditMenu.FindItemByPosition(8).Enable(True) |
441 self.EditMenu.Enable(ID_PLCOPENEDITOREDITMENUITEMS8, True) |
415 self.EditMenu.FindItemByPosition(9).Enable(True) |
442 self.EditMenu.Enable(ID_PLCOPENEDITOREDITMENUITEMS9, True) |
416 else: |
443 else: |
417 self.EditMenu.FindItemByPosition(0).Enable(False) |
444 self.EditMenu.Enable(ID_PLCOPENEDITOREDITMENUITEMS0, False) |
418 self.EditMenu.FindItemByPosition(8).Enable(False) |
445 self.EditMenu.Enable(ID_PLCOPENEDITOREDITMENUITEMS8, False) |
419 self.EditMenu.FindItemByPosition(9).Enable(False) |
446 self.EditMenu.Enable(ID_PLCOPENEDITOREDITMENUITEMS9, False) |
420 bodytype = self.Controler.GetCurrentElementEditingBodyType() |
447 bodytype = self.Controler.GetCurrentElementEditingBodyType() |
421 if bodytype in ["IL","ST"]: |
448 self.EditMenu.Enable(ID_PLCOPENEDITOREDITMENUITEMS4, True) |
422 self.EditMenu.FindItemByPosition(4).Enable(True) |
449 self.EditMenu.Enable(ID_PLCOPENEDITOREDITMENUITEMS5, True) |
423 self.EditMenu.FindItemByPosition(5).Enable(True) |
450 if self.CopyBuffer is not None: |
424 self.EditMenu.FindItemByPosition(6).Enable(True) |
451 self.EditMenu.Enable(ID_PLCOPENEDITOREDITMENUITEMS6, True) |
425 else: |
452 else: |
426 self.EditMenu.FindItemByPosition(4).Enable(False) |
453 self.EditMenu.Enable(ID_PLCOPENEDITOREDITMENUITEMS6, False) |
427 self.EditMenu.FindItemByPosition(5).Enable(False) |
|
428 self.EditMenu.FindItemByPosition(6).Enable(False) |
|
429 |
454 |
430 def RefreshEditor(self): |
455 def RefreshEditor(self): |
431 selected = self.TabsOpened.GetSelection() |
456 selected = self.TabsOpened.GetSelection() |
432 if selected != -1: |
457 if selected != -1: |
433 self.TabsOpened.GetPage(selected).RefreshView() |
458 self.TabsOpened.GetPage(selected).RefreshView() |
959 if elementtype == ITEM_CONFIGURATION and len(names) == 1: |
987 if elementtype == ITEM_CONFIGURATION and len(names) == 1: |
960 if not onlyopened: |
988 if not onlyopened: |
961 idx = self.Controler.OpenConfigurationEditing(*names) |
989 idx = self.Controler.OpenConfigurationEditing(*names) |
962 if idx is not None: |
990 if idx is not None: |
963 new_window = PouEditorPanel(self.TabsOpened, self, self.Controler, "config", config_name = names[0]) |
991 new_window = PouEditorPanel(self.TabsOpened, self, self.Controler, "config", config_name = names[0]) |
|
992 new_window.SetIndex(idx) |
964 self.TabsOpened.AddPage(new_window, "") |
993 self.TabsOpened.AddPage(new_window, "") |
965 if idx is None: |
994 if idx is None: |
966 idx = self.Controler.ChangeConfigurationEditing(*names) |
995 idx = self.Controler.ChangeConfigurationEditing(*names) |
967 elif elementtype == ITEM_RESOURCE and len(names) == 2: |
996 elif elementtype == ITEM_RESOURCE and len(names) == 2: |
968 if not onlyopened: |
997 if not onlyopened: |
969 idx = self.Controler.OpenConfigurationResourceEditing(*names) |
998 idx = self.Controler.OpenConfigurationResourceEditing(*names) |
970 if idx is not None: |
999 if idx is not None: |
971 new_window = PouEditorPanel(self.TabsOpened, self, self.Controler, "resource", config_name = names[0], resource_name = names[1]) |
1000 new_window = PouEditorPanel(self.TabsOpened, self, self.Controler, "resource", config_name = names[0], resource_name = names[1]) |
|
1001 new_window.SetIndex(idx) |
972 self.TabsOpened.AddPage(new_window, "") |
1002 self.TabsOpened.AddPage(new_window, "") |
973 if idx is None: |
1003 if idx is None: |
974 idx = self.Controler.ChangeConfigurationResourceEditing(*names) |
1004 idx = self.Controler.ChangeConfigurationResourceEditing(*names) |
975 elif elementtype == ITEM_POU and len(names) == 1: |
1005 elif elementtype == ITEM_POU and len(names) == 1: |
976 if not onlyopened: |
1006 if not onlyopened: |
977 idx = self.Controler.OpenPouEditing(*names) |
1007 idx = self.Controler.OpenPouEditing(*names) |
978 if idx != None: |
1008 if idx != None: |
979 new_window = PouEditorPanel(self.TabsOpened, self, self.Controler, self.Controler.GetPouType(names[0]), pou_name = names[0]) |
1009 new_window = PouEditorPanel(self.TabsOpened, self, self.Controler, self.Controler.GetPouType(names[0]), pou_name = names[0]) |
|
1010 new_window.SetIndex(idx) |
980 self.TabsOpened.AddPage(new_window, "") |
1011 self.TabsOpened.AddPage(new_window, "") |
981 if idx is None: |
1012 if idx is None: |
982 idx = self.Controler.ChangePouEditing(*names) |
1013 idx = self.Controler.ChangePouEditing(*names) |
983 elif elementtype == ITEM_TRANSITION and len(names) == 2: |
1014 elif elementtype == ITEM_TRANSITION and len(names) == 2: |
984 if not onlyopened: |
1015 if not onlyopened: |
985 idx = self.Controler.OpenPouTransitionEditing(*names) |
1016 idx = self.Controler.OpenPouTransitionEditing(*names) |
986 if idx is not None: |
1017 if idx is not None: |
987 new_window = PouEditorPanel(self.TabsOpened, self, self.Controler, "transition", pou_name = names[0], transition_name = names[1]) |
1018 new_window = PouEditorPanel(self.TabsOpened, self, self.Controler, "transition", pou_name = names[0], transition_name = names[1]) |
|
1019 new_window.SetIndex(idx) |
988 self.TabsOpened.AddPage(new_window, "") |
1020 self.TabsOpened.AddPage(new_window, "") |
989 if idx is None: |
1021 if idx is None: |
990 idx = self.Controler.ChangePouTransitionEditing(*names) |
1022 idx = self.Controler.ChangePouTransitionEditing(*names) |
991 elif elementtype == ITEM_ACTION and len(names) == 2: |
1023 elif elementtype == ITEM_ACTION and len(names) == 2: |
992 if not onlyopened: |
1024 if not onlyopened: |
993 idx = self.Controler.OpenPouActionEditing(*names) |
1025 idx = self.Controler.OpenPouActionEditing(*names) |
994 if idx is not None: |
1026 if idx is not None: |
995 new_window = PouEditorPanel(self.TabsOpened, self, self.Controler, "action", pou_name = names[0], action_name = names[1]) |
1027 new_window = PouEditorPanel(self.TabsOpened, self, self.Controler, "action", pou_name = names[0], action_name = names[1]) |
|
1028 new_window.SetIndex(idx) |
996 self.TabsOpened.AddPage(new_window, "") |
1029 self.TabsOpened.AddPage(new_window, "") |
997 if idx is None: |
1030 if idx is None: |
998 idx = self.Controler.ChangePouActionEditing(*names) |
1031 idx = self.Controler.ChangePouActionEditing(*names) |
999 if idx != None: |
1032 if idx != None: |
1000 old_selected = self.TabsOpened.GetSelection() |
1033 old_selected = self.TabsOpened.GetSelection() |
1001 if old_selected >= 0: |
1034 if old_selected >= 0: |
1002 self.TabsOpened.GetPage(old_selected).ResetBuffer() |
1035 self.TabsOpened.GetPage(old_selected).ResetBuffer() |
1003 self.TabsOpened.SetSelection(idx) |
1036 for i in xrange(self.TabsOpened.GetPageCount()): |
1004 window = self.TabsOpened.GetPage(idx) |
1037 window = self.TabsOpened.GetPage(i) |
1005 window.RefreshView() |
1038 if window.GetIndex() == idx: |
1006 self.RefreshTabsOpenedTitles() |
1039 self.TabsOpened.SetSelection(i) |
1007 self.RefreshFileMenu() |
1040 window.RefreshView() |
1008 self.RefreshEditMenu() |
1041 self.RefreshTabsOpenedTitles() |
1009 self.RefreshToolBar() |
1042 self.RefreshFileMenu() |
|
1043 self.RefreshEditMenu() |
|
1044 self.RefreshToolBar() |
|
1045 return |
1010 |
1046 |
1011 def OnProjectTreeRightUp(self, event): |
1047 def OnProjectTreeRightUp(self, event): |
|
1048 cursor_pos = event.GetPosition() |
1012 selected = self.ProjectTree.GetSelection() |
1049 selected = self.ProjectTree.GetSelection() |
1013 if self.ProjectTree.GetPyData(selected) == ITEM_POU: |
1050 if self.ProjectTree.GetPyData(selected) == ITEM_POU: |
1014 name = self.ProjectTree.GetItemText(selected) |
1051 name = self.ProjectTree.GetItemText(selected) |
1015 if self.Controler.GetPouBodyType(name) == "SFC": |
1052 if self.Controler.GetPouBodyType(name) == "SFC": |
1016 self.PopupMenu(self.SFCMenu) |
1053 self.PopupMenuXY(self.SFCMenu, cursor_pos.x, cursor_pos.y) |
1017 elif self.ProjectTree.GetPyData(selected) == ITEM_CONFIGURATION: |
1054 elif self.ProjectTree.GetPyData(selected) == ITEM_CONFIGURATION: |
1018 self.PopupMenu(self.ConfigMenu) |
1055 self.PopupMenu(self.ConfigMenu) |
1019 event.Skip() |
1056 event.Skip() |
1020 |
1057 |
1021 def RefreshProjectTree(self): |
1058 def RefreshProjectTree(self): |
1320 ID_PROJECTDIALOGSTATICTEXT5, ID_PROJECTDIALOGSTATICTEXT6, |
1363 ID_PROJECTDIALOGSTATICTEXT5, ID_PROJECTDIALOGSTATICTEXT6, |
1321 ID_PROJECTDIALOGSTATICTEXT7, |
1364 ID_PROJECTDIALOGSTATICTEXT7, |
1322 ] = [wx.NewId() for _init_ctrls in range(15)] |
1365 ] = [wx.NewId() for _init_ctrls in range(15)] |
1323 |
1366 |
1324 class ProjectDialog(wx.Dialog): |
1367 class ProjectDialog(wx.Dialog): |
|
1368 if wx.VERSION < (2, 6, 0): |
|
1369 def Bind(self, event, function, id = None): |
|
1370 if id is not None: |
|
1371 event(self, id, function) |
|
1372 else: |
|
1373 event(self, function) |
|
1374 |
1325 def _init_coll_flexGridSizer1_Items(self, parent): |
1375 def _init_coll_flexGridSizer1_Items(self, parent): |
1326 parent.AddSizer(self.MainSizer, 0, border=20, flag=wx.GROW|wx.TOP|wx.LEFT|wx.RIGHT) |
1376 parent.AddSizer(self.MainSizer, 0, border=20, flag=wx.GROW|wx.TOP|wx.LEFT|wx.RIGHT) |
1327 parent.AddSizer(self.ButtonSizer, 0, border=20, flag=wx.ALIGN_RIGHT|wx.BOTTOM|wx.LEFT|wx.RIGHT) |
1377 parent.AddSizer(self.ButtonSizer, 0, border=20, flag=wx.ALIGN_RIGHT|wx.BOTTOM|wx.LEFT|wx.RIGHT) |
1328 |
1378 |
1329 def _init_coll_flexGridSizer1_Growables(self, parent): |
1379 def _init_coll_flexGridSizer1_Growables(self, parent): |
1496 ID_POUDIALOGPOUTYPE, ID_POUDIALOGLANGUAGE, ID_POUDIALOGSTATICTEXT1, |
1546 ID_POUDIALOGPOUTYPE, ID_POUDIALOGLANGUAGE, ID_POUDIALOGSTATICTEXT1, |
1497 ID_POUDIALOGSTATICTEXT2, ID_POUDIALOGSTATICTEXT3, |
1547 ID_POUDIALOGSTATICTEXT2, ID_POUDIALOGSTATICTEXT3, |
1498 ] = [wx.NewId() for _init_ctrls in range(7)] |
1548 ] = [wx.NewId() for _init_ctrls in range(7)] |
1499 |
1549 |
1500 class PouDialog(wx.Dialog): |
1550 class PouDialog(wx.Dialog): |
|
1551 if wx.VERSION < (2, 6, 0): |
|
1552 def Bind(self, event, function, id = None): |
|
1553 if id is not None: |
|
1554 event(self, id, function) |
|
1555 else: |
|
1556 event(self, function) |
|
1557 |
1501 def _init_coll_flexGridSizer1_Items(self, parent): |
1558 def _init_coll_flexGridSizer1_Items(self, parent): |
1502 parent.AddSizer(self.MainSizer, 0, border=20, flag=wx.GROW|wx.TOP|wx.LEFT|wx.RIGHT) |
1559 parent.AddSizer(self.MainSizer, 0, border=20, flag=wx.GROW|wx.TOP|wx.LEFT|wx.RIGHT) |
1503 parent.AddSizer(self.ButtonSizer, 0, border=20, flag=wx.ALIGN_RIGHT|wx.BOTTOM|wx.LEFT|wx.RIGHT) |
1560 parent.AddSizer(self.ButtonSizer, 0, border=20, flag=wx.ALIGN_RIGHT|wx.BOTTOM|wx.LEFT|wx.RIGHT) |
1504 |
1561 |
1505 def _init_coll_flexGridSizer1_Growables(self, parent): |
1562 def _init_coll_flexGridSizer1_Growables(self, parent): |
1661 ID_POUTRANSITIONDIALOGLANGUAGE, ID_POUTRANSITIONDIALOGSTATICTEXT1, |
1718 ID_POUTRANSITIONDIALOGLANGUAGE, ID_POUTRANSITIONDIALOGSTATICTEXT1, |
1662 ID_POUTRANSITIONDIALOGSTATICTEXT2, |
1719 ID_POUTRANSITIONDIALOGSTATICTEXT2, |
1663 ] = [wx.NewId() for _init_ctrls in range(5)] |
1720 ] = [wx.NewId() for _init_ctrls in range(5)] |
1664 |
1721 |
1665 class PouTransitionDialog(wx.Dialog): |
1722 class PouTransitionDialog(wx.Dialog): |
|
1723 if wx.VERSION < (2, 6, 0): |
|
1724 def Bind(self, event, function, id = None): |
|
1725 if id is not None: |
|
1726 event(self, id, function) |
|
1727 else: |
|
1728 event(self, function) |
|
1729 |
1666 def _init_coll_flexGridSizer1_Items(self, parent): |
1730 def _init_coll_flexGridSizer1_Items(self, parent): |
1667 parent.AddSizer(self.MainSizer, 0, border=20, flag=wx.GROW|wx.TOP|wx.LEFT|wx.RIGHT) |
1731 parent.AddSizer(self.MainSizer, 0, border=20, flag=wx.GROW|wx.TOP|wx.LEFT|wx.RIGHT) |
1668 parent.AddSizer(self.ButtonSizer, 0, border=20, flag=wx.ALIGN_RIGHT|wx.BOTTOM|wx.LEFT|wx.RIGHT) |
1732 parent.AddSizer(self.ButtonSizer, 0, border=20, flag=wx.ALIGN_RIGHT|wx.BOTTOM|wx.LEFT|wx.RIGHT) |
1669 |
1733 |
1670 def _init_coll_flexGridSizer1_Growables(self, parent): |
1734 def _init_coll_flexGridSizer1_Growables(self, parent): |
1793 ID_POUACTIONDIALOGLANGUAGE, ID_POUACTIONDIALOGSTATICTEXT1, |
1857 ID_POUACTIONDIALOGLANGUAGE, ID_POUACTIONDIALOGSTATICTEXT1, |
1794 ID_POUACTIONDIALOGSTATICTEXT2, |
1858 ID_POUACTIONDIALOGSTATICTEXT2, |
1795 ] = [wx.NewId() for _init_ctrls in range(5)] |
1859 ] = [wx.NewId() for _init_ctrls in range(5)] |
1796 |
1860 |
1797 class PouActionDialog(wx.Dialog): |
1861 class PouActionDialog(wx.Dialog): |
|
1862 if wx.VERSION < (2, 6, 0): |
|
1863 def Bind(self, event, function, id = None): |
|
1864 if id is not None: |
|
1865 event(self, id, function) |
|
1866 else: |
|
1867 event(self, function) |
|
1868 |
1798 def _init_coll_flexGridSizer1_Items(self, parent): |
1869 def _init_coll_flexGridSizer1_Items(self, parent): |
1799 parent.AddSizer(self.MainSizer, 0, border=20, flag=wx.GROW|wx.TOP|wx.LEFT|wx.RIGHT) |
1870 parent.AddSizer(self.MainSizer, 0, border=20, flag=wx.GROW|wx.TOP|wx.LEFT|wx.RIGHT) |
1800 parent.AddSizer(self.ButtonSizer, 0, border=20, flag=wx.ALIGN_RIGHT|wx.BOTTOM|wx.LEFT|wx.RIGHT) |
1871 parent.AddSizer(self.ButtonSizer, 0, border=20, flag=wx.ALIGN_RIGHT|wx.BOTTOM|wx.LEFT|wx.RIGHT) |
1801 |
1872 |
1802 def _init_coll_flexGridSizer1_Growables(self, parent): |
1873 def _init_coll_flexGridSizer1_Growables(self, parent): |
1971 #------------------------------------------------------------------------------- |
2049 #------------------------------------------------------------------------------- |
1972 # Resource Name Dialog |
2050 # Resource Name Dialog |
1973 #------------------------------------------------------------------------------- |
2051 #------------------------------------------------------------------------------- |
1974 |
2052 |
1975 class ResourceNameDialog(wx.TextEntryDialog): |
2053 class ResourceNameDialog(wx.TextEntryDialog): |
|
2054 |
|
2055 if wx.VERSION < (2, 6, 0): |
|
2056 def Bind(self, event, function, id = None): |
|
2057 if id is not None: |
|
2058 event(self, id, function) |
|
2059 else: |
|
2060 event(self, function) |
1976 |
2061 |
1977 def __init__(self, parent, message, caption = "Please enter resource name", defaultValue = "", |
2062 def __init__(self, parent, message, caption = "Please enter resource name", defaultValue = "", |
1978 style = wx.OK|wx.CANCEL|wx.CENTRE, pos = wx.DefaultPosition): |
2063 style = wx.OK|wx.CANCEL|wx.CENTRE, pos = wx.DefaultPosition): |
1979 wx.TextEntryDialog.__init__(self, parent, message, caption, defaultValue, style, pos) |
2064 wx.TextEntryDialog.__init__(self, parent, message, caption, defaultValue, style, pos) |
1980 |
2065 |
2250 ID_POUEDITORPANELDOWNBUTTON, ID_POUEDITORPANELSTATICTEXT1, |
2335 ID_POUEDITORPANELDOWNBUTTON, ID_POUEDITORPANELSTATICTEXT1, |
2251 ID_POUEDITORPANELSTATICTEXT2, ID_POUEDITORPANELSTATICTEXT3, |
2336 ID_POUEDITORPANELSTATICTEXT2, ID_POUEDITORPANELSTATICTEXT3, |
2252 ] = [wx.NewId() for _init_ctrls in range(12)] |
2337 ] = [wx.NewId() for _init_ctrls in range(12)] |
2253 |
2338 |
2254 class PouEditorPanel(wx.SplitterWindow): |
2339 class PouEditorPanel(wx.SplitterWindow): |
|
2340 |
|
2341 if wx.VERSION < (2, 6, 0): |
|
2342 def Bind(self, event, function, id = None): |
|
2343 if id is not None: |
|
2344 event(self, id, function) |
|
2345 else: |
|
2346 event(self, function) |
|
2347 |
2255 def _init_coll_VariablePanelSizer_Items(self, parent): |
2348 def _init_coll_VariablePanelSizer_Items(self, parent): |
2256 parent.AddWindow(self.VariablesGrid, 0, border=0, flag=wx.GROW) |
2349 parent.AddWindow(self.VariablesGrid, 0, border=0, flag=wx.GROW) |
2257 parent.AddSizer(self.ControlPanelSizer, 0, border=0, flag=wx.GROW) |
2350 parent.AddSizer(self.ControlPanelSizer, 0, border=0, flag=wx.GROW) |
2258 |
2351 |
2259 def _init_coll_VariablePanelSizer_Growables(self, parent): |
2352 def _init_coll_VariablePanelSizer_Growables(self, parent): |
2363 'Sans')) |
2456 'Sans')) |
2364 self.VariablesGrid.SetLabelFont(wx.Font(10, 77, wx.NORMAL, wx.NORMAL, |
2457 self.VariablesGrid.SetLabelFont(wx.Font(10, 77, wx.NORMAL, wx.NORMAL, |
2365 False, 'Sans')) |
2458 False, 'Sans')) |
2366 self.VariablesGrid.SetSelectionBackground(wx.WHITE) |
2459 self.VariablesGrid.SetSelectionBackground(wx.WHITE) |
2367 self.VariablesGrid.SetSelectionForeground(wx.BLACK) |
2460 self.VariablesGrid.SetSelectionForeground(wx.BLACK) |
2368 self.VariablesGrid.Bind(wx.grid.EVT_GRID_CELL_CHANGE, self.OnVariablesGridCellChange) |
2461 if wx.VERSION >= (2, 6, 0): |
2369 self.VariablesGrid.Bind(wx.grid.EVT_GRID_SELECT_CELL, self.OnVariablesGridSelectCell) |
2462 self.VariablesGrid.Bind(wx.grid.EVT_GRID_CELL_CHANGE, self.OnVariablesGridCellChange) |
2370 self.VariablesGrid.Bind(wx.grid.EVT_GRID_CELL_LEFT_CLICK, self.OnVariablesGridCellLeftClick) |
2463 self.VariablesGrid.Bind(wx.grid.EVT_GRID_SELECT_CELL, self.OnVariablesGridSelectCell) |
2371 self.VariablesGrid.Bind(wx.grid.EVT_GRID_EDITOR_SHOWN, self.OnVariablesGridEditorShown) |
2464 self.VariablesGrid.Bind(wx.grid.EVT_GRID_CELL_LEFT_CLICK, self.OnVariablesGridCellLeftClick) |
|
2465 self.VariablesGrid.Bind(wx.grid.EVT_GRID_EDITOR_SHOWN, self.OnVariablesGridEditorShown) |
|
2466 else: |
|
2467 wx.grid.EVT_GRID_CELL_CHANGE(self.VariablesGrid, self.OnVariablesGridCellChange) |
|
2468 wx.grid.EVT_GRID_SELECT_CELL(self.VariablesGrid, self.OnVariablesGridSelectCell) |
|
2469 wx.grid.EVT_GRID_CELL_LEFT_CLICK(self.VariablesGrid, self.OnVariablesGridCellLeftClick) |
|
2470 wx.grid.EVT_GRID_EDITOR_SHOWN(self.VariablesGrid, self.OnVariablesGridEditorShown) |
2372 self.VariablesGrid.SetDropTarget(VariableDropTarget(self)) |
2471 self.VariablesGrid.SetDropTarget(VariableDropTarget(self)) |
2373 |
2472 |
2374 self.AddButton = wx.Button(id=ID_POUEDITORPANELADDBUTTON, label='Add', |
2473 self.AddButton = wx.Button(id=ID_POUEDITORPANELADDBUTTON, label='Add', |
2375 name='AddButton', parent=self.VariablePanel, pos=wx.Point(345, 340), |
2474 name='AddButton', parent=self.VariablePanel, pos=wx.Point(345, 340), |
2376 size=wx.Size(72, 32), style=0) |
2475 size=wx.Size(72, 32), style=0) |
2666 if self.Table.GetColLabelValue(col) == "Type": |
2771 if self.Table.GetColLabelValue(col) == "Type": |
2667 type_menu = wx.Menu(title='') |
2772 type_menu = wx.Menu(title='') |
2668 base_menu = wx.Menu(title='') |
2773 base_menu = wx.Menu(title='') |
2669 for base_type in self.TypeList: |
2774 for base_type in self.TypeList: |
2670 new_id = wx.NewId() |
2775 new_id = wx.NewId() |
2671 base_menu.Append(help='', id=new_id, kind=wx.ITEM_NORMAL, text=base_type) |
2776 AppendMenu(base_menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=base_type) |
2672 self.Bind(wx.EVT_MENU, self.GetVariableTypeFunction(base_type), id=new_id) |
2777 self.Bind(wx.EVT_MENU, self.GetVariableTypeFunction(base_type), id=new_id) |
2673 type_menu.AppendMenu(-1, "Base Types", base_menu, '') |
2778 type_menu.AppendMenu(wx.NewId(), "Base Types", base_menu) |
2674 functionblock_menu = wx.Menu(title='') |
2779 functionblock_menu = wx.Menu(title='') |
2675 for functionblock_type in self.Controler.GetFunctionBlockTypes(): |
2780 for functionblock_type in self.Controler.GetFunctionBlockTypes(): |
2676 new_id = wx.NewId() |
2781 new_id = wx.NewId() |
2677 functionblock_menu.Append(help='', id=new_id, kind=wx.ITEM_NORMAL, text=functionblock_type) |
2782 AppendMenu(functionblock_menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=functionblock_type) |
2678 self.Bind(wx.EVT_MENU, self.GetVariableTypeFunction(functionblock_type), id=new_id) |
2783 self.Bind(wx.EVT_MENU, self.GetVariableTypeFunction(functionblock_type), id=new_id) |
2679 type_menu.AppendMenu(-1, "Function Block Types", functionblock_menu, '') |
2784 type_menu.AppendMenu(wx.NewId(), "Function Block Types", functionblock_menu) |
2680 rect = self.VariablesGrid.BlockToDeviceRect((row, col), (row, col)) |
2785 rect = self.VariablesGrid.BlockToDeviceRect((row, col), (row, col)) |
2681 self.VariablesGrid.PopupMenuXY(type_menu, rect.x + rect.width, rect.y + self.VariablesGrid.GetColLabelSize()) |
2786 self.VariablesGrid.PopupMenuXY(type_menu, rect.x + rect.width, rect.y + self.VariablesGrid.GetColLabelSize()) |
2682 event.Veto() |
2787 event.Veto() |
2683 else: |
2788 else: |
2684 event.Skip() |
2789 event.Skip() |