Your IP : 18.224.59.50


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

�
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�}|s!t�|dS(Ni(RtcoordsR)tAssertionError(RR,((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pyt_xyscCs-||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.RR2(((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			cCs0|jj|j�}|s!t�|d|jS(Ni(RR,R)R-R((RR,((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pyR.�s(R6(R3R4R)RR.(((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pyR5�s	tStripWidgetc
BsneZdZdZdZd
eeed
d
dd
d
d�	Zd�Zd
d�Zd�Z	d�Z
d	�ZRS(i2i
i(tcCs�||_||_||_|jdks0t�|	|_|
|_d|_||_||d}|d}t	|d|d|�}
|_
|
j�|
jd|j
�|
jd|j
�|
jd	|j
�|
jjt�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(Niiii+R!theights<ButtonPress-1>s<ButtonRelease-1>s<B1-Motion>itchiptgreytfilltoutlineR"iiR#tanchor(iii(schip(t_StripWidget__generatort_StripWidget__axist_StripWidget__numchipsR-t_StripWidget__uwdt_StripWidget__hexpR
t_StripWidget__lastchipt_StripWidget__sbtCanvast_StripWidget__canvastpacktbindt_StripWidget__select_chipttktevaltTCLPROCt_StripWidget__chipstrangetcreate_rectangleRR*tWt_StripWidget__labelt_StripWidget__arrow_xRt_StripWidget__leftarrowtlenR5t_StripWidget__rightarrow(Rtswitchboardtmastert	chipwidtht
chipheightRt	generatortaxistlabeltuwdvarthexvartcanvaswidthtcanvasheightRtchipsRtyR"tctcolortchipx((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pyR�sL							
	

cCs@|jj|d�}|s"t�|\}}}}||dS(Nig@(RJR,R-(RtchipnumR,tx0ty0tx1ty1((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pyt	__arrow_x�scCs�|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(RRfRJtfind_overlappingRDRQtColorDBtrrggbb_to_tripletRttypetBTNUPREtgetRHtupdate_viewst_StripWidget__trackarrow(RteventRRfRR=RhRR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(RGR
RJtitemcgetR1RCRFRuthextreprRWR2RRVRYRqttriplet_to_brightness(RR=trgbtupleRht	coloraxisR#t
brightnessR@((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pyt__trackarrows(	
	cCs|jst�d}d}g}|_|jj}x�|j|j|||�D]h}tj|�}	|j|	�|\}
}}|
|kr�||kr�||kr�|}n|d}qPWt	j
|�}
|jd|jj|
f�|j
||||f�dS(Niissetcolor %s {%s}(RBR-RQRJRNRDRqttriplet_to_rrggbbRtSPACEtjoinROt_wRw(RRRR
tiR=ReRNtttrrggbbttredttgreenttbluetcolors((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pytupdate_yourself#s
"
$	cCs&|jj|jd|�||_dS(NR#(RJR1RURB(RR`R^((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pytset7sN(R3R4t_CHIPHEIGHTt
_CHIPWIDTHt	_NUMCHIPSR
RRVRMRwR�R�(((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pyR:�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 VariationsRaRbsGreen VariationssBlue VariationstweightiiR#tBlacktcommandtrowspantpadxsUpdate while draggingtvariabletHexadecimaltWhite(t_StripViewer__sbtoptiondbtFrametRAISEDtgridt
BooleanVart_StripViewer__uwdvarR�Rut_StripViewer__hexpvarRKtYEStBOTHR:Rt_StripViewer__redsRt_StripViewer__greensRt_StripViewer__bluestcolumnconfiguretButtont_StripViewer__toblackRTtCheckbuttont_StripViewer__togglehext_StripViewer__towhitetE(RRZR[R�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�(RRxRRR
((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pyt__togglehex�scCs|jjddd�dS(Ni(R�Rv(RRx((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pyt	__toblack�scCs|jjddd�dS(Ni�(R�Rv(RRx((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pyt	__towhite�scCs*|jj�|d<|jj�|d<dS(NR�R�(R�RuR�(RR�((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pytsave_options�sN(	R3R4R
RR�R�R�R�R�(((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pyR�<sO	((((t__doc__tTkinterRqRPtBTNDOWNRttBTNDRAGR�RRRRRRRRR5R:R�(((s8/usr/lib64/python2.7/site-packages/pynche/StripViewer.pyt<module>s$

							(�