diff options
author | Barry Warsaw <barry@python.org> | 1998-10-01 16:45:32 (GMT) |
---|---|---|
committer | Barry Warsaw <barry@python.org> | 1998-10-01 16:45:32 (GMT) |
commit | f9c6ddc40acc94d80c1d105a4c206003caf38b2b (patch) | |
tree | 31dbebe14fb451307b4317f1016bf43708597887 | |
parent | 370a0837d18f6ed63fdb9cfab2a480a09e0fdc9e (diff) | |
download | cpython-f9c6ddc40acc94d80c1d105a4c206003caf38b2b.zip cpython-f9c6ddc40acc94d80c1d105a4c206003caf38b2b.tar.gz cpython-f9c6ddc40acc94d80c1d105a4c206003caf38b2b.tar.bz2 |
*** empty log message ***
-rw-r--r-- | Tools/pynche/TextViewer.py | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/Tools/pynche/TextViewer.py b/Tools/pynche/TextViewer.py new file mode 100644 index 0000000..9fdab07 --- /dev/null +++ b/Tools/pynche/TextViewer.py @@ -0,0 +1,95 @@ +import sys +from Tkinter import * +from pynche import __version__ +import ColorDB + +class TextViewer: + def __init__(self, switchboard, parent=None): + self.__sb = switchboard + root = self.__root = Toplevel(parent, class_='Pynche') + root.protocol('WM_DELETE_WINDOW', self.__withdraw) + root.title('Pynche %s' % __version__) + root.iconname('Pynche Text Window') + root.bind('<Alt-q>', self.__quit) + root.bind('<Alt-Q>', self.__quit) + # + # create the text widget + # + self.__text = Text(root, relief=SUNKEN, + background='black', + foreground='white', + width=35, height=15) + self.__text.pack() + self.__text.insert(0.0, '''\ +Insert some stuff here and play +with the buttons below to see +how the colors interact in +textual displays.''') + # + # variables + self.__trackp = BooleanVar() + self.__trackp.set(0) + self.__which = IntVar() + self.__which.set(4) + # + # track toggle + self.__t = Checkbutton(root, text='Track color changes', + variable=self.__trackp, + relief=GROOVE) + self.__t.pack(fill=X, expand=YES) + frame = self.__frame = Frame(root) + frame.pack() + # + # labels + self.__labels = [] + row = 2 + for text in ('Text:', 'Selection:', 'Insertion:'): + l = Label(frame, text=text) + l.grid(row=row, column=0, sticky=E) + self.__labels.append(l) + row = row + 1 + col = 1 + for text in ('Foreground', 'Background'): + l = Label(frame, text=text) + l.grid(row=1, column=col) + self.__labels.append(l) + col = col + 1 + # + # radios + self.__radios = [] + val = 0 + for col in (1, 2): + for row in (2, 3, 4): + # there is no insertforeground option + if row==4 and col==1: + continue + r = Radiobutton(frame, variable=self.__which, + value=(row-2)*2 + col-1) + r.grid(row=row, column=col) + self.__radios.append(r) + + def __quit(self, event=None): + sys.exit(0) + + def __withdraw(self, event=None): + self.__root.withdraw() + + def deiconify(self, event=None): + self.__root.deiconify() + + def __forceupdate(self, event=None): + self.__sb.update_views_current() + + 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) |