usr
/
lib64
/
python2.7
/
site-packages
/
pynche
/
Go to Home Directory
+
Upload
Create File
root@0UT1S:~$
Execute
By Order of Mr.0UT1S
[DIR] ..
N/A
[DIR] X
N/A
ChipViewer.py
4.88 KB
Rename
Delete
ChipViewer.pyc
5.37 KB
Rename
Delete
ChipViewer.pyo
5.37 KB
Rename
Delete
ColorDB.py
8.73 KB
Rename
Delete
ColorDB.pyc
9.46 KB
Rename
Delete
ColorDB.pyo
9.46 KB
Rename
Delete
DetailsViewer.py
9.88 KB
Rename
Delete
DetailsViewer.pyc
10.32 KB
Rename
Delete
DetailsViewer.pyo
10.32 KB
Rename
Delete
ListViewer.py
6.49 KB
Rename
Delete
ListViewer.pyc
7.03 KB
Rename
Delete
ListViewer.pyo
7.03 KB
Rename
Delete
Main.py
6.25 KB
Rename
Delete
Main.pyc
6.14 KB
Rename
Delete
Main.pyo
6.14 KB
Rename
Delete
PyncheWidget.py
10.25 KB
Rename
Delete
PyncheWidget.pyc
10.84 KB
Rename
Delete
PyncheWidget.pyo
10.84 KB
Rename
Delete
README
15.41 KB
Rename
Delete
StripViewer.py
15.10 KB
Rename
Delete
StripViewer.pyc
13.54 KB
Rename
Delete
StripViewer.pyo
13.40 KB
Rename
Delete
Switchboard.py
4.70 KB
Rename
Delete
Switchboard.pyc
5.92 KB
Rename
Delete
Switchboard.pyo
5.92 KB
Rename
Delete
TextViewer.py
6.71 KB
Rename
Delete
TextViewer.pyc
7.19 KB
Rename
Delete
TextViewer.pyo
7.19 KB
Rename
Delete
TypeinViewer.py
5.96 KB
Rename
Delete
TypeinViewer.pyc
6.26 KB
Rename
Delete
TypeinViewer.pyo
6.26 KB
Rename
Delete
__init__.py
47 bytes
Rename
Delete
__init__.pyc
140 bytes
Rename
Delete
__init__.pyo
140 bytes
Rename
Delete
html40colors.txt
245 bytes
Rename
Delete
namedcolors.txt
5.58 KB
Rename
Delete
pyColorChooser.py
3.68 KB
Rename
Delete
pyColorChooser.pyc
4.32 KB
Rename
Delete
pyColorChooser.pyo
4.32 KB
Rename
Delete
pynche
182 bytes
Rename
Delete
webcolors.txt
3.02 KB
Rename
Delete
websafe.txt
1.71 KB
Rename
Delete
"""ListViewer class. This class implements an input/output view on the color model. It lists every unique color (e.g. unique r/g/b value) found in the color database. Each color is shown by small swatch and primary color name. Some colors have aliases -- more than one name for the same r/g/b value. These aliases are displayed in the small listbox at the bottom of the screen. Clicking on a color name or swatch selects that color and updates all other windows. When a color is selected in a different viewer, the color list is scrolled to the selected color and it is highlighted. If the selected color is an r/g/b value without a name, no scrolling occurs. You can turn off Update On Click if all you want to see is the alias for a given name, without selecting the color. """ from Tkinter import * import ColorDB ADDTOVIEW = 'Color %List Window...' class ListViewer: def __init__(self, switchboard, master=None): self.__sb = switchboard optiondb = switchboard.optiondb() self.__lastbox = None self.__dontcenter = 0 # GUI root = self.__root = Toplevel(master, class_='Pynche') root.protocol('WM_DELETE_WINDOW', self.withdraw) root.title('Pynche Color List') root.iconname('Pynche Color List') root.bind('<Alt-q>', self.__quit) root.bind('<Alt-Q>', self.__quit) root.bind('<Alt-w>', self.withdraw) root.bind('<Alt-W>', self.withdraw) # # create the canvas which holds everything, and its scrollbar # frame = self.__frame = Frame(root) frame.pack() canvas = self.__canvas = Canvas(frame, width=160, height=300, borderwidth=2, relief=SUNKEN) self.__scrollbar = Scrollbar(frame) self.__scrollbar.pack(fill=Y, side=RIGHT) canvas.pack(fill=BOTH, expand=1) canvas.configure(yscrollcommand=(self.__scrollbar, 'set')) self.__scrollbar.configure(command=(canvas, 'yview')) self.__populate() # # Update on click self.__uoc = BooleanVar() self.__uoc.set(optiondb.get('UPONCLICK', 1)) self.__uocbtn = Checkbutton(root, text='Update on Click', variable=self.__uoc, command=self.__toggleupdate) self.__uocbtn.pack(expand=1, fill=BOTH) # # alias list self.__alabel = Label(root, text='Aliases:') self.__alabel.pack() self.__aliases = Listbox(root, height=5, selectmode=BROWSE) self.__aliases.pack(expand=1, fill=BOTH) def __populate(self): # # create all the buttons colordb = self.__sb.colordb() canvas = self.__canvas row = 0 widest = 0 bboxes = self.__bboxes = [] for name in colordb.unique_names(): exactcolor = ColorDB.triplet_to_rrggbb(colordb.find_byname(name)) canvas.create_rectangle(5, row*20 + 5, 20, row*20 + 20, fill=exactcolor) textid = canvas.create_text(25, row*20 + 13, text=name, anchor=W) x1, y1, textend, y2 = canvas.bbox(textid) boxid = canvas.create_rectangle(3, row*20+3, textend+3, row*20 + 23, outline='', tags=(exactcolor, 'all')) canvas.bind('<ButtonRelease>', self.__onrelease) bboxes.append(boxid) if textend+3 > widest: widest = textend+3 row += 1 canvheight = (row-1)*20 + 25 canvas.config(scrollregion=(0, 0, 150, canvheight)) for box in bboxes: x1, y1, x2, y2 = canvas.coords(box) canvas.coords(box, x1, y1, widest, y2) def __onrelease(self, event=None): canvas = self.__canvas # find the current box x = canvas.canvasx(event.x) y = canvas.canvasy(event.y) ids = canvas.find_overlapping(x, y, x, y) for boxid in ids: if boxid in self.__bboxes: break else: ## print 'No box found!' return tags = self.__canvas.gettags(boxid) for t in tags: if t[0] == '#': break else: ## print 'No color tag found!' return red, green, blue = ColorDB.rrggbb_to_triplet(t) self.__dontcenter = 1 if self.__uoc.get(): self.__sb.update_views(red, green, blue) else: self.update_yourself(red, green, blue) self.__red, self.__green, self.__blue = red, green, blue def __toggleupdate(self, event=None): if self.__uoc.get(): self.__sb.update_views(self.__red, self.__green, self.__blue) def __quit(self, event=None): self.__root.quit() def withdraw(self, event=None): self.__root.withdraw() def deiconify(self, event=None): self.__root.deiconify() def update_yourself(self, red, green, blue): canvas = self.__canvas # turn off the last box if self.__lastbox: canvas.itemconfigure(self.__lastbox, outline='') # turn on the current box colortag = ColorDB.triplet_to_rrggbb((red, green, blue)) canvas.itemconfigure(colortag, outline='black') self.__lastbox = colortag # fill the aliases self.__aliases.delete(0, END) try: aliases = self.__sb.colordb().aliases_of(red, green, blue)[1:] except ColorDB.BadColor: self.__aliases.insert(END, '<no matching color>') return if not aliases: self.__aliases.insert(END, '<no aliases>') else: for name in aliases: self.__aliases.insert(END, name) # maybe scroll the canvas so that the item is visible if self.__dontcenter: self.__dontcenter = 0 else: ig, ig, ig, y1 = canvas.coords(colortag) ig, ig, ig, y2 = canvas.coords(self.__bboxes[-1]) h = int(canvas['height']) * 0.5 canvas.yview('moveto', (y1-h) / y2) def save_options(self, optiondb): optiondb['UPONCLICK'] = self.__uoc.get() def colordb_changed(self, colordb): self.__canvas.delete('all') self.__populate()
Save