python-2.5.2/win32/tcl/tix8.4/demos/MkChoose.tcl
changeset 0 ae805ac0140d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/python-2.5.2/win32/tcl/tix8.4/demos/MkChoose.tcl	Fri Apr 03 17:19:34 2009 +0100
@@ -0,0 +1,280 @@
+# -*-mode: tcl; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*-
+#
+#	$Id: MkChoose.tcl,v 1.4 2004/03/28 02:44:56 hobbs Exp $
+#
+# MkChoose.tcl --
+#
+#	This file implements the "Choosers" page in the widget demo
+#
+#	This file has not been properly documented. It is NOT intended
+#	to be used as an introductory demo program about Tix
+#	programming. For such demos, please see the files in the
+#	demos/samples directory or go to the "Samples" page in the
+#	"widget demo"
+#
+#
+# Copyright (c) 1996, Expert Interface Technologies
+#
+# See the file "license.terms" for information on usage and redistribution
+# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+#
+
+proc MkChoosers {nb page} {
+    set w [$nb subwidget $page]
+
+    set name [tixOptionName $w]
+    option add *$name*TixLabelFrame*label.padX 4
+
+    tixLabelFrame $w.til -label "Chooser Widgets"
+    tixLabelFrame $w.cbx -label "tixComboBox"
+    tixLabelFrame $w.ctl -label "tixControl"
+    tixLabelFrame $w.sel -label "tixSelect"
+    tixLabelFrame $w.opt -label "tixOptionMenu"
+    tixLabelFrame $w.fil -label "tixFileEntry"
+    tixLabelFrame $w.fbx -label "tixFileSelectBox"
+    tixLabelFrame $w.tbr -label "Tool Bar"
+
+    MkTitle   [$w.til subwidget frame]
+    MkCombo   [$w.cbx subwidget frame]
+    MkControl [$w.ctl subwidget frame]
+    MkSelect  [$w.sel subwidget frame]
+    MkOptMenu [$w.opt subwidget frame]
+    MkFileBox [$w.fbx subwidget frame]
+    MkFileEnt [$w.fil subwidget frame]
+    MkToolBar [$w.tbr subwidget frame]
+    
+    #
+    # First column: comBox and selector
+    tixForm $w.cbx -top 0 -left 0 -right %33
+    tixForm $w.sel -left 0 -right &$w.cbx -top $w.cbx
+    tixForm $w.opt -left 0 -right &$w.cbx -top $w.sel -bottom -1
+
+    #
+    # Second column: title .. etc
+    tixForm $w.til -left $w.cbx -right %66 -top 0
+    tixForm $w.ctl -left $w.cbx -right &$w.til -top $w.til
+    tixForm $w.fil -left $w.cbx -right &$w.til -top $w.ctl
+    tixForm $w.tbr -left $w.cbx -right &$w.til -top $w.fil -bottom -1
+
+    #
+    # Third column: file selection
+    tixForm $w.fbx -left %66  -right -1 -top 0
+}
+
+#----------------------------------------------------------------------
+# 	ComboBox
+#----------------------------------------------------------------------
+proc MkCombo {w} {
+    set name [tixOptionName $w]
+    option add *$name*TixComboBox*label.width 10
+    option add *$name*TixComboBox*label.anchor e
+    option add *$name*TixComboBox*entry.width 14
+    
+    tixComboBox $w.static   -label "Static" \
+	-editable false 
+    tixComboBox $w.editable -label "Editable" \
+	-editable true
+    tixComboBox $w.history  -label "History" \
+	-editable true -history true -anchor e
+ 
+    $w.static insert end January
+    $w.static insert end February
+    $w.static insert end March
+    $w.static insert end April
+    $w.static insert end May
+    $w.static insert end June
+    $w.static insert end July
+    $w.static insert end August
+    $w.static insert end September
+    $w.static insert end October
+    $w.static insert end November
+    $w.static insert end December
+
+    $w.editable insert end "America"
+    $w.editable insert end "Britain"
+    $w.editable insert end "China"
+    $w.editable insert end "Denmark"
+    $w.editable insert end "Egypt"
+
+    $w.history insert end "/usr/bin/mail"
+    $w.history insert end "/etc/profile"
+    $w.history insert end "/home/d/doe/Mail/letter"
+
+    pack $w.static $w.editable $w.history -side top -padx 5 -pady 3
+}
+
+#----------------------------------------------------------------------
+# 			The Control widgets
+#----------------------------------------------------------------------
+set states {Alabama "New York" Pennsylvania Washington}
+
+proc stCmd {w by value} {
+    global states
+
+    set index [lsearch $states $value]
+    set len   [llength $states]
+    set index [expr {$index + $by}]
+
+    if {$index < 0} {
+	set index [expr {$len -1}]
+    }
+    if {$index >= $len} {
+	set index 0
+    }
+
+    return [lindex $states $index]
+}
+
+proc stValidate {w value} {
+    global states
+
+    if {[lsearch $states $value] == -1} {
+	return [lindex $states 0]
+    } else {
+	return $value
+    }
+}
+
+proc MkControl {w} {
+    set name [tixOptionName $w]
+    option add *$name*TixControl*label.width 10
+    option add *$name*TixControl*label.anchor e
+    option add *$name*TixControl*entry.width 13
+
+
+    tixControl $w.simple -label Numbers
+
+    tixControl $w.spintext -label States \
+	-incrcmd [list stCmd $w.spintext 1] \
+	-decrcmd [list stCmd $w.spintext -1] \
+	-validatecmd [list stValidate .d] \
+	-value "Alabama"
+
+    pack $w.simple $w.spintext -side top -padx 5 -pady 3
+}
+
+#----------------------------------------------------------------------
+# 			The Select Widgets
+#----------------------------------------------------------------------
+proc MkSelect {w} {
+    set name [tixOptionName $w]
+    option add *$name*TixSelect*label.anchor c
+    option add *$name*TixSelect*orientation vertical
+    option add *$name*TixSelect*labelSide top
+
+    tixSelect $w.sel1 -label "Mere Mortals" -allowzero true -radio true
+    tixSelect $w.sel2 -label "Geeks" -allowzero true -radio false
+
+    $w.sel1 add eat   -text Eat
+    $w.sel1 add work  -text Work
+    $w.sel1 add play  -text Play
+    $w.sel1 add party -text Party
+    $w.sel1 add sleep -text Sleep
+
+    $w.sel2 add eat   -text Eat
+    $w.sel2 add prog1 -text Program
+    $w.sel2 add prog2 -text Program
+    $w.sel2 add prog3 -text Program
+    $w.sel2 add sleep -text Sleep
+
+    pack $w.sel1 $w.sel2 -side left -padx 5 -pady 3 -fill x
+}
+#----------------------------------------------------------------------
+# 			The OptMenu Widget
+#----------------------------------------------------------------------
+proc MkOptMenu {w} {
+    set name [tixOptionName $w]
+
+    option add *$name*TixOptionMenu*label.anchor e
+
+    tixOptionMenu $w.menu -label "File Format : " \
+	-options {
+	    menubutton.width 15
+	}
+
+    $w.menu add command text   -label "Plain Text"      
+    $w.menu add command post   -label "PostScript"      
+    $w.menu add command format -label "Formatted Text"  
+    $w.menu add command html   -label "HTML"            
+    $w.menu add separator sep
+    $w.menu add command tex    -label "LaTeX"           
+    $w.menu add command rtf    -label "Rich Text Format"
+
+    pack $w.menu -padx 5 -pady 3 -fill x
+}
+
+#----------------------------------------------------------------------
+# 	FileEntry
+#----------------------------------------------------------------------
+proc MkFileEnt {w} {
+    set name [tixOptionName $w]
+
+    message $w.msg \
+	-relief flat -width 240 -anchor n\
+	-text {Press the "open file" icon button and a\
+TixFileSelectDialog will popup.}
+
+    tixFileEntry $w.ent -label "Select a file : "
+
+    pack $w.msg -side top -expand yes -fill both -padx 3 -pady 3
+    pack $w.ent -side top -fill x -padx 3 -pady 3
+}
+
+proc MkFileBox {w} {
+    set name [tixOptionName $w]
+
+    message $w.msg \
+	-relief flat -width 240 -anchor n\
+	-text {The TixFileSelectBox is Motif-style file selection\
+box with various enhancements. For example, you can adjust the\
+size of the two listboxes and your past selections are recorded.}
+
+    tixFileSelectBox $w.box
+
+    pack $w.msg -side top -expand yes -fill both -padx 3 -pady 3
+    pack $w.box -side top -fill x -padx 3 -pady 3
+}
+
+#----------------------------------------------------------------------
+# 	Tool Bar
+#----------------------------------------------------------------------
+proc MkToolBar {w} {
+    set name [tixOptionName $w]
+
+    option add $name*TixSelect*frame.borderWidth 1
+    message $w.msg -relief flat -width 240 -anchor n\
+	-text {The Select widget is also good for arranging buttons\
+		   in a tool bar.}
+
+    frame $w.bar -bd 2 -relief raised
+    tixSelect $w.font -allowzero true  -radio false -label {}
+    tixSelect $w.para -allowzero false -radio true -label {}
+
+    $w.font add bold      -bitmap [tix getbitmap bold]
+    $w.font add italic    -bitmap [tix getbitmap italic]
+    $w.font add underline -bitmap [tix getbitmap underlin]
+    $w.font add capital   -bitmap [tix getbitmap capital]
+
+    $w.para add left    -bitmap [tix getbitmap leftj]
+    $w.para add right   -bitmap [tix getbitmap rightj]
+    $w.para add center  -bitmap [tix getbitmap centerj]
+    $w.para add justify -bitmap [tix getbitmap justify]
+
+    pack $w.msg -side top -expand yes -fill both -padx 3 -pady 3
+    pack $w.bar -side top -fill x -padx 3 -pady 3
+    pack $w.para $w.font -in $w.bar -side left -padx 4 -pady 3
+}
+#----------------------------------------------------------------------
+# 	Title
+#----------------------------------------------------------------------
+proc MkTitle {w} {
+    set name [tixOptionName $w]
+
+    option add $name*TixSelect*frame.borderWidth 1
+    message $w.msg \
+	-relief flat -width 240 -anchor n\
+	-text {There are many types of "choose" widgets that allow\
+		   the user to input different type of information.}
+
+    pack $w.msg -side top -expand yes -fill both -padx 3 -pady 3
+}