)L ik4 ddlmZddlmZmZmZddlmZddlm Z ddl m Z m Z ddl mZmZddlmZddlmZdd lmZmZmZmZmZmZmZdd lmZdd lmZm Z dd l!m"Z"dd l#m$Z$ddl%m&Z&ddgZ'eZ(GddZ)GddZ*y)) annotations)CallableIterableSequence)get_app) Condition)OneStyleAndTextTupleStyleAndTextTuples) KeyBindingsKeyBindingsBase) KeyPressEvent)Keys) AnyContainerConditionalContainer ContainerFloatFloatContainerHSplitWindow)FormattedTextControl) MouseEventMouseEventType) get_cwidth)Shadow)Border MenuContainerMenuItemcdeZdZdZ d d dZd dZd dZd ddZeddZ ddZ y)rzs :param floats: List of extra Float objects to display. :param menu_items: List of `MenuItem` objects. Nc^|_|_dg_t}td$fd }td$fd }|j d|d%fd }|j d|d%fd } |j d |d%fd } |j d ||j d |d%d } |j d||j d ||j d |d%fd } |j d|d%fd } |j d|d%fd }|j d |d%fd }|j dd%fd }t j|dd_tdjd_ jd}jd}jd}td$fd }ttj|gtddtt!||t|dddtt!||t fd z!t|dddtt!||t fd"z!g|xsgz|#_y)&Nrc4tjdk(SNrlen selected_menuselfsb/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/prompt_toolkit/widgets/menus.py in_main_menuz,MenuContainer.__init__..in_main_menu7st))*a/ /c4tjdkDSr"r#r&sr( in_sub_menuz+MenuContainer.__init__..in_sub_menu;st))*Q. .r*left)filtercXtdjddz jd<y)Nrr)maxr%eventr's r(_leftz%MenuContainer.__init__.._leftAs*$'4+=+=a+@1+D$ED  q !r*rightcttjdz jddzjd<y)Nrr)minr$ menu_itemsr%r1s r(_rightz&MenuContainer.__init__.._rightEs;$'DOO$q($*<*._downKs    % %a (r*zc-czc-gcL|jjjy)z Leave menu.N)applayout focus_last)r2s r(_cancelz'MenuContainer.__init__.._cancelOs II   ' ' )r*cltjdkDrjjyy)zGo back to parent menu.rN)r$r%popr1s r(_backz%MenuContainer.__init__.._backWs/ 4%%&*""&&(+r*cjtjdz jrjj dytjdk(rjdtj dz kr{t tj dz jddzg_j jdjrjj dyyyy)zgo into sub menu.rrN) _get_menur$r%childrenr<r7r6r1s r(_submenuz(MenuContainer.__init__.._submenu_s~~c$"4"459:CC""))!,D&&'1,&&q)C,@1,DDDOO,q0$2D2DQ2G!2KL&"??4#5#5a#89BB&&--a0C E-r*upc~jtjdz }jd}t|jDcgc]\}}||kr|j s|}}}|r|djd<ytjdk(rjj yycc}}w)z;Select previous (enabled) menu item or return to main menu.rGN)rHr$r% enumeraterIdisabledrD)r2menuindexiitemprevious_indexesr's r(_up_in_submenuz.MenuContainer.__init__.._up_in_submenups>>#d&8&8"9A"=>D&&r*E )7 Atu9T]]     )9")=""2&T''(A-""&&(. sB9cjtjdz }jd}t|jDcgc]\}}||kDr|j s|}}}|r|djd<yycc}}w)z Select next (enabled) menu item.rGrMrN)rHr$r%rNrIrO)r2rPrQrRrS next_indexesr's r(_down_in_submenuz0MenuContainer.__init__.._down_in_submenus>>#d&8&8"9A"=>D&&r*E )7Atu9T]]L )5a""2& sBentercjtjdz }|jr5|jj j |jyy)zClick the selected menu item.rN)rHr$r%handlerr?r@rA)r2rSr's r(_clickz&MenuContainer.__init__.._clicksN>>#d&8&8"9A"=>D||   ++- r*TF) key_bindings focusable show_cursorrclass:menu-bar)heightcontentstylerGcZtjjjk(SN)rr@current_windowwindowr&sr( has_focusz)MenuContainer.__init__..has_focuss 9##22dkkA Ar*)body)rbr.)xcursorycursorrbc4tjdk\Sr"r#r&sr(z(MenuContainer.__init__..C0B0B,Cq,Hr*)attach_to_windowrjrkallow_cover_cursorrbc4tjdk\S)NrGr#r&sr(rmz(MenuContainer.__init__..rnr*)rbfloatsr])returnbool)r2ErsNone)rir7r%r raddr_get_menu_fragmentscontrolrrgrJrrrrr container)r'rir7rrr]kbr)r,r3r8r=rBrErJrUrXr\submenusubmenu2submenu3rhs` r(__init__zMenuContainer.__init__)s $S]  0  0  /  / | , F - F   -  .  | , ) - ) l + l + * , , * { + k * k * ) + + , )   , 1 - 1 [ ) ) * )$ { + 9 , 9    ,  $ $2SX  At||CST --"==#==#  B  B(KK   0 &G 4Y%,  '+0 &H 5(#$HI J %-  '+0 &H 5(#$HI J '@|A B&U+ r*c|j|jd}t|jddD]\}}||ks |j|}|S#t$rt dcYcSwxYw)Nrrdebug)r7r%rNrI IndexErrorr)r'levelrPrRrQs r(rHzMenuContainer._get_menus}t11!45!$"4"4QR"89 -HAu5y-==/D - "-#G,,-sAA.-A.ctjjjsdg_dfd }g}t j D]\}}|j||||S)Nrc3Kdfd }dd|fjdk(r r dd|fd}nd}||j|fyw) Nc|jtjk(}|jtjk(s|rrt }|su|j j jr+jgk(r@|j jn%|j jjg_yyyre) event_typer MOUSE_MOVE MOUSE_DOWNrr@rhrgr%rAfocus) mouse_eventhoverr?focusedrRr's r( mouse_handlerzJMenuContainer._get_menu_fragments..one_item..mouse_handlers#...2K2KK**n.G.GG")C ::// <#11aS8 # 5 5 7JJ,,T[[9*+D& r*r` r[SetMenuPosition]class:menu-bar.selected-itemrrrsrv)r%text)rRrSrrcrr's` r(one_itemz3MenuContainer._get_menu_fragments..one_itemsX -"$S-8 8D&&q))g*B >>6(M1 1sAArRintrSrrszIterable[OneStyleAndTextTuple])rr@rhrgr%rNr7extend)r'rresultrRrSrs` @r(rxz!MenuContainer._get_menu_fragmentssp)"",,T[[9"#D  24&( 1 -GAt MM(1d+ , - r*c@dfd }tt|dS)Nc<g}tjkrljjrN|j dt j f|j dt jjdzzf|j dt jf|j d jdz dfd }tjD]\}}|j||||j dt jf|j dt jjdzzf|j dt jf|S#t$rdYwxYw)N class:menur rrMc3Kd fd }k(rdd}nd}dtjfjdk(r*|dztjjdzz|fn0|d jj jdz|fj r|d |fn|d |fk(rd dtjfd yw)NcVjry|jtjk(}|jtjk(s|r_t }|s7j r+|jjj yjddzgz_ yyr") rOrrrMOUSE_UPrr[r@rAr%)rrr?rRrSrr's r(rz[MenuContainer._submenu..get_text_fragments..one_item..mouse_handlers#}}!'$/$:$:n>W>W$WE + 6 6.:Q:Q Q#(&-i',$'JJ$9$9$;$(LLN9=9K9K(3%!):&)*:,D$6$)r*)z[SetCursorPosition]rrrr-zclass:menu-borderr>)rrrr)rVERTICALr HORIZONTALwidthljustrI)rRrSrrcrrP selected_itemr's`` r(rzDMenuContainer._submenu..get_text_fragments..one_items,,& -"==$BE$&E+V__==99+ %(; ;#)#4#4 Q#G"H -#!&"#DII; 5 5djj1n E -#  ==#(#}"==#(#}"== -";;+V__==((sCCr)r$r%rHrIr<rTOP_LEFTrr TOP_RIGHTrrNr BOTTOM_LEFT BOTTOM_RIGHT)rrrRrSrPrrr's @@r(get_text_fragmentsz2MenuContainer._submenu..get_text_fragments sk)+Fs4--..~~e,==MM<"ABMM<1B1BdjjSTn1U"VWMM<1A1A"BCMM*-+(,(:(:519(E 3)3)&.3)73)3)j$-T]]#;94 hq$&789MM<1C1C"DEMM<1B1BdjjSTn1U"VWMM<1D1D"EFM}&+(* +sF FFr)rcrsr )rr)r'rrs`` r(rJzMenuContainer._submenu s I V*+=>lSSr*c.|jjSre)rzrrr&s r(rrzMenuContainer.floatsYs~~$$$r*c|jSre)rzr&s r(__pt_container__zMenuContainer.__pt_container__]s ~~r*)NN) rirr7zlist[MenuItem]rrlist[Float] | Noner]zKeyBindingsBase | Nonersrv)rrrsrr)r)rrrsr)rsr)rsr) __name__ __module__ __qualname____doc__rrHrxrJpropertyrrrr*r(rr#sw&*/3 k k #k # k - k  k Z 'RLT\%%r*cHeZdZ d ddZeddZy)rNc`||_||_|xsg|_||_||_d|_yr;)rr[rIshortcutrOr)r'rr[rIrrOs r(rzMenuItem.__init__bs3   B     r*cT|jrtd|jDSy)Nc3FK|]}t|jywre)rr).0cs r( z!MenuItem.width..tsAaz!&&)As!r)rIr0r&s r(rzMenuItem.widthqs! ==A4==AA Ar*)rNNNF) rstrr[zCallable[[], None] | NonerIzlist[MenuItem] | NonerzSequence[Keys | str] | NonerOrtrsrv)rsr)rrrrrrrr*r(rrasf-1*.04  + (  .     r*N)+ __future__rtypingrrr"prompt_toolkit.application.currentrprompt_toolkit.filtersr"prompt_toolkit.formatted_text.baser r 'prompt_toolkit.key_binding.key_bindingsr r (prompt_toolkit.key_binding.key_processorr prompt_toolkit.keysr prompt_toolkit.layout.containersrrrrrrrprompt_toolkit.layout.controlsrprompt_toolkit.mouse_eventsrrprompt_toolkit.utilsrprompt_toolkit.widgetsrbaser__all__rurrrr*r(rsn"//6,WPB$@B+)  {{| r*