audience~.tcl 3.03 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
############ audience procedures  -- ydegoyon@free.fr        #########

proc audience_apply {id} {
# strip "." from the TK id to make a variable name suffix 
     set vid [string trimleft $id .]
# for each variable, make a local variable to hold its name...
     set var_graph_width [concat graph_width_$vid]
     global $var_graph_width
     set var_graph_height [concat graph_height_$vid]
     global $var_graph_height
     set var_graph_nboutputs [concat graph_nboutputs_$vid]
     global $var_graph_nboutputs
 
     set cmd [concat $id dialog \
     	[eval concat $$var_graph_width] \
     	[eval concat $$var_graph_height] \
     	[eval concat $$var_graph_nboutputs] \
 	\;]
     #puts stderr $cmd
     pdsend $cmd
}
 
proc audience_cancel {id} {
     set cmd [concat $id cancel \;]
     #puts stderr $cmd
     pdsend $cmd
}
 
proc audience_ok {id} {
     audience_apply $id
     audience_cancel $id
}
 
proc pdtk_audience_dialog {id width height nboutputs} {
     set vid [string trimleft $id .]
     set var_graph_width [concat graph_width_$vid]
     global $var_graph_width
     set var_graph_height [concat graph_height_$vid]
     global $var_graph_height
     set var_graph_nboutputs [concat graph_nboutputs_$vid]
     global $var_graph_nboutputs
 
     set $var_graph_width $width
     set $var_graph_height $height
     set $var_graph_nboutputs $nboutputs
 
     toplevel $id
     wm title $id {audience}
     wm protocol $id WM_DELETE_WINDOW [concat audience_cancel $id]
 
     label $id.label -text {2$ SPACE PROPERTIES}
     pack $id.label -side top
 
     frame $id.buttonframe
     pack $id.buttonframe -side bottom -fill x -pady 2m
     button $id.buttonframe.cancel -text {Cancel}\
     	-command "audience_cancel $id"
     button $id.buttonframe.apply -text {Apply}\
     	-command "audience_apply $id"
     button $id.buttonframe.ok -text {OK}\
     	-command "audience_ok $id"
     pack $id.buttonframe.cancel -side left -expand 1
     pack $id.buttonframe.apply -side left -expand 1
     pack $id.buttonframe.ok -side left -expand 1
     
     frame $id.1rangef
     pack $id.1rangef -side top
     label $id.1rangef.lwidth -text "Width :"
     entry $id.1rangef.width -textvariable $var_graph_width -width 7
     pack $id.1rangef.lwidth $id.1rangef.width -side left
 
     frame $id.2rangef
     pack $id.2rangef -side top
     label $id.2rangef.lheight -text "Height :"
     entry $id.2rangef.height -textvariable $var_graph_height -width 7
     pack $id.2rangef.lheight $id.2rangef.height -side left
 
     frame $id.3rangef
     pack $id.3rangef -side top
     label $id.3rangef.lnboutputs -text "Nb Listeners :"
     entry $id.3rangef.nboutputs -textvariable $var_graph_nboutputs -width 7
     pack $id.3rangef.lnboutputs $id.3rangef.nboutputs -side left
 
     bind $id.1rangef.width <KeyPress-Return> [concat audience_ok $id]
     bind $id.2rangef.height <KeyPress-Return> [concat audience_ok $id]
     bind $id.3rangef.nboutputs <KeyPress-Return> [concat audience_ok $id]
     focus $id.1rangef.width
}

############ audience procedures END -- ydegoyon@free.fr     #########