- 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
This commit is contained in:
parent
c9adfd020b
commit
e85d191b46
3100 changed files with 775434 additions and 3073 deletions
94
pd-0.44-2/tcl/scrollboxwindow.tcl
Normal file
94
pd-0.44-2/tcl/scrollboxwindow.tcl
Normal file
|
@ -0,0 +1,94 @@
|
|||
|
||||
####### scrollboxwindow -- scrollbox window with default bindings #########
|
||||
## This is the base dialog behind the Path and Startup dialogs
|
||||
## This namespace specifies everything the two dialogs have in common,
|
||||
## with arguments specifying the differences
|
||||
##
|
||||
## By default, this creates a dialog centered on the viewing area of the screen
|
||||
## with cancel, apply, and OK buttons
|
||||
## which contains a scrollbox widget populated with the given data
|
||||
|
||||
package provide scrollboxwindow 0.1
|
||||
|
||||
package require scrollbox
|
||||
|
||||
namespace eval scrollboxwindow {
|
||||
}
|
||||
|
||||
|
||||
proc ::scrollboxwindow::get_listdata {mytoplevel} {
|
||||
return [$mytoplevel.listbox.box get 0 end]
|
||||
}
|
||||
|
||||
proc ::scrollboxwindow::do_apply {mytoplevel commit_method listdata} {
|
||||
$commit_method [pdtk_encode $listdata]
|
||||
pdsend "pd save-preferences"
|
||||
}
|
||||
|
||||
# Cancel button action
|
||||
proc ::scrollboxwindow::cancel {mytoplevel} {
|
||||
pdsend "$mytoplevel cancel"
|
||||
}
|
||||
|
||||
# Apply button action
|
||||
proc ::scrollboxwindow::apply {mytoplevel commit_method } {
|
||||
do_apply $mytoplevel $commit_method [get_listdata $mytoplevel]
|
||||
}
|
||||
|
||||
# OK button action
|
||||
# The "commit" action can take a second or more,
|
||||
# long enough to be noticeable, so we only write
|
||||
# the changes after closing the dialog
|
||||
proc ::scrollboxwindow::ok {mytoplevel commit_method } {
|
||||
set listdata [get_listdata $mytoplevel]
|
||||
cancel $mytoplevel
|
||||
do_apply $mytoplevel $commit_method $listdata
|
||||
}
|
||||
|
||||
# "Constructor" function for building the window
|
||||
# id -- the window id to use
|
||||
# listdata -- the data used to populate the scrollbox
|
||||
# add_method -- a reference to a proc to be called when the user adds a new item
|
||||
# edit_method -- same as above, for editing and existing item
|
||||
# commit_method -- same as above, to commit during the "apply" action
|
||||
# title -- top-level title for the dialog
|
||||
# width, height -- initial width and height dimensions for the window, also minimum size
|
||||
proc ::scrollboxwindow::make {mytoplevel listdata add_method edit_method commit_method title width height } {
|
||||
wm deiconify .pdwindow
|
||||
raise .pdwindow
|
||||
toplevel $mytoplevel -class DialogWindow
|
||||
wm title $mytoplevel $title
|
||||
wm group $mytoplevel .
|
||||
wm transient $mytoplevel .pdwindow
|
||||
wm protocol $mytoplevel WM_DELETE_WINDOW "::scrollboxwindow::cancel $mytoplevel"
|
||||
|
||||
# Enforce a minimum size for the window
|
||||
wm minsize $mytoplevel $width $height
|
||||
|
||||
# Set the current dimensions of the window
|
||||
wm geometry $mytoplevel "${width}x${height}"
|
||||
|
||||
# Add the scrollbox widget
|
||||
::scrollbox::make $mytoplevel $listdata $add_method $edit_method
|
||||
|
||||
# Use two frames for the buttons, since we want them both
|
||||
# bottom and right
|
||||
frame $mytoplevel.nb
|
||||
pack $mytoplevel.nb -side bottom -fill x -pady 2m
|
||||
|
||||
frame $mytoplevel.nb.buttonframe
|
||||
pack $mytoplevel.nb.buttonframe -side right -padx 2m
|
||||
|
||||
button $mytoplevel.nb.buttonframe.cancel -text [_ "Cancel"]\
|
||||
-command "::scrollboxwindow::cancel $mytoplevel"
|
||||
button $mytoplevel.nb.buttonframe.apply -text [_ "Apply"]\
|
||||
-command "::scrollboxwindow::apply $mytoplevel $commit_method"
|
||||
button $mytoplevel.nb.buttonframe.ok -text [_ "OK"]\
|
||||
-command "::scrollboxwindow::ok $mytoplevel $commit_method"
|
||||
|
||||
pack $mytoplevel.nb.buttonframe.cancel -side left -expand 1 -padx 2m
|
||||
pack $mytoplevel.nb.buttonframe.apply -side left -expand 1 -padx 2m
|
||||
pack $mytoplevel.nb.buttonframe.ok -side left -expand 1 -padx 2m
|
||||
}
|
||||
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue