summaryrefslogtreecommitdiffstats
path: root/Demo/stdwin/RadioGroups.py
diff options
context:
space:
mode:
Diffstat (limited to 'Demo/stdwin/RadioGroups.py')
-rwxr-xr-xDemo/stdwin/RadioGroups.py98
1 files changed, 98 insertions, 0 deletions
diff --git a/Demo/stdwin/RadioGroups.py b/Demo/stdwin/RadioGroups.py
new file mode 100755
index 0000000..37240d3
--- /dev/null
+++ b/Demo/stdwin/RadioGroups.py
@@ -0,0 +1,98 @@
+#! /usr/local/python
+
+# radiogroups.py
+#
+# Demonstrate multiple groups of radio buttons
+
+import stdwin
+from Buttons import *
+from WindowParent import WindowParent, MainLoop
+from HVSplit import HSplit, VSplit
+
+def main():
+ #
+ # Create the widget hierarchy, top-down
+ #
+ # 1. Create the window
+ #
+ window = WindowParent().create('Radio Groups', (0, 0))
+ #
+ # 2. Create a horizontal split to contain the groups
+ #
+ topsplit = HSplit().create(window)
+ #
+ # 3. Create vertical splits, one for each group
+ #
+ group1 = VSplit().create(topsplit)
+ group2 = VSplit().create(topsplit)
+ group3 = VSplit().create(topsplit)
+ #
+ # 4. Create individual radio buttons, each in their own split
+ #
+ b11 = RadioButton().definetext(group1, 'Group 1 button 1')
+ b12 = RadioButton().definetext(group1, 'Group 1 button 2')
+ b13 = RadioButton().definetext(group1, 'Group 1 button 3')
+ #
+ b21 = RadioButton().definetext(group2, 'Group 2 button 1')
+ b22 = RadioButton().definetext(group2, 'Group 2 button 2')
+ b23 = RadioButton().definetext(group2, 'Group 2 button 3')
+ #
+ b31 = RadioButton().definetext(group3, 'Group 3 button 1')
+ b32 = RadioButton().definetext(group3, 'Group 3 button 2')
+ b33 = RadioButton().definetext(group3, 'Group 3 button 3')
+ #
+ # 5. Define the grouping for the radio buttons.
+ # Note: this doesn't have to be the same as the
+ # grouping is splits (although it usually is).
+ # Also set the 'hook' procedure for each button
+ #
+ list1 = [b11, b12, b13]
+ list2 = [b21, b22, b23]
+ list3 = [b31, b32, b33]
+ #
+ for b in list1:
+ b.group = list1
+ b.on_hook = myhook
+ for b in list2:
+ b.group = list2
+ b.on_hook = myhook
+ for b in list3:
+ b.group = list3
+ b.on_hook = myhook
+ #
+ # 6. Select a default button in each group
+ #
+ b11.select(1)
+ b22.select(1)
+ b33.select(1)
+ #
+ # 6. Realize the window
+ #
+ window.realize()
+ #
+ # 7. Dispatch events until the window is closed
+ #
+ MainLoop()
+ #
+ # 8. Report final selections
+ #
+ print 'You selected the following choices:'
+ if b11.selected: print '1.1'
+ if b12.selected: print '1.2'
+ if b13.selected: print '1.3'
+ if b21.selected: print '2.1'
+ if b22.selected: print '2.2'
+ if b23.selected: print '2.3'
+ if b31.selected: print '3.1'
+ if b32.selected: print '3.2'
+ if b33.selected: print '3.3'
+
+
+# My 'hook' procedure
+# This is placed as 'hook' attribute on each button.
+# The example just prints the title of the selected button.
+#
+def myhook(self):
+ print 'Selected:', self.text
+
+main()