
    z%iJ                         	 d dl Z d dlZ d Z G d d      Zedk(  r%d Z e j                  e      Z ed e	e             yy)    Nc                 f   	 | j                  |dz   |t        j                  ||z
  dz
         | j                  ||dz   t        j                  ||z
  dz
         | j                  ||dz   t        j                  ||z
  dz
         | j                  |dz   |t        j                  ||z
  dz
         | j                  ||t        j                         | j                  ||t        j                         | j                  ||t        j                         | j                  ||t        j                         y N   )
vlinecurses	ACS_VLINEhline	ACS_HLINEaddchACS_ULCORNERACS_URCORNERACS_LRCORNERACS_LLCORNER)winulyulxlrylrxs        B/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/curses/textpad.py	rectangler      s     IIc!eS&**C#IM:IIc3q5&**C#IM:IIc3q5&**C#IM:IIc!eS&**C#IM:IIc3++,IIc3++,IIc3++,IIc3++,    c                   <    e Zd Z	 d	dZd Zd Zd Zd Zd Zd
dZ	y)Textboxc                 ~    || _         || _        | j                          d| _        d | _        |j                  d       y r   )r   insert_mode_update_max_yxstripspaceslastcmdkeypad)selfr   r   s      r   __init__zTextbox.__init__+   s7    &

1r   c                 f    | j                   j                         \  }}|dz
  | _        |dz
  | _        y r   )r   getmaxyxmaxymaxx)r    r$   r%   s      r   r   zTextbox._update_max_yx3   s.    XX&&(
d1H	1H	r   c                 :   	 | j                          | j                  }	 t        j                  j                  | j                  j                  ||            t        j                  j                  k7  rt        | j                  |dz         }	 |S |dk(  r	 |S |dz
  }~)Nr   r   )r   r%   r   asciir   inchSPmin)r    ylasts      r   _end_of_linezTextbox._end_of_line8   s    	@yy||!!$((--4"89V\\__L499d1f-   !8D r   c                 n   | j                          | j                  j                         \  }}d }|| j                  k  s|| j                  k  r| j
                  r| j                  j                         }	 | j                  j                  |       | j
                  rt        j                  j                        snE|}| j                  j                         \  }}|||f}|| j                  k  r|| j                  k  r| | j                  j                  |  y y # t        j                  $ r Y w xY wN)r   r   getyxr$   r%   r   r(   r   r   errorr'   isprintmove)r    chr+   xbackyxoldchs         r   _insert_printable_charzTextbox._insert_printable_charF   s    !A$))mq499}r" ##6<<+?+?+FBXX^^%FQ~A! $))mq499}$ DHHMM6"  << s   5D D43D4c                    	 | j                          | j                  j                         \  }}|| _        t        j
                  j                  |      r0|| j                  k  s|| j                  k  r| j                  |       y|t        j
                  j                  k(  r| j                  j                  |d       y|t        j
                  j                  t        j                  t        j
                  j                  t        j                  t        j
                  j                   fv r|dkD  r | j                  j                  ||dz
         nm|dk(  rng| j"                  r2| j                  j                  |dz
  | j%                  |dz
               n)| j                  j                  |dz
  | j                         |t        j
                  j                  t        j                  t        j
                  j                   fv r| j                  j'                          y|t        j
                  j(                  k(  r| j                  j'                          y|t        j
                  j*                  k(  r_| j"                  r,| j                  j                  || j%                  |             y| j                  j                  || j                         y|t        j
                  j,                  t        j.                  fv r`|| j                  k  r | j                  j                  ||dz          y|| j                  k(  r	 y| j                  j                  |dz   d       y|t        j
                  j0                  k(  ry|t        j
                  j2                  k(  r?| j                  dk(  ry|| j                  k  r| j                  j                  |dz   d       y|t        j
                  j4                  k(  rk|dk(  r/| j%                  |      dk(  r| j                  j7                          y| j                  j                  ||       | j                  j9                          y|t        j
                  j:                  k(  r| j                  j=                          y|t        j
                  j>                  t        j@                  fv rw|| j                  k  rg| j                  j                  |dz   |       || j%                  |dz         kD  r1| j                  j                  |dz   | j%                  |dz                y|t        j
                  jB                  k(  r| j                  jE                          y|t        j
                  jF                  t        jH                  fv rl|dkD  rg| j                  j                  |dz
  |       || j%                  |dz
        kD  r1| j                  j                  |dz
  | j%                  |dz
               y)Nr   r   )%r   r   r0   r   r   r'   r2   r$   r%   r8   SOHr3   STXKEY_LEFTBSKEY_BACKSPACEDELr   r-   delchEOTENQACK	KEY_RIGHTBELNLVTdeletelnclrtoeolFFrefreshSOKEY_DOWNSIinsertlnDLEKEY_UP)r    r4   r+   r5   s       r   
do_commandzTextbox.do_command_   s   +!A<<#499}DII++B/v u 6<<###HHMM!Qr q FLL$$V__LLOO((LL$$& & 1ua1%a!!ac4#4#4QqS#9:ac499-flloov';';V\\=M=MNN V U 6<<###HHNNR Q 6<<###a!2!21!56L I a+H G FLL$$f&6&677499}a1%B A dii> ; ac1%: 9 6<<###6<<??"yyA~TYYac1%, + 6<<??"Av$++A.!3!!#& ! a#!!#  6<<??"HH  FLLOOV__55499}ac1%t((1--HHMM!A#t'8'81'=>  6<<??"HH  FLL$$fmm441uac1%t((1--HHMM!A#t'8'81'=>r   c                    	 d}| j                          t        | j                  dz         D ]  }| j                  j	                  |d       | j                  |      }|dk(  r| j                  rBt        | j                  dz         D ]Z  }| j                  r||kD  r nG|t        t        j                  j                  | j                  j                  ||                  z   }\ | j                  dkD  s|dz   } |S )N r   r   
)r   ranger$   r   r3   r-   r   r%   chrr   r'   r(   )r    resultr+   stopr5   s        r   gatherzTextbox.gather   s    8tyy{# 
	'AHHMM!Q$$Q'DqyT--499Q;' O##D#fll&8&8q!9L&M"NNO yy1}$
	' r   Nc                     	 	 | j                   j                         }|r ||      }|s(| j                  |      s	 | j	                         S | j                   j                          dr/   )r   getchrR   rK   rZ   )r    validater4   s      r   editzTextbox.edit   s\    <!Bb\??2&{{} HH r   )Fr/   )
__name__
__module____qualname__r!   r   r-   r8   rR   rZ   r^    r   r   r   r      s,    .
#2BH"r   r   __main__c                     d\  }}d\  }}| j                  |dz
  |d       t        j                  ||||      }t        | |dz
  |dz
  ||z   ||z          | j	                          t        |      j                         S )N)	      )         zUse Ctrl-G to end editing.r   )addstrr   newwinr   rK   r   r^   )stdscrncolsnlinesr   r   r   s         r   test_editboxro      sz    vSc!eS">?mmFE34&#a%QfcEkBs|  ""r   zContents of text box:)
r   curses.asciir   r   r_   ro   wrapperstrprintreprrb   r   r   <module>ru      sU    @  -l l\ z# &..
&C	
!49- r   