diff options
-rw-r--r-- | editmode_look-plugin.tcl | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/editmode_look-plugin.tcl b/editmode_look-plugin.tcl index f7ab005..b766ce4 100644 --- a/editmode_look-plugin.tcl +++ b/editmode_look-plugin.tcl @@ -1,35 +1,46 @@ # this script makes it so that the cords are hidden when not in edit mode -proc set_cords_by_editmode {mytoplevel eventname} { +namespace eval ::editmode_look { + # array of the original background colors for each window + array set original_color {} +} + +proc ::editmode_look::set_cords_by_editmode {mytoplevel} { + variable original_color if {$mytoplevel eq ".pdwindow"} {return} set tkcanvas [tkcanvas_name $mytoplevel] - if { ! [winfo exists $mytoplevel] } {return} + # if the mytoplevel sent to us doesn't currently have a window, silently quit + if { ! [winfo exists $mytoplevel] } {return} + # if the array doesn't have this instance, get the current color + if {[array get original_color $mytoplevel] eq ""} { + set original_color($mytoplevel) [$tkcanvas cget -background] + } if {$::editmode($mytoplevel) == 1} { - $tkcanvas configure -background "#fff" $tkcanvas itemconfigure graph -fill black $tkcanvas itemconfigure array -fill black $tkcanvas itemconfigure array -activefill blue $tkcanvas itemconfigure label -fill black - $tkcanvas itemconfigure obj -fill black $tkcanvas itemconfigure msg -activefill black $tkcanvas itemconfigure atom -activefill black $tkcanvas itemconfigure cord -fill black $tkcanvas itemconfigure {inlet || outlet} -outline black - $tkcanvas raise cord + $tkcanvas raise {inlet || outlet || cord} + # store the background color, in case its been changed + set original_color($mytoplevel) [$tkcanvas cget -background] + $tkcanvas configure -background "lightblue" } else { - $tkcanvas configure -background white - $tkcanvas itemconfigure graph -fill magenta + $tkcanvas itemconfigure graph -fill grey $tkcanvas itemconfigure array -fill cyan $tkcanvas itemconfigure array -activefill blue $tkcanvas itemconfigure label -fill "#777777" - $tkcanvas itemconfigure obj -fill grey $tkcanvas itemconfigure msg -activefill blue $tkcanvas itemconfigure atom -activefill blue $tkcanvas itemconfigure cord -fill grey $tkcanvas itemconfigure {inlet || outlet} -outline white $tkcanvas lower {inlet || outlet || cord} + $tkcanvas configure -background $original_color($mytoplevel) } } -bind PatchWindow <<EditMode>> {+set_cords_by_editmode %W editmode} -bind PatchWindow <<Loaded>> {+set_cords_by_editmode %W loaded} +bind PatchWindow <<EditMode>> {+::editmode_look::set_cords_by_editmode %W} +bind PatchWindow <<Loaded>> {+::editmode_look::set_cords_by_editmode %W} |