IDEFrame.py
changeset 1240 ceaf9b4c0f86
parent 1233 5e6d0969bb5d
child 1243 e77c95c4c7fc
equal deleted inserted replaced
1239:d1f6ea56555d 1240:ceaf9b4c0f86
   527         self.ProjectTree.SetBackgroundBitmap(GetBitmap("custom_tree_background"),
   527         self.ProjectTree.SetBackgroundBitmap(GetBitmap("custom_tree_background"),
   528                                              wx.ALIGN_RIGHT|wx.ALIGN_BOTTOM)
   528                                              wx.ALIGN_RIGHT|wx.ALIGN_BOTTOM)
   529         add_menu = wx.Menu()
   529         add_menu = wx.Menu()
   530         self._init_coll_AddMenu_Items(add_menu)
   530         self._init_coll_AddMenu_Items(add_menu)
   531         self.ProjectTree.SetAddMenu(add_menu)
   531         self.ProjectTree.SetAddMenu(add_menu)
   532         if wx.Platform == '__WXMSW__':
   532         self.Bind(wx.EVT_TREE_ITEM_RIGHT_CLICK, self.OnProjectTreeRightUp,
   533             self.Bind(wx.EVT_TREE_ITEM_RIGHT_CLICK, self.OnProjectTreeRightUp,
   533               id=ID_PLCOPENEDITORPROJECTTREE)
   534                   id=ID_PLCOPENEDITORPROJECTTREE)
   534         self.ProjectTree.Bind(wx.EVT_LEFT_UP, self.OnProjectTreeLeftUp)
   535             self.Bind(wx.EVT_TREE_SEL_CHANGED, self.OnProjectTreeItemSelected,
   535         self.Bind(wx.EVT_TREE_SEL_CHANGING, self.OnProjectTreeItemChanging,
   536                   id=ID_PLCOPENEDITORPROJECTTREE)
   536               id=ID_PLCOPENEDITORPROJECTTREE)
   537         else:
       
   538             self.ProjectTree.Bind(wx.EVT_RIGHT_UP, self.OnProjectTreeRightUp)
       
   539             self.ProjectTree.Bind(wx.EVT_LEFT_UP, self.OnProjectTreeLeftUp)
       
   540             self.Bind(wx.EVT_TREE_SEL_CHANGING, self.OnProjectTreeItemChanging,
       
   541                   id=ID_PLCOPENEDITORPROJECTTREE)
       
   542         self.Bind(wx.EVT_TREE_BEGIN_DRAG, self.OnProjectTreeBeginDrag,
   537         self.Bind(wx.EVT_TREE_BEGIN_DRAG, self.OnProjectTreeBeginDrag,
   543               id=ID_PLCOPENEDITORPROJECTTREE)
   538               id=ID_PLCOPENEDITORPROJECTTREE)
   544         self.Bind(wx.EVT_TREE_BEGIN_LABEL_EDIT, self.OnProjectTreeItemBeginEdit,
   539         self.Bind(wx.EVT_TREE_BEGIN_LABEL_EDIT, self.OnProjectTreeItemBeginEdit,
   545               id=ID_PLCOPENEDITORPROJECTTREE)
   540               id=ID_PLCOPENEDITORPROJECTTREE)
   546         self.Bind(wx.EVT_TREE_END_LABEL_EDIT, self.OnProjectTreeItemEndEdit,
   541         self.Bind(wx.EVT_TREE_END_LABEL_EDIT, self.OnProjectTreeItemEndEdit,
  1529                 found = self.RecursiveProjectTreeItemSelection(item, items)
  1524                 found = self.RecursiveProjectTreeItemSelection(item, items)
  1530             item, root_cookie = self.ProjectTree.GetNextChild(root, root_cookie)
  1525             item, root_cookie = self.ProjectTree.GetNextChild(root, root_cookie)
  1531         return found
  1526         return found
  1532 
  1527 
  1533     def OnProjectTreeBeginDrag(self, event):
  1528     def OnProjectTreeBeginDrag(self, event):
  1534         if wx.Platform == '__WXMSW__':
       
  1535             self.SelectedItem = event.GetItem()
       
  1536         if self.SelectedItem is not None and self.ProjectTree.GetPyData(self.SelectedItem)["type"] == ITEM_POU:
  1529         if self.SelectedItem is not None and self.ProjectTree.GetPyData(self.SelectedItem)["type"] == ITEM_POU:
  1537             block_name = self.ProjectTree.GetItemText(self.SelectedItem)
  1530             block_name = self.ProjectTree.GetItemText(self.SelectedItem)
  1538             block_type = self.Controler.GetPouType(block_name)
  1531             block_type = self.Controler.GetPouType(block_name)
  1539             if block_type != "program":
  1532             if block_type != "program":
  1540                 data = wx.TextDataObject(str((block_name, block_type, "")))
  1533                 data = wx.TextDataObject(str((block_name, block_type, "")))
  1687         
  1680         
  1688     def OnProjectTreeLeftUp(self, event):
  1681     def OnProjectTreeLeftUp(self, event):
  1689         if self.SelectedItem is not None:
  1682         if self.SelectedItem is not None:
  1690             self.ProjectTree.SelectItem(self.SelectedItem)
  1683             self.ProjectTree.SelectItem(self.SelectedItem)
  1691             self.ProjectTreeItemSelect(self.SelectedItem)
  1684             self.ProjectTreeItemSelect(self.SelectedItem)
  1692             wx.CallAfter(self.ResetSelectedItem)
  1685             self.ResetSelectedItem()
  1693         event.Skip()
  1686         event.Skip()
  1694     
  1687     
  1695     def OnProjectTreeMotion(self, event):
  1688     def OnProjectTreeMotion(self, event):
  1696         if not event.Dragging():
  1689         if not event.Dragging():
  1697             pt = wx.Point(event.GetX(), event.GetY())
  1690             pt = wx.Point(event.GetX(), event.GetY())
  1720                         "%s : %s : %s" % (
  1713                         "%s : %s : %s" % (
  1721                             block_type, bodytype, item_infos["name"]))
  1714                             block_type, bodytype, item_infos["name"]))
  1722             elif self.LastToolTipItem is not None:
  1715             elif self.LastToolTipItem is not None:
  1723                 self.ProjectTree.SetToolTip(None)
  1716                 self.ProjectTree.SetToolTip(None)
  1724                 self.LastToolTipItem = None
  1717                 self.LastToolTipItem = None
  1725         event.Skip()
       
  1726     
       
  1727     def OnProjectTreeItemSelected(self, event):
       
  1728         self.ProjectTreeItemSelect(event.GetItem())
       
  1729         event.Skip()
  1718         event.Skip()
  1730     
  1719     
  1731     def OnProjectTreeItemChanging(self, event):
  1720     def OnProjectTreeItemChanging(self, event):
  1732         if self.ProjectTree.GetPyData(event.GetItem())["type"] not in ITEMS_UNEDITABLE and self.SelectedItem is None:
  1721         if self.ProjectTree.GetPyData(event.GetItem())["type"] not in ITEMS_UNEDITABLE and self.SelectedItem is None:
  1733             self.SelectedItem = event.GetItem()
  1722             self.SelectedItem = event.GetItem()
  1802                         window.SetFocus()
  1791                         window.SetFocus()
  1803                 self.RefreshPageTitles()
  1792                 self.RefreshPageTitles()
  1804             return new_window
  1793             return new_window
  1805     
  1794     
  1806     def OnProjectTreeRightUp(self, event):
  1795     def OnProjectTreeRightUp(self, event):
  1807         if wx.Platform == '__WXMSW__':
  1796         item = event.GetItem()
  1808             item = event.GetItem()
       
  1809         else:
       
  1810             item, flags = self.ProjectTree.HitTest(wx.Point(event.GetX(), event.GetY()))
       
  1811         self.ProjectTree.SelectItem(item)
  1797         self.ProjectTree.SelectItem(item)
  1812         self.ProjectTreeItemSelect(item)
  1798         self.ProjectTreeItemSelect(item)
  1813         name = self.ProjectTree.GetItemText(item)
  1799         name = self.ProjectTree.GetItemText(item)
  1814         item_infos = self.ProjectTree.GetPyData(item)
  1800         item_infos = self.ProjectTree.GetPyData(item)
  1815         
  1801         
  1934         
  1920         
  1935         if menu is not None:
  1921         if menu is not None:
  1936             self.PopupMenu(menu)
  1922             self.PopupMenu(menu)
  1937             menu.Destroy()
  1923             menu.Destroy()
  1938         
  1924         
       
  1925         self.ResetSelectedItem()
       
  1926         
  1939         event.Skip()
  1927         event.Skip()
  1940 
  1928 
  1941 
  1929 
  1942 #-------------------------------------------------------------------------------
  1930 #-------------------------------------------------------------------------------
  1943 #                         Instances Tree Management Functions
  1931 #                         Instances Tree Management Functions