Patch #410231: Add the Python Tix library.
diff --git a/Demo/tix/samples/NoteBook.py b/Demo/tix/samples/NoteBook.py
new file mode 100755
index 0000000..993dcc6
--- /dev/null
+++ b/Demo/tix/samples/NoteBook.py
@@ -0,0 +1,119 @@
+#!/usr/local/bin/python
+# 
+# $Id$
+#
+# Tix Demostration Program
+#
+# This sample program is structured in such a way so that it can be
+# executed from the Tix demo program "tixwidgets": it must have a
+# procedure called "RunSample". It should also have the "if" statment
+# at the end of this file so that it can be run as a standalone
+# program.
+
+# This file demonstrates the use of the tixNoteBook widget, which allows
+# you to lay out your interface using a "notebook" metaphore
+#
+import Tix
+
+def RunSample(w):
+    global root
+    root = w
+
+    # We use these options to set the sizes of the subwidgets inside the
+    # notebook, so that they are well-aligned on the screen.
+    prefix = Tix.OptionName(w)
+    if prefix:
+	prefix = '*'+prefix
+    else:
+	prefix = ''
+    w.option_add(prefix+'*TixControl*entry.width', 10)
+    w.option_add(prefix+'*TixControl*label.width', 18)
+    w.option_add(prefix+'*TixControl*label.anchor', Tix.E)
+    w.option_add(prefix+'*TixNoteBook*tagPadX', 8)
+
+    # Create the notebook widget and set its backpagecolor to gray.
+    # Note that the -backpagecolor option belongs to the "nbframe"
+    # subwidget.
+    nb = Tix.NoteBook(w, name='nb', ipadx=6, ipady=6)
+    nb['bg'] = 'gray'
+    nb.nbframe['backpagecolor'] = 'gray'
+	
+    # Create the two tabs on the notebook. The -underline option
+    # puts a underline on the first character of the labels of the tabs.
+    # Keyboard accelerators will be defined automatically according
+    # to the underlined character.	
+    nb.add('hard_disk', label="Hard Disk", underline=0)
+    nb.add('network', label="Network", underline=0)
+	
+    nb.pack(expand=1, fill=Tix.BOTH, padx=5, pady=5 ,side=Tix.TOP)
+
+    #----------------------------------------
+    # Create the first page
+    #----------------------------------------
+    # Create two frames: one for the common buttons, one for the
+    # other widgets
+    #
+    tab=nb.hard_disk
+    f = Tix.Frame(tab)
+    common = Tix.Frame(tab)
+	
+    f.pack(side=Tix.LEFT, padx=2, pady=2, fill=Tix.BOTH, expand=1)
+    common.pack(side=Tix.RIGHT, padx=2, fill=Tix.Y)
+	
+    a = Tix.Control(f, value=12,   label='Access time: ')
+    w = Tix.Control(f, value=400,  label='Write Throughput: ')
+    r = Tix.Control(f, value=400,  label='Read Throughput: ')
+    c = Tix.Control(f, value=1021, label='Capacity: ')
+	
+    a.pack(side=Tix.TOP, padx=20, pady=2)
+    w.pack(side=Tix.TOP, padx=20, pady=2)
+    r.pack(side=Tix.TOP, padx=20, pady=2)
+    c.pack(side=Tix.TOP, padx=20, pady=2)
+	
+    # Create the common buttons
+    createCommonButtons(common)
+	
+    #----------------------------------------
+    # Create the second page	
+    #----------------------------------------
+	
+    tab = nb.network
+
+    f = Tix.Frame(tab)
+    common = Tix.Frame(tab)
+	
+    f.pack(side=Tix.LEFT, padx=2, pady=2, fill=Tix.BOTH, expand=1)
+    common.pack(side=Tix.RIGHT, padx=2, fill=Tix.Y)
+	
+    a = Tix.Control(f, value=12,   label='Access time: ')
+    w = Tix.Control(f, value=400,  label='Write Throughput: ')
+    r = Tix.Control(f, value=400,  label='Read Throughput: ')
+    c = Tix.Control(f, value=1021, label='Capacity: ')
+    u = Tix.Control(f, value=10,   label='Users: ')
+	
+    a.pack(side=Tix.TOP, padx=20, pady=2)
+    w.pack(side=Tix.TOP, padx=20, pady=2)
+    r.pack(side=Tix.TOP, padx=20, pady=2)
+    c.pack(side=Tix.TOP, padx=20, pady=2)
+    u.pack(side=Tix.TOP, padx=20, pady=2)
+	
+    createCommonButtons(common)
+	
+def doDestroy():
+    global root
+    root.destroy()
+
+def createCommonButtons(master):
+    ok = Tix.Button(master, name='ok', text='OK', width=6, 
+		command=doDestroy)
+    cancel = Tix.Button(master, name='cancel', 
+		    text='Cancel', width=6, 
+		    command=doDestroy)
+    
+    ok.pack(side=Tix.TOP, padx=2, pady=2)
+    cancel.pack(side=Tix.TOP, padx=2, pady=2)	
+
+if __name__ == '__main__':
+    root = Tix.Tk()
+    RunSample(root)
+    root.mainloop()