eJSrSSKrSSKrSr"SS5r\S:Xa%Sr\R"\5r\ "S\ "\55 gg) z:Simple textbox editing widget with Emacs-like keybindings.NcPURUS-U[RX1- S- 5 URXS-[RXB- S- 5 URX2S-[RXB- S- 5 URUS-U[RX1- S- 5 UR X[R 5 UR X[R5 UR X4[R5 UR X2[R5 g)zVDraw a rectangle with corners at the provided upper-left and lower-right coordinates. N) vlinecurses ACS_VLINEhline ACS_HLINEaddch ACS_ULCORNER ACS_URCORNER ACS_LRCORNER ACS_LLCORNER)winulyulxlrylrxs 4/opt/imh/python3.13/lib/python3.13/curses/textpad.py rectanglersIIc!eS&**CIM:IIcq5&**CIM:IIcq5&**CIM:IIc!eS&**CIM:IIc++,IIc++,IIc++,IIc++,cJ\rSrSrSrS SjrSrSrSrSr Sr S S jr S r g )TextboxaEditing 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 czXlX lUR5 SUlSUlUR S5 gNr)r insert_mode_update_max_yx stripspaceslastcmdkeypad)selfrrs r__init__Textbox.__init__+s3&   1 rcdURR5upUS- UlUS- Ulgr)rgetmaxyxmaxymaxx)r!r&r's rrTextbox._update_max_yx3s,XX&&( 1H 1H rc<UR5 URn[RRURR X55[RR :wa[URUS-5nU$US:XaU$US- nM)zmGo to the location of the first blank on the given line, returning the index of the last non-blank character.rr)rr'rasciirinchSPmin)r!ylasts r _end_of_lineTextbox._end_of_line8s yy||!!$((--"89V\\__L499d1f-  !8D rcUR5 URR5up#SnX R:dX0R:aUR (aURR 5nURRU5 UR (a$[RRW5(dOFUnURR5up#UcX#4nX R:aMX0R:aMUbURR"U6 gg![Ra Nf=fN) rrgetyxr&r'rr+r rerrorr*isprintmove)r!chr.xbackyxoldchs r_insert_printable_charTextbox._insert_printable_charFs !))mq99}  r"##6<<+?+?+F+FBXX^^%FQ~!))mq99}$   HHMM6 " <<  s9D..EEc\ UR5 URR5up#Xl[R R U5(a0X R:dX0R:aURU5 gU[R R:XaURRUS5 gU[R R[R[R R[R[R R 4;aUS:aURRX#S- 5 OsUS:XaOlUR"(a2URRUS- UR%US- 55 O)URRUS- UR5 U[R R[R[R R 4;aURR'5 gU[R R(:XaURR'5 gU[R R*:XacUR"(a+URRX R%U55 gURRX R5 gU[R R,[R.4;a`X0R:aURRX#S-5 gX R:XagURRUS-S5 gU[R R0:XagU[R R2:Xa@URS:XagX R:aURRUS-S5 gU[R R4:XamUS:Xa0UR%U5S:XaURR75 gURRX#5 URR95 gU[R R::XaURR=5 gU[R R>[R@4;awX R:agURRUS-U5 X0R%US-5:a1URRUS-UR%US-55 gU[R RB:XaURRE5 gU[R RF[RH4;amUS:agURRUS- U5 X0R%US- 5:a1URRUS- UR%US- 55 g)z!Process a single editing command.rr)%rrr4rrr*r6r&r'r<SOHr7STXKEY_LEFTBS KEY_BACKSPACEDELrr0delchEOTENQACK KEY_RIGHTBELNLVTdeletelnclrtoeolFFrefreshSOKEY_DOWNSIinsertlnDLEKEY_UP)r!r8r.r9s r do_commandTextbox.do_command_sp ! <<   # #99}II ++B/vu6<<## # HHMM!Q rqFLL$$V__LLOO((LL$$&&1u a1%a!! ac4#4#4QqS#9: ac499-flloov';';V\\=M=MNN VU6<<## # HHNN RQ6<<## # a!2!21!56LI a+HGFLL$$f&6&67 799} a1%BAii>; ac1%:96<<## # 6<6<rc SnUR5 [URS-5HnURR US5 UR U5nUS:XaUR (aMI[URS-5H_nUR (aXC:a OHU[[RRURRX$555-nMa URS:dMUS-nM U$)z.Collect and return the contents of the window.rr ) rranger&rr7r0rr'chrrr*r+)r!resultr.stopr9s rgatherTextbox.gathers tyy{#A HHMM!Q $$Q'DqyT--499Q;'###fll&8&8q9L&M"NN(yy1}$$ rNcURR5nU(aU"U5nU(dM3URU5(dUR 5$URR5 Mu)z2Edit in the widget window and collect the results.)rgetchrWrPr`)r!validater8s redit Textbox.edits\!Bb\??2&&{{} HH   r)rrr'r&rr)Fr3) __name__ __module__ __qualname____firstlineno____doc__r"rr0r<rWr`re__static_attributes__rrrrs,. #2BH" rr__main__cSupSup4URUS- US5 [R"X!X45n[XS- US- X2-XA-5 UR 5 [ U5R 5$)N) )zUse Ctrl-G to end editing.r)addstrrnewwinrrPrre)stdscrncolsnlinesrrrs r test_editboxrzsl  c!eS">?mmF34&a%Q ckBs|  ""rzContents of text box:) rkr curses.asciirrrgrzwrapperstrprintreprrmrrrsS@  -ll\ z# .. &C !49-r