浏览代码

AnimPanel Had no way of telling objects that it had been closed

Abhishek Nath 16 年之前
父节点
当前提交
518176f53f
共有 1 个文件被更改,包括 11 次插入4 次删除
  1. 11 4
      direct/src/tkpanels/AnimPanel.py

+ 11 - 4
direct/src/tkpanels/AnimPanel.py

@@ -56,7 +56,9 @@ class AnimPanel(AppShell):
 
 
         # Execute option callbacks
-        self.initialiseoptions(AnimPanel)
+        self.initialiseoptions(AnimPanel)                
+        # We need to know when AnimPanel is closed
+        self.destroyCallBack = None
 
     def createInterface(self):
         # Handle to the toplevels interior
@@ -176,7 +178,7 @@ class AnimPanel(AppShell):
 
         controlFrame.pack(fill = X)
 
-    def createActorControls(self):
+    def createActorControls(self): 
         # Create a frame to hold all the actor controls
         self.actorFrame = Frame(self.interior())
         # Create a control for each actor
@@ -332,11 +334,16 @@ class AnimPanel(AppShell):
 
     def resetAllToEnd(self):
         for actorControl in self.actorControlList:
-            actorControl.resetToEnd()            
+            actorControl.resetToEnd()                        
+                        
+    def setDestroyCallBack(self, callBack):    
+        self.destroyCallBack = callBack
                         
     def destroy(self):    
         # First clean up 
-        taskMgr.remove(self.id + '_UpdateTask')
+        taskMgr.remove(self.id + '_UpdateTask')        
+        self.destroyCallBack()        
+        self.destroyCallBack = None
         AppShell.destroy(self)    
 
 class ActorControl(Pmw.MegaWidget):