def draw(self, thing): """Draws the top-level Thing.""" drawn = thing.draw(self, Point([2, 2]), flip=1) # configure the scroll region self.canvas.scroll_config() return drawn
def measure(self, t, **options): """Finds the bounding box of the list of words. Draws the text, measures them, and then deletes them. """ pos = Point([0, 0]) tags = 'temp' for s in t: self.offset_text(pos, s, tags=tags, **options) pos.y += 1 bbox = self.bbox(tags) self.delete(tags) return bbox
def draw(self): """Draw the class diagram. Includes the classes in self.classes, or if there are none, then all the classes Lumpy has seen. """ pos = Point([2, 2]) if self.classes == None: classes = self.lumpy.get_class_list() else: classes = [make_thing(self.lumpy, cls) for cls in self.classes] # find the classes that have no parents, and find the # height of each tree roots = [c for c in classes if c.parents == []] for root in roots: root.set_height() # for all the leaf nodes, compute the distance to # the parent leafs = [c for c in classes if c.childs == []] for leaf in leafs: leaf.set_depth() # if we're drawing all the classes, start with the roots; # otherwise draw the classes we were given. if self.classes == None: drawn = self.draw_classes(roots, pos) else: drawn = self.draw_classes(classes, pos) self.draw_arrows() # configure the scroll region self.canvas.scroll_config()