diff options
Diffstat (limited to 'Tools/idle/Outline.py')
-rw-r--r-- | Tools/idle/Outline.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/Tools/idle/Outline.py b/Tools/idle/Outline.py new file mode 100644 index 0000000..194d058 --- /dev/null +++ b/Tools/idle/Outline.py @@ -0,0 +1,46 @@ +from Tkinter import * + +class Outline: + + def __init__(self, root=None): + if not root: + import Tkinter + root = Tkinter._default_root + if not root: + root = top = Tk() + else: + top = Toplevel(root) + top.wm_title("Outline") + self.canvas = canvas = Canvas(top, width=400, height=300, + borderwidth=2, relief="sunken", + background="#FFBBBB") + canvas.pack(expand=1, fill="both") + self.items = [] + + def additem(self, level, open, label): + x = 15*level + 5 + y = 15*len(self.items) + 5 + if open: + id1 = self.canvas.create_polygon(x+3, y+3, x+13, y+3, x+8, y+8, + outline="black", + fill="green") + else: + id1 = self.canvas.create_polygon(x+3, y+4, x+7, y+8, x+3, y+12, + outline="black", + fill="red") + w = Entry(self.canvas, borderwidth=0, background="#FFBBBB", width=0) + w.insert("end", label) + id2 = self.canvas.create_window(x+15, y, anchor="nw", window=w) + self.items.append((level, open, label, id1, w, id2)) + + +def main(): + o = Outline() + o.additem(0, 1, "hello world") + o.additem(1, 0, "sub1") + o.additem(1, 1, "sub2") + o.additem(2, 0, "sub2.a") + o.additem(2, 0, "sub2.b") + o.additem(1, 0, "sub3") + +main() |