
    kj                        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                   l     e Zd Zd fd	Zed        Zej                  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         h/home/ubuntu/.cache/pipx/cdb5059130eadca/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                     t         N)RuntimeError)r   values     r   r   zSimpleOverlay.keyctx   s    r   c                 6    | j                   j                         S r   )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   setterr"   r%   r'   r)   __classcell__r   s   @r   r   r      sH    
 . . ]] ++*,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AttrMap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MMejjo.	
r   c                      yNT r   s    r   
selectablezChoice.selectable;       r   c                     |S r   rG   )r   sizer6   s      r   keypresszChoice.keypress>   s    
r   )r+   r,   r-   r   rH   rL   r0   r1   s   @r   r3   r3   )   s    
"r   r3   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choicesrA   )r   rR   rA   s      r   r   zChooserListWalker.__init__E   s    
r   c           	      v    | j                   |   }t        |||| j                  k(  | j                  ||dz          S N   )rR   r3   rA   	shortcuts)r   idxr@   cs       r   _getzChooserListWalker._getJ   s9    LLaT\\ 14>>#a3PQQr   c                     || _         y r   )rQ   )r   rQ   s     r   	set_focuszChooserListWalker.set_focusN   s	    
r   c                 R    | j                  | j                  d      | j                  fS rF   )rY   rQ   r   s    r   	get_focuszChooserListWalker.get_focusQ   s     yyT*DJJ66r   c                 l    |t        | j                        dz
  k\  ry|dz   }| j                  |d      |fS )NrU   NNF)lenrR   rY   r   poss     r   get_nextzChooserListWalker.get_nextT   s:    #dll#a''Agyye$c))r   c                 @    |dz
  }|dk  ry| j                  |d      |fS )NrU   r   r_   F)rY   ra   s     r   get_prevzChooserListWalker.get_prevZ   s+    Ag7yye$c))r   c                 p    t        | j                        D ]  \  }}|| j                  ||dz    k(  s|c S  y rT   )	enumeraterR   rV   )r   rB   ichoices       r   choice_by_shortcutz$ChooserListWalker.choice_by_shortcut`   s?    "4<<0 	IAv4>>!a!e44	 r   N)r+   r,   r-   rV   r   rY   r[   r]   rc   re   rj   rG   r   r   rN   rN   B   s+    4I
R7**r   rN   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`   ).0rh   s     r   	<genexpr>z#Chooser.__init__.<locals>.<genexpr>n   s     2Q#a&2s      title
background)r   rR   callbackmaxr`   r   rN   walkerr   r   r;   r<   LineBox
BoxAdapterListBox)r   r   rt   rR   rA   rv   choicewidthr   s          r   r   zChooser.__init__j   s     2'22c%j1A5
'9MM$$U]]4;;%?WN 	
r   c                      yrF   rG   r   s    r   rH   zChooser.selectable|   rI   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 )Nrm   m_select)qescglobalzconsole.nav)r   r   handle_onlyrx   rj   rv   r   pop_view_statesendrR   rQ   getcommand
startswithhandlenavkeysr   rL   )r   rK   r6   ri   bindingr   s        r   rL   zChooser.keypress   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   rH   rL   r0   r1   s   @r   rl   rl   g   s    F
$/ /r   rl   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
        rs   ru   皙?N)uiget_cols_rowsr   OptionsEditorger   r   r;   r<   ry   rz   mathceilr   )r   r   namevalsvspacecolsrowsr   s          r   r   zOptionsOverlay.__init__   s     YY,,.
d**64>MM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)   r0   r1   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 viewerrs   ru   r   N)r   r   r   
DataViewerr   r   r   r;   r<   ry   rz   r   r   r   )r   r   r   r   r   r   s        r   r   zDataViewerOverlay.__init__   s     YY,,.
d''5MM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   r1   s   @r   r   r      r   r   r   )r   r;   mitmproxy.tools.consoler   r   r   r   OverlayLayoutWidgetr   
WidgetWrapr3   
ListWalkerrN   rl   r   r   rG   r   r   <module>r      s      . * 0 +,EMM<#<#< ,<U 2"(( "J,/e 9 9 ,/^(U%%|'@'@ (0(((,*C*C (r   