관리-도구
편집 파일: textpad.cpython-311.opt-1.pyc
� ����d CQ��������������������������d�Z�ddlZddlZd��Z�G�d��d������������Zedk����r*d��Z�ej��������e������������Z�e d�e e�������������������������dS�dS�) z:Simple textbox editing widget with Emacs-like keybindings.�����Nc������������������f����|�����������������������|dz���|t����������j��������||z ��dz ���������������|����������������������||dz���t����������j��������||z ��dz ���������������|����������������������||dz���t����������j��������||z ��dz ���������������|�����������������������|dz���|t����������j��������||z ��dz ���������������|����������������������||t����������j���������������������|����������������������||t����������j���������������������|����������������������||t����������j���������������������|����������������������||t����������j ���������������������dS�)z^Draw a rectangle with corners at the provided upper-left and lower-right coordinates. ����N) �vline�curses� ACS_VLINE�hline� ACS_HLINE�addch�ACS_ULCORNER�ACS_URCORNER�ACS_LRCORNER�ACS_LLCORNER)�win�uly�ulx�lry�lrxs��� �5/opt/alt/python311/lib64/python3.11/curses/textpad.py� rectangler������s �������I�I�c�!�e�S�&�*�C�#�I��M�:�:�:��I�I�c�3�q�5�&�*�C�#�I��M�:�:�:��I�I�c�3�q�5�&�*�C�#�I��M�:�:�:��I�I�c�!�e�S�&�*�C�#�I��M�:�:�:��I�I�c�3��+�,�,�,��I�I�c�3��+�,�,�,��I�I�c�3��+�,�,�,��I�I�c�3��+�,�,�,�,�,�����c��������������������@�����e�Zd�ZdZdd�Zd��Zd��Zd��Zd��Zd��Z dd �Z d S�) �Textboxad��Editing 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 Fc�����������������������||�_���������||�_��������|�������������������������������������d|�_��������d�|�_��������|���������������������d�������������d�S��Nr���)r����insert_mode�_update_max_yx�stripspaces�lastcmd�keypad)�selfr���r���s��� r����__init__zTextbox.__init__+���sE���������&���������������� � �1� � � � � r���c������������������f�����|�j��������������������������������������������\��}}|dz ��|�_��������|dz ��|�_��������d�S�r���)r����getmaxyx�maxy�maxx)r ���r$���r%���s��� r���r���zTextbox._update_max_yx3���s3�������X�&�&�(�(� ��d��1�H�� ��1�H�� � � r���c������������������ ����|��������������������������������������|�j��������} �t����������j�����������������������������|�j�����������������������������||������������������������t����������j��������j��������k����rt����������|�j��������|dz���������������}n |dk����rn|dz ��}�q|S�)zuGo to the location of the first blank on the given line, returning the index of the last non-blank character.Tr���r���)r���r%���r����asciir����inch�SP�min)r ����y�lasts��� r����_end_of_linezTextbox._end_of_line8���s�������� �������y�� ��|�!�!�$�(�-�-��4�"8�"8�9�9�V�\�_�L�L��4�9�d�1�f�-�-���������!�8�D� ���r���c������������������ ����|��������������������������������������|�j�������������������������������������������\��}}d�}||�j��������k�����s||�j��������k�����r�|�j��������r|�j�������������������������������������������} �|�j�����������������������������|�������������n#�t����������j ��������$�r�Y�nw�xY�w|�j��������rt����������j �����������������������������|������������sn:|}|�j�������������������������������������������\��}}|�||f}||�j��������k�������||�j��������k�������|��|�j��������j��������|���d�S�d�S��N) r���r����getyxr$���r%���r���r(���r ���r����errorr'����isprint�move)r ����chr+����x�backyx�oldchs��� r����_insert_printable_charzTextbox._insert_printable_charF���s&���������������!�!���A����$�)�m�m�q�4�9�}�}���� (��� � ���� �����r�"�"�"�"���<�� �� �� ��� �����#�� �6�<�+?�+?��+F�+F�� ���B��X�^�^�%�%�F�Q���~��A���!��$�)�m�m�q�4�9�}�}�$����D�H�M�6�"�"�"�"���s����*B��B�Bc������������������ ����|��������������������������������������|�j�������������������������������������������\��}}||�_��������t����������j�����������������������������|������������r-||�j��������k�����s||�j��������k�����r|�� ��������������������|��������������n�|t����������j��������j ��������k����r|�j�����������������������������|d��������������n�|t����������j��������j��������t����������j ��������t����������j��������j��������t����������j��������fv�r�|dk����r|�j�����������������������������||dz ���������������nf|dk����rn_|�j��������r5|�j�����������������������������|dz ��|����������������������|dz ���������������������������n#|�j�����������������������������|dz ��|�j���������������������|t����������j��������j��������t����������j��������fv�r|�j���������������������������������������������n�|t����������j��������j��������k����r|�j���������������������������������������������nY|t����������j��������j��������k����rY|�j��������r0|�j�����������������������������||����������������������|��������������������������n |�j�����������������������������||�j����������������������n�|t����������j��������j��������t����������j��������fv�rX||�j��������k�����r |�j�����������������������������||dz�����������������n�||�j��������k����r�n�|�j�����������������������������|dz���d��������������nt|t����������j��������j��������k����rdS�|t����������j��������j��������k����r8|�j��������dk����rdS�||�j��������k�����r|�j�����������������������������|dz���d��������������n|t����������j��������j��������k����rp|dk����r4|����������������������|������������dk����r|�j���������������������������������������������n�|�j�����������������������������||�������������|�j���������������������������������������������n�|t����������j��������j��������k����r|�j���������������������������������������������n[|t����������j��������j��������t����������j��������fv�rz||�j��������k�����rn|�j�����������������������������|dz���|�������������||����������������������|dz���������������k����r4|�j�����������������������������|dz���|����������������������|dz����������������������������n�|t����������j��������j ��������k����r|�j���������!�����������������������������������n�|t����������j��������j"��������t����������j#��������fv�rt|dk����rn|�j�����������������������������|dz ��|�������������||����������������������|dz ��������������k����r4|�j�����������������������������|dz ��|����������������������|dz ���������������������������dS�)z!Process a single editing command.r���r���)$r���r���r0���r���r���r'���r2���r$���r%���r8����SOHr3����STX�KEY_LEFT�BS� KEY_BACKSPACEr���r-����delch�EOT�ENQ�ACK� KEY_RIGHT�BEL�NL�VT�deleteln�clrtoeol�FF�refresh�SO�KEY_DOWN�SI�insertln�DLE�KEY_UP)r ���r4���r+���r5���s��� r���� do_commandzTextbox.do_command_���s����������������!�!���A�����<����#�#��9 ?��4�9�}�}��D�I� � ��+�+�B�/�/�/�� �6�<�#� #� #��H�M�M�!�Q����� �F�L�$�V�_�f�l�o�f�FZ�[� [� [��1�u�u��� � �a��1��%�%�%�%��a�����!�� .��� � �a��c�4�#4�#4�Q�q�S�#9�#9�:�:�:�:��� � �a��c�4�9�-�-�-��f�l�o�v�';�<�<�<����� � � �� �6�<�#� #� #��H�N�N����� �6�<�#� #� #���� ,��� � �a��!2�!2�1�!5�!5�6�6�6�6��� � �a���+�+�+�+� �F�L�$�f�&6�7� 7� 7��4�9�}�}��� � �a��1��%�%�%�%��d�i������ � �a��c�1�%�%�%�%� �6�<�#� #� #��1� �6�<�?� "� "��y�A�~�~��q��T�Y����� � �a��c�1�%�%�%�� �6�<�?� "� "��A�v�v�$�+�+�A�.�.�!�3�3���!�!�#�#�#�#���� � �a��#�#�#���!�!�#�#�#�#� �6�<�?� "� "��H������� �F�L�O�V�_�5� 5� 5��4�9�}�}��� � �a��c�1�%�%�%��t�(�(��1��-�-�-�-��H�M�M�!�A�#�t�'8�'8��1��'=�'=�>�>�>�� �6�<�?� "� "��H������� �F�L�$�f�m�4� 4� 4��1�u�u��� � �a��c�1�%�%�%��t�(�(��1��-�-�-�-��H�M�M�!�A�#�t�'8�'8��1��'=�'=�>�>�>��qr���c�����������������������d}|��������������������������������������t����������|�j��������dz���������������D�]�}|�j�����������������������������|d�������������|����������������������|������������}|dk����r|�j��������r�@t����������|�j��������dz���������������D�]Y}|�j��������r||k����r�nI|t����������t����������j ��������� ��������������������|�j�����������������������������||������������������������������������z���}�Z|�j��������dk����r|dz���}��|S�)z.Collect and return the contents of the window.��r���r���� )r����ranger$���r���r3���r-���r���r%����chrr���r'���r(���)r ����resultr+����stopr5���s��� r����gatherzTextbox.gather����s����������������t�y��{�#�#�� '�� '�A��H�M�M�!�Q�����$�$�Q�'�'�D��q�y�y�T�-�y���4�9�Q�;�'�'�� O�� O���#����D����E��#�f�l�&8�&8�����q�!�9L�9L�&M�&M�"N�"N�N����y�1�}�}��$����� r���Nc������������������������ �|�j��������������������������������������������}|r�||������������}|s�*|����������������������|������������sn|�j����������������������������������������������Y|������������������������������������S�)z2Edit in the widget window and collect the results.)r����getchrQ���rJ���rY���)r ����validater4���s��� r����editzTextbox.edit����sx������ �����!�!�B��� "��X�b�\�\���� ���?�?�2�&�&�� ���H������ ���{�{�}�}�r���)Fr/���)�__name__� __module__�__qualname__�__doc__r!���r���r-���r8���rQ���rY���r]�����r���r���r���r������s������������������.������������ �����#��#��#�2?��?��?�B�����"����������r���r����__main__c������������������ ����d\��}}d\��}}|�����������������������|dz ��|d�������������t����������j��������||||������������}t����������|�|dz ��|dz ��||z���||z����������������|�������������������������������������t����������|�����������������������������������������������S�)N)� �������)������������zUse Ctrl-G to end editing.r���)�addstrr����newwinr���rJ���r���r]���)�stdscr�ncols�nlinesr���r���r���s��� r����test_editboxro�������s�������� ��v����S�� � �c�!�e�S�">�?�?�?��m�F�E�3��4�4���&�#�a�%��Q���f��c�E�k�B�B�B��������s�|�|� � �"�"�"r���zContents of text box:)ra���r����curses.asciir���r���r^���ro����wrapper�str�print�reprrb���r���r����<module>ru������s�������@��@�� � � � ���������-��-��-�i��i��i��i��i��i��i��i�V��z���#��#��#���&�.�� &� &�C� �E� !�4�4��9�9�-�-�-�-�-���r���