
    @OOf                        d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlmZ  G d dej                  ej                        Z	 G d d	ej                        Z G d
 dej                        Z G d dej                  ej                        Z G d dej                  ej                        Z G d dej                  ej                        Zy)    N)
grideditor)keymap)layoutwidget)signalsc                   H     e Zd Zd fd	Zed        Zd Zd Zd Zd Z	 xZ
S )SimpleOverlayc                 L    || _         || _        t        |   ||d||d       y )Ncenterpack)alignwidthvalignheight)widgetmastersuper__init__)selfr   r   parentr   r   	__class__s         `/var/www/premiumrankchecker/venv/lib/python3.12/site-packages/mitmproxy/tools/console/overlay.pyr   zSimpleOverlay.__init__   s0    F(%v 	 	
    c                 .    t        | j                  d      S )Nkeyctx)getattrr   r   s    r   r   zSimpleOverlay.keyctx   s    t{{H--r   c                 6    | j                   j                         S N)r   key_responderr   s    r   r   zSimpleOverlay.key_responder       {{((**r   c                 6    | j                   j                         S r   )r   focus_changedr   s    r   r"   zSimpleOverlay.focus_changed   r    r   c                 6    | j                   j                         S r   )r   view_changedr   s    r   r$   zSimpleOverlay.view_changed   s    {{''))r   c                 6    | j                   j                         S r   )r   layout_poppingr   s    r   r&   zSimpleOverlay.layout_popping    s    {{))++r   )middle)__name__
__module____qualname__r   propertyr   r   r"   r$   r&   __classcell__r   s   @r   r   r      s0    
 . .++*,r   r   c                   *     e Zd Z fdZd Zd Z xZS )Choicec           	          |r|rdnd}||fd|g}nd|z   }|r|rdnd}n|rdnd}t         |   t        j                  t        j                  t        j
                  |            |             y )	Noption_selected_keykeyz) z   option_active_selectedoption_activeoption_selectedtext)r   r   urwidAttrWrapPaddingText)r   txtfocuscurrentshortcutselection_typesr   s          r   r   zChoice.__init__%   sq    6;2N"H-tS9C#+C,1(A%*!ANNejjo.	
r   c                      yNT r   s    r   
selectablezChoice.selectable6       r   c                     |S r   rC   )r   sizer2   s      r   keypresszChoice.keypress9   s    
r   )r(   r)   r*   r   rD   rH   r,   r-   s   @r   r/   r/   $   s    
"r   r/   c                   :    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
y	)
ChooserListWalker"123456789abcdefghijklmnoprstuvwxyzc                 .    d| _         || _        || _        y )Nr   )indexchoicesr=   )r   rN   r=   s      r   r   zChooserListWalker.__init__@   s    
r   c           	      v    | j                   |   }t        |||| j                  k(  | j                  ||dz          S N   )rN   r/   r=   	shortcuts)r   idxr<   cs       r   _getzChooserListWalker._getE   s9    LLaT\\ 14>>#a3PQQr   c                     || _         y r   )rM   )r   rM   s     r   	set_focuszChooserListWalker.set_focusI   s	    
r   c                 R    | j                  | j                  d      | j                  fS rB   )rU   rM   r   s    r   	get_focuszChooserListWalker.get_focusL   s     yyT*DJJ66r   c                 l    |t        | j                        dz
  k\  ry|dz   }| j                  |d      |fS )NrQ   NNF)lenrN   rU   r   poss     r   get_nextzChooserListWalker.get_nextO   s:    #dll#a''Agyye$c))r   c                 @    |dz
  }|dk  ry| j                  |d      |fS )NrQ   r   r[   F)rU   r]   s     r   get_prevzChooserListWalker.get_prevU   s+    Ag7yye$c))r   c                 p    t        | j                        D ]  \  }}|| j                  ||dz    k(  s|c S  y rP   )	enumeraterN   rR   )r   r>   ichoices       r   choice_by_shortcutz$ChooserListWalker.choice_by_shortcut[   s?    "4<<0 	IAv4>>!a!e44	 r   N)r(   r)   r*   rR   r   rU   rW   rY   r_   ra   rf   rC   r   r   rJ   rJ   =   s+    4I
R7**r   rJ   c                   2     e Zd ZdZ fdZd Z fdZ xZS )Chooserchooserc                    || _         || _        || _        t        d |D              }t        |t	        |            dz   | _        t        ||      | _        t        | %  t        j                  t        j                  t        j                  t        j                  | j                        t	        |            |      d             y )Nc              3   2   K   | ]  }t        |        y wr   )r\   ).0rd   s     r   	<genexpr>z#Chooser.__init__.<locals>.<genexpr>i   s     2Q#a&2s      title
background)r   rN   callbackmaxr\   r   rJ   walkerr   r   r7   r8   LineBox
BoxAdapterListBox)r   r   rp   rN   r=   rr   choicewidthr   s          r   r   zChooser.__init__e   s     2'22c%j1A5
'9NN$$U]]4;;%?WN 	
r   c                      yrB   rC   r   s    r   rD   zChooser.selectablew   rE   r   c                    | j                   j                  j                  d|      }| j                  j	                  |      }|r0| j                  |       t        j                  j                          y |dk(  rQ| j                  | j                  | j                  j                            t        j                  j                          y |dv rt        j                  j                          y | j                   j                  j                  d|      }|rB|j                  j                  d      r'| j                   j                  j                  d|       y |t        j                  v rt         | E  ||      S y )Nri   m_select)qescglobalzconsole.nav)r   r   handle_onlyrt   rf   rr   r   pop_view_statesendrN   rM   getcommand
startswithhandlenavkeysr   rH   )r   rG   r2   re   bindingr   s        r   rH   zChooser.keypressz   s   kk  ,,Y<//4MM&!""'')*MM$,,t{{'8'89:""'')L ""'')++$$((37w11-@KK%%h4FNN"7#D#.. #r   )r(   r)   r*   r   r   rD   rH   r,   r-   s   @r   rh   rh   b   s    F
$/ /r   rh   c                   .     e Zd ZdZ fdZd Zd Z xZS )OptionsOverlayr   c                 d   |j                   j                         \  }}t        j                  |||      | _        t
        |   t        j                  t        j                  t        j                  | j                  ||z
        |      d             t        j                  |dz        | _        y)?
        vspace: how much vertical space to keep clear
        ro   rq   皙?N)uiget_cols_rowsr   OptionsEditorger   r   r7   r8   ru   rv   mathceilr   )r   r   namevalsvspacecolsrowsr   s          r   r   zOptionsOverlay.__init__   s     YY,,.
d**64>NNe..twwvFdS	
 YYtcz*
r   c                 6    | j                   j                         S r   r   r   r   s    r   r   zOptionsOverlay.key_responder       ww$$&&r   c                 6    | j                   j                         S r   r   r&   r   s    r   r&   zOptionsOverlay.layout_popping       ww%%''r   r(   r)   r*   r   r   r   r&   r,   r-   s   @r   r   r          F+'(r   r   c                   .     e Zd ZdZ fdZd Zd Z xZS )DataViewerOverlay
dataviewerc                 b   |j                   j                         \  }}t        j                  ||      | _        t
        |   t        j                  t        j                  t        j                  | j                  |dz
        d      d             t        j                  |dz        | _        y)r      zData viewerro   rq   r   N)r   r   r   
DataViewerr   r   r   r7   r8   ru   rv   r   r   r   )r   r   r   r   r   r   s        r   r   zDataViewerOverlay.__init__   s     YY,,.
d''5NNe..twwqAW	
 YYtcz*
r   c                 6    | j                   j                         S r   r   r   s    r   r   zDataViewerOverlay.key_responder   r   r   c                 6    | j                   j                         S r   r   r   s    r   r&   z DataViewerOverlay.layout_popping   r   r   r   r-   s   @r   r   r      r   r   r   )r   r7   mitmproxy.tools.consoler   r   r   r   OverlayLayoutWidgetr   
WidgetWrapr/   
ListWalkerrJ   rh   r   r   rC   r   r   <module>r      s      . * 0 +,EMM<#<#< ,2U 2"(( "J,/e 9 9 ,/^(U%%|'@'@ (0(((,*C*C (r   