f ddlZddlZdZGddZedkr*dZejeZede edSdS)Nch ||dz|tj||z dz |||dztj||z dz |||dztj||z dz ||dz|tj||z dz |||tj|||tj|||tj|||tj dSN) vlinecurses ACS_VLINEhline ACS_HLINEaddch ACS_ULCORNER ACS_URCORNER ACS_LRCORNER ACS_LLCORNER)winulyulxlrylrxs 5/opt/alt/python311/lib64/python3.11/curses/textpad.py rectanglersIIc!eS&*C#IM:::IIc3q5&*C#IM:::IIc3q5&*C#IM:::IIc!eS&*C#IM:::IIc3+,,,IIc3+,,,IIc3+,,,IIc3+,,,,,c>eZdZ d dZdZdZdZdZdZd d Z dS) TextboxFc||_||_|d|_d|_|ddSr)r insert_mode_update_max_yx stripspaceslastcmdkeypad)selfrrs r__init__zTextbox.__init__+sE&   1 rcf|j\}}|dz |_|dz |_dSr)rgetmaxyxmaxymaxx)r r$r%s rrzTextbox._update_max_yx3s3X&&(( d1H 1H rc" ||j} tj|j||tjjkrt|j|dz}n |dkrn|dz }q|S)NTrr)rr%rasciirinchSPmin)r ylasts r _end_of_linezTextbox._end_of_line8s @ y |!!$(--4"8"899V\_LL49d1f--!8D   rc ||j\}}d}||jks ||jkr|jr|j} |j|n#tj $rYnwxYw|jrtj |sn:|}|j\}}|||f}||jk||jk||jj |dSdSN) rrgetyxr$r%rr(r rerrorr'isprintmove)r chr+xbackyxoldchs r_insert_printable_charzTextbox._insert_printable_charFs& !!A$)mmq49}} (  r""""<    # 6<+?+?+F+F BX^^%%FQ~A!$)mmq49}}$   DHM6 " " " "  s*BBBc ||j\}}||_tj|r-||jks ||jkr| |n|tjj kr|j |dn|tjj tj tjjtjfvr|dkr|j ||dz nf|dkrn_|jr5|j |dz ||dz n#|j |dz |j|tjjtjfvr|jn|tjjkr|jnY|tjjkrY|jr0|j |||n |j ||jn|tjjtjfvrX||jkr |j ||dzn||jkrn|j |dzdnt|tjjkrdS|tjjkr8|jdkrdS||jkr|j |dzdn|tjjkrp|dkr4||dkr|jn|j |||jn|tjjkr|jn[|tjjtjfvrz||jkrn|j |dz||||dzkr4|j |dz||dzn|tjj kr|j!n|tjj"tj#fvrt|dkrn|j |dz ||||dz kr4|j |dz ||dz dS)Nrr)$rrr0rrr'r2r$r%r8SOHr3STXKEY_LEFTBS KEY_BACKSPACErr-delchEOTENQACK KEY_RIGHTBELNLVTdeletelnclrtoeolFFrefreshSOKEY_DOWNSIinsertlnDLEKEY_UP)r r4r+r5s r do_commandzTextbox.do_command_s+ !!A <   # #9 ?49}}DI ++B/// 6<# # # HMM!Q     FL$V_flofFZ[ [ [1uu a1%%%%a! . ac4#4#4QqS#9#9:::: ac49---flov';<<<   6<# # # HNN     6<# # # , a!2!21!5!56666 a++++ FL$f&67 7 749}} a1%%%%di ac1%%%% 6<# # #1 6>> 6>>qrc  d}|t|jdzD]}|j|d||}|dkr|jr@t|jdzD]Y}|jr||krnI|ttj |j ||z}Z|jdkr|dz}|S)Nrr ) rranger$rr3r-rr%chrrr'r()r resultr+stopr5s rgatherzTextbox.gathers8 ty{## ' 'A HMM!Q   $$Q''DqyyT-y49Q;'' O O#DE#fl&8&8q!9L9L&M&M"N"NNy1}}$ rNc |j}|r ||}|s*||sn|jY|Sr/)rgetchrQrJrY)r validater4s reditz Textbox.edits{< !!B "Xb\\ ??2&&  H      {{}}r)Fr/) __name__ __module__ __qualname__r!rr-r8rQrYr]rrrrs.   ###2???B"      rr__main__c d\}}d\}}||dz |dtj||||}t||dz |dz ||z||z|t |S)N) )zUse Ctrl-G to end editing.r)addstrrnewwinrrJrr])stdscrncolsnlinesrrrs r test_editboxrns vS c!eS">???mFE344&#a%Qf cEkBBBs||  """rzContents of text box:) r curses.asciirrr^rnwrapperstrprintreprrarrrts@  - - -iiiiiiiiV z### &. & &C E !4499-----r