Track color changes: disable buttons and their labels when turned off
diff --git a/Tools/pynche/TextViewer.py b/Tools/pynche/TextViewer.py
index 3b2bce4..15a67dd 100644
--- a/Tools/pynche/TextViewer.py
+++ b/Tools/pynche/TextViewer.py
@@ -53,7 +53,8 @@
         # track toggle
         self.__t = Checkbutton(root, text='Track color changes',
                                variable=self.__trackp,
-                               relief=GROOVE)
+                               relief=GROOVE,
+                               command=self.__toggletrack)
         self.__t.pack(fill=X, expand=YES)
         frame = self.__frame = Frame(root)
         frame.pack()
@@ -85,6 +86,7 @@
                                 value=(row-2)*2 + col-1)
                 r.grid(row=row, column=col)
                 self.__radios.append(r)
+        self.__toggletrack()
 
     def __quit(self, event=None):
         sys.exit(0)
@@ -98,16 +100,29 @@
     def __forceupdate(self, event=None):
         self.__sb.update_views_current()
 
+    def __toggletrack(self, event=None):
+        if self.__trackp.get():
+            state = NORMAL
+            fg = self.__radios[0]['foreground']
+        else:
+            state = DISABLED
+            fg = self.__radios[0]['disabledforeground']
+        for r in self.__radios:
+            r.configure(state=state)
+        for l in self.__labels:
+            l.configure(foreground=fg)
+
     def update_yourself(self, red, green, blue):
-        colorname = ColorDB.triplet_to_rrggbb((red, green, blue))
-        which = self.__which.get()
-        if which == 0:
-            self.__text.configure(foreground=colorname)
-        elif which == 1:
-            self.__text.configure(background=colorname)
-        elif which == 2:
-            self.__text.configure(selectforeground=colorname)
-        elif which == 3:
-            self.__text.configure(selectbackground=colorname)
-        elif which == 5:
-            self.__text.configure(insertbackground=colorname)
+        if self.__trackp.get():
+            colorname = ColorDB.triplet_to_rrggbb((red, green, blue))
+            which = self.__which.get()
+            if which == 0:
+                self.__text.configure(foreground=colorname)
+            elif which == 1:
+                self.__text.configure(background=colorname)
+            elif which == 2:
+                self.__text.configure(selectforeground=colorname)
+            elif which == 3:
+                self.__text.configure(selectbackground=colorname)
+            elif which == 5:
+                self.__text.configure(insertbackground=colorname)