summaryrefslogtreecommitdiff
path: root/Tools/pynche/pyColorChooser.py
diff options
context:
space:
mode:
authorBarry Warsaw <barry@python.org>2022-04-17 15:38:44 -0700
committerGitHub <noreply@github.com>2022-04-17 15:38:44 -0700
commit7173fd5de0cb259b488828634745c03dbea94e6b (patch)
tree99896e93a25d1efb5394e740a188fd45dfe37583 /Tools/pynche/pyColorChooser.py
parentceea0715df33ae6dc3931670b4b749432d4e9707 (diff)
downloadcpython-git-7173fd5de0cb259b488828634745c03dbea94e6b.tar.gz
Remove the ancient Pynche color editor (#91554)
Closes #91551
Diffstat (limited to 'Tools/pynche/pyColorChooser.py')
-rw-r--r--Tools/pynche/pyColorChooser.py125
1 files changed, 0 insertions, 125 deletions
diff --git a/Tools/pynche/pyColorChooser.py b/Tools/pynche/pyColorChooser.py
deleted file mode 100644
index 3286047a5f..0000000000
--- a/Tools/pynche/pyColorChooser.py
+++ /dev/null
@@ -1,125 +0,0 @@
-"""Color chooser implementing (almost) the tkColorColor interface
-"""
-
-import os
-import Main
-import ColorDB
-
-
-
-class Chooser:
- """Ask for a color"""
- def __init__(self,
- master = None,
- databasefile = None,
- initfile = None,
- ignore = None,
- wantspec = None):
- self.__master = master
- self.__databasefile = databasefile
- self.__initfile = initfile or os.path.expanduser('~/.pynche')
- self.__ignore = ignore
- self.__pw = None
- self.__wantspec = wantspec
-
- def show(self, color, options):
- # scan for options that can override the ctor options
- self.__wantspec = options.get('wantspec', self.__wantspec)
- dbfile = options.get('databasefile', self.__databasefile)
- # load the database file
- colordb = None
- if dbfile != self.__databasefile:
- colordb = ColorDB.get_colordb(dbfile)
- if not self.__master:
- from tkinter import Tk
- self.__master = Tk()
- if not self.__pw:
- self.__pw, self.__sb = \
- Main.build(master = self.__master,
- initfile = self.__initfile,
- ignore = self.__ignore)
- else:
- self.__pw.deiconify()
- # convert color
- if colordb:
- self.__sb.set_colordb(colordb)
- else:
- colordb = self.__sb.colordb()
- if color:
- r, g, b = Main.initial_color(color, colordb)
- self.__sb.update_views(r, g, b)
- # reset the canceled flag and run it
- self.__sb.canceled(0)
- Main.run(self.__pw, self.__sb)
- rgbtuple = self.__sb.current_rgb()
- self.__pw.withdraw()
- # check to see if the cancel button was pushed
- if self.__sb.canceled_p():
- return None, None
- # Try to return the color name from the database if there is an exact
- # match, otherwise use the "#rrggbb" spec. BAW: Forget about color
- # aliases for now, maybe later we should return these too.
- name = None
- if not self.__wantspec:
- try:
- name = colordb.find_byrgb(rgbtuple)[0]
- except ColorDB.BadColor:
- pass
- if name is None:
- name = ColorDB.triplet_to_rrggbb(rgbtuple)
- return rgbtuple, name
-
- def save(self):
- if self.__sb:
- self.__sb.save_views()
-
-
-# convenience stuff
-_chooser = None
-
-def askcolor(color = None, **options):
- """Ask for a color"""
- global _chooser
- if not _chooser:
- _chooser = Chooser(**options)
- return _chooser.show(color, options)
-
-def save():
- global _chooser
- if _chooser:
- _chooser.save()
-
-
-# test stuff
-if __name__ == '__main__':
- from tkinter import *
-
- class Tester:
- def __init__(self):
- self.__root = tk = Tk()
- b = Button(tk, text='Choose Color...', command=self.__choose)
- b.pack()
- self.__l = Label(tk)
- self.__l.pack()
- q = Button(tk, text='Quit', command=self.__quit)
- q.pack()
-
- def __choose(self, event=None):
- rgb, name = askcolor(master=self.__root)
- if rgb is None:
- text = 'You hit CANCEL!'
- else:
- r, g, b = rgb
- text = 'You picked %s (%3d/%3d/%3d)' % (name, r, g, b)
- self.__l.configure(text=text)
-
- def __quit(self, event=None):
- self.__root.quit()
-
- def run(self):
- self.__root.mainloop()
- t = Tester()
- t.run()
- # simpler
-## print 'color:', askcolor()
-## print 'color:', askcolor()