summaryrefslogtreecommitdiffstats
path: root/Tools/pynche/TextViewer.py
diff options
context:
space:
mode:
authorBarry Warsaw <barry@python.org>1998-10-01 16:45:32 (GMT)
committerBarry Warsaw <barry@python.org>1998-10-01 16:45:32 (GMT)
commitf9c6ddc40acc94d80c1d105a4c206003caf38b2b (patch)
tree31dbebe14fb451307b4317f1016bf43708597887 /Tools/pynche/TextViewer.py
parent370a0837d18f6ed63fdb9cfab2a480a09e0fdc9e (diff)
downloadcpython-f9c6ddc40acc94d80c1d105a4c206003caf38b2b.zip
cpython-f9c6ddc40acc94d80c1d105a4c206003caf38b2b.tar.gz
cpython-f9c6ddc40acc94d80c1d105a4c206003caf38b2b.tar.bz2
*** empty log message ***
Diffstat (limited to 'Tools/pynche/TextViewer.py')
-rw-r--r--Tools/pynche/TextViewer.py95
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)