
    =Og                         	 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                     dS dS )    Nc                 h   	 |                      |dz   |t          j        ||z
  dz
             |                     ||dz   t          j        ||z
  dz
             |                     ||dz   t          j        ||z
  dz
             |                      |dz   |t          j        ||z
  dz
             |                     ||t          j                   |                     ||t          j                   |                     ||t          j                   |                     ||t          j	                   d S N   )
vlinecurses	ACS_VLINEhline	ACS_HLINEaddchACS_ULCORNERACS_URCORNERACS_LRCORNERACS_LLCORNER)winulyulxlrylrxs        '/usr/lib64/python3.11/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	dS )TextboxFc                     || _         || _        |                                  d| _        d | _        |                    d           d S r   )r   insert_mode_update_max_yxstripspaceslastcmdkeypad)selfr   r   s      r   __init__zTextbox.__init__+   sE    &

1r   c                 f    | j                                         \  }}|dz
  | _        |dz
  | _        d S r   )r   getmaxyxmaxymaxx)r    r$   r%   s      r   r   zTextbox._update_max_yx3   s3    X&&((
d1H	1H			r   c                 "   	 |                                   | j        }	 t          j                            | j                            ||                    t          j        j        k    rt          | j        |dz             }n|dk    rn|dz
  }q|S )NTr   r   )r   r%   r   asciir   inchSPmin)r    ylasts      r   _end_of_linezTextbox._end_of_line8   s    	@y	|!!$(--4"8"899V\_LL49d1f--!8D	 r   c                     |                                   | j                                        \  }}d }|| j        k     s|| j        k     r| j        r| j                                        }	 | j                            |           n# t          j	        $ r Y nw xY w| j        rt          j
                            |          sn:|}| j                                        \  }}|||f}|| j        k     || j        k     | | j        j        |  d S d S 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$)mmq49}} (r""""<   # 6<+?+?+F+F BX^^%%FQ~A! $)mmq49}}$ DHM6"""" s   *B BBc                 
   	 |                                   | j                                        \  }}|| _        t          j                            |          r-|| j        k     s|| j        k     r| 	                    |           n|t          j        j
        k    r| j                            |d           n|t          j        j        t          j        t          j        j        t          j        fv r|dk    r| j                            ||dz
             nf|dk    rn_| j        r5| j                            |dz
  |                     |dz
                       n#| j                            |dz
  | j                   |t          j        j        t          j        fv r| j                                         n|t          j        j        k    r| j                                         nY|t          j        j        k    rY| j        r0| j                            ||                     |                     n| j                            || j                   n|t          j        j        t          j        fv rX|| j        k     r | j                            ||dz              n|| j        k    rn| j                            |dz   d           nt|t          j        j        k    rdS |t          j        j        k    r8| j        dk    rdS || j        k     r| j                            |dz   d           n|t          j        j        k    rp|dk    r4|                     |          dk    r| j                                         n| j                            ||           | j                                         n|t          j        j        k    r| j                                         n[|t          j        j        t          j        fv rz|| j        k     rn| j                            |dz   |           ||                     |dz             k    r4| j                            |dz   |                     |dz                        n|t          j        j         k    r| j        !                                 n|t          j        j"        t          j#        fv rt|dk    rn| j                            |dz
  |           ||                     |dz
            k    r4| j                            |dz
  |                     |dz
                       dS )Nr   r   )$r   r   r0   r   r   r'   r2   r$   r%   r8   SOHr3   STXKEY_LEFTBSKEY_BACKSPACEr   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<## 9	?49}}DI++B///6<###HMM!QFL$V_flofFZ[[[1uua1%%%%a! .ac4#4#4QqS#9#9::::ac49---flov';<<<   6<###HNN6<### ,a!2!21!5!56666a++++FL$f&677749}}a1%%%%diac1%%%%6<###16<?""yA~~qTYac1%%%6<?""Avv$++A..!33!!#### a###!!####6<?""HFLOV_55549}}ac1%%%t((1----HMM!A#t'8'81'='=>>>6<?""HFL$fm4441uuac1%%%t((1----HMM!A#t'8'81'='=>>>qr   c                    	 d}|                                   t          | j        dz             D ]}| j                            |d           |                     |          }|dk    r| j        r@t          | j        dz             D ]Y}| j        r||k    r nI|t          t          j
        
                    | j                            ||                              z   }Z| j        dk    r|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ty{## 
	' 
	'AHMM!Q$$Q''DqyyT-y49Q;'' O O# DE#fl&8&8q!9L9L&M&M"N"NNy1}}$r   Nc                     	 	 | j                                         }|r ||          }|s*|                     |          sn| j                                          Y|                                 S r/   )r   getchrQ   rJ   rY   )r    validater4   s      r   editzTextbox.edit   s{    <	!!B "Xb\\ ??2&& H	 {{}}r   )Fr/   )
__name__
__module____qualname__r!   r   r-   r8   rQ   rY   r]    r   r   r   r      s        .     
  # # #2? ? ?B  "     r   r   __main__c                     d\  }}d\  }}|                      |dz
  |d           t          j        ||||          }t          | |dz
  |dz
  ||z   ||z              |                                  t          |                                          S )N)	      )         zUse Ctrl-G to end editing.r   )addstrr   newwinr   rJ   r   r]   )stdscrncolsnlinesr   r   r   s         r   test_editboxrn      s    vSc!eS">???mFE344&#a%QfcEkBBBs||  """r   zContents of text box:)
r   curses.asciir   r   r^   rn   wrapperstrprintreprra   r   r   <module>rt      s    @     - - -i i i i i i i iV z# # # &.
&
&C	E
!4499----- r   