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.
This commit is contained in:
Barry Warsaw 1999-04-27 15:56:53 +00:00
parent f5e98572e5
commit 7b2812211a
1 changed files with 28 additions and 6 deletions

View File

@ -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()