summaryrefslogtreecommitdiffstats
path: root/Tools/idle/Outline.py
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/idle/Outline.py')
-rw-r--r--Tools/idle/Outline.py46
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()