Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/pynxc/waxy/demos/TreeView.py
diff options
context:
space:
mode:
Diffstat (limited to 'pynxc/waxy/demos/TreeView.py')
-rwxr-xr-xpynxc/waxy/demos/TreeView.py91
1 files changed, 91 insertions, 0 deletions
diff --git a/pynxc/waxy/demos/TreeView.py b/pynxc/waxy/demos/TreeView.py
new file mode 100755
index 0000000..50ebe10
--- /dev/null
+++ b/pynxc/waxy/demos/TreeView.py
@@ -0,0 +1,91 @@
+#!/usr/bin/env python
+
+from waxy import *
+
+def filltree(tree):
+ root = tree.AddRoot("the root item")
+ for i in range(10):
+ child = tree.AppendItem(root, "Item %d" % (i,))
+ for j in range(5):
+ grandchild = tree.AppendItem(child, "Item %d" % (i*10+j))
+
+ print [x for x in tree.GetChildNodes(root)]
+
+ d = {
+ "Hans": {
+ "age": 30,
+ "sign": "Aquarius",
+ "job": "programmer",
+ },
+ "Fred": {
+ "age": "unknown",
+ "sign": "unknown",
+ "shoe size": "unknown",
+ },
+ "Old Guy John": {
+ "age": "old",
+ "sign": "Aquarius",
+ },
+ "Bob": {
+ "sign": "Taurus",
+ "job": "proprietor",
+ },
+ "Christine": {
+ "age": 17,
+ "sign": "Aries",
+ "job": "cashier",
+ }
+ }
+
+ stuff = tree.AppendItem(root, "stuff")
+ tree.LoadFromDict(stuff, d)
+
+ return tree
+
+
+
+class MainFrame(Frame): # frame has a sizer built in
+
+ def Body(self):
+
+ self.CenterOnScreen()
+
+ self.CreateStatusBar()
+ self.SetStatusText("This is the statusbar")
+
+ menubar = MenuBar(self)
+ menu1 = Menu(self)
+ menu1.Append("E&xit", self.CloseWindow, "Exit demo",hotkey="Ctrl+Q")
+ menubar.Append(menu1, "&File")
+
+ splitter = Splitter(self)
+ self.treeview = TreeView(splitter, twist_buttons=1, has_buttons=1)
+ self.treeview.OnSelectionChanged = self.OnTreeSelectionChanged
+ self.textbox = TextBox(splitter, multiline=1)
+ splitter.Split(self.treeview, self.textbox, direction='v')
+ self.AddComponent(splitter, expand='both')
+ filltree(self.treeview)
+
+
+
+ self.Pack()
+ self.SetSize((640, 480))
+
+ def CloseWindow(self,event):
+ self.Close()
+
+ def OnTreeSelectionChanged(self, event):
+ item = event.GetItem()
+ data = self.treeview.GetPyData(item)
+ if data is None:
+ data = self.treeview.GetItemText(item)
+ self.textbox.Clear()
+ self.textbox.AppendText(str(data))
+ event.Skip()
+
+
+
+
+if __name__=="__main__":
+ app = Application(MainFrame, title="TreeView")
+ app.Run()