Viewer.py
changeset 3 86ccc89d7b0b
parent 2 93bc4c2cf376
child 5 f8652b073e84
equal deleted inserted replaced
2:93bc4c2cf376 3:86ccc89d7b0b
   118         self.DrawGrid = True
   118         self.DrawGrid = True
   119         self.current_id = 0    
   119         self.current_id = 0    
   120         
   120         
   121         # Initialize Viewer mode to Selection mode
   121         # Initialize Viewer mode to Selection mode
   122         self.Mode = MODE_SELECTION
   122         self.Mode = MODE_SELECTION
       
   123         self.SavedMode = False
   123         
   124         
   124         self.Parent = window
   125         self.Parent = window
   125         self.Controler = controler
   126         self.Controler = controler
   126         
   127         
   127         # Link Viewer event to corresponding methods
   128         # Link Viewer event to corresponding methods
   153         self.Elements = []
   154         self.Elements = []
   154         self.SelectedElement = None
   155         self.SelectedElement = None
   155     
   156     
   156     # Changes Viewer mode
   157     # Changes Viewer mode
   157     def SetMode(self, mode):
   158     def SetMode(self, mode):
   158         self.Mode = mode
   159         if self.Mode != mode or mode == MODE_SELECTION:
       
   160             self.Mode = mode
       
   161             self.SavedMode = False
       
   162         else:
       
   163             self.SavedMode = True
   159         # Reset selection
   164         # Reset selection
   160         if self.SelectedElement:
   165         if self.Mode != MODE_SELECTION and self.SelectedElement:
   161             self.SelectedElement.SetSelected(False)
   166             self.SelectedElement.SetSelected(False)
   162             self.SelectedElement = None
   167             self.SelectedElement = None
   163             self.Refresh()
   168             self.Refresh()
   164 
   169 
   165 #-------------------------------------------------------------------------------
   170 #-------------------------------------------------------------------------------
   461         for element in self.Elements:
   466         for element in self.Elements:
   462             if element.HitTest(pos) or element.TestHandle(pos) != (0, 0):
   467             if element.HitTest(pos) or element.TestHandle(pos) != (0, 0):
   463                 return element
   468                 return element
   464         return None
   469         return None
   465     
   470     
   466     def FindBlockConnector(self, pos):
   471     def FindBlockConnector(self, pos, exclude = True):
   467         for block in self.Blocks:
   472         for block in self.Blocks:
   468             result = block.TestConnector(pos)
   473             result = block.TestConnector(pos, exclude)
   469             if result:
   474             if result:
   470                 return result
   475                 return result
   471         return None
   476         return None
   472     
   477     
   473     def FindElementById(self, id):
   478     def FindElementById(self, id):