From 03e8cbc717aeb9546adb754d9c3a85cda0ff0a1e Mon Sep 17 00:00:00 2001 From: Mark Mine Date: Tue, 11 Nov 2003 01:57:00 +0000 Subject: [PATCH] Add ability to flush cached children to support dynamic trees --- direct/src/tkwidgets/SceneGraphExplorer.py | 4 ++-- direct/src/tkwidgets/Tree.py | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/direct/src/tkwidgets/SceneGraphExplorer.py b/direct/src/tkwidgets/SceneGraphExplorer.py index ddaa145f0c..a76d72e9f7 100644 --- a/direct/src/tkwidgets/SceneGraphExplorer.py +++ b/direct/src/tkwidgets/SceneGraphExplorer.py @@ -85,9 +85,9 @@ class SceneGraphExplorer(Pmw.MegaWidget, PandaObject): # Check keywords and initialise options based on input values. self.initialiseoptions(SceneGraphExplorer) - def update(self): + def update(self, fUseCachedChildren = 1): """ Refresh scene graph explorer """ - self._node.update() + self._node.update(fUseCachedChildren) def mouse2Down(self, event): self._width = 1.0 * self._canvas.winfo_width() diff --git a/direct/src/tkwidgets/Tree.py b/direct/src/tkwidgets/Tree.py index 0be1508dd8..98dfb2849f 100644 --- a/direct/src/tkwidgets/Tree.py +++ b/direct/src/tkwidgets/Tree.py @@ -181,20 +181,20 @@ class TreeNode: else: return self - def update(self): + def update(self, fUseCachedChildren = 1): if self.parent: - self.parent.update() + self.parent.update(fUseCachedChildren) else: oldcursor = self.canvas['cursor'] self.canvas['cursor'] = "watch" self.canvas.update() self.canvas.delete(ALL) # XXX could be more subtle - self.draw(7, 2) + self.draw(7, 2, fUseCachedChildren) x0, y0, x1, y1 = self.canvas.bbox(ALL) self.canvas.configure(scrollregion=(0, 0, x1, y1)) self.canvas['cursor'] = oldcursor - def draw(self, x, y): + def draw(self, x, y, fUseCachedChildren = 1): # XXX This hard-codes too many geometry constants! self.x, self.y = x, y self.drawicon() @@ -209,7 +209,7 @@ class TreeNode: self.kidKeys = [] for item in sublist: key = item.GetKey() - if self.children.has_key(key): + if fUseCachedChildren and self.children.has_key(key): child = self.children[key] else: child = TreeNode(self.canvas, self, item, self.menuList) @@ -226,7 +226,7 @@ class TreeNode: child = self.children[key] cylast = cy self.canvas.create_line(x+9, cy+7, cx, cy+7, fill="gray50") - cy = child.draw(cx, cy) + cy = child.draw(cx, cy, fUseCachedChildren) if child.item.IsExpandable(): if child.state == 'expanded': iconname = "minusnode"