Your IP : 172.28.240.42


Current Path : /usr/lib/python2.7/curses/
Upload File :
Current File : //usr/lib/python2.7/curses/textpad.pyc


|_c@stdZddlZddlZdZdd	dYZedkrpdZejeZdGe	eGHndS(
s:Simple textbox editing widget with Emacs-like keybindings.iNcCs|j|d|tj||d|j||dtj||d|j||dtj||d|j|d|tj||d|j||tj|j||tj|j||tj|j||tj	dS(s^Draw a rectangle with corners at the provided upper-left
    and lower-right coordinates.
    iN(
tvlinetcursest	ACS_VLINEthlinet	ACS_HLINEtaddchtACS_ULCORNERtACS_URCORNERtACS_LRCORNERtACS_LLCORNER(twintulytulxtlrytlrx((s$/usr/lib/python2.7/curses/textpad.pyt	rectangles%%%%tTextboxcBsJeZdZedZdZdZdZdZddZ
RS(sdEditing 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
    cCsm||_||_|j\|_|_|jd|_|jd|_d|_d|_|jddS(Ni(	R
tinsert_modetgetmaxyxtmaxytmaxxtstripspacestNonetlastcmdtkeypad(tselfR
R((s$/usr/lib/python2.7/curses/textpad.pyt__init__+s				cCs{|j}xktrvtjj|jj||tjjkrYt|j|d}Pn|dkriPn|d}qW|S(suGo to the location of the first blank on the given line,
        returning the index of the last non-blank character.ii(RtTrueRtasciiR
tinchtSPtmin(Rtytlast((s$/usr/lib/python2.7/curses/textpad.pyt_end_of_line5s		-cCs|jj\}}||jks3||jkr|jrN|jj}ny|jj|Wntjk
rxnX|jr|jj\}}tj	j
|r|j||jj||qqndS(N(
R
tgetyxRRRRRRterrorRtisprintt_insert_printable_chartmove(RtchR txtoldchtbackytbackx((s$/usr/lib/python2.7/curses/textpad.pyR&Bs		
cCse|jj\}}||_tjj|ra||jksN||jkra|j|qan|tjj	kr|jj
|dn|tjjtjtjj
tjfkr`|dkr|jj
||dnY|dkrnJ|jr|jj
|d|j|dn|jj
|d|j|tjj
tjfkra|jjqan|tjjkr|jjn|tjjkr|jr|jj
||j|qa|jj
||jn|tjjtjfkrE||jkr|jj
||dqa||jkr+qa|jj
|ddn|tjjkr[dS|tjjkr|jdkrdS||jkra|jj
|ddqan|tjjkr|dkr|j|dkr|jjqa|jj
|||jjnO|tjjkr4|jjn-|tjjtjfkr||jkra|jj
|d|||j|dkr|jj
|d|j|dqqan|tjjkr|jj n|tjj!tj"fkra|dkra|jj
|d|||j|dkr^|jj
|d|j|dq^qandS(s!Process a single editing command.ii(#R
R#RRRR%RRR&tSOHR'tSTXtKEY_LEFTtBSt
KEY_BACKSPACERR"tdelchtEOTtENQtACKt	KEY_RIGHTtBELtNLtVTtdeletelntclrtoeoltFFtrefreshtSOtKEY_DOWNtSItinsertlntDLEtKEY_UP(RR(R R)((s$/usr/lib/python2.7/curses/textpad.pyt
do_commandTsp	*	'	!--c
Csd}xt|jdD]}|jj|d|j|}|dkr]|jr]qnx_t|jdD]J}|jr||krPn|ttj	j	|jj
||}qqW|jdkr|d}qqW|S(s.Collect and return the contents of the window.tiis
(trangeRR
R'R"RRtchrRRR(RtresultR tstopR)((s$/usr/lib/python2.7/curses/textpad.pytgathers/cCs`xS|jj}|r'||}n|s3qn|j|sFPn|jjq|jS(s2Edit in the widget window and collect the results.(R
tgetchRDR=RJ(RtvalidateR(((s$/usr/lib/python2.7/curses/textpad.pyteditsN(t__name__t
__module__t__doc__tFalseRR"R&RDRJRRM(((s$/usr/lib/python2.7/curses/textpad.pyRs
	
		@	t__main__cCsd\}}d	\}}|j|d|dtj||||}t||d|d|||||jt|jS(
Ni	iiiisUse Ctrl-G to end editing.i(i	i(ii(taddstrRtnewwinRR=RRM(tstdscrtncolstnlinesRRR
((s$/usr/lib/python2.7/curses/textpad.pyttest_editboxs&
sContents of text box:((
RPRtcurses.asciiRRRNRXtwrappertstrtrepr(((s$/usr/lib/python2.7/curses/textpad.pyt<module>s