From 7b2812211af5c99e7c582ea2e6a50b03cf0a0e3e Mon Sep 17 00:00:00 2001 From: Barry Warsaw Date: Tue, 27 Apr 1999 15:56:53 +0000 Subject: [PATCH] When selecting a radio button in the TextViewer (to change a specific text widget attribute), the color the attribute currently has is set in the main widget. --- Tools/pynche/TextViewer.py | 34 ++++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/Tools/pynche/TextViewer.py b/Tools/pynche/TextViewer.py index a3e9ac52c62..e0b7ab11505 100644 --- a/Tools/pynche/TextViewer.py +++ b/Tools/pynche/TextViewer.py @@ -106,7 +106,8 @@ and choosing a color.''')) if row==4 and col==1: continue r = Radiobutton(frame, variable=self.__which, - value=(row-2)*2 + col-1) + value=(row-2)*2 + col-1, + command=self.__set_color) r.grid(row=row, column=col) self.__radios.append(r) self.__toggletrack() @@ -135,20 +136,41 @@ and choosing a color.''')) for l in self.__labels: l.configure(foreground=fg) + def __set_color(self, event=None): + which = self.__which.get() + text = self.__text + if which == 0: + color = text['foreground'] + elif which == 1: + color = text['background'] + elif which == 2: + color = text['selectforeground'] + elif which == 3: + color = text['selectbackground'] + elif which == 5: + color = text['insertbackground'] + try: + red, green, blue = ColorDB.rrggbb_to_triplet(color) + except ColorDB.BadColor: + # must have been a color name + red, green, blue = self.__sb.colordb().find_byname(color) + self.__sb.update_views(red, green, blue) + def update_yourself(self, red, green, blue): if self.__trackp.get(): colorname = ColorDB.triplet_to_rrggbb((red, green, blue)) which = self.__which.get() + text = self.__text if which == 0: - self.__text.configure(foreground=colorname) + text.configure(foreground=colorname) elif which == 1: - self.__text.configure(background=colorname) + text.configure(background=colorname) elif which == 2: - self.__text.configure(selectforeground=colorname) + text.configure(selectforeground=colorname) elif which == 3: - self.__text.configure(selectbackground=colorname) + text.configure(selectbackground=colorname) elif which == 5: - self.__text.configure(insertbackground=colorname) + text.configure(insertbackground=colorname) def save_options(self, optiondb): optiondb['TRACKP'] = self.__trackp.get()