ó f Qc@s9dZddlTddlZdZddd„ƒYZdS(sListViewer 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. iÿÿÿÿ(t*NsColor %List Window...t ListViewercBsteZd d„Zd„Zd d„Zd d„Zd d„Zd d„Zd d„Z d„Z d„Z d „Z RS( c Cs=||_|jƒ}d|_d|_t|ddƒ}|_|jd|jƒ|j dƒ|j dƒ|j d|j ƒ|j d|j ƒ|j d|jƒ|j d |jƒt |ƒ}|_|jƒt|d d d d dddtƒ}|_t|ƒ|_|jjdtdtƒ|jdtddƒ|jd|jdfƒ|jjd|dfƒ|jƒtƒ|_|jj|jddƒƒt|ddd|jd|jƒ|_ |j jdddtƒt!|ddƒ|_"|j"jƒt#|d ddt$ƒ|_%|j%jdddtƒdS( Nitclass_tPynchetWM_DELETE_WINDOWsPynche Color Listsssstwidthi theighti,t borderwidthitrelieftfilltsidetexpandityscrollcommandtsettcommandtyviewt UPONCLICKttextsUpdate on ClicktvariablesAliases:it selectmode(&t_ListViewer__sbtoptiondbtNonet_ListViewer__lastboxt_ListViewer__dontcentertToplevelt_ListViewer__roottprotocoltwithdrawttitleticonnametbindt_ListViewer__quittFramet_ListViewer__frametpacktCanvastSUNKENt_ListViewer__canvast Scrollbart_ListViewer__scrollbartYtRIGHTtBOTHt configuret_ListViewer__populatet BooleanVart_ListViewer__uocR tgett Checkbuttont_ListViewer__toggleupdatet_ListViewer__uocbtntLabelt_ListViewer__alabeltListboxtBROWSEt_ListViewer__aliases(tselft switchboardtmasterRtroottframetcanvas((s7/usr/lib64/python2.7/site-packages/pynche/ListViewer.pyt__init__sD             c CsÉ|jjƒ}|j}d}d}g}|_x|jƒD]}tj|j|ƒƒ}|jd|ddd|ddd|ƒ|j d|ddd|dt ƒ}|j |ƒ\} } } } |jd |dd | d |dd d d d |dfƒ} |j d|j ƒ|j| ƒ| d |krD| d }n|d7}q>W|ddd}|jdddd|fƒxB|D]:}|j|ƒ\} } }} |j|| | || ƒq‡WdS(NiiiR ii Rtanchoriitoutlinetttagstallsit scrollregioni–(RtcolordbR&t_ListViewer__bboxest unique_namestColorDBttriplet_to_rrggbbt find_bynametcreate_rectanglet create_texttWtbboxRt_ListViewer__onreleasetappendtconfigtcoords(R9RFR>trowtwidesttbboxestnamet exactcolorttextidtx1ty1ttextendty2tboxidt canvheighttboxtx2((s7/usr/lib64/python2.7/site-packages/pynche/ListViewer.pyt __populateDs8      c Cs%|j}|j|jƒ}|j|jƒ}|j||||ƒ}x%|D]}||jkrLPqLqLWdS|jj|ƒ}x&|D]}|ddkr†Pq†q†WdStj |ƒ\} } } d|_ |j j ƒrñ|j j| | | ƒn0|j| | | ƒ| | | |_|_|_dS(Nit#i(R&tcanvasxtxtcanvasytytfind_overlappingRGtgettagsRItrrggbb_to_tripletRR/R0Rt update_viewstupdate_yourselft_ListViewer__redt_ListViewer__greent_ListViewer__blue( R9teventR>ReRgtidsR^RCtttredtgreentblue((s7/usr/lib64/python2.7/site-packages/pynche/ListViewer.pyt __onreleaseds&    cCs5|jjƒr1|jj|j|j|jƒndS(N(R/R0RRkRmRnRo(R9Rp((s7/usr/lib64/python2.7/site-packages/pynche/ListViewer.pyt__toggleupdatescCs|jjƒdS(N(Rtquit(R9Rp((s7/usr/lib64/python2.7/site-packages/pynche/ListViewer.pyt__quitƒscCs|jjƒdS(N(RR(R9Rp((s7/usr/lib64/python2.7/site-packages/pynche/ListViewer.pyR†scCs|jjƒdS(N(Rt deiconify(R9Rp((s7/usr/lib64/python2.7/site-packages/pynche/ListViewer.pyRz‰sc Cs…|j}|jr+|j|jddƒntj|||fƒ}|j|ddƒ||_|jjdtƒy&|jj ƒj |||ƒd}Wn(tj k rÂ|jj tdƒdSX|sß|jj tdƒn$x!|D]}|jj t|ƒqæW|j rd|_ ni|j|ƒ\}}}} |j|jdƒ\}}}} t|d ƒd } |jd | | | ƒdS( NRARBtblackiiss iÿÿÿÿRgà?tmoveto(R&Rt itemconfigureRIRJR8tdeletetENDRRFt aliases_oftBadColortinsertRRSRGtintR( R9RsRtRuR>tcolortagtaliasesRWtigR[R]th((s7/usr/lib64/python2.7/site-packages/pynche/ListViewer.pyRlŒs,   &   "cCs|jjƒ|ds