;iFddgZddlZddlmZmZmZddlmZddlm Z ddl m Z m Z m Z d d lmZe jjZGd d e ZGd de jZGddeZdS) CanvasItemGroupCanvasItemN) ItemGroup SRTTransformdebug) functions)ROI)QT_LIBQtCore QtWidgets)TransformGuiTemplate_genericceZdZddZdS) SelectBoxFTctj|ddgddgdddg}|r4|ddg|d|ddg|d|r2|ddg||ddg|dSdS)NrrT) invertibleg?) lockAspect)r __init__addScaleHandleaddRotateHandle)selfscalable rotatablecenters OC:\PYTHON\MyICR_Workspace\venv\Lib\site-packages\pyqtgraph/canvas/CanvasItem.pyrzSelectBox.__init__s TAa51Q%D9999s  A   A4  @ @ @   A4  @ @ @  1  !Q 0 0 0  !Q 0 0 0 0 0 1 1N)FT)__name__ __module__ __qualname__rrrrr s( 1 1 1 1 1 1rrceZdZejeZejeZejeZ ejeZ dZ dZ dZ dZ dZdZdZdZd Zd Zd Zd Zd ZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(d Z)d!Z*d"Z+d#Z,d$Z-d%Z.d&Z/d'Z0d(Z1d)Z2d*Z3d+Z4d,Z5d-Z6d.Z7d/Z8d0Z9d1Z:d2Z;d3Z>>$)## '(:(F"))$)G*<===$)## '(:(F"((7);<<<  ) ) + + T ! !bkU&:&:$(DIj !#DIj,ATYWbMcddd    %%% '//0EFFF .66t7STTT&799"133 --t/@$..QRRR)^^)^^ !!!!!rcN||jd<|rM|j|j|jdS|j|j|jdSNr&)r3rPshowrQrRrl)rms rrgzCanvasItem.setMovables  )  !  " ' ' ) ) ) L      M    " ' ' ) ) ) L      M   rc||jurdS|?|j|j|j|jn4||j||j||_dSN)r6removeFromScener7rk addToScene)rr6s r setCanvaszCanvasItem.setCanvass T[ F > K ' '(: ; ; ; K ' ' 7 7 7 7   d0 1 1 1   dn - - - rc|jS)z,Return the graphicsItem for this canvasItem.)r7rs rr9zCanvasItem.graphicsItems !!rc|jSr)r:rs r parentItemzCanvasItem.parentItems rc||_|)t|tr|}||dSr)r: isinstancerr9r8)rr(s rr8zCanvasItem.setParentItemsY!  &*-- /,,.. ))&11111rcB|t_dSr) saveTransformrtransformCopyBufferrs rrezCanvasItem.copyClickeds)-););)=)= &&&rcPtj}|dS||dSr)rrrestoreTransform)rts rrfzCanvasItem.pasteClickeds.  * 9 F  ! !! $ $ $ $ $rc|sdSt}|dd|j|z|_|||j|dS)Nr) isMovablerr1rwupdateTransformselectBoxFromUsersigTransformChangeFinishedemit)rinvs rr[zCanvasItem.mirrorYs~~  F nn "a!/#5      ',,T22222rc\|sdS|ddS)Ngf@)rrirs rr]zCanvasItem.mirrorXYs1~~  F Drc6|j Sr)rw isIdentityrs rhasUserTransformzCanvasItem.hasUserTransforms%002222rc|jSr)r=rs r ctrlWidgetzCanvasItem.ctrlWidgets yrcD|dz }|j|dSNg@)r7 setOpacity)rvalalphas rr_zCanvasItem.alphaChangeds(e  %%e,,,,,rc |jttj|dzdddS)Nr*r)rGrMintfn clip_scalar)rrs rsetAlphazCanvasItem.setAlphas9 !!#bnUT\1d&K&K"L"LMMMMMrc:|jdz Sr)rGvaluers rrzCanvasItem.alphas%%''%//rc|jdSr}r3rs rrzCanvasItem.isMovabley##rcx|j|j|_|dS)z]The selection box has moved; get its transformation information and pass to the graphics item) relativeToN)rkgetGlobalTransform selectBoxBaserwrrs rselectBoxMovedzCanvasItem.selectBoxMoveds8!^>>$J\>]] rc|j||||dSr)rwr1rrrxys rr1zCanvasItem.scalesE   A&&&     rc|j|||dSr)rwrirr)rangs rrizCanvasItem.rotatesC !!#&&&     rc|j||||dSr)rwrDrrrs rrDzCanvasItem.translate sE $$Q***     rc|j||||dSr)rw setTranslaterrrs rrzCanvasItem.setTranslatesE ''1---     rc|j|||dSr)rw setRotaterr)rr0s rrzCanvasItem.setRotatesC $$U+++     rc|j||||dSr)rwsetScalerrrs rrzCanvasItem.setScalesE ##Aq)))     rc<||_|dSr)rvr)rr.s rsetTemporaryTransformz CanvasItem.setTemporaryTransforms"& rc~|j|jz|_||dS)z@Collapses tempTransform into UserTransform, resets tempTransformN)rwrvresetTemporaryTransformrrs rapplyTemporaryTransformz"CanvasItem.applyTemporaryTransform!s?!/$2DD $$&&&      rcTt|_|dSr)rrvrrs rrz"CanvasItem.resetTemporaryTransform's&)^^ rc4|jSr)r7r.rs rr.zCanvasItem.transform+s!++---rc|j|jz|jz}|}|jj|d|j|d|j |dd|j |dd| ||S)zERegenerate the item position from the base, user, and temp transformsr/r0r1rr) rhrwrvrjr7setPosrrsetAnglert setXScale setYScaledisplayTransform)rr.ss rrzCanvasItem.updateTransform.s&);;d>PP    ! !!!1U8,, ""1W:...   7A///   7A/// i((( rcn|}|jjd|dd|ddfz|jjd|dz|jjd|dd|ddfzd S) z-Updates transform numbers in the ctrl widget.zTranslate: (%f, %f)r/rrzRotate: %f degreesr0zScale: (%f, %f)r1N)rjrVtranslateLabelsetText rotateLabel scaleLabel)rr.r{s rrzCanvasItem.displayTransform;s  " " (001FESTWYZ_W`abWcHd1deee %--.BBwK.OPPP $,,->GQQST[Q\]^Q_@`-`aaaaarcX|j||jd||jd|j||j|dS)NTF) rwresetrrk blockSignalsselectBoxToItemsigTransformChangedrrrs rrxzCanvasItem.resetUserTransformCs   """  ##D)))  ##E***  %%d+++ ',,T22222rcb||j|dSr)rxsigResetUserTransformrrs rrdz CanvasItem.resetTransformClickedMs1 !!! "''-----rcF t||_|||j||j|dS#t|_tjdYdSxYw)NzFailed to load transform:) rrwrrrrrrprintExc)rr{s rrzCanvasItem.restoreTransformQs 8!-b!1!1D   " " "  " " $ $ $  $ ) )$ / / /  + 0 0 6 6 6 6 6 8!-D  N6 7 7 7 7 7 7s A0A44)B c4|jS)z3Return a dict containing the current user transform)rwrjrs rrzCanvasItem.saveTransform]s!++---rc|jd|j|j|j|j|jddS)z9Move the selection box to match the current userTransformTFN)rkrsetStaterapplyGlobalTransformrwrs rrzCanvasItem.selectBoxFromUserasj ##D)))  2333 ++D,>??? ##E*****rcT|j|_|j|j}|jd|j||g|j | |j d|j |_|jddS)z_Move/scale the selection box so it fits the item's bounding rect. (assumes item is not rotated)TrFN)r7 boundingRectitemRectmapRectToParentrkrrrrsetSizesizergetStatecopyr)rrects rrzCanvasItem.selectBoxToItemqs*7799 !11$-@@ ##D))) tvvxx2333 tyy{{+++ """!^4466;;== ##E*****rc|jdSNr%rrs rzValuezCanvasItem.zValue|sy~rcV||jd<||j|dSdSr)r3r7r;)rr%s rr;zCanvasItem.setZValues6 # =   ( ( + + + + + =rc|o| |_||jr(|dS|dS)a Inform the item that its selection state has changed. ============== ========================================================= **Arguments:** sel (bool) whether the item is currently selected multi (bool) whether there are multiple items currently selected ============== ========================================================= N)r4 showSelectBoxrr~rl)rselmultis rselectionChangedzCanvasItem.selectionChangedst!.Y    % OO   " " $ $ $ $ $ OO   " " $ $ $ $ $rc|jrC|r/|r|jdS|jdS)zHDisplay the selection box around this item if it is selected and movableN)r4r isVisiblerkr~rlrs rrzCanvasItem.showSelectBoxsc   "$.."2"2 "t~~7G7G " N   ! ! ! ! ! N   ! ! ! ! !rc8|jdSr)rkrlrs r hideSelectBoxzCanvasItem.hideSelectBoxs rcb||j|dSr)rrrrs rrnzCanvasItem.selectBoxChangeds1   %%d+++++rc:|j|dSr)rrrs rrpz"CanvasItem.selectBoxChangeFinisheds ',,T22222rc.|dS)z)Hide selection box while slider is movingN)rrs rrazCanvasItem.alphaPresseds rc.|dSr)rrs rrczCanvasItem.alphaReleaseds rc|jdrdSd|jd<|j||j|dS)Nr'T)r3r7r~rsigVisibilityChangedrrs rr~zCanvasItem.showsf 9Y   F# ) !!!  !&&t,,,,,rc|jdsdSd|jd<|j||j|dS)Nr'F)r3r7rlrrrrs rrlzCanvasItem.hidesfy#  F$ ) !!!  !&&t,,,,,rc^|r|dS|dSr)r~rl)rviss r setVisiblezCanvasItem.setVisibles,   IIKKKKK IIKKKKKrc|jdS)Nr'rrs rrzCanvasItem.isVisiblerrc  |jj|j|||||jd|jd|jdd S)Nrrr&) typer$r'rrwr%rrr&) __class__rr$rrrrr3rs rrjzCanvasItem.saveStatesnN+I~~''ZZ\\!//11 *-;/y+   rc||d||d||d||ddS)Nr'rrwr%)rrrr;)rstates r restoreStatezCanvasItem.restoreStatesd i())) eGn%%% eO4555 uSz"""""r)=rrr r Signalobjectrrrrrrrgrr9rr8rerfr[r]rrr_rrrrr1rirDrrrrrrr.rrrxrdrrrrrr;rrrrnrprarcr~rlrrrjrr!rrrrsb)FM&11!.v!6!6'&-//!)6=00Y"Y"Y"x ! ! ! """   222>>>%%% 3 3 3D333---NNN000$$$       !!! ...   bbb333... 8 8 8...+++ + + +,,, %%%"""",,,333------ $$$    #####rceZdZdZdZdS)rz. Canvas item used for grouping others c |ddd}||t}tj||fi|dS)NF)r&r)r2rrr)rr3rzrys rrzGroupCanvasItem.__init__sK#77t{{D$22'22222rN)rrr __doc__rr!rrrrs-33333r)__all__ importlibrrrr rgraphicsItems.ROIr rJr r r rrTQCoreApplicationrDrr5rrr!rrrs, * +----------######**********999999  # -  1 1 1 1 1 1 1 1}#}#}#}#}#}#}#}#@ 3 3 3 3 3j 3 3 3 3 3r