/usr/lib/puredata/tcl/dialog_startup.tcl is in puredata-gui 0.46.7-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 91 92 93 94 | package provide dialog_startup 0.1
package require scrollboxwindow
namespace eval dialog_startup {
variable defeatrt_flag 0
namespace export pdtk_startup_dialog
}
########## pdtk_startup_dialog -- dialog window for startup options #########
# Create a simple modal window with an entry widget
# for editing/adding a startup command
# (the next-best-thing to in-place editing)
proc ::dialog_startup::chooseCommand { prompt initialValue } {
global cmd
set cmd $initialValue
toplevel .inputbox
wm title .inputbox $prompt
wm group .inputbox .
wm minsize .inputbox 450 30
wm resizable .inputbox 0 0
wm geom .inputbox "450x30"
# not all Tcl/Tk versions or platforms support -topmost, so catch the error
catch {wm attributes $mytoplevel -topmost 1}
button .inputbox.button -text [_ "OK"] -command { destroy .inputbox } \
-width [::msgcat::mcmax [_ "OK"]]
entry .inputbox.entry -width 50 -textvariable cmd
pack .inputbox.button -side right
bind .inputbox.entry <KeyPress-Return> { destroy .inputbox }
bind .inputbox.entry <KeyPress-Escape> { destroy .inputbox }
pack .inputbox.entry -side right -expand 1 -fill x -padx 2m
focus .inputbox.entry
raise .inputbox
wm transient .inputbox
grab .inputbox
tkwait window .inputbox
return $cmd
}
proc ::dialog_startup::add {} {
return [chooseCommand [_ "Add new library"] ""]
}
proc ::dialog_startup::edit { current_library } {
return [chooseCommand [_ "Edit library"] $current_library]
}
proc ::dialog_startup::commit { new_startup } {
variable defeatrt_button
set ::startup_libraries $new_startup
pdsend "pd startup-dialog $defeatrt_button [pdtk_encodedialog $::startup_flags] $::startup_libraries"
}
# set up the panel with the info from pd
proc ::dialog_startup::pdtk_startup_dialog {mytoplevel defeatrt flags} {
variable defeatrt_button $defeatrt
if {$flags ne ""} {variable ::startup_flags $flags}
if {[winfo exists $mytoplevel]} {
wm deiconify $mytoplevel
raise $mytoplevel
} else {
create_dialog $mytoplevel
}
}
proc ::dialog_startup::create_dialog {mytoplevel} {
::scrollboxwindow::make $mytoplevel $::startup_libraries \
dialog_startup::add dialog_startup::edit dialog_startup::commit \
[_ "Pd libraries to load on startup"] \
400 300
label $mytoplevel.entryname -text [_ "Startup flags:"]
entry $mytoplevel.entry -textvariable ::startup_flags -width 60
pack $mytoplevel.entryname $mytoplevel.entry -side left
pack $mytoplevel.entry -side right -padx 2m -fill x -expand 1
frame $mytoplevel.defeatrtframe
pack $mytoplevel.defeatrtframe -side bottom -fill x -pady 2m
if {$::windowingsystem ne "win32"} {
checkbutton $mytoplevel.defeatrtframe.defeatrt -anchor w \
-text [_ "Defeat real-time scheduling"] \
-variable ::dialog_startup::defeatrt_button
pack $mytoplevel.defeatrtframe.defeatrt -side left
}
}
|