Your IP : 3.128.198.172


Current Path : /lib64/python2.7/site-packages/pynche/
Upload File :
Current File : //lib64/python2.7/site-packages/pynche/StripViewer.pyo

�
f
�Qc@s�dZddlTddlZdZdZdZdZdZd	�Zd
�Z	d�Z
d�Zd
�Zd�Z
d�Zddd��YZdefd��YZddd��YZddd��YZdS(szStrip viewer and related widgets.

The classes in this file implement the StripViewer shown in the top two thirds
of the main Pynche window.  It consists of three StripWidgets which display
the variations in red, green, and blue respectively of the currently selected
r/g/b color value.

Each StripWidget shows the color variations that are reachable by varying an
axis of the currently selected color.  So for example, if the color is

  (R,G,B)=(127,163,196)

then the Red variations show colors from (0,163,196) to (255,163,196), the
Green variations show colors from (127,0,196) to (127,255,196), and the Blue
variations show colors from (127,163,0) to (127,163,255).

The selected color is always visible in all three StripWidgets, and in fact
each StripWidget highlights the selected color, and has an arrow pointing to
the selected chip, which includes the value along that particular axis.

Clicking on any chip in any StripWidget selects that color, and updates all
arrows and other windows.  By toggling on Update while dragging, Pynche will
select the color under the cursor while you drag it, but be forewarned that
this can be slow.
i����(t*Ns�proc setcolor {canv colors} {
    set i 1
    foreach c $colors {
        $canv itemconfigure $i -fill $c -outline $c
        incr i
    }
}
iiit cCsXd|d}d}g}x7|dkrS|jt|��||}|d}qW|S(Ng�o@igi(tappendtint(tnumchipststeptstarttseq((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pytconstant4s
cCs&t|�}td|g|||�S(N(RtmaptNone(RtredtgreentblueR((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pytconstant_red_generator?scCs&t|�}td||g||�S(N(RR	R
(RRRR
R((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pytconstant_green_generatorDscCs&t|�}td|||g|�S(N(RR	R
(RRRR
R((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pytconstant_blue_generatorIscCs-t|�}td||g||g|�S(N(RR	R
(RRRR
R((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pytconstant_cyan_generatorNscCs-t|�}td|g|||g|�S(N(RR	R
(RRRR
R((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pytconstant_magenta_generatorSscCs-t|�}td|g||g||�S(N(RR	R
(RRRR
R((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pytconstant_yellow_generatorXst	LeftArrowcBsSeZdZdZdZdZd
Zd�Zd�Zd�Z	d�Z
d	�ZRS(iii
it	leftarrowcCs5||_|j|�\|_|_|j|�dS(N(t_canvast_createt_LeftArrow__arrowt_LeftArrow__texttmove_to(tselftcanvastx((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pyt__init__es	c
Cs�|jj||j|j||j||j|jddddd|j�}|jj||jd|j|jd|jdd�}||fS(	Ntarrowtfirsttwidthg@ttagsi
ttextt128(Rtcreate_linet_ARROWHEIGHTt_YOFFSETt_ARROWWIDTHt_TAGtcreate_textt_TEXTYOFFSET(RRRR#((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pyRjs					cCs|jj|j�}|dS(Ni(RtcoordsR)(RR,((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pyt_xyscCs-||j�}|jj|j|d�dS(Ni(R-RtmoveR)(RRtdeltax((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pyR~scCs|jj|jd|�dS(NR#(Rt
itemconfigureR(RR#((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pytset_text�s(R(t__name__t
__module__R(R&R'R+R)RRR-RR1(((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pyR^s				t
RightArrowcBs eZdZd�Zd�ZRS(t
rightarrowc
Cs�|jj||j||j|j||j|j|jddddd|j�}|jj||jd|j|jdtdd	d|j�}||fS(
NRtlastR!g@R"itjustifyR#R$(	RR%R'R(R&R)R*R+tRIGHT(RRRR#((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pyR�s			cCs$|jj|j�}|d|jS(Ni(RR,R)R((RR,((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pyR-�s(R5(R2R3R)RR-(((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pyR4�s	tStripWidgetc
BsneZdZdZdZd
eeed
d
dd
d
d�	Zd�Zd
d�Zd�Z	d�Z
d	�ZRS(i2i
i(tcCs�||_||_||_|	|_|
|_d|_||_||d}|d}t|d|d|�}
|_	|
j
�|
jd|j�|
jd|j�|
jd|j�|
j
jt�g}|_d}d}d}xht|j�D]W}d
}|
j||||||d|d|d
|�||d}|j|�q�W|
jd||dd|dt�|_|jd�}t|
|�|_|jt|�d�}t|
|�|_dS(Nii+R!theights<ButtonPress-1>s<ButtonRelease-1>s<B1-Motion>itchiptgreytfilltoutlineR"iiR#tanchori(schip(t_StripWidget__generatort_StripWidget__axist_StripWidget__numchipst_StripWidget__uwdt_StripWidget__hexpR
t_StripWidget__lastchipt_StripWidget__sbtCanvast_StripWidget__canvastpacktbindt_StripWidget__select_chipttktevaltTCLPROCt_StripWidget__chipstrangetcreate_rectangleRR*tWt_StripWidget__labelt_StripWidget__arrow_xRt_StripWidget__leftarrowtlenR4t_StripWidget__rightarrow(Rtswitchboardtmastert	chipwidtht
chipheightRt	generatortaxistlabeltuwdvarthexvartcanvaswidthtcanvasheightRtchipsRtyR"tctcolortchipx((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pyR�sJ							
	

cCs4|jj|d�}|\}}}}||dS(Nig@(RIR,(RtchipnumR,tx0ty0tx1ty1((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pyt	__arrow_x�scCs�|j}|j}|j}|j||||�}|r�d|dkoW|jknr�|j|dd}tj|�\}}}	t|j	�}
|
t
ks�|jj�r�|j
j|||	�q�|j|d|||	f�ndS(Nii(RReRItfind_overlappingRCRPtColorDBtrrggbb_to_tripletRttypetBTNUPRDtgetRGtupdate_viewst_StripWidget__trackarrow(RteventRReRR<RgRRR
tetype((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pyt
__select_chip�s			)cCsP|jdk	rC|jj|jd�}|jj|jd|�n||_||j}|jj�rwt|�}nt	|�}|dkr�|j
j|�|j
j|j
|d��|jjd�n=|jj|�|jj|j
|d��|j
jd�tj|�}|dkr0d}nd}|jj|d|�dS(NR>R?i�ii����twhitetblack(RFR
RItitemcgetR0RBRERtthextreprRVR1RRURXRpttriplet_to_brightness(RR<trgbtupleRgt	coloraxisR#t
brightnessR?((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pyt__trackarrows(	
	cCs�d}d}g}|_|jj}x�|j|j|||�D]h}tj|�}	|j|	�|\}
}}|
|kr�||kr�||kr�|}n|d}qAWtj	|�}
|j
d|jj|
f�|j||||f�dS(Niissetcolor %s {%s}(
RPRIRMRARCRpttriplet_to_rrggbbRtSPACEtjoinRNt_wRv(RRRR
tiR<RdRMtttrrggbbttredttgreenttbluetcolors((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pytupdate_yourself#s
"
$	cCs&|jj|jd|�||_dS(NR#(RIR0RTRA(RR_R]((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pytset7sN(R2R3t_CHIPHEIGHTt
_CHIPWIDTHt	_NUMCHIPSR
RRURLRvR�R�(((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pyR9�s";		"	tStripViewercBsJeZdd�Zd�Zdd�Zdd�Zdd�Zd�ZRS(c
Cs�||_|j�}t|dtdd�}|jddddddd	d
�t�}|_|j|jdd��t�}|_	|j|jdd��t|�}|j
d
tdt�t
||dtddddd|d|�|_t
||dtddddd|d|�|_t
||dtddddd|d|�|_t|�}|j
d
tdt�|jddd�|jddd�d}	t|ddd|j�}
|
jddddddd	td|	�t|ddd |�}|jddddd	t�t|dd!d |d|j�}|jddddd	t�t|dd"d|j�}
|
jddddddd	td|	�dS(#Ntrelieftborderwidthitrowtcolumnit
columnspanitstickytNSEWtUPWHILEDRAGtHEXSTRIPtexpandR>R]R^R_sRed VariationsR`RasGreen VariationssBlue VariationstweightiiR#tBlacktcommandtrowspantpadxsUpdate while draggingtvariabletHexadecimaltWhite(t_StripViewer__sbtoptiondbtFrametRAISEDtgridt
BooleanVart_StripViewer__uwdvarR�Rtt_StripViewer__hexpvarRJtYEStBOTHR9Rt_StripViewer__redsRt_StripViewer__greensRt_StripViewer__bluestcolumnconfiguretButtont_StripViewer__toblackRStCheckbuttont_StripViewer__togglehext_StripViewer__towhitetE(RRYRZR�tframetuwdthexptframe1tframe2R�tblackbtntuwdbtnthexbtntwhitebtn((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pyR=s^	"	(				cCsF|jj|||�|jj|||�|jj|||�dS(N(R�R�R�R�(RRRR
((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pyR��scCs/|jj�\}}}|j|||�dS(N(R�tcurrent_rgbR�(RRwRRR
((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pyt__togglehex�scCs|jjddd�dS(Ni(R�Ru(RRw((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pyt	__toblack�scCs|jjddd�dS(Ni�(R�Ru(RRw((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pyt	__towhite�scCs*|jj�|d<|jj�|d<dS(NR�R�(R�RtR�(RR�((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pytsave_options�sN(	R2R3R
RR�R�R�R�R�(((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pyR�<sO	((((t__doc__tTkinterRpROtBTNDOWNRstBTNDRAGR�RRRRRRRRR4R9R�(((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pyt<module>s$

							(�