PLCOpenEditor.py
changeset 95 ee66a9a1748b
parent 92 76d5001393df
child 97 28337cd092fd
equal deleted inserted replaced
94:e7f5a251f251 95:ee66a9a1748b
    96  ID_PLCOPENEDITORTOOLBARACTIONBLOCK, ID_PLCOPENEDITORTOOLBARDIVERGENCE,
    96  ID_PLCOPENEDITORTOOLBARACTIONBLOCK, ID_PLCOPENEDITORTOOLBARDIVERGENCE,
    97  ID_PLCOPENEDITORTOOLBARJUMP,
    97  ID_PLCOPENEDITORTOOLBARJUMP,
    98 ] = [wx.NewId() for _init_coll_DefaultToolBar_Items in range(17)]
    98 ] = [wx.NewId() for _init_coll_DefaultToolBar_Items in range(17)]
    99 
    99 
   100 ToolBarItems = {
   100 ToolBarItems = {
   101     "FBD" : [(True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARCOMMENT, "OnCommentTool", "Images/comment.png", "Create a new comment"),
   101     "FBD" : [(True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARCOMMENT, "OnCommentTool", "comment.png", "Create a new comment"),
   102              (True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARVARIABLE, "OnVariableTool", "Images/variable.png", "Create a new variable"),
   102              (True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARVARIABLE, "OnVariableTool", "variable.png", "Create a new variable"),
   103              (True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARBLOCK, "OnBlockTool", "Images/block.png", "Create a new block"),
   103              (True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARBLOCK, "OnBlockTool", "block.png", "Create a new block"),
   104              (True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARCONNECTION, "OnConnectionTool", "Images/connection.png", "Create a new connection"),
   104              (True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARCONNECTION, "OnConnectionTool", "connection.png", "Create a new connection"),
   105              (True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARWIRE, "OnWireTool", "Images/wire.png", "Create a new wire")],
   105              (True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARWIRE, "OnWireTool", "wire.png", "Create a new wire")],
   106     "LD"  : [(True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARCOMMENT, "OnCommentTool", "Images/comment.png", "Create a new comment"),
   106     "LD"  : [(True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARCOMMENT, "OnCommentTool", "comment.png", "Create a new comment"),
   107              (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARPOWERRAIL, "OnPowerRailTool", "Images/powerrail.png", "Create a new power rail"),
   107              (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARPOWERRAIL, "OnPowerRailTool", "powerrail.png", "Create a new power rail"),
   108              (False, DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARRUNG, "OnRungTool", "Images/rung.png", "Create a new rung"),
   108              (False, DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARRUNG, "OnRungTool", "rung.png", "Create a new rung"),
   109              (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARCOIL, "OnCoilTool", "Images/coil.png", "Create a new coil"),
   109              (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARCOIL, "OnCoilTool", "coil.png", "Create a new coil"),
   110              (False, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARCONTACT, "OnContactTool", "Images/contact.png", "Create a new contact"),
   110              (False, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARCONTACT, "OnContactTool", "contact.png", "Create a new contact"),
   111              (False, DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARBRANCH, "OnBranchTool", "Images/branch.png", "Create a new branch"),
   111              (False, DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARBRANCH, "OnBranchTool", "branch.png", "Create a new branch"),
   112              (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARVARIABLE, "OnVariableTool", "Images/variable.png", "Create a new variable"),
   112              (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARVARIABLE, "OnVariableTool", "variable.png", "Create a new variable"),
   113              (False, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARBLOCK, "OnBlockTool", "Images/block.png", "Create a new block"),
   113              (False, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARBLOCK, "OnBlockTool", "block.png", "Create a new block"),
   114              (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARCONNECTION, "OnConnectionTool", "Images/connection.png", "Create a new connection"),
   114              (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARCONNECTION, "OnConnectionTool", "connection.png", "Create a new connection"),
   115              (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARWIRE, "OnWireTool", "Images/wire.png", "Create a new wire")],
   115              (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARWIRE, "OnWireTool", "wire.png", "Create a new wire")],
   116     "SFC" : [(True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARCOMMENT, "OnCommentTool", "Images/comment.png", "Create a new comment"),
   116     "SFC" : [(True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARCOMMENT, "OnCommentTool", "comment.png", "Create a new comment"),
   117              (True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARINITIALSTEP, "OnInitialStepTool", "Images/initial_step.png", "Create a new initial step"),
   117              (True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARINITIALSTEP, "OnInitialStepTool", "initial_step.png", "Create a new initial step"),
   118              (False, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARSTEP, "OnStepTool", "Images/step.png", "Create a new step"),
   118              (False, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARSTEP, "OnStepTool", "step.png", "Create a new step"),
   119              (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARTRANSITION, "OnTransitionTool", "Images/transition.png", "Create a new transition"),
   119              (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARTRANSITION, "OnTransitionTool", "transition.png", "Create a new transition"),
   120              (False, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARACTIONBLOCK, "OnActionBlockTool", "Images/action.png", "Create a new action block"),
   120              (False, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARACTIONBLOCK, "OnActionBlockTool", "action.png", "Create a new action block"),
   121              (False, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARDIVERGENCE, "OnDivergenceTool", "Images/divergence.png", "Create a new divergence"),
   121              (False, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARDIVERGENCE, "OnDivergenceTool", "divergence.png", "Create a new divergence"),
   122              (False, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARJUMP, "OnJumpTool", "Images/jump.png", "Create a new jump"),
   122              (False, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARJUMP, "OnJumpTool", "jump.png", "Create a new jump"),
   123              (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARVARIABLE, "OnVariableTool", "Images/variable.png", "Create a new variable"),
   123              (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARVARIABLE, "OnVariableTool", "variable.png", "Create a new variable"),
   124              (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARBLOCK, "OnBlockTool", "Images/block.png", "Create a new block"),
   124              (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARBLOCK, "OnBlockTool", "block.png", "Create a new block"),
   125              (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARCONNECTION, "OnConnectionTool", "Images/connection.png", "Create a new connection"),
   125              (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARCONNECTION, "OnConnectionTool", "connection.png", "Create a new connection"),
   126              (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARPOWERRAIL, "OnPowerRailTool", "Images/powerrail.png", "Create a new power rail"),
   126              (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARPOWERRAIL, "OnPowerRailTool", "powerrail.png", "Create a new power rail"),
   127              (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARCONTACT, "OnContactTool", "Images/contact.png", "Create a new contact"),
   127              (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARCONTACT, "OnContactTool", "contact.png", "Create a new contact"),
   128              (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARWIRE, "OnWireTool", "Images/wire.png", "Create a new wire")],
   128              (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARWIRE, "OnWireTool", "wire.png", "Create a new wire")],
   129     "ST"  : [],
   129     "ST"  : [],
   130     "IL"  : []
   130     "IL"  : []
   131 }
   131 }
   132 
   132 
   133 class PLCOpenEditor(wx.Frame):
   133 class PLCOpenEditor(wx.Frame):
   284         self._init_coll_EditMenu_Items(self.EditMenu)
   284         self._init_coll_EditMenu_Items(self.EditMenu)
   285         self._init_coll_HelpMenu_Items(self.HelpMenu)
   285         self._init_coll_HelpMenu_Items(self.HelpMenu)
   286         self._init_coll_SFCMenu_Items(self.SFCMenu)
   286         self._init_coll_SFCMenu_Items(self.SFCMenu)
   287         self._init_coll_ConfigMenu_Items(self.ConfigMenu)
   287         self._init_coll_ConfigMenu_Items(self.ConfigMenu)
   288 
   288 
   289     def _init_coll_MainGridSizer_Items(self, parent):
       
   290         parent.AddWindow(self.MainSplitter, 0, border=0, flag=wx.GROW)
       
   291 
       
   292     def _init_coll_EditorGridSizer_Items(self, parent):
   289     def _init_coll_EditorGridSizer_Items(self, parent):
   293         parent.AddWindow(self.ToolBar, 0, border=0, flag=wx.GROW)
   290         parent.AddWindow(self.ToolBar, 0, border=0, flag=wx.GROW)
   294         parent.AddWindow(self.TabsOpened, 0, border=0, flag=wx.GROW)
   291         parent.AddWindow(self.TabsOpened, 0, border=0, flag=wx.GROW)
   295 
   292 
   296     def _init_coll_MainGridSizer_Growables(self, parent):
       
   297         parent.AddGrowableCol(0)
       
   298         parent.AddGrowableRow(0)
       
   299 
       
   300     def _init_coll_EditorGridSizer_Growables(self, parent):
   293     def _init_coll_EditorGridSizer_Growables(self, parent):
   301         parent.AddGrowableCol(0)
   294         parent.AddGrowableCol(0)
   302         parent.AddGrowableRow(1)
   295         parent.AddGrowableRow(1)
   303 
   296 
   304     def _init_sizers(self):
   297     def _init_sizers(self):
   305         self.MainGridSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=1, vgap=0)
   298         if wx.Platform != '__WXMSW__':
   306         self.EditorGridSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=0)
   299             self.EditorGridSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=0)
   307 
   300         
   308         self._init_coll_MainGridSizer_Growables(self.MainGridSizer)
   301             self._init_coll_EditorGridSizer_Growables(self.EditorGridSizer)
   309         self._init_coll_MainGridSizer_Items(self.MainGridSizer)
   302             self._init_coll_EditorGridSizer_Items(self.EditorGridSizer)
   310         self._init_coll_EditorGridSizer_Growables(self.EditorGridSizer)
   303         
   311         self._init_coll_EditorGridSizer_Items(self.EditorGridSizer)
   304             self.EditorPanel.SetSizer(self.EditorGridSizer)
   312         
       
   313         self.SetSizer(self.MainGridSizer)
       
   314         self.EditorPanel.SetSizer(self.EditorGridSizer)
       
   315 
   305 
   316     def _init_ctrls(self, prnt):
   306     def _init_ctrls(self, prnt):
   317         wx.Frame.__init__(self, id=ID_PLCOPENEDITOR, name=u'PLCOpenEditor',
   307         wx.Frame.__init__(self, id=ID_PLCOPENEDITOR, name=u'PLCOpenEditor',
   318               parent=prnt, pos=wx.Point(235, 287), size=wx.Size(1000, 600),
   308               parent=prnt, pos=wx.Point(235, 287), size=wx.Size(1000, 600),
   319               style=wx.DEFAULT_FRAME_STYLE, title=u'PLCOpenEditor')
   309               style=wx.DEFAULT_FRAME_STYLE, title=u'PLCOpenEditor')
   330         self.MainSplitter = wx.SplitterWindow(id=ID_PLCOPENEDITORMAINSPLITTER,
   320         self.MainSplitter = wx.SplitterWindow(id=ID_PLCOPENEDITORMAINSPLITTER,
   331               name='MainSplitter', parent=self, point=wx.Point(0, 0),
   321               name='MainSplitter', parent=self, point=wx.Point(0, 0),
   332               size=wx.Size(0, 0), style=wx.SP_3D)
   322               size=wx.Size(0, 0), style=wx.SP_3D)
   333         self.MainSplitter.SetNeedUpdating(True)
   323         self.MainSplitter.SetNeedUpdating(True)
   334         self.MainSplitter.SetMinimumPaneSize(1)
   324         self.MainSplitter.SetMinimumPaneSize(1)
   335         
       
   336         self.EditorPanel = wx.Panel(id=ID_PLCOPENEDITOREDITORPANEL, 
       
   337               name='TabPanel', parent=self.MainSplitter, pos=wx.Point(0, 0),
       
   338               size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL)
       
   339         
       
   340         self.TabsOpened = wx.Notebook(id=ID_PLCOPENEDITORTABSOPENED,
       
   341               name='TabsOpened', parent=self.EditorPanel, pos=wx.Point(0,
       
   342               0), size=wx.Size(0, 0), style=0)
       
   343         self.TabsOpened.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED,
       
   344               self.OnPouSelectedChanged, id=ID_PLCOPENEDITORTABSOPENED)
       
   345 
       
   346         self.ToolBar = wx.ToolBar(id=ID_PLCOPENEDITORTOOLBAR, name='ToolBar',
       
   347               parent=self.EditorPanel, pos=wx.Point(0, 0), size=wx.Size(0, 40),
       
   348               style=wx.TB_HORIZONTAL|wx.NO_BORDER)
       
   349         self.ToolBar.AddRadioTool(ID_PLCOPENEDITORTOOLBARSELECTION, 
       
   350               wx.Bitmap(os.path.join(CWD, 'Images/select.png')), wx.NullBitmap, "Select an object")
       
   351         self.Bind(wx.EVT_TOOL, self.OnSelectionTool, 
       
   352               id=ID_PLCOPENEDITORTOOLBARSELECTION)
       
   353         
   325         
   354         self.ProjectTree = wx.TreeCtrl(id=ID_PLCOPENEDITORPROJECTTREE,
   326         self.ProjectTree = wx.TreeCtrl(id=ID_PLCOPENEDITORPROJECTTREE,
   355               name='treeCtrl1', parent=self.MainSplitter, pos=wx.Point(0, 0),
   327               name='treeCtrl1', parent=self.MainSplitter, pos=wx.Point(0, 0),
   356               size=wx.Size(-1, -1),
   328               size=wx.Size(-1, -1),
   357               style=wx.TR_HAS_BUTTONS|wx.TR_EDIT_LABELS|wx.TR_SINGLE|wx.SUNKEN_BORDER)
   329               style=wx.TR_HAS_BUTTONS|wx.TR_EDIT_LABELS|wx.TR_SINGLE|wx.SUNKEN_BORDER)
   364               id=ID_PLCOPENEDITORPROJECTTREE)
   336               id=ID_PLCOPENEDITORPROJECTTREE)
   365         self.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.OnProjectTreeItemActivated,
   337         self.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.OnProjectTreeItemActivated,
   366               id=ID_PLCOPENEDITORPROJECTTREE)
   338               id=ID_PLCOPENEDITORPROJECTTREE)
   367         self.Bind(wx.EVT_TREE_SEL_CHANGED, self.OnProjectTreeItemSelected,
   339         self.Bind(wx.EVT_TREE_SEL_CHANGED, self.OnProjectTreeItemSelected,
   368               id=ID_PLCOPENEDITORPROJECTTREE)
   340               id=ID_PLCOPENEDITORPROJECTTREE)
   369         self.MainSplitter.SplitVertically(self.ProjectTree, self.EditorPanel,
   341         
   370               200)
   342         if wx.Platform == '__WXMSW__':
       
   343             self.ToolBar = self.CreateToolBar(wx.TB_HORIZONTAL|wx.TB_FLAT|wx.NO_BORDER, 
       
   344                   ID_PLCOPENEDITORTOOLBAR, 'ToolBar')
       
   345             self.ToolBar.SetToolBitmapSize(wx.Size(25, 25))
       
   346             self.ToolBar.AddRadioTool(ID_PLCOPENEDITORTOOLBARSELECTION, 
       
   347                   wx.Bitmap(os.path.join(CWD, 'Images', 'select.png')), wx.NullBitmap, "Select an object")
       
   348             self.ToolBar.Realize()
       
   349             self.Bind(wx.EVT_TOOL, self.OnSelectionTool, 
       
   350                   id=ID_PLCOPENEDITORTOOLBARSELECTION)
       
   351         
       
   352             self.TabsOpened = wx.Notebook(id=ID_PLCOPENEDITORTABSOPENED,
       
   353                   name='TabsOpened', parent=self.MainSplitter, pos=wx.Point(0,
       
   354                   0), size=wx.Size(0, 0), style=0)
       
   355             self.TabsOpened.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED,
       
   356                   self.OnPouSelectedChanged, id=ID_PLCOPENEDITORTABSOPENED)
       
   357         
       
   358             self.MainSplitter.SplitVertically(self.ProjectTree, self.TabsOpened, 200)
       
   359         
       
   360         else:
       
   361             self.EditorPanel = wx.Panel(id=ID_PLCOPENEDITOREDITORPANEL, 
       
   362                   name='TabPanel', parent=self.MainSplitter, pos=wx.Point(0, 0),
       
   363                   size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL)
       
   364         
       
   365             self.ToolBar = wx.ToolBar(id=ID_PLCOPENEDITORTOOLBAR, name='ToolBar',
       
   366                   parent=self.EditorPanel, pos=wx.Point(0, 0), size=wx.Size(0, 40),
       
   367                   style=wx.TB_HORIZONTAL|wx.NO_BORDER)
       
   368             self.ToolBar.AddRadioTool(ID_PLCOPENEDITORTOOLBARSELECTION, 
       
   369                   wx.Bitmap(os.path.join(CWD, 'Images', 'select.png')), wx.NullBitmap, "Select an object")
       
   370             self.ToolBar.Realize()
       
   371             self.Bind(wx.EVT_TOOL, self.OnSelectionTool, 
       
   372                   id=ID_PLCOPENEDITORTOOLBARSELECTION)
       
   373         
       
   374             self.TabsOpened = wx.Notebook(id=ID_PLCOPENEDITORTABSOPENED,
       
   375                   name='TabsOpened', parent=self.EditorPanel, pos=wx.Point(0,
       
   376                   0), size=wx.Size(0, 0), style=0)
       
   377             self.TabsOpened.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED,
       
   378                   self.OnPouSelectedChanged, id=ID_PLCOPENEDITORTABSOPENED)
       
   379         
       
   380             self.MainSplitter.SplitVertically(self.ProjectTree, self.EditorPanel, 200)
   371         
   381         
   372         self._init_sizers()
   382         self._init_sizers()
   373 
   383 
   374     def __init__(self, parent, controler = None, fileOpen = None):
   384     def __init__(self, parent, controler = None, fileOpen = None):
   375         self.ModeSolo = controler == None
   385         self.ModeSolo = controler == None
   376         self._init_ctrls(parent)
   386         self._init_ctrls(parent)
   377         
   387         
   378         self.TreeImageList = wx.ImageList(16, 16)
   388         if wx.Platform != '__WXMSW__':
   379         for language in LANGUAGES:
   389             self.TreeImageList = wx.ImageList(16, 16)
   380             self.TreeImageList.Add(wx.Bitmap(os.path.join(CWD, 'Images/%s.png'%language)))
   390             for language in LANGUAGES:
   381         self.ProjectTree.SetImageList(self.TreeImageList)
   391                 self.TreeImageList.Add(wx.Bitmap(os.path.join(CWD, 'Images','%s.png'%language)))
       
   392             self.ProjectTree.AssignImageList(self.TreeImageList)
   382         
   393         
   383         if self.ModeSolo:
   394         if self.ModeSolo:
   384             self.Controler = PLCControler()
   395             self.Controler = PLCControler()
   385             if fileOpen:
   396             if fileOpen:
   386                 self.Controler.OpenXMLFile(fileOpen)
   397                 self.Controler.OpenXMLFile(fileOpen)
  1015 
  1026 
  1016     def GenerateTreeBranch(self, root, infos):
  1027     def GenerateTreeBranch(self, root, infos):
  1017         to_delete = []
  1028         to_delete = []
  1018         self.ProjectTree.SetItemText(root, infos["name"])
  1029         self.ProjectTree.SetItemText(root, infos["name"])
  1019         self.ProjectTree.SetPyData(root, infos["type"])
  1030         self.ProjectTree.SetPyData(root, infos["type"])
  1020         if infos["type"] == ITEM_POU:
  1031         if infos["type"] == ITEM_POU and wx.Platform != '__WXMSW__':
  1021             self.ProjectTree.SetItemImage(root, LANGUAGES.index(self.Controler.GetPouBodyType(infos["name"])))
  1032             self.ProjectTree.SetItemImage(root, LANGUAGES.index(self.Controler.GetPouBodyType(infos["name"])))
  1022         item, root_cookie = self.ProjectTree.GetFirstChild(root)
  1033         item, root_cookie = self.ProjectTree.GetFirstChild(root)
  1023         for values in infos["values"]:
  1034         for values in infos["values"]:
  1024             if not item.IsOk():
  1035             if not item.IsOk():
  1025                 item = self.ProjectTree.AppendItem(root, "")
  1036                 item = self.ProjectTree.AppendItem(root, "")
  1045             self.CurrentLanguage = language
  1056             self.CurrentLanguage = language
  1046             self.CurrentToolBar = []
  1057             self.CurrentToolBar = []
  1047             for radio, modes, id, method, picture, help in ToolBarItems[language]:
  1058             for radio, modes, id, method, picture, help in ToolBarItems[language]:
  1048                 if modes & self.DrawingMode:
  1059                 if modes & self.DrawingMode:
  1049                     if radio or self.DrawingMode == FREEDRAWING_MODE:
  1060                     if radio or self.DrawingMode == FREEDRAWING_MODE:
  1050                         self.ToolBar.AddRadioTool(id, wx.Bitmap(os.path.join(CWD, picture)), wx.NullBitmap, help)
  1061                         self.ToolBar.AddRadioTool(id, wx.Bitmap(os.path.join(CWD, "Images", picture)), wx.NullBitmap, help)
  1051                     else:
  1062                     else:
  1052                         self.ToolBar.AddSimpleTool(id, wx.Bitmap(os.path.join(CWD, picture)), help)
  1063                         self.ToolBar.AddSimpleTool(id, wx.Bitmap(os.path.join(CWD, "Images", picture)), help)
  1053                     self.Bind(wx.EVT_TOOL, getattr(self, method), id=id)
  1064                     self.Bind(wx.EVT_TOOL, getattr(self, method), id=id)
  1054                     self.CurrentToolBar.append(id)
  1065                     self.CurrentToolBar.append(id)
       
  1066             self.ToolBar.Realize()
       
  1067         elif not language:
       
  1068             self.ResetToolBar()
       
  1069             self.CurrentLanguage = language
  1055         self.ResetCurrentMode()
  1070         self.ResetCurrentMode()
  1056 
  1071 
  1057     def RefreshTabsOpenedTitles(self):
  1072     def RefreshTabsOpenedTitles(self):
  1058         pous = self.Controler.GetElementsOpenedNames()
  1073         pous = self.Controler.GetElementsOpenedNames()
  1059         for i, pou in enumerate(pous):
  1074         for i, pou in enumerate(pous):