/[libvob]/libvob/vob/buoy/buoymanager.py
ViewVC logotype

Diff of /libvob/vob/buoy/buoymanager.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.30 by benja, Mon Jun 9 21:48:53 2003 UTC revision 1.31 by mudyc, Thu Jun 19 11:58:40 2003 UTC
# Line 69  class SingleFocusManager(BuoyLinkListene Line 69  class SingleFocusManager(BuoyLinkListene
69          """          """
70          self.mainNode = mainNode          self.mainNode = mainNode
71          self.connectors = connectors          self.connectors = connectors
72      def getMainNode(self): return self.mainNode      def getMainNode(self):
73            return self.mainNode
74      def _nadir(self, cs):      def _nadir(self, cs):
75          n =  self.vs.coords.nadirUnitSq(cs, self.nadirCS)          n =  self.vs.coords.nadirUnitSq(cs, self.nadirCS)
76          self.vs.matcher.add(cs, n, "NADIR")          self.vs.matcher.add(cs, n, "NADIR")
# Line 201  class SingleFocusManager(BuoyLinkListene Line 202  class SingleFocusManager(BuoyLinkListene
202                    
203    
204  class MultiBuoyManager:  class MultiBuoyManager:
205      def __init__(self, mainNodes, connectors, geometer, context):      def __init__(self, mainNodes, connectors, geometer, eventHandler=None, context=None):
206          self.singles = [          self.singles = [
207              SingleFocusManager(i, connectors) for i in mainNodes]              SingleFocusManager(i, connectors) for i in mainNodes]
208          self.connectors = connectors          self.connectors = connectors
209          self.geometer = geometer          self.geometer = geometer
210          self.replaceScene = None          self.replaceScene = None
211            self.events = eventHandler
212          self.context = context          self.context = context
         self.context.initMainNodes(len(mainNodes))  
         self.lastIndex = 0  
213      def key(self, key):      def key(self, key):
214          if self.geometer.key(key):          if self.geometer.key(key):
215              return              return
216          index = self.lastIndex          if self.events != None:
217          self.context.setMainNodeIndex(index)              self.events.key(self, key)
         self.singles[index].mainNode.keystroke(key)  
         vob.AbstractUpdateManager.chg()  
         pass  
218      def getVs(self):      def getVs(self):
219          return self.vs;          return self.vs;
220        def getSingles(self):
221            return self.singles
222      def scene(self, vs):      def scene(self, vs):
223          if self.replaceScene:          if self.replaceScene:
224              sc = self.replaceScene              sc = self.replaceScene
# Line 238  class MultiBuoyManager: Line 236  class MultiBuoyManager:
236    
237          geoms = self.geometer.place(vs)          geoms = self.geometer.place(vs)
238    
239          self.context.renderContext(vs, 0)          if self.context != None:
240                self.context.renderContext(vs, 0)
241          for i in range(0, len(self.singles)):          for i in range(0, len(self.singles)):
242              self.context.setMainNodeIndex(i)              self.context.setMainNodeIndex(i)
243              self.singles[i].drawscene(vs,              self.singles[i].drawscene(vs,
# Line 247  class MultiBuoyManager: Line 246  class MultiBuoyManager:
246                      nadirCS)                      nadirCS)
247    
248      def mouse(self, ev):      def mouse(self, ev):
249            if self.events != None:
250                self.events.mouse(self, ev)
251                return
252            
253          if hasattr(self.geometer, 'mouse') and \          if hasattr(self.geometer, 'mouse') and \
254                 self.geometer.mouse(ev, self.vs):                 self.geometer.mouse(ev, self.vs):
255              return              return
# Line 265  class MultiBuoyManager: Line 268  class MultiBuoyManager:
268                  single.followLink(link)                  single.followLink(link)
269                  vob.AbstractUpdateManager.chg()                  vob.AbstractUpdateManager.chg()
270                  return                  return
271    
272          # Fall through if no link - need main node          # Fall through if no link - need main node
273          for i in range(0, len(self.singles)):          for i in range(0, len(self.singles)):
274              if self.singles[i].mainNode.mouseClickHit(ev, self.vs, None):              if self.singles[i].mainNode.mouseClickHit(ev, self.vs, None):
# Line 276  class MultiBuoyManager: Line 280  class MultiBuoyManager:
280                  vob.AbstractUpdateManager.chg()                  vob.AbstractUpdateManager.chg()
281                  return                  return
282    
         # ...then see context  
         if ev.getID() != ev.MOUSE_CLICKED: return  
         self.context.setMainNodeIndex(self.lastIndex)  
         planes = []  
         for single in self.singles:  
             planes.append(single.getMainNode())  
         #newPlanes = jarray.zeros(len(self.singles), 'c')  
         newPlanes = self.context.doMouse(ev, self.vs, planes)  
         if newPlanes != None and planes != newPlanes:  
             for i in range(0, len(newPlanes)):  
                 self.singles[i] = SingleFocusManager(  
                     newPlanes[i],  
                     self.connectors)  
             vob.AbstractUpdateManager.chg()  
         #else:  
         #    self.context.setMainNodeIndex(self.lastIndex)  
         #    if self.singles[self.lastIndex].mainNode.mouse(ev, self.vs, w):  
         #        self.replaceScene = self.vs  
         #        vob.AbstractUpdateManager.setNoAnimation()  
         #    vob.AbstractUpdateManager.chg()  
   
   
   
283  vob.impl.gl.GLScreen.dbg = 0  vob.impl.gl.GLScreen.dbg = 0
284    
285  class SingleGeometer:  class SingleGeometer:

Legend:
Removed from v.1.30  
changed lines
  Added in v.1.31

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26