[PD-cvs] SF.net SVN: pure-data:[10718] branches/pd-devel/0.41.4/src/gatom.tcl
eighthave at users.sourceforge.net
eighthave at users.sourceforge.net
Mon Feb 2 20:13:22 CET 2009
Revision: 10718
http://pure-data.svn.sourceforge.net/pure-data/?rev=10718&view=rev
Author: eighthave
Date: 2009-02-02 19:13:22 +0000 (Mon, 02 Feb 2009)
Log Message:
-----------
- replaced the very obtuse code where there were global variables that had
variable names in it with a system where the widgets themselves are queried
for their values.
-Unfortunately, you still need a global variable with the radiobuttons, so I
switched that to a hash rather than global variables holding variable names
-This line, and those below, will be ignored--
M gatom.tcl
Modified Paths:
--------------
branches/pd-devel/0.41.4/src/gatom.tcl
Modified: branches/pd-devel/0.41.4/src/gatom.tcl
===================================================================
--- branches/pd-devel/0.41.4/src/gatom.tcl 2009-02-02 17:22:20 UTC (rev 10717)
+++ branches/pd-devel/0.41.4/src/gatom.tcl 2009-02-02 19:13:22 UTC (rev 10718)
@@ -7,6 +7,9 @@
namespace export pdtk_gatom_dialog
}
+# the radiobutton widget requires this to be global
+global gatomlabel_position
+
############ pdtk_gatom_dialog -- run a gatom dialog #########
# dialogs like this one can come up in many copies; but in TK the easiest
@@ -28,7 +31,7 @@
set ret [string map {"$" "#"} $sym]
}
}
- return unspace_text $ret
+ return [unspace_text $ret]
}
proc ::gatom::unescape {sym} {
@@ -47,40 +50,16 @@
}
proc ::gatom::apply {mytoplevel} {
- set vid [string trimleft $mytoplevel .]
-
- # TODO replace this $$/global stuff by setting the values that were given
- # to use by Pd directly to the entry boxes, then when calling the apply
- # proc, use [$myentry get]
- set var_gatomwidth [concat gatomwidth_$vid]
- global $var_gatomwidth
- set var_gatomlo [concat gatomlo_$vid]
- global $var_gatomlo
- set var_gatomhi [concat gatomhi_$vid]
- global $var_gatomhi
- set var_gatomwherelabel [concat gatomwherelabel_$vid]
- global $var_gatomwherelabel
- set var_gatomlabel [concat gatomlabel_$vid]
- global $var_gatomlabel
- set var_gatomsymfrom [concat gatomsymfrom_$vid]
- global $var_gatomsymfrom
- set var_gatomsymto [concat gatomsymto_$vid]
- global $var_gatomsymto
-
- # set cmd [concat $id param $gatomwidth $gatomlo $gatomhi \;]
-
- set cmd [concat $mytoplevel param \
- [eval concat $$var_gatomwidth] \
- [eval concat $$var_gatomlo] \
- [eval concat $$var_gatomhi] \
- [eval ::gatom::escape $$var_gatomlabel] \
- [eval concat $$var_gatomwherelabel] \
- [eval ::gatom::escape $$var_gatomsymfrom] \
- [eval ::gatom::escape $$var_gatomsymto] \
- \;]
-
- # puts stderr $cmd
- pdsend $cmd
+ global gatomlabel_position
+
+ pdsend "$mytoplevel param \
+ [$mytoplevel.width.entry get] \
+ [$mytoplevel.limits.lower.entry get] \
+ [$mytoplevel.limits.upper.entry get] \
+ [::gatom::escape [$mytoplevel.gatomlabel.name.entry get]] \
+ $gatomlabel_position($mytoplevel) \
+ [::gatom::escape [$mytoplevel.s_r.send.entry get]] \
+ [::gatom::escape [$mytoplevel.s_r.receive.entry get]]"
}
@@ -104,94 +83,69 @@
::gatom::cancel $mytoplevel
}
-proc ::gatom::pdtk_gatom_dialog {mytoplevel initwidth initlo inithi \
- wherelabel label symfrom symto} {
+proc ::gatom::pdtk_gatom_dialog {mytoplevel initwidth initlower initupper \
+ initgatomlabel_position \
+ initgatomlabel initsend initreceive} {
+ global gatomlabel_position
+ set gatomlabel_position($mytoplevel) $initgatomlabel_position
- set vid [string trimleft $mytoplevel .]
-
- # TODO replace this $$/global stuff by setting the values that were given
- # to use by Pd directly to the entry boxes, then when calling the apply
- # proc, use [$myentry get]
- set var_gatomwidth [concat gatomwidth_$vid]
- global $var_gatomwidth
- set var_gatomlo [concat gatomlo_$vid]
- global $var_gatomlo
- set var_gatomhi [concat gatomhi_$vid]
- global $var_gatomhi
- set var_gatomwherelabel [concat gatomwherelabel_$vid]
- global $var_gatomwherelabel
- set var_gatomlabel [concat gatomlabel_$vid]
- global $var_gatomlabel
- set var_gatomsymfrom [concat gatomsymfrom_$vid]
- global $var_gatomsymfrom
- set var_gatomsymto [concat gatomsymto_$vid]
- global $var_gatomsymto
-
- set $var_gatomwidth $initwidth
- set $var_gatomlo $initlo
- set $var_gatomhi $inithi
- set $var_gatomwherelabel $wherelabel
- set $var_gatomlabel [::gatom::unescape $label]
- set $var_gatomsymfrom [::gatom::unescape $symfrom]
- set $var_gatomsymto [::gatom::unescape $symto]
-
- toplevel $mytoplevel
+ toplevel $mytoplevel -class PdPanel
wm title $mytoplevel "atom box properties"
wm resizable $mytoplevel 0 0
wm protocol $mytoplevel WM_DELETE_WINDOW "::gatom::cancel $mytoplevel"
::pd_bindings::panel_bindings $mytoplevel "gatom"
- frame $mytoplevel.params -height 7
- pack $mytoplevel.params -side top
- label $mytoplevel.params.entryname -text "width"
- entry $mytoplevel.params.entry -textvariable $var_gatomwidth -width 4
- pack $mytoplevel.params.entryname $mytoplevel.params.entry -side left
+ frame $mytoplevel.width -height 7
+ pack $mytoplevel.width -side top
+ label $mytoplevel.width.label -text "width"
+ entry $mytoplevel.width.entry -width 4
+ pack $mytoplevel.width.label $mytoplevel.width.entry -side left
labelframe $mytoplevel.limits -text "limits" -padx 15 -pady 4 -borderwidth 1 \
-font highlight_font
pack $mytoplevel.limits -side top -fill x
frame $mytoplevel.limits.lower
pack $mytoplevel.limits.lower -side left
- label $mytoplevel.limits.lower.entryname -text "lower"
- entry $mytoplevel.limits.lower.entry -textvariable $var_gatomlo -width 8
- pack $mytoplevel.limits.lower.entryname $mytoplevel.limits.lower.entry -side left
+ label $mytoplevel.limits.lower.label -text "lower"
+ entry $mytoplevel.limits.lower.entry -width 8
+ pack $mytoplevel.limits.lower.label $mytoplevel.limits.lower.entry -side left
frame $mytoplevel.limits.upper
pack $mytoplevel.limits.upper -side left
frame $mytoplevel.limits.upper.spacer -width 20
- label $mytoplevel.limits.upper.entryname -text "upper"
- entry $mytoplevel.limits.upper.entry -textvariable $var_gatomhi -width 8
- pack $mytoplevel.limits.upper.spacer $mytoplevel.limits.upper.entryname \
+ label $mytoplevel.limits.upper.label -text "upper"
+ entry $mytoplevel.limits.upper.entry -width 8
+ pack $mytoplevel.limits.upper.spacer $mytoplevel.limits.upper.label \
$mytoplevel.limits.upper.entry -side left
frame $mytoplevel.spacer1 -height 7
pack $mytoplevel.spacer1 -side top
- labelframe $mytoplevel.label -text "label" -padx 5 -pady 4 -borderwidth 1 \
+ labelframe $mytoplevel.gatomlabel -text "label" -padx 5 -pady 4 -borderwidth 1 \
-font highlight_font
- pack $mytoplevel.label -side top -fill x
- frame $mytoplevel.label.name
- pack $mytoplevel.label.name -side top
- entry $mytoplevel.label.name.entry -textvariable $var_gatomlabel -width 33
- pack $mytoplevel.label.name.entry -side left
- frame $mytoplevel.label.radio
- pack $mytoplevel.label.radio -side top
- radiobutton $mytoplevel.label.radio.left -value 0 \
- -variable $var_gatomwherelabel \
- -text "left " -justify left
- radiobutton $mytoplevel.label.radio.right -value 1 \
- -variable $var_gatomwherelabel \
- -text "right" -justify left
- radiobutton $mytoplevel.label.radio.top -value 2 \
- -variable $var_gatomwherelabel \
- -text "top" -justify left
- radiobutton $mytoplevel.label.radio.bottom -value 3 \
- -variable $var_gatomwherelabel \
- -text "bottom" -justify left
- pack $mytoplevel.label.radio.left -side left -anchor w
- pack $mytoplevel.label.radio.right -side right -anchor w
- pack $mytoplevel.label.radio.top -side top -anchor w
- pack $mytoplevel.label.radio.bottom -side bottom -anchor w
+ pack $mytoplevel.gatomlabel -side top -fill x
+ frame $mytoplevel.gatomlabel.name
+ pack $mytoplevel.gatomlabel.name -side top
+ entry $mytoplevel.gatomlabel.name.entry -width 33
+ pack $mytoplevel.gatomlabel.name.entry -side left
+ frame $mytoplevel.gatomlabel.radio
+ pack $mytoplevel.gatomlabel.radio -side top
+ radiobutton $mytoplevel.gatomlabel.radio.left -value 0 \
+ -variable gatomlabel_position($mytoplevel) \
+ -text "left " -justify left -takefocus 0
+ radiobutton $mytoplevel.gatomlabel.radio.right -value 1 \
+ -variable gatomlabel_position($mytoplevel) \
+ -text "right" -justify left -takefocus 0
+ radiobutton $mytoplevel.gatomlabel.radio.top -value 2 \
+ -variable gatomlabel_position($mytoplevel) \
+ -text "top" -justify left -takefocus 0
+ radiobutton $mytoplevel.gatomlabel.radio.bottom -value 3 \
+ -variable gatomlabel_position($mytoplevel) \
+ -text "bottom" -justify left -takefocus 0
+ pack $mytoplevel.gatomlabel.radio.left -side left -anchor w
+ pack $mytoplevel.gatomlabel.radio.right -side right -anchor w
+ pack $mytoplevel.gatomlabel.radio.top -side top -anchor w
+ pack $mytoplevel.gatomlabel.radio.bottom -side bottom -anchor w
frame $mytoplevel.spacer2 -height 7
pack $mytoplevel.spacer2 -side top
@@ -199,31 +153,45 @@
labelframe $mytoplevel.s_r -text "messages" -padx 5 -pady 4 -borderwidth 1 \
-font highlight_font
pack $mytoplevel.s_r -side top -fill x
- frame $mytoplevel.s_r.paramsymto
- pack $mytoplevel.s_r.paramsymto -side top -anchor e
- label $mytoplevel.s_r.paramsymto.entryname -text "send symbol"
- entry $mytoplevel.s_r.paramsymto.entry -textvariable $var_gatomsymto -width 21
- pack $mytoplevel.s_r.paramsymto.entry $mytoplevel.s_r.paramsymto.entryname -side right
+ frame $mytoplevel.s_r.send
+ pack $mytoplevel.s_r.send -side top -anchor e
+ label $mytoplevel.s_r.send.label -text "send symbol"
+ entry $mytoplevel.s_r.send.entry -width 21
+ pack $mytoplevel.s_r.send.entry $mytoplevel.s_r.send.label -side right
- frame $mytoplevel.s_r.paramsymfrom
- pack $mytoplevel.s_r.paramsymfrom -side top -anchor e
- label $mytoplevel.s_r.paramsymfrom.entryname -text "receive symbol"
- entry $mytoplevel.s_r.paramsymfrom.entry -textvariable $var_gatomsymfrom -width 21
- pack $mytoplevel.s_r.paramsymfrom.entry $mytoplevel.s_r.paramsymfrom.entryname -side right
+ frame $mytoplevel.s_r.receive
+ pack $mytoplevel.s_r.receive -side top -anchor e
+ label $mytoplevel.s_r.receive.label -text "receive symbol"
+ entry $mytoplevel.s_r.receive.entry -width 21
+ pack $mytoplevel.s_r.receive.entry $mytoplevel.s_r.receive.label -side right
frame $mytoplevel.buttonframe -pady 5
pack $mytoplevel.buttonframe -side top -fill x -pady 2m
- button $mytoplevel.buttonframe.cancel -text {Cancel}\
+ button $mytoplevel.buttonframe.cancel -text {Cancel} \
-command "::gatom::cancel $mytoplevel"
pack $mytoplevel.buttonframe.cancel -side left -expand 1
- button $mytoplevel.buttonframe.apply -text {Apply}\
+ button $mytoplevel.buttonframe.apply -text {Apply} \
-command "::gatom::apply $mytoplevel"
pack $mytoplevel.buttonframe.apply -side left -expand 1
- button $mytoplevel.buttonframe.ok -text {OK}\
+ button $mytoplevel.buttonframe.ok -text {OK} \
-command "::gatom::ok $mytoplevel"
pack $mytoplevel.buttonframe.ok -side left -expand 1
- $mytoplevel.params.entry select from 0
- $mytoplevel.params.entry select adjust end
- focus $mytoplevel.params.entry
+ $mytoplevel.width.entry insert 0 $initwidth
+ $mytoplevel.limits.lower.entry insert 0 $initlower
+ $mytoplevel.limits.upper.entry insert 0 $initupper
+ if {$initgatomlabel ne "-"} {
+ $mytoplevel.gatomlabel.name.entry insert 0 $initgatomlabel
+ }
+ set gatomlabel_position($mytoplevel) $initgatomlabel_position
+ if {$initsend ne "-"} {
+ $mytoplevel.s_r.send.entry insert 0 $initsend
+ }
+ if {$initreceive ne "-"} {
+ $mytoplevel.s_r.receive.entry insert 0 $initreceive
+ }
+
+ $mytoplevel.width.entry select from 0
+ $mytoplevel.width.entry select adjust end
+ focus $mytoplevel.width.entry
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Pd-cvs
mailing list