;i/dddlmZmZmZmZddlZddlZddlZddlZddl Z ddl Z ddl mZddl m Z ddl m ZddlmZd gZd ZGd d ejZGd dejZGddejZGddejZGdd ejZGddeZdS))QT_LIBQtCoreQtGui QtWidgetsN)Qt)CONFIG_OPTIONS) multiprocess) GraphicsViewRemoteGraphicsViewcd|DS)Ncdg|]-}t|tjr|nt|.S) isinstanceenumEnumint).0xs XC:\PYTHON\MyICR_Workspace\venv\Lib\site-packages\pyqtgraph/widgets/RemoteGraphicsView.py z(serialize_mouse_enum..s3 D D D!Aty)) 5AAs1vv D D Dr)argss rserialize_mouse_enumrs E Dt D D DDrcFeZdZeddZfdZdZfdZxZS) MouseEventFc,|}t|trtj|}t |dr|n|}t |dr| n| }| | | }}}|rt||||\}}}}||||||fSNpositionglobalPosition)typerrrQEventTypehasattrr localPosr! screenPosbuttonbuttons modifiersr)obj picklabletyplposgposbtnbtnsmodss r get_statezMouseEvent.get_stateshhjj c3   * -$$S))C!(j!9!9Ms||~~~s||~~'.s4D'E'EZs!!###3==??**,, s}}4T  N#7S$#M#M CdDD$T4//rcZtj||dSNsuper__init__r3selfrhs __class__s rr8zMouseEvent.__init__.)$..--....rc0||dSNT)r,r3r:s r __getstate__zMouseEvent.__getstate__1~~dd~333rc|\}}}}}}tj|}tj|}t |t jstj|}t |t jstj |}t ||||||dSr5) rr#r$r MouseButtonrrr MouseButtonsKeyboardModifiersr7r8) r:stater-r.r/r0r1r2r<s r __setstate__zMouseEvent.__setstate__4s+0(T4dDm  %%i##C(($ ** 09))$//D$ ** 59..t44D dD#tT:::::rF __name__ __module__ __qualname__ staticmethodr3r8rBrI __classcell__r<s@rrrs~ 0 0 0\ 0/////444;;;;;;;;;rrcFeZdZeddZfdZdZfdZxZS) WheelEventFct|dr|n|}t|dr|n|}|||}}}|| | } }}|rt|||\}}}|||||||| fSr) r%r posFr! globalPosF pixelDelta angleDeltar)r*phaseinvertedr) r+r,r.r/pixdelangdelr1r2rYrZs rr3zWheelEvent.get_state@s ")j!9!9Is||~~~sxxzz'.s4D'E'E[s!!###3>>K[K["~~//1A1A3;;== # cllnnXe  H 4T4 G G D$T664uhFFrct||}|d|d<tj|dS)Nrr )listr3r7r8)r:r;itemsr<s rr8zWheelEvent.__init__NsCT^^C(())8a%    rc0||dSr?r@rAs rrBzWheelEvent.__getstate__SrCrc |\}}}}}}}} t|tjstj|}t|tjstj|}tj|}t |||||||| dSr5) rrrrrrFrG ScrollPhaser7r8) r:rHposr/r[r\r1r2rYrZr<s rrIzWheelEvent.__setstate__VsAF>T664uh$ ** 09))$//D$ ** 59..t44D %%e,, dFFD$xPPPPPrrJrKrQs@rrSrS?s G G G\ G!!!!! 444QQQQQQQQQrrScDeZdZedZfdZdZfdZxZS) EnterEventc\t|dr|n|}t|dr|n|}t|dr|n|}|||fS)Nr scenePositionr!)r%r r&rg windowPosr!r')r+r.wposr/s rr3zEnterEvent.get_stateas!(j!9!9Ms||~~~s||~~&-c?&C&CXs  """'.s4D'E'EZs!!###3==??T4rcZtj||dSr5r6r9s rr8zEnterEvent.__init__hr=rc,||Sr5r@rAs rrBzEnterEvent.__getstate__ks~~d###rc4tj|dSr5)r7r8)r:rHr<s rrIzEnterEvent.__setstate__ns%    rrKrQs@rrere`sy  \ /////$$$!!!!!!!!!rrecFeZdZeddZfdZdZfdZxZS) LeaveEventFcV|}|rt|\}|fSr5)r"r)r+r,r-s rr3zLeaveEvent.get_statess-hhjj  -',,DCt rcZtj||dSr5r6r9s rr8zLeaveEvent.__init__zr=rc0||dSr?r@rAs rrBzLeaveEvent.__getstate__}rCrc|\}tj|}t|dSr5)rr#r$r7r8)r:rHr-r<s rrIzLeaveEvent.__setstate__s=m  %% rrJrKrQs@rrnrnrs~\ /////444rrnceZdZdZddZfdZdZdZdZfdZ fd Z fd Z fd Z fd Z fd ZdZdZxZS)r z Replacement for GraphicsView that does all scene management and rendering on a remote process, while displaying on the local widget. GraphicsItems must be created by proxy to the remote process. Nc *d|_d|_d|_tj|i}dD]}||vr||||<tjd i||_ |j d|_ |j j d it|j d}|j|i||_|jd|t$jjj|tjjjtjjj|dd|_|j}t:jdkrd }nd}t?|d | |_ |jj!"tj#|j$d D]&} tK|| tM|j| 'dS)z The keyword arguments 'useOpenGL' and 'backgound', if specified, are passed to the remote GraphicsView.__init__(). All other keyword arguments are passed to multiprocess.QtProcess.__init__(). N)ii) useOpenGL background pyqtgraphz$pyqtgraph.widgets.RemoteGraphicsViewT) deferGetattrwin32cFtj||tjzSr5)osopen O_TEMPORARY)pathflagss rz-RemoteGraphicsView.__init__..sur~7M)N)Nrrb)opener)scenesetCentralItemr)'_img_imgReq _sizeHintrQWidgetr8popmp QtProcess_proc_importpgsetConfigOptionsr Renderer_view_setProxyOptionssetFocusPolicyrr FocusPolicy StrongFocus setSizePolicy QSizePolicyPolicy ExpandingsetMouseTrackingshm shmFileNamesysplatformr|shmFile sceneRenderedconnectproxyremoteSceneChangedsetattrgetattr) r:parentrkwds remoteKwdskwd rpgRemoterrmethods rr8zRemoteGraphicsView.__init__s   """4((( . 0 0Cd{{"&((3-- 3\))D)) *$$[11  22>222J&&'MNN 'Y'<<<  ###666 FI1=>>> 907A9CXC_Cijjj d###j,,.. <7 " "NNFFFKf===   (($2I)J)JKKK 2 ? ?F D&'$*f"="= > > > > ? ?rct|}|j|d|SNoff) _callSync)r7 resizeEventrresizesize)r:evretr<s rrzRemoteGraphicsView.resizeEventsBgg!!"%% $))++777 rc(tj|jSr5)rQSizerrAs rsizeHintzRemoteGraphicsView.sizeHints|T^,,rc|\}}}|j|jj|kr]|j|jtj|j|tj|_tj|j||tjj j  |_ | dS)Naccess)rrclosemmaprfileno ACCESS_READrQImageFormat Format_RGB32copyrupdate)r:datawhrs rrz%RemoteGraphicsView.remoteSceneChangeds 1d 8 tx}44x#   y!4!4!6!6TEUVVVDHL1a1D1QRRWWYY  rc|jdStj|}|||j|j|dSr5)rrQPainter drawImagerectend)r:rps r paintEventzRemoteGraphicsView.paintEvents[ 9  F N4  DIIKKDINN,<,<=== rc|jt|d|t |Sr)rmousePressEventracceptr7r:rr<s rrz"RemoteGraphicsView.mousePressEventsI "":b>>U"CCC ww&&r***rc|jt|d|t |Sr)rmouseReleaseEventrrr7rs rrz$RemoteGraphicsView.mouseReleaseEventsI $$Z^^u$EEE ww((,,,rc|jt|d|t |Sr)rmouseMoveEventrrr7rs rrz!RemoteGraphicsView.mouseMoveEventsI !!*R..E!BBB ww%%b)))rc|jt|d|t |Sr)r wheelEventrSrr7rs rrzRemoteGraphicsView.wheelEventsI jnn>>> ww!!"%%%rc|jt|dt|Sr)r enterEventrer7rs rrzRemoteGraphicsView.enterEvent< jnn>>>ww!!"%%%rc|jt|dt|Sr)r leaveEventrnr7rs rrzRemoteGraphicsView.leaveEventrrc|jS)zSReturn the remote process handle. (see multiprocess.remoteproxy.RemoteEventHandler))rrAs r remoteProcessz RemoteGraphicsView.remoteProcesss zrct|jj|jdS)zPClose the remote process. After this call, the widget will no longer be updated.N)rr disconnectrrrAs rrzRemoteGraphicsView.closes3  ++--- rr5)rLrMrN__doc__r8rrrrrrrrrrrrrPrQs@rr r s8*?*?*?*?X ---+++++ ----- ***** &&&&& &&&&&&&&&&rc`eZdZejeZdZdZdZ fdZ fdZ dZ xZ S)rctjd|_tj}|jd|z|jtj|j|tj|_ tj |j tj|g|Ri||j|jd|_t)j|_|jj|j|jddS)Npyqtgraph_shmem_)prefixr)tempfileNamedTemporaryFilerrPAGESIZEwriteflushr ACCESS_WRITEratexitregisterrr r8rchangedrrimgrQTimer renderTimertimeout renderViewstart)r:rrrs rr8zRenderer.__init__s2:LMMM } 7T>*** 9T\0022DARSSS ###d2T222T222 $$T[111!=??  ((999 r"""""rcj|j|jdSr5)rrrrAs rrzRenderer.close s.  rc|jjSr5)rnamerAs rrzRenderer.shmFileNames |  rcRd|_tSr5)rr7r)r:r<s rrzRenderer.updatesww~~rc|}t||t j|||dSr5)rr7rrr QResizeEventr)r:roldSizer<s rrzRenderer.resizesX))++ t +D'::;;; rcL|j|dks|dkrdS|}t ||z}t ||z}||zdz}||jkr |j|n}#t$rp|j |j }tj ||tj||tj|_YnwxYwt!jdr2t t$j|j}n|j}t+j|||t*jjj|_|j||jdt+j|j}||||||j !|||jfdSdS)NrrPyQtl)"rwidthheightdevicePixelRatioFrrrr SystemErrorrrrr{ ftruncaterrr startswithrsipvoidptrrrrrsetDevicePixelRatiofillrrenderviewRectrrremit)r:dpriwidthiheightrfdimg_ptrrs rrzRenderer.renderViews2 8 zz||q  DKKMMQ$6$6((**C+,,F$++--#-..GG#a'Ddhmmoo%%MHOOD))))"MMMHNN$$$,,..BLT***#yT$:KLLLDHHH M (( #bfnnTX6677(|GVWel>Q>^__DH H ( ( - - - HMM* % % %tx((A KK4==??DIIKK 8 8 8 EEGGG   # #VWdhmmoo$F G G G G GI  s=CA7EE)rLrMrNrSignalobjectrr8rrrrrrPrQs@rrrs"FM&))M### !!!      %H%H%H%H%H%H%Hrr)rrrrrrrrr{rrr r rr __all__r QMouseEventr QWheelEventrS QEnterEventrer#rnrr rrrrrs111111111111 !!!!!!&&&&&&  EEE;;;;;";;;DQQQQQ"QQQB!!!!!"!!!$(ooooo*ooodKHKHKHKHKH|KHKHKHKHKHr