ok

Mini Shell

Direktori : /lib64/python3.6/curses/__pycache__/
Upload File :
Current File : //lib64/python3.6/curses/__pycache__/textpad.cpython-36.pyc

3


 \��@sVdZddlZddlZdd�ZGdd�d�ZedkrRdd	�Zeje�Ze	d
e
e��dS)z:Simple textbox editing widget with Emacs-like keybindings.�NcCs�|j|d|tj||d�|j||dtj||d�|j||dtj||d�|j|d|tj||d�|j||tj�|j||tj�|j||tj�|j||tj	�dS)z^Draw a rectangle with corners at the provided upper-left
    and lower-right coordinates.
    �N)
Zvline�cursesZ	ACS_VLINEZhlineZ	ACS_HLINE�addchZACS_ULCORNERZACS_URCORNERZACS_LRCORNERZACS_LLCORNER)�win�uly�ulxZlryZlrx�r�&/usr/lib64/python3.6/curses/textpad.py�	rectanglesr
c@sLeZdZdZddd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	ddd�Z
dS)�TextboxadEditing widget using the interior of a window object.
     Supports the following Emacs-like key bindings:

    Ctrl-A      Go to left edge of window.
    Ctrl-B      Cursor left, wrapping to previous line if appropriate.
    Ctrl-D      Delete character under cursor.
    Ctrl-E      Go to right edge (stripspaces off) or end of line (stripspaces on).
    Ctrl-F      Cursor right, wrapping to next line when appropriate.
    Ctrl-G      Terminate, returning the window contents.
    Ctrl-H      Delete character backward.
    Ctrl-J      Terminate if the window is 1 line, otherwise insert newline.
    Ctrl-K      If line is blank, delete it, otherwise clear to end of line.
    Ctrl-L      Refresh screen.
    Ctrl-N      Cursor down; move down one line.
    Ctrl-O      Insert a blank line at cursor location.
    Ctrl-P      Cursor up; move up one line.

    Move operations do nothing if the cursor is at an edge where the movement
    is not possible.  The following synonyms are supported where possible:

    KEY_LEFT = Ctrl-B, KEY_RIGHT = Ctrl-F, KEY_UP = Ctrl-P, KEY_DOWN = Ctrl-N
    KEY_BACKSPACE = Ctrl-h
    FcCs.||_||_|j�d|_d|_|jd�dS)Nr)r�insert_mode�_update_max_yx�stripspaces�lastcmdZkeypad)�selfrrrrr	�__init__+szTextbox.__init__cCs&|jj�\}}|d|_|d|_dS)Nr)rZgetmaxyx�maxy�maxx)rrrrrr	r
3s
zTextbox._update_max_yxcCs\|j�|j}xHtjj|jj||��tjjkrBt|j|d�}Pn
|dkrLP|d}qW|S)zuGo to the location of the first blank on the given line,
        returning the index of the last non-blank character.rr)r
rr�asciir�inchZSP�min)r�yZlastrrr	�_end_of_line8szTextbox._end_of_linecCs�|j�|jj�\}}d}x�||jks0||jkr�|jr@|jj�}y|jj|�Wntj	k
rfYnX|js~tj
j|�r�P|}|jj�\}}|dkr||f}qW|dk	r�|jj|�dS)N)
r
r�getyxrrrrrr�errorr�isprint�move)r�chr�xZbackyxZoldchrrr	�_insert_printable_charFs$
zTextbox._insert_printable_charcCsV|j�|jj�\}}||_tjj|�rJ||jks<||jkrF|j	|��n|tjj
krh|jj|d��n�|tjjtj
tjjtjfk�r|dkr�|jj||d�nB|dkr�n8|jr�|jj|d|j|d��n|jj|d|j�|tjjtjfk�rR|jj��nL|tjjk�r"|jj��n0|tjjk�rb|j�rN|jj||j|��n|jj||j��n�|tjjtjfk�r�||jk�r�|jj||d�n ||jk�r�n|jj|dd��n�|tjjk�r�dS|tjjk�r|jdk�r�dS||jk�rR|jj|dd��nF|tjjk�rZ|dk�r@|j|�dk�r@|jj�n|jj||�|jj�n�|tjjk�rt|jj�n�|tjjtjfk�r�||jk�rR|jj|d|�||j|d�k�rR|jj|d|j|d��nz|tjj k�r�|jj!�n`|tjj"tj#fk�rR|dk�rR|jj|d|�||j|d�k�rR|jj|d|j|d��dS)z!Process a single editing command.rr)$r
rrrrrrrrrZSOHrZSTXZKEY_LEFTZBSZ
KEY_BACKSPACErrZdelchZEOTZENQZACKZ	KEY_RIGHTZBEL�NLZVTZdeletelnZclrtoeolZFF�refresh�SOZKEY_DOWNZSIZinsertlnZDLEZKEY_UP)rrrrrrr	�
do_command_sr
zTextbox.do_commandcCs�d}|j�x�t|jd�D]�}|jj|d�|j|�}|dkrH|jrHqxDt|jd�D]2}|jrl||krlP|tt	j
j
|jj||���}qXW|jdkr|d}qW|S)z.Collect and return the contents of the window.�rr�
)r
�rangerrrrrr�chrrrr)r�resultr�stoprrrr	�gather�s
"
zTextbox.gatherNcCs@x6|jj�}|r||�}|sq|j|�s*P|jj�qW|j�S)z2Edit in the widget window and collect the results.)rZgetchr#r!r*)rZvalidaterrrr	�edit�s

zTextbox.edit)F)N)�__name__�
__module__�__qualname__�__doc__rr
rrr#r*r+rrrr	rs
Ar�__main__cCsfd\}}d	\}}|j|d|d�tj||||�}t||d|d||||�|j�t|�j�S)
N�	����zUse Ctrl-G to end editing.r)r1r2)r3r4)ZaddstrrZnewwinr
r!rr+)ZstdscrZncolsZnlinesrrrrrr	�test_editbox�s r6zContents of text box:)r/rZcurses.asciir
rr,r6�wrapper�str�print�reprrrrr	�<module>s
,	


Zerion Mini Shell 1.0