;i6ddlZddlmZddlmZmZmZmZddlmZddlmZGdd eej Z Gd d ej Z dS) N) QtWidgets) Container HContainer TContainer VContainer)Dock)DockDropceZdZd"dZdZd#dZdZdZd Zd Z d$d Z d Z d Z dZ dZdZdZdZd%dZd&dZd'dZd(dZdZdZdZdZdZd)d Zd*d!ZdS)+DockAreaNFc:tj||tj||t ||_|jdtj|_|j dddd|j d| |jtj |_d|_|j||_g|_||_dS)N)parentcenterr)r__init__rQWidgetr dockdropremoveAllowedArea QVBoxLayoutlayoutsetContentsMargins setSpacing setLayoutweakrefWeakValueDictionarydocks topContainer raiseOverlay temporary tempAreashome)selfrrr!s OC:\PYTHON\MyICR_Workspace\venv\Lib\site-packages\pyqtgraph/dockarea/DockArea.pyrzDockArea.__init__ s4&&&""4"777   ''111+--  &&q1Q/// q!!! t{###022   ""$$$" cdS)Ntopr"s r#typez DockArea.typesur$bottomc *| td i|}|js||_|||ur|j|}d}nW|j}d}nMt |t r |j|}||}|td|z|}ddddddd|}|| kr.| dkr|}| }|| kr4|| ||j}n| ||}ddddddd|}| } | |||||j| <| | |S) a^Adds a dock to this area. ============== ================================================================= **Arguments:** dock The new Dock object to add. If None, then a new Dock will be created. position 'bottom', 'top', 'left', 'right', 'above', or 'below' relativeTo If relativeTo is None, then the new Dock is added to fill an entire edge of the window. If relativeTo is another Dock, then the new Dock is placed adjacent to it (or in a tabbed configuration for 'above' and 'below'). ============== ================================================================= All extra keyword arguments are passed to Dock.__init__() if *dock* is None. NzODock %s is not contained in a DockArea; cannot add another dock relative to it.vertical horizontaltab)r*r&leftrightabovebelowafterbeforer')r r orig_arear isinstancestrr getContainer TypeErrorr) container addContainerinsertnameapoptose) r"dockposition relativeTokwdsr:neighborneededContainer insertPosolds r#addDockzDockArea.addDocks" <<<$<>3C3Cu3L3L H!++--I inn.. . . --ot?PQQ  --oxHH      nny(333"& 499;; ? LLNNN r$c|dvrT|R|>|dkr|}||||dS)z; Move an existing Dock to a new location. )r/r0r&r*Nr.)r:r)rG)r"r?r@rCs r#moveDockzDockArea.moveDockps 9 9 9h>RW_WiWiWkWkWw}E}O}O}Q}Q}V}V}X}X\a}a}a))++H T8X.....r$c2||S|SN)r:)r"objs r#r8zDockArea.getContainerys ;K}}r$c|dkrt|}n;|dkrt|}n%|dkrt|}ntd|S)Nr,r-r.z5typ must be one of 'vertical', 'horizontal', or 'tab')r rr ValueError)r"typnews r# makeContainerzDockArea.makeContainer~sb *  T""CC L T""CC E\\T""CCTUU U r$c||}||}||d|||||j|S)zAdd a new container around objr4)rQr8r<rr)r"rOrLrPr:s r#r;zDockArea.addContainersm  %%%%c** h,,, ? JJsOOO ""$$$ r$c|j|jd|j|||||_|jdSrK)rcontainerChangedr addWidgetrr)r"rPposrCs r#r<zDockArea.insertsp   (   . .t 4 4 4 c""" T""" ""$$$$$r$c|jdSdS)Nrr)rr(s r#countzDockArea.counts   $1qr$c^|j|dSrK)r resizeOverlaysize)r"evs r# resizeEventzDockArea.resizeEvents& ##DIIKK00000r$c|jVtd|}|j|t |}||_|n|j}|S)NT)rr!)r!r r appendTempAreaWindowwinshow addTempArea)r"arearas r#rczDockArea.addTempAreasm 9 d666D N ! !$ ' ' ' &&CDH HHJJJJ9((**D r$c|}|j|||dddS)z@Removes *dock* from this DockArea and places it in a new window.r&N)rcraresizer[rI)r"r?rds r# floatDockzDockArea.floatDocksK!!  $$$ dE4(((((r$c|j||dSrK)r removewindowclose)r"rds r#removeTempAreazDockArea.removeTempAreas8 d### r$c|jd}n||j}|gd}|jD]}|j}||||f}|d | |f|S)zj Return a serialized (storable) representation of the state of all Docks in this DockArea.N)mainfloatro) r childStater rageometryxywidthheightr_ saveState)r"rnstateageos r#rvzDockArea.saveStates   $DD??4#455D++ 8 8A%..""C5577CEEGGSYY[[#**,,?C 'N ! !1;;==#"6 7 7 7 7 r$cnt|trd|ifSg}t|D]=}||||>||| fS)Nr?) r6r r=rangerXr_rpwidgetr)rv)r"rLchildsis r#rpzDockArea.childStates c4  9CHHJJ+ +F399;;'' > > doocjjmm<<====HHJJ 8 8r$errorc|\}}|jdd}|d||d||||dD]d}|}||dd||||jj|d|e|D]J} |dkr+|}|| d3| | |dK|D]} | |D]}|dS)a} Restore Dock configuration as generated by saveState. This function does not create any Docks--it will only restore the arrangement of an existing set of Docks. By default, docks that are described in *state* but do not exist in the dock area will cause an exception to be raised. This behavior can be changed by setting *missing* to 'ignore' or 'create'. Extra docks that are in the dockarea but that are not mentioned in *state* will be added to the bottom of the dockarea, unless otherwise specified by the *extra* argument. Nrnmissingrorrr2) findAllr buildFromStatercra setGeometryr>valuesrGrIrk) r"rwrextra containersroldTempssrxdcs r# restoreStatezDockArea.restoreStatesp"!LLNN E>!!!$ = $   f udG  L L Lw  A  ""A  QqT&\5!W  E E E AE qt $ $ JJLLLL . .A$$&& !W%%%% a----  A GGIIII  A JJLLLL  r$rc|\}}}|dkrd ||}||=nl#t$rJ|dkrtd|z|dkrt|}n|dkrYdStdYnwxYw||}||d|dkrO|D]} || |||d z|  |d ||dSdS) Nr?rz1Cannot restore dock state; no dock with name "%s"creater=ignorezA"missing" argument must be one of "error", "create", or "ignore".r3rrF) propagate) KeyError Exceptionr rNrQr<rr>r) r"rwrrootdepthrrOcontentsrLos r#rzDockArea.buildFromStatesS$Xu &== jHo(OO j j jg%%#$WZb$bccc((H---CC((FF$%hiii C  j$$S))C C!!! &== M M##Auc57G#LLLL LL5L ) ) )   U # # # # # =s ?A.A.-A.c<||j}|Og}i}|jD]C}|\}}||||Dt |t r|||<n|||t| D]Y}| |}||\} } || || Z||fSrK) rr rextendupdater6r r=r_r{rXr|) r"rLrrrxc1d1r~o2c2d2s r#rzDockArea.findAll$s ;#C 9AA^  B  c4  AchhjjMM _ HHSMMM399;;''  ZZ]]b))B  1v r$Tc|j|jdkr3d|_|jr#|j |j|dSdSdSdSNr)rrXrr!rl)r"rs r#r>zDockArea.apoptose<st   $(9(?(?(A(AQ(F(F $D ~ /$)"7 ((..... / /)G(F"7"7r$c|d}|D]}|dS)Nr)rrrk)r"rr?s r#clearzDockArea.clearEsD q!LLNN  D JJLLLL  r$c$|jj|dSrK)rdragEnterEventr"argss r#rzDockArea.dragEnterEventJ$ $d++++r$c$|jj|dSrK)r dragMoveEventrs r#rzDockArea.dragMoveEventMs# #T****r$c$|jj|dSrK)rdragLeaveEventrs r#rzDockArea.dragLeaveEventPrr$c$|jj|dSrK)r dropEventrs r#rzDockArea.dropEventSs &&&&r$Mainc2||}td|z|dtdn||dt|dD]%\}}||dd|z&dS)Nz=== %s dock area ===rnz (empty)rorzfloat %dr)rvprint_printAreaState enumerate printState)r"rwr=r~ros r#rzDockArea.printStateVs =NN$$E $t+,,, = ,      v / / /!%.11 ; ;HAu OOE!H:>O : : : : ; ;r$c |ddkr8td|z|dzdzt|ddzdStd|z|dz|dD]}|||dzdS)Nrr?z  r)rr7r)r"rdindentchs r#rzDockArea._printAreaStatebs 7f   $-$q')C/#d122h--? @ @ @ F $-$q') * * *1g 3 3$$R2222 3 3r$)NFN)Nr*N)NN)rr*)rr)NNN)T)Nr)r)__name__ __module__ __qualname__rr)rGrIr8rQr;r<rXr]rcrgrlrvrprrrr>rrrrrrrr'r$r#r r s QQQQf///      %%%% 111   )))  "999----^$$$$:0//// ,,,+++,,,''' ; ; ; ;333333r$r c$eZdZdZfdZxZS)r`c tjj|fi|tj|_||j|jdddd||_|j|dSr) rrr QGridLayoutrrrdockarearU)r"rdkwargss r#rzTempAreaWindow.__init__ns"4226222+--  t{### &&q!Q222  d#####r$c&|jd}|D],}t|dr|j|-|jtj|dS)Nrr5) rrrhasattrr5rGrsuper closeEvent)r"rrr? __class__s r#rzTempAreaWindow.closeEventvs %%''*LLNN / /Dt[)) /&&t... D!!!!r$)rrrrr __classcell__)rs@r#r`r`msG$$$"""""""""r$r`) rQtrrrrr r r rr r`r'r$r#rsDDDDDDDDDDDD`3`3`3`3`3y)+`3`3`3H """""Y&"""""r$