From d9398eace7a59e62ebfcae277a87304f435a15b7 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Thu, 20 Dec 2012 03:27:45 +0000 Subject: made it remember any user color changes, and fixed visual bugs svn path=/trunk/scripts/guiplugins/simple_examples/; revision=16713 --- editmode_look-plugin.tcl | 31 +++++++++++++++++++++---------- 1 file 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 <> {+set_cords_by_editmode %W editmode} -bind PatchWindow <> {+set_cords_by_editmode %W loaded} +bind PatchWindow <> {+::editmode_look::set_cords_by_editmode %W} +bind PatchWindow <> {+::editmode_look::set_cords_by_editmode %W} -- cgit v1.2.1