diff --git a/pd/src/dialog_array.tcl b/pd/src/dialog_array.tcl new file mode 100644 index 0000000000000000000000000000000000000000..0b39567431da70ac151e67ef86eb5199127612fe --- /dev/null +++ b/pd/src/dialog_array.tcl @@ -0,0 +1,456 @@ +package provide dialog_array 0.1 + +# todo: probably not a bad idea to unset these arrays + +namespace eval ::dialog_array:: { + namespace export pdtk_array_dialog + namespace export pdtk_array_listview_new + namespace export pdtk_array_listview_fillpage + namespace export pdtk_array_listview_setpage + namespace export pdtk_array_listview_closeWindow +} + +# global variables for the listview +array set pd_array_listview_entry {} +array set pd_array_listview_id {} +array set pd_array_listview_page {} +set pd_array_listview_pagesize 0 +# this stores the state of the "save me" check button +array set saveme_button {} +# this stores the state of the "joc" check button +array set joc_button {} +# whether to hide the array name +array set hidename_button {} +# this stores the state of the "draw as" radio buttons +array set drawas_button {} +# border color for an element +array set pd_array_outlinecolor {} +# inner color for an element +array set pd_array_fillcolor {} +# this stores the state of the "in new graph"/"in last graph" radio buttons +# and the "delete array" checkbutton +array set otherflag_button {} + +# TODO figure out how to escape $ args so sharptodollar() isn't needed + +############ pdtk_array_dialog -- dialog window for arrays ######### + +# hack: this should just use ::pd_bindings::dialog_bindings from 0.43 API +proc ::dialog_array::dialog_bindings {mytoplevel dialogname} { + variable modifier + + bind $mytoplevel <KeyPress-Escape> "dialog_${dialogname}::cancel $mytoplevel" + bind $mytoplevel <KeyPress-Return> "dialog_${dialogname}::ok $mytoplevel" + bind $mytoplevel <$::modifier-Key-w> "dialog_${dialogname}::cancel $mytoplevel" + # these aren't supported in the dialog, so alert the user, then break so + # that no other key bindings are run + bind $mytoplevel <$::modifier-Key-s> {bell; break} + bind $mytoplevel <$::modifier-Shift-Key-S> {bell; break} + bind $mytoplevel <$::modifier-Key-p> {bell; break} + + wm protocol $mytoplevel WM_DELETE_WINDOW "dialog_${dialogname}::cancel $mytoplevel" +} + +proc ::dialog_array::pdtk_array_listview_setpage {arrayName page} { + set ::pd_array_listview_page($arrayName) $page +} + +proc ::dialog_array::listview_changepage {arrayName np} { + pdtk_array_listview_setpage \ + $arrayName [expr $::pd_array_listview_page($arrayName) + $np] + pdtk_array_listview_fillpage $arrayName +} + +proc ::dialog_array::pdtk_array_listview_fillpage {arrayName} { + set windowName [format ".%sArrayWindow" $arrayName] + set topItem [expr [lindex [$windowName.lb yview] 0] * \ + [$windowName.lb size]] + + if {[winfo exists $windowName]} { + set cmd "$::pd_array_listview_id($arrayName) \ + arrayviewlistfillpage \ + $::pd_array_listview_page($arrayName) \ + $topItem" + + pdsend $cmd + } +} + +proc ::dialog_array::pdtk_array_listview_new {id arrayName page} { + set ::pd_array_listview_page($arrayName) $page + set ::pd_array_listview_id($arrayName) $id + set windowName [format ".%sArrayWindow" $arrayName] + if [winfo exists $windowName] then [destroy $windowName] + toplevel $windowName -class DialogWindow + wm group $windowName . + wm protocol $windowName WM_DELETE_WINDOW \ + "::dialog_array::listview_close $id $arrayName" + wm title $windowName [concat $arrayName "(list view)"] + # FIXME + set font 12 + set $windowName.lb [listbox $windowName.lb -height 20 -width 25\ + -selectmode extended \ + -relief solid -background white -borderwidth 1 \ + -font [format {{%s} %d %s} $::font_family $font $::font_weight]\ + -yscrollcommand "$windowName.lb.sb set"] + set $windowName.lb.sb [scrollbar $windowName.lb.sb \ + -command "$windowName.lb yview" -orient vertical] + place configure $windowName.lb.sb -relheight 1 -relx 0.9 -relwidth 0.1 + pack $windowName.lb -expand 1 -fill both + bind $windowName.lb <Double-ButtonPress-1> \ + "::dialog_array::listview_edit $arrayName $page $font" + # handle copy/paste + switch -- $::windowingsystem { + "x11" {selection handle $windowName.lb \ + "::dialog_array::listview_lbselection $arrayName"} + "win32" {bind $windowName.lb <ButtonPress-3> \ + "::dialog_array::listview_popup $arrayName"} + } + set $windowName.prevBtn [button $windowName.prevBtn -text "<-" \ + -command "::dialog_array::listview_changepage $arrayName -1"] + set $windowName.nextBtn [button $windowName.nextBtn -text "->" \ + -command "::dialog_array::listview_changepage $arrayName 1"] + pack $windowName.prevBtn -side left -ipadx 20 -pady 10 -anchor s + pack $windowName.nextBtn -side right -ipadx 20 -pady 10 -anchor s + focus $windowName +} + +proc ::dialog_array::listview_lbselection {arrayName off size} { + set windowName [format ".%sArrayWindow" $arrayName] + set itemNums [$windowName.lb curselection] + set cbString "" + for {set i 0} {$i < [expr [llength $itemNums] - 1]} {incr i} { + set listItem [$windowName.lb get [lindex $itemNums $i]] + append cbString [string range $listItem \ + [expr [string first ") " $listItem] + 2] \ + end] + append cbString "\n" + } + set listItem [$windowName.lb get [lindex $itemNums $i]] + append cbString [string range $listItem \ + [expr [string first ") " $listItem] + 2] \ + end] + set last $cbString +} + +# Win32 uses a popup menu for copy/paste +proc ::dialog_array::listview_popup {arrayName} { + set windowName [format ".%sArrayWindow" $arrayName] + if [winfo exists $windowName.popup] then [destroy $windowName.popup] + menu $windowName.popup -tearoff false + $windowName.popup add command -label [_ "Copy"] \ + -command "::dialog_array::listview_copy $arrayName; \ + destroy $windowName.popup" + $windowName.popup add command -label [_ "Paste"] \ + -command "::dialog_array::listview_paste $arrayName; \ + destroy $windowName.popup" + tk_popup $windowName.popup [winfo pointerx $windowName] \ + [winfo pointery $windowName] 0 +} + +proc ::dialog_array::listview_copy {arrayName} { + set windowName [format ".%sArrayWindow" $arrayName] + set itemNums [$windowName.lb curselection] + set cbString "" + for {set i 0} {$i < [expr [llength $itemNums] - 1]} {incr i} { + set listItem [$windowName.lb get [lindex $itemNums $i]] + append cbString [string range $listItem \ + [expr [string first ") " $listItem] + 2] \ + end] + append cbString "\n" + } + set listItem [$windowName.lb get [lindex $itemNums $i]] + append cbString [string range $listItem \ + [expr [string first ") " $listItem] + 2] \ + end] + clipboard clear + clipboard append $cbString +} + +proc ::dialog_array::listview_paste {arrayName} { + set cbString [selection get -selection CLIPBOARD] + set lbName [format ".%sArrayWindow.lb" $arrayName] + set itemNum [lindex [$lbName curselection] 0] + set splitChars ", \n" + set itemString [split $cbString $splitChars] + set flag 1 + for {set i 0; set counter 0} {$i < [llength $itemString]} {incr i} { + if {[lindex $itemString $i] ne {}} { + pdsend "$arrayName [expr $itemNum + \ + [expr $counter + \ + [expr $::pd_array_listview_pagesize \ + * $::pd_array_listview_page($arrayName)]]] \ + [lindex $itemString $i]" + incr counter + set flag 0 + } + } +} + +proc ::dialog_array::listview_edit {arrayName page font} { + set lbName [format ".%sArrayWindow.lb" $arrayName] + if {[winfo exists $lbName.entry]} { + ::dialog_array::listview_update_entry \ + $arrayName $::pd_array_listview_entry($arrayName) + unset ::pd_array_listview_entry($arrayName) + } + set itemNum [$lbName index active] + set ::pd_array_listview_entry($arrayName) $itemNum + set bbox [$lbName bbox $itemNum] + set y [expr [lindex $bbox 1] - 4] + set $lbName.entry [entry $lbName.entry \ + -font [format {{%s} %d %s} $::font_family $font $::font_weight]] + $lbName.entry insert 0 [] + place configure $lbName.entry -relx 0 -y $y -relwidth 1 + lower $lbName.entry + focus $lbName.entry + bind $lbName.entry <Return> \ + "::dialog_array::listview_update_entry $arrayName $itemNum;" +} + +proc ::dialog_array::listview_update_entry {arrayName itemNum} { + set lbName [format ".%sArrayWindow.lb" $arrayName] + set splitChars ", \n" + set itemString [split [$lbName.entry get] $splitChars] + set flag 1 + for {set i 0; set counter 0} {$i < [llength $itemString]} {incr i} { + if {[lindex $itemString $i] ne {}} { + pdsend "$arrayName [expr $itemNum + \ + [expr $counter + \ + [expr $::pd_array_listview_pagesize \ + * $::pd_array_listview_page($arrayName)]]] \ + [lindex $itemString $i]" + incr counter + set flag 0 + } + } + pdtk_array_listview_fillpage $arrayName + destroy $lbName.entry +} + +proc ::dialog_array::pdtk_array_listview_closeWindow {arrayName} { + set mytoplevel [format ".%sArrayWindow" $arrayName] + destroy $mytoplevel +} + +proc ::dialog_array::listview_close {mytoplevel arrayName} { + pdtk_array_listview_closeWindow $arrayName + pdsend "$mytoplevel arrayviewclose" +} + +proc ::dialog_array::apply {mytoplevel} { +# TODO figure out how to ditch this escaping mechanism + set mofo [$mytoplevel.name.entry get] + if {[string index $mofo 0] == "$"} { + set mofo [string replace $mofo 0 0 #] } +pdtk_post "drawas is $::drawas_button($mytoplevel)\n" +pdtk_post "full bajitas is \ + [expr $::saveme_button($mytoplevel) + \ + (2 * $::drawas_button($mytoplevel)) + \ + (8 * $::hidename_button($mytoplevel)) + \ + (16 * $::joc_button($mytoplevel))] \ +\n" + +pdtk_post "mytop fucking level is $mytoplevel\n" + pd "[concat $mytoplevel arraydialog \ + $mofo \ + [$mytoplevel.size.entry get] \ + [expr $::saveme_button($mytoplevel) + \ + (2 * $::drawas_button($mytoplevel)) + \ + (8 * $::hidename_button($mytoplevel)) + \ + (16 * $::joc_button($mytoplevel))] \ + $::otherflag_button($mytoplevel) \ + $::pd_array_fillcolor($mytoplevel) \ + $::pd_array_outlinecolor($mytoplevel) \ + \; ]" +} + +proc ::dialog_array::openlistview {mytoplevel} { + pdsend "$mytoplevel arrayviewlistnew" +} + +proc ::dialog_array::choosecolor {mytoplevel type} { + set colorp [format "::pd_array_%scolor(%s)" $type $mytoplevel] + if {[info exists $colorp]} { + set initcolor [set $colorp] + } else { + set initcolor "black"} + set tmp [tk_chooseColor -parent $mytoplevel -initialcolor $initcolor] + if {$tmp eq ""} {return} else {set $colorp $tmp} +} + +proc ::dialog_array::update_colorpreview {color widget args} { + upvar #0 $color c + $widget configure -background $c -activebackground $c +} + +proc ::dialog_array::update_drawas {mytoplevel outlineframe filllabel args} { + if {$::drawas_button($mytoplevel) == 3} { + pack $outlineframe -before $mytoplevel.colors.o -side top -anchor w + $filllabel configure -text "Outline color" + } else { + pack forget $outlineframe + $filllabel configure -text "Trace color" + } +} + +proc ::dialog_array::cancel {mytoplevel} { + pd "[concat $mytoplevel cancel \;]" +} + +proc ::dialog_array::ok {mytoplevel} { + ::dialog_array::apply $mytoplevel + ::dialog_array::cancel $mytoplevel +} + +proc ::dialog_array::pdtk_array_dialog {mytoplevel name \ + size flags newone fillcolor outlinecolor} { +if {[catch { + if {[winfo exists $mytoplevel]} { + wm deiconify $mytoplevel + raise $mytoplevel + } else { + create_dialog $mytoplevel $newone + } +} fid]} {pdtk_post "error: $fid\n"} + $mytoplevel.name.entry insert 0 $name + $mytoplevel.size.entry insert 0 $size + set ::saveme_button($mytoplevel) [expr $flags & 1] + set ::drawas_button($mytoplevel) [expr ( $flags & 6 ) >> 1] + set ::hidename_button($mytoplevel) [expr ( $flags & 8 ) >> 3] + set ::joc_button($mytoplevel) [expr ( $flags & 16) >> 4] + set ::otherflag_button($mytoplevel) 0 + set ::pd_array_fillcolor($mytoplevel) $fillcolor + set ::pd_array_outlinecolor($mytoplevel) $outlinecolor + +# pd -> tcl +# 2 * (int)(template_getfloat(template_findbyname(sc->sc_template), gensym("style"), x->x_scalar->sc_vec, 1))); + +# tcl->pd +# int style = ((flags & 6) >> 1); +} + +proc ::dialog_array::create_dialog {mytoplevel newone} { + toplevel $mytoplevel -class DialogWindow + wm title $mytoplevel [_ "Array 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 + # bad hack... this should just be ::pd_bindings:: + # from the 0.43 API + ::dialog_array::dialog_bindings $mytoplevel "array" + + frame $mytoplevel.name + pack $mytoplevel.name -side top + label $mytoplevel.name.label -text [_ "Name:"] + entry $mytoplevel.name.entry + pack $mytoplevel.name.label $mytoplevel.name.entry -anchor w + + frame $mytoplevel.size + pack $mytoplevel.size -side top + label $mytoplevel.size.label -text [_ "Size:"] + entry $mytoplevel.size.entry + pack $mytoplevel.size.label $mytoplevel.size.entry -anchor w + + frame $mytoplevel.flags + pack $mytoplevel.flags -side top -fill x -padx 20 + checkbutton $mytoplevel.flags.saveme -text [_ "Save contents"] \ + -variable ::saveme_button($mytoplevel) + pack $mytoplevel.flags.saveme -side top -anchor w + checkbutton $mytoplevel.flags.joc -text [_ "Jump on click"] \ + -variable ::joc_button($mytoplevel) -anchor w + pack $mytoplevel.flags.joc -side top -anchor w + checkbutton $mytoplevel.flags.hidename -text [_ "Hide array name"] \ + -variable ::hidename_button($mytoplevel) -anchor w + pack $mytoplevel.flags.hidename -side top -anchor w + + labelframe $mytoplevel.drawas -text [_ "Draw as:"] -padx 20 -borderwidth 1 + pack $mytoplevel.drawas -side top -fill x + radiobutton $mytoplevel.drawas.points -value 1 \ + -variable ::drawas_button($mytoplevel) -text [_ "Points"] + radiobutton $mytoplevel.drawas.polygon -value 0 \ + -variable ::drawas_button($mytoplevel) -text [_ "Polygon"] + radiobutton $mytoplevel.drawas.bezier -value 2 \ + -variable ::drawas_button($mytoplevel) -text [_ "Bezier curve"] + radiobutton $mytoplevel.drawas.bargraph -value 3 \ + -variable ::drawas_button($mytoplevel) -text [_ "Bargraph"] + pack $mytoplevel.drawas.points -side top -anchor w + pack $mytoplevel.drawas.polygon -side top -anchor w + pack $mytoplevel.drawas.bezier -side top -anchor w + pack $mytoplevel.drawas.bargraph -side top -anchor w + trace add variable ::drawas_button($mytoplevel) write \ + "::dialog_array::update_drawas $mytoplevel $mytoplevel.colors.f \ + $mytoplevel.colors.o.outlinecolor" + + set fillp ::pd_array_fillcolor($mytoplevel) + set outlinep ::pd_array_outlinecolor($mytoplevel) + labelframe $mytoplevel.colors -text [_ "Colors:"] -padx 20 -pady 5 \ + -borderwidth 1 + pack $mytoplevel.colors -side top -fill both + frame $mytoplevel.colors.f + frame $mytoplevel.colors.o + pack $mytoplevel.colors.f -side top -anchor w + pack $mytoplevel.colors.o -side top -anchor w + set fillpreview $mytoplevel.colors.f.preview + set flabel [label $mytoplevel.colors.f.fillcolor -text [_ "Fill color"]] + set olabel \ + [label $mytoplevel.colors.o.outlinecolor -text [_ "Outline color"]] + bind $flabel <Enter> "$flabel configure -foreground blue" + bind $flabel <Leave> "$flabel configure -foreground black" + bind $flabel <1> "::dialog_array::choosecolor $mytoplevel fill" + bind $olabel <Enter> "$olabel configure -foreground blue" + bind $olabel <Leave> "$olabel configure -foreground black" + bind $olabel <1> "::dialog_array::choosecolor $mytoplevel outline" + button $fillpreview -relief raised -padx 7 -pady 0 \ + -command "::dialog_array::choosecolor $mytoplevel fill" + set outlinepreview $mytoplevel.colors.o.preview + button $outlinepreview -relief raised -padx 7 -pady 0 \ + -command \ + "::dialog_array::choosecolor $mytoplevel outline" + #automagically update the preview buttons when the variables are changed + trace add variable $fillp write \ + "::dialog_array::update_colorpreview $fillp $fillpreview" + trace add variable $outlinep write \ + "::dialog_array::update_colorpreview $outlinep $outlinepreview" + pack $mytoplevel.colors.f.fillcolor -side right -anchor w + pack $mytoplevel.colors.f.preview -side left -anchor e -padx 3 + pack $mytoplevel.colors.o.outlinecolor -side right -anchor w + pack $mytoplevel.colors.o.preview -side left -anchor e -padx 3 + + if {$newone != 0} { + labelframe $mytoplevel.radio -text [_ "Put array into:"] -padx 20 -borderwidth 1 + pack $mytoplevel.radio -side top -fill x + radiobutton $mytoplevel.radio.radio0 -value 0 \ + -variable ::otherflag_button($mytoplevel) -text [_ "New graph"] + radiobutton $mytoplevel.radio.radio1 -value 1 \ + -variable ::otherflag_button($mytoplevel) -text [_ "Last graph"] + pack $mytoplevel.radio.radio0 -side top -anchor w + pack $mytoplevel.radio.radio1 -side top -anchor w + } else { + checkbutton $mytoplevel.deletearray -text [_ "Delete array"] \ + -variable ::otherflag_button($mytoplevel) -anchor w + pack $mytoplevel.deletearray -side top + } + # jsarlo + if {$newone == 0} { + button $mytoplevel.listview -text [_ "Open List View..."] \ + -command "::dialog_array::openlistview $mytoplevel [$mytoplevel.name.entry get]" + pack $mytoplevel.listview -side top + } + # end jsarlo + frame $mytoplevel.buttonframe + pack $mytoplevel.buttonframe -side bottom -expand 1 -fill x -pady 2m + button $mytoplevel.buttonframe.cancel -text [_ "Cancel"] \ + -command "::dialog_array::cancel $mytoplevel" + pack $mytoplevel.buttonframe.cancel -side left -expand 1 -fill x -padx 10 + if {$newone == 0 && $::windowingsystem ne "aqua"} { + button $mytoplevel.buttonframe.apply -text [_ "Apply"] \ + -command "::dialog_array::apply $mytoplevel" + pack $mytoplevel.buttonframe.apply -side left -expand 1 -fill x -padx 10 + } + button $mytoplevel.buttonframe.ok -text [_ "OK"]\ + -command "::dialog_array::ok $mytoplevel" + pack $mytoplevel.buttonframe.ok -side left -expand 1 -fill x -padx 10 +} diff --git a/pd/src/dialog_audio.tcl b/pd/src/dialog_audio.tcl new file mode 100644 index 0000000000000000000000000000000000000000..878adacdd6d60506a2fb4af9d8f3f5613b9be3cb --- /dev/null +++ b/pd/src/dialog_audio.tcl @@ -0,0 +1,353 @@ +package provide dialog_audio 0.1 + +namespace eval ::dialog_audio:: { +# namespace export pdtk_audio_dialog +} + +# TODO this panel really needs some reworking, it works but the code is very +# unreadable. The panel could look a lot better too, like using menubuttons +# instead of regular buttons with tk_popup for pulldown menus. +# * make sure combobox is setting the device number +# * get focus order to do right +# * add "Close" button to prefs dialog + +####################### audio dialog ##################3 + +proc ::dialog_audio::apply {mytoplevel} { + global audio_indev1 audio_indev2 audio_indev3 audio_indev4 + global audio_inchan1 audio_inchan2 audio_inchan3 audio_inchan4 + global audio_inenable1 audio_inenable2 audio_inenable3 audio_inenable4 + global audio_outdev1 audio_outdev2 audio_outdev3 audio_outdev4 + global audio_outchan1 audio_outchan2 audio_outchan3 audio_outchan4 + global audio_outenable1 audio_outenable2 audio_outenable3 audio_outenable4 + global audio_sr audio_advance audio_callback audio_blocksize + + # Hackety hack! Rather than make this audio dialog code sane, + # which would be a larger project, I'm just making the user interface + # look more friendly. The global "enable" variables were used + # for checkbuttons; I simplified the interface by removing them and + # adding a "None" option to the device list. This means I have + # to parse the dev names for the string "None" and set the "enable" + # variables accordingly. I also assume "None" is the last value in the + # list. + + foreach type {in out} { + foreach i {1 2 3 4} { + if {[set audio_${type}dev${i}] == \ + [llength [set ::audio_${type}devlist]] || + [set audio_${type}chan${i}] <= 0} { + set audio_${type}dev${i} 0 + set audio_${type}enable${i} 0 + set audio_${type}chan${i} 0 + } else { + set audio_${type}enable${i} 1 + } + } + } + + pd [concat pd audio-dialog \ + $audio_indev1 \ + $audio_indev2 \ + $audio_indev3 \ + $audio_indev4 \ + [expr $audio_inchan1 * ( $audio_inenable1 ? 1 : -1 ) ]\ + [expr $audio_inchan2 * ( $audio_inenable2 ? 1 : -1 ) ]\ + [expr $audio_inchan3 * ( $audio_inenable3 ? 1 : -1 ) ]\ + [expr $audio_inchan4 * ( $audio_inenable4 ? 1 : -1 ) ]\ + $audio_outdev1 \ + $audio_outdev2 \ + $audio_outdev3 \ + $audio_outdev4 \ + [expr $audio_outchan1 * ( $audio_outenable1 ? 1 : -1 ) ]\ + [expr $audio_outchan2 * ( $audio_outenable2 ? 1 : -1 ) ]\ + [expr $audio_outchan3 * ( $audio_outenable3 ? 1 : -1 ) ]\ + [expr $audio_outchan4 * ( $audio_outenable4 ? 1 : -1 ) ]\ + $audio_sr \ + $audio_advance \ + $audio_callback \ + $audio_blocksize" \ + \;] + + # Pd always makes devices contiguous-- for example, if you only set + # device 1 and device 3 it will change device 3 to device 2. + # So we look for non-contiguous devices and request an update + # on connect so that the user doesn't see incorrect information + # in the GUI. This rebuilds part of the dialog window which causes + # a slight flicker-- otherwise I'd just do this everytime: + # pdsend "pd audio-properties $::audio_longform + foreach type {in out} { + set empty_dev 0 + set aliased_dev 0 + foreach i {1 2 3 4} { + set enabled [set audio_${type}enable$i] + if {$empty_dev && $enabled} { + set aliased_dev 1 + break + } elseif {!$enabled} {incr empty_dev} + } + if {$aliased_dev} { + pd [concat pd audio-properties $::audio_longform \;] + break + } + } + pd [concat pd save-preferences \;] +} + +proc ::dialog_audio::cancel {mytoplevel} { +# pdsend "$mytoplevel cancel" +} + +proc ::dialog_audio::ok {mytoplevel} { + ::dialog_audio::apply $mytoplevel + ::dialog_audio::cancel $mytoplevel +} + +proc ::dialog_audio::setapi {var - op} { + if {$op ne "write"} {return} + set name [set $var] + set index [lsearch -exact -index 0 $::pd_apilist $name] + set ::pd_whichapi [lindex $::pd_apilist $index 1] + pd [concat pd audio-setapi $::pd_whichapi \;] +} + +proc ::dialog_audio::setlongform {widget} { + set state [set ::$widget] + if {$state == 0} { + # back to single devs + set extra_devs 0 + foreach type {in out} { + foreach i {2 3 4} { + if { [set ::audio_${type}chan$i] > 0 && + [set ::audio_${type}enable$i] > 0 } { + incr extra_devs + } + } + } + if {$extra_devs} { + set devices devices + if {$extra_devs == 1} {set devices device} + set continue [tk_messageBox -type yesno -message \ + [_ "This will disconnect $extra_devs $devices. Continue?"] \ + -default "no" -parent [winfo parent $widget] -icon question] + if {$continue eq "yes"} { + foreach type {in out} { + foreach i {2 3 4} { + set ::audio_${type}chan$i 0 + set ::audio_${type}enable$i 0 + } + } + ::dialog_audio::apply [winfo parent $widget] + } + } + } + pd [concat pd audio-properties $state \;] +} + +# start a dialog window to select audio devices and settings. "multi" +# is 0 if only one device is allowed; 1 if one apiece may be specified for +# input and output; and 2 if we can select multiple devices. "longform" +# (which only makes sense if "multi" is 2) asks us to make controls for +# opening several devices; if not, we get an extra button to turn longform +# on and restart the dialog. + +proc ::dialog_audio::pdtk_audio_dialog {id \ + indev1 indev2 indev3 indev4 \ + inchan1 inchan2 inchan3 inchan4 \ + outdev1 outdev2 outdev3 outdev4 \ + outchan1 outchan2 outchan3 outchan4 sr advance multi callback \ + longform blocksize} { + global audio_indev1 audio_indev2 audio_indev3 audio_indev4 + global audio_inchan1 audio_inchan2 audio_inchan3 audio_inchan4 + global audio_inenable1 audio_inenable2 audio_inenable3 audio_inenable4 + global audio_outdev1 audio_outdev2 audio_outdev3 audio_outdev4 + global audio_outchan1 audio_outchan2 audio_outchan3 audio_outchan4 + global audio_outenable1 audio_outenable2 audio_outenable3 audio_outenable4 + global audio_sr audio_advance audio_callback audio_blocksize + global audio_indevlist audio_outdevlist + global pd_indev pd_outdev + global audio_longform + + set audio_inchan1 [expr ( $inchan1 > 0 ? $inchan1 : -$inchan1 ) ] + set audio_inenable1 [expr $inchan1 > 0 ] + set audio_inchan2 [expr ( $inchan2 > 0 ? $inchan2 : -$inchan2 ) ] + set audio_inenable2 [expr $inchan2 > 0 ] + set audio_inchan3 [expr ( $inchan3 > 0 ? $inchan3 : -$inchan3 ) ] + set audio_inenable3 [expr $inchan3 > 0 ] + set audio_inchan4 [expr ( $inchan4 > 0 ? $inchan4 : -$inchan4 ) ] + set audio_inenable4 [expr $inchan4 > 0 ] + + # "None" is added as the last value in the dropdown menu, so it's + # equivalent to the length of the devlist + set nonein [llength $audio_indevlist] + set noneout [llength $audio_outdevlist] + + set audio_indev1 [expr ( $audio_inenable1 ? $indev1 : $nonein )] + set audio_indev2 [expr ( $audio_inenable2 ? $indev2 : $nonein )] + set audio_indev3 [expr ( $audio_inenable3 ? $indev3 : $nonein )] + set audio_indev4 [expr ( $audio_inenable4 ? $indev4 : $nonein )] + + set audio_outchan1 [expr ( $outchan1 > 0 ? $outchan1 : -$outchan1 ) ] + set audio_outenable1 [expr $outchan1 > 0 ] + set audio_outchan2 [expr ( $outchan2 > 0 ? $outchan2 : -$outchan2 ) ] + set audio_outenable2 [expr $outchan2 > 0 ] + set audio_outchan3 [expr ( $outchan3 > 0 ? $outchan3 : -$outchan3 ) ] + set audio_outenable3 [expr $outchan3 > 0 ] + set audio_outchan4 [expr ( $outchan4 > 0 ? $outchan4 : -$outchan4 ) ] + set audio_outenable4 [expr $outchan4 > 0 ] + + set audio_outdev1 [expr ( $audio_outenable1 ? $outdev1 : $noneout )] + set audio_outdev2 [expr ( $audio_outenable2 ? $outdev2 : $noneout )] + set audio_outdev3 [expr ( $audio_outenable3 ? $outdev3 : $noneout )] + set audio_outdev4 [expr ( $audio_outenable4 ? $outdev4 : $noneout )] + + set audio_sr $sr + set audio_advance $advance + set audio_callback $callback + set audio_blocksize $blocksize + set audio_longform $longform + + set mytoplevel .prefs.nb.audio + set apifr $mytoplevel.api + if {![winfo exists $apifr]} { + + # Audio API + ttk::labelframe $mytoplevel.api -text [_ "Audio API"] \ + -style Prefs.TLabelframe + pack $apifr -side top -padx 1 -pady 1 -fill x + set api_names {} + set ::audio_apiname {}; + foreach api $::pd_apilist {lappend api_names [lindex $api 0]} + set api_i [lsearch -exact -index 1 $::pd_apilist $::pd_whichapi] + set ::audio_apiname [lindex $::pd_apilist $api_i 0] + ::dialog_prefs::dropdown $apifr.apilist ::audio_apiname $api_names + trace add variable ::audio_apiname write ::dialog_audio::setapi + grid $apifr.apilist -sticky e -column 0 -row 0 -padx 3 -pady 10 + ttk::checkbutton $apifr.longbutton -text "Use multiple devices" \ + -command "::dialog_audio::setlongform $apifr.longbutton" + grid $apifr.longbutton -sticky w -column 1 -row 0 -padx 3 -pady 10 + grid columnconfigure $apifr {0 1} -weight 1 + } + # disable longbutton if hardware doesn't support multi devices + set state normal + if {![expr [llength $audio_indevlist] > 1 && \ + $multi>1 && [llength $audio_outdevlist] > 1]} { + set state disabled + } + $apifr.longbutton configure -state $state + + # frame to encapsulate api-specific settings and devices, + # as well as the "Connect" button + set afr $mytoplevel.audio + + destroy $afr + ttk::frame $afr + pack $afr -side top -fill x + + # todo: put padding with style settings in dialog_prefs.tcl + set padx 1 + + # sample rate and advance + set sfr [ttk::labelframe $afr.settings -text [_ "Settings"] \ + -style Prefs.TLabelframe -padding 5 ] + pack $sfr -side top -fill x -padx 3 -pady 10 + ttk::label $sfr.l1 -text [_ "Sample rate"] + ttk::label $sfr.l2 -text [_ "Block size"] + ::dialog_prefs::dropdown $sfr.x2 \ + ::audio_blocksize {64 128 256 512 1024 2048} + ttk::entry $sfr.x1 -textvariable audio_sr -width 7 + ttk::label $sfr.l3 -text [_ "Delay (ms)"] + ttk::entry $sfr.x3 -textvariable audio_advance -width 7 + grid $sfr.l1 -row 0 -sticky e -padx $padx + grid $sfr.x1 -row 0 -column 1 -sticky w -padx $padx + grid $sfr.l2 -row 0 -column 2 -sticky e -padx $padx + grid $sfr.x2 -row 0 -column 3 -sticky w -padx $padx + grid $sfr.l3 -row 1 -column 0 -sticky e -padx $padx + grid $sfr.x3 -row 1 -column 1 -sticky w -padx $padx + if {$audio_callback >= 0} { + ttk::label $sfr.l4 -text [_ "Use callbacks"] -anchor e + ttk::checkbutton $sfr.x4 -variable audio_callback + grid $sfr.l4 -column 2 -row 1 -sticky e -padx $padx + grid $sfr.x4 -column 3 -row 1 -sticky w -padx $padx + } + grid columnconfigure $sfr {0 2} -weight 1 + grid columnconfigure $sfr {1 3} -weight 2 + + # Devices + set devfr [ttk::labelframe $afr.devs -text [_ "Devices"] \ + -style Prefs.TLabelframe] + pack $devfr -side top -fill x -padx 3 -pady 10 + set j 2 + # todo: change in out to input output and make translatable strings + foreach {type name} [list in [_ "Input"] out [_ "Output"]] { + set domulti [expr $longform && $multi > 1 && \ + [llength [set "audio_${type}devlist"]] > 1] + if {$domulti} { + ttk::label $devfr.$type \ + -text [concat $name [_ "Devices"]] + ttk::label $devfr.${type}ch -text [_ "Channels"] + grid $devfr.$type -row $j -column 1 -padx $padx + grid $devfr.${type}ch -row $j -column 3 -padx $padx + incr j + } else { + if {$type eq "in"} { + ttk::label $devfr.$type \ + -text [_ "Device Name"] + ttk::label $devfr.${type}ch -text [_ "Channels"] + grid $devfr.$type -row $j -column 1 -columnspan 2 -padx $padx + grid $devfr.${type}ch -row $j -column 3 -padx $padx + incr j + } + } + # Note: it'd be fairly easy to change the GUI to accommodate + # more than four devices, but Pd only takes and receives at most + # four devices, so the entire backend would have to change in order + # to do that + for {set i 0} {$i < 4} \ + {incr i} { + set devno [expr $i + 1] + set row "$devfr.${type}$devno" + if {$domulti} { + set ctext "$devno." + } else { + set ctext $name + } + ttk::label ${row}x0 -text $ctext -anchor w + set ::audio_${type}dev${devno}label {} + ::dialog_prefs::dropdown_by_index ${row}x1 \ + "::audio_${type}dev$devno" \ + [concat [set audio_${type}devlist] None] \ + "::audio_${type}dev${devno}label" + if {[set audio_${type}enable$devno] > 0} { + ::dialog_prefs::dropdown_set ${row}x1 [lindex [set audio_${type}devlist] [set audio_${type}dev$devno]] + } else { + ::dialog_prefs::dropdown_set ${row}x1 "None" + set audio_${type} [llength [set audio_${type}devlist]] + } + ttk::entry ${row}x2 -textvariable "audio_${type}chan$devno" -width 4 + grid ${row}x0 -row $j -column 0 -sticky e -padx $padx + grid ${row}x1 -row $j -column 1 -columnspan 2 -sticky ew -padx $padx + grid ${row}x2 -row $j -column 3 -padx $padx + grid columnconfigure $afr.devs {1 2 3} -weight 2 + grid columnconfigure $afr.devs 0 -weight 1 + incr j + if {![expr $longform && $multi > 1 && \ + [llength [set "audio_${type}devlist"]] > 1]} { + break + } + } + } + grid rowconfigure $devfr all -pad 3 + + # Connect button + ttk::frame $afr.buttonframe + pack $afr.buttonframe + pack $afr.buttonframe -side bottom + ttk::button $afr.buttonframe.apply -text [_ "Apply Audio Settings"]\ + -command "::dialog_audio::apply $mytoplevel" + pack $afr.buttonframe.apply -side left -expand 1 -fill x \ + -padx 15 + +# $sfr.x1 select from 0 +# $sfr.x1 select adjust end + focus $apifr.apilist +} diff --git a/pd/src/dialog_gui.tcl b/pd/src/dialog_gui.tcl new file mode 100644 index 0000000000000000000000000000000000000000..fce8d34bc9b74ec90ec626d44bddd953c565c65a --- /dev/null +++ b/pd/src/dialog_gui.tcl @@ -0,0 +1,314 @@ +package provide dialog_gui 0.1 +package require dialog_prefs + +namespace eval ::dialog_gui:: { + namespace export create_gui_dialog +} + +####################### gui dialog ##################3 + +proc ::dialog_gui::apply {mytoplevel} { + # nothing to do +} + +proc ::dialog_gui::cancel {mytoplevel} { +# pdsend "$mytoplevel cancel" +} + +proc ::dialog_gui::ok {mytoplevel} { + ::dialog_gui::apply $mytoplevel + ::dialog_gui::cancel $mytoplevel +} + +proc ::dialog_gui::setswatch {b swatch} { + $b configure -image $swatch +} + +# this is triggered whenever the ::gui_preset +# variable is written to +proc ::dialog_gui::set_gui_preset {args} { + set choice $::gui_preset + switch $choice { + Vanilla { + set ::pd_colors(atom_box) white + set ::pd_colors(atom_box_border) black + set ::pd_colors(canvas_color) white + set ::pd_colors(canvas_cursor) black + set ::pd_colors(text) black + set ::pd_colors(box) white + set ::pd_colors(box_border) black + set ::pd_colors(msg) white + set ::pd_colors(msg_border) black + set ::pd_colors(iemgui_border) black + set ::pd_colors(control_cord) black + set ::pd_colors(control_nlet) white + set ::pd_colors(iemgui_nlet) black + set ::pd_colors(signal_cord) black + set ::pd_colors(signal_nlet) $::pd_colors(signal_cord) + set ::pd_colors(control_nlet) white + set ::pd_colors(xlet_hover) grey + set ::pd_colors(link) blue + set ::pd_colors(selection) blue + set ::pd_colors(selection_rectangle) black + set ::pd_colors(highlighted_text) black + set ::pd_colors(highlighted_text_bg) #c3c3c3 + set ::pd_colors(dash_outline) "#f00" + set ::pd_colors(dash_fill) white + set ::pd_colors(graph_border) black + set ::pd_colors(graph) white + set ::pd_colors(magic_glass_bg) black + set ::pd_colors(magic_glass_bd) black + set ::pd_colors(magic_glass_text) "#ffffff" + set ::pd_colors(magic_glass_flash) "#e87216" + } + Inverted { + set ::pd_colors(atom_box) black + set ::pd_colors(atom_box_border) white + set ::pd_colors(canvas_color) black + set ::pd_colors(canvas_cursor) white + set ::pd_colors(text) white + set ::pd_colors(box) black + set ::pd_colors(box_border) white + set ::pd_colors(msg) black + set ::pd_colors(msg_border) white + set ::pd_colors(iemgui_border) white + set ::pd_colors(control_cord) white + set ::pd_colors(control_nlet) white + set ::pd_colors(iemgui_nlet) white + set ::pd_colors(signal_cord) white + set ::pd_colors(signal_nlet) $::pd_colors(signal_cord) + set ::pd_colors(control_nlet) white + set ::pd_colors(xlet_hover) grey + set ::pd_colors(link) yellow + set ::pd_colors(selection) yellow + set ::pd_colors(selection_rectangle) white + set ::pd_colors(highlighted_text) white + set ::pd_colors(highlighted_text_bg) #3c3c3c + set ::pd_colors(dash_outline) "#f00" + set ::pd_colors(dash_fill) black + set ::pd_colors(graph_border) white + set ::pd_colors(graph) gray + set ::pd_colors(magic_glass_bg) white + set ::pd_colors(magic_glass_bd) white + set ::pd_colors(magic_glass_text) "#000000" + set ::pd_colors(magic_glass_flash) "#e87216" + } + L2ork { + set ::pd_colors(atom_box) "#eee" + set ::pd_colors(atom_box_border) "#ccc" + set ::pd_colors(canvas_color) white + set ::pd_colors(canvas_cursor) black + set ::pd_colors(text) black + set ::pd_colors(box) "#f6f8f8" + set ::pd_colors(box_border) "#ccc" + set ::pd_colors(msg) #f8f8f6 + set ::pd_colors(msg_border) "#ccc" + set ::pd_colors(iemgui_border) "#000000" + set ::pd_colors(iemgui_nlet) "#000000" + set ::pd_colors(control_cord) "#565" + set ::pd_colors(control_nlet) white + set ::pd_colors(signal_cord) #808095 + set ::pd_colors(signal_nlet) $::pd_colors(signal_cord) + set ::pd_colors(xlet_hover) grey + set ::pd_colors(link) #eb5f28 + set ::pd_colors(selection) #e87216 + set ::pd_colors(selection_rectangle) #e87216 + set ::pd_colors(highlighted_text) black + set ::pd_colors(highlighted_text_bg) #c3c3c3 + set ::pd_colors(dash_outline) "#f00" + set ::pd_colors(dash_fill) "#ffdddd" + set ::pd_colors(graph_border) "#777" + set ::pd_colors(graph) white + set ::pd_colors(magic_glass_bg) black + set ::pd_colors(magic_glass_bd) black + set ::pd_colors(magic_glass_text) white + set ::pd_colors(magic_glass_flash) "#e87216" + } + L2ork_Inverted { + set ::pd_colors(atom_box) black + set ::pd_colors(atom_box_border) white + set ::pd_colors(canvas_color) black + set ::pd_colors(canvas_cursor) white + set ::pd_colors(text) white + set ::pd_colors(box) #090707 + set ::pd_colors(box_border) #3e3e3e + set ::pd_colors(msg) #090707 + set ::pd_colors(msg_border) #3e3e3e + set ::pd_colors(iemgui_border) white + set ::pd_colors(iemgui_nlet) white + set ::pd_colors(control_cord) white + set ::pd_colors(control_nlet) #a294a2 + set ::pd_colors(signal_cord) #7d7d68 + set ::pd_colors(signal_nlet) $::pd_colors(signal_cord) + set ::pd_colors(xlet_hover) white + set ::pd_colors(link) blue + set ::pd_colors(selection) #ffff00 + set ::pd_colors(selection_rectangle) white + set ::pd_colors(highlighted_text) white + set ::pd_colors(highlighted_text_bg) #3c3c3c + set ::pd_colors(dash_outline) "#f00" + set ::pd_colors(dash_fill) "#002222" + set ::pd_colors(graph_border) "#777" + set ::pd_colors(graph) gray + set ::pd_colors(magic_glass_bg) black + set ::pd_colors(magic_glass_bd) black + set ::pd_colors(magic_glass_text) white + set ::pd_colors(magic_glass_flash) "#e87216" + } + Extended { + set ::pd_colors(atom_box) #e0e0e0 + set ::pd_colors(atom_box_border) #c1c1c1 + set ::pd_colors(canvas_color) white + set ::pd_colors(canvas_cursor) black + set ::pd_colors(text) black + set ::pd_colors(box) #f6f8f8 + set ::pd_colors(box_border) #c1c1c1 + set ::pd_colors(msg) #f6f8f8 + set ::pd_colors(msg_border) #c1c1c1 + set ::pd_colors(iemgui_border) black + set ::pd_colors(iemgui_nlet) black + set ::pd_colors(control_cord) black + set ::pd_colors(control_nlet) white + set ::pd_colors(signal_cord) #828297 + set ::pd_colors(signal_nlet) $::pd_colors(signal_cord) + set ::pd_colors(control_nlet) #536253 + set ::pd_colors(xlet_hover) grey + set ::pd_colors(link) blue + set ::pd_colors(selection) blue + set ::pd_colors(selection_rectangle) black + set ::pd_colors(highlighted_text) black + set ::pd_colors(highlighted_text_bg) #c3c3c3 + set ::pd_colors(dash_outline) "#f00" + set ::pd_colors(dash_fill) "#f7f7f7" + set ::pd_colors(graph_border) "#777" + set ::pd_colors(graph) white + set ::pd_colors(magic_glass_bg) black + set ::pd_colors(magic_glass_bd) black + set ::pd_colors(magic_glass_text) white + set ::pd_colors(magic_glass_flash) "#e87216" + } + C64 { + set ::pd_colors(atom_box) #3e32a2 + set ::pd_colors(atom_box_border) #7569d7 + set ::pd_colors(canvas_color) #3e32a2 + set ::pd_colors(canvas_cursor) white + set ::pd_colors(text) #a49aea + set ::pd_colors(box) #3e32a2 + set ::pd_colors(box_border) #7569d7 + set ::pd_colors(msg) #3e32a2 + set ::pd_colors(msg_border) #7569d7 + set ::pd_colors(iemgui_border) #7569d7 + set ::pd_colors(iemgui_nlet) #7569d7 + set ::pd_colors(control_cord) #7569d7 + set ::pd_colors(control_nlet) white + set ::pd_colors(signal_cord) #7569d7 + set ::pd_colors(signal_nlet) $::pd_colors(signal_cord) + set ::pd_colors(control_nlet) #7c71da + set ::pd_colors(xlet_hover) grey + set ::pd_colors(link) #e87216 + set ::pd_colors(selection) #cc9933 + set ::pd_colors(selection_rectangle) #7c71da + set ::pd_colors(highlighted_text) #3e32a2 + set ::pd_colors(highlighted_text_bg) #a49aea + set ::pd_colors(dash_outline) "#f00" + set ::pd_colors(dash_fill) "#3e32a2" + set ::pd_colors(graph_border) "#777" + set ::pd_colors(graph) "#3e32a2" + set ::pd_colors(magic_glass_bg) black + set ::pd_colors(magic_glass_bd) black + set ::pd_colors(magic_glass_text) white + set ::pd_colors(magic_glass_flash) "#e87216" + } + Strongbad { + set ::pd_colors(atom_box) black + set ::pd_colors(atom_box_border) #0b560b + set ::pd_colors(canvas_color) black + set ::pd_colors(canvas_cursor) white + set ::pd_colors(text) #4bd046 + set ::pd_colors(box) black + set ::pd_colors(box_border) #0b560b + set ::pd_colors(msg) black + set ::pd_colors(msg_border) #0b560b + set ::pd_colors(iemgui_border) #0b560b + set ::pd_colors(iemgui_nlet) #0b560b + set ::pd_colors(control_cord) #53b83b + set ::pd_colors(control_nlet) #53b83b + set ::pd_colors(signal_cord) #53b83b + set ::pd_colors(signal_nlet) $::pd_colors(signal_cord) + set ::pd_colors(xlet_hover) white + set ::pd_colors(link) blue + set ::pd_colors(selection) green + set ::pd_colors(selection_rectangle) #53b83b + set ::pd_colors(highlighted_text) black + set ::pd_colors(highlighted_text_bg) #4bd046 + set ::pd_colors(dash_outline) "#f00" + set ::pd_colors(dash_fill) "#f7f7f7" + set ::pd_colors(graph_border) "#777" + set ::pd_colors(graph) "#53b83b" + set ::pd_colors(magic_glass_bg) black + set ::pd_colors(magic_glass_bd) black + set ::pd_colors(magic_glass_text) white + set ::pd_colors(magic_glass_flash) "#e87216" + } + Subdued { + set ::pd_colors(atom_box) #9fc79f + set ::pd_colors(atom_box_border) #b1d3b1 + set ::pd_colors(canvas_color) #c0dcc0 + set ::pd_colors(canvas_cursor) black + set ::pd_colors(text) black + set ::pd_colors(box) #c0dcc0 + set ::pd_colors(box_border) #666666 + set ::pd_colors(msg) #c0dcc0 + set ::pd_colors(msg_border) #666666 + set ::pd_colors(iemgui_border) #666666 + set ::pd_colors(iemgui_nlet) #666666 + set ::pd_colors(control_cord) #333333 + set ::pd_colors(control_nlet) #333333 + set ::pd_colors(signal_cord) #666666 + set ::pd_colors(signal_nlet) $::pd_colors(signal_cord) + set ::pd_colors(xlet_hover) white + set ::pd_colors(link) blue + set ::pd_colors(selection) blue + set ::pd_colors(selection_rectangle) #333333 + set ::pd_colors(highlighted_text) black + set ::pd_colors(highlighted_text_bg) #c3c3c3 + set ::pd_colors(dash_outline) "#f00" + set ::pd_colors(dash_fill) "#f7f7f7" + set ::pd_colors(graph_border) "#777" + set ::pd_colors(graph) "#9fc79f" + set ::pd_colors(magic_glass_bg) black + set ::pd_colors(magic_glass_bd) black + set ::pd_colors(magic_glass_text) white + set ::pd_colors(magic_glass_flash) "#e87216" + } + } +} + +proc ::dialog_gui::create_gui_dialog {mytoplevel} { + if [winfo exists $mytoplevel.colors] then return + set fr [ttk::frame $mytoplevel.colors] + set p [ttk::frame $fr.presets] + ttk::label $p.presetlabel -text "Color Preset" +# ttk::combobox $fr.presets -state readonly -values {Inverted L2ork Foo} +# todo: set presets in _one_ place + ::dialog_prefs::dropdown $p.presets ::gui_preset {Vanilla Inverted L2ork L2ork_Inverted Extended C64 Strongbad Subdued} + pack $fr -side top + grid $p -column 0 -columnspan 3 -row 0 -sticky w -pady 21 + pack $p.presetlabel -side left -padx 7 + pack $p.presets -side left + set clen [expr {[llength [array names ::pd_colors]] / 2}] + set i 0 + foreach name [lsort [array names ::pd_colors]] { + # hack to exclude widths + if {[regexp {.*width} $name]} {continue} + set label [string map {_ " "} $name] + set label [string toupper $label 0 0] + ::dialog_prefs::swatchbutton $fr.$name ::pd_colors($name) + ::dialog_prefs::set_swatchbutton $fr.$name \ + ::pd_colors($name) + ttk::label $fr.${name}label -text "$label" + grid $fr.${name} -column [expr $i/$clen * 2] -row [expr $i%$clen+1] -sticky e + grid $fr.${name}label -column [expr $i/$clen * 2 + 1] -row [expr $i%$clen+1] -sticky w -padx 7 -pady 3 + incr i + } +} diff --git a/pd/src/dialog_midi.tcl b/pd/src/dialog_midi.tcl new file mode 100644 index 0000000000000000000000000000000000000000..5930f29893b9e9d54b72ed6a3be0ee29731094d2 --- /dev/null +++ b/pd/src/dialog_midi.tcl @@ -0,0 +1,324 @@ +package provide dialog_midi 0.1 + +namespace eval ::dialog_midi:: { +# namespace export pdtk_midi_dialog +# namespace export pdtk_alsa_midi_dialog +} + +# TODO this panel really needs some reworking, it works but the code is +# very unreadable + + +####################### midi dialog ################## + +proc ::dialog_midi::apply {mytoplevel} { + global midi_indev1 midi_indev2 midi_indev3 midi_indev4 + global midi_outdev1 midi_outdev2 midi_outdev3 midi_outdev4 + global midi_alsain midi_alsaout + + pdsend "pd midi-dialog \ + $midi_indev1 \ + $midi_indev2 \ + $midi_indev3 \ + $midi_indev4 \ + $midi_outdev1 \ + $midi_outdev2 \ + $midi_outdev3 \ + $midi_outdev4 \ + $midi_alsain \ + $midi_alsaout" +} + +proc ::dialog_midi::cancel {mytoplevel} { + pdsend "$mytoplevel cancel" +} + +proc ::dialog_midi::ok {mytoplevel} { + ::dialog_midi::apply $mytoplevel + ::dialog_midi::cancel $mytoplevel +} + +proc ::dialog_midi::setapi {var - op} { + if {$op ne "write"} {return} + set name [set $var] + set index [lsearch -exact -index 0 $::pd_midiapilist $name] + set ::pd_whichmidiapi [lindex $::pd_midiapilist $index 1] + pdsend "pd midi-setapi $::pd_whichmidiapi" +} + +proc ::dialog_midi::setlongform {widget} { + set state [set ::$widget] + if {$state == 0} { + # back to single devs + set extra_devs 0 + foreach type {in out} { + foreach i {2 3 4} { + if { [set ::midi_${type}chan$i] > 0 && + [set ::midi_${type}enable$i] > 0 } { + incr extra_devs + } + } + } + if {$extra_devs} { + set devices devices + if {$extra_devs == 1} {set devices device} + set continue [tk_messageBox -type yesno -message \ + [_ "This will disconnect $extra_devs $devices. Continue?"] \ + -default "no" -parent [winfo parent $widget] -icon question] + if {$continue eq "yes"} { + foreach type {in out} { + foreach i {2 3 4} { + set ::midi_${type}chan$i 0 + set ::midi_${type}enable$i 0 + } + } + ::dialog_midi::apply [winfo parent $widget] + } + } + } + pdsend "pd midi-properties $state" +} + +proc ::dialog_midi::create_api_frame {mytoplevel apifr midi_indevlist \ + midi_outdevlist longform} { + if {![winfo exists $apifr]} { + + # MIDI API + ttk::labelframe $mytoplevel.api -text [_ "Midi API"] \ + -style Prefs.TLabelframe + pack $apifr -side top -padx 1 -pady 1 -fill x + if {$::pd_midiapilist eq ""} { + ttk::label $apifr.label -text "System Midi" + grid $apifr.label -sticky e -column 0 -row 0 -padx 3 -pady 10 + } else { + set api_names {} + foreach api $::pd_midiapilist {lappend api_names [lindex $api 0]} + set api_i [lsearch -exact -index 1 $::pd_midiapilist \ + $::pd_whichmidiapi] + set ::midi_apiname [lindex $::pd_midiapilist $api_i 0] + ::dialog_prefs::dropdown $apifr.apilist ::midi_apiname $api_names + trace add variable ::midi_apiname write ::dialog_midi::setapi + grid $apifr.apilist -sticky e -column 0 -row 0 -padx 3 -pady 10 + } + ttk::checkbutton $apifr.longbutton -text "Use multiple devices" \ + -command "::dialog_midi::setlongform $apifr.longbutton" + grid $apifr.longbutton -sticky w -column 1 -row 0 -padx 3 -pady 10 + grid columnconfigure $apifr {0 1} -weight 1 + } + # disable longbutton if hardware doesn't support multi devices + set state normal + if {![expr [llength $midi_indevlist] > 1 && \ + [llength $midi_outdevlist] > 1]} { + set state disabled + } + $apifr.longbutton configure -state disabled +} + +# start a dialog window to select midi devices. "longform" asks us to make +# controls for opening several devices; if not, we get an extra button to +# turn longform on and restart the dialog. +proc ::dialog_midi::pdtk_midi_dialog {id indev1 indev2 indev3 indev4 \ + outdev1 outdev2 outdev3 outdev4 longform} { + global midi_indev1 midi_indev2 midi_indev3 midi_indev4 + global midi_outdev1 midi_outdev2 midi_outdev3 midi_outdev4 + global midi_indevlist midi_outdevlist + global midi_alsain midi_alsaout + global midi_longform + set midi_indev1 $indev1 + set midi_indev2 $indev2 + set midi_indev3 $indev3 + set midi_indev4 $indev4 + set midi_outdev1 $outdev1 + set midi_outdev2 $outdev2 + set midi_outdev3 $outdev3 + set midi_outdev4 $outdev4 + set midi_alsain [llength $midi_indevlist] + set midi_alsaout [llength $midi_outdevlist] + set midi_longform $longform + set mytoplevel .prefs.nb.midi + set apifr $mytoplevel.api + # not sure why it's ...midi.midi... should probably + # fix that... + ::dialog_midi::create_api_frame $mytoplevel $apifr $midi_indevlist \ + $midi_outdevlist $longform + destroy $mytoplevel.midi + ttk::frame $mytoplevel.midi + pack $mytoplevel.midi -side top -fill x + + # todo: put padding with style settings in dialog_prefs.tcl + set padx 1 + + # Devices + set devfr [ttk::labelframe $mytoplevel.midi.devs -text [_ "Devices"] \ + -style Prefs.TLabelframe -padding 5] + pack $devfr -side top -fill x -padx 3 -pady 10 + + set j 2 + # todo: change in out to input output and make translatable strings + foreach {type name} [list in [_ "Input"] out [_ "Output"]] { + set domulti [expr $longform && \ + [llength [set "midi_${type}devlist"]] > 1] + if {$domulti} { + ttk::label $devfr.$type \ + -text [concat $name [_ "Devices"]] + ttk::label $devfr.${type}ch -text [_ "Channels"] + grid $devfr.$type -row $j -column 1 -padx $padx + grid $devfr.${type}ch -row $j -column 3 -padx $padx + incr j + } else { + if {$type eq "in"} { + ttk::label $devfr.$type \ + -text [_ "Device Name"] + ttk::label $devfr.${type}ch -text [_ "Channels"] + grid $devfr.$type -row $j -column 1 -columnspan 2 -padx $padx + grid $devfr.${type}ch -row $j -column 3 -padx $padx + incr j + } + } + # Note: it'd be fairly easy to change the GUI to accommodate + # more than four devices, but Pd only takes and receives at most + # four devices, so the entire backend would have to change in order + # to do that + for {set i 0} {$i < 4} {incr i} { + set devno [expr $i + 1] + set row "$devfr.${type}$devno" + if {$domulti} { + set ctext "$devno." + } else { + set ctext $name + } + ttk::label ${row}x0 -text $ctext -anchor w + set ::midi_${type}dev${devno}label {} + ::dialog_prefs::dropdown_by_index ${row}x1 \ + "::midi_${type}dev$devno" \ + [set "midi_${type}devlist"] \ + "::midi_${type}dev${devno}label" + ttk::entry ${row}x2 -textvariable "midi_${type}chan$devno" -width 4 + grid ${row}x0 -row $j -column 0 -sticky e -padx $padx + grid ${row}x1 -row $j -column 1 -columnspan 2 -sticky ew -padx $padx + grid ${row}x2 -row $j -column 3 -padx $padx + grid columnconfigure $mytoplevel.midi.devs {1 2 3} -weight 2 + grid columnconfigure $mytoplevel.midi.devs 0 -weight 1 + incr j + if {![expr $longform && \ + [llength [set "midi_${type}devlist"]] > 1]} { + break + } + } + } + grid rowconfigure $devfr all -pad 3 + + # Connect button + ttk::frame $mytoplevel.midi.buttonframe + pack $mytoplevel.midi.buttonframe + pack $mytoplevel.midi.buttonframe -side bottom + ttk::button $mytoplevel.midi.buttonframe.apply \ + -text [_ "Apply MIDI Settings"] \ + -command "::dialog_midi::apply $mytoplevel" + pack $mytoplevel.midi.buttonframe.apply -side left -expand 1 -fill x \ + -padx 15 +} + +proc ::dialog_midi::pdtk_alsa_midi_dialog {id indev1 indev2 indev3 indev4 \ + outdev1 outdev2 outdev3 outdev4 longform alsa} { + global midi_indev1 midi_indev2 midi_indev3 midi_indev4 + global midi_outdev1 midi_outdev2 midi_outdev3 midi_outdev4 + global midi_indevlist midi_outdevlist + global midi_alsain midi_alsaout + set midi_indev1 $indev1 + set midi_indev2 $indev2 + set midi_indev3 $indev3 + set midi_indev4 $indev4 + set midi_outdev1 $outdev1 + set midi_outdev2 $outdev2 + set midi_outdev3 $outdev3 + set midi_outdev4 $outdev4 + set midi_alsain [llength $midi_indevlist] + set midi_alsaout [llength $midi_outdevlist] + set mytoplevel .prefs.nb.midi + set apifr $mytoplevel.api + # not sure why it's ...midi.midi... should probably + # fix that... + ::dialog_midi::create_api_frame $mytoplevel $apifr $midi_indevlist \ + $midi_outdevlist $longform + destroy $mytoplevel.midi + ttk::frame $mytoplevel.midi + pack $mytoplevel.midi -side top -fill x + + # todo: put padding with style settings in dialog_prefs.tcl + set padx 1 + + # Devices + set devfr [ttk::labelframe $mytoplevel.midi.devs -text [_ "Devices"] \ + -style Prefs.TLabelframe -padding 5] + pack $devfr -side top -fill x -padx 3 -pady 10 + + if {$alsa == 0} { + set j 2 + foreach {type name} [list in [_ "Input"] out [_ "Output"]] { + set domulti [expr $longform && \ + [llength [set "midi_${type}devlist"]] > 1] + if {$domulti} { + ttk::label $devfr.$type \ + -text [concat $name [_ "Devices"]] + ttk::label $devfr.${type}ch -text [_ "Channels"] + grid $devfr.$type -row $j -column 1 -padx $padx + grid $devfr.${type}ch -row $j -column 3 -padx $padx + incr j + } else { + if {$type eq "in"} { + ttk::label $devfr.$type \ + -text [_ "Device Name"] + ttk::label $devfr.${type}ch -text [_ "Channels"] + grid $devfr.$type -row $j -column 1 -columnspan 2 -padx $padx + grid $devfr.${type}ch -row $j -column 3 -padx $padx + incr j + } + } + for {set i 0} {$i < [llength [set "midi_${type}devlist"]]} \ + {incr i} { + set devno [expr $i + 1] + set row "$devfr.${type}$devno" + if {$domulti} { + set ctext "$devno." + } else { + set ctext $name + } + ttk::label ${row}x0 -text $ctext -anchor w + set ::midi_${type}dev${devno}label {} + ::dialog_prefs::dropdown_by_index ${row}x1 \ + "midi_${type}dev$devno" \ + [set "midi_${type}devlist"] \ + "::midi_${type}dev${devno}label" + ttk::entry ${row}x2 -textvariable "midi_${type}chan$devno" -width 4 + grid ${row}x0 -row $j -column 0 -sticky e -padx $padx + grid ${row}x1 -row $j -column 1 -columnspan 2 -sticky ew -padx $padx + grid ${row}x2 -row $j -column 3 -padx $padx + grid columnconfigure $mytoplevel.midi.devs {1 2 3} -weight 2 + grid columnconfigure $mytoplevel.midi.devs 0 -weight 1 + incr j + if {![expr $longform && \ + [llength [set "midi_${type}devlist"]] > 1]} { + break + } + } + } + grid rowconfigure $devfr all -pad 3 + } else { + label $devfr.l1 -text [_ "In Ports:"] + entry $devfr.x1 -textvariable midi_alsain -width 4 + pack $devfr.l1 $devfr.x1 -side left + label $devfr.l2 -text [_ "Out Ports:"] + entry $devfr.x2 -textvariable midi_alsaout -width 4 + pack $devfr.l2 $devfr.x2 -side left + } + + # Connect button + ttk::frame $mytoplevel.midi.buttonframe + pack $mytoplevel.midi.buttonframe + pack $mytoplevel.midi.buttonframe -side bottom + ttk::button $mytoplevel.midi.buttonframe.apply -text [_ "Connect"]\ + -command "::dialog_midi::apply $mytoplevel" + pack $mytoplevel.midi.buttonframe.apply -side left -expand 1 -fill x \ + -padx 15 +} diff --git a/pd/src/dialog_prefs.tcl b/pd/src/dialog_prefs.tcl new file mode 100644 index 0000000000000000000000000000000000000000..2f0eb2ae540b96e87c793f182a0c31b43081efa4 --- /dev/null +++ b/pd/src/dialog_prefs.tcl @@ -0,0 +1,444 @@ +# the find dialog panel is a bit unusual in that it is created directly by the +# Tcl 'pd-gui'. Most dialog panels are created by sending a message to 'pd', +# which then sends a message to 'pd-gui' to create the panel. + +package provide dialog_prefs 0.1 + +#package require pd_bindings +#package require dialog_gui + +namespace eval ::dialog_prefs:: { +# namespace export pdtk_ +} + +# mytoplevel isn't used here, but is kept for compatibility with other dialog ok procs +proc ::dialog_prefs::ok {mytoplevel} { + return # hash this out later + variable find_history + + if {$findstring eq ""} { + if {$::windowingsystem eq "aqua"} {bell} + return + } + if {$find_in_window eq ".pdwindow"} { + if {$::tcl_version < 8.5} { + # TODO implement in 8.4 style, without -all + set matches [.pdwindow.text search -nocase -- $findstring 0.0] + } else { + set matches [.pdwindow.text search -all -nocase -- $findstring 0.0] + } + .pdwindow.text tag delete sel + if {[llength $matches] > 0} { + foreach match $matches { + .pdwindow.text tag add sel $match "$match wordend" + } + .pdwindow.text see [lindex $matches 0] + lappend find_history $findstring + } + } else { + if {$findstring eq $previous_findstring \ + && $wholeword_button == $previous_wholeword_button} { + pdsend "$find_in_window findagain" + } else { + pdsend [concat $find_in_window find [pdtk_encodedialog $findstring] \ + $wholeword_button] + set previous_findstring $findstring + set previous_wholeword_button $wholeword_button + lappend find_history $findstring + } + } + if {$::windowingsystem eq "aqua"} { + # (Mac OS X) hide panel after success, but keep it if unsuccessful by + # having the couldnotfind proc reopen it + cancel $mytoplevel + } else { + # (GNOME/Windows) find panel should retain focus after a find + # (yes, a bit of a kludge) + after 100 "raise .find; focus .find.entry" + } +} + +# mytoplevel isn't used here, but is kept for compatibility with other dialog cancel procs +proc ::dialog_prefs::cancel {mytoplevel} { + wm withdraw .prefs +} + +# the find panel is opened from the menu and key bindings +proc ::dialog_prefs::open_prefs_dialog {mytoplevel} { + if {[winfo exists .prefs]} { + wm deiconify .prefs + raise .prefs + } else { + create_dialog $mytoplevel + } + pd [concat pd audio-properties \;] + pd [concat pd midi-properties \;] + ::dialog_gui::create_gui_dialog .prefs.nb.gui +# need to think about what should get focus with ttk::notebook +# .prefs.entry selection range 0 end +} + +proc ::dialog_prefs::dropdown_set {name value} { + if {$::windowingsystem eq "aqua"} { + set my_var [$name cget -textvariable] + set $my_var $value + } else { + $name set "$value" + } +} + +proc ::dialog_prefs::dropdown_by_index {name variable values textvar} { + ::dialog_prefs::dropdown $name $variable $values $textvar +} + +proc ::dialog_prefs::dropdown {name variable values args} { + set textvar $variable + if {$args ne ""} {set textvar $args} + if {$::windowingsystem eq "aqua"} { + ttk::menubutton $name -menu $name.menu -direction flush \ + -textvariable $textvar -cursor boat + menu $name.menu -cursor boat + set i 0 + foreach label $values { + set value $label + if {$args ne ""} {set value $i} + $name.menu add radiobutton -value $value -variable $variable \ + -label $label -command "set $textvar \"$label\"" + incr i + } + } else { + # set combobox width to largest string + set width 0 + foreach value $values { + set len [string length $value] + set width [expr $len > $width ? $len : $width] + } + ttk::combobox $name -state readonly -width $width \ + -style Prefs.TCombobox -values $values + set command "get" + if {$args ne ""} { + set command "current" + # the following cmd prevents a bug in the alsa midi api + # from throwing an index that's out of range. but once + # that bug gets fixed, this should be removed so that + # it doesn't hide any future bugs + set $variable [expr min([set $variable], [llength $values] - 1)] + } + bind $name <<ComboboxSelected>> "set $variable \ + [concat {[} $name $command {]} ]; after 0 {%W selection clear}" + if {$command eq "get"} {set command "set"} + $name $command [set $variable] + } +} + +proc ::dialog_prefs::set_color {array key op} { + # not sure if this is necessary, but just in case... + if {$op ne "write"} {return} + set c [set ${array}($key)] + set commands {} + switch $key { + box {set commands [list "itemconfigure \ + box&&(!msg)&&(!atom) -fill $c"] } + text { set commands [list "itemconfigure \ + (text&&(!box&&!iemgui)) -fill $c"] + lappend commands "itemconfigure \ + label&&graph -fill $c" + # lappend commands "itemconfigure \ + # (text&&(!label) -fill $c" + if {[winfo exists .search.resultstext]} { + .search.resultstext configure -foreground $c + .search.navtext configure -foreground $c + } + if {[winfo exists .printout.frame.text]} { + .printout.frame.text configure -foreground $c + } + } + canvas_color {set commands [list "configure -bg $c"] + if {[winfo exists .search.resultstext]} { + .search.resultstext configure -bg $c + .search.navtext configure -bg $c + } + if {[winfo exists .printout.frame.text]} { + .printout.frame.text configure -bg $c + } + } + canvas_cursor {set commands [list "configure -insertbackground $c"]} + highlighted_text_bg \ + {set commands [list "configure -selectbackground $c"]} + highlighted_text {set commands [list "configure -selectforeground $c"]} + msg_border {set commands [list "itemconfigure \ + msg&&box -stroke $c"]} + msg {set commands [list "itemconfigure \ + msg&&box -fill $c"]} + control_nlet {set commands [list "itemconfigure \ + ((inlet||outlet)&&control) -fill $c"] + } + iemgui_nlet {set commands [list "itemconfigure \ + (inlet&&iemgui)||(outlet&&iemgui) -stroke $c"] + } + signal_nlet {set commands [list "itemconfigure \ + inlet&&signal -fill $c"] + lappend commands "itemconfigure \ + outlet&&signal -fill $c" + } + outlet {set commands [list "itemconfigure outlet -outline $c"]} + signal_cord {set commands [list "itemconfigure \ + all_cords&&signal -stroke $c"] + lappend commands "itemconfigure \ + (outlet&&signal)||(inlet&&signal) -stroke $c" + } + control_cord {set commands [list "itemconfigure \ + all_cords&&control -stroke $c"]} + selection { + set commands [list "itemconfigure \ + selected&&text -fill $c"] + lappend commands "itemconfigure \ + selected&&(border&&(!iemgui)) -fill $c" + lappend commands "itemconfigure \ + selected&&border&&iemgui -outline $c" + } + box_border {set commands [list "itemconfigure \ + border&&(!iemgui) -outline $c"]} + iemgui_border { + set commands [list "itemconfigure border&&iemgui -stroke $c"]} + atom_box {set commands [list "itemconfigure \ + atom&&box -fill $c"]} + atom_box_border {set commands [list "itemconfigure \ + atom&&box -stroke $c"]} + graph_border {set commands [list "itemconfigure \ + graph&&(!label) -stroke $c"]} + graph {set commands [list "itemconfigure graph&&(!label) -fill $c"]} + dash_fill {set commands [list "itemconfigure broken&&box -fill $c"]} + dash_outline {set commands [list "itemconfigure \ + broken&&box -stroke $c"]} + magic_glass_bg {set commands [list "itemconfigure \ + magicGlassBg -fill $c"]} + magic_glass_bd {set commands [list "itemconfigure \ + magicGlassLine -fill $c"]} + magic_glass_text {set commands [list "itemconfigure \ + magicGlassText -fill $c"]} + link { + if {[winfo exists .search.resultstext]} { + .search.resultstext tag configure link -foreground $c + .search.navtext tag configure link -foreground $c + .search.f.advancedlabel configure -foreground $c + } + return + } + default {} + } + if {$commands ne ""} { + foreach w [winfo children .] { + foreach child [winfo children $w] { + if {$child ne "" && [winfo class $child] eq "PathCanvas"} { + if {$key eq "canvas_color" && + [info exists [format ::%s(%s) $key $w]]} { + continue + } + foreach command $commands { + eval $child $command + } + } + } + } + } + # hack! how do I avoid hard-coding the window names here? + set mytoplevel .prefs.nb.gui.colors + if {[winfo exists $mytoplevel.$key]} { + ::dialog_prefs::set_swatchbutton $mytoplevel.$key ${array}($key) + } + +} + +proc ::dialog_prefs::set_swatchbutton {name variable} { + if {[set $variable] eq ""} {return} + image create photo ::img::swatchbutton::$name + set c [set $variable] + set bd #000000 + set stupid_top_and_bottom \ + [list $bd $bd $bd $bd $bd $bd $bd $bd $bd $bd $bd $bd] + set dumb \ + [list $bd $c $c $c $c $c $c $c $c $c $c $bd] + ::img::swatchbutton::$name put [list $stupid_top_and_bottom \ + $dumb $dumb $dumb $dumb $dumb $dumb $dumb $dumb \ + $dumb $dumb $stupid_top_and_bottom] -to 0 0 12 12 + $name configure -image ::img::swatchbutton::$name +} + +proc ::dialog_prefs::swatchmenu_nav {w dir} { + set new [expr {[$w index active] + 7 * $dir}] + if {$new > [$w index end] || $new < 0} then return + $w activate $new +} + +proc ::dialog_prefs::swatchbutton_colorchooser {name variable} { + set col [tk_chooseColor -parent $name] + if {$col ne ""} { + set $variable $col + } +} + +proc ::dialog_prefs::swatchbutton {name variable} { + if {$::windowingsystem ne "x11"} { + ttk::button $name -command "::dialog_prefs::swatchbutton_colorchooser $name $variable" + return + } + # Tk's color chooser for x11 isn't very good. So instead, the user + # gets a matrix of predefined colors to choose from. If a few custom + # colors could be added (or maybe triggering Ivica's L2ork color + # chooser) this would be improved. + ttk::menubutton $name -menu $name.m -style PrefsColors.TMenubutton + menu $name.m + bind $name.m <Left> "::dialog_prefs::swatchmenu_nav %W -1" + bind $name.m <Right> "::dialog_prefs::swatchmenu_nav %W 1" + set i 0 + foreach swatch [::dialog_prefs::get_colorswatches] { + set columnbreak [expr {$i % 7 == 0}] + # Note: there is a trace set in pd-gui.tcl that calls + # ::dialog_prefs::set_color whenever the value of a + # ::pd_colors variable is changed. So for the menu we just + # have to link to one of those variables and trace does the rest + $name.m add radiobutton -value $swatch -variable $variable \ + -image ::img::colorswatches::$swatch -columnbreak $columnbreak \ + -hidemargin 1 + incr i + } +} + + +# These are images used to build the menu for choosing +# colors. The images hang around in memory until you exit +# Pd, but they shouldn't take up too much space to matter +# (and this only gets called once). If there's a simpler +# way to build a _straightforward_ _user-friendly_ +# colorchooser that would be nice, but I couldn't figure +# one out. +proc ::dialog_prefs::get_colorswatches {} { + # stolen from the Firefox colorchooser + set colors { \ + #ffffff #cfcccc #c0c0c0 #999999 #666666 #333333 #000000 \ + #ffcccc #ff6666 #ff0000 #cc0000 #990000 #660000 #330000 \ + #ffcc99 #ff9966 #ff9900 #ff6600 #cc6600 #993300 #663300 \ + #ffff99 #ffff66 #ffcc66 #ffcc33 #cc9933 #996633 #663333 \ + #ffffcc #ffff33 #ffff00 #ffcc00 #999900 #666600 #333300 \ + #99ff99 #66ff99 #33ff33 #33cc00 #009900 #006600 #003300 \ + #99ffff #33ffff #66cccc #00cccc #339999 #336666 #003333 \ + #ccffff #66ffff #33ccff #3366ff #3333ff #000099 #000066 \ + #ccccff #9999ff #6666cc #6633ff #6600cc #333399 #330099 \ + #ffccff #ff99ff #cc66cc #cc33cc #993399 #663366 #330033 \ + } + if {[lsearch [image names] ::img::colorswatches::*] == -1} { + foreach color $colors { + image create photo ::img::colorswatches::$color + ::img::colorswatches::$color put $color -to 0 0 16 16 + } + } + return $colors +} + +proc ::dialog_prefs::help {notebook} { + set pane [$notebook select] + regsub {.*\.(.*)} $pane {\1} topic + set file all_about_${topic}_settings.pd + set dir [file join $::sys_libdir doc 5.reference] + menu_doc_open $dir $file +} + +proc ::dialog_prefs::dialog_bindings {mytoplevel dialogname} { + variable modifier + + bind $mytoplevel <KeyPress-Escape> "dialog_${dialogname}::cancel $mytoplevel" + bind $mytoplevel <KeyPress-Return> "dialog_${dialogname}::ok $mytoplevel" + bind $mytoplevel <$::modifier-Key-w> "dialog_${dialogname}::cancel $mytoplevel" + # these aren't supported in the dialog, so alert the user, then break so + # that no other key bindings are run + bind $mytoplevel <$::modifier-Key-s> {bell; break} + bind $mytoplevel <$::modifier-Shift-Key-S> {bell; break} + bind $mytoplevel <$::modifier-Key-p> {bell; break} + + wm protocol $mytoplevel WM_DELETE_WINDOW "dialog_${dialogname}::cancel $mytoplevel" +} + +proc ::dialog_prefs::create_dialog {mytoplevel} { + toplevel .prefs -class DialogWindow + wm title .prefs [_ "Pure Data Preferences"] +# wm geometry .prefs =475x125+150+150 + wm group .prefs . + wm resizable .prefs 0 0 + wm transient .prefs +# .prefs configure -menu $::dialog_menubar + +# todo: check this on the mac and on windows +# .prefs configure -padx 10 -pady 5 + ::dialog_prefs::dialog_bindings .prefs "prefs" + bind .prefs <$::modifier-Key-f> break + + # Ttk style setup + + # Common settings + ttk::style configure Prefs.TLabelframe -borderwidth 0 + # todo: don't hardcode font here + ttk::style configure Prefs.TLabelframe.Label \ + -font "{DejaVu Sans} 9 bold" + + # for OSX swatchbutton + if {$::windowingsystem eq "x11"} { + # custom arrow image for ttk::combobox + set ::prefs_arrowimg [image create photo -data \ + {R0lGODlhGQAVAMIGACEhIVBQUFpaWl1dXXBwcImJif///////yH+EUNyZWF0ZWQg + d2l0aCBHSU1QACH5BAEKAAcALAAAAAAZABUAAAMleLrc/jDKSau9OOutC/ggUGRE + CBCbAArcEQBBqwxybd94ru9QAgA7 + }] + # ttk::style theme use clam + ttk::style element create Prefs.downarrow image $::prefs_arrowimg + ttk::style layout Prefs.TCombobox { + Combobox.focus -sticky nsew -children { + Combobox.field -sticky nswe -children { + Prefs.downarrow -side right -sticky ns + Combobox.padding -expand 1 -sticky nswe -children { + Combobox.textarea -sticky nswe + } + } + } + } + ttk::style layout PrefsColors.TMenubutton { + Menubutton.border -sticky nswe -children { + Menubutton.focus -sticky nswe -children { + Menubutton.padding -expand 1 -sticky we -children { + Menubutton.label -side left -sticky {} + } + } + } + } + ttk::style configure Prefs.TCombobox -padding 3 + ttk::style map Prefs.TCombobox \ + -fieldbackground {{readonly pressed} #c1c4c7 \ + {readonly hover} #fafaf9 \ + readonly #f5f5f4} \ + -foreground {{readonly focus} black} + # this shouldn't be global, but I can't get it to work for just + # Prefsdialog class + option add *TCombobox*Listbox.selectBackground #4a90d9 + option add *TCombobox*Listbox.selectForeground white + } + + ttk::notebook .prefs.nb + .prefs.nb add [ttk::frame .prefs.nb.audio -padding 10] \ + -text "Audio" -sticky nsew + .prefs.nb add [ttk::frame .prefs.nb.midi -padding 10] \ + -text "MIDI" -sticky nsew + .prefs.nb add [ttk::frame .prefs.nb.gui -padding 10] \ + -text "GUI" -stick nsew + pack .prefs.nb -fill both -expand 1 + + ttk::frame .prefs.bottomframe -padding 10 + pack .prefs.bottomframe -side bottom -fill both -expand 1 + if {$::windowingsystem ne "aqua"} { + ttk::button .prefs.bottomframe.closebutton \ + -text "Close" -command "::dialog_prefs::cancel .prefs" + pack .prefs.bottomframe.closebutton -side right + } + ttk::button .prefs.bottomframe.helpbutton \ + -text "Help" -command "::dialog_prefs::help .prefs.nb" + pack .prefs.bottomframe.helpbutton -side left +} diff --git a/pd/src/g_all_guis.h b/pd/src/g_all_guis.h index 10653984f4f2888a1831c2a9e9d795316e631b40..6b13155eaf66246556d96df0e194deb0cb7c450b 100644 --- a/pd/src/g_all_guis.h +++ b/pd/src/g_all_guis.h @@ -42,7 +42,7 @@ #define IEM_GUI_COLOR_SELECTED 16749334 /* end deprecated */ -#define IEM_GUI_COLOR_NORMAL 0 +#define IEM_GUI_COLOR_NORMAL "$pd_colors(iemgui_border)" #define IEM_GUI_MAX_COLOR 30 diff --git a/pd/src/g_bang.c b/pd/src/g_bang.c index c906457fa922854ef2d3fa1978d65d0db413ca90..b32be38bc7f6faa81fd7a1a72388a07d080ca6d5 100644 --- a/pd/src/g_bang.c +++ b/pd/src/g_bang.c @@ -64,31 +64,31 @@ void bng_draw_new(t_bng *x, t_glist *glist) char *nlet_tag = iem_get_tag(glist, (t_iemgui *)x); - sys_vgui(".x%lx.c create prect %d %d %d %d -fill #%6.6x -tags {%lxBASE %lxBNG text %s}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_border) -fill #%6.6x -tags {%lxBASE %lxBNG text iemgui border %s}\n", canvas, xpos, ypos, xpos + x->x_gui.x_w, ypos + x->x_gui.x_h, x->x_gui.x_bcol, x, x, nlet_tag); t_float cr = (x->x_gui.x_w-2)/2.0; t_float cx = xpos+cr+1.5; t_float cy = ypos+cr+1.5; - sys_vgui(".x%lx.c create circle %f %f -r %f -fill #%6.6x -tags {%lxBUT %lxBNG text %s}\n", + sys_vgui(".x%lx.c create circle %f %f -r %f -stroke $pd_colors(iemgui_border) -fill #%6.6x -tags {%lxBUT %lxBNG text iemgui border %s}\n", canvas, cx, cy, cr, x->x_flashed?x->x_gui.x_fcol:x->x_gui.x_bcol, x, x, nlet_tag); sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ - -font {{%s} -%d %s} -fill #%6.6x -tags {%lxLABEL %lxBNG text %s}\n", + -font {{%s} -%d %s} -fill #%6.6x -tags {%lxLABEL %lxBNG text iemgui %s}\n", canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, x->x_gui.x_lcol, x, x, nlet_tag); if(!x->x_gui.x_fsf.x_snd_able && canvas == x->x_gui.x_glist) { - sys_vgui(".x%lx.c create prect %d %d %d %d -tags {%lxBNG%so%d %so%d %lxBNG outlet %s}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_nlet) -tags {%lxBNG%so%d %so%d %lxBNG outlet iemgui %s}\n", canvas, xpos, ypos + x->x_gui.x_h-1, xpos + IOWIDTH, ypos + x->x_gui.x_h, x, nlet_tag, 0, nlet_tag, 0, x, nlet_tag); } if(!x->x_gui.x_fsf.x_rcv_able && canvas == x->x_gui.x_glist) { - sys_vgui(".x%lx.c create prect %d %d %d %d -tags {%lxBNG%si%d %si%d %lxBNG inlet %s}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_nlet) -tags {%lxBNG%si%d %si%d %lxBNG inlet iemgui %s}\n", canvas, xpos, ypos, xpos + IOWIDTH, ypos+1, x, nlet_tag, 0, nlet_tag, 0, x, nlet_tag); } @@ -111,7 +111,7 @@ void bng_draw_move(t_bng *x, t_glist *glist) t_float cr = (x->x_gui.x_w-2)/2.0; t_float cx = xpos+cr+1.5; t_float cy = ypos+cr+1.5; - /*sys_vgui(".x%lx.c create circle %d %d -r %d -stroke #%6.6x -tags {%lxBUT %lxBNG %lx text}\n", + /*sys_vgui(".x%lx.c create circle %d %d -r %d -stroke #%6.6x -tags {%lxBUT %lxBNG %lx text iemgui}\n", canvas, cx, cy, cr,*/ sys_vgui(".x%lx.c coords %lxBUT %f %f\n", canvas, x, cx, cy); @@ -165,13 +165,13 @@ void bng_draw_config(t_bng* x, t_glist* glist) /* char color[64]; if (x->x_gui.x_fsf.x_selected) - sprintf(color, "$select_color"); + sprintf(color, "$pd_colors(selection)"); else sprintf(color, "#%6.6x", x->x_gui.x_lcol); */ if (x->x_gui.x_fsf.x_selected && x->x_gui.x_glist == canvas) - sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} -%d %s} -fill $select_color -text {%s} \n", + sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} -%d %s} -fill $pd_colors(selection) -text {%s} \n", canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:""); else @@ -197,14 +197,14 @@ void bng_draw_io(t_bng* x, t_glist* glist, int old_snd_rcv_flags) char *nlet_tag = iem_get_tag(glist, (t_iemgui *)x); if((old_snd_rcv_flags & IEM_GUI_OLD_SND_FLAG) && !x->x_gui.x_fsf.x_snd_able) - sys_vgui(".x%lx.c create prect %d %d %d %d -tags {%lxBNG%so%d %so%d %lxBNG outlet %s}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_nlet) -tags {%lxBNG%so%d %so%d %lxBNG outlet iemgui %s}\n", canvas, xpos, ypos + x->x_gui.x_h-1, xpos + IOWIDTH, ypos + x->x_gui.x_h, x, nlet_tag, 0, nlet_tag, 0, x, nlet_tag); if(!(old_snd_rcv_flags & IEM_GUI_OLD_SND_FLAG) && x->x_gui.x_fsf.x_snd_able) sys_vgui(".x%lx.c delete %lxBNG%so%d\n", canvas, x, nlet_tag, 0); if((old_snd_rcv_flags & IEM_GUI_OLD_RCV_FLAG) && !x->x_gui.x_fsf.x_rcv_able) - sys_vgui(".x%lx.c create prect %d %d %d %d -tags {%lxBNG%si%d %si%d %lxBNG inlet %s}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_nlet) -tags {%lxBNG%si%d %si%d %lxBNG inlet iemgui %s}\n", canvas, xpos, ypos, xpos + IOWIDTH, ypos+1, x, nlet_tag, 0, nlet_tag, 0, x, nlet_tag); if(!(old_snd_rcv_flags & IEM_GUI_OLD_RCV_FLAG) && x->x_gui.x_fsf.x_rcv_able) @@ -228,18 +228,18 @@ void bng_draw_select(t_bng* x, t_glist* glist) char *nlet_tag = iem_get_tag(glist, (t_iemgui *)x); - sys_vgui(".x%lx.c itemconfigure %lxBASE -stroke $select_color\n", canvas, x); - sys_vgui(".x%lx.c itemconfigure %lxBUT -stroke $select_color\n", canvas, x); - sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill $select_color\n", canvas, x); + sys_vgui(".x%lx.c itemconfigure %lxBASE -stroke $pd_colors(selection)\n", canvas, x); + sys_vgui(".x%lx.c itemconfigure %lxBUT -stroke $pd_colors(selection)\n", canvas, x); + sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill $pd_colors(selection)\n", canvas, x); if (x->x_gui.scale_vis) { sys_vgui("destroy %s\n", sh->h_pathname); sys_vgui(".x%lx.c delete %lxSCALE\n", canvas, x); } - sys_vgui("canvas %s -width %d -height %d -bg $select_color -bd 0 -cursor bottom_right_corner\n", + sys_vgui("canvas %s -width %d -height %d -bg $pd_colors(selection) -bd 0 -cursor bottom_right_corner\n", sh->h_pathname, SCALEHANDLE_WIDTH, SCALEHANDLE_HEIGHT); - sys_vgui(".x%x.c create window %d %d -anchor nw -width %d -height %d -window %s -tags {%lxSCALE %lxBNG %s}\n", + sys_vgui(".x%x.c create window %d %d -anchor nw -width %d -height %d -window %s -tags {%lxSCALE %lxBNG iemgui %s}\n", canvas, x->x_gui.x_obj.te_xpix + x->x_gui.x_w - SCALEHANDLE_WIDTH - 1, x->x_gui.x_obj.te_ypix + x->x_gui.x_h - SCALEHANDLE_HEIGHT - 1, SCALEHANDLE_WIDTH, SCALEHANDLE_HEIGHT, @@ -259,9 +259,9 @@ void bng_draw_select(t_bng* x, t_glist* glist) sys_vgui(".x%lx.c delete %lxLABELH\n", canvas, x); } - sys_vgui("canvas %s -width %d -height %d -bg $select_color -bd 0 -cursor crosshair\n", + sys_vgui("canvas %s -width %d -height %d -bg $pd_colors(selection) -bd 0 -cursor crosshair\n", lh->h_pathname, LABELHANDLE_WIDTH, LABELHANDLE_HEIGHT); - sys_vgui(".x%x.c create window %d %d -anchor nw -width %d -height %d -window %s -tags {%lxLABEL %lxLABELH %lxBNG %s}\n", + sys_vgui(".x%x.c create window %d %d -anchor nw -width %d -height %d -window %s -tags {%lxLABEL %lxLABELH %lxBNG iemgui %s}\n", canvas, x->x_gui.x_obj.te_xpix+ x->x_gui.x_ldx - LABELHANDLE_WIDTH, x->x_gui.x_obj.te_ypix + x->x_gui.x_ldy - LABELHANDLE_HEIGHT, LABELHANDLE_WIDTH, LABELHANDLE_HEIGHT, @@ -280,8 +280,8 @@ void bng_draw_select(t_bng* x, t_glist* glist) } else { - sys_vgui(".x%lx.c itemconfigure %lxBASE -stroke #%6.6x\n", canvas, x, IEM_GUI_COLOR_NORMAL); - sys_vgui(".x%lx.c itemconfigure %lxBUT -stroke #%6.6x\n", canvas, x, IEM_GUI_COLOR_NORMAL); + sys_vgui(".x%lx.c itemconfigure %lxBASE -stroke %s\n", canvas, x, IEM_GUI_COLOR_NORMAL); + sys_vgui(".x%lx.c itemconfigure %lxBUT -stroke %s\n", canvas, x, IEM_GUI_COLOR_NORMAL); sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill #%6.6x\n", canvas, x, x->x_gui.x_lcol); sys_vgui(".x%lx.c dtag %lxBNG selected\n", canvas, x); sys_vgui("destroy %s\n", sh->h_pathname); @@ -357,7 +357,7 @@ static void bng__clickhook(t_scalehandle *sh, t_floatarg f, t_floatarg xxx, t_fl { sys_vgui("lower %s\n", sh->h_pathname); sys_vgui(".x%x.c create prect %d %d %d %d\ - -stroke $select_color -strokewidth 1 -tags %s\n", + -stroke $pd_colors(selection) -strokewidth 1 -tags %s\n", x->x_gui.x_glist, x->x_gui.x_obj.te_xpix, x->x_gui.x_obj.te_ypix, x->x_gui.x_obj.te_xpix + x->x_gui.x_w, x->x_gui.x_obj.te_ypix + x->x_gui.x_h, sh->h_outlinetag); diff --git a/pd/src/g_canvas.c b/pd/src/g_canvas.c index 1143a6754dc7363bbd4138f62c321af4713295a3..15809adbc85a2336c4af4bc5b967e4cf6e7e841a 100644 --- a/pd/src/g_canvas.c +++ b/pd/src/g_canvas.c @@ -723,7 +723,7 @@ void canvas_draw_gop_resize_hooks(t_canvas* x) sprintf(sh->h_pathname, ".x%lx.h%lx", (t_int)x, (t_int)sh); sys_vgui("destroy %s\n", sh->h_pathname); sys_vgui(".x%lx.c delete GOP_resblob\n", x); - sys_vgui("canvas %s -width %d -height %d -bg $select_color -bd 0 -cursor bottom_right_corner\n", + sys_vgui("canvas %s -width %d -height %d -bg $pd_colors(selection) -bd 0 -cursor bottom_right_corner\n", sh->h_pathname, SCALEHANDLE_WIDTH, SCALEHANDLE_HEIGHT); sys_vgui(".x%x.c create window %d %d -anchor nw -width %d -height %d -window %s -tags {%lxSCALE %lxGOP GOP_resblob}\n", x, x->gl_xmargin + x->gl_pixwidth - SCALEHANDLE_WIDTH - 1, @@ -742,7 +742,7 @@ void canvas_draw_gop_resize_hooks(t_canvas* x) sprintf(mh->h_pathname, ".x%lx.h%lx", (t_int)x, (t_int)mh); sys_vgui("destroy %s\n", mh->h_pathname); sys_vgui(".x%lx.c delete GOP_movblob\n", x); - sys_vgui("canvas %s -width %d -height %d -bg $select_color -bd 0 -cursor crosshair\n", + sys_vgui("canvas %s -width %d -height %d -bg $pd_colors(selection) -bd 0 -cursor crosshair\n", mh->h_pathname, SCALEHANDLE_WIDTH, SCALEHANDLE_HEIGHT); sys_vgui(".x%x.c create window %d %d -anchor nw -width %d -height %d -window %s -tags {%lxMOVE %lxGOP GOP_movblob}\n", x, x->gl_xmargin + 2 , @@ -959,9 +959,9 @@ static void canvas_drawlines(t_canvas *x) if (!(pd_class(&t.tr_ob2->ob_g.g_pd) == preset_node_class && pd_class(&t.tr_ob->ob_g.g_pd) != message_class)) canvas_drawconnection(glist_getcanvas(x), t.tr_lx1, t.tr_ly1, t.tr_lx2, t.tr_ly2, (t_int)oc, issignal); /*sys_vgui(".x%lx.c create polyline %d %d %d %d -strokewidth %s -stroke %s \ - -tags {l%lx all_cords}\n", + -tags {l%lx all_cords %s}\n", glist_getcanvas(x), t.tr_lx1, t.tr_ly1, t.tr_lx2, t.tr_ly2, - (issignal ? "$signal_cord_width" : "$msg_cord_width"), (issignal ? "$signal_cord" : "$msg_cord"), + (issignal ? "$pd_colors(signal_cord_width)" : "$pd_colors(control_cord_width)"), (issignal ? "$pd_colors(signal_cord)" : "$pd_colors(control_cord)"), oc);*/ } } @@ -2009,7 +2009,7 @@ void canvasgop__clickhook(t_scalehandle *sh, t_floatarg f, t_floatarg xxx, t_flo sys_vgui("lower %s\n", sh->h_pathname); sys_vgui(".x%lx.c delete GOP \n", x); //delete GOP rect where it started from sys_vgui(".x%x.c create rectangle %d %d %d %d\ - -outline $select_color -width 1 -tags %s\n",\ + -outline $pd_colors(selection) -width 1 -tags %s\n",\ x, x->gl_xmargin, x->gl_ymargin,\ x->gl_xmargin + x->gl_pixwidth,\ x->gl_ymargin + x->gl_pixheight, sh->h_outlinetag); diff --git a/pd/src/g_editor.c b/pd/src/g_editor.c index a1f8a3b07006c187be69c38c8625a39ec57402f2..48ff581eae3889bc5d6aae87eda29cc324d6e91e 100644 --- a/pd/src/g_editor.c +++ b/pd/src/g_editor.c @@ -307,8 +307,8 @@ void canvas_check_nlet_highlights(t_glist *x) { sys_vgui(".x%x.c itemconfigure %s -stroke %s -fill %s -strokewidth 1\n", x, x->gl_editor->canvas_cnct_inlet_tag, - (last_inlet_filter ? "black" : (inlet_issignal ? "$signal_cord" : "$msg_cord")), - (inlet_issignal ? "$signal_nlet" : "$msg_nlet")); + (last_inlet_filter ? "black" : (inlet_issignal ? "$pd_colors(signal_cord)" : "$pd_colors(control_cord)")), + (inlet_issignal ? "$pd_colors(signal_nlet)" : "$pd_colors(control_nlet)")); if (objtooltip) { objtooltip = 0; sys_vgui("pdtk_canvas_leaveitem .x%x.c;\n", x); @@ -324,8 +324,8 @@ void canvas_check_nlet_highlights(t_glist *x) { sys_vgui(".x%x.c itemconfigure %s -stroke %s -fill %s -strokewidth 1\n", x, x->gl_editor->canvas_cnct_outlet_tag, - (last_outlet_filter ? "black" : (outlet_issignal ? "$signal_cord" : "$msg_cord")), - (outlet_issignal ? "$signal_nlet" : "$msg_nlet")); + (last_outlet_filter ? "black" : (outlet_issignal ? "$pd_colors(signal_cord)" : "$pd_colors(control_cord)")), + (outlet_issignal ? "$pd_colors(signal_nlet)" : "$pd_colors(control_nlet)")); if (objtooltip) { objtooltip = 0; sys_vgui("pdtk_canvas_leaveitem .x%x.c;\n", x); @@ -350,7 +350,7 @@ void glist_selectline(t_glist *x, t_outconnect *oc, int index1, x->gl_editor->e_selectline_index2 = index2; x->gl_editor->e_selectline_inno = inno; x->gl_editor->e_selectline_tag = oc; - sys_vgui(".x%lx.c itemconfigure l%lx -stroke $select_color\n", + sys_vgui(".x%lx.c itemconfigure l%lx -stroke $pd_colors(selection)\n", x, x->gl_editor->e_selectline_tag); sys_vgui(".x%lx.c addtag selected withtag l%lx\n", glist_getcanvas(x), x->gl_editor->e_selectline_tag); @@ -377,7 +377,7 @@ void glist_deselectline(t_glist *x) issignal = 0; sys_vgui(".x%lx.c itemconfigure l%lx -stroke %s\n", x, x->gl_editor->e_selectline_tag, - (issignal ? "$signal_cord" : "$msg_cord")); + (issignal ? "$pd_colors(signal_cord)" : "$pd_colors(control_cord)")); sys_vgui(".x%lx.c dtag l%lx selected\n", glist_getcanvas(x), glist_getcanvas(x)->gl_editor->e_selectline_tag); canvas_draw_gop_resize_hooks(x); @@ -2970,13 +2970,14 @@ void canvas_doclick(t_canvas *x, int xpos, int ypos, int which, sys_vgui( /*".x%lx.c create polyline %d %d %d %d -stroke %s -strokewidth %s -tags x\n", x, xpos, ypos, xpos, ypos, - (issignal ? "$signal_cord" : "$msg_cord"), - (issignal ? "$signal_cord_width" : "$msg_cord_width"));*/ + (issignal ? "$pd_colors(signal_cord)" : "$pd_colors(control_cord)"), + (issignal ? "$pd_colors(signal_cord_width)" : "$pd_colors(control_cord_width)"));*/ // bezier is too slow for the time being - ".x%lx.c create path \"M %d %d Q %d %d %d %d Q %d %d %d %d\" -stroke %s -strokewidth %s -tags x\n", + ".x%lx.c create path \"M %d %d Q %d %d %d %d Q %d %d %d %d\" -stroke %s -strokewidth %s -tags {x all_cords %s}\n", x, xpos, ypos, xpos, ypos, xpos, ypos, xpos, ypos, xpos, ypos, - (issignal ? "$signal_cord" : "$msg_cord"), - (issignal ? "$signal_cord_width" : "$msg_cord_width")); + (issignal ? "$pd_colors(signal_cord)" : "$pd_colors(control_cord)"), + (issignal ? "$pd_colors(signal_cord_width)" : "$pd_colors(control_cord_width)"), + (issignal ? "signal" : "control")); } else // jsarlo @@ -2987,8 +2988,8 @@ void canvas_doclick(t_canvas *x, int xpos, int ypos, int which, { sys_vgui(".x%x.c itemconfigure %s -stroke %s -fill %s -strokewidth 1\n", x, x->gl_editor->canvas_cnct_outlet_tag, - (last_outlet_filter ? "black" : (outlet_issignal ? "$signal_cord" : "$msg_cord")), - (outlet_issignal ? "$signal_nlet" : "$msg_nlet")); + (last_outlet_filter ? "black" : (outlet_issignal ? "$pd_colors(signal_cord)" : "$pd_colors(control_cord)")), + (outlet_issignal ? "$pd_colors(signal_nlet)" : "$pd_colors(control_nlet)")); } if (yr) { @@ -3046,8 +3047,8 @@ void canvas_doclick(t_canvas *x, int xpos, int ypos, int which, { sys_vgui(".x%x.c itemconfigure %s -stroke %s -fill %s -strokewidth 1\n", x, x->gl_editor->canvas_cnct_inlet_tag, - (last_inlet_filter ? "black" : (inlet_issignal ? "$signal_cord" : "$msg_cord")), - (inlet_issignal ? "$signal_nlet" : "$msg_nlet")); + (last_inlet_filter ? "black" : (inlet_issignal ? "$pd_colors(signal_cord)" : "$pd_colors(control_cord)")), + (inlet_issignal ? "$pd_colors(signal_nlet)" : "$pd_colors(control_nlet)")); } if (yr) @@ -3125,8 +3126,8 @@ void canvas_doclick(t_canvas *x, int xpos, int ypos, int which, { sys_vgui(".x%x.c itemconfigure %s -stroke %s -fill %s -strokewidth 1\n", x, x->gl_editor->canvas_cnct_inlet_tag, - (last_inlet_filter ? "black" : (inlet_issignal ? "$signal_cord" : "$msg_cord")), - (inlet_issignal ? "$signal_nlet" : "$msg_nlet")); + (last_inlet_filter ? "black" : (inlet_issignal ? "$pd_colors(signal_cord)" : "$pd_colors(control_cord)")), + (inlet_issignal ? "$pd_colors(signal_nlet)" : "$pd_colors(control_nlet)")); if (objtooltip) { objtooltip = 0; sys_vgui("pdtk_canvas_leaveitem .x%x.c;\n", x); @@ -3138,8 +3139,8 @@ void canvas_doclick(t_canvas *x, int xpos, int ypos, int which, { sys_vgui(".x%x.c itemconfigure %s -stroke %s -fill %s -strokewidth 1\n", x, x->gl_editor->canvas_cnct_outlet_tag, - (last_outlet_filter ? "black" : (outlet_issignal ? "$signal_cord" : "$msg_cord")), - (outlet_issignal ? "$signal_nlet" : "$msg_nlet")); + (last_outlet_filter ? "black" : (outlet_issignal ? "$pd_colors(signal_cord)" : "$pd_colors(control_cord)")), + (outlet_issignal ? "$pd_colors(signal_nlet)" : "$pd_colors(control_nlet)")); if (objtooltip) { objtooltip = 0; sys_vgui("pdtk_canvas_leaveitem .x%x.c;\n", x); @@ -3231,8 +3232,8 @@ void canvas_doclick(t_canvas *x, int xpos, int ypos, int which, { sys_vgui(".x%x.c itemconfigure %s -stroke %s -fill %s -strokewidth 1\n", x, x->gl_editor->canvas_cnct_inlet_tag, - (last_inlet_filter ? "black" : (inlet_issignal ? "$signal_cord" : "$msg_cord")), - (inlet_issignal ? "$signal_nlet" : "$msg_nlet")); + (last_inlet_filter ? "black" : (inlet_issignal ? "$pd_colors(signal_cord)" : "$pd_colors(control_cord)")), + (inlet_issignal ? "$pd_colors(signal_nlet)" : "$pd_colors(control_nlet)")); if (objtooltip) { objtooltip = 0; sys_vgui("pdtk_canvas_leaveitem .x%x.c;\n", x); @@ -3243,8 +3244,8 @@ void canvas_doclick(t_canvas *x, int xpos, int ypos, int which, { sys_vgui(".x%x.c itemconfigure %s -stroke %s -fill %s -strokewidth 1\n", x, x->gl_editor->canvas_cnct_outlet_tag, - (last_outlet_filter ? "black" : (outlet_issignal ? "$signal_cord" : "$msg_cord")), - (outlet_issignal ? "$signal_nlet" : "$msg_nlet")); + (last_outlet_filter ? "black" : (outlet_issignal ? "$pd_colors(signal_cord)" : "$pd_colors(control_cord)")), + (outlet_issignal ? "$pd_colors(signal_nlet)" : "$pd_colors(control_nlet)")); if (objtooltip) { objtooltip = 0; sys_vgui("pdtk_canvas_leaveitem .x%x.c;\n", x); @@ -3261,8 +3262,8 @@ void canvas_doclick(t_canvas *x, int xpos, int ypos, int which, { sys_vgui(".x%x.c itemconfigure %s -stroke %s -fill %s -strokewidth 1\n", x, x->gl_editor->canvas_cnct_inlet_tag, - (last_inlet_filter ? "black" : (inlet_issignal ? "$signal_cord" : "$msg_cord")), - (inlet_issignal ? "$signal_nlet" : "$msg_nlet")); + (last_inlet_filter ? "black" : (inlet_issignal ? "$pd_colors(signal_cord)" : "$pd_colors(control_cord)")), + (inlet_issignal ? "$pd_colors(signal_nlet)" : "$pd_colors(control_nlet)")); if (objtooltip) { objtooltip = 0; sys_vgui("pdtk_canvas_leaveitem .x%x.c;\n", x); @@ -3274,8 +3275,8 @@ void canvas_doclick(t_canvas *x, int xpos, int ypos, int which, { sys_vgui(".x%x.c itemconfigure %s -stroke %s -fill %s -strokewidth 1\n", x, x->gl_editor->canvas_cnct_outlet_tag, - (last_outlet_filter ? "black" : (outlet_issignal ? "$signal_cord" : "$msg_cord")), - (outlet_issignal ? "$signal_nlet" : "$msg_nlet")); + (last_outlet_filter ? "black" : (outlet_issignal ? "$pd_colors(signal_cord)" : "$pd_colors(control_cord)")), + (outlet_issignal ? "$pd_colors(signal_nlet)" : "$pd_colors(control_nlet)")); if (objtooltip) { objtooltip = 0; sys_vgui("pdtk_canvas_leaveitem .x%x.c;\n", x); @@ -3300,7 +3301,7 @@ void canvas_doclick(t_canvas *x, int xpos, int ypos, int which, //buf->u_redo = (t_undo_sel *)canvas_undo_set_selection(x); //canvas_undo_add(x, 11, "selection", buf); } - sys_vgui(".x%lx.c create prect %d %d %d %d -tags x -stroke $select_color\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -tags x -stroke $pd_colors(selection_rectangle)\n", x, xpos, ypos, xpos, ypos); x->gl_editor->e_xwas = xpos; x->gl_editor->e_ywas = ypos; @@ -3406,17 +3407,17 @@ void canvas_drawconnection(t_canvas *x, int lx1, int ly1, int lx2, int ly2, t_in if (yoff > ymax) yoff = ymax; /*sys_vgui(".x%lx.c create polyline %d %d %d %d -stroke %s -strokewidth %s -tags {l%lx all_cords}\n", x, lx1, ly1, lx2, ly2, - (issignal ? "$signal_cord" : "$msg_cord"), - (issignal ? "$signal_cord_width" : "$msg_cord_width"), + (issignal ? "$pd_colors(signal_cord)" : "$pd_colors(control_cord)"), + (issignal ? "$pd_colors(signal_cord_width)" : "$pd_colors(control_cord_width)"), tag);*/ //bezier curves FTW - sys_vgui(".x%lx.c create path \"M %d %d Q %d %d %d %d Q %d %d %d %d\" -stroke %s -strokewidth %s -tags {l%lx all_cords}\n", + sys_vgui(".x%lx.c create path \"M %d %d Q %d %d %d %d Q %d %d %d %d\" -stroke %s -strokewidth %s -tags {l%lx all_cords %s}\n", x, lx1, ly1, lx1, ly1 + yoff, lx1 + halfx, ly1 + halfy, lx2, ly2 - yoff, lx2, ly2, - (issignal ? "$signal_cord" : "$msg_cord"), - (issignal ? "$signal_cord_width" : "$msg_cord_width"), - tag); + (issignal ? "$pd_colors(signal_cord)" : "$pd_colors(control_cord)"), + (issignal ? "$pd_colors(signal_cord_width)" : "$pd_colors(control_cord_width)"), + tag, (issignal ? "signal" : "control")); } @@ -3533,15 +3534,15 @@ int canvas_doconnect_doit(t_canvas *x, t_gobj *y1, t_gobj *y2, int closest1, int /*sys_vgui(".x%lx.c create polyline %d %d %d %d -stroke %s -strokewidth %s -tags {l%lx all_cords}\n", glist_getcanvas(x), lx1, ly1, lx2, ly2, - (issignal ? "$signal_cord" : "$msg_cord"), - (issignal ? "$signal_cord_width" : "$msg_cord_width"), + (issignal ? "$pd_colors(signal_cord)" : "$pd_colors(control_cord)"), + (issignal ? "$pd_colors(signal_cord_width)" : "$pd_colors(control_cord_width)"), oc);*/ if (x->gl_editor->canvas_cnct_inlet_tag[0] != 0) { sys_vgui(".x%x.c itemconfigure %s -stroke %s -fill %s -strokewidth 1\n", x, x->gl_editor->canvas_cnct_inlet_tag, - (last_inlet_filter ? "black" : (obj_issignalinlet(ob2, closest2) ? "$signal_cord" : "$msg_cord")), - (inlet_issignal ? "$signal_nlet" : "$msg_nlet")); + (last_inlet_filter ? "black" : (obj_issignalinlet(ob2, closest2) ? "$pd_colors(signal_cord)" : "$pd_colors(control_cord)")), + (inlet_issignal ? "$pd_colors(signal_nlet)" : "$pd_colors(control_nlet)")); if (objtooltip) { objtooltip = 0; sys_vgui("pdtk_canvas_leaveitem .x%x.c;\n", x); @@ -3552,8 +3553,8 @@ int canvas_doconnect_doit(t_canvas *x, t_gobj *y1, t_gobj *y2, int closest1, int { sys_vgui(".x%x.c itemconfigure %s -stroke %s -fill %s -strokewidth 1\n", x, x->gl_editor->canvas_cnct_outlet_tag, - (last_outlet_filter ? "black" : (outlet_issignal ? "$signal_cord" : "$msg_cord")), - (outlet_issignal ? "$signal_nlet" : "$msg_nlet")); + (last_outlet_filter ? "black" : (outlet_issignal ? "$pd_colors(signal_cord)" : "$pd_colors(control_cord)")), + (outlet_issignal ? "$pd_colors(signal_nlet)" : "$pd_colors(control_nlet)")); if (objtooltip) { objtooltip = 0; sys_vgui("pdtk_canvas_leaveitem .x%x.c;\n", x); @@ -4023,8 +4024,8 @@ void canvas_doconnect(t_canvas *x, int xpos, int ypos, int which, int doit) { sys_vgui(".x%x.c itemconfigure %s -stroke %s -fill %s -strokewidth 1\n", x, x->gl_editor->canvas_cnct_inlet_tag, - (last_inlet_filter ? "black" : (inlet_issignal ? "$signal_cord" : "$msg_cord")), - (inlet_issignal ? "$signal_nlet" : "$msg_nlet")); + (last_inlet_filter ? "black" : (inlet_issignal ? "$pd_colors(signal_cord)" : "$pd_colors(control_cord)")), + (inlet_issignal ? "$pd_colors(signal_nlet)" : "$pd_colors(control_nlet)")); } if (y) { @@ -4058,8 +4059,8 @@ void canvas_doconnect(t_canvas *x, int xpos, int ypos, int which, int doit) { sys_vgui(".x%x.c itemconfigure %s -stroke %s -fill %s -strokewidth 1\n", x, x->gl_editor->canvas_cnct_inlet_tag, - (last_inlet_filter ? "black" : (inlet_issignal ? "$signal_cord" : "$msg_cord")), - (inlet_issignal ? "$signal_nlet" : "$msg_nlet")); + (last_inlet_filter ? "black" : (inlet_issignal ? "$pd_colors(signal_cord)" : "$pd_colors(control_cord)")), + (inlet_issignal ? "$pd_colors(signal_nlet)" : "$pd_colors(control_nlet)")); if (objtooltip) { objtooltip = 0; sys_vgui("pdtk_canvas_leaveitem .x%x.c;\n", x); @@ -4245,15 +4246,15 @@ void canvas_mouseup(t_canvas *x, { sys_vgui(".x%x.c itemconfigure %s -stroke %s -fill %s -strokewidth 1\n", x, x->gl_editor->canvas_cnct_outlet_tag, - (last_outlet_filter ? "black" : (outlet_issignal ? "$signal_cord" : "$msg_cord")), - (outlet_issignal ? "$signal_nlet" : "$msg_nlet")); + (last_outlet_filter ? "black" : (outlet_issignal ? "$pd_colors(signal_cord)" : "$pd_colors(control_cord)")), + (outlet_issignal ? "$pd_colors(signal_nlet)" : "$pd_colors(control_nlet)")); } if (x->gl_editor->canvas_cnct_inlet_tag[0] != 0) { sys_vgui(".x%x.c itemconfigure %s -stroke %s -fill %s -strokewidth 1\n", x, x->gl_editor->canvas_cnct_inlet_tag, - (last_inlet_filter ? "black" : (inlet_issignal ? "$signal_cord" : "$msg_cord")), - (inlet_issignal ? "$signal_nlet" : "$msg_nlet")); + (last_inlet_filter ? "black" : (inlet_issignal ? "$pd_colors(signal_cord)" : "$pd_colors(control_cord)")), + (inlet_issignal ? "$pd_colors(signal_nlet)" : "$pd_colors(control_nlet)")); x->gl_editor->canvas_cnct_inlet_tag[0] = 0; } @@ -5812,8 +5813,8 @@ void canvas_connect(t_canvas *x, t_floatarg fwhoout, t_floatarg foutno, canvas_drawconnection(x, 0, 0, 0, 0, (t_int)oc, obj_issignaloutlet(objsrc, outno)); /*sys_vgui(".x%lx.c create polyline %d %d %d %d -strokewidth %s -stroke %s -tags {l%lx all_cords}\n", glist_getcanvas(x), 0, 0, 0, 0, - (obj_issignaloutlet(objsrc, outno) ? "$signal_cord_width" : "$msg_cord_width"), - (obj_issignaloutlet(objsrc, outno) ? "$signal_cord" : "$msg_cord"), oc);*/ + (obj_issignaloutlet(objsrc, outno) ? "$pd_colors(signal_cord_width)" : "$pd_colors(control_cord_width)"), + (obj_issignaloutlet(objsrc, outno) ? "$pd_colors(signal_cord)" : "$pd_colors(control_cord)"), oc);*/ canvas_fixlinesfor(x, objsrc); } } @@ -6430,16 +6431,16 @@ void canvas_editmode(t_canvas *x, t_floatarg fyesplease) { sys_vgui(".x%x.c itemconfigure %s -stroke %s -fill %s -strokewidth 1\n", x, x->gl_editor->canvas_cnct_inlet_tag, - (last_inlet_filter ? "black" : (inlet_issignal ? "$signal_cord" : "$msg_cord")), - (inlet_issignal ? "$signal_nlet" : "$msg_nlet")); + (last_inlet_filter ? "black" : (inlet_issignal ? "$pd_colors(signal_cord)" : "$pd_colors(control_cord)")), + (inlet_issignal ? "$pd_colors(signal_nlet)" : "$pd_colors(control_nlet)")); x->gl_editor->canvas_cnct_inlet_tag[0] = 0; } if (x->gl_editor->canvas_cnct_outlet_tag[0] != 0) { sys_vgui(".x%x.c itemconfigure %s -stroke %s -fill %s -strokewidth 1\n", x, x->gl_editor->canvas_cnct_outlet_tag, - (last_outlet_filter ? "black" : (outlet_issignal ? "$signal_cord" : "$msg_cord")), - (outlet_issignal ? "$signal_nlet" : "$msg_nlet")); + (last_outlet_filter ? "black" : (outlet_issignal ? "$pd_colors(signal_cord)" : "$pd_colors(control_cord)")), + (outlet_issignal ? "$pd_colors(signal_nlet)" : "$pd_colors(control_nlet)")); x->gl_editor->canvas_cnct_outlet_tag[0] = 0; } if(x->gl_editor && x->gl_editor->gl_magic_glass) { diff --git a/pd/src/g_graph.c b/pd/src/g_graph.c index b5cf87af72835694aab0ce1eddf20516d64cf92e..598a045a5a5aa75464772f3422c6c546c89a67f8 100644 --- a/pd/src/g_graph.c +++ b/pd/src/g_graph.c @@ -435,7 +435,7 @@ void canvas_resortinlets(t_canvas *x) for (i = 0; i < ninlets; i++) { sys_vgui(".x%x.c itemconfigure %si%d -fill %s -width 1\n", x, rtext_gettag(rt), i, - (obj_issignalinlet(ob, i) ? "$signal_nlet" : "$msg_nlet")); + (obj_issignalinlet(ob, i) ? "$signal_nlet" : "$pd_colors_control_nlet)")); } */ //glist_redraw(x); @@ -817,7 +817,7 @@ static void graph_vis(t_gobj *gr, t_glist *parent_glist, int vis) if (vis && gobj_shouldvis(gr, parent_glist)) { sys_vgui(".x%lx.c create ppolygon\ - %d %d %d %d %d %d %d %d %d %d -tags {%sfill} -fill $graph_outline -stroke $graph_outline\n", + %d %d %d %d %d %d %d %d %d %d -tags {%sfill graph} -fill $pd_colors(graph_border) -stroke $pd_colors(graph_border)\n", glist_getcanvas(x->gl_owner), //parent_glist, x1, y1, x1, y2, x2, y2, x2, y1, x1, y1, tag); @@ -841,13 +841,13 @@ static void graph_vis(t_gobj *gr, t_glist *parent_glist, int vis) t_garray *ga; /* draw a rectangle around the graph */ /*sys_vgui(".x%lx.c create polyline\ - %d %d %d %d %d %d %d %d %d %d -stroke $graph_outline -tags {%sR %s}\n", + %d %d %d %d %d %d %d %d %d %d -stroke $pd_colors(graph_border) -tags {%sR %s graph}\n", glist_getcanvas(x->gl_owner), x1, y1, x1, y2, x2, y2, x2, y1, x1, y1, tag, tag);*/ sys_vgui(".x%lx.c create prect\ - %d %d %d %d -stroke $graph_outline -tags {%sR}\n", + %d %d %d %d -stroke $pd_colors(graph_border) -fill $pd_colors(graph) -tags {%sR graph}\n", glist_getcanvas(x->gl_owner), - x1, y1, x2, y2, tag); // -fill $obj_box_fill + x1, y1, x2, y2, tag); // -fill $pd_colors(graph) /* if there's just one "garray" in the graph, write its name along the top */ @@ -857,10 +857,10 @@ static void graph_vis(t_gobj *gr, t_glist *parent_glist, int vis) { //i++; sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor nw\ - -font {{%s} -%d %s} -tags {%s} -fill %s\n", + -font {{%s} %d %s} -tags {%s label graph} -fill %s\n", (long)glist_getcanvas(x), x1+2, i, arrayname->s_name, sys_font, sys_hostfontsize(glist_getfont(x)), sys_fontweight, tag, - (glist_isselected(x, gr) ? "$select_color" : "$graph_outline")); + (glist_isselected(x, gr) ? "$pd_colors(selection)" : "$pd_colors(graph_border)")); i += sys_fontheight(glist_getfont(x)); } @@ -1217,19 +1217,19 @@ static void graph_select(t_gobj *z, t_glist *glist, int state) } if(glist_istoplevel(glist)) { sys_vgui(".x%lx.c itemconfigure %sR -stroke %s\n", canvas, - rtext_gettag(y), (state? "$select_color" : "$graph_outline")); + rtext_gettag(y), (state? "$pd_colors(selection)" : "$pd_colors(graph_border)")); /* sys_vgui(".x%lx.c itemconfigure graph%lx -fill %s\n", glist_getcanvas(glist), z, - (state? "$select_color" : "$graph_outline")); + (state? "$pd_colors(selection)" : "$pd_colors(graph_border)")); */ sys_vgui(".x%lx.c itemconfigure %sT -fill %s\n", canvas, rtext_gettag(y), - (state? "$select_color" : "$graph_outline")); + (state? "$pd_colors(selection)" : "$pd_colors(graph_border)")); sys_vgui(".x%lx.c itemconfigure %sfill -stroke %s -fill %s\n", canvas, rtext_gettag(y), - (state? "$select_color" : "$graph_outline"), (state? "$select_color" : "$graph_outline")); + (state? "$pd_colors(selection)" : "$pd_colors(graph_border)"), (state? "$pd_colors(selection)" : "$pd_colors(graph_border)")); } t_gobj *g; diff --git a/pd/src/g_hdial.c b/pd/src/g_hdial.c index 5cd5f158a53bdb9383043a8fbdbb9fd3bc90bdc6..27765959f32a6dfc80f4a21a332550ba77ab881e 100644 --- a/pd/src/g_hdial.c +++ b/pd/src/g_hdial.c @@ -75,10 +75,10 @@ void hradio_draw_new(t_hradio *x, t_glist *glist) for(i=0; i<n; i++) { - sys_vgui(".x%lx.c create prect %d %d %d %d -fill #%6.6x -tags {%lxBASE%d %lxHRDO %s text}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_border) -fill #%6.6x -tags {%lxBASE%d %lxHRDO %s text iemgui border}\n", canvas, xx11, yy11, xx11+dx, yy12, x->x_gui.x_bcol, x, i, x, nlet_tag); - sys_vgui(".x%lx.c create prect %d %d %d %d -fill #%6.6x -stroke #%6.6x -tags {%lxBUT%d %lxHRDO %s text}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -fill #%6.6x -stroke #%6.6x -tags {%lxBUT%d %lxHRDO %s text iemgui}\n", canvas, xx21, yy21, xx22, yy22, (x->x_on==i)?x->x_gui.x_fcol:x->x_gui.x_bcol, (x->x_on==i)?x->x_gui.x_fcol:x->x_gui.x_bcol, x, i, x, nlet_tag); @@ -88,16 +88,16 @@ void hradio_draw_new(t_hradio *x, t_glist *glist) x->x_drawn = x->x_on; } sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ - -font {{%s} -%d %s} -fill #%6.6x -tags {%lxLABEL %lxHRDO %s text}\n", + -font {{%s} -%d %s} -fill #%6.6x -tags {%lxLABEL %lxHRDO %s text iemgui}\n", canvas, xx11b+x->x_gui.x_ldx, yy11+x->x_gui.x_ldy, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, x->x_gui.x_lcol, x, x, nlet_tag); if(!x->x_gui.x_fsf.x_snd_able && canvas == x->x_gui.x_glist) - sys_vgui(".x%lx.c create prect %d %d %d %d -tags {%lxHRDO%so%d %so%d %lxHRDO %s outlet}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_nlet) -tags {%lxHRDO%so%d %so%d %lxHRDO %s outlet iemgui}\n", canvas, xx11b, yy12-1, xx11b + IOWIDTH, yy12, x, nlet_tag, 0, nlet_tag, 0, x, nlet_tag); if(!x->x_gui.x_fsf.x_rcv_able && canvas == x->x_gui.x_glist) - sys_vgui(".x%lx.c create prect %d %d %d %d -tags {%lxHRDO%si%d %si%d %lxHRDO %s inlet}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_nlet) -tags {%lxHRDO%si%d %si%d %lxHRDO %s inlet iemgui}\n", canvas, xx11b, yy11, xx11b + IOWIDTH, yy11+1, x, nlet_tag, 0, nlet_tag, 0, x, nlet_tag); //} } @@ -179,13 +179,13 @@ void hradio_draw_config(t_hradio* x, t_glist* glist) /* char color[64]; if (x->x_gui.x_fsf.x_selected) - sprintf(color, "$select_color"); + sprintf(color, "$pd_colors(selection)"); else sprintf(color, "#%6.6x", x->x_gui.x_lcol); */ if (x->x_gui.x_fsf.x_selected && x->x_gui.x_glist == canvas) - sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} -%d %s} -fill $select_color -text {%s} \n", + sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} -%d %s} -fill $pd_colors(selection) -text {%s} \n", canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:""); else @@ -216,7 +216,7 @@ void hradio_draw_io(t_hradio* x, t_glist* glist, int old_snd_rcv_flags) char *nlet_tag = iem_get_tag(glist, (t_iemgui *)x); if((old_snd_rcv_flags & IEM_GUI_OLD_SND_FLAG) && !x->x_gui.x_fsf.x_snd_able) - sys_vgui(".x%lx.c create prect %d %d %d %d -tags {%lxHRDO%so%d %so%d %lxHRDO %s outlet}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_nlet) -tags {%lxHRDO%so%d %so%d %lxHRDO %s outlet iemgui}\n", canvas, xpos, ypos + x->x_gui.x_w-1, xpos + IOWIDTH, ypos + x->x_gui.x_w, @@ -224,7 +224,7 @@ void hradio_draw_io(t_hradio* x, t_glist* glist, int old_snd_rcv_flags) if(!(old_snd_rcv_flags & IEM_GUI_OLD_SND_FLAG) && x->x_gui.x_fsf.x_snd_able) sys_vgui(".x%lx.c delete %lxHRDO%so%d\n", canvas, x, nlet_tag, 0); if((old_snd_rcv_flags & IEM_GUI_OLD_RCV_FLAG) && !x->x_gui.x_fsf.x_rcv_able) - sys_vgui(".x%lx.c create prect %d %d %d %d -tags {%lxHRDO%si%d %si%d %lxHRDO %s inlet}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_nlet) -tags {%lxHRDO%si%d %si%d %lxHRDO %s inlet iemgui}\n", canvas, xpos, ypos, xpos + IOWIDTH, ypos+1, x, nlet_tag, 0, nlet_tag, 0, x, nlet_tag); @@ -252,18 +252,18 @@ void hradio_draw_select(t_hradio* x, t_glist* glist) for(i=0; i<n; i++) { - sys_vgui(".x%lx.c itemconfigure %lxBASE%d -stroke $select_color\n", canvas, x, i); + sys_vgui(".x%lx.c itemconfigure %lxBASE%d -stroke $pd_colors(selection)\n", canvas, x, i); } - sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill $select_color\n", canvas, x); + sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill $pd_colors(selection)\n", canvas, x); if (x->x_gui.scale_vis) { sys_vgui("destroy %s\n", sh->h_pathname); sys_vgui(".x%lx.c delete %lxSCALE\n", canvas, x); } - sys_vgui("canvas %s -width %d -height %d -bg $select_color -bd 0 -cursor bottom_right_corner\n", + sys_vgui("canvas %s -width %d -height %d -bg $pd_colors(selection) -bd 0 -cursor bottom_right_corner\n", sh->h_pathname, SCALEHANDLE_WIDTH, SCALEHANDLE_HEIGHT); - sys_vgui(".x%x.c create window %d %d -anchor nw -width %d -height %d -window %s -tags {%lxSCALE %lxHRDO %s}\n", + sys_vgui(".x%x.c create window %d %d -anchor nw -width %d -height %d -window %s -tags {%lxSCALE %lxHRDO %s iemgui}\n", canvas, x->x_gui.x_obj.te_xpix + x->x_gui.x_w * x->x_number - SCALEHANDLE_WIDTH - 1, x->x_gui.x_obj.te_ypix + x->x_gui.x_h - SCALEHANDLE_HEIGHT - 1, SCALEHANDLE_WIDTH, SCALEHANDLE_HEIGHT, @@ -282,9 +282,9 @@ void hradio_draw_select(t_hradio* x, t_glist* glist) sys_vgui(".x%lx.c delete %lxLABELH\n", canvas, x); } - sys_vgui("canvas %s -width %d -height %d -bg $select_color -bd 0 -cursor crosshair\n", + sys_vgui("canvas %s -width %d -height %d -bg $pd_colors(selection) -bd 0 -cursor crosshair\n", lh->h_pathname, LABELHANDLE_WIDTH, LABELHANDLE_HEIGHT); - sys_vgui(".x%x.c create window %d %d -anchor nw -width %d -height %d -window %s -tags {%lxLABEL %lxLABELH %lxHRDO %s}\n", + sys_vgui(".x%x.c create window %d %d -anchor nw -width %d -height %d -window %s -tags {%lxLABEL %lxLABELH %lxHRDO %s iemgui}\n", canvas, x->x_gui.x_obj.te_xpix+ x->x_gui.x_ldx - LABELHANDLE_WIDTH, x->x_gui.x_obj.te_ypix + x->x_gui.x_ldy - LABELHANDLE_HEIGHT, LABELHANDLE_WIDTH, LABELHANDLE_HEIGHT, @@ -306,7 +306,7 @@ void hradio_draw_select(t_hradio* x, t_glist* glist) sys_vgui(".x%lx.c dtag %lxHRDO selected\n", canvas, x); for(i=0; i<n; i++) { - sys_vgui(".x%lx.c itemconfigure %lxBASE%d -stroke #%6.6x\n", canvas, x, i, + sys_vgui(".x%lx.c itemconfigure %lxBASE%d -stroke %s\n", canvas, x, i, IEM_GUI_COLOR_NORMAL); } sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill #%6.6x\n", canvas, x, @@ -382,7 +382,7 @@ static void hradio__clickhook(t_scalehandle *sh, t_floatarg f, t_floatarg xxx, t { sys_vgui("lower %s\n", sh->h_pathname); sys_vgui(".x%x.c create prect %d %d %d %d\ - -stroke $select_color -strokewidth 1 -tags %s\n", + -stroke $pd_colors(selection) -strokewidth 1 -tags %s\n", x->x_gui.x_glist, x->x_gui.x_obj.te_xpix, x->x_gui.x_obj.te_ypix, x->x_gui.x_obj.te_xpix + (x->x_gui.x_w * x->x_number), x->x_gui.x_obj.te_ypix + x->x_gui.x_h, sh->h_outlinetag); diff --git a/pd/src/g_hslider.c b/pd/src/g_hslider.c index 9f1da8bcd21e57512e904a4cdaef78dfea5835d1..cc22e944ec26650e9519e538d215db0aaf619db0 100644 --- a/pd/src/g_hslider.c +++ b/pd/src/g_hslider.c @@ -84,26 +84,26 @@ static void hslider_draw_new(t_hslider *x, t_glist *glist) char *nlet_tag = iem_get_tag(glist, (t_iemgui *)x); - sys_vgui(".x%lx.c create prect %d %d %d %d -fill #%6.6x -tags {%lxBASE %lxHSLDR %s text}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_border) -fill #%6.6x -tags {%lxBASE %lxHSLDR %s text iemgui border}\n", canvas, xpos, ypos, xpos + x->x_gui.x_w+5, ypos + x->x_gui.x_h, x->x_gui.x_bcol, x, x, nlet_tag); - sys_vgui(".x%lx.c create polyline %d %d %d %d -strokewidth 3 -stroke #%6.6x -tags {%lxKNOB %lxHSLDR %s text}\n", + sys_vgui(".x%lx.c create polyline %d %d %d %d -strokewidth 3 -stroke #%6.6x -tags {%lxKNOB %lxHSLDR %s text iemgui}\n", canvas, r, ypos+2, r, ypos + x->x_gui.x_h-2, x->x_gui.x_fcol, x, x, nlet_tag); sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ - -font {{%s} -%d %s} -fill #%6.6x -tags {%lxLABEL %lxHSLDR % text}\n", + -font {{%s} -%d %s} -fill #%6.6x -tags {%lxLABEL %lxHSLDR % text iemgui}\n", canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, x->x_gui.x_lcol, x, x, nlet_tag); if(!x->x_gui.x_fsf.x_snd_able && canvas == x->x_gui.x_glist) - sys_vgui(".x%lx.c create prect %d %d %d %d -tags {%lxHSLDR%so%d %so%d %lxHSLDR %s outlet}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_nlet) -tags {%lxHSLDR%so%d %so%d %lxHSLDR %s outlet iemgui}\n", canvas, xpos, ypos + x->x_gui.x_h-1, xpos+7, ypos + x->x_gui.x_h, x, nlet_tag, 0, nlet_tag, 0, x, nlet_tag); if(!x->x_gui.x_fsf.x_rcv_able && canvas == x->x_gui.x_glist) - sys_vgui(".x%lx.c create prect %d %d %d %d -tags {%lxHSLDR%si%d %si%d %lxHSLDR %s inlet}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_nlet) -tags {%lxHSLDR%si%d %si%d %lxHSLDR %s inlet iemgui}\n", canvas, xpos, ypos, xpos+7, ypos+1, x, nlet_tag, 0, nlet_tag, 0, x, nlet_tag); //} @@ -176,7 +176,7 @@ static void hslider_draw_config(t_hslider* x,t_glist* glist) t_canvas *canvas=glist_getcanvas(glist); if (x->x_gui.x_fsf.x_selected && x->x_gui.x_glist == canvas) - sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} -%d %s} -fill $select_color -text {%s} \n", + sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} -%d %s} -fill $pd_colors(selection) -text {%s} \n", canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:""); else @@ -199,13 +199,13 @@ static void hslider_draw_io(t_hslider* x,t_glist* glist, int old_snd_rcv_flags) char *nlet_tag = iem_get_tag(glist, (t_iemgui *)x); if((old_snd_rcv_flags & IEM_GUI_OLD_SND_FLAG) && !x->x_gui.x_fsf.x_snd_able) - sys_vgui(".x%lx.c create prect %d %d %d %d -tags {%lxHSLDR%so%d %so%d %lxHSLDR %s outlet}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_nlet) -tags {%lxHSLDR%so%d %so%d %lxHSLDR %s outlet iemgui}\n", canvas, xpos, ypos + x->x_gui.x_h-1, xpos+7, ypos + x->x_gui.x_h, x, nlet_tag, 0, nlet_tag, 0, x, nlet_tag); if(!(old_snd_rcv_flags & IEM_GUI_OLD_SND_FLAG) && x->x_gui.x_fsf.x_snd_able) sys_vgui(".x%lx.c delete %lxHSLDR%so%d\n", canvas, x, nlet_tag, 0); if((old_snd_rcv_flags & IEM_GUI_OLD_RCV_FLAG) && !x->x_gui.x_fsf.x_rcv_able) - sys_vgui(".x%lx.c create prect %d %d %d %d -tags {%lxHSLDR%si%d %si%d %lxHSLDR %s inlet}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_nlet) -tags {%lxHSLDR%si%d %si%d %lxHSLDR %s inlet iemgui}\n", canvas, xpos, ypos, xpos+7, ypos+1, x, nlet_tag, 0, nlet_tag, 0, x, nlet_tag); if(!(old_snd_rcv_flags & IEM_GUI_OLD_RCV_FLAG) && x->x_gui.x_fsf.x_rcv_able) @@ -229,15 +229,15 @@ static void hslider_draw_select(t_hslider* x,t_glist* glist) char *nlet_tag = iem_get_tag(glist, (t_iemgui *)x); - sys_vgui(".x%lx.c itemconfigure %lxBASE -stroke $select_color\n", canvas, x); - sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill $select_color\n", canvas, x); + sys_vgui(".x%lx.c itemconfigure %lxBASE -stroke $pd_colors(selection)\n", canvas, x); + sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill $pd_colors(selection)\n", canvas, x); if (x->x_gui.scale_vis) { sys_vgui("destroy %s\n", sh->h_pathname); sys_vgui(".x%lx.c delete %lxSCALE\n", canvas, x); } - sys_vgui("canvas %s -width %d -height %d -bg $select_color -bd 0 -cursor bottom_right_corner\n", + sys_vgui("canvas %s -width %d -height %d -bg $pd_colors(selection) -bd 0 -cursor bottom_right_corner\n", sh->h_pathname, SCALEHANDLE_WIDTH, SCALEHANDLE_HEIGHT); sys_vgui(".x%x.c create window %d %d -anchor nw -width %d -height %d -window %s -tags {%lxSCALE %lxHSLDR %s}\n", canvas, x->x_gui.x_obj.te_xpix + x->x_gui.x_w + 5 - SCALEHANDLE_WIDTH - 1, @@ -259,7 +259,7 @@ static void hslider_draw_select(t_hslider* x,t_glist* glist) sys_vgui(".x%lx.c delete %lxLABELH\n", canvas, x); } - sys_vgui("canvas %s -width %d -height %d -bg $select_color -bd 0 -cursor crosshair\n", + sys_vgui("canvas %s -width %d -height %d -bg $pd_colors(selection) -bd 0 -cursor crosshair\n", lh->h_pathname, LABELHANDLE_WIDTH, LABELHANDLE_HEIGHT); sys_vgui(".x%x.c create window %d %d -anchor nw -width %d -height %d -window %s -tags {%lxLABEL %lxLABELH %lxHSLDR %s}\n", canvas, x->x_gui.x_obj.te_xpix+ x->x_gui.x_ldx - LABELHANDLE_WIDTH, @@ -280,7 +280,7 @@ static void hslider_draw_select(t_hslider* x,t_glist* glist) } else { - sys_vgui(".x%lx.c itemconfigure %lxBASE -stroke #%6.6x\n", canvas, x, IEM_GUI_COLOR_NORMAL); + sys_vgui(".x%lx.c itemconfigure %lxBASE -stroke %s\n", canvas, x, IEM_GUI_COLOR_NORMAL); sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill #%6.6x\n", canvas, x, x->x_gui.x_lcol); sys_vgui(".x%lx.c dtag %lxHSLDR selected\n", canvas, x); sys_vgui("destroy %s\n", sh->h_pathname); @@ -361,7 +361,7 @@ static void hslider__clickhook(t_scalehandle *sh, t_floatarg f, t_floatarg xxx, { sys_vgui("lower %s\n", sh->h_pathname); sys_vgui(".x%x.c create prect %d %d %d %d\ - -stroke $select_color -strokewidth 1 -tags %s\n", + -stroke $pd_colors(selection) -strokewidth 1 -tags %s\n", x->x_gui.x_glist, x->x_gui.x_obj.te_xpix, x->x_gui.x_obj.te_ypix, x->x_gui.x_obj.te_xpix + 5 + x->x_gui.x_w, x->x_gui.x_obj.te_ypix + x->x_gui.x_h, sh->h_outlinetag); diff --git a/pd/src/g_magicglass.c b/pd/src/g_magicglass.c index 02eae00b02330143192e46d142fd74273fd4ee90..dc139f4f80f338d77a1f02b3cf40e50a47c52947 100644 --- a/pd/src/g_magicglass.c +++ b/pd/src/g_magicglass.c @@ -65,10 +65,10 @@ void magicGlass_updateText(t_magicGlass *x, int moved) if (!moved) { char *color; if (x->x_issignal || strcmp(x->x_old_string, x->x_string)) { - color = "#ffffff"; + color = "$pd_colors(magic_glass_text)"; } else { - color = "#e87216"; + color = "$pd_colors(magic_glass_flash)"; clock_delay(x->x_flashClock, MG_CLOCK_FLASH_DELAY); } sys_vgui(".x%x.c itemconfigure magicGlassText -text {%s} -fill %s -font {{%s} -%d %s}\n", @@ -112,11 +112,11 @@ void magicGlass_updateText(t_magicGlass *x, int moved) void magicGlass_drawNew(t_magicGlass *x) { //fprintf(stderr,"magicglass_drawNew\n"); - sys_vgui(".x%x.c create prect 0 0 0 0 -stroke #000000 -fill #000000 -tags magicGlassBg\n", + sys_vgui(".x%x.c create prect 0 0 0 0 -stroke $pd_colors(magic_glass_bg) -fill $pd_colors(magic_glass_bg) -tags magicGlassBg\n", x->x_c); - sys_vgui(".x%x.c create ppolygon 0 0 0 0 0 0 -fill #000000 -strokewidth 1 -tags magicGlassLine\n", + sys_vgui(".x%x.c create ppolygon 0 0 0 0 0 0 -fill $pd_colors(magic_glass_bd) -strokewidth 1 -tags magicGlassLine\n", x->x_c); - sys_vgui(".x%x.c create text 0 0 -text {} -anchor w -fill #e87216 -font {{%s} -%d %s} -tags magicGlassText\n", + sys_vgui(".x%x.c create text 0 0 -text {} -anchor w -fill $pd_colors(magic_glass_flash) -font {{%s} -%d %s} -tags magicGlassText\n", x->x_c, sys_font, x->x_display_font, sys_fontweight); sys_vgui(".x%x.c raise magicGlassBg\n", x->x_c); @@ -137,7 +137,7 @@ void magicGlass_undraw(t_magicGlass *x) void magicGlass_flashText(t_magicGlass *x) { //fprintf(stderr,"magicglass_flashText\n"); - sys_vgui(".x%x.c itemconfigure magicGlassText -fill #ffffff\n", + sys_vgui(".x%x.c itemconfigure magicGlassText -fill $pd_colors(magic_glass_text)\n", x->x_c); } diff --git a/pd/src/g_mycanvas.c b/pd/src/g_mycanvas.c index 0a1a388d505e4935830af1b2407498f1a4a8aa48..f6b4d43dd6ef27319e8fdcc4f4a0310b70a822f9 100644 --- a/pd/src/g_mycanvas.c +++ b/pd/src/g_mycanvas.c @@ -50,16 +50,16 @@ void my_canvas_draw_new(t_my_canvas *x, t_glist *glist) //if (glist_isvisible(glist)) { char *nlet_tag = iem_get_tag(glist, (t_iemgui *)x); - sys_vgui(".x%lx.c create prect %d %d %d %d -fill #%6.6x -stroke #%6.6x -tags {%lxRECT %lxMYCNV %s text}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -fill #%6.6x -stroke #%6.6x -tags {%lxRECT %lxMYCNV %s text iemgui}\n", canvas, xpos, ypos, xpos + x->x_vis_w, ypos + x->x_vis_h, x->x_gui.x_bcol, x->x_gui.x_bcol, x, x, nlet_tag); - sys_vgui(".x%lx.c create prect %d %d %d %d -stroke #%6.6x -tags {%lxBASE %lxMYCNV %s text}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke #%6.6x -tags {%lxBASE %lxMYCNV %s text iemgui}\n", canvas, xpos, ypos, xpos + x->x_gui.x_w, ypos + x->x_gui.x_h, x->x_gui.x_bcol, x, x, nlet_tag); sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ - -font {{%s} -%d %s} -fill #%6.6x -tags {%lxLABEL %lxMYCNV %s text}\n", + -font {{%s} -%d %s} -fill #%6.6x -tags {%lxLABEL %lxMYCNV %s text iemgui}\n", canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, @@ -117,7 +117,7 @@ void my_canvas_draw_config(t_my_canvas* x, t_glist* glist) /* char color[64]; if (x->x_gui.x_fsf.x_selected) - sprintf(color, "$select_color"); + sprintf(color, "$pd_colors(selection)"); else sprintf(color, "#%6.6x", x->x_gui.x_bcol); */ @@ -125,7 +125,7 @@ void my_canvas_draw_config(t_my_canvas* x, t_glist* glist) sys_vgui(".x%lx.c itemconfigure %lxRECT -fill #%6.6x -stroke #%6.6x\n", canvas, x, x->x_gui.x_bcol, x->x_gui.x_bcol); if (x->x_gui.x_fsf.x_selected && x->x_gui.x_glist == canvas) - sys_vgui(".x%lx.c itemconfigure %lxBASE -stroke $select_color\n", canvas, x); + sys_vgui(".x%lx.c itemconfigure %lxBASE -stroke $pd_colors(selection)\n", canvas, x); else sys_vgui(".x%lx.c itemconfigure %lxBASE -stroke #%6.6x\n", canvas, x, x->x_gui.x_bcol); @@ -151,14 +151,14 @@ void my_canvas_draw_select(t_my_canvas* x, t_glist* glist) char *nlet_tag = iem_get_tag(glist, (t_iemgui *)x); - sys_vgui(".x%lx.c itemconfigure %lxBASE -stroke $select_color\n", canvas, x); + sys_vgui(".x%lx.c itemconfigure %lxBASE -stroke $pd_colors(selection)\n", canvas, x); if (x->x_gui.scale_vis) { sys_vgui("destroy %s\n", sh->h_pathname); sys_vgui(".x%lx.c delete %lxSCALE\n", canvas, x); } - sys_vgui("canvas %s -width %d -height %d -bg $select_color -bd 0 -cursor bottom_right_corner\n", + sys_vgui("canvas %s -width %d -height %d -bg $pd_colors(selection) -bd 0 -cursor bottom_right_corner\n", sh->h_pathname, SCALEHANDLE_WIDTH, SCALEHANDLE_HEIGHT); sys_vgui(".x%x.c create window %d %d -anchor nw -width %d -height %d -window %s -tags {%lxSCALE %lxMYCNV %s}\n", canvas, x->x_gui.x_obj.te_xpix + x->x_vis_w - SCALEHANDLE_WIDTH - 1, @@ -180,7 +180,7 @@ void my_canvas_draw_select(t_my_canvas* x, t_glist* glist) sys_vgui(".x%lx.c delete %lxLABELH\n", canvas, x); } - sys_vgui("canvas %s -width %d -height %d -bg $select_color -bd 0 -cursor crosshair\n", + sys_vgui("canvas %s -width %d -height %d -bg $pd_colors(selection) -bd 0 -cursor crosshair\n", lh->h_pathname, LABELHANDLE_WIDTH, LABELHANDLE_HEIGHT); sys_vgui(".x%x.c create window %d %d -anchor nw -width %d -height %d -window %s -tags {%lxLABEL %lxLABELH %lxMYCNV %s}\n", canvas, x->x_gui.x_obj.te_xpix+ x->x_gui.x_ldx - LABELHANDLE_WIDTH, @@ -278,7 +278,7 @@ static void my_canvas__clickhook(t_scalehandle *sh, t_floatarg f, t_floatarg xxx { sys_vgui("lower %s\n", sh->h_pathname); sys_vgui(".x%x.c create prect %d %d %d %d\ - -stroke $select_color -strokewidth 1 -tags %s\n", + -stroke $pd_colors(selection) -strokewidth 1 -tags %s\n", x->x_gui.x_glist, x->x_gui.x_obj.te_xpix, x->x_gui.x_obj.te_ypix, x->x_gui.x_obj.te_xpix + x->x_vis_w, x->x_gui.x_obj.te_ypix + x->x_vis_h, sh->h_outlinetag); diff --git a/pd/src/g_numbox.c b/pd/src/g_numbox.c index ef9330599c9237f778ab95a89173ffcba312a09a..d0aa6e67e87db6b3411a0f378f905888c19e27d1 100644 --- a/pd/src/g_numbox.c +++ b/pd/src/g_numbox.c @@ -173,7 +173,7 @@ static void my_numbox_draw_update(t_gobj *client, t_glist *glist) { char color[64]; if (x->x_gui.x_fsf.x_selected) - sprintf(color, "$select_color"); + sprintf(color, "$pd_colors(selection)"); else sprintf(color, "#%6.6x", x->x_gui.x_fcol); @@ -208,8 +208,8 @@ static void my_numbox_draw_new(t_my_numbox *x, t_glist *glist) if (x->x_hide_frame <= 1) { sys_vgui( - ".x%lx.c create ppolygon %d %d %d %d %d %d %d %d %d %d -stroke #%6.6x \ - -fill #%6.6x -tags {%lxBASE1 %lxNUM %s text}\n", + ".x%lx.c create ppolygon %d %d %d %d %d %d %d %d %d %d -stroke %s \ + -fill #%6.6x -tags {%lxBASE1 %lxNUM %s text iemgui border}\n", canvas, xpos, ypos, xpos + x->x_numwidth-4, ypos, xpos + x->x_numwidth, ypos+4, @@ -217,13 +217,13 @@ static void my_numbox_draw_new(t_my_numbox *x, t_glist *glist) xpos, ypos + x->x_gui.x_h, IEM_GUI_COLOR_NORMAL, x->x_gui.x_bcol, x, x, nlet_tag); if(!x->x_gui.x_fsf.x_snd_able && canvas == x->x_gui.x_glist) - sys_vgui(".x%lx.c create prect %d %d %d %d -tags {%lxNUM%so%d %so%d %lxNUM %s outlet}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_nlet) -tags {%lxNUM%so%d %so%d %lxNUM %s outlet iemgui}\n", canvas, xpos, ypos + x->x_gui.x_h-1, xpos+IOWIDTH, ypos + x->x_gui.x_h, x, nlet_tag, 0, nlet_tag, 0, x, nlet_tag); if(!x->x_gui.x_fsf.x_rcv_able && canvas == x->x_gui.x_glist) - sys_vgui(".x%lx.c create prect %d %d %d %d -tags {%lxNUM%si%d %si%d %lxNUM %s inlet}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_nlet) -tags {%lxNUM%si%d %si%d %lxNUM %s inlet iemgui}\n", canvas, xpos, ypos, xpos+IOWIDTH, ypos+1, @@ -231,7 +231,7 @@ static void my_numbox_draw_new(t_my_numbox *x, t_glist *glist) } else { sys_vgui( ".x%lx.c create ppolygon %d %d %d %d %d %d %d %d %d %d -stroke #%6.6x \ - -fill #%6.6x -tags {%lxBASE1 %lxNUM %s text}\n", + -fill #%6.6x -tags {%lxBASE1 %lxNUM %s text iemgui}\n", canvas, xpos, ypos, xpos + x->x_numwidth-4, ypos, xpos + x->x_numwidth, ypos+4, @@ -241,20 +241,20 @@ static void my_numbox_draw_new(t_my_numbox *x, t_glist *glist) } if (!x->x_hide_frame || x->x_hide_frame == 2) sys_vgui( - ".x%lx.c create polyline %d %d %d %d %d %d -stroke #%6.6x -tags {%lxBASE2 %lxNUM %s text}\n", + ".x%lx.c create polyline %d %d %d %d %d %d -stroke #%6.6x -tags {%lxBASE2 %lxNUM %s text iemgui}\n", canvas, xpos, ypos, xpos + half, ypos + half, xpos, ypos + x->x_gui.x_h, x->x_gui.x_fcol, x, x, nlet_tag); sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ - -font {{%s} -%d %s} -fill #%6.6x -tags {%lxLABEL %lxNUM %s text}\n", + -font {{%s} -%d %s} -fill #%6.6x -tags {%lxLABEL %lxNUM %s text iemgui}\n", canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, x->x_gui.x_lcol, x, x, nlet_tag); my_numbox_ftoa(x); sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ - -font {{%s} -%d %s} -fill #%6.6x -tags {%lxNUMBER %lxNUM %s noscroll text}\n", + -font {{%s} -%d %s} -fill #%6.6x -tags {%lxNUMBER %lxNUM %s noscroll text iemgui}\n", canvas, xpos+half+2, ypos+half+d, x->x_buf, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, x->x_gui.x_fcol, x, x, nlet_tag); @@ -329,8 +329,8 @@ static void my_numbox_draw_config(t_my_numbox* x,t_glist* glist) char color[64]; char lcolor[64]; if (x->x_gui.x_fsf.x_selected) { - sprintf(color, "$select_color"); - sprintf(lcolor, "$select_color"); + sprintf(color, "$pd_colors(selection)"); + sprintf(lcolor, "$pd_colors(selection)"); } else { sprintf(color, "#%6.6x", x->x_gui.x_fcol); @@ -339,15 +339,15 @@ static void my_numbox_draw_config(t_my_numbox* x,t_glist* glist) */ if (x->x_gui.x_fsf.x_selected && x->x_gui.x_glist == canvas) { - sys_vgui(" .x%lx.c itemconfigure %lxLABEL -font {{%s} -%d %s} -fill $select_color -text {%s} \n .x%lx.c itemconfigure %lxNUMBER -font {{%s} -%d %s} -fill $select_color \n .x%lx.c itemconfigure %lxBASE2 -stroke $select_color\n", + sys_vgui(" .x%lx.c itemconfigure %lxLABEL -font {{%s} -%d %s} -fill $pd_colors(selection) -text {%s} \n .x%lx.c itemconfigure %lxNUMBER -font {{%s} -%d %s} -fill $pd_colors(selection) \n .x%lx.c itemconfigure %lxBASE2 -stroke $pd_colors(selection)\n", canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, canvas,x); /* - sys_vgui(".x%lx.c itemconfigure %lxNUMBER -font {{%s} %d %s} -fill $select_color \n", + sys_vgui(".x%lx.c itemconfigure %lxNUMBER -font {{%s} %d %s} -fill $pd_colors(selection) \n", canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight); - sys_vgui(".x%lx.c itemconfigure %lxBASE2 -fill $select_color\n", canvas, + sys_vgui(".x%lx.c itemconfigure %lxBASE2 -fill $pd_colors(selection)\n", canvas, x); */ } @@ -378,7 +378,7 @@ static void my_numbox_draw_io(t_my_numbox* x,t_glist* glist, int old_snd_rcv_fla char *nlet_tag = iem_get_tag(glist, (t_iemgui *)x); if((old_snd_rcv_flags & IEM_GUI_OLD_SND_FLAG) && !x->x_gui.x_fsf.x_snd_able) - sys_vgui(".x%lx.c create prect %d %d %d %d -tags {%lxNUM%so%d %so%d %lxNUM %s outlet}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_nlet) -tags {%lxNUM%so%d %so%d %lxNUM %s outlet iemgui}\n", canvas, xpos, ypos + x->x_gui.x_h-1, xpos+IOWIDTH, ypos + x->x_gui.x_h, @@ -386,7 +386,7 @@ static void my_numbox_draw_io(t_my_numbox* x,t_glist* glist, int old_snd_rcv_fla if(!(old_snd_rcv_flags & IEM_GUI_OLD_SND_FLAG) && x->x_gui.x_fsf.x_snd_able) sys_vgui(".x%lx.c delete %lxNUM%so%d\n", canvas, x, nlet_tag, 0); if((old_snd_rcv_flags & IEM_GUI_OLD_RCV_FLAG) && !x->x_gui.x_fsf.x_rcv_able) - sys_vgui(".x%lx.c create prect %d %d %d %d -tags {%lxNUM%si%d %si%d %lxNUM %s inlet}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_nlet) -tags {%lxNUM%si%d %si%d %lxNUM %s inlet iemgui}\n", canvas, xpos, ypos, xpos+IOWIDTH, ypos+1, @@ -421,13 +421,13 @@ static void my_numbox_draw_select(t_my_numbox *x, t_glist *glist) char *nlet_tag = iem_get_tag(glist, (t_iemgui *)x); - sys_vgui(".x%lx.c itemconfigure %lxBASE1 -stroke $select_color\n", + sys_vgui(".x%lx.c itemconfigure %lxBASE1 -stroke $pd_colors(selection)\n", canvas, x); - sys_vgui(".x%lx.c itemconfigure %lxBASE2 -stroke $select_color\n", + sys_vgui(".x%lx.c itemconfigure %lxBASE2 -stroke $pd_colors(selection)\n", canvas, x); - sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill $select_color\n", + sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill $pd_colors(selection)\n", canvas, x); - sys_vgui(".x%lx.c itemconfigure %lxNUMBER -fill $select_color\n", + sys_vgui(".x%lx.c itemconfigure %lxNUMBER -fill $pd_colors(selection)\n", canvas, x); if (x->x_gui.scale_vis) { @@ -435,7 +435,7 @@ static void my_numbox_draw_select(t_my_numbox *x, t_glist *glist) sys_vgui(".x%lx.c delete %lxSCALE\n", canvas, x); } - sys_vgui("canvas %s -width %d -height %d -bg $select_color -bd 0 -cursor bottom_right_corner\n", + sys_vgui("canvas %s -width %d -height %d -bg $pd_colors(selection) -bd 0 -cursor bottom_right_corner\n", sh->h_pathname, SCALEHANDLE_WIDTH, SCALEHANDLE_HEIGHT); sys_vgui(".x%x.c create window %d %d -anchor nw -width %d -height %d -window %s -tags {%lxSCALE %lxNUM %s}\n", canvas, x->x_gui.x_obj.te_xpix + x->x_numwidth - SCALEHANDLE_WIDTH - 1, @@ -456,7 +456,7 @@ static void my_numbox_draw_select(t_my_numbox *x, t_glist *glist) sys_vgui(".x%lx.c delete %lxLABELH\n", canvas, x); } - sys_vgui("canvas %s -width %d -height %d -bg $select_color -bd 0 -cursor crosshair\n", + sys_vgui("canvas %s -width %d -height %d -bg $pd_colors(selection) -bd 0 -cursor crosshair\n", lh->h_pathname, LABELHANDLE_WIDTH, LABELHANDLE_HEIGHT); sys_vgui(".x%x.c create window %d %d -anchor nw -width %d -height %d -window %s -tags {%lxLABEL %lxLABELH %lxNUM %s}\n", canvas, x->x_gui.x_obj.te_xpix+ x->x_gui.x_ldx - LABELHANDLE_WIDTH, @@ -480,7 +480,7 @@ static void my_numbox_draw_select(t_my_numbox *x, t_glist *glist) sys_vgui(".x%lx.c dtag %lxNUM selected\n", canvas, x); if (x->x_hide_frame <= 1) - sys_vgui(".x%lx.c itemconfigure %lxBASE1 -stroke #%6.6x\n", + sys_vgui(".x%lx.c itemconfigure %lxBASE1 -stroke %s\n", canvas, x, IEM_GUI_COLOR_NORMAL); else sys_vgui(".x%lx.c itemconfigure %lxBASE1 -stroke #%6.6x\n", canvas, x, x->x_gui.x_bcol); @@ -563,7 +563,7 @@ static void my_numbox__clickhook(t_scalehandle *sh, t_floatarg f, t_floatarg xxx { sys_vgui("lower %s\n", sh->h_pathname); sys_vgui(".x%x.c create prect %d %d %d %d\ - -stroke $select_color -strokewidth 1 -tags %s\n", + -stroke $pd_colors(selection) -strokewidth 1 -tags %s\n", x->x_gui.x_glist, x->x_gui.x_obj.te_xpix, x->x_gui.x_obj.te_ypix, x->x_gui.x_obj.te_xpix + x->x_numwidth, x->x_gui.x_obj.te_ypix + x->x_gui.x_h, sh->h_outlinetag); diff --git a/pd/src/g_rtext.c b/pd/src/g_rtext.c index 0968ad9757e050b1c72140822f07bbe51c7e1370..7e985850acb47be58dc07aa2e83dd8d24a2500ff 100644 --- a/pd/src/g_rtext.c +++ b/pd/src/g_rtext.c @@ -333,7 +333,7 @@ static void rtext_senditup(t_rtext *x, int action, int *widthp, int *heightp, dispx + LMARGIN, dispy + TMARGIN, outchars_b, tempbuf, sys_hostfontsize(font), (glist_isselected(x->x_glist, - &x->x_glist->gl_gobj)? "$select_color" : "$text_color")); + &x->x_glist->gl_gobj)? "$pd_colors(selection)" : "$pd_colors(text)")); } else if (action == SEND_UPDATE) { @@ -500,7 +500,7 @@ void rtext_select(t_rtext *x, int state) t_canvas *canvas = glist_getcanvas(glist); if (glist_istoplevel(glist)) sys_vgui(".x%lx.c itemconfigure %s -fill %s\n", canvas, - x->x_tag, (state? "$select_color" : "$text_color")); + x->x_tag, (state? "$pd_colors(selection)" : "$pd_colors(text)")); if (x->x_text->te_pd->c_wb && x->x_text->te_pd->c_wb->w_displacefnwtag) { if (state) sys_vgui(".x%lx.c addtag selected withtag %s\n", diff --git a/pd/src/g_scalar.c b/pd/src/g_scalar.c index 273ce6eb0a84e7b55ef0b910f61b8952eca7f50f..1d1d9472bfa3ed1866b7e51187e09d3026b6a3f5 100644 --- a/pd/src/g_scalar.c +++ b/pd/src/g_scalar.c @@ -208,7 +208,7 @@ static void scalar_drawselectrect(t_scalar *x, t_glist *glist, int state) x1--; x2++; y1--; y2++; if (glist_istoplevel(glist)) sys_vgui(".x%lx.c create polyline %d %d %d %d %d %d %d %d %d %d \ - -strokewidth 1 -stroke $select_color -tags {select%lx selected}\n", + -strokewidth 1 -stroke $pd_colors(selection) -tags {select%lx selected}\n", glist_getcanvas(glist), x1, y1, x1, y2, x2, y2, x2, y1, x1, y1, x); } diff --git a/pd/src/g_text.c b/pd/src/g_text.c index 381cb9015633abad095d7abf70215bd3245aaedd..febe69afd53b47bfa84bb22e8f9eab214365bd94 100644 --- a/pd/src/g_text.c +++ b/pd/src/g_text.c @@ -34,7 +34,7 @@ void canvas_howputnew(t_canvas *x, int *connectp, int *xpixp, int *ypixp, void canvas_startmotion(t_canvas *x); t_widgetbehavior text_widgetbehavior; -static char *invalid_fill = "\"#ffdddd\""; +static char *invalid_fill = "$::pd_colors(dash_fill)"; extern void canvas_apply_setundo(t_canvas *x, t_gobj *y); extern void canvas_setundo(t_canvas *x, t_undofn undofn, void *buf, const char *name); @@ -744,7 +744,7 @@ static void gatom_retext(t_gatom *x, int senditup, int recolor) t_rtext *y = glist_findrtext(x->a_glist, &x->a_text); if (recolor) sys_vgui(".x%lx.c itemconfigure %s -fill %s\n", canvas, - rtext_gettag(y), "$text_color"); + rtext_gettag(y), "$pd_colors(text)"); binbuf_clear(x->a_text.te_binbuf); binbuf_add(x->a_text.te_binbuf, 1, &x->a_atom); if (senditup && glist_isvisible(x->a_glist)) @@ -1082,7 +1082,7 @@ static void gatom_vis(t_gobj *z, t_glist *glist, int vis) (double)x1, (double)y1, canvas_realizedollar(x->a_glist, x->a_label)->s_name, sys_hostfontsize(glist_getfont(glist)), - "$text_color"); + "$pd_colors(text)"); } else sys_vgui(".x%lx.c delete %lx.l\n", glist_getcanvas(glist), x); } @@ -1379,18 +1379,20 @@ static void text_select(t_gobj *z, t_glist *glist, int state) // text_class is either a comment or an object that failed to creates // so we distinguish between it and comment using T_TEXT type check - if (pd_class(&x->te_pd) == text_class && x->te_type != T_TEXT) { - outline = "$dash_outline"; - } else - outline = "$box_outline"; + if (pd_class(&x->te_pd) == text_class && x->te_type != T_TEXT) + outline = "$pd_colors(dash_outline)"; + else if (z->g_pd == gatom_class) + outline = "$pd_colors(atom_box_border)"; + else + outline = "$pd_colors(box_border)"; //fprintf(stderr,"text_select isvisible=%d shouldvis=%d istoplevel=%d\n", glist_isvisible(glist), gobj_shouldvis(&x->te_g, glist), glist_istoplevel(glist)); if (gobj_shouldvis(&x->te_g, glist)) { if (glist_istoplevel(glist)) { sys_vgui(".x%lx.c itemconfigure %sR -stroke %s\n", glist_getcanvas(glist), - rtext_gettag(y), (state? "$select_color" : outline)); + rtext_gettag(y), (state? "$pd_colors(selection)" : outline)); if (z->g_pd == gatom_class) { sys_vgui(".x%lx.c itemconfigure %lx.l -fill %s\n", glist_getcanvas(glist), - x, (state? "$select_color" : "$text_color")); + x, (state? "$pd_colors(selection)" : "$pd_colors(text)")); } } if (z->g_pd->c_wb && z->g_pd->c_wb->w_displacefnwtag) { @@ -1404,7 +1406,7 @@ static void text_select(t_gobj *z, t_glist *glist, int state) glist_getcanvas(glist), rtext_gettag(y)); if (pd_class(&x->te_pd) == text_class && glist_istoplevel(glist)) - sys_vgui(".x%lx.c itemconfigure %sR -strokewidth 1 -fill $obj_box_fill\n", + sys_vgui(".x%lx.c itemconfigure %sR -strokewidth 1 -fill $pd_colors(box)\n", glist_getcanvas(glist), rtext_gettag(y)); t_object *ob = pd_checkobject(&x->te_pd); @@ -1534,7 +1536,7 @@ static int text_click(t_gobj *z, struct _glist *glist, (t_floatarg)shift, (t_floatarg)0, (t_floatarg)alt); //fprintf(stderr,"atom click\n"); sys_vgui(".x%lx.c itemconfigure %s -fill %s\n", canvas, - rtext_gettag(y), "$select_color"); + rtext_gettag(y), "$pd_colors(selection)"); } return (1); } @@ -1680,11 +1682,12 @@ void glist_drawiofor(t_glist *glist, t_object *ob, int firsttime, //fprintf(stderr,"glist_drawiofor o firsttime\n"); issignal = obj_issignaloutlet(ob,i); sys_vgui(".x%lx.c create prect %d %d %d %d \ - -fill %s -stroke %s -tags {%so%d %lx outlet}\n", + -fill %s -stroke %s -tags {%so%d %lx outlet %s}\n", glist_getcanvas(glist), onset, y2 - 2, onset + IOWIDTH, y2, - (issignal ? "$signal_nlet" : "$msg_nlet"), - (issignal ? "$signal_cord" : "$msg_cord"), - tag, i, tag); + (issignal ? "$pd_colors(signal_nlet)" : "$pd_colors(control_nlet)"), + (issignal ? "$pd_colors(signal_cord)" : "$pd_colors(control_cord)"), + tag, i, tag, + (issignal ? "signal" : "control")); } else { //fprintf(stderr,"glist_drawiofor o redraw\n"); @@ -1710,11 +1713,12 @@ void glist_drawiofor(t_glist *glist, t_object *ob, int firsttime, //fprintf(stderr,"glist_drawiofor i firsttime\n"); issignal = obj_issignalinlet(ob,i); sys_vgui(".x%lx.c create prect %d %d %d %d \ - -fill %s -stroke %s -tags {%si%d %lx inlet}\n", + -fill %s -stroke %s -tags {%si%d %lx inlet %s}\n", glist_getcanvas(glist), onset, y1, onset + IOWIDTH, y1 + EXTRAPIX, - (issignal ? "$signal_nlet" : "$msg_nlet"), - (issignal ? "$signal_cord" : "$msg_cord"), - tag, i, tag); + (issignal ? "$pd_colors(signal_nlet)" : "$pd_colors(control_nlet)"), + (issignal ? "$pd_colors(signal_cord)" : "$pd_colors(control_cord)"), + tag, i, tag, + (issignal ? "signal" : "control")); } else { //fprintf(stderr,"glist_drawiofor i firsttime\n"); @@ -1752,8 +1756,8 @@ void glist_drawiofor_withtag(t_glist *glist, t_object *ob, int firsttime, sys_vgui(".x%lx.c create prect %d %d %d %d \ -fill %s -stroke %s -tags {%so%d %lx outlet}\n", glist_getcanvas(glist), onset, y2 - 2, onset + IOWIDTH, y2, - (issignal ? "$signal_nlet" : "$msg_nlet"), - (issignal ? "$signal_cord" : "$msg_cord"), + (issignal ? "$pd_colors(signal_nlet)" : "$pd_colors(control_nlet)"), + (issignal ? "$pd_colors(signal_cord)" : "$pd_colors(control_cord)"), tag, i, tag); } /* @@ -1777,8 +1781,8 @@ void glist_drawiofor_withtag(t_glist *glist, t_object *ob, int firsttime, sys_vgui(".x%lx.c create prect %d %d %d %d \ -fill %s -stroke %s -tags {%si%d %lx inlet}\n", glist_getcanvas(glist), onset, y1, onset + IOWIDTH, y1 + EXTRAPIX, - (issignal ? "$signal_nlet" : "$msg_nlet"), - (issignal ? "$signal_cord" : "$msg_cord"), + (issignal ? "$pd_colors(signal_nlet)" : "$pd_colors(control_nlet)"), + (issignal ? "$pd_colors(signal_cord)" : "$pd_colors(control_cord)"), tag, i, tag); } /* else @@ -1790,8 +1794,8 @@ void glist_drawiofor_withtag(t_glist *glist, t_object *ob, int firsttime, sys_vgui(".x%lx.c itemconfigure %si%d \ -fill %s -outline %s\n", glist_getcanvas(glist), tag, i, - (issignal ? "$signal_nlet" : "$msg_nlet"), - (issignal ? "$signal_cord" : "$msg_cord")); + (issignal ? "$pd_colors(signal_nlet)" : "$pd_colors(control_nlet)"), + (issignal ? "$pd_colors(signal_cord)" : "$pd_colors(control_cord)")); } */ } @@ -1827,25 +1831,29 @@ void text_drawborder(t_text *x, t_glist *glist, if (x->te_type == T_OBJECT) { char *pattern; char *outline; char *fill; + /* tag to identify broken boxes from tcl/tk */ + char *box_tag; if (pd_class(&x->te_pd) == text_class) { pattern = "-"; - outline = "$dash_outline -strokewidth 2"; - fill = invalid_fill; + outline = "$pd_colors(dash_outline) -strokewidth 2"; + fill = invalid_fill; + box_tag = "broken box"; } else { pattern = "\"\""; - outline = "$box_outline"; - fill = "$obj_box_fill"; + outline = "$pd_colors(box_border)"; + fill = "$pd_colors(box)"; + box_tag = "box"; } if (firsttime) { sys_vgui(".x%lx.c create ppolygon %d %d %d %d %d %d %d %d %d %d \ - -stroke %s -fill %s -tags {%sR %lx text}\n", + -stroke %s -fill %s -tags {%sR %lx text %s}\n", glist_getcanvas(glist), x1, y1, x2, y1, x2, y2, x1, y2, x1, y1, - outline, fill, tag, tag); + outline, fill, tag, tag, box_tag); //-dash %s -> pattern disabled for tkpath } else @@ -1863,7 +1871,7 @@ void text_drawborder(t_text *x, t_glist *glist, { if (firsttime) sys_vgui(".x%lx.c create ppolygon\ - %d %d %d %d %d %d %d %d %d %d %d %d %d %d -stroke $box_outline -fill $msg_box_fill -tags {%sR %lx text}\n", + %d %d %d %d %d %d %d %d %d %d %d %d %d %d -stroke $pd_colors(msg_border) -fill $pd_colors(msg) -tags {%sR %lx text msg box}\n", glist_getcanvas(glist), x1, y1, x2+4, y1, x2, y1+4, x2, y2-4, x2+4, y2, x1, y2, x1, y1, @@ -1879,7 +1887,7 @@ void text_drawborder(t_text *x, t_glist *glist, { if (firsttime) sys_vgui(".x%lx.c create ppolygon\ - %d %d %d %d %d %d %d %d %d %d %d %d -stroke $box_outline -fill $atom_box_fill -tags {%sR %lx text}\n", + %d %d %d %d %d %d %d %d %d %d %d %d -stroke $pd_colors(atom_box_border) -fill $pd_colors(atom_box) -tags {%sR %lx text atom box}\n", glist_getcanvas(glist), x1, y1, x2-4, y1, x2, y1+4, x2, y2, x1, y2, x1, y1, tag, tag); @@ -1930,14 +1938,14 @@ void text_drawborder_withtag(t_text *x, t_glist *glist, if (pd_class(&x->te_pd) == text_class) { pattern = "-"; - outline = "$dash_outline -strokewidth 2"; + outline = "$pd_colors(dash_outline) -strokewidth 2"; fill = invalid_fill; } else { pattern = "\"\""; - outline = "$box_outline"; - fill = "$obj_box_fill"; + outline = "$pd_colors(box_border)"; + fill = "$pd_colors(box)"; } if (firsttime) { @@ -1956,7 +1964,7 @@ void text_drawborder_withtag(t_text *x, t_glist *glist, if (firsttime) sys_vgui(".x%lx.c create ppolygon \ %d %d %d %d %d %d %d %d %d %d %d %d %d %d \ - -stroke $box_outline -fill $msg_box_fill -tags {%sR %lx text}\n", + -stroke $pd_colors(msg_border) -fill $pd_colors(msg) -tags {%sR %lx text msg box}\n", glist_getcanvas(glist), x1, y1, x2+msg_draw_const, y1, x2, y1+msg_draw_const, x2, y2-msg_draw_const, x2+msg_draw_const, y2, @@ -1968,7 +1976,7 @@ void text_drawborder_withtag(t_text *x, t_glist *glist, atom_draw_const = ((y2-y1)/3); if (firsttime) sys_vgui(".x%lx.c create ppolygon %d %d %d %d %d %d %d %d %d %d %d %d \ - -stroke $box_outline -fill $atom_box_fill -tags {%sR %lx text}\n", + -stroke $pd_colors(atom_box_border) -fill $pd_colors(atom_box) -tags {%sR %lx text atom box}\n", glist_getcanvas(glist), x1, y1, x2-atom_draw_const, y1, x2, y1+atom_draw_const, x2, y2, x1, y2, x1, y1, diff --git a/pd/src/g_toggle.c b/pd/src/g_toggle.c index 2f7771627c634ab398ac21fe00e5e8b635bb3382..41992dcefd1d17349b551ad4912a1ccbca76dee5 100644 --- a/pd/src/g_toggle.c +++ b/pd/src/g_toggle.c @@ -72,27 +72,27 @@ void toggle_draw_new(t_toggle *x, t_glist *glist) w = 2; if(x->x_gui.x_w >= 60) w = 3; - sys_vgui(".x%lx.c create prect %d %d %d %d -fill #%6.6x -tags {%lxBASE %lxTGL %s text}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_border) -fill #%6.6x -tags {%lxBASE %lxTGL %s text iemgui border}\n", canvas, xx, yy, xx + x->x_gui.x_w, yy + x->x_gui.x_h, x->x_gui.x_bcol, x, x, nlet_tag); - sys_vgui(".x%lx.c create polyline %d %d %d %d -strokewidth %d -stroke #%6.6x -tags {%lxX1 %lxTGL %s text}\n", + sys_vgui(".x%lx.c create polyline %d %d %d %d -strokewidth %d -stroke #%6.6x -tags {%lxX1 %lxTGL %s text iemgui}\n", canvas, xx+w+1, yy+w+1, xx + x->x_gui.x_w-w-1, yy + x->x_gui.x_h-w-1, w, (x->x_on!=0.0)?x->x_gui.x_fcol:x->x_gui.x_bcol, x, x, nlet_tag); - sys_vgui(".x%lx.c create polyline %d %d %d %d -strokewidth %d -stroke #%6.6x -tags {%lxX2 %lxTGL %s text}\n", + sys_vgui(".x%lx.c create polyline %d %d %d %d -strokewidth %d -stroke #%6.6x -tags {%lxX2 %lxTGL %s text iemgui}\n", canvas, xx+w+1, yy + x->x_gui.x_h-w-1, xx + x->x_gui.x_w-w-1, yy+w+1, w, (x->x_on!=0.0)?x->x_gui.x_fcol:x->x_gui.x_bcol, x, x, nlet_tag); sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ - -font {{%s} -%d %s} -fill #%6.6x -tags {%lxLABEL %lxTGL %s text}\n", + -font {{%s} -%d %s} -fill #%6.6x -tags {%lxLABEL %lxTGL %s text iemgui}\n", canvas, xx+x->x_gui.x_ldx, yy+x->x_gui.x_ldy, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, x->x_gui.x_lcol, x, x, nlet_tag); if(!x->x_gui.x_fsf.x_snd_able && canvas == x->x_gui.x_glist) - sys_vgui(".x%lx.c create prect %d %d %d %d -tags {%lxTGL%so%d %so%d %lxTGL %s outlet}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_nlet) -tags {%lxTGL%so%d %so%d %lxTGL %s outlet iemgui}\n", canvas, xx, yy + x->x_gui.x_h-1, xx + IOWIDTH, yy + x->x_gui.x_h, x, nlet_tag, 0, nlet_tag, 0, x, nlet_tag); if(!x->x_gui.x_fsf.x_rcv_able && canvas == x->x_gui.x_glist) - sys_vgui(".x%lx.c create prect %d %d %d %d -tags {%lxTGL%si%d %si%d %lxTGL %s inlet}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_nlet) -tags {%lxTGL%si%d %si%d %lxTGL %s inlet iemgui}\n", canvas, xx, yy, xx + IOWIDTH, yy+1, x, nlet_tag, 0, nlet_tag, 0, x, nlet_tag); //} } @@ -156,7 +156,7 @@ void toggle_draw_config(t_toggle* x, t_glist* glist) /* char color[64]; if (x->x_gui.x_fsf.x_selected) - sprintf(color, "$select_color"); + sprintf(color, "$pd_colors(selection)"); else sprintf(color, "#%6.6x", x->x_gui.x_lcol); @@ -167,7 +167,7 @@ void toggle_draw_config(t_toggle* x, t_glist* glist) strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:""); */ if (x->x_gui.x_fsf.x_selected && x->x_gui.x_glist == canvas) { - sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} -%d %s} -fill $select_color -text {%s} \n", + sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} -%d %s} -fill $pd_colors(selection) -text {%s} \n", canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:""); } @@ -200,14 +200,14 @@ void toggle_draw_io(t_toggle* x, t_glist* glist, int old_snd_rcv_flags) char *nlet_tag = iem_get_tag(glist, (t_iemgui *)x); if((old_snd_rcv_flags & IEM_GUI_OLD_SND_FLAG) && !x->x_gui.x_fsf.x_snd_able) - sys_vgui(".x%lx.c create prect %d %d %d %d -tags {%lxTGL%so%d %so%d %lxTGL %s outlet}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_nlet) -tags {%lxTGL%so%d %so%d %lxTGL %s outlet iemgui}\n", canvas, xpos, ypos + x->x_gui.x_h-1, xpos + IOWIDTH, ypos + x->x_gui.x_h, x, nlet_tag, 0, nlet_tag, 0, x, nlet_tag); if(!(old_snd_rcv_flags & IEM_GUI_OLD_SND_FLAG) && x->x_gui.x_fsf.x_snd_able) sys_vgui(".x%lx.c delete %lxTGL%so%d\n", canvas, x, nlet_tag, 0); if((old_snd_rcv_flags & IEM_GUI_OLD_RCV_FLAG) && !x->x_gui.x_fsf.x_rcv_able) - sys_vgui(".x%lx.c create prect %d %d %d %d -tags {%lxTGL%si%d %si%d %lxTGL %s outlet}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_nlet) -tags {%lxTGL%si%d %si%d %lxTGL %s inlet iemgui}\n", canvas, xpos, ypos, xpos + IOWIDTH, ypos+1, x, nlet_tag, 0, nlet_tag, 0, x, nlet_tag); if(!(old_snd_rcv_flags & IEM_GUI_OLD_RCV_FLAG) && x->x_gui.x_fsf.x_rcv_able) @@ -232,15 +232,15 @@ void toggle_draw_select(t_toggle* x, t_glist* glist) char *nlet_tag = iem_get_tag(glist, (t_iemgui *)x); - sys_vgui(".x%lx.c itemconfigure %lxBASE -stroke $select_color\n", canvas, x); - sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill $select_color\n", canvas, x); + sys_vgui(".x%lx.c itemconfigure %lxBASE -stroke $pd_colors(selection)\n", canvas, x); + sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill $pd_colors(selection)\n", canvas, x); if (x->x_gui.scale_vis) { sys_vgui("destroy %s\n", sh->h_pathname); sys_vgui(".x%lx.c delete %lxSCALE\n", canvas, x); } - sys_vgui("canvas %s -width %d -height %d -bg $select_color -bd 0 -cursor bottom_right_corner\n", + sys_vgui("canvas %s -width %d -height %d -bg $pd_colors(selection) -bd 0 -cursor bottom_right_corner\n", sh->h_pathname, SCALEHANDLE_WIDTH, SCALEHANDLE_HEIGHT); sys_vgui(".x%x.c create window %d %d -anchor nw -width %d -height %d -window %s -tags {%lxSCALE %lxTGL %s}\n", canvas, x->x_gui.x_obj.te_xpix + x->x_gui.x_w - SCALEHANDLE_WIDTH - 1, @@ -262,7 +262,7 @@ void toggle_draw_select(t_toggle* x, t_glist* glist) sys_vgui(".x%lx.c delete %lxLABELH\n", canvas, x); } - sys_vgui("canvas %s -width %d -height %d -bg $select_color -bd 0 -cursor crosshair\n", + sys_vgui("canvas %s -width %d -height %d -bg $pd_colors(selection) -bd 0 -cursor crosshair\n", lh->h_pathname, LABELHANDLE_WIDTH, LABELHANDLE_HEIGHT); sys_vgui(".x%x.c create window %d %d -anchor nw -width %d -height %d -window %s -tags {%lxLABEL %lxLABELH %lxTGL %s}\n", canvas, x->x_gui.x_obj.te_xpix+ x->x_gui.x_ldx - LABELHANDLE_WIDTH, @@ -283,7 +283,7 @@ void toggle_draw_select(t_toggle* x, t_glist* glist) } else { - sys_vgui(".x%lx.c itemconfigure %lxBASE -stroke #%6.6x\n", canvas, x, IEM_GUI_COLOR_NORMAL); + sys_vgui(".x%lx.c itemconfigure %lxBASE -stroke %s\n", canvas, x, IEM_GUI_COLOR_NORMAL); sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill #%6.6x\n", canvas, x, x->x_gui.x_lcol); sys_vgui(".x%lx.c dtag %lxTGL selected\n", canvas, x); sys_vgui("destroy %s\n", sh->h_pathname); @@ -359,7 +359,7 @@ static void toggle__clickhook(t_scalehandle *sh, t_floatarg f, t_floatarg xxx, t { sys_vgui("lower %s\n", sh->h_pathname); sys_vgui(".x%x.c create prect %d %d %d %d\ - -stroke $select_color -strokewidth 1 -tags %s\n", + -stroke $pd_colors(selection) -strokewidth 1 -tags %s\n", x->x_gui.x_glist, x->x_gui.x_obj.te_xpix, x->x_gui.x_obj.te_ypix, x->x_gui.x_obj.te_xpix + x->x_gui.x_w, x->x_gui.x_obj.te_ypix + x->x_gui.x_h, sh->h_outlinetag); diff --git a/pd/src/g_vdial.c b/pd/src/g_vdial.c index a9bc96ef21ec3bcc23b0e0a008260c34492ac8a5..d31eea5b0ada843fa497515b5c5f5d9ed06d10bb 100644 --- a/pd/src/g_vdial.c +++ b/pd/src/g_vdial.c @@ -73,10 +73,10 @@ void vradio_draw_new(t_vradio *x, t_glist *glist) for(i=0; i<n; i++) { - sys_vgui(".x%lx.c create prect %d %d %d %d -fill #%6.6x -tags {%lxBASE%d %lxVRDO %s text}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_border) -fill #%6.6x -tags {%lxBASE%d %lxVRDO %s text iemgui border}\n", canvas, xx11, yy11, xx12, yy12, x->x_gui.x_bcol, x, i, x, nlet_tag); - sys_vgui(".x%lx.c create prect %d %d %d %d -fill #%6.6x -stroke #%6.6x -tags {%lxBUT%d %lxVRDO %s text}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -fill #%6.6x -stroke #%6.6x -tags {%lxBUT%d %lxVRDO %s text iemgui}\n", canvas, xx21, yy21, xx22, yy22, (x->x_on==i)?x->x_gui.x_fcol:x->x_gui.x_bcol, (x->x_on==i)?x->x_gui.x_fcol:x->x_gui.x_bcol, x, i, x, nlet_tag); @@ -87,16 +87,16 @@ void vradio_draw_new(t_vradio *x, t_glist *glist) x->x_drawn = x->x_on; } sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ - -font {{%s} -%d %s} -fill #%6.6x -tags {%lxLABEL %lxVRDO %s text}\n", + -font {{%s} -%d %s} -fill #%6.6x -tags {%lxLABEL %lxVRDO %s text iemgui}\n", canvas, xx11+x->x_gui.x_ldx, yy11b+x->x_gui.x_ldy, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, x->x_gui.x_lcol, x, x, nlet_tag); if(!x->x_gui.x_fsf.x_snd_able && canvas == x->x_gui.x_glist) - sys_vgui(".x%lx.c create prect %d %d %d %d -tags {%lxVRDO%so%d %so%d %lxVRDO %s outlet}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_nlet) -tags {%lxVRDO%so%d %so%d %lxVRDO %s outlet iemgui}\n", canvas, xx11, yy11-1, xx11 + IOWIDTH, yy11, x, nlet_tag, 0, nlet_tag, 0, x, nlet_tag); if(!x->x_gui.x_fsf.x_rcv_able && canvas == x->x_gui.x_glist) - sys_vgui(".x%lx.c create prect %d %d %d %d -tags {%lxVRDO%si%d %si%d %lxVRDO %s inlet}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_nlet) -tags {%lxVRDO%si%d %si%d %lxVRDO %s inlet iemgui}\n", canvas, xx11, yy11b, xx11 + IOWIDTH, yy11b+1, x, nlet_tag, 0, nlet_tag, 0, x, nlet_tag); //} } @@ -165,13 +165,13 @@ void vradio_draw_config(t_vradio* x, t_glist* glist) /* char color[64]; if (x->x_gui.x_fsf.x_selected) - sprintf(color, "$select_color"); + sprintf(color, "$pd_colors(selection)"); else sprintf(color, "#%6.6x", x->x_gui.x_lcol); */ if (x->x_gui.x_fsf.x_selected && x->x_gui.x_glist == canvas) - sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} -%d %s} -fill $select_color -text {%s} \n", + sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} -%d %s} -fill $pd_colors(selection) -text {%s} \n", canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:""); else @@ -202,7 +202,7 @@ void vradio_draw_io(t_vradio* x, t_glist* glist, int old_snd_rcv_flags) char *nlet_tag = iem_get_tag(glist, (t_iemgui *)x); if((old_snd_rcv_flags & IEM_GUI_OLD_SND_FLAG) && !x->x_gui.x_fsf.x_snd_able) - sys_vgui(".x%lx.c create prect %d %d %d %d -tags {%lxVRDO%so%d %so%d %lxVRDO %s outlet}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_nlet) -tags {%lxVRDO%so%d %so%d %lxVRDO %s outlet iemgui}\n", canvas, xpos, ypos+(x->x_number*x->x_gui.x_h)-1, xpos+ IOWIDTH, @@ -210,7 +210,7 @@ void vradio_draw_io(t_vradio* x, t_glist* glist, int old_snd_rcv_flags) if(!(old_snd_rcv_flags & IEM_GUI_OLD_SND_FLAG) && x->x_gui.x_fsf.x_snd_able) sys_vgui(".x%lx.c delete %lxVRDO%so%d\n", canvas, x, nlet_tag, 0); if((old_snd_rcv_flags & IEM_GUI_OLD_RCV_FLAG) && !x->x_gui.x_fsf.x_rcv_able) - sys_vgui(".x%lx.c create prect %d %d %d %d -tags {%lxVRDO%si%d %si%d %lxVRDO %s inlet}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_nlet) -tags {%lxVRDO%si%d %si%d %lxVRDO %s inlet iemgui}\n", canvas, xpos, ypos, xpos+ IOWIDTH, ypos+1, x, nlet_tag, 0, nlet_tag, 0, x, nlet_tag); @@ -239,16 +239,16 @@ void vradio_draw_select(t_vradio* x, t_glist* glist) for(i=0; i<n; i++) { - sys_vgui(".x%lx.c itemconfigure %lxBASE%d -stroke $select_color\n", canvas, x, i); + sys_vgui(".x%lx.c itemconfigure %lxBASE%d -stroke $pd_colors(selection)\n", canvas, x, i); } - sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill $select_color\n", canvas, x); + sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill $pd_colors(selection)\n", canvas, x); if (x->x_gui.scale_vis) { sys_vgui("destroy %s\n", sh->h_pathname); sys_vgui(".x%lx.c delete %lxSCALE\n", canvas, x); } - sys_vgui("canvas %s -width %d -height %d -bg $select_color -bd 0 -cursor bottom_right_corner\n", + sys_vgui("canvas %s -width %d -height %d -bg $pd_colors(selection) -bd 0 -cursor bottom_right_corner\n", sh->h_pathname, SCALEHANDLE_WIDTH, SCALEHANDLE_HEIGHT); sys_vgui(".x%x.c create window %d %d -anchor nw -width %d -height %d -window %s -tags {%lxSCALE %lxVRDO %s}\n", canvas, x->x_gui.x_obj.te_xpix + x->x_gui.x_w - SCALEHANDLE_WIDTH - 1, @@ -270,7 +270,7 @@ void vradio_draw_select(t_vradio* x, t_glist* glist) sys_vgui(".x%lx.c delete %lxLABELH\n", canvas, x); } - sys_vgui("canvas %s -width %d -height %d -bg $select_color -bd 0 -cursor crosshair\n", + sys_vgui("canvas %s -width %d -height %d -bg $pd_colors(selection) -bd 0 -cursor crosshair\n", lh->h_pathname, LABELHANDLE_WIDTH, LABELHANDLE_HEIGHT); sys_vgui(".x%x.c create window %d %d -anchor nw -width %d -height %d -window %s -tags {%lxLABEL %lxLABELH %lxVRDO %s}\n", canvas, x->x_gui.x_obj.te_xpix+ x->x_gui.x_ldx - LABELHANDLE_WIDTH, @@ -294,7 +294,7 @@ void vradio_draw_select(t_vradio* x, t_glist* glist) for(i=0; i<n; i++) { sys_vgui(".x%lx.c dtag %lxVRDO selected\n", canvas, x); - sys_vgui(".x%lx.c itemconfigure %lxBASE%d -stroke #%6.6x\n", canvas, x, i, + sys_vgui(".x%lx.c itemconfigure %lxBASE%d -stroke %s\n", canvas, x, i, IEM_GUI_COLOR_NORMAL); } sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill #%6.6x\n", canvas, x, @@ -370,7 +370,7 @@ static void vradio__clickhook(t_scalehandle *sh, t_floatarg f, t_floatarg xxx, t { sys_vgui("lower %s\n", sh->h_pathname); sys_vgui(".x%x.c create prect %d %d %d %d\ - -stroke $select_color -strokewidth 1 -tags %s\n", + -stroke $pd_colors(selection) -strokewidth 1 -tags %s\n", x->x_gui.x_glist, x->x_gui.x_obj.te_xpix, x->x_gui.x_obj.te_ypix, x->x_gui.x_obj.te_xpix + x->x_gui.x_w, x->x_gui.x_obj.te_ypix + (x->x_gui.x_h * x->x_number), sh->h_outlinetag); diff --git a/pd/src/g_vslider.c b/pd/src/g_vslider.c index 1947d68b0c2b92ab43dfa1b5f7be720e212be3a0..51e626a42095959d471bb841fb59d41e1171e9ea 100644 --- a/pd/src/g_vslider.c +++ b/pd/src/g_vslider.c @@ -84,27 +84,27 @@ static void vslider_draw_new(t_vslider *x, t_glist *glist) char *nlet_tag = iem_get_tag(glist, (t_iemgui *)x); - sys_vgui(".x%lx.c create prect %d %d %d %d -fill #%6.6x -tags {%lxBASE %lxVSLDR %s text}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_border) -fill #%6.6x -tags {%lxBASE %lxVSLDR %s text iemgui border}\n", canvas, xpos, ypos, xpos + x->x_gui.x_w, ypos + x->x_gui.x_h+5, x->x_gui.x_bcol, x, x, nlet_tag); - sys_vgui(".x%lx.c create polyline %d %d %d %d -strokewidth 3 -stroke #%6.6x -tags {%lxKNOB %lxVSLDR %s text}\n", + sys_vgui(".x%lx.c create polyline %d %d %d %d -strokewidth 3 -stroke #%6.6x -tags {%lxKNOB %lxVSLDR %s text iemgui}\n", canvas, xpos+2, r, xpos + x->x_gui.x_w-2, r, x->x_gui.x_fcol, x, x, nlet_tag); sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ - -font {{%s} -%d %s} -fill #%6.6x -tags {%lxLABEL %lxVSLDR %s text}\n", + -font {{%s} -%d %s} -fill #%6.6x -tags {%lxLABEL %lxVSLDR %s text iemgui}\n", canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, x->x_gui.x_lcol, x, x, nlet_tag); if(!x->x_gui.x_fsf.x_snd_able && canvas == x->x_gui.x_glist) - sys_vgui(".x%lx.c create prect %d %d %d %d -tags {%lxVSLDR%so%d %so%d %lxVSLDR %s outlet}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_nlet) -tags {%lxVSLDR%so%d %so%d %lxVSLDR %s outlet iemgui}\n", canvas, xpos, ypos + x->x_gui.x_h+4, xpos+7, ypos + x->x_gui.x_h+5, x, nlet_tag, 0, nlet_tag, 0, x, nlet_tag); if(!x->x_gui.x_fsf.x_rcv_able && canvas == x->x_gui.x_glist) - sys_vgui(".x%lx.c create prect %d %d %d %d -tags {%lxVSLDR%si%d %si%d %lxVSLDR %s inlet}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_nlet) -tags {%lxVSLDR%si%d %si%d %lxVSLDR %s inlet iemgui}\n", canvas, xpos, ypos, xpos+7, ypos+1, @@ -172,13 +172,13 @@ static void vslider_draw_config(t_vslider* x,t_glist* glist) /* char color[64]; if (x->x_gui.x_fsf.x_selected) - sprintf(color, "$select_color"); + sprintf(color, "$pd_colors(selection)"); else sprintf(color, "#%6.6x", x->x_gui.x_lcol); */ if (x->x_gui.x_fsf.x_selected && x->x_gui.x_glist == canvas) - sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} -%d %s} -fill $select_color -text {%s} \n", + sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} -%d %s} -fill $pd_colors(selection) -text {%s} \n", canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:""); else @@ -203,7 +203,7 @@ static void vslider_draw_io(t_vslider* x,t_glist* glist, int old_snd_rcv_flags) char *nlet_tag = iem_get_tag(glist, (t_iemgui *)x); if((old_snd_rcv_flags & IEM_GUI_OLD_SND_FLAG) && !x->x_gui.x_fsf.x_snd_able) - sys_vgui(".x%lx.c create prect %d %d %d %d -tags {%lxVSLDR%so%d %so%d %lxVSLDR %s outlet}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_nlet) -tags {%lxVSLDR%so%d %so%d %lxVSLDR %s outlet iemgui}\n", canvas, xpos, ypos + x->x_gui.x_h+4, xpos+7, ypos + x->x_gui.x_h+5, @@ -211,7 +211,7 @@ static void vslider_draw_io(t_vslider* x,t_glist* glist, int old_snd_rcv_flags) if(!(old_snd_rcv_flags & IEM_GUI_OLD_SND_FLAG) && x->x_gui.x_fsf.x_snd_able) sys_vgui(".x%lx.c delete %lxVSLDR%so%d\n", canvas, x, nlet_tag, 0); if((old_snd_rcv_flags & IEM_GUI_OLD_RCV_FLAG) && !x->x_gui.x_fsf.x_rcv_able) - sys_vgui(".x%lx.c create prect %d %d %d %d -tags {%lxVSLDR%si%d %si%d %lxVSLDR %s inlet}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_nlet) -tags {%lxVSLDR%si%d %si%d %lxVSLDR %s inlet iemgui}\n", canvas, xpos, ypos, xpos+7, ypos+1, @@ -237,15 +237,15 @@ static void vslider_draw_select(t_vslider *x, t_glist *glist) char *nlet_tag = iem_get_tag(glist, (t_iemgui *)x); - sys_vgui(".x%lx.c itemconfigure %lxBASE -stroke $select_color\n", canvas, x); - sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill $select_color\n", canvas, x); + sys_vgui(".x%lx.c itemconfigure %lxBASE -stroke $pd_colors(selection)\n", canvas, x); + sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill $pd_colors(selection)\n", canvas, x); if (x->x_gui.scale_vis) { sys_vgui("destroy %s\n", sh->h_pathname); sys_vgui(".x%lx.c delete %lxSCALE\n", canvas, x); } - sys_vgui("canvas %s -width %d -height %d -bg $select_color -bd 0 -cursor bottom_right_corner\n", + sys_vgui("canvas %s -width %d -height %d -bg $pd_colors(selection) -bd 0 -cursor bottom_right_corner\n", sh->h_pathname, SCALEHANDLE_WIDTH, SCALEHANDLE_HEIGHT); sys_vgui(".x%x.c create window %d %d -anchor nw -width %d -height %d -window %s -tags {%lxSCALE %lxVSLDR %s}\n", canvas, x->x_gui.x_obj.te_xpix + x->x_gui.x_w - SCALEHANDLE_WIDTH - 1, @@ -267,7 +267,7 @@ static void vslider_draw_select(t_vslider *x, t_glist *glist) sys_vgui(".x%lx.c delete %lxLABELH\n", canvas, x); } - sys_vgui("canvas %s -width %d -height %d -bg $select_color -bd 0 -cursor crosshair\n", + sys_vgui("canvas %s -width %d -height %d -bg $pd_colors(selection) -bd 0 -cursor crosshair\n", lh->h_pathname, LABELHANDLE_WIDTH, LABELHANDLE_HEIGHT); sys_vgui(".x%x.c create window %d %d -anchor nw -width %d -height %d -window %s -tags {%lxLABEL %lxLABELH %lxVSLDR %s}\n", canvas, x->x_gui.x_obj.te_xpix+ x->x_gui.x_ldx - LABELHANDLE_WIDTH, @@ -288,7 +288,7 @@ static void vslider_draw_select(t_vslider *x, t_glist *glist) } else { - sys_vgui(".x%lx.c itemconfigure %lxBASE -stroke #%6.6x\n", canvas, x, IEM_GUI_COLOR_NORMAL); + sys_vgui(".x%lx.c itemconfigure %lxBASE -stroke %s\n", canvas, x, IEM_GUI_COLOR_NORMAL); sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill #%6.6x\n", canvas, x, x->x_gui.x_lcol); sys_vgui(".x%lx.c dtag %lxVSLDR selected\n", canvas, x); sys_vgui("destroy %s\n", sh->h_pathname); @@ -368,8 +368,8 @@ static void vslider__clickhook(t_scalehandle *sh, t_floatarg f, t_floatarg xxx, if (glist_isvisible(x->x_gui.x_glist)) { sys_vgui("lower %s\n", sh->h_pathname); - sys_vgui(".x%x.c create prect %d %d %d %d\ - -stroke $select_color -strokewidth 1 -tags %s\n", + sys_vgui(".x%x.c create prect %d %d %d %d \ + -stroke $pd_colors(selection) -strokewidth 1 -tags %s\n", x->x_gui.x_glist, x->x_gui.x_obj.te_xpix, x->x_gui.x_obj.te_ypix, x->x_gui.x_obj.te_xpix + x->x_gui.x_w, x->x_gui.x_obj.te_ypix + 5 + x->x_gui.x_h, sh->h_outlinetag); diff --git a/pd/src/g_vumeter.c b/pd/src/g_vumeter.c index 97d0c6b17ab2a40db3b4faa9acb4e4cd03f27ba7..974b1e21443898c406fad0d398e28cf42d860612 100644 --- a/pd/src/g_vumeter.c +++ b/pd/src/g_vumeter.c @@ -120,7 +120,7 @@ static void vu_draw_new(t_vu *x, t_glist *glist) char *nlet_tag = iem_get_tag(glist, (t_iemgui *)x); - sys_vgui(".x%lx.c create prect %d %d %d %d -fill #%6.6x -tags {%lxBASE %lxVU %s text}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_border) -fill #%6.6x -tags {%lxBASE %lxVU %s text iemgui border}\n", canvas, xpos, ypos, xpos+x->x_gui.x_w+2, ypos+x->x_gui.x_h+4, x->x_gui.x_bcol, x, x, nlet_tag); @@ -128,11 +128,11 @@ static void vu_draw_new(t_vu *x, t_glist *glist) { led_col = iemgui_vu_col[i]; yyy = k4 + k1*(k2-i); - sys_vgui(".x%lx.c create polyline %d %d %d %d -strokewidth %d -stroke #%6.6x -tags {%lxRLED%d %lxVU %s text}\n", + sys_vgui(".x%lx.c create polyline %d %d %d %d -strokewidth %d -stroke #%6.6x -tags {%lxRLED%d %lxVU %s text iemgui}\n", canvas, quad1+1, yyy+2, quad3, yyy+2, x->x_led_size, iemgui_color_hex[led_col], x, i, x, nlet_tag); if(((i+2)&3) && (x->x_scale)) sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ - -font {{%s} -%d %s} -fill #%6.6x -tags {%lxSCALE%d %lxVU %s text}\n", + -font {{%s} -%d %s} -fill #%6.6x -tags {%lxSCALE%d %lxVU %s text iemgui}\n", canvas, end+1, yyy+k3+2, iemgui_vu_scale_str[i], x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, x->x_gui.x_lcol, x, i, x, nlet_tag); @@ -142,31 +142,31 @@ static void vu_draw_new(t_vu *x, t_glist *glist) i=IEM_VU_STEPS+1; yyy = k4 + k1*(k2-i); sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ - -font {{%s} -%d %s} -fill #%6.6x -tags {%lxSCALE%d %lxVU %s text}\n", + -font {{%s} -%d %s} -fill #%6.6x -tags {%lxSCALE%d %lxVU %s text iemgui}\n", canvas, end+1, yyy+k3+2, iemgui_vu_scale_str[i], x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, x->x_gui.x_lcol, x, i, x, nlet_tag); } - sys_vgui(".x%lx.c create prect %d %d %d %d -fill #%6.6x -stroke #%6.6x -tags {%lxRCOVER %lxVU %s text}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -fill #%6.6x -stroke #%6.6x -tags {%lxRCOVER %lxVU %s text iemgui}\n", canvas, quad1+1, ypos+1, quad3, ypos+1 + k1*IEM_VU_STEPS, x->x_gui.x_bcol, x->x_gui.x_bcol, x, x, nlet_tag); - sys_vgui(".x%lx.c create polyline %d %d %d %d -strokewidth %d -fill #%6.6x -tags {%lxPLED %lxVU %s text}\n", + sys_vgui(".x%lx.c create polyline %d %d %d %d -strokewidth %d -fill #%6.6x -tags {%lxPLED %lxVU %s text iemgui}\n", canvas, mid+1, ypos+12, mid+1, ypos+12, x->x_led_size, x->x_gui.x_bcol, x, x, nlet_tag); sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ - -font {{%s} -%d %s} -fill #%6.6x -tags {%lxLABEL %lxVU %s text}\n", + -font {{%s} -%d %s} -fill #%6.6x -tags {%lxLABEL %lxVU %s text iemgui}\n", canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, x->x_gui.x_lcol, x, x, nlet_tag); if(!x->x_gui.x_fsf.x_snd_able && canvas == x->x_gui.x_glist) { - sys_vgui(".x%lx.c create prect %d %d %d %d -tags {%lxVU%so%d %so%d %lxVU %s outlet}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_nlet) -tags {%lxVU%so%d %so%d %lxVU %s outlet iemgui}\n", canvas, xpos, ypos + x->x_gui.x_h+3, xpos + IOWIDTH, ypos + x->x_gui.x_h+4, x, nlet_tag, 0, nlet_tag, 0, x, nlet_tag); - sys_vgui(".x%lx.c create prect %d %d %d %d -tags {%lxVU%so%d %so%d %lxVU %s outlet}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_nlet) -tags {%lxVU%so%d %so%d %lxVU %s outlet iemgui}\n", canvas, xpos+x->x_gui.x_w+2-IOWIDTH, ypos + x->x_gui.x_h+3, xpos+x->x_gui.x_w+2, ypos + x->x_gui.x_h+4, @@ -174,12 +174,12 @@ static void vu_draw_new(t_vu *x, t_glist *glist) } if(!x->x_gui.x_fsf.x_rcv_able && canvas == x->x_gui.x_glist) { - sys_vgui(".x%lx.c create prect %d %d %d %d -tags {%lxVU%si%d %si%d %lxVU %s inlet}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_nlet) -tags {%lxVU%si%d %si%d %lxVU %s inlet iemgui}\n", canvas, xpos, ypos, xpos + IOWIDTH, ypos+1, x, nlet_tag, 0, nlet_tag, 0, x, nlet_tag); - sys_vgui(".x%lx.c create prect %d %d %d %d -tags {%lxVU%si%d %si%d %lxVU %s inlet}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_nlet) -tags {%lxVU%si%d %si%d %lxVU %s inlet iemgui}\n", canvas, xpos+x->x_gui.x_w+2-IOWIDTH, ypos, xpos+x->x_gui.x_w+2, ypos+1, @@ -284,7 +284,7 @@ static void vu_draw_config(t_vu* x, t_glist* glist) /* char color[64]; if (x->x_gui.x_fsf.x_selected) - sprintf(color, "$select_color"); + sprintf(color, "$pd_colors(selection)"); else sprintf(color, "#%6.6x", x->x_gui.x_lcol); */ @@ -295,7 +295,7 @@ static void vu_draw_config(t_vu* x, t_glist* glist) x->x_led_size); if(((i+2)&3) && (x->x_scale)) if (x->x_gui.x_fsf.x_selected) - sys_vgui(".x%lx.c itemconfigure %lxSCALE%d -text {%s} -font {{%s} -%d %s} -fill $select_color\n", + sys_vgui(".x%lx.c itemconfigure %lxSCALE%d -text {%s} -font {{%s} -%d %s} -fill $pd_colors(selection)\n", canvas, x, i, iemgui_vu_scale_str[i], x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight); else @@ -308,7 +308,7 @@ static void vu_draw_config(t_vu* x, t_glist* glist) { i=IEM_VU_STEPS+1; if (x->x_gui.x_fsf.x_selected) - sys_vgui(".x%lx.c itemconfigure %lxSCALE%d -text {%s} -font {{%s} -%d %s} -fill $select_color\n", + sys_vgui(".x%lx.c itemconfigure %lxSCALE%d -text {%s} -font {{%s} -%d %s} -fill $pd_colors(selection)\n", canvas, x, i, iemgui_vu_scale_str[i], x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight); else @@ -318,7 +318,7 @@ static void vu_draw_config(t_vu* x, t_glist* glist) x->x_gui.x_lcol); } if (x->x_gui.x_fsf.x_selected && x->x_gui.x_glist == canvas) - sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} -%d %s} -fill $select_color -text {%s} \n", + sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} -%d %s} -fill $pd_colors(selection) -text {%s} \n", canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:""); else @@ -349,12 +349,12 @@ static void vu_draw_io(t_vu* x, t_glist* glist, int old_snd_rcv_flags) if((old_snd_rcv_flags & IEM_GUI_OLD_SND_FLAG) && !x->x_gui.x_fsf.x_snd_able) { - sys_vgui(".x%lx.c create prect %d %d %d %d -tags {%lxVU%so%d %so%d %lxVU %s outlet}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_nlet) -tags {%lxVU%so%d %so%d %lxVU %s outlet}\n", canvas, xpos, ypos + x->x_gui.x_h+3, xpos + IOWIDTH, ypos + x->x_gui.x_h+4, x, nlet_tag, 0, nlet_tag, 0, x, nlet_tag); - sys_vgui(".x%lx.c create prect %d %d %d %d -tags {%lxVU%so%d %so%d %lxVU %s outlet}\n", + sys_vgui(".x%lx.c create prect %d %d %d %d -stroke $pd_colors(iemgui_nlet) -tags {%lxVU%so%d %so%d %lxVU %s outlet}\n", canvas, xpos+x->x_gui.x_w+2-IOWIDTH, ypos + x->x_gui.x_h+3, xpos+x->x_gui.x_w+2, ypos + x->x_gui.x_h+4, @@ -403,27 +403,27 @@ static void vu_draw_select(t_vu* x,t_glist* glist) char *nlet_tag = iem_get_tag(glist, (t_iemgui *)x); - sys_vgui(".x%lx.c itemconfigure %lxBASE -stroke $select_color\n", canvas, x); + sys_vgui(".x%lx.c itemconfigure %lxBASE -stroke $pd_colors(selection)\n", canvas, x); for(i=1; i<=IEM_VU_STEPS; i++) { if(((i+2)&3) && (x->x_scale)) - sys_vgui(".x%lx.c itemconfigure %lxSCALE%d -fill $select_color\n", + sys_vgui(".x%lx.c itemconfigure %lxSCALE%d -fill $pd_colors(selection)\n", canvas, x, i); } if(x->x_scale) { i=IEM_VU_STEPS+1; - sys_vgui(".x%lx.c itemconfigure %lxSCALE%d -fill $select_color\n", + sys_vgui(".x%lx.c itemconfigure %lxSCALE%d -fill $pd_colors(selection)\n", canvas, x, i); } - sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill $select_color\n", canvas, x); + sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill $pd_colors(selection)\n", canvas, x); if (x->x_gui.scale_vis) { sys_vgui("destroy %s\n", sh->h_pathname); sys_vgui(".x%lx.c delete %lxSCALE\n", canvas, x); } - sys_vgui("canvas %s -width %d -height %d -bg $select_color -bd 0 -cursor bottom_right_corner\n", + sys_vgui("canvas %s -width %d -height %d -bg $pd_colors(selection) -bd 0 -cursor bottom_right_corner\n", sh->h_pathname, SCALEHANDLE_WIDTH, SCALEHANDLE_HEIGHT); sys_vgui(".x%x.c create window %d %d -anchor nw -width %d -height %d -window %s -tags {%lxSCALE %lxVU %s}\n", canvas, x->x_gui.x_obj.te_xpix + x->x_gui.x_w + 2 - SCALEHANDLE_WIDTH - 1, @@ -444,7 +444,7 @@ static void vu_draw_select(t_vu* x,t_glist* glist) sys_vgui(".x%lx.c delete %lxLABELH\n", canvas, x); } - sys_vgui("canvas %s -width %d -height %d -bg $select_color -bd 0 -cursor crosshair\n", + sys_vgui("canvas %s -width %d -height %d -bg $pd_colors(selection) -bd 0 -cursor crosshair\n", lh->h_pathname, LABELHANDLE_WIDTH, LABELHANDLE_HEIGHT); sys_vgui(".x%x.c create window %d %d -anchor nw -width %d -height %d -window %s -tags {%lxLABEL %lxLABELH %lxVU %s}\n", canvas, x->x_gui.x_obj.te_xpix+ x->x_gui.x_ldx - LABELHANDLE_WIDTH, @@ -466,7 +466,7 @@ static void vu_draw_select(t_vu* x,t_glist* glist) else { sys_vgui(".x%lx.c dtag %lxVU selected\n", canvas, x); - sys_vgui(".x%lx.c itemconfigure %lxBASE -stroke #%6.6x\n", canvas, x, IEM_GUI_COLOR_NORMAL); + sys_vgui(".x%lx.c itemconfigure %lxBASE -stroke %s\n", canvas, x, IEM_GUI_COLOR_NORMAL); for(i=1; i<=IEM_VU_STEPS; i++) { if(((i+2)&3) && (x->x_scale)) @@ -552,7 +552,7 @@ static void vu__clickhook(t_scalehandle *sh, t_floatarg f, t_floatarg xxx, t_flo { sys_vgui("lower %s\n", sh->h_pathname); sys_vgui(".x%x.c create prect %d %d %d %d\ - -stroke $select_color -strokewidth 1 -tags %s\n", + -stroke $pd_colors(selection) -strokewidth 1 -tags %s\n", x->x_gui.x_glist, x->x_gui.x_obj.te_xpix, x->x_gui.x_obj.te_ypix, x->x_gui.x_obj.te_xpix + x->x_gui.x_w + 2, x->x_gui.x_obj.te_ypix + x->x_gui.x_h + 4, sh->h_outlinetag); diff --git a/pd/src/pd.tk b/pd/src/pd.tk index bc015c70719c26e4bfd17a34e50a20f050afb59d..241b254bc387f8bd64aa59ba73cb517ee8fbd343 100644 --- a/pd/src/pd.tk +++ b/pd/src/pd.tk @@ -354,18 +354,19 @@ set k12_saveas_on_new 0 # Only can be enabled at startup (cannot be toggled afterwards) proc pdtk_enable_k12_mode {extra_dir} { +pdtk_post "fucking truckin!\n\n\n\n" global k12_mode global signal_cord_width global autotips global signal_cord_highlight - global signal_cord +# global signal_cord global highlight_width set k12_mode 1 set signal_cord_width 5 set autotips 1 set signal_cord_highlight "#474" - set signal_cord "#2ca7d4" +# set signal_cord "#2ca7d4" set highlight_width 7 image create photo i.wii_connect -file $extra_dir/K12/icons/wii_connect_on.png @@ -543,29 +544,58 @@ set pd_array_listview_entry(0) 0 set pd_array_listview_page(0) 0 # end jsarlo +# Prefences Dialog +# dialog_prefs.tcl must come first because dialog_gui.tcl depends on it +# This is an ugly hack-- it should just be loaded as tcl packages like +# in 0.43... +source [file join [file dirname [info script]] dialog_prefs.tcl] +source [file join [file dirname [info script]] dialog_gui.tcl] +source [file join [file dirname [info script]] dialog_midi.tcl] +source [file join [file dirname [info script]] dialog_audio.tcl] + +# Add a trace for the color array. This way any gui-plugin can make +# color changes simply by changing one of the elements of the pd_colors +# array, and all the preference dialog stuff and open patches will +# magically update +trace add variable pd_colors write ::dialog_prefs::set_color + +# ... and a trace for the ::gui_preset variable. There's probably +# a way to do this inside the dropdown code, which would be better... +trace add variable gui_preset write "::dialog_gui::set_gui_preset" + +# Now that we've got a trace for the colors, we can set a +# color scheme (defined in dialog_gui.tcl) +set gui_preset L2ork + +# todo: find a home for these: +set ::pd_colors(signal_cord_width) 3 +set ::pd_colors(control_cord_width) 1 + # color scheme -set canvas_fill "white" -set text_color "#000" -set select_color "#e87216" -set dash_outline "#f00" -set dash_fill "#f7f7f7" -set box_outline "#ccc" -set graph_outline "#777" -set atom_box_fill "#eee" -set msg_box_fill "#f8f8f6" -set obj_box_fill "#f6f8f8" -set signal_cord_highlight "#58a" -set signal_cord "#808095" -set signal_nlet $signal_cord -set signal_cord_width 3 -set msg_cord_highlight "#474" -set msg_cord "#565" -set msg_nlet "white" -set mixed_nlet "#88aaff" -set msg_cord_width 1 +# set canvas_fill "white" +# set text_color "#000" +# set select_color "#e87216" +# set dash_outline "#f00" +# set dash_fill "#f7f7f7" +# set box_outline "#ccc" +# set graph_outline "#777" +# set atom_box_fill "#eee" +# set msg_box_fill "#f8f8f6" +# set obj_box_fill "#f6f8f8" +# Doesn't look like signal_cord_highlight is used +# set signal_cord_highlight "#58a" +# set signal_cord "#808095" +# set signal_nlet $signal_cord +# Todo: make sure these work in k12 mode +# set signal_cord_width 3 +# set msg_cord_highlight "#474" +# set msg_cord "#565" +# set msg_nlet "white" +# set mixed_nlet "#88aaff" +# set msg_cord_width 1 #nlet highlighting stuff -set select_nlet_color $select_color +set select_nlet_color $pd_colors(selection) set highlight_width 5 if {$pd_nt == 1} { @@ -1486,24 +1516,24 @@ proc menu_addstd {mbar} { -command {menu_audio 1} $mbar.audio add command -label {Audio OFF} -accelerator [accel_munge "Ctrl+."] \ -command {menu_audio 0} - match_linux_wm [list $mbar.audio add separator] - $mbar.audio add command -label {Audio Settings} -state disabled - for {set x 1} {$x<[llength $pd_apilist]} {incr x} { - $mbar.audio add radiobutton -label [concat [lindex [lindex $pd_apilist $x] 0] Driver] \ - -command {menu_audio 0} -variable pd_whichapi \ - -value [lindex [lindex $pd_apilist $x] 1]\ - -selectcolor "#dddddd" \ - -command {pd [concat pd audio-setapi $pd_whichapi \;]} - } - match_linux_wm [list $mbar.audio add separator] - $mbar.audio add command -label {MIDI Settings} -state disabled - for {set x 0} {$x<[llength $pd_midiapilist]} {incr x} { - $mbar.audio add radiobutton -label [concat [lindex [lindex $pd_midiapilist $x] 0] Driver]\ - -command {menu_midi 0} -variable pd_whichmidiapi \ - -value [lindex [lindex $pd_midiapilist $x] 1]\ - -selectcolor "#dddddd" \ - -command {pd [concat pd midi-setapi $pd_whichmidiapi \;]} - } +# match_linux_wm [list $mbar.audio add separator] +# $mbar.audio add command -label {Audio Settings} -state disabled +# for {set x 1} {$x<[llength $pd_apilist]} {incr x} { +# $mbar.audio add radiobutton -label [concat [lindex [lindex $pd_apilist $x] 0] Driver] \ +# -command {menu_audio 0} -variable pd_whichapi \ +# -value [lindex [lindex $pd_apilist $x] 1]\ +# -selectcolor "#dddddd" \ +# -command {pd [concat pd audio-setapi $pd_whichapi \;]} +# } +# match_linux_wm [list $mbar.audio add separator] +# $mbar.audio add command -label {MIDI Settings} -state disabled +# for {set x 0} {$x<[llength $pd_midiapilist]} {incr x} { +# $mbar.audio add radiobutton -label [concat [lindex [lindex $pd_midiapilist $x] 0] Driver]\ +# -command {menu_midi 0} -variable pd_whichmidiapi \ +# -value [lindex [lindex $pd_midiapilist $x] 1]\ +# -selectcolor "#dddddd" \ +# -command {pd [concat pd midi-setapi $pd_whichmidiapi \;]} +# } #if {$pd_nt != 2} { # $mbar.audio add separator # $mbar.audio add command -label {Audio settings...} \ @@ -1689,6 +1719,9 @@ match_linux_wm [list .mbar.edit add separator] -state disabled .mbar.edit add command -label {Edit mode} -accelerator [accel_munge "Ctrl+e"] \ -state disabled +match_linux_wm [list .mbar.edit add separator] +.mbar.edit add command -label {Preferences...} \ + -command {::dialog_prefs::open_prefs_dialog .} #################### the "Find" menu for the Pd window ############## @@ -2379,7 +2412,7 @@ proc pdtk_canvas_new {name width height geometry editable} { global pd_tearoff put_tearoff global pd_nt global tcl_version - global canvas_fill +# global canvas_fill global colors global global_clipboard global global_selection @@ -2399,8 +2432,14 @@ proc pdtk_canvas_new {name width height geometry editable} { if {![info exists ::menu($name)]} { set ::menu($name) 1 } - if {![info exists ::canvas_color($name)]} { - set ::canvas_color($name) $canvas_fill + # attempt at getting global presets to play + # well with local settings. + set my_canvas_color {} +# set ::canvas_color($name) orange + if {[info exists ::canvas_color($name)]} { + set my_canvas_color $::canvas_color($name) + } else { + set my_canvas_color $::pd_colors(canvas_color) } if {![info exists ::topmost($name)]} { set ::topmost($name) 0 @@ -2807,8 +2846,7 @@ proc pdtk_canvas_new {name width height geometry editable} { # ---------------------------------------- NOW PACK THEM ALL ----------------------------------------- pack $name.k12frame.edit $name.k12frame.datasound $name.k12frame.wii $name.k12frame.wii2 $name.k12frame.arduino $name.k12frame.math_1 $name.k12frame.math_2 $name.k12frame.math_3 $name.k12frame.logic $name.k12frame.other -side top -expand 0 -fill x } - - tkp::canvas $name.c -width $width -height $height -background $::canvas_color($name) \ + tkp::canvas $name.c -width $width -height $height -background $my_canvas_color \ -highlightthickness 0 -bd 0 #-yscrollcommand "$name.scrollvert set" \ #-xscrollcommand "$name.scrollhort set" \ @@ -2836,7 +2874,7 @@ proc pdtk_canvas_new {name width height geometry editable} { wm minsize $name 580 407 } wm geometry $name $geometry - # the file menu + # the "File" menu # The menus are instantiated here for the patch windows. # For the main window, they are created on load, at the @@ -2907,7 +2945,7 @@ proc pdtk_canvas_new {name width height geometry editable} { -accelerator [accel_munge "Ctrl+q"] } - # the edit menu + # the "Edit" menu match_linux_wm [list menu $name.m.edit -postcommand [concat menu_fixeditmenu $name] -tearoff $pd_tearoff] $name.m add cascade -label Edit -menu $name.m.edit @@ -3039,6 +3077,11 @@ proc pdtk_canvas_new {name width height geometry editable} { -indicatoron false -selectcolor black \ -command [concat menu_editmode $name] \ -accelerator [accel_munge "Ctrl+e"] + if {$k12_mode == 0} { + match_linux_wm [list $name.m.edit add separator] + $name.m.edit add command -label {Preferences...} \ + -command {::dialog_prefs::open_prefs_dialog .} + } if { $editable == 1 } { $name.m.edit entryconfigure "Edit mode" -background "#7dd37d" -foreground black @@ -3062,7 +3105,7 @@ proc pdtk_canvas_new {name width height geometry editable} { if { $k12_mode == 0 } { - # the put menu + # the "Put" menu match_linux_wm [list menu $name.m.put -tearoff $put_tearoff] $name.m add cascade -label Put -menu $name.m.put @@ -3189,7 +3232,7 @@ proc pdtk_canvas_new {name width height geometry editable} { $name.m add cascade -label "Apple" -menu $name.m.apple } - # the help menu + # the "Help" menu match_linux_wm [list menu $name.m.help -tearoff $pd_tearoff] $name.m add cascade -label Help -menu $name.m.help @@ -6798,7 +6841,6 @@ proc pdtk_canvas_update_paste_menu {value} { proc pdtk_text_new {canvasname myname x y text font color} { # if {$font < 13} {set fontname [format -*-courier-bold----%d-* $font]} # if {$font >= 13} {set fontname [format -*-courier-----%d-* $font]} - global pd_fontlist pd_nt # switch -- $font { # 8 { set typeface [lindex $pd_fontlist 0] } @@ -7267,7 +7309,7 @@ proc audio_popup {name buttonname varname devlist} { # opening several devices; if not, we get an extra button to turn longform # on and restart the dialog. -proc pdtk_audio_dialog {id indev1 indev2 indev3 indev4 \ +proc old_audio_dialog {id indev1 indev2 indev3 indev4 \ inchan1 inchan2 inchan3 inchan4 \ outdev1 outdev2 outdev3 outdev4 \ outchan1 outchan2 outchan3 outchan4 sr advance multi callback \ @@ -7575,7 +7617,7 @@ proc midi_popup {name buttonname varname devlist} { # start a dialog window to select midi devices. "longform" asks us to make # controls for opening several devices; if not, we get an extra button to # turn longform on and restart the dialog. -proc pdtk_midi_dialog {id indev1 indev2 indev3 indev4 \ +proc pdtk_midi_dialog_old {id indev1 indev2 indev3 indev4 \ outdev1 outdev2 outdev3 outdev4 longform} { global midi_indev1 midi_indev2 midi_indev3 midi_indev4 global midi_outdev1 midi_outdev2 midi_outdev3 midi_outdev4 @@ -7714,7 +7756,7 @@ proc pdtk_midi_dialog {id indev1 indev2 indev3 indev4 \ } } -proc pdtk_alsa_midi_dialog {id indev1 indev2 indev3 indev4 \ +proc pdtk_alsa_midi_dialog_old {id indev1 indev2 indev3 indev4 \ outdev1 outdev2 outdev3 outdev4 longform alsa} { global midi_indev1 midi_indev2 midi_indev3 midi_indev4 global midi_outdev1 midi_outdev2 midi_outdev3 midi_outdev4 @@ -8654,7 +8696,7 @@ proc pdtk_canvas_enteritem_gettags {tkcanvas x y item} { if { $object ne "text" } { set nlet_color [$tkcanvas itemcget [lindex $tags 0] -stroke] } else { - set nlet_color $select_color + set nlet_color $::pd_colors(selection) } pd [concat $mytoplevel enter $object \ @@ -8766,8 +8808,8 @@ proc pdtk_tip {w fromc show args} { } } else { set tooltip_visible 1 - if { $nlet_color == 0 } { set nlet_color $select_color } - if { $nlet_color ne $select_color } { + if { $nlet_color == 0 } { set nlet_color $::pd_colors(selection) } + if { $nlet_color ne $::pd_colors(selection) } { set fg "#ffffff" } else { set fg "#000000" @@ -9020,3 +9062,34 @@ source [file join [file dirname [info script]] search-plugin.tcl] # Tcl/tk code for drawimage and drawsprite source [file join [file dirname [info script]] pdtk_drawimage.tcl] + +# Ugly, ugly hack to send off to procs in dialog_audio.tcl and +# dialog_midi.tcl. Should just load the packages properly instead... + +proc pdtk_audio_dialog {mytoplevel indev1 indev2 indev3 indev4 \ + inchan1 inchan2 inchan3 inchan4 \ + outdev1 outdev2 outdev3 outdev4 \ + outchan1 outchan2 outchan3 outchan4 sr advance multi callback \ + longform} { + set blocksize 64 + ::dialog_audio::pdtk_audio_dialog \ + $mytoplevel $indev1 $indev2 $indev3 $indev4 \ + $inchan1 $inchan2 $inchan3 $inchan4 \ + $outdev1 $outdev2 $outdev3 $outdev4 \ + $outchan1 $outchan2 $outchan3 $outchan4 $sr $advance $multi $callback \ + $longform $blocksize +} + +proc pdtk_midi_dialog {id indev1 indev2 indev3 indev4 \ + outdev1 outdev2 outdev3 outdev4 longform} { + ::dialog_midi::pdtk_midi_dialog \ + $id $indev1 $indev2 $indev3 $indev4 \ + $outdev1 $outdev2 $outdev3 $outdev4 $longform +} + +proc pdtk_alsa_midi_dialog {id indev1 indev2 indev3 indev4 \ + outdev1 outdev2 outdev3 outdev4 longform alsa} { + ::dialog_midi::pdtk_alsa_midi_dialog \ + $id $indev1 $indev2 $indev3 $indev4 \ + $outdev1 $outdev2 $outdev3 $outdev4 $longform $alsa +} diff --git a/pd/src/search-plugin.tcl b/pd/src/search-plugin.tcl index 39e96e1813ec8d89d24bc414fa88622005008279..48ce1702f076e42a747f7bd9e760cb6eb9a44b73 100644 --- a/pd/src/search-plugin.tcl +++ b/pd/src/search-plugin.tcl @@ -103,8 +103,6 @@ proc ::dialog_search::resultstext_search {w key} { } set resultstext .search.resultstext $resultstext tag remove sel 1.0 end - pdtk_post "key is $key\n" - pdtk_post "[$w get]\n" set fff_string [$w get] set offset 1 if {$::dialog_search::fff_direction eq "backwards"} { @@ -115,12 +113,10 @@ proc ::dialog_search::resultstext_search {w key} { "[$resultstext index insert] + $offset display chars" } set insert [$resultstext index insert] - pdtk_post "insert is [$resultstext index insert]\n" set count "" set match "" set match [$resultstext search -$::dialog_search::fff_direction \ -nocase -count count -- $fff_string $insert] - pdtk_post "coutn is $count\n" if {$match ne ""} { $resultstext see $match $resultstext tag add sel $match "$match + $count display chars" @@ -133,7 +129,6 @@ proc ::dialog_search::toggle_fff_bar {mytoplevel} { # widgets for the fff bar set f $mytoplevel.fff set e $f.e - pdtk_post "grid slaves is [grid slaves $mytoplevel]\n" if {[lsearch -exact [grid slaves $mytoplevel] $f] ne -1} { grid forget $f focus .search.f.searchtextentry @@ -169,6 +164,22 @@ proc ::dialog_search::fff_navigate {w dir} { resultstext_search $w 36 } +# this is stolen from pd_bindings.tcl +proc ::dialog_search::dialog_bindings {mytoplevel dialogname} { + variable modifier + + bind $mytoplevel <KeyPress-Escape> "dialog_${dialogname}::cancel $mytoplevel" + bind $mytoplevel <KeyPress-Return> "dialog_${dialogname}::ok $mytoplevel" + bind $mytoplevel <$::modifier-Key-w> "dialog_${dialogname}::cancel $mytoplevel" + # these aren't supported in the dialog, so alert the user, then break so + # that no other key bindings are run + bind $mytoplevel <$::modifier-Key-s> {bell; break} + bind $mytoplevel <$::modifier-Shift-Key-S> {bell; break} + bind $mytoplevel <$::modifier-Key-p> {bell; break} + + wm protocol $mytoplevel WM_DELETE_WINDOW "dialog_${dialogname}::cancel $mytoplevel" +} + proc ::dialog_search::create_dialog {mytoplevel} { global pd_nt global linux_wm_hlcolor @@ -220,13 +231,16 @@ proc ::dialog_search::create_dialog {mytoplevel} { ttk::combobox $mytoplevel.f.genrebox -values $genres -state readonly\ -style "Genre.TCombobox" -takefocus 1 $mytoplevel.f.genrebox current 0 - ttk::label $mytoplevel.f.advancedlabel -text [_ "Help"] -foreground $linux_wm_hlcolor \ + ttk::label $mytoplevel.f.advancedlabel -text [_ "Help"] -foreground $pd_colors(link) \ -anchor center -style Foo.TLabel - text $mytoplevel.navtext -font "$searchfont -12" -height 1 -bd 0 -highlightthickness 0\ - -padx 8 -pady 3 -bg white -fg black - text $mytoplevel.resultstext -yscrollcommand "$mytoplevel.yscrollbar set" \ - -bg white -highlightcolor blue -height 30 -wrap word -state disabled \ - -padx 8 -pady 3 -spacing3 2 -bd 0 -highlightthickness 0 -fg black + text $mytoplevel.navtext -font "$searchfont -12" -height 1 -bd 0 \ + -highlightthickness 0 -bg $::pd_colors(canvas_color) \ + -padx 8 -pady 3 -fg $::pd_colors(text) + text $mytoplevel.resultstext \ + -yscrollcommand "$mytoplevel.yscrollbar set" \ + -bg $::pd_colors(canvas_color) -fg $::pd_colors(text) \ + -highlightcolor blue -height 30 -wrap word -state disabled \ + -padx 8 -pady 3 -spacing3 2 -bd 0 -highlightthickness 0 ttk::scrollbar $mytoplevel.yscrollbar -command "$mytoplevel.resultstext yview" \ -takefocus 0 ttk::label $mytoplevel.statusbar -text [_ "Pd-L2Ork Search"] -justify left \ @@ -278,7 +292,7 @@ proc ::dialog_search::create_dialog {mytoplevel} { $mytoplevel.resultstext tag configure intro_libdirs -font "$searchfont -12" # make tags for both the results and the nav text widgets foreach textwidget [list "$mytoplevel.resultstext" "$mytoplevel.navtext"] { - $textwidget tag configure link -foreground $linux_wm_hlcolor + $textwidget tag configure link -foreground $::pd_colors(link) $textwidget tag bind link <Enter> "$textwidget configure \ -cursor hand2" $textwidget tag bind link <Leave> "$textwidget configure \ @@ -400,9 +414,10 @@ proc ::dialog_search::create_dialog {mytoplevel} { {menu_doc_open doc/5.reference all_about_finding_objects.pd} bind $mytoplevel.f.advancedlabel <Return> \ {menu_doc_open doc/5.reference all_about_finding_objects.pd} -# Right now we're suppressing dialog bindings because helpbrowser namespace -# doesn't work unless all procs are prefixed with dialog_ -# ::pd_bindings::dialog_bindings $mytoplevel "search" + # hardcoded this into ::dialog_search namespace from 0.43's + # pd_bindings.tcl. But really l2ork just needs to use 0.43's + # API + ::dialog_search::dialog_bindings $mytoplevel "search" # bind $mytoplevel <KeyPress-Escape> "search::cancel $mytoplevel" # bind $mytoplevel <KeyPress-Return> "search::ok $mytoplevel" # bind $mytoplevel <$::modifier-Key-w> "search::cancel $mytoplevel" @@ -1518,7 +1533,7 @@ proc ::dialog_search::print_navbar {foo} { set separator / set text .search.navtext $text configure -state normal - $text delet 1.0 end + $text delete 1.0 end $text insert 1.0 [_ "Home"] "link intro navbar" if {[llength $navbar] == 0} { $text configure -state disabled