lms-video/tcl/dialog_gatom.tcl
Santi Noreña e85d191b46 - Reestructuración de ficheros y directorios general
- merge v0.01 --> Añadido fileselector
- Añadidas fuentes de Gem y Pure Data
- pix2jpg incluído en Gem. Archivos de construcción de Gem modificados.
- Añadido fichero ompiling.txt con instrucciones de compilación
2013-02-04 18:00:17 +01:00

175 lines
6.7 KiB
Tcl

package provide dialog_gatom 0.1
package require wheredoesthisgo
namespace eval ::dialog_gatom:: {
namespace export pdtk_gatom_dialog
}
# array for communicating the position of the radiobuttons (Tk's
# radiobutton widget requires this to be global)
array set gatomlabel_radio {}
############ pdtk_gatom_dialog -- run a gatom dialog #########
proc ::dialog_gatom::escape {sym} {
if {[string length $sym] == 0} {
set ret "-"
} else {
if {[string equal -length 1 $sym "-"]} {
set ret [string replace $sym 0 0 "--"]
} else {
set ret [string map {"$" "#"} $sym]
}
}
return [unspace_text $ret]
}
proc ::dialog_gatom::unescape {sym} {
if {[string equal -length 1 $sym "-"]} {
set ret [string replace $sym 0 0 ""]
} else {
set ret [string map {"#" "$"} $sym]
}
return $ret
}
proc ::dialog_gatom::apply {mytoplevel} {
global gatomlabel_radio
pdsend "$mytoplevel param \
[$mytoplevel.width.entry get] \
[$mytoplevel.limits.lower.entry get] \
[$mytoplevel.limits.upper.entry get] \
[::dialog_gatom::escape [$mytoplevel.gatomlabel.name.entry get]] \
$gatomlabel_radio($mytoplevel) \
[::dialog_gatom::escape [$mytoplevel.s_r.receive.entry get]] \
[::dialog_gatom::escape [$mytoplevel.s_r.send.entry get]]"
}
proc ::dialog_gatom::cancel {mytoplevel} {
pdsend "$mytoplevel cancel"
}
proc ::dialog_gatom::ok {mytoplevel} {
::dialog_gatom::apply $mytoplevel
::dialog_gatom::cancel $mytoplevel
}
# set up the panel with the info from pd
proc ::dialog_gatom::pdtk_gatom_dialog {mytoplevel initwidth initlower initupper \
initgatomlabel_radio \
initgatomlabel initreceive initsend} {
global gatomlabel_radio
set gatomlabel_radio($mytoplevel) $initgatomlabel_radio
if {[winfo exists $mytoplevel]} {
wm deiconify $mytoplevel
raise $mytoplevel
} else {
create_dialog $mytoplevel
}
$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 \
[::dialog_gatom::unescape $initgatomlabel]
}
set gatomlabel_radio($mytoplevel) $initgatomlabel_radio
if {$initsend ne "-"} {
$mytoplevel.s_r.send.entry insert 0 \
[::dialog_gatom::unescape $initsend]
}
if {$initreceive ne "-"} {
$mytoplevel.s_r.receive.entry insert 0 \
[::dialog_gatom::unescape $initreceive]
}
}
proc ::dialog_gatom::create_dialog {mytoplevel} {
global gatomlabel_radio
toplevel $mytoplevel -class DialogWindow
wm title $mytoplevel [_ "Atom Box Properties"]
wm group $mytoplevel .
wm resizable $mytoplevel 0 0
wm transient $mytoplevel $::focused_window
$mytoplevel configure -menu $::dialog_menubar
$mytoplevel configure -padx 0 -pady 0
::pd_bindings::dialog_bindings $mytoplevel "gatom"
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
pack $mytoplevel.limits -side top -fill x
frame $mytoplevel.limits.lower
pack $mytoplevel.limits.lower -side left
label $mytoplevel.limits.lower.label -text [_ "Lower:"]
entry $mytoplevel.limits.lower.entry -width 7
pack $mytoplevel.limits.lower.label $mytoplevel.limits.lower.entry -side left
frame $mytoplevel.limits.upper
pack $mytoplevel.limits.upper -side left
label $mytoplevel.limits.upper.label -text [_ "Upper:"]
entry $mytoplevel.limits.upper.entry -width 7
pack $mytoplevel.limits.upper.label $mytoplevel.limits.upper.entry -side left
labelframe $mytoplevel.gatomlabel -text [_ "Label"] -padx 5 -pady 5 -borderwidth 1
pack $mytoplevel.gatomlabel -side top -fill x -pady 5
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 -text [_ "Left "] \
-variable gatomlabel_radio($mytoplevel) -justify left -takefocus 0
radiobutton $mytoplevel.gatomlabel.radio.right -value 1 -text [_ "Right"] \
-variable gatomlabel_radio($mytoplevel) -justify left -takefocus 0
radiobutton $mytoplevel.gatomlabel.radio.top -value 2 -text [_ "Top"] \
-variable gatomlabel_radio($mytoplevel) -justify left -takefocus 0
radiobutton $mytoplevel.gatomlabel.radio.bottom -value 3 -text [_ "Bottom"] \
-variable gatomlabel_radio($mytoplevel) -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
labelframe $mytoplevel.s_r -text [_ "Messages"] -padx 5 -pady 5 -borderwidth 1
pack $mytoplevel.s_r -side top -fill x
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.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 -expand 1 -pady 2m
button $mytoplevel.buttonframe.cancel -text [_ "Cancel"] \
-command "::dialog_gatom::cancel $mytoplevel"
pack $mytoplevel.buttonframe.cancel -side left -expand 1 -fill x -padx 10
if {$::windowingsystem ne "aqua"} {
button $mytoplevel.buttonframe.apply -text [_ "Apply"] \
-command "::dialog_gatom::apply $mytoplevel"
pack $mytoplevel.buttonframe.apply -side left -expand 1 -fill x -padx 10
}
button $mytoplevel.buttonframe.ok -text [_ "OK"] \
-command "::dialog_gatom::ok $mytoplevel"
pack $mytoplevel.buttonframe.ok -side left -expand 1 -fill x -padx 10
$mytoplevel.width.entry select from 0
$mytoplevel.width.entry select adjust end
focus $mytoplevel.width.entry
}