]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
*** empty log message ***
authorBarry Warsaw <barry@python.org>
Thu, 1 Oct 1998 16:45:32 +0000 (16:45 +0000)
committerBarry Warsaw <barry@python.org>
Thu, 1 Oct 1998 16:45:32 +0000 (16:45 +0000)
Tools/pynche/TextViewer.py [new file with mode: 0644]

diff --git a/Tools/pynche/TextViewer.py b/Tools/pynche/TextViewer.py
new file mode 100644 (file)
index 0000000..9fdab07
--- /dev/null
@@ -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)