From <@jess.ccc.nottingham.ac.uk:R.M.Young@herts.ac.uk> Thu Dec 3 16:36:33 1998 X-VM-v5-Data: ([nil nil nil nil t nil nil nil nil] ["499" "Thu" "3" "December" "1998" "16:31:38" "+0000" "Richard M Young" "R.M.Young@herts.ac.uk" "" "15" "re:Those 50 telephones?" "^From:" nil nil "12" nil nil nil nil nil] nil) Return-Path: <@jess.ccc.nottingham.ac.uk:R.M.Young@herts.ac.uk> Received: from Psychology.Nottingham.AC.UK (rpsyc [128.243.31.1]) by vpsyc.psychology.nottingham.ac.uk (8.8.8/8.6.9) with SMTP id QAA11547 for ; Thu, 3 Dec 1998 16:36:32 GMT Received: from jess.ccc.nottingham.ac.uk by rpsyc.Psychology.Nottingham.AC.UK id aa06990; 3 Dec 98 16:38 GMT Received: from [147.197.200.2] (helo=helios.herts.ac.uk) by nottingham.ac.uk with smtp (Exim 1.92 #1) for Frank.Ritter@nottingham.ac.uk id 0zlbmZ-0006z0-00; Thu, 3 Dec 1998 16:39:11 +0000 Received: from altair (actually host altair.herts.ac.uk) by helios.herts.ac.uk with SMTP-LOCAL (XT-PP); Thu, 3 Dec 1998 16:33:13 +0000 X-Sender: psyqrmy@altair.herts.ac.uk Message-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" From: Richard M Young To: Frank.Ritter@nottingham.ac.uk Cc: a.cox@herts.ac.uk Subject: re:Those 50 telephones? Date: Thu, 3 Dec 1998 16:31:38 +0000 Frank, Thanks for helpful reply. Anna almost certainly needs only one or two telephones, but it would be nice to see a bigger number to choose from. The obvious thing for us is to take advantage of the fact that Indi is putting effort into getting 20 of them running. So ... ... if you could possibly ask Indi if he could mail us (e.g. tar file or .sit/.sea or diskette) 20 interfaces (or as many as he has running at the moment), that would be much appreciated. My best to Josef, -- Richard From ritter Fri Dec 4 12:23:17 1998 X-VM-v5-Data: ([nil nil nil nil nil nil nil nil nil] ["32894" "Fri" "4" "December" "1998" "12:23:14" "GMT" "ritter@psychology.nottingham.ac.uk" "ritter@psychology.nottingham.ac.uk" nil "1347" "re:Those 50 telephones?" "^From:" nil nil "12" nil nil nil nil nil] nil) Return-Path: ritter Received: (from ritter@localhost) by vpsyc.psychology.nottingham.ac.uk (8.8.8/8.6.9) id MAA24431; Fri, 4 Dec 1998 12:23:14 GMT Message-Id: <199812041223.MAA24431@vpsyc.psychology.nottingham.ac.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit In-Reply-To: References: X-Mailer: VM 6.34 under Emacs 20.2.1 Reply-To: Frank.Ritter@nottingham.ac.uk From: ritter@psychology.nottingham.ac.uk To: Richard M Young Subject: re:Those 50 telephones? Date: Fri, 4 Dec 1998 12:23:14 GMT That list comes out next week with mz help. He's had grave troubles getting his stuff set up locally. But here are the first three phoens that are single files. thez load differently, and while they shoudl work, I don't know how much or how. They did at some point in some way, but some are just shells, some dial and receive incoming calls! Cheers, Frank number 16, souce into wish # interface generated by SpecTcl version 1.1 from J:/Hayes.ui # root is the parent window for this user interface proc Hayes_ui {root args} { # this treats "." as a special case if {$root == "."} { set base "" } else { set base $root } frame $base.frame#2 frame $base.frame#3 frame $base.frame#5 frame $base.frame#1 entry $base.entry \ -background white \ -foreground black \ -highlightbackground red \ -highlightcolor yellow \ -justify center \ -textvariable entry \ -width 50 catch { $base.entry configure \ -font -*-Helvetica-Bold-R-Normal-*-*-100-*-*-*-*-*-* } button $base.1 \ -background grey \ -command {if {$connected==0} {lappend entry {1}} else {set status {Error: Still Connect to Call}; delay; set status {}}} \ -foreground black \ -height 2 \ -padx 7 \ -text 1 \ -textvariable 1 \ -width 3 catch { $base.1 configure \ -font -*-Helvetica-Bold-R-Normal-*-*-140-*-*-*-*-*-* } button $base.2 \ -background grey \ -command {if {$connected==0} {lappend entry {2}} else {set status {Error: Still Connected to Call}; delay; set status {}}} \ -foreground black \ -height 2 \ -padx 7 \ -text 2 \ -textvariable 2 \ -width 3 catch { $base.2 configure \ -font -*-Helvetica-Bold-R-Normal-*-*-140-*-*-*-*-*-* } button $base.3 \ -background grey \ -command {if {$connected==0} {lappend entry {3}} else {set status {Error: Still Connected to Call}; delay; set status {}}} \ -foreground black \ -height 2 \ -padx 7 \ -text 3 \ -textvariable 3 \ -width 3 catch { $base.3 configure \ -font -*-Helvetica-Bold-R-Normal-*-*-140-*-*-*-*-*-* } button $base.4 \ -background grey \ -command {if {$connected==0} {lappend entry {4}} else {set status {Error: Still Connected to Call}; delay; set status {}}} \ -foreground black \ -height 2 \ -padx 7 \ -text 4 \ -textvariable 4 \ -width 3 catch { $base.4 configure \ -font -*-Helvetica-Bold-R-Normal-*-*-140-*-*-*-*-*-* } button $base.5 \ -background grey \ -command {if {$connected==0} {lappend entry {5}} else {set status {Error: Still Connected to Call}; delay; set status {}}} \ -foreground black \ -height 2 \ -padx 7 \ -text 5 \ -textvariable 5 \ -width 3 catch { $base.5 configure \ -font -*-Helvetica-Bold-R-Normal-*-*-140-*-*-*-*-*-* } button $base.6 \ -background grey \ -command {if {$connected==0} {lappend entry {6}} else {set status {Error: Still Connected to Call}; delay; set status {}}} \ -foreground black \ -height 2 \ -padx 7 \ -text 6 \ -textvariable 6 \ -width 3 catch { $base.6 configure \ -font -*-Helvetica-Bold-R-Normal-*-*-140-*-*-*-*-*-* } button $base.7 \ -background grey \ -command {if {$connected==0} {lappend entry {7}} else {set status {Error: Still Connected to Call}; delay; set status {}}} \ -foreground black \ -height 2 \ -padx 7 \ -text 7 \ -textvariable 7 \ -width 3 catch { $base.7 configure \ -font -*-Helvetica-Bold-R-Normal-*-*-140-*-*-*-*-*-* } button $base.8 \ -background grey \ -command {if {$connected==0} {lappend entry {8}} else {set status {Error: Still Connected to Call}; delay; set status {}}} \ -foreground black \ -height 2 \ -padx 7 \ -text 8 \ -textvariable 8 \ -width 3 catch { $base.8 configure \ -font -*-Helvetica-Bold-R-Normal-*-*-140-*-*-*-*-*-* } button $base.9 \ -background grey \ -command {if {$connected==0} {lappend entry {9}} else {set status {Error: Still Connected to Call}; delay; set status {}}} \ -foreground black \ -height 2 \ -padx 7 \ -text 9 \ -textvariable 9 \ -width 3 catch { $base.9 configure \ -font -*-Helvetica-Bold-R-Normal-*-*-140-*-*-*-*-*-* } button $base.star \ -background grey \ -command {if {$connected==0} {lappend entry {*}} else {set status {Error: Still Connected to Call}; delay; set status {}}} \ -foreground black \ -height 2 \ -padx 7 \ -text * \ -textvariable star \ -width 3 catch { $base.star configure \ -font -*-Times-Medium-R-Normal-*-*-140-*-*-*-*-*-* } button $base.button10 \ -background grey \ -command {if {$connected==0} {lappend entry {0}} else {set status {Error: disconnect first}; delay; set status {}}} \ -foreground black \ -height 2 \ -padx 7 \ -text 0 \ -textvariable button10 \ -width 3 catch { $base.button10 configure \ -font -*-Helvetica-Bold-R-Normal-*-*-140-*-*-*-*-*-* } button $base.hash \ -background grey \ -command {if {$connected==0} {lappend entry {#}} else {set status {Error: Still Connected to Call}; delay; set status {}}} \ -foreground black \ -height 2 \ -padx 7 \ -text # \ -textvariable hash \ -width 3 catch { $base.hash configure \ -font -*-Times-Medium-R-Normal-*-*-140-*-*-*-*-*-* } button $base.clear \ -activeforeground blue \ -background grey \ -command {if {$connected==0} {if {$entry==""} {set status {Error: No Number Entered}} else {set entry {}; set status {Display cleared}}; delay; set status {}} else {set status {Error: disconnect first}; delay; set status {}}} \ -foreground black \ -text {Clear Current Number} \ -textvariable clear button $base.delete \ -activeforeground blue \ -background grey \ -command {if {$connected==0} {if {$entry==""} {set status {Error: No Number Entered}} else {backone; set status {Last number deleted}}; delay; set status {}} else {set status {Error: disconnect first}; delay; set status {}}} \ -foreground black \ -padx 13 \ -text {Delete Last Entry} \ -textvariable delete button $base.dial \ -activebackground black \ -activeforeground white \ -background grey \ -command {if {$connected==0} {if {$entry==""} {set status {Error: No Number Entered}; set connected 0; delay; set status {}; return} else {set status {Dialing......}; set temp $entry; set entry {}; lappend entry {Connecting}; for {set i 0} {$i < 100} {incr i} {lappend entry {.}; update}; set entry "$temp"; set status {Connected}; set connected 1}} else {if {$ans==0} {set status {Error: already connected}; delay; set status {}} else {set status {Error: answering call}}}} \ -foreground black \ -padx 13 \ -text {Dial Current Number} \ -textvariable dial button $base.redial \ -activeforeground blue \ -background grey \ -command {if {$connected==0} {set entry $temp; set status {Press Dial Current Number to connect}} else {set status {Error: Connected to Other Call}; delay; set status {}}} \ -foreground black \ -padx 6 \ -text {Redial Last Number} \ -textvariable redial button $base.disconnect \ -activeforeground blue \ -background grey \ -command {if {$connected==1} {set temp $entry; set entry {}; lappend entry {Disconnect}; for {set i 0} {$i < 50} {incr i} {lappend entry {.}; update}; set entry {}; set ans 0; set connected 0; set status {Disconnected}} else {set status {Error: Not Connect to any Calls}}; delay; set status {}} \ -foreground black \ -padx 13 \ -text {Disconnect Current Call} \ -textvariable disconnect button $base.exit \ -activebackground red \ -activeforeground yellow \ -background grey \ -command {if {$connected==1} {set status {Error: Still Connect to Call}} else {set status {Thank You}; for {set i 0} {$i<100} {incr i} {update}; exit}} \ -foreground black \ -highlightcolor red \ -text {Exit Phone} \ -textvariable exit entry $base.status \ -background #dfdfdf \ -cursor {} \ -foreground blue \ -highlightcolor navy \ -textvariable status \ -width 25 catch { $base.status configure \ -font -*-Times-Medium-R-Normal-*-*-0-*-*-*-*-*-* } # Geometry management grid $base.frame#2 -in $root -row 3 -column 2 grid $base.frame#3 -in $root -row 4 -column 2 grid $base.frame#5 -in $root -row 5 -column 2 grid $base.frame#1 -in $root -row 2 -column 2 grid $base.entry -in $root -row 1 -column 2 \ -ipady 5 grid $base.1 -in $base.frame#1 -row 1 -column 1 grid $base.2 -in $base.frame#1 -row 1 -column 2 grid $base.3 -in $base.frame#1 -row 1 -column 3 grid $base.4 -in $base.frame#1 -row 2 -column 1 grid $base.5 -in $base.frame#1 -row 2 -column 2 grid $base.6 -in $base.frame#1 -row 2 -column 3 grid $base.7 -in $base.frame#1 -row 3 -column 1 grid $base.8 -in $base.frame#1 -row 3 -column 2 grid $base.9 -in $base.frame#1 -row 3 -column 3 grid $base.star -in $base.frame#1 -row 4 -column 1 grid $base.button10 -in $base.frame#1 -row 4 -column 2 grid $base.hash -in $base.frame#1 -row 4 -column 3 grid $base.clear -in $base.frame#2 -row 1 -column 1 grid $base.delete -in $base.frame#2 -row 1 -column 2 grid $base.dial -in $base.frame#3 -row 1 -column 1 grid $base.redial -in $base.frame#3 -row 1 -column 2 grid $base.disconnect -in $base.frame#5 -row 1 -column 1 grid $base.exit -in $base.frame#5 -row 1 -column 2 grid $base.status -in $root -row 6 -column 2 # Resize behavior management grid rowconfigure $base.frame#2 1 -weight 0 -minsize 30 grid columnconfigure $base.frame#2 1 -weight 0 -minsize 30 grid columnconfigure $base.frame#2 2 -weight 0 -minsize 30 grid rowconfigure $base.frame#3 1 -weight 0 -minsize 30 grid columnconfigure $base.frame#3 1 -weight 0 -minsize 30 grid columnconfigure $base.frame#3 2 -weight 0 -minsize 30 grid rowconfigure $root 1 -weight 0 -minsize 52 grid rowconfigure $root 2 -weight 0 -minsize 47 grid rowconfigure $root 3 -weight 0 -minsize 46 grid rowconfigure $root 4 -weight 0 -minsize 47 grid rowconfigure $root 5 -weight 0 -minsize 51 grid rowconfigure $root 6 -weight 0 -minsize 29 grid columnconfigure $root 1 -weight 0 -minsize 8 grid columnconfigure $root 2 -weight 0 -minsize 11 grid rowconfigure $base.frame#1 1 -weight 0 -minsize 30 grid rowconfigure $base.frame#1 2 -weight 0 -minsize 30 grid rowconfigure $base.frame#1 3 -weight 0 -minsize 30 grid rowconfigure $base.frame#1 4 -weight 0 -minsize 30 grid columnconfigure $base.frame#1 1 -weight 0 -minsize 30 grid columnconfigure $base.frame#1 2 -weight 0 -minsize 30 grid columnconfigure $base.frame#1 3 -weight 0 -minsize 30 grid rowconfigure $base.frame#5 1 -weight 0 -minsize 30 grid columnconfigure $base.frame#5 1 -weight 0 -minsize 30 grid columnconfigure $base.frame#5 2 -weight 0 -minsize 30 # additional interface code global entry global status global quit set quit 0 global connected set connected 0 global ans set ans 0 global temp set temp {} proc backone {} { global entry global newentry set newentry {} set i [expr [llength $entry] - 1] puts stdout $i for { set j 0 } { $j < $i } { incr j } { lappend newentry [lindex $entry $j] } set entry {} set entry $newentry } proc delay {} { for {set i 0} {$i < 500} {incr i} { update } } # end additional interface code } # Allow interface to be run "stand-alone" for testing catch { if [info exists embed_args] { # we are running in the plugin Hayes_ui . } else { # we are running in stand-alone mode if {$argv0 == [info script]} { wm title . "Testing Hayes_ui" Hayes_ui . } } } **************************************************************** number 19, probably 'source' into a csh or other shell, it looks like it starts up its own wish shell, put could cut and paste intoa new file. #! /bin/sh # the next line restarts using wish8.0 \ exec wish8.0 "$0" "$@" # interface generated by SpecTcl version 1.1 from /cs/u8h/cs2single-1/clc96c/uid/p3/telephone2.ui # root is the parent window for this user interface proc telephone2_ui {root args} { # this treats "." as a special case if {$root == "."} { set base "" } else { set base $root } frame $base.frame#5 frame $base.frame#7 \ -borderwidth 2 \ -relief sunken frame $base.frame#8 \ -relief sunken frame $base.frame#9 \ -borderwidth 2 \ -relief sunken frame $base.frame#1 \ -relief sunken label $base.label#5 \ -anchor w \ -foreground black \ -justify left \ -padx 10 \ -text {Phone Book} label $base.label#4 \ -anchor w \ -foreground black \ -justify left \ -padx 5 \ -text {Dial Buffer} entry $base.entry#2 \ -background white \ -foreground black \ -textvariable entry entry $base.number \ -background white \ -foreground black \ -justify right \ -relief ridge \ -textvariable phonenumber \ -width 14 catch { $base.number configure \ -font -*-Helvetica-Medium-R-Normal-*-*-140-*-*-*-*-*-* } button $base.button#19 \ -activeforeground black \ -foreground black \ -padx 0 \ -pady 0 \ -text >> catch { $base.button#19 configure \ -font -*-Helvetica-Medium-R-Normal-*-*-80-*-*-*-*-*-* } button $base.button#20 \ -activeforeground black \ -foreground black \ -padx 0 \ -pady 0 \ -text << catch { $base.button#20 configure \ -font -*-Helvetica-Medium-R-Normal-*-*-80-*-*-*-*-*-* } button $base.button#6 \ -activeforeground black \ -command num1 \ -foreground black \ -text 1 catch { $base.button#6 configure \ -font -*-Helvetica-Medium-R-Normal-*-*-240-*-*-*-*-*-* } button $base.button#1 \ -activeforeground black \ -command num2 \ -foreground black \ -text 2 catch { $base.button#1 configure \ -font -*-Helvetica-Medium-R-Normal-*-*-240-*-*-*-*-*-* } button $base.button#4 \ -activeforeground black \ -command num3 \ -foreground black \ -text 3 catch { $base.button#4 configure \ -font -*-Helvetica-Medium-R-Normal-*-*-240-*-*-*-*-*-* } button $base.button#13 \ -activeforeground black \ -command dialling \ -foreground black \ -text Dial catch { $base.button#13 configure \ -font -*-Helvetica-Medium-R-Normal-*-*-140-*-*-*-*-*-* } label $base.label#6 \ -borderwidth 0 \ -foreground black \ -justify left \ -text Name catch { $base.label#6 configure \ -font -*-Helvetica-Medium-R-Normal-*-*-100-*-*-*-*-*-* } entry $base.entry#3 \ -background white \ -foreground black \ -relief flat \ -textvariable entryname button $base.button#3 \ -activeforeground black \ -command num4 \ -foreground black \ -text 4 catch { $base.button#3 configure \ -font -*-Helvetica-Medium-R-Normal-*-*-240-*-*-*-*-*-* } button $base.button#2 \ -activeforeground black \ -command num5 \ -foreground black \ -text 5 catch { $base.button#2 configure \ -font -*-Helvetica-Medium-R-Normal-*-*-240-*-*-*-*-*-* } button $base.button#5 \ -activeforeground black \ -command num6 \ -foreground black \ -text 6 catch { $base.button#5 configure \ -font -*-Helvetica-Medium-R-Normal-*-*-240-*-*-*-*-*-* } button $base.button#14 \ -activeforeground black \ -command incoming \ -foreground black \ -text {Pick Up} catch { $base.button#14 configure \ -font -*-Helvetica-Medium-R-Normal-*-*-140-*-*-*-*-*-* } label $base.label#7 \ -foreground black \ -text Number catch { $base.label#7 configure \ -font -*-Helvetica-Medium-R-Normal-*-*-100-*-*-*-*-*-* } entry $base.entry#4 \ -background white \ -foreground black \ -relief flat \ -textvariable entry button $base.button#7 \ -activeforeground black \ -command num7 \ -foreground black \ -text 7 catch { $base.button#7 configure \ -font -*-Helvetica-Medium-R-Normal-*-*-240-*-*-*-*-*-* } button $base.button#8 \ -activeforeground black \ -command num8 \ -foreground black \ -text 8 catch { $base.button#8 configure \ -font -*-Helvetica-Medium-R-Normal-*-*-240-*-*-*-*-*-* } button $base.button#9 \ -activeforeground black \ -command num9 \ -foreground black \ -text 9 catch { $base.button#9 configure \ -font -*-Helvetica-Medium-R-Normal-*-*-240-*-*-*-*-*-* } button $base.button#16 \ -activeforeground black \ -command hangup \ -foreground black \ -text {Hang Up} catch { $base.button#16 configure \ -font -*-Helvetica-Medium-R-Normal-*-*-140-*-*-*-*-*-* } button $base.button#32 \ -activeforeground black \ -foreground black \ -highlightbackground DarkSlateGrey \ -padx 10 \ -pady 3 \ -text Add catch { $base.button#32 configure \ -font -*-Times-Medium-R-Normal-*-*-0-*-*-*-*-*-* } button $base.button#33 \ -activeforeground black \ -foreground black \ -highlightbackground DarkSlateGrey \ -padx 10 \ -pady 3 \ -text Remove catch { $base.button#33 configure \ -font -*-Times-Medium-R-Normal-*-*-0-*-*-*-*-*-* } button $base.button#10 \ -activeforeground black \ -command star \ -foreground black \ -text * catch { $base.button#10 configure \ -font -*-Helvetica-Medium-R-Normal-*-*-240-*-*-*-*-*-* } button $base.button#12 \ -activeforeground black \ -command num0 \ -foreground black \ -text 0 catch { $base.button#12 configure \ -font -*-Helvetica-Medium-R-Normal-*-*-240-*-*-*-*-*-* } button $base.button#11 \ -activeforeground black \ -command hash \ -foreground black \ -text # catch { $base.button#11 configure \ -font -*-Helvetica-Medium-R-Normal-*-*-240-*-*-*-*-*-* } button $base.button#28 \ -activeforeground black \ -foreground black \ -text Redial catch { $base.button#28 configure \ -font -*-Helvetica-Medium-R-Normal-*-*-140-*-*-*-*-*-* } button $base.button#29 \ -activeforeground black \ -command exit \ -foreground black \ -highlightbackground DarkSlateGrey \ -padx 10 \ -pady 3 \ -text Exit catch { $base.button#29 configure \ -font -*-Times-Medium-R-Normal-*-*-0-*-*-*-*-*-* } button $base.button#30 \ -activeforeground black \ -command about \ -foreground black \ -highlightbackground DarkSlateGrey \ -padx 10 \ -pady 3 \ -text About catch { $base.button#30 configure \ -font -*-Times-Medium-R-Normal-*-*-0-*-*-*-*-*-* } button $base.button#31 \ -activeforeground black \ -foreground black \ -highlightbackground DarkSlateGrey \ -padx 10 \ -pady 3 \ -text Help catch { $base.button#31 configure \ -font -*-Times-Medium-R-Normal-*-*-0-*-*-*-*-*-* } label $base.status \ -anchor w \ -borderwidth 4 \ -foreground black \ -justify left \ -padx 5 \ -relief ridge \ -text Ready... \ -textvariable status # Geometry management grid $base.frame#5 -in $root -row 7 -column 2 \ -columnspan 3 \ -sticky w grid $base.frame#7 -in $root -row 5 -column 2 grid $base.frame#8 -in $root -row 6 -column 2 \ -sticky w grid $base.frame#9 -in $root -row 4 -column 2 grid $base.frame#1 -in $root -row 3 -column 4 \ -sticky es grid $base.label#5 -in $root -row 2 -column 1 \ -columnspan 3 \ -sticky nesw grid $base.label#4 -in $root -row 2 -column 6 \ -columnspan 4 \ -sticky nesw grid $base.entry#2 -in $root -row 3 -column 2 \ -sticky nesw grid $base.number -in $root -row 3 -column 6 \ -columnspan 3 \ -sticky nesw grid $base.button#19 -in $base.frame#1 -row 1 -column 1 \ -sticky nesw grid $base.button#20 -in $base.frame#1 -row 2 -column 1 \ -sticky nesw grid $base.button#6 -in $root -row 4 -column 6 grid $base.button#1 -in $root -row 4 -column 7 grid $base.button#4 -in $root -row 4 -column 8 grid $base.button#13 -in $root -row 4 -column 10 \ -sticky nesw grid $base.label#6 -in $base.frame#9 -row 1 -column 1 grid $base.entry#3 -in $base.frame#9 -row 2 -column 1 grid $base.button#3 -in $root -row 5 -column 6 grid $base.button#2 -in $root -row 5 -column 7 grid $base.button#5 -in $root -row 5 -column 8 grid $base.button#14 -in $root -row 5 -column 10 \ -sticky nesw grid $base.label#7 -in $base.frame#7 -row 1 -column 1 grid $base.entry#4 -in $base.frame#7 -row 2 -column 1 grid $base.button#7 -in $root -row 6 -column 6 grid $base.button#8 -in $root -row 6 -column 7 grid $base.button#9 -in $root -row 6 -column 8 grid $base.button#16 -in $root -row 6 -column 10 \ -sticky nesw grid $base.button#32 -in $base.frame#8 -row 1 -column 1 \ -sticky nesw grid $base.button#33 -in $base.frame#8 -row 1 -column 2 \ -sticky nesw grid $base.button#10 -in $root -row 7 -column 6 grid $base.button#12 -in $root -row 7 -column 7 grid $base.button#11 -in $root -row 7 -column 8 grid $base.button#28 -in $root -row 7 -column 10 \ -sticky nesw grid $base.button#29 -in $base.frame#5 -row 1 -column 1 \ -sticky ns grid $base.button#30 -in $base.frame#5 -row 1 -column 2 \ -sticky nesw grid $base.button#31 -in $base.frame#5 -row 1 -column 3 \ -sticky ns grid $base.status -in $root -row 9 -column 1 \ -columnspan 11 \ -sticky nesw # Resize behavior management grid rowconfigure $base.frame#7 1 -weight 0 -minsize 2 grid rowconfigure $base.frame#7 2 -weight 0 -minsize 2 grid columnconfigure $base.frame#7 1 -weight 0 -minsize 30 grid rowconfigure $base.frame#8 1 -weight 0 -minsize 30 grid columnconfigure $base.frame#8 1 -weight 0 -minsize 30 grid columnconfigure $base.frame#8 2 -weight 0 -minsize 41 grid rowconfigure $root 1 -weight 0 -minsize 4 grid rowconfigure $root 2 -weight 0 -minsize 2 grid rowconfigure $root 3 -weight 0 -minsize 39 grid rowconfigure $root 4 -weight 0 -minsize 30 grid rowconfigure $root 5 -weight 0 -minsize 30 grid rowconfigure $root 6 -weight 0 -minsize 30 grid rowconfigure $root 7 -weight 0 -minsize 2 grid rowconfigure $root 8 -weight 0 -minsize 8 grid rowconfigure $root 9 -weight 0 -minsize 30 grid columnconfigure $root 1 -weight 0 -minsize 7 grid columnconfigure $root 2 -weight 0 -minsize 92 grid columnconfigure $root 3 -weight 0 -minsize 7 grid columnconfigure $root 4 -weight 0 -minsize 10 grid columnconfigure $root 5 -weight 0 -minsize 8 grid columnconfigure $root 6 -weight 0 -minsize 30 grid columnconfigure $root 7 -weight 0 -minsize 10 grid columnconfigure $root 8 -weight 0 -minsize 38 grid columnconfigure $root 9 -weight 0 -minsize 6 grid columnconfigure $root 10 -weight 0 -minsize 30 grid columnconfigure $root 11 -weight 0 -minsize 9 grid rowconfigure $base.frame#1 1 -weight 0 -minsize 2 grid rowconfigure $base.frame#1 2 -weight 0 -minsize 2 grid columnconfigure $base.frame#1 1 -weight 0 -minsize 30 grid rowconfigure $base.frame#5 1 -weight 0 -minsize 30 grid columnconfigure $base.frame#5 1 -weight 0 -minsize 30 grid columnconfigure $base.frame#5 2 -weight 0 -minsize 30 grid columnconfigure $base.frame#5 3 -weight 0 -minsize 30 grid rowconfigure $base.frame#9 1 -weight 0 -minsize 2 grid rowconfigure $base.frame#9 2 -weight 0 -minsize 2 grid columnconfigure $base.frame#9 1 -weight 0 -minsize 30 # additional interface code proc num1 {} { .number insert end 1 } proc num2 {} { .number insert end 2 } proc num3 {} { .number insert end 3 } proc num4 {} { .number insert end 4 } proc num5 {} { .number insert end 5 } proc num6 {} { .number insert end 6 } proc num7 {} { .number insert end 7 } proc num8 {} { .number insert end 8 } proc num9 {} { .number insert end 9 } proc num0 {} { .number insert end 0 } proc star {} { .number insert end * } proc hash {} { .number insert end # } proc dialling {} { global status set status "Dialling..." } proc incoming {} { global status set status "Connected to incoming call..." } proc hangup {} { global status set status "Ready..." } proc about {} { tk_messageBox -type ok \ -message "Desktop Telephone\nby Chris Chapman" \ -title "About" ; } # end additional interface code } # Allow interface to be run "stand-alone" for testing catch { if [info exists embed_args] { # we are running in the plugin telephone2_ui . } else { # we are running in stand-alone mode if {$argv0 == [info script]} { wm title . "Desktop Telephone" telephone2_ui . } } } **************************************************************** number 22, probablzu solurce into a wish shell # interface generated by SpecTcl version 1.1 from C:/Program Files/SpecTcl1.1/demo/test3.ui # root is the parent window for this user interface proc test3_ui {root args} { # this treats "." as a special case if {$root == "."} { set base "" } else { set base $root } frame $base.frame#2 \ -borderwidth 2 \ -relief groove frame $base.frame#4 \ -borderwidth 2 \ -relief groove frame $base.frame#5 frame $base.frame#6 frame $base.frame#9 frame $base.frame#1 \ -background #c8c8c8 \ -borderwidth 4 \ -relief sunken label $base.label#3 \ -background #AE00B200C300 \ -foreground #000000000000 \ -highlightbackground #AE00B200C300 \ -highlightcolor Black \ -text Status catch { $base.label#3 configure \ -font {-*-interface user-Medium-R-Normal-*-*-160-*-*-*-*-*-*} } label $base.label#1 \ -background #e6e6e6 \ -text {Not connected} \ -textvariable status entry $base.number \ -cursor {} \ -textvariable number catch { $base.number configure \ -font {-*-MS Sans Serif-Medium-R-Normal-*-*-280-*-*-*-*-*-*} } label $base.label#2 \ -background #AE00B200C300 \ -foreground #000000000000 \ -highlightbackground #AE00B200C300 \ -highlightcolor Black \ -text {Dialing method} catch { $base.label#2 configure \ -font {-*-interface user-Medium-R-Normal-*-*-160-*-*-*-*-*-*} } radiobutton $base.2 \ -anchor w \ -text Tone \ -value 1 \ -variable rbutton radiobutton $base.radiobutton \ -anchor w \ -text Pulse \ -value 0 \ -variable rbutton button $base.button#1 \ -command "key $base.button#1" \ -text 1 button $base.button#2 \ -command "key $base.button#2" \ -text 2 button $base.button#3 \ -command "key $base.button#3" \ -text 3 button $base.button#4 \ -command "key $base.button#4" \ -text 4 button $base.button#5 \ -command "key $base.button#5" \ -text 5 button $base.button#6 \ -command "key $base.button#6" \ -text 6 button $base.button#20 \ -command connect \ -text Dial \ -textvariable dial button $base.button#7 \ -command "key $base.button#7" \ -text 7 button $base.button#8 \ -command "key $base.button#8" \ -text 8 button $base.button#9 \ -command "key $base.button#9" \ -text 9 button $base.button#14 \ -command "key $base.button#14" \ -text * catch { $base.button#14 configure \ -font {-*-MS Sans Serif-Medium-R-Normal-*-*-80-*-*-*-*-*-*} } button $base.button#11 \ -command "key $base.button#11" \ -text 0 button $base.button#15 \ -command "key $base.button#15" \ -text # button $base.button#21 \ -command aswer \ -text Answer \ -textvariable answer label $base.label#4 \ -background #AE00B200C300 \ -foreground #000000000000 \ -highlightbackground #AE00B200C300 \ -highlightcolor Black \ -text Memory catch { $base.label#4 configure \ -font {-*-interface user-Medium-R-Normal-*-*-160-*-*-*-*-*-*} } button $base.button#13 \ -command add \ -text {Add to memory} catch { $base.button#13 configure \ -font {-*-MS Sans Serif-Medium-R-Normal-*-*-80-*-*-*-*-*-*} } listbox $base.listbox#1 \ -height 0 \ -setgrid 1 \ -width 0 catch { $base.listbox#1 configure \ -font {-*-MS Sans Serif-Medium-R-Normal-*-*-80-*-*-*-*-*-*} } scrollbar $base.scrollbar#1 \ -command "$base.listbox#1 yview" \ -orient v button $base.button#16 \ -command remove \ -text {Remove form memory} catch { $base.button#16 configure \ -font {-*-MS Sans Serif-Medium-R-Normal-*-*-80-*-*-*-*-*-*} } # Geometry management grid $base.frame#2 -in $root -row 5 -column 2 grid $base.frame#4 -in $root -row 2 -column 1 \ -rowspan 2 grid $base.frame#5 -in $root -row 1 -column 2 grid $base.frame#6 -in $root -row 5 -column 1 grid $base.frame#9 -in $root -row 4 -column 1 grid $base.frame#1 -in $root -row 3 -column 2 \ -rowspan 2 grid $base.label#3 -in $base.frame#5 -row 1 -column 1 grid $base.label#1 -in $base.frame#5 -row 1 -column 2 grid $base.number -in $root -row 2 -column 2 grid $base.label#2 -in $base.frame#4 -row 1 -column 1 grid $base.2 -in $base.frame#4 -row 2 -column 1 \ -sticky nesw grid $base.radiobutton -in $base.frame#4 -row 3 -column 1 \ -sticky nesw grid $base.button#1 -in $base.frame#1 -row 1 -column 1 grid $base.button#2 -in $base.frame#1 -row 1 -column 2 grid $base.button#3 -in $base.frame#1 -row 1 -column 3 grid $base.button#4 -in $base.frame#1 -row 2 -column 1 grid $base.button#5 -in $base.frame#1 -row 2 -column 2 grid $base.button#6 -in $base.frame#1 -row 2 -column 3 grid $base.button#20 -in $base.frame#9 -row 2 -column 1 grid $base.button#7 -in $base.frame#1 -row 3 -column 1 grid $base.button#8 -in $base.frame#1 -row 3 -column 2 grid $base.button#9 -in $base.frame#1 -row 3 -column 3 grid $base.button#14 -in $base.frame#1 -row 4 -column 1 grid $base.button#11 -in $base.frame#1 -row 4 -column 2 grid $base.button#15 -in $base.frame#1 -row 4 -column 3 grid $base.button#21 -in $base.frame#9 -row 3 -column 1 grid $base.label#4 -in $base.frame#2 -row 1 -column 1 \ -columnspan 2 grid $base.button#13 -in $base.frame#6 -row 1 -column 1 grid $base.listbox#1 -in $base.frame#2 -row 2 -column 1 \ -sticky nesw grid $base.scrollbar#1 -in $base.frame#2 -row 2 -column 2 \ -sticky ns grid $base.button#16 -in $base.frame#6 -row 2 -column 1 # Resize behavior management grid rowconfigure $base.frame#6 1 -weight 0 -minsize 59 grid rowconfigure $base.frame#6 2 -weight 0 -minsize 16 grid columnconfigure $base.frame#6 1 -weight 0 -minsize 30 grid rowconfigure $base.frame#2 1 -weight 0 -minsize 30 grid rowconfigure $base.frame#2 2 -weight 0 -minsize 103 grid columnconfigure $base.frame#2 1 -weight 0 -minsize 192 grid columnconfigure $base.frame#2 2 -weight 0 -minsize 2 grid rowconfigure $base.frame#4 1 -weight 0 -minsize 30 grid rowconfigure $base.frame#4 2 -weight 0 -minsize 30 grid rowconfigure $base.frame#4 3 -weight 0 -minsize 30 grid columnconfigure $base.frame#4 1 -weight 0 -minsize 13 grid rowconfigure $root 1 -weight 0 -minsize 30 grid rowconfigure $root 2 -weight 0 -minsize 44 grid rowconfigure $root 3 -weight 0 -minsize 2 grid rowconfigure $root 4 -weight 0 -minsize 50 grid rowconfigure $root 5 -weight 0 -minsize 157 grid columnconfigure $root 1 -weight 0 -minsize 140 grid columnconfigure $root 2 -weight 0 -minsize 274 grid rowconfigure $base.frame#5 1 -weight 0 -minsize 30 grid columnconfigure $base.frame#5 1 -weight 0 -minsize 30 grid columnconfigure $base.frame#5 2 -weight 0 -minsize 30 grid rowconfigure $base.frame#9 1 -weight 0 -minsize 2 grid rowconfigure $base.frame#9 2 -weight 0 -minsize 63 grid rowconfigure $base.frame#9 3 -weight 0 -minsize 28 grid columnconfigure $base.frame#9 1 -weight 0 -minsize 42 grid rowconfigure $base.frame#1 1 -weight 0 -minsize 30 grid rowconfigure $base.frame#1 2 -weight 0 -minsize 30 grid rowconfigure $base.frame#1 3 -weight 0 -minsize 34 grid rowconfigure $base.frame#1 4 -weight 0 -minsize 30 grid columnconfigure $base.frame#1 1 -weight 0 -minsize 30 grid columnconfigure $base.frame#1 2 -weight 0 -minsize 30 grid columnconfigure $base.frame#1 3 -weight 0 -minsize 34 # additional interface code global number status x dial y set x 0 set y 0 set status "Not connected" set dial Dial set answer Answer bind .listbox#1 {show} proc aswer {} { global status x answer if { $x == 1 } { set status "Not connected" set x [expr $x - 1] set number "" set answer Answer } else { set status Connected set x [expr $x + 1] set answer "Hang Up" } } proc connect {} { global status x dial number y if { $x == 1 } { set status "Not connected" set x [expr $x - 1] set dial Dial set number "" set y 0 } else { set status Connected set x [expr $x + 1] set dial "Hang Up" } } proc add {} { global number y if { $y == 1 } { .listbox#1 insert end $number set number "" set y 0 } } proc remove {} { global number set i [.listbox#1 curselection] .listbox#1 delete $i } proc show {} { global number set i [.listbox#1 curselection] set number [.listbox#1 get $i] } proc key {arg} { global number y set arg [$arg cget -text] switch -regexp -- $arg { {[0-9]} { append number $arg set y 1 } {#} { append number $arg set y 1 } {[*]} { append number $arg set y 1 } } } # end additional interface code } # Allow interface to be run "stand-alone" for testing catch { if [info exists embed_args] { # we are running in the plugin test3_ui . } else { # we are running in stand-alone mode if {$argv0 == [info script]} { wm title . "Testing test3_ui" test3_ui . } } }