17db96d56Sopenharmony_ci:mod:`curses` --- Terminal handling for character-cell displays 27db96d56Sopenharmony_ci=============================================================== 37db96d56Sopenharmony_ci 47db96d56Sopenharmony_ci.. module:: curses 57db96d56Sopenharmony_ci :synopsis: An interface to the curses library, providing portable 67db96d56Sopenharmony_ci terminal handling. 77db96d56Sopenharmony_ci :platform: Unix 87db96d56Sopenharmony_ci 97db96d56Sopenharmony_ci.. sectionauthor:: Moshe Zadka <moshez@zadka.site.co.il> 107db96d56Sopenharmony_ci.. sectionauthor:: Eric Raymond <esr@thyrsus.com> 117db96d56Sopenharmony_ci 127db96d56Sopenharmony_ci**Source code:** :source:`Lib/curses` 137db96d56Sopenharmony_ci 147db96d56Sopenharmony_ci-------------- 157db96d56Sopenharmony_ci 167db96d56Sopenharmony_ciThe :mod:`curses` module provides an interface to the curses library, the 177db96d56Sopenharmony_cide-facto standard for portable advanced terminal handling. 187db96d56Sopenharmony_ci 197db96d56Sopenharmony_ciWhile curses is most widely used in the Unix environment, versions are available 207db96d56Sopenharmony_cifor Windows, DOS, and possibly other systems as well. This extension module is 217db96d56Sopenharmony_cidesigned to match the API of ncurses, an open-source curses library hosted on 227db96d56Sopenharmony_ciLinux and the BSD variants of Unix. 237db96d56Sopenharmony_ci 247db96d56Sopenharmony_ci.. note:: 257db96d56Sopenharmony_ci 267db96d56Sopenharmony_ci Whenever the documentation mentions a *character* it can be specified 277db96d56Sopenharmony_ci as an integer, a one-character Unicode string or a one-byte byte string. 287db96d56Sopenharmony_ci 297db96d56Sopenharmony_ci Whenever the documentation mentions a *character string* it can be specified 307db96d56Sopenharmony_ci as a Unicode string or a byte string. 317db96d56Sopenharmony_ci 327db96d56Sopenharmony_ci.. seealso:: 337db96d56Sopenharmony_ci 347db96d56Sopenharmony_ci Module :mod:`curses.ascii` 357db96d56Sopenharmony_ci Utilities for working with ASCII characters, regardless of your locale settings. 367db96d56Sopenharmony_ci 377db96d56Sopenharmony_ci Module :mod:`curses.panel` 387db96d56Sopenharmony_ci A panel stack extension that adds depth to curses windows. 397db96d56Sopenharmony_ci 407db96d56Sopenharmony_ci Module :mod:`curses.textpad` 417db96d56Sopenharmony_ci Editable text widget for curses supporting :program:`Emacs`\ -like bindings. 427db96d56Sopenharmony_ci 437db96d56Sopenharmony_ci :ref:`curses-howto` 447db96d56Sopenharmony_ci Tutorial material on using curses with Python, by Andrew Kuchling and Eric 457db96d56Sopenharmony_ci Raymond. 467db96d56Sopenharmony_ci 477db96d56Sopenharmony_ci The :source:`Tools/demo/` directory in the Python source distribution contains 487db96d56Sopenharmony_ci some example programs using the curses bindings provided by this module. 497db96d56Sopenharmony_ci 507db96d56Sopenharmony_ci 517db96d56Sopenharmony_ci.. _curses-functions: 527db96d56Sopenharmony_ci 537db96d56Sopenharmony_ciFunctions 547db96d56Sopenharmony_ci--------- 557db96d56Sopenharmony_ci 567db96d56Sopenharmony_ciThe module :mod:`curses` defines the following exception: 577db96d56Sopenharmony_ci 587db96d56Sopenharmony_ci 597db96d56Sopenharmony_ci.. exception:: error 607db96d56Sopenharmony_ci 617db96d56Sopenharmony_ci Exception raised when a curses library function returns an error. 627db96d56Sopenharmony_ci 637db96d56Sopenharmony_ci.. note:: 647db96d56Sopenharmony_ci 657db96d56Sopenharmony_ci Whenever *x* or *y* arguments to a function or a method are optional, they 667db96d56Sopenharmony_ci default to the current cursor location. Whenever *attr* is optional, it defaults 677db96d56Sopenharmony_ci to :const:`A_NORMAL`. 687db96d56Sopenharmony_ci 697db96d56Sopenharmony_ciThe module :mod:`curses` defines the following functions: 707db96d56Sopenharmony_ci 717db96d56Sopenharmony_ci 727db96d56Sopenharmony_ci.. function:: baudrate() 737db96d56Sopenharmony_ci 747db96d56Sopenharmony_ci Return the output speed of the terminal in bits per second. On software 757db96d56Sopenharmony_ci terminal emulators it will have a fixed high value. Included for historical 767db96d56Sopenharmony_ci reasons; in former times, it was used to write output loops for time delays and 777db96d56Sopenharmony_ci occasionally to change interfaces depending on the line speed. 787db96d56Sopenharmony_ci 797db96d56Sopenharmony_ci 807db96d56Sopenharmony_ci.. function:: beep() 817db96d56Sopenharmony_ci 827db96d56Sopenharmony_ci Emit a short attention sound. 837db96d56Sopenharmony_ci 847db96d56Sopenharmony_ci 857db96d56Sopenharmony_ci.. function:: can_change_color() 867db96d56Sopenharmony_ci 877db96d56Sopenharmony_ci Return ``True`` or ``False``, depending on whether the programmer can change the colors 887db96d56Sopenharmony_ci displayed by the terminal. 897db96d56Sopenharmony_ci 907db96d56Sopenharmony_ci 917db96d56Sopenharmony_ci.. function:: cbreak() 927db96d56Sopenharmony_ci 937db96d56Sopenharmony_ci Enter cbreak mode. In cbreak mode (sometimes called "rare" mode) normal tty 947db96d56Sopenharmony_ci line buffering is turned off and characters are available to be read one by one. 957db96d56Sopenharmony_ci However, unlike raw mode, special characters (interrupt, quit, suspend, and flow 967db96d56Sopenharmony_ci control) retain their effects on the tty driver and calling program. Calling 977db96d56Sopenharmony_ci first :func:`raw` then :func:`cbreak` leaves the terminal in cbreak mode. 987db96d56Sopenharmony_ci 997db96d56Sopenharmony_ci 1007db96d56Sopenharmony_ci.. function:: color_content(color_number) 1017db96d56Sopenharmony_ci 1027db96d56Sopenharmony_ci Return the intensity of the red, green, and blue (RGB) components in the color 1037db96d56Sopenharmony_ci *color_number*, which must be between ``0`` and ``COLORS - 1``. Return a 3-tuple, 1047db96d56Sopenharmony_ci containing the R,G,B values for the given color, which will be between 1057db96d56Sopenharmony_ci ``0`` (no component) and ``1000`` (maximum amount of component). 1067db96d56Sopenharmony_ci 1077db96d56Sopenharmony_ci 1087db96d56Sopenharmony_ci.. function:: color_pair(pair_number) 1097db96d56Sopenharmony_ci 1107db96d56Sopenharmony_ci Return the attribute value for displaying text in the specified color pair. 1117db96d56Sopenharmony_ci Only the first 256 color pairs are supported. This 1127db96d56Sopenharmony_ci attribute value can be combined with :const:`A_STANDOUT`, :const:`A_REVERSE`, 1137db96d56Sopenharmony_ci and the other :const:`!A_\*` attributes. :func:`pair_number` is the counterpart 1147db96d56Sopenharmony_ci to this function. 1157db96d56Sopenharmony_ci 1167db96d56Sopenharmony_ci 1177db96d56Sopenharmony_ci.. function:: curs_set(visibility) 1187db96d56Sopenharmony_ci 1197db96d56Sopenharmony_ci Set the cursor state. *visibility* can be set to ``0``, ``1``, or ``2``, for invisible, 1207db96d56Sopenharmony_ci normal, or very visible. If the terminal supports the visibility requested, return the 1217db96d56Sopenharmony_ci previous cursor state; otherwise raise an exception. On many 1227db96d56Sopenharmony_ci terminals, the "visible" mode is an underline cursor and the "very visible" mode 1237db96d56Sopenharmony_ci is a block cursor. 1247db96d56Sopenharmony_ci 1257db96d56Sopenharmony_ci 1267db96d56Sopenharmony_ci.. function:: def_prog_mode() 1277db96d56Sopenharmony_ci 1287db96d56Sopenharmony_ci Save the current terminal mode as the "program" mode, the mode when the running 1297db96d56Sopenharmony_ci program is using curses. (Its counterpart is the "shell" mode, for when the 1307db96d56Sopenharmony_ci program is not in curses.) Subsequent calls to :func:`reset_prog_mode` will 1317db96d56Sopenharmony_ci restore this mode. 1327db96d56Sopenharmony_ci 1337db96d56Sopenharmony_ci 1347db96d56Sopenharmony_ci.. function:: def_shell_mode() 1357db96d56Sopenharmony_ci 1367db96d56Sopenharmony_ci Save the current terminal mode as the "shell" mode, the mode when the running 1377db96d56Sopenharmony_ci program is not using curses. (Its counterpart is the "program" mode, when the 1387db96d56Sopenharmony_ci program is using curses capabilities.) Subsequent calls to 1397db96d56Sopenharmony_ci :func:`reset_shell_mode` will restore this mode. 1407db96d56Sopenharmony_ci 1417db96d56Sopenharmony_ci 1427db96d56Sopenharmony_ci.. function:: delay_output(ms) 1437db96d56Sopenharmony_ci 1447db96d56Sopenharmony_ci Insert an *ms* millisecond pause in output. 1457db96d56Sopenharmony_ci 1467db96d56Sopenharmony_ci 1477db96d56Sopenharmony_ci.. function:: doupdate() 1487db96d56Sopenharmony_ci 1497db96d56Sopenharmony_ci Update the physical screen. The curses library keeps two data structures, one 1507db96d56Sopenharmony_ci representing the current physical screen contents and a virtual screen 1517db96d56Sopenharmony_ci representing the desired next state. The :func:`doupdate` ground updates the 1527db96d56Sopenharmony_ci physical screen to match the virtual screen. 1537db96d56Sopenharmony_ci 1547db96d56Sopenharmony_ci The virtual screen may be updated by a :meth:`~window.noutrefresh` call after write 1557db96d56Sopenharmony_ci operations such as :meth:`~window.addstr` have been performed on a window. The normal 1567db96d56Sopenharmony_ci :meth:`~window.refresh` call is simply :meth:`!noutrefresh` followed by :func:`!doupdate`; 1577db96d56Sopenharmony_ci if you have to update multiple windows, you can speed performance and perhaps 1587db96d56Sopenharmony_ci reduce screen flicker by issuing :meth:`!noutrefresh` calls on all windows, 1597db96d56Sopenharmony_ci followed by a single :func:`!doupdate`. 1607db96d56Sopenharmony_ci 1617db96d56Sopenharmony_ci 1627db96d56Sopenharmony_ci.. function:: echo() 1637db96d56Sopenharmony_ci 1647db96d56Sopenharmony_ci Enter echo mode. In echo mode, each character input is echoed to the screen as 1657db96d56Sopenharmony_ci it is entered. 1667db96d56Sopenharmony_ci 1677db96d56Sopenharmony_ci 1687db96d56Sopenharmony_ci.. function:: endwin() 1697db96d56Sopenharmony_ci 1707db96d56Sopenharmony_ci De-initialize the library, and return terminal to normal status. 1717db96d56Sopenharmony_ci 1727db96d56Sopenharmony_ci 1737db96d56Sopenharmony_ci.. function:: erasechar() 1747db96d56Sopenharmony_ci 1757db96d56Sopenharmony_ci Return the user's current erase character as a one-byte bytes object. Under Unix operating systems this 1767db96d56Sopenharmony_ci is a property of the controlling tty of the curses program, and is not set by 1777db96d56Sopenharmony_ci the curses library itself. 1787db96d56Sopenharmony_ci 1797db96d56Sopenharmony_ci 1807db96d56Sopenharmony_ci.. function:: filter() 1817db96d56Sopenharmony_ci 1827db96d56Sopenharmony_ci The :func:`.filter` routine, if used, must be called before :func:`initscr` is 1837db96d56Sopenharmony_ci called. The effect is that, during those calls, :envvar:`LINES` is set to ``1``; the 1847db96d56Sopenharmony_ci capabilities ``clear``, ``cup``, ``cud``, ``cud1``, ``cuu1``, ``cuu``, ``vpa`` are disabled; and the ``home`` 1857db96d56Sopenharmony_ci string is set to the value of ``cr``. The effect is that the cursor is confined to 1867db96d56Sopenharmony_ci the current line, and so are screen updates. This may be used for enabling 1877db96d56Sopenharmony_ci character-at-a-time line editing without touching the rest of the screen. 1887db96d56Sopenharmony_ci 1897db96d56Sopenharmony_ci 1907db96d56Sopenharmony_ci.. function:: flash() 1917db96d56Sopenharmony_ci 1927db96d56Sopenharmony_ci Flash the screen. That is, change it to reverse-video and then change it back 1937db96d56Sopenharmony_ci in a short interval. Some people prefer such as 'visible bell' to the audible 1947db96d56Sopenharmony_ci attention signal produced by :func:`beep`. 1957db96d56Sopenharmony_ci 1967db96d56Sopenharmony_ci 1977db96d56Sopenharmony_ci.. function:: flushinp() 1987db96d56Sopenharmony_ci 1997db96d56Sopenharmony_ci Flush all input buffers. This throws away any typeahead that has been typed 2007db96d56Sopenharmony_ci by the user and has not yet been processed by the program. 2017db96d56Sopenharmony_ci 2027db96d56Sopenharmony_ci 2037db96d56Sopenharmony_ci.. function:: getmouse() 2047db96d56Sopenharmony_ci 2057db96d56Sopenharmony_ci After :meth:`~window.getch` returns :const:`KEY_MOUSE` to signal a mouse event, this 2067db96d56Sopenharmony_ci method should be called to retrieve the queued mouse event, represented as a 2077db96d56Sopenharmony_ci 5-tuple ``(id, x, y, z, bstate)``. *id* is an ID value used to distinguish 2087db96d56Sopenharmony_ci multiple devices, and *x*, *y*, *z* are the event's coordinates. (*z* is 2097db96d56Sopenharmony_ci currently unused.) *bstate* is an integer value whose bits will be set to 2107db96d56Sopenharmony_ci indicate the type of event, and will be the bitwise OR of one or more of the 2117db96d56Sopenharmony_ci following constants, where *n* is the button number from 1 to 5: 2127db96d56Sopenharmony_ci :const:`BUTTONn_PRESSED`, :const:`BUTTONn_RELEASED`, :const:`BUTTONn_CLICKED`, 2137db96d56Sopenharmony_ci :const:`BUTTONn_DOUBLE_CLICKED`, :const:`BUTTONn_TRIPLE_CLICKED`, 2147db96d56Sopenharmony_ci :const:`BUTTON_SHIFT`, :const:`BUTTON_CTRL`, :const:`BUTTON_ALT`. 2157db96d56Sopenharmony_ci 2167db96d56Sopenharmony_ci .. versionchanged:: 3.10 2177db96d56Sopenharmony_ci The ``BUTTON5_*`` constants are now exposed if they are provided by the 2187db96d56Sopenharmony_ci underlying curses library. 2197db96d56Sopenharmony_ci 2207db96d56Sopenharmony_ci 2217db96d56Sopenharmony_ci.. function:: getsyx() 2227db96d56Sopenharmony_ci 2237db96d56Sopenharmony_ci Return the current coordinates of the virtual screen cursor as a tuple 2247db96d56Sopenharmony_ci ``(y, x)``. If :meth:`leaveok <window.leaveok>` is currently ``True``, then return ``(-1, -1)``. 2257db96d56Sopenharmony_ci 2267db96d56Sopenharmony_ci 2277db96d56Sopenharmony_ci.. function:: getwin(file) 2287db96d56Sopenharmony_ci 2297db96d56Sopenharmony_ci Read window related data stored in the file by an earlier :func:`window.putwin` call. 2307db96d56Sopenharmony_ci The routine then creates and initializes a new window using that data, returning 2317db96d56Sopenharmony_ci the new window object. 2327db96d56Sopenharmony_ci 2337db96d56Sopenharmony_ci 2347db96d56Sopenharmony_ci.. function:: has_colors() 2357db96d56Sopenharmony_ci 2367db96d56Sopenharmony_ci Return ``True`` if the terminal can display colors; otherwise, return ``False``. 2377db96d56Sopenharmony_ci 2387db96d56Sopenharmony_ci.. function:: has_extended_color_support() 2397db96d56Sopenharmony_ci 2407db96d56Sopenharmony_ci Return ``True`` if the module supports extended colors; otherwise, return 2417db96d56Sopenharmony_ci ``False``. Extended color support allows more than 256 color pairs for 2427db96d56Sopenharmony_ci terminals that support more than 16 colors (e.g. xterm-256color). 2437db96d56Sopenharmony_ci 2447db96d56Sopenharmony_ci Extended color support requires ncurses version 6.1 or later. 2457db96d56Sopenharmony_ci 2467db96d56Sopenharmony_ci .. versionadded:: 3.10 2477db96d56Sopenharmony_ci 2487db96d56Sopenharmony_ci.. function:: has_ic() 2497db96d56Sopenharmony_ci 2507db96d56Sopenharmony_ci Return ``True`` if the terminal has insert- and delete-character capabilities. 2517db96d56Sopenharmony_ci This function is included for historical reasons only, as all modern software 2527db96d56Sopenharmony_ci terminal emulators have such capabilities. 2537db96d56Sopenharmony_ci 2547db96d56Sopenharmony_ci 2557db96d56Sopenharmony_ci.. function:: has_il() 2567db96d56Sopenharmony_ci 2577db96d56Sopenharmony_ci Return ``True`` if the terminal has insert- and delete-line capabilities, or can 2587db96d56Sopenharmony_ci simulate them using scrolling regions. This function is included for 2597db96d56Sopenharmony_ci historical reasons only, as all modern software terminal emulators have such 2607db96d56Sopenharmony_ci capabilities. 2617db96d56Sopenharmony_ci 2627db96d56Sopenharmony_ci 2637db96d56Sopenharmony_ci.. function:: has_key(ch) 2647db96d56Sopenharmony_ci 2657db96d56Sopenharmony_ci Take a key value *ch*, and return ``True`` if the current terminal type recognizes 2667db96d56Sopenharmony_ci a key with that value. 2677db96d56Sopenharmony_ci 2687db96d56Sopenharmony_ci 2697db96d56Sopenharmony_ci.. function:: halfdelay(tenths) 2707db96d56Sopenharmony_ci 2717db96d56Sopenharmony_ci Used for half-delay mode, which is similar to cbreak mode in that characters 2727db96d56Sopenharmony_ci typed by the user are immediately available to the program. However, after 2737db96d56Sopenharmony_ci blocking for *tenths* tenths of seconds, raise an exception if nothing has 2747db96d56Sopenharmony_ci been typed. The value of *tenths* must be a number between ``1`` and ``255``. Use 2757db96d56Sopenharmony_ci :func:`nocbreak` to leave half-delay mode. 2767db96d56Sopenharmony_ci 2777db96d56Sopenharmony_ci 2787db96d56Sopenharmony_ci.. function:: init_color(color_number, r, g, b) 2797db96d56Sopenharmony_ci 2807db96d56Sopenharmony_ci Change the definition of a color, taking the number of the color to be changed 2817db96d56Sopenharmony_ci followed by three RGB values (for the amounts of red, green, and blue 2827db96d56Sopenharmony_ci components). The value of *color_number* must be between ``0`` and 2837db96d56Sopenharmony_ci ``COLORS - 1``. Each of *r*, *g*, *b*, must be a value between ``0`` and 2847db96d56Sopenharmony_ci ``1000``. When :func:`init_color` is used, all occurrences of that color on the 2857db96d56Sopenharmony_ci screen immediately change to the new definition. This function is a no-op on 2867db96d56Sopenharmony_ci most terminals; it is active only if :func:`can_change_color` returns ``True``. 2877db96d56Sopenharmony_ci 2887db96d56Sopenharmony_ci 2897db96d56Sopenharmony_ci.. function:: init_pair(pair_number, fg, bg) 2907db96d56Sopenharmony_ci 2917db96d56Sopenharmony_ci Change the definition of a color-pair. It takes three arguments: the number of 2927db96d56Sopenharmony_ci the color-pair to be changed, the foreground color number, and the background 2937db96d56Sopenharmony_ci color number. The value of *pair_number* must be between ``1`` and 2947db96d56Sopenharmony_ci ``COLOR_PAIRS - 1`` (the ``0`` color pair is wired to white on black and cannot 2957db96d56Sopenharmony_ci be changed). The value of *fg* and *bg* arguments must be between ``0`` and 2967db96d56Sopenharmony_ci ``COLORS - 1``, or, after calling :func:`use_default_colors`, ``-1``. 2977db96d56Sopenharmony_ci If the color-pair was previously initialized, the screen is 2987db96d56Sopenharmony_ci refreshed and all occurrences of that color-pair are changed to the new 2997db96d56Sopenharmony_ci definition. 3007db96d56Sopenharmony_ci 3017db96d56Sopenharmony_ci 3027db96d56Sopenharmony_ci.. function:: initscr() 3037db96d56Sopenharmony_ci 3047db96d56Sopenharmony_ci Initialize the library. Return a :ref:`window <curses-window-objects>` object 3057db96d56Sopenharmony_ci which represents the whole screen. 3067db96d56Sopenharmony_ci 3077db96d56Sopenharmony_ci .. note:: 3087db96d56Sopenharmony_ci 3097db96d56Sopenharmony_ci If there is an error opening the terminal, the underlying curses library may 3107db96d56Sopenharmony_ci cause the interpreter to exit. 3117db96d56Sopenharmony_ci 3127db96d56Sopenharmony_ci 3137db96d56Sopenharmony_ci.. function:: is_term_resized(nlines, ncols) 3147db96d56Sopenharmony_ci 3157db96d56Sopenharmony_ci Return ``True`` if :func:`resize_term` would modify the window structure, 3167db96d56Sopenharmony_ci ``False`` otherwise. 3177db96d56Sopenharmony_ci 3187db96d56Sopenharmony_ci 3197db96d56Sopenharmony_ci.. function:: isendwin() 3207db96d56Sopenharmony_ci 3217db96d56Sopenharmony_ci Return ``True`` if :func:`endwin` has been called (that is, the curses library has 3227db96d56Sopenharmony_ci been deinitialized). 3237db96d56Sopenharmony_ci 3247db96d56Sopenharmony_ci 3257db96d56Sopenharmony_ci.. function:: keyname(k) 3267db96d56Sopenharmony_ci 3277db96d56Sopenharmony_ci Return the name of the key numbered *k* as a bytes object. The name of a key generating printable 3287db96d56Sopenharmony_ci ASCII character is the key's character. The name of a control-key combination 3297db96d56Sopenharmony_ci is a two-byte bytes object consisting of a caret (``b'^'``) followed by the corresponding 3307db96d56Sopenharmony_ci printable ASCII character. The name of an alt-key combination (128--255) is a 3317db96d56Sopenharmony_ci bytes object consisting of the prefix ``b'M-'`` followed by the name of the corresponding 3327db96d56Sopenharmony_ci ASCII character. 3337db96d56Sopenharmony_ci 3347db96d56Sopenharmony_ci 3357db96d56Sopenharmony_ci.. function:: killchar() 3367db96d56Sopenharmony_ci 3377db96d56Sopenharmony_ci Return the user's current line kill character as a one-byte bytes object. Under Unix operating systems 3387db96d56Sopenharmony_ci this is a property of the controlling tty of the curses program, and is not set 3397db96d56Sopenharmony_ci by the curses library itself. 3407db96d56Sopenharmony_ci 3417db96d56Sopenharmony_ci 3427db96d56Sopenharmony_ci.. function:: longname() 3437db96d56Sopenharmony_ci 3447db96d56Sopenharmony_ci Return a bytes object containing the terminfo long name field describing the current 3457db96d56Sopenharmony_ci terminal. The maximum length of a verbose description is 128 characters. It is 3467db96d56Sopenharmony_ci defined only after the call to :func:`initscr`. 3477db96d56Sopenharmony_ci 3487db96d56Sopenharmony_ci 3497db96d56Sopenharmony_ci.. function:: meta(flag) 3507db96d56Sopenharmony_ci 3517db96d56Sopenharmony_ci If *flag* is ``True``, allow 8-bit characters to be input. If 3527db96d56Sopenharmony_ci *flag* is ``False``, allow only 7-bit chars. 3537db96d56Sopenharmony_ci 3547db96d56Sopenharmony_ci 3557db96d56Sopenharmony_ci.. function:: mouseinterval(interval) 3567db96d56Sopenharmony_ci 3577db96d56Sopenharmony_ci Set the maximum time in milliseconds that can elapse between press and release 3587db96d56Sopenharmony_ci events in order for them to be recognized as a click, and return the previous 3597db96d56Sopenharmony_ci interval value. The default value is 200 milliseconds, or one fifth of a second. 3607db96d56Sopenharmony_ci 3617db96d56Sopenharmony_ci 3627db96d56Sopenharmony_ci.. function:: mousemask(mousemask) 3637db96d56Sopenharmony_ci 3647db96d56Sopenharmony_ci Set the mouse events to be reported, and return a tuple ``(availmask, 3657db96d56Sopenharmony_ci oldmask)``. *availmask* indicates which of the specified mouse events can be 3667db96d56Sopenharmony_ci reported; on complete failure it returns ``0``. *oldmask* is the previous value of 3677db96d56Sopenharmony_ci the given window's mouse event mask. If this function is never called, no mouse 3687db96d56Sopenharmony_ci events are ever reported. 3697db96d56Sopenharmony_ci 3707db96d56Sopenharmony_ci 3717db96d56Sopenharmony_ci.. function:: napms(ms) 3727db96d56Sopenharmony_ci 3737db96d56Sopenharmony_ci Sleep for *ms* milliseconds. 3747db96d56Sopenharmony_ci 3757db96d56Sopenharmony_ci 3767db96d56Sopenharmony_ci.. function:: newpad(nlines, ncols) 3777db96d56Sopenharmony_ci 3787db96d56Sopenharmony_ci Create and return a pointer to a new pad data structure with the given number 3797db96d56Sopenharmony_ci of lines and columns. Return a pad as a window object. 3807db96d56Sopenharmony_ci 3817db96d56Sopenharmony_ci A pad is like a window, except that it is not restricted by the screen size, and 3827db96d56Sopenharmony_ci is not necessarily associated with a particular part of the screen. Pads can be 3837db96d56Sopenharmony_ci used when a large window is needed, and only a part of the window will be on the 3847db96d56Sopenharmony_ci screen at one time. Automatic refreshes of pads (such as from scrolling or 3857db96d56Sopenharmony_ci echoing of input) do not occur. The :meth:`~window.refresh` and :meth:`~window.noutrefresh` 3867db96d56Sopenharmony_ci methods of a pad require 6 arguments to specify the part of the pad to be 3877db96d56Sopenharmony_ci displayed and the location on the screen to be used for the display. The 3887db96d56Sopenharmony_ci arguments are *pminrow*, *pmincol*, *sminrow*, *smincol*, *smaxrow*, *smaxcol*; the *p* 3897db96d56Sopenharmony_ci arguments refer to the upper left corner of the pad region to be displayed and 3907db96d56Sopenharmony_ci the *s* arguments define a clipping box on the screen within which the pad region 3917db96d56Sopenharmony_ci is to be displayed. 3927db96d56Sopenharmony_ci 3937db96d56Sopenharmony_ci 3947db96d56Sopenharmony_ci.. function:: newwin(nlines, ncols) 3957db96d56Sopenharmony_ci newwin(nlines, ncols, begin_y, begin_x) 3967db96d56Sopenharmony_ci 3977db96d56Sopenharmony_ci Return a new :ref:`window <curses-window-objects>`, whose left-upper corner 3987db96d56Sopenharmony_ci is at ``(begin_y, begin_x)``, and whose height/width is *nlines*/*ncols*. 3997db96d56Sopenharmony_ci 4007db96d56Sopenharmony_ci By default, the window will extend from the specified position to the lower 4017db96d56Sopenharmony_ci right corner of the screen. 4027db96d56Sopenharmony_ci 4037db96d56Sopenharmony_ci 4047db96d56Sopenharmony_ci.. function:: nl() 4057db96d56Sopenharmony_ci 4067db96d56Sopenharmony_ci Enter newline mode. This mode translates the return key into newline on input, 4077db96d56Sopenharmony_ci and translates newline into return and line-feed on output. Newline mode is 4087db96d56Sopenharmony_ci initially on. 4097db96d56Sopenharmony_ci 4107db96d56Sopenharmony_ci 4117db96d56Sopenharmony_ci.. function:: nocbreak() 4127db96d56Sopenharmony_ci 4137db96d56Sopenharmony_ci Leave cbreak mode. Return to normal "cooked" mode with line buffering. 4147db96d56Sopenharmony_ci 4157db96d56Sopenharmony_ci 4167db96d56Sopenharmony_ci.. function:: noecho() 4177db96d56Sopenharmony_ci 4187db96d56Sopenharmony_ci Leave echo mode. Echoing of input characters is turned off. 4197db96d56Sopenharmony_ci 4207db96d56Sopenharmony_ci 4217db96d56Sopenharmony_ci.. function:: nonl() 4227db96d56Sopenharmony_ci 4237db96d56Sopenharmony_ci Leave newline mode. Disable translation of return into newline on input, and 4247db96d56Sopenharmony_ci disable low-level translation of newline into newline/return on output (but this 4257db96d56Sopenharmony_ci does not change the behavior of ``addch('\n')``, which always does the 4267db96d56Sopenharmony_ci equivalent of return and line feed on the virtual screen). With translation 4277db96d56Sopenharmony_ci off, curses can sometimes speed up vertical motion a little; also, it will be 4287db96d56Sopenharmony_ci able to detect the return key on input. 4297db96d56Sopenharmony_ci 4307db96d56Sopenharmony_ci 4317db96d56Sopenharmony_ci.. function:: noqiflush() 4327db96d56Sopenharmony_ci 4337db96d56Sopenharmony_ci When the :func:`!noqiflush` routine is used, normal flush of input and output queues 4347db96d56Sopenharmony_ci associated with the ``INTR``, ``QUIT`` and ``SUSP`` characters will not be done. You may 4357db96d56Sopenharmony_ci want to call :func:`!noqiflush` in a signal handler if you want output to 4367db96d56Sopenharmony_ci continue as though the interrupt had not occurred, after the handler exits. 4377db96d56Sopenharmony_ci 4387db96d56Sopenharmony_ci 4397db96d56Sopenharmony_ci.. function:: noraw() 4407db96d56Sopenharmony_ci 4417db96d56Sopenharmony_ci Leave raw mode. Return to normal "cooked" mode with line buffering. 4427db96d56Sopenharmony_ci 4437db96d56Sopenharmony_ci 4447db96d56Sopenharmony_ci.. function:: pair_content(pair_number) 4457db96d56Sopenharmony_ci 4467db96d56Sopenharmony_ci Return a tuple ``(fg, bg)`` containing the colors for the requested color pair. 4477db96d56Sopenharmony_ci The value of *pair_number* must be between ``0`` and ``COLOR_PAIRS - 1``. 4487db96d56Sopenharmony_ci 4497db96d56Sopenharmony_ci 4507db96d56Sopenharmony_ci.. function:: pair_number(attr) 4517db96d56Sopenharmony_ci 4527db96d56Sopenharmony_ci Return the number of the color-pair set by the attribute value *attr*. 4537db96d56Sopenharmony_ci :func:`color_pair` is the counterpart to this function. 4547db96d56Sopenharmony_ci 4557db96d56Sopenharmony_ci 4567db96d56Sopenharmony_ci.. function:: putp(str) 4577db96d56Sopenharmony_ci 4587db96d56Sopenharmony_ci Equivalent to ``tputs(str, 1, putchar)``; emit the value of a specified 4597db96d56Sopenharmony_ci terminfo capability for the current terminal. Note that the output of :func:`putp` 4607db96d56Sopenharmony_ci always goes to standard output. 4617db96d56Sopenharmony_ci 4627db96d56Sopenharmony_ci 4637db96d56Sopenharmony_ci.. function:: qiflush([flag]) 4647db96d56Sopenharmony_ci 4657db96d56Sopenharmony_ci If *flag* is ``False``, the effect is the same as calling :func:`noqiflush`. If 4667db96d56Sopenharmony_ci *flag* is ``True``, or no argument is provided, the queues will be flushed when 4677db96d56Sopenharmony_ci these control characters are read. 4687db96d56Sopenharmony_ci 4697db96d56Sopenharmony_ci 4707db96d56Sopenharmony_ci.. function:: raw() 4717db96d56Sopenharmony_ci 4727db96d56Sopenharmony_ci Enter raw mode. In raw mode, normal line buffering and processing of 4737db96d56Sopenharmony_ci interrupt, quit, suspend, and flow control keys are turned off; characters are 4747db96d56Sopenharmony_ci presented to curses input functions one by one. 4757db96d56Sopenharmony_ci 4767db96d56Sopenharmony_ci 4777db96d56Sopenharmony_ci.. function:: reset_prog_mode() 4787db96d56Sopenharmony_ci 4797db96d56Sopenharmony_ci Restore the terminal to "program" mode, as previously saved by 4807db96d56Sopenharmony_ci :func:`def_prog_mode`. 4817db96d56Sopenharmony_ci 4827db96d56Sopenharmony_ci 4837db96d56Sopenharmony_ci.. function:: reset_shell_mode() 4847db96d56Sopenharmony_ci 4857db96d56Sopenharmony_ci Restore the terminal to "shell" mode, as previously saved by 4867db96d56Sopenharmony_ci :func:`def_shell_mode`. 4877db96d56Sopenharmony_ci 4887db96d56Sopenharmony_ci 4897db96d56Sopenharmony_ci.. function:: resetty() 4907db96d56Sopenharmony_ci 4917db96d56Sopenharmony_ci Restore the state of the terminal modes to what it was at the last call to 4927db96d56Sopenharmony_ci :func:`savetty`. 4937db96d56Sopenharmony_ci 4947db96d56Sopenharmony_ci 4957db96d56Sopenharmony_ci.. function:: resize_term(nlines, ncols) 4967db96d56Sopenharmony_ci 4977db96d56Sopenharmony_ci Backend function used by :func:`resizeterm`, performing most of the work; 4987db96d56Sopenharmony_ci when resizing the windows, :func:`resize_term` blank-fills the areas that are 4997db96d56Sopenharmony_ci extended. The calling application should fill in these areas with 5007db96d56Sopenharmony_ci appropriate data. The :func:`!resize_term` function attempts to resize all 5017db96d56Sopenharmony_ci windows. However, due to the calling convention of pads, it is not possible 5027db96d56Sopenharmony_ci to resize these without additional interaction with the application. 5037db96d56Sopenharmony_ci 5047db96d56Sopenharmony_ci 5057db96d56Sopenharmony_ci.. function:: resizeterm(nlines, ncols) 5067db96d56Sopenharmony_ci 5077db96d56Sopenharmony_ci Resize the standard and current windows to the specified dimensions, and 5087db96d56Sopenharmony_ci adjusts other bookkeeping data used by the curses library that record the 5097db96d56Sopenharmony_ci window dimensions (in particular the SIGWINCH handler). 5107db96d56Sopenharmony_ci 5117db96d56Sopenharmony_ci 5127db96d56Sopenharmony_ci.. function:: savetty() 5137db96d56Sopenharmony_ci 5147db96d56Sopenharmony_ci Save the current state of the terminal modes in a buffer, usable by 5157db96d56Sopenharmony_ci :func:`resetty`. 5167db96d56Sopenharmony_ci 5177db96d56Sopenharmony_ci.. function:: get_escdelay() 5187db96d56Sopenharmony_ci 5197db96d56Sopenharmony_ci Retrieves the value set by :func:`set_escdelay`. 5207db96d56Sopenharmony_ci 5217db96d56Sopenharmony_ci .. versionadded:: 3.9 5227db96d56Sopenharmony_ci 5237db96d56Sopenharmony_ci.. function:: set_escdelay(ms) 5247db96d56Sopenharmony_ci 5257db96d56Sopenharmony_ci Sets the number of milliseconds to wait after reading an escape character, 5267db96d56Sopenharmony_ci to distinguish between an individual escape character entered on the 5277db96d56Sopenharmony_ci keyboard from escape sequences sent by cursor and function keys. 5287db96d56Sopenharmony_ci 5297db96d56Sopenharmony_ci .. versionadded:: 3.9 5307db96d56Sopenharmony_ci 5317db96d56Sopenharmony_ci.. function:: get_tabsize() 5327db96d56Sopenharmony_ci 5337db96d56Sopenharmony_ci Retrieves the value set by :func:`set_tabsize`. 5347db96d56Sopenharmony_ci 5357db96d56Sopenharmony_ci .. versionadded:: 3.9 5367db96d56Sopenharmony_ci 5377db96d56Sopenharmony_ci.. function:: set_tabsize(size) 5387db96d56Sopenharmony_ci 5397db96d56Sopenharmony_ci Sets the number of columns used by the curses library when converting a tab 5407db96d56Sopenharmony_ci character to spaces as it adds the tab to a window. 5417db96d56Sopenharmony_ci 5427db96d56Sopenharmony_ci .. versionadded:: 3.9 5437db96d56Sopenharmony_ci 5447db96d56Sopenharmony_ci.. function:: setsyx(y, x) 5457db96d56Sopenharmony_ci 5467db96d56Sopenharmony_ci Set the virtual screen cursor to *y*, *x*. If *y* and *x* are both ``-1``, then 5477db96d56Sopenharmony_ci :meth:`leaveok <window.leaveok>` is set ``True``. 5487db96d56Sopenharmony_ci 5497db96d56Sopenharmony_ci 5507db96d56Sopenharmony_ci.. function:: setupterm(term=None, fd=-1) 5517db96d56Sopenharmony_ci 5527db96d56Sopenharmony_ci Initialize the terminal. *term* is a string giving 5537db96d56Sopenharmony_ci the terminal name, or ``None``; if omitted or ``None``, the value of the 5547db96d56Sopenharmony_ci :envvar:`TERM` environment variable will be used. *fd* is the 5557db96d56Sopenharmony_ci file descriptor to which any initialization sequences will be sent; if not 5567db96d56Sopenharmony_ci supplied or ``-1``, the file descriptor for ``sys.stdout`` will be used. 5577db96d56Sopenharmony_ci 5587db96d56Sopenharmony_ci 5597db96d56Sopenharmony_ci.. function:: start_color() 5607db96d56Sopenharmony_ci 5617db96d56Sopenharmony_ci Must be called if the programmer wants to use colors, and before any other color 5627db96d56Sopenharmony_ci manipulation routine is called. It is good practice to call this routine right 5637db96d56Sopenharmony_ci after :func:`initscr`. 5647db96d56Sopenharmony_ci 5657db96d56Sopenharmony_ci :func:`start_color` initializes eight basic colors (black, red, green, yellow, 5667db96d56Sopenharmony_ci blue, magenta, cyan, and white), and two global variables in the :mod:`curses` 5677db96d56Sopenharmony_ci module, :const:`COLORS` and :const:`COLOR_PAIRS`, containing the maximum number 5687db96d56Sopenharmony_ci of colors and color-pairs the terminal can support. It also restores the colors 5697db96d56Sopenharmony_ci on the terminal to the values they had when the terminal was just turned on. 5707db96d56Sopenharmony_ci 5717db96d56Sopenharmony_ci 5727db96d56Sopenharmony_ci.. function:: termattrs() 5737db96d56Sopenharmony_ci 5747db96d56Sopenharmony_ci Return a logical OR of all video attributes supported by the terminal. This 5757db96d56Sopenharmony_ci information is useful when a curses program needs complete control over the 5767db96d56Sopenharmony_ci appearance of the screen. 5777db96d56Sopenharmony_ci 5787db96d56Sopenharmony_ci 5797db96d56Sopenharmony_ci.. function:: termname() 5807db96d56Sopenharmony_ci 5817db96d56Sopenharmony_ci Return the value of the environment variable :envvar:`TERM`, as a bytes object, 5827db96d56Sopenharmony_ci truncated to 14 characters. 5837db96d56Sopenharmony_ci 5847db96d56Sopenharmony_ci 5857db96d56Sopenharmony_ci.. function:: tigetflag(capname) 5867db96d56Sopenharmony_ci 5877db96d56Sopenharmony_ci Return the value of the Boolean capability corresponding to the terminfo 5887db96d56Sopenharmony_ci capability name *capname* as an integer. Return the value ``-1`` if *capname* is not a 5897db96d56Sopenharmony_ci Boolean capability, or ``0`` if it is canceled or absent from the terminal 5907db96d56Sopenharmony_ci description. 5917db96d56Sopenharmony_ci 5927db96d56Sopenharmony_ci 5937db96d56Sopenharmony_ci.. function:: tigetnum(capname) 5947db96d56Sopenharmony_ci 5957db96d56Sopenharmony_ci Return the value of the numeric capability corresponding to the terminfo 5967db96d56Sopenharmony_ci capability name *capname* as an integer. Return the value ``-2`` if *capname* is not a 5977db96d56Sopenharmony_ci numeric capability, or ``-1`` if it is canceled or absent from the terminal 5987db96d56Sopenharmony_ci description. 5997db96d56Sopenharmony_ci 6007db96d56Sopenharmony_ci 6017db96d56Sopenharmony_ci.. function:: tigetstr(capname) 6027db96d56Sopenharmony_ci 6037db96d56Sopenharmony_ci Return the value of the string capability corresponding to the terminfo 6047db96d56Sopenharmony_ci capability name *capname* as a bytes object. Return ``None`` if *capname* 6057db96d56Sopenharmony_ci is not a terminfo "string capability", or is canceled or absent from the 6067db96d56Sopenharmony_ci terminal description. 6077db96d56Sopenharmony_ci 6087db96d56Sopenharmony_ci 6097db96d56Sopenharmony_ci.. function:: tparm(str[, ...]) 6107db96d56Sopenharmony_ci 6117db96d56Sopenharmony_ci Instantiate the bytes object *str* with the supplied parameters, where *str* should 6127db96d56Sopenharmony_ci be a parameterized string obtained from the terminfo database. E.g. 6137db96d56Sopenharmony_ci ``tparm(tigetstr("cup"), 5, 3)`` could result in ``b'\033[6;4H'``, the exact 6147db96d56Sopenharmony_ci result depending on terminal type. 6157db96d56Sopenharmony_ci 6167db96d56Sopenharmony_ci 6177db96d56Sopenharmony_ci.. function:: typeahead(fd) 6187db96d56Sopenharmony_ci 6197db96d56Sopenharmony_ci Specify that the file descriptor *fd* be used for typeahead checking. If *fd* 6207db96d56Sopenharmony_ci is ``-1``, then no typeahead checking is done. 6217db96d56Sopenharmony_ci 6227db96d56Sopenharmony_ci The curses library does "line-breakout optimization" by looking for typeahead 6237db96d56Sopenharmony_ci periodically while updating the screen. If input is found, and it is coming 6247db96d56Sopenharmony_ci from a tty, the current update is postponed until refresh or doupdate is called 6257db96d56Sopenharmony_ci again, allowing faster response to commands typed in advance. This function 6267db96d56Sopenharmony_ci allows specifying a different file descriptor for typeahead checking. 6277db96d56Sopenharmony_ci 6287db96d56Sopenharmony_ci 6297db96d56Sopenharmony_ci.. function:: unctrl(ch) 6307db96d56Sopenharmony_ci 6317db96d56Sopenharmony_ci Return a bytes object which is a printable representation of the character *ch*. 6327db96d56Sopenharmony_ci Control characters are represented as a caret followed by the character, for 6337db96d56Sopenharmony_ci example as ``b'^C'``. Printing characters are left as they are. 6347db96d56Sopenharmony_ci 6357db96d56Sopenharmony_ci 6367db96d56Sopenharmony_ci.. function:: ungetch(ch) 6377db96d56Sopenharmony_ci 6387db96d56Sopenharmony_ci Push *ch* so the next :meth:`~window.getch` will return it. 6397db96d56Sopenharmony_ci 6407db96d56Sopenharmony_ci .. note:: 6417db96d56Sopenharmony_ci 6427db96d56Sopenharmony_ci Only one *ch* can be pushed before :meth:`!getch` is called. 6437db96d56Sopenharmony_ci 6447db96d56Sopenharmony_ci 6457db96d56Sopenharmony_ci.. function:: update_lines_cols() 6467db96d56Sopenharmony_ci 6477db96d56Sopenharmony_ci Update :envvar:`LINES` and :envvar:`COLS`. Useful for detecting manual screen resize. 6487db96d56Sopenharmony_ci 6497db96d56Sopenharmony_ci .. versionadded:: 3.5 6507db96d56Sopenharmony_ci 6517db96d56Sopenharmony_ci 6527db96d56Sopenharmony_ci.. function:: unget_wch(ch) 6537db96d56Sopenharmony_ci 6547db96d56Sopenharmony_ci Push *ch* so the next :meth:`~window.get_wch` will return it. 6557db96d56Sopenharmony_ci 6567db96d56Sopenharmony_ci .. note:: 6577db96d56Sopenharmony_ci 6587db96d56Sopenharmony_ci Only one *ch* can be pushed before :meth:`!get_wch` is called. 6597db96d56Sopenharmony_ci 6607db96d56Sopenharmony_ci .. versionadded:: 3.3 6617db96d56Sopenharmony_ci 6627db96d56Sopenharmony_ci 6637db96d56Sopenharmony_ci.. function:: ungetmouse(id, x, y, z, bstate) 6647db96d56Sopenharmony_ci 6657db96d56Sopenharmony_ci Push a :const:`KEY_MOUSE` event onto the input queue, associating the given 6667db96d56Sopenharmony_ci state data with it. 6677db96d56Sopenharmony_ci 6687db96d56Sopenharmony_ci 6697db96d56Sopenharmony_ci.. function:: use_env(flag) 6707db96d56Sopenharmony_ci 6717db96d56Sopenharmony_ci If used, this function should be called before :func:`initscr` or newterm are 6727db96d56Sopenharmony_ci called. When *flag* is ``False``, the values of lines and columns specified in the 6737db96d56Sopenharmony_ci terminfo database will be used, even if environment variables :envvar:`LINES` 6747db96d56Sopenharmony_ci and :envvar:`COLUMNS` (used by default) are set, or if curses is running in a 6757db96d56Sopenharmony_ci window (in which case default behavior would be to use the window size if 6767db96d56Sopenharmony_ci :envvar:`LINES` and :envvar:`COLUMNS` are not set). 6777db96d56Sopenharmony_ci 6787db96d56Sopenharmony_ci 6797db96d56Sopenharmony_ci.. function:: use_default_colors() 6807db96d56Sopenharmony_ci 6817db96d56Sopenharmony_ci Allow use of default values for colors on terminals supporting this feature. Use 6827db96d56Sopenharmony_ci this to support transparency in your application. The default color is assigned 6837db96d56Sopenharmony_ci to the color number ``-1``. After calling this function, ``init_pair(x, 6847db96d56Sopenharmony_ci curses.COLOR_RED, -1)`` initializes, for instance, color pair *x* to a red 6857db96d56Sopenharmony_ci foreground color on the default background. 6867db96d56Sopenharmony_ci 6877db96d56Sopenharmony_ci 6887db96d56Sopenharmony_ci.. function:: wrapper(func, /, *args, **kwargs) 6897db96d56Sopenharmony_ci 6907db96d56Sopenharmony_ci Initialize curses and call another callable object, *func*, which should be the 6917db96d56Sopenharmony_ci rest of your curses-using application. If the application raises an exception, 6927db96d56Sopenharmony_ci this function will restore the terminal to a sane state before re-raising the 6937db96d56Sopenharmony_ci exception and generating a traceback. The callable object *func* is then passed 6947db96d56Sopenharmony_ci the main window 'stdscr' as its first argument, followed by any other arguments 6957db96d56Sopenharmony_ci passed to :func:`!wrapper`. Before calling *func*, :func:`!wrapper` turns on 6967db96d56Sopenharmony_ci cbreak mode, turns off echo, enables the terminal keypad, and initializes colors 6977db96d56Sopenharmony_ci if the terminal has color support. On exit (whether normally or by exception) 6987db96d56Sopenharmony_ci it restores cooked mode, turns on echo, and disables the terminal keypad. 6997db96d56Sopenharmony_ci 7007db96d56Sopenharmony_ci 7017db96d56Sopenharmony_ci.. _curses-window-objects: 7027db96d56Sopenharmony_ci 7037db96d56Sopenharmony_ciWindow Objects 7047db96d56Sopenharmony_ci-------------- 7057db96d56Sopenharmony_ci 7067db96d56Sopenharmony_ciWindow objects, as returned by :func:`initscr` and :func:`newwin` above, have 7077db96d56Sopenharmony_cithe following methods and attributes: 7087db96d56Sopenharmony_ci 7097db96d56Sopenharmony_ci 7107db96d56Sopenharmony_ci.. method:: window.addch(ch[, attr]) 7117db96d56Sopenharmony_ci window.addch(y, x, ch[, attr]) 7127db96d56Sopenharmony_ci 7137db96d56Sopenharmony_ci Paint character *ch* at ``(y, x)`` with attributes *attr*, overwriting any 7147db96d56Sopenharmony_ci character previously painted at that location. By default, the character 7157db96d56Sopenharmony_ci position and attributes are the current settings for the window object. 7167db96d56Sopenharmony_ci 7177db96d56Sopenharmony_ci .. note:: 7187db96d56Sopenharmony_ci 7197db96d56Sopenharmony_ci Writing outside the window, subwindow, or pad raises a :exc:`curses.error`. 7207db96d56Sopenharmony_ci Attempting to write to the lower right corner of a window, subwindow, 7217db96d56Sopenharmony_ci or pad will cause an exception to be raised after the character is printed. 7227db96d56Sopenharmony_ci 7237db96d56Sopenharmony_ci 7247db96d56Sopenharmony_ci.. method:: window.addnstr(str, n[, attr]) 7257db96d56Sopenharmony_ci window.addnstr(y, x, str, n[, attr]) 7267db96d56Sopenharmony_ci 7277db96d56Sopenharmony_ci Paint at most *n* characters of the character string *str* at 7287db96d56Sopenharmony_ci ``(y, x)`` with attributes 7297db96d56Sopenharmony_ci *attr*, overwriting anything previously on the display. 7307db96d56Sopenharmony_ci 7317db96d56Sopenharmony_ci 7327db96d56Sopenharmony_ci.. method:: window.addstr(str[, attr]) 7337db96d56Sopenharmony_ci window.addstr(y, x, str[, attr]) 7347db96d56Sopenharmony_ci 7357db96d56Sopenharmony_ci Paint the character string *str* at ``(y, x)`` with attributes 7367db96d56Sopenharmony_ci *attr*, overwriting anything previously on the display. 7377db96d56Sopenharmony_ci 7387db96d56Sopenharmony_ci .. note:: 7397db96d56Sopenharmony_ci 7407db96d56Sopenharmony_ci * Writing outside the window, subwindow, or pad raises :exc:`curses.error`. 7417db96d56Sopenharmony_ci Attempting to write to the lower right corner of a window, subwindow, 7427db96d56Sopenharmony_ci or pad will cause an exception to be raised after the string is printed. 7437db96d56Sopenharmony_ci 7447db96d56Sopenharmony_ci * A `bug in ncurses <https://bugs.python.org/issue35924>`_, the backend 7457db96d56Sopenharmony_ci for this Python module, can cause SegFaults when resizing windows. This 7467db96d56Sopenharmony_ci is fixed in ncurses-6.1-20190511. If you are stuck with an earlier 7477db96d56Sopenharmony_ci ncurses, you can avoid triggering this if you do not call :func:`addstr` 7487db96d56Sopenharmony_ci with a *str* that has embedded newlines. Instead, call :func:`addstr` 7497db96d56Sopenharmony_ci separately for each line. 7507db96d56Sopenharmony_ci 7517db96d56Sopenharmony_ci 7527db96d56Sopenharmony_ci.. method:: window.attroff(attr) 7537db96d56Sopenharmony_ci 7547db96d56Sopenharmony_ci Remove attribute *attr* from the "background" set applied to all writes to the 7557db96d56Sopenharmony_ci current window. 7567db96d56Sopenharmony_ci 7577db96d56Sopenharmony_ci 7587db96d56Sopenharmony_ci.. method:: window.attron(attr) 7597db96d56Sopenharmony_ci 7607db96d56Sopenharmony_ci Add attribute *attr* from the "background" set applied to all writes to the 7617db96d56Sopenharmony_ci current window. 7627db96d56Sopenharmony_ci 7637db96d56Sopenharmony_ci 7647db96d56Sopenharmony_ci.. method:: window.attrset(attr) 7657db96d56Sopenharmony_ci 7667db96d56Sopenharmony_ci Set the "background" set of attributes to *attr*. This set is initially 7677db96d56Sopenharmony_ci ``0`` (no attributes). 7687db96d56Sopenharmony_ci 7697db96d56Sopenharmony_ci 7707db96d56Sopenharmony_ci.. method:: window.bkgd(ch[, attr]) 7717db96d56Sopenharmony_ci 7727db96d56Sopenharmony_ci Set the background property of the window to the character *ch*, with 7737db96d56Sopenharmony_ci attributes *attr*. The change is then applied to every character position in 7747db96d56Sopenharmony_ci that window: 7757db96d56Sopenharmony_ci 7767db96d56Sopenharmony_ci * The attribute of every character in the window is changed to the new 7777db96d56Sopenharmony_ci background attribute. 7787db96d56Sopenharmony_ci 7797db96d56Sopenharmony_ci * Wherever the former background character appears, it is changed to the new 7807db96d56Sopenharmony_ci background character. 7817db96d56Sopenharmony_ci 7827db96d56Sopenharmony_ci 7837db96d56Sopenharmony_ci.. method:: window.bkgdset(ch[, attr]) 7847db96d56Sopenharmony_ci 7857db96d56Sopenharmony_ci Set the window's background. A window's background consists of a character and 7867db96d56Sopenharmony_ci any combination of attributes. The attribute part of the background is combined 7877db96d56Sopenharmony_ci (OR'ed) with all non-blank characters that are written into the window. Both 7887db96d56Sopenharmony_ci the character and attribute parts of the background are combined with the blank 7897db96d56Sopenharmony_ci characters. The background becomes a property of the character and moves with 7907db96d56Sopenharmony_ci the character through any scrolling and insert/delete line/character operations. 7917db96d56Sopenharmony_ci 7927db96d56Sopenharmony_ci 7937db96d56Sopenharmony_ci.. method:: window.border([ls[, rs[, ts[, bs[, tl[, tr[, bl[, br]]]]]]]]) 7947db96d56Sopenharmony_ci 7957db96d56Sopenharmony_ci Draw a border around the edges of the window. Each parameter specifies the 7967db96d56Sopenharmony_ci character to use for a specific part of the border; see the table below for more 7977db96d56Sopenharmony_ci details. 7987db96d56Sopenharmony_ci 7997db96d56Sopenharmony_ci .. note:: 8007db96d56Sopenharmony_ci 8017db96d56Sopenharmony_ci A ``0`` value for any parameter will cause the default character to be used for 8027db96d56Sopenharmony_ci that parameter. Keyword parameters can *not* be used. The defaults are listed 8037db96d56Sopenharmony_ci in this table: 8047db96d56Sopenharmony_ci 8057db96d56Sopenharmony_ci +-----------+---------------------+-----------------------+ 8067db96d56Sopenharmony_ci | Parameter | Description | Default value | 8077db96d56Sopenharmony_ci +===========+=====================+=======================+ 8087db96d56Sopenharmony_ci | *ls* | Left side | :const:`ACS_VLINE` | 8097db96d56Sopenharmony_ci +-----------+---------------------+-----------------------+ 8107db96d56Sopenharmony_ci | *rs* | Right side | :const:`ACS_VLINE` | 8117db96d56Sopenharmony_ci +-----------+---------------------+-----------------------+ 8127db96d56Sopenharmony_ci | *ts* | Top | :const:`ACS_HLINE` | 8137db96d56Sopenharmony_ci +-----------+---------------------+-----------------------+ 8147db96d56Sopenharmony_ci | *bs* | Bottom | :const:`ACS_HLINE` | 8157db96d56Sopenharmony_ci +-----------+---------------------+-----------------------+ 8167db96d56Sopenharmony_ci | *tl* | Upper-left corner | :const:`ACS_ULCORNER` | 8177db96d56Sopenharmony_ci +-----------+---------------------+-----------------------+ 8187db96d56Sopenharmony_ci | *tr* | Upper-right corner | :const:`ACS_URCORNER` | 8197db96d56Sopenharmony_ci +-----------+---------------------+-----------------------+ 8207db96d56Sopenharmony_ci | *bl* | Bottom-left corner | :const:`ACS_LLCORNER` | 8217db96d56Sopenharmony_ci +-----------+---------------------+-----------------------+ 8227db96d56Sopenharmony_ci | *br* | Bottom-right corner | :const:`ACS_LRCORNER` | 8237db96d56Sopenharmony_ci +-----------+---------------------+-----------------------+ 8247db96d56Sopenharmony_ci 8257db96d56Sopenharmony_ci 8267db96d56Sopenharmony_ci.. method:: window.box([vertch, horch]) 8277db96d56Sopenharmony_ci 8287db96d56Sopenharmony_ci Similar to :meth:`border`, but both *ls* and *rs* are *vertch* and both *ts* and 8297db96d56Sopenharmony_ci *bs* are *horch*. The default corner characters are always used by this function. 8307db96d56Sopenharmony_ci 8317db96d56Sopenharmony_ci 8327db96d56Sopenharmony_ci.. method:: window.chgat(attr) 8337db96d56Sopenharmony_ci window.chgat(num, attr) 8347db96d56Sopenharmony_ci window.chgat(y, x, attr) 8357db96d56Sopenharmony_ci window.chgat(y, x, num, attr) 8367db96d56Sopenharmony_ci 8377db96d56Sopenharmony_ci Set the attributes of *num* characters at the current cursor position, or at 8387db96d56Sopenharmony_ci position ``(y, x)`` if supplied. If *num* is not given or is ``-1``, 8397db96d56Sopenharmony_ci the attribute will be set on all the characters to the end of the line. This 8407db96d56Sopenharmony_ci function moves cursor to position ``(y, x)`` if supplied. The changed line 8417db96d56Sopenharmony_ci will be touched using the :meth:`touchline` method so that the contents will 8427db96d56Sopenharmony_ci be redisplayed by the next window refresh. 8437db96d56Sopenharmony_ci 8447db96d56Sopenharmony_ci 8457db96d56Sopenharmony_ci.. method:: window.clear() 8467db96d56Sopenharmony_ci 8477db96d56Sopenharmony_ci Like :meth:`erase`, but also cause the whole window to be repainted upon next 8487db96d56Sopenharmony_ci call to :meth:`refresh`. 8497db96d56Sopenharmony_ci 8507db96d56Sopenharmony_ci 8517db96d56Sopenharmony_ci.. method:: window.clearok(flag) 8527db96d56Sopenharmony_ci 8537db96d56Sopenharmony_ci If *flag* is ``True``, the next call to :meth:`refresh` will clear the window 8547db96d56Sopenharmony_ci completely. 8557db96d56Sopenharmony_ci 8567db96d56Sopenharmony_ci 8577db96d56Sopenharmony_ci.. method:: window.clrtobot() 8587db96d56Sopenharmony_ci 8597db96d56Sopenharmony_ci Erase from cursor to the end of the window: all lines below the cursor are 8607db96d56Sopenharmony_ci deleted, and then the equivalent of :meth:`clrtoeol` is performed. 8617db96d56Sopenharmony_ci 8627db96d56Sopenharmony_ci 8637db96d56Sopenharmony_ci.. method:: window.clrtoeol() 8647db96d56Sopenharmony_ci 8657db96d56Sopenharmony_ci Erase from cursor to the end of the line. 8667db96d56Sopenharmony_ci 8677db96d56Sopenharmony_ci 8687db96d56Sopenharmony_ci.. method:: window.cursyncup() 8697db96d56Sopenharmony_ci 8707db96d56Sopenharmony_ci Update the current cursor position of all the ancestors of the window to 8717db96d56Sopenharmony_ci reflect the current cursor position of the window. 8727db96d56Sopenharmony_ci 8737db96d56Sopenharmony_ci 8747db96d56Sopenharmony_ci.. method:: window.delch([y, x]) 8757db96d56Sopenharmony_ci 8767db96d56Sopenharmony_ci Delete any character at ``(y, x)``. 8777db96d56Sopenharmony_ci 8787db96d56Sopenharmony_ci 8797db96d56Sopenharmony_ci.. method:: window.deleteln() 8807db96d56Sopenharmony_ci 8817db96d56Sopenharmony_ci Delete the line under the cursor. All following lines are moved up by one line. 8827db96d56Sopenharmony_ci 8837db96d56Sopenharmony_ci 8847db96d56Sopenharmony_ci.. method:: window.derwin(begin_y, begin_x) 8857db96d56Sopenharmony_ci window.derwin(nlines, ncols, begin_y, begin_x) 8867db96d56Sopenharmony_ci 8877db96d56Sopenharmony_ci An abbreviation for "derive window", :meth:`derwin` is the same as calling 8887db96d56Sopenharmony_ci :meth:`subwin`, except that *begin_y* and *begin_x* are relative to the origin 8897db96d56Sopenharmony_ci of the window, rather than relative to the entire screen. Return a window 8907db96d56Sopenharmony_ci object for the derived window. 8917db96d56Sopenharmony_ci 8927db96d56Sopenharmony_ci 8937db96d56Sopenharmony_ci.. method:: window.echochar(ch[, attr]) 8947db96d56Sopenharmony_ci 8957db96d56Sopenharmony_ci Add character *ch* with attribute *attr*, and immediately call :meth:`refresh` 8967db96d56Sopenharmony_ci on the window. 8977db96d56Sopenharmony_ci 8987db96d56Sopenharmony_ci 8997db96d56Sopenharmony_ci.. method:: window.enclose(y, x) 9007db96d56Sopenharmony_ci 9017db96d56Sopenharmony_ci Test whether the given pair of screen-relative character-cell coordinates are 9027db96d56Sopenharmony_ci enclosed by the given window, returning ``True`` or ``False``. It is useful for 9037db96d56Sopenharmony_ci determining what subset of the screen windows enclose the location of a mouse 9047db96d56Sopenharmony_ci event. 9057db96d56Sopenharmony_ci 9067db96d56Sopenharmony_ci .. versionchanged:: 3.10 9077db96d56Sopenharmony_ci Previously it returned ``1`` or ``0`` instead of ``True`` or ``False``. 9087db96d56Sopenharmony_ci 9097db96d56Sopenharmony_ci 9107db96d56Sopenharmony_ci.. attribute:: window.encoding 9117db96d56Sopenharmony_ci 9127db96d56Sopenharmony_ci Encoding used to encode method arguments (Unicode strings and characters). 9137db96d56Sopenharmony_ci The encoding attribute is inherited from the parent window when a subwindow 9147db96d56Sopenharmony_ci is created, for example with :meth:`window.subwin`. 9157db96d56Sopenharmony_ci By default, current locale encoding is used (see :func:`locale.getencoding`). 9167db96d56Sopenharmony_ci 9177db96d56Sopenharmony_ci .. versionadded:: 3.3 9187db96d56Sopenharmony_ci 9197db96d56Sopenharmony_ci 9207db96d56Sopenharmony_ci.. method:: window.erase() 9217db96d56Sopenharmony_ci 9227db96d56Sopenharmony_ci Clear the window. 9237db96d56Sopenharmony_ci 9247db96d56Sopenharmony_ci 9257db96d56Sopenharmony_ci.. method:: window.getbegyx() 9267db96d56Sopenharmony_ci 9277db96d56Sopenharmony_ci Return a tuple ``(y, x)`` of co-ordinates of upper-left corner. 9287db96d56Sopenharmony_ci 9297db96d56Sopenharmony_ci 9307db96d56Sopenharmony_ci.. method:: window.getbkgd() 9317db96d56Sopenharmony_ci 9327db96d56Sopenharmony_ci Return the given window's current background character/attribute pair. 9337db96d56Sopenharmony_ci 9347db96d56Sopenharmony_ci 9357db96d56Sopenharmony_ci.. method:: window.getch([y, x]) 9367db96d56Sopenharmony_ci 9377db96d56Sopenharmony_ci Get a character. Note that the integer returned does *not* have to be in ASCII 9387db96d56Sopenharmony_ci range: function keys, keypad keys and so on are represented by numbers higher 9397db96d56Sopenharmony_ci than 255. In no-delay mode, return ``-1`` if there is no input, otherwise 9407db96d56Sopenharmony_ci wait until a key is pressed. 9417db96d56Sopenharmony_ci 9427db96d56Sopenharmony_ci 9437db96d56Sopenharmony_ci.. method:: window.get_wch([y, x]) 9447db96d56Sopenharmony_ci 9457db96d56Sopenharmony_ci Get a wide character. Return a character for most keys, or an integer for 9467db96d56Sopenharmony_ci function keys, keypad keys, and other special keys. 9477db96d56Sopenharmony_ci In no-delay mode, raise an exception if there is no input. 9487db96d56Sopenharmony_ci 9497db96d56Sopenharmony_ci .. versionadded:: 3.3 9507db96d56Sopenharmony_ci 9517db96d56Sopenharmony_ci 9527db96d56Sopenharmony_ci.. method:: window.getkey([y, x]) 9537db96d56Sopenharmony_ci 9547db96d56Sopenharmony_ci Get a character, returning a string instead of an integer, as :meth:`getch` 9557db96d56Sopenharmony_ci does. Function keys, keypad keys and other special keys return a multibyte 9567db96d56Sopenharmony_ci string containing the key name. In no-delay mode, raise an exception if 9577db96d56Sopenharmony_ci there is no input. 9587db96d56Sopenharmony_ci 9597db96d56Sopenharmony_ci 9607db96d56Sopenharmony_ci.. method:: window.getmaxyx() 9617db96d56Sopenharmony_ci 9627db96d56Sopenharmony_ci Return a tuple ``(y, x)`` of the height and width of the window. 9637db96d56Sopenharmony_ci 9647db96d56Sopenharmony_ci 9657db96d56Sopenharmony_ci.. method:: window.getparyx() 9667db96d56Sopenharmony_ci 9677db96d56Sopenharmony_ci Return the beginning coordinates of this window relative to its parent window 9687db96d56Sopenharmony_ci as a tuple ``(y, x)``. Return ``(-1, -1)`` if this window has no 9697db96d56Sopenharmony_ci parent. 9707db96d56Sopenharmony_ci 9717db96d56Sopenharmony_ci 9727db96d56Sopenharmony_ci.. method:: window.getstr() 9737db96d56Sopenharmony_ci window.getstr(n) 9747db96d56Sopenharmony_ci window.getstr(y, x) 9757db96d56Sopenharmony_ci window.getstr(y, x, n) 9767db96d56Sopenharmony_ci 9777db96d56Sopenharmony_ci Read a bytes object from the user, with primitive line editing capacity. 9787db96d56Sopenharmony_ci 9797db96d56Sopenharmony_ci 9807db96d56Sopenharmony_ci.. method:: window.getyx() 9817db96d56Sopenharmony_ci 9827db96d56Sopenharmony_ci Return a tuple ``(y, x)`` of current cursor position relative to the window's 9837db96d56Sopenharmony_ci upper-left corner. 9847db96d56Sopenharmony_ci 9857db96d56Sopenharmony_ci 9867db96d56Sopenharmony_ci.. method:: window.hline(ch, n) 9877db96d56Sopenharmony_ci window.hline(y, x, ch, n) 9887db96d56Sopenharmony_ci 9897db96d56Sopenharmony_ci Display a horizontal line starting at ``(y, x)`` with length *n* consisting of 9907db96d56Sopenharmony_ci the character *ch*. 9917db96d56Sopenharmony_ci 9927db96d56Sopenharmony_ci 9937db96d56Sopenharmony_ci.. method:: window.idcok(flag) 9947db96d56Sopenharmony_ci 9957db96d56Sopenharmony_ci If *flag* is ``False``, curses no longer considers using the hardware insert/delete 9967db96d56Sopenharmony_ci character feature of the terminal; if *flag* is ``True``, use of character insertion 9977db96d56Sopenharmony_ci and deletion is enabled. When curses is first initialized, use of character 9987db96d56Sopenharmony_ci insert/delete is enabled by default. 9997db96d56Sopenharmony_ci 10007db96d56Sopenharmony_ci 10017db96d56Sopenharmony_ci.. method:: window.idlok(flag) 10027db96d56Sopenharmony_ci 10037db96d56Sopenharmony_ci If *flag* is ``True``, :mod:`curses` will try and use hardware line 10047db96d56Sopenharmony_ci editing facilities. Otherwise, line insertion/deletion are disabled. 10057db96d56Sopenharmony_ci 10067db96d56Sopenharmony_ci 10077db96d56Sopenharmony_ci.. method:: window.immedok(flag) 10087db96d56Sopenharmony_ci 10097db96d56Sopenharmony_ci If *flag* is ``True``, any change in the window image automatically causes the 10107db96d56Sopenharmony_ci window to be refreshed; you no longer have to call :meth:`refresh` yourself. 10117db96d56Sopenharmony_ci However, it may degrade performance considerably, due to repeated calls to 10127db96d56Sopenharmony_ci wrefresh. This option is disabled by default. 10137db96d56Sopenharmony_ci 10147db96d56Sopenharmony_ci 10157db96d56Sopenharmony_ci.. method:: window.inch([y, x]) 10167db96d56Sopenharmony_ci 10177db96d56Sopenharmony_ci Return the character at the given position in the window. The bottom 8 bits are 10187db96d56Sopenharmony_ci the character proper, and upper bits are the attributes. 10197db96d56Sopenharmony_ci 10207db96d56Sopenharmony_ci 10217db96d56Sopenharmony_ci.. method:: window.insch(ch[, attr]) 10227db96d56Sopenharmony_ci window.insch(y, x, ch[, attr]) 10237db96d56Sopenharmony_ci 10247db96d56Sopenharmony_ci Paint character *ch* at ``(y, x)`` with attributes *attr*, moving the line from 10257db96d56Sopenharmony_ci position *x* right by one character. 10267db96d56Sopenharmony_ci 10277db96d56Sopenharmony_ci 10287db96d56Sopenharmony_ci.. method:: window.insdelln(nlines) 10297db96d56Sopenharmony_ci 10307db96d56Sopenharmony_ci Insert *nlines* lines into the specified window above the current line. The 10317db96d56Sopenharmony_ci *nlines* bottom lines are lost. For negative *nlines*, delete *nlines* lines 10327db96d56Sopenharmony_ci starting with the one under the cursor, and move the remaining lines up. The 10337db96d56Sopenharmony_ci bottom *nlines* lines are cleared. The current cursor position remains the 10347db96d56Sopenharmony_ci same. 10357db96d56Sopenharmony_ci 10367db96d56Sopenharmony_ci 10377db96d56Sopenharmony_ci.. method:: window.insertln() 10387db96d56Sopenharmony_ci 10397db96d56Sopenharmony_ci Insert a blank line under the cursor. All following lines are moved down by one 10407db96d56Sopenharmony_ci line. 10417db96d56Sopenharmony_ci 10427db96d56Sopenharmony_ci 10437db96d56Sopenharmony_ci.. method:: window.insnstr(str, n[, attr]) 10447db96d56Sopenharmony_ci window.insnstr(y, x, str, n[, attr]) 10457db96d56Sopenharmony_ci 10467db96d56Sopenharmony_ci Insert a character string (as many characters as will fit on the line) before 10477db96d56Sopenharmony_ci the character under the cursor, up to *n* characters. If *n* is zero or 10487db96d56Sopenharmony_ci negative, the entire string is inserted. All characters to the right of the 10497db96d56Sopenharmony_ci cursor are shifted right, with the rightmost characters on the line being lost. 10507db96d56Sopenharmony_ci The cursor position does not change (after moving to *y*, *x*, if specified). 10517db96d56Sopenharmony_ci 10527db96d56Sopenharmony_ci 10537db96d56Sopenharmony_ci.. method:: window.insstr(str[, attr]) 10547db96d56Sopenharmony_ci window.insstr(y, x, str[, attr]) 10557db96d56Sopenharmony_ci 10567db96d56Sopenharmony_ci Insert a character string (as many characters as will fit on the line) before 10577db96d56Sopenharmony_ci the character under the cursor. All characters to the right of the cursor are 10587db96d56Sopenharmony_ci shifted right, with the rightmost characters on the line being lost. The cursor 10597db96d56Sopenharmony_ci position does not change (after moving to *y*, *x*, if specified). 10607db96d56Sopenharmony_ci 10617db96d56Sopenharmony_ci 10627db96d56Sopenharmony_ci.. method:: window.instr([n]) 10637db96d56Sopenharmony_ci window.instr(y, x[, n]) 10647db96d56Sopenharmony_ci 10657db96d56Sopenharmony_ci Return a bytes object of characters, extracted from the window starting at the 10667db96d56Sopenharmony_ci current cursor position, or at *y*, *x* if specified. Attributes are stripped 10677db96d56Sopenharmony_ci from the characters. If *n* is specified, :meth:`instr` returns a string 10687db96d56Sopenharmony_ci at most *n* characters long (exclusive of the trailing NUL). 10697db96d56Sopenharmony_ci 10707db96d56Sopenharmony_ci 10717db96d56Sopenharmony_ci.. method:: window.is_linetouched(line) 10727db96d56Sopenharmony_ci 10737db96d56Sopenharmony_ci Return ``True`` if the specified line was modified since the last call to 10747db96d56Sopenharmony_ci :meth:`refresh`; otherwise return ``False``. Raise a :exc:`curses.error` 10757db96d56Sopenharmony_ci exception if *line* is not valid for the given window. 10767db96d56Sopenharmony_ci 10777db96d56Sopenharmony_ci 10787db96d56Sopenharmony_ci.. method:: window.is_wintouched() 10797db96d56Sopenharmony_ci 10807db96d56Sopenharmony_ci Return ``True`` if the specified window was modified since the last call to 10817db96d56Sopenharmony_ci :meth:`refresh`; otherwise return ``False``. 10827db96d56Sopenharmony_ci 10837db96d56Sopenharmony_ci 10847db96d56Sopenharmony_ci.. method:: window.keypad(flag) 10857db96d56Sopenharmony_ci 10867db96d56Sopenharmony_ci If *flag* is ``True``, escape sequences generated by some keys (keypad, function keys) 10877db96d56Sopenharmony_ci will be interpreted by :mod:`curses`. If *flag* is ``False``, escape sequences will be 10887db96d56Sopenharmony_ci left as is in the input stream. 10897db96d56Sopenharmony_ci 10907db96d56Sopenharmony_ci 10917db96d56Sopenharmony_ci.. method:: window.leaveok(flag) 10927db96d56Sopenharmony_ci 10937db96d56Sopenharmony_ci If *flag* is ``True``, cursor is left where it is on update, instead of being at "cursor 10947db96d56Sopenharmony_ci position." This reduces cursor movement where possible. If possible the cursor 10957db96d56Sopenharmony_ci will be made invisible. 10967db96d56Sopenharmony_ci 10977db96d56Sopenharmony_ci If *flag* is ``False``, cursor will always be at "cursor position" after an update. 10987db96d56Sopenharmony_ci 10997db96d56Sopenharmony_ci 11007db96d56Sopenharmony_ci.. method:: window.move(new_y, new_x) 11017db96d56Sopenharmony_ci 11027db96d56Sopenharmony_ci Move cursor to ``(new_y, new_x)``. 11037db96d56Sopenharmony_ci 11047db96d56Sopenharmony_ci 11057db96d56Sopenharmony_ci.. method:: window.mvderwin(y, x) 11067db96d56Sopenharmony_ci 11077db96d56Sopenharmony_ci Move the window inside its parent window. The screen-relative parameters of 11087db96d56Sopenharmony_ci the window are not changed. This routine is used to display different parts of 11097db96d56Sopenharmony_ci the parent window at the same physical position on the screen. 11107db96d56Sopenharmony_ci 11117db96d56Sopenharmony_ci 11127db96d56Sopenharmony_ci.. method:: window.mvwin(new_y, new_x) 11137db96d56Sopenharmony_ci 11147db96d56Sopenharmony_ci Move the window so its upper-left corner is at ``(new_y, new_x)``. 11157db96d56Sopenharmony_ci 11167db96d56Sopenharmony_ci 11177db96d56Sopenharmony_ci.. method:: window.nodelay(flag) 11187db96d56Sopenharmony_ci 11197db96d56Sopenharmony_ci If *flag* is ``True``, :meth:`getch` will be non-blocking. 11207db96d56Sopenharmony_ci 11217db96d56Sopenharmony_ci 11227db96d56Sopenharmony_ci.. method:: window.notimeout(flag) 11237db96d56Sopenharmony_ci 11247db96d56Sopenharmony_ci If *flag* is ``True``, escape sequences will not be timed out. 11257db96d56Sopenharmony_ci 11267db96d56Sopenharmony_ci If *flag* is ``False``, after a few milliseconds, an escape sequence will not be 11277db96d56Sopenharmony_ci interpreted, and will be left in the input stream as is. 11287db96d56Sopenharmony_ci 11297db96d56Sopenharmony_ci 11307db96d56Sopenharmony_ci.. method:: window.noutrefresh() 11317db96d56Sopenharmony_ci 11327db96d56Sopenharmony_ci Mark for refresh but wait. This function updates the data structure 11337db96d56Sopenharmony_ci representing the desired state of the window, but does not force an update of 11347db96d56Sopenharmony_ci the physical screen. To accomplish that, call :func:`doupdate`. 11357db96d56Sopenharmony_ci 11367db96d56Sopenharmony_ci 11377db96d56Sopenharmony_ci.. method:: window.overlay(destwin[, sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol]) 11387db96d56Sopenharmony_ci 11397db96d56Sopenharmony_ci Overlay the window on top of *destwin*. The windows need not be the same size, 11407db96d56Sopenharmony_ci only the overlapping region is copied. This copy is non-destructive, which means 11417db96d56Sopenharmony_ci that the current background character does not overwrite the old contents of 11427db96d56Sopenharmony_ci *destwin*. 11437db96d56Sopenharmony_ci 11447db96d56Sopenharmony_ci To get fine-grained control over the copied region, the second form of 11457db96d56Sopenharmony_ci :meth:`overlay` can be used. *sminrow* and *smincol* are the upper-left 11467db96d56Sopenharmony_ci coordinates of the source window, and the other variables mark a rectangle in 11477db96d56Sopenharmony_ci the destination window. 11487db96d56Sopenharmony_ci 11497db96d56Sopenharmony_ci 11507db96d56Sopenharmony_ci.. method:: window.overwrite(destwin[, sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol]) 11517db96d56Sopenharmony_ci 11527db96d56Sopenharmony_ci Overwrite the window on top of *destwin*. The windows need not be the same size, 11537db96d56Sopenharmony_ci in which case only the overlapping region is copied. This copy is destructive, 11547db96d56Sopenharmony_ci which means that the current background character overwrites the old contents of 11557db96d56Sopenharmony_ci *destwin*. 11567db96d56Sopenharmony_ci 11577db96d56Sopenharmony_ci To get fine-grained control over the copied region, the second form of 11587db96d56Sopenharmony_ci :meth:`overwrite` can be used. *sminrow* and *smincol* are the upper-left 11597db96d56Sopenharmony_ci coordinates of the source window, the other variables mark a rectangle in the 11607db96d56Sopenharmony_ci destination window. 11617db96d56Sopenharmony_ci 11627db96d56Sopenharmony_ci 11637db96d56Sopenharmony_ci.. method:: window.putwin(file) 11647db96d56Sopenharmony_ci 11657db96d56Sopenharmony_ci Write all data associated with the window into the provided file object. This 11667db96d56Sopenharmony_ci information can be later retrieved using the :func:`getwin` function. 11677db96d56Sopenharmony_ci 11687db96d56Sopenharmony_ci 11697db96d56Sopenharmony_ci.. method:: window.redrawln(beg, num) 11707db96d56Sopenharmony_ci 11717db96d56Sopenharmony_ci Indicate that the *num* screen lines, starting at line *beg*, are corrupted and 11727db96d56Sopenharmony_ci should be completely redrawn on the next :meth:`refresh` call. 11737db96d56Sopenharmony_ci 11747db96d56Sopenharmony_ci 11757db96d56Sopenharmony_ci.. method:: window.redrawwin() 11767db96d56Sopenharmony_ci 11777db96d56Sopenharmony_ci Touch the entire window, causing it to be completely redrawn on the next 11787db96d56Sopenharmony_ci :meth:`refresh` call. 11797db96d56Sopenharmony_ci 11807db96d56Sopenharmony_ci 11817db96d56Sopenharmony_ci.. method:: window.refresh([pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol]) 11827db96d56Sopenharmony_ci 11837db96d56Sopenharmony_ci Update the display immediately (sync actual screen with previous 11847db96d56Sopenharmony_ci drawing/deleting methods). 11857db96d56Sopenharmony_ci 11867db96d56Sopenharmony_ci The 6 optional arguments can only be specified when the window is a pad created 11877db96d56Sopenharmony_ci with :func:`newpad`. The additional parameters are needed to indicate what part 11887db96d56Sopenharmony_ci of the pad and screen are involved. *pminrow* and *pmincol* specify the upper 11897db96d56Sopenharmony_ci left-hand corner of the rectangle to be displayed in the pad. *sminrow*, 11907db96d56Sopenharmony_ci *smincol*, *smaxrow*, and *smaxcol* specify the edges of the rectangle to be 11917db96d56Sopenharmony_ci displayed on the screen. The lower right-hand corner of the rectangle to be 11927db96d56Sopenharmony_ci displayed in the pad is calculated from the screen coordinates, since the 11937db96d56Sopenharmony_ci rectangles must be the same size. Both rectangles must be entirely contained 11947db96d56Sopenharmony_ci within their respective structures. Negative values of *pminrow*, *pmincol*, 11957db96d56Sopenharmony_ci *sminrow*, or *smincol* are treated as if they were zero. 11967db96d56Sopenharmony_ci 11977db96d56Sopenharmony_ci 11987db96d56Sopenharmony_ci.. method:: window.resize(nlines, ncols) 11997db96d56Sopenharmony_ci 12007db96d56Sopenharmony_ci Reallocate storage for a curses window to adjust its dimensions to the 12017db96d56Sopenharmony_ci specified values. If either dimension is larger than the current values, the 12027db96d56Sopenharmony_ci window's data is filled with blanks that have the current background 12037db96d56Sopenharmony_ci rendition (as set by :meth:`bkgdset`) merged into them. 12047db96d56Sopenharmony_ci 12057db96d56Sopenharmony_ci 12067db96d56Sopenharmony_ci.. method:: window.scroll([lines=1]) 12077db96d56Sopenharmony_ci 12087db96d56Sopenharmony_ci Scroll the screen or scrolling region upward by *lines* lines. 12097db96d56Sopenharmony_ci 12107db96d56Sopenharmony_ci 12117db96d56Sopenharmony_ci.. method:: window.scrollok(flag) 12127db96d56Sopenharmony_ci 12137db96d56Sopenharmony_ci Control what happens when the cursor of a window is moved off the edge of the 12147db96d56Sopenharmony_ci window or scrolling region, either as a result of a newline action on the bottom 12157db96d56Sopenharmony_ci line, or typing the last character of the last line. If *flag* is ``False``, the 12167db96d56Sopenharmony_ci cursor is left on the bottom line. If *flag* is ``True``, the window is scrolled up 12177db96d56Sopenharmony_ci one line. Note that in order to get the physical scrolling effect on the 12187db96d56Sopenharmony_ci terminal, it is also necessary to call :meth:`idlok`. 12197db96d56Sopenharmony_ci 12207db96d56Sopenharmony_ci 12217db96d56Sopenharmony_ci.. method:: window.setscrreg(top, bottom) 12227db96d56Sopenharmony_ci 12237db96d56Sopenharmony_ci Set the scrolling region from line *top* to line *bottom*. All scrolling actions 12247db96d56Sopenharmony_ci will take place in this region. 12257db96d56Sopenharmony_ci 12267db96d56Sopenharmony_ci 12277db96d56Sopenharmony_ci.. method:: window.standend() 12287db96d56Sopenharmony_ci 12297db96d56Sopenharmony_ci Turn off the standout attribute. On some terminals this has the side effect of 12307db96d56Sopenharmony_ci turning off all attributes. 12317db96d56Sopenharmony_ci 12327db96d56Sopenharmony_ci 12337db96d56Sopenharmony_ci.. method:: window.standout() 12347db96d56Sopenharmony_ci 12357db96d56Sopenharmony_ci Turn on attribute *A_STANDOUT*. 12367db96d56Sopenharmony_ci 12377db96d56Sopenharmony_ci 12387db96d56Sopenharmony_ci.. method:: window.subpad(begin_y, begin_x) 12397db96d56Sopenharmony_ci window.subpad(nlines, ncols, begin_y, begin_x) 12407db96d56Sopenharmony_ci 12417db96d56Sopenharmony_ci Return a sub-window, whose upper-left corner is at ``(begin_y, begin_x)``, and 12427db96d56Sopenharmony_ci whose width/height is *ncols*/*nlines*. 12437db96d56Sopenharmony_ci 12447db96d56Sopenharmony_ci 12457db96d56Sopenharmony_ci.. method:: window.subwin(begin_y, begin_x) 12467db96d56Sopenharmony_ci window.subwin(nlines, ncols, begin_y, begin_x) 12477db96d56Sopenharmony_ci 12487db96d56Sopenharmony_ci Return a sub-window, whose upper-left corner is at ``(begin_y, begin_x)``, and 12497db96d56Sopenharmony_ci whose width/height is *ncols*/*nlines*. 12507db96d56Sopenharmony_ci 12517db96d56Sopenharmony_ci By default, the sub-window will extend from the specified position to the lower 12527db96d56Sopenharmony_ci right corner of the window. 12537db96d56Sopenharmony_ci 12547db96d56Sopenharmony_ci 12557db96d56Sopenharmony_ci.. method:: window.syncdown() 12567db96d56Sopenharmony_ci 12577db96d56Sopenharmony_ci Touch each location in the window that has been touched in any of its ancestor 12587db96d56Sopenharmony_ci windows. This routine is called by :meth:`refresh`, so it should almost never 12597db96d56Sopenharmony_ci be necessary to call it manually. 12607db96d56Sopenharmony_ci 12617db96d56Sopenharmony_ci 12627db96d56Sopenharmony_ci.. method:: window.syncok(flag) 12637db96d56Sopenharmony_ci 12647db96d56Sopenharmony_ci If *flag* is ``True``, then :meth:`syncup` is called automatically 12657db96d56Sopenharmony_ci whenever there is a change in the window. 12667db96d56Sopenharmony_ci 12677db96d56Sopenharmony_ci 12687db96d56Sopenharmony_ci.. method:: window.syncup() 12697db96d56Sopenharmony_ci 12707db96d56Sopenharmony_ci Touch all locations in ancestors of the window that have been changed in the 12717db96d56Sopenharmony_ci window. 12727db96d56Sopenharmony_ci 12737db96d56Sopenharmony_ci 12747db96d56Sopenharmony_ci.. method:: window.timeout(delay) 12757db96d56Sopenharmony_ci 12767db96d56Sopenharmony_ci Set blocking or non-blocking read behavior for the window. If *delay* is 12777db96d56Sopenharmony_ci negative, blocking read is used (which will wait indefinitely for input). If 12787db96d56Sopenharmony_ci *delay* is zero, then non-blocking read is used, and :meth:`getch` will 12797db96d56Sopenharmony_ci return ``-1`` if no input is waiting. If *delay* is positive, then 12807db96d56Sopenharmony_ci :meth:`getch` will block for *delay* milliseconds, and return ``-1`` if there is 12817db96d56Sopenharmony_ci still no input at the end of that time. 12827db96d56Sopenharmony_ci 12837db96d56Sopenharmony_ci 12847db96d56Sopenharmony_ci.. method:: window.touchline(start, count[, changed]) 12857db96d56Sopenharmony_ci 12867db96d56Sopenharmony_ci Pretend *count* lines have been changed, starting with line *start*. If 12877db96d56Sopenharmony_ci *changed* is supplied, it specifies whether the affected lines are marked as 12887db96d56Sopenharmony_ci having been changed (*changed*\ ``=True``) or unchanged (*changed*\ ``=False``). 12897db96d56Sopenharmony_ci 12907db96d56Sopenharmony_ci 12917db96d56Sopenharmony_ci.. method:: window.touchwin() 12927db96d56Sopenharmony_ci 12937db96d56Sopenharmony_ci Pretend the whole window has been changed, for purposes of drawing 12947db96d56Sopenharmony_ci optimizations. 12957db96d56Sopenharmony_ci 12967db96d56Sopenharmony_ci 12977db96d56Sopenharmony_ci.. method:: window.untouchwin() 12987db96d56Sopenharmony_ci 12997db96d56Sopenharmony_ci Mark all lines in the window as unchanged since the last call to 13007db96d56Sopenharmony_ci :meth:`refresh`. 13017db96d56Sopenharmony_ci 13027db96d56Sopenharmony_ci 13037db96d56Sopenharmony_ci.. method:: window.vline(ch, n[, attr]) 13047db96d56Sopenharmony_ci window.vline(y, x, ch, n[, attr]) 13057db96d56Sopenharmony_ci 13067db96d56Sopenharmony_ci Display a vertical line starting at ``(y, x)`` with length *n* consisting of the 13077db96d56Sopenharmony_ci character *ch* with attributes *attr*. 13087db96d56Sopenharmony_ci 13097db96d56Sopenharmony_ci 13107db96d56Sopenharmony_ciConstants 13117db96d56Sopenharmony_ci--------- 13127db96d56Sopenharmony_ci 13137db96d56Sopenharmony_ciThe :mod:`curses` module defines the following data members: 13147db96d56Sopenharmony_ci 13157db96d56Sopenharmony_ci 13167db96d56Sopenharmony_ci.. data:: ERR 13177db96d56Sopenharmony_ci 13187db96d56Sopenharmony_ci Some curses routines that return an integer, such as :meth:`~window.getch`, return 13197db96d56Sopenharmony_ci :const:`ERR` upon failure. 13207db96d56Sopenharmony_ci 13217db96d56Sopenharmony_ci 13227db96d56Sopenharmony_ci.. data:: OK 13237db96d56Sopenharmony_ci 13247db96d56Sopenharmony_ci Some curses routines that return an integer, such as :func:`napms`, return 13257db96d56Sopenharmony_ci :const:`OK` upon success. 13267db96d56Sopenharmony_ci 13277db96d56Sopenharmony_ci 13287db96d56Sopenharmony_ci.. data:: version 13297db96d56Sopenharmony_ci.. data:: __version__ 13307db96d56Sopenharmony_ci 13317db96d56Sopenharmony_ci A bytes object representing the current version of the module. 13327db96d56Sopenharmony_ci 13337db96d56Sopenharmony_ci 13347db96d56Sopenharmony_ci.. data:: ncurses_version 13357db96d56Sopenharmony_ci 13367db96d56Sopenharmony_ci A named tuple containing the three components of the ncurses library 13377db96d56Sopenharmony_ci version: *major*, *minor*, and *patch*. All values are integers. The 13387db96d56Sopenharmony_ci components can also be accessed by name, so ``curses.ncurses_version[0]`` 13397db96d56Sopenharmony_ci is equivalent to ``curses.ncurses_version.major`` and so on. 13407db96d56Sopenharmony_ci 13417db96d56Sopenharmony_ci Availability: if the ncurses library is used. 13427db96d56Sopenharmony_ci 13437db96d56Sopenharmony_ci .. versionadded:: 3.8 13447db96d56Sopenharmony_ci 13457db96d56Sopenharmony_ci.. data:: COLORS 13467db96d56Sopenharmony_ci 13477db96d56Sopenharmony_ci The maximum number of colors the terminal can support. 13487db96d56Sopenharmony_ci 13497db96d56Sopenharmony_ci.. data:: COLOR_PAIRS 13507db96d56Sopenharmony_ci 13517db96d56Sopenharmony_ci The maximum number of color pairs the terminal can support. 13527db96d56Sopenharmony_ci 13537db96d56Sopenharmony_ciSome constants are available to specify character cell attributes. 13547db96d56Sopenharmony_ciThe exact constants available are system dependent. 13557db96d56Sopenharmony_ci 13567db96d56Sopenharmony_ci+------------------------+-------------------------------+ 13577db96d56Sopenharmony_ci| Attribute | Meaning | 13587db96d56Sopenharmony_ci+========================+===============================+ 13597db96d56Sopenharmony_ci| .. data:: A_ALTCHARSET | Alternate character set mode | 13607db96d56Sopenharmony_ci+------------------------+-------------------------------+ 13617db96d56Sopenharmony_ci| .. data:: A_BLINK | Blink mode | 13627db96d56Sopenharmony_ci+------------------------+-------------------------------+ 13637db96d56Sopenharmony_ci| .. data:: A_BOLD | Bold mode | 13647db96d56Sopenharmony_ci+------------------------+-------------------------------+ 13657db96d56Sopenharmony_ci| .. data:: A_DIM | Dim mode | 13667db96d56Sopenharmony_ci+------------------------+-------------------------------+ 13677db96d56Sopenharmony_ci| .. data:: A_INVIS | Invisible or blank mode | 13687db96d56Sopenharmony_ci+------------------------+-------------------------------+ 13697db96d56Sopenharmony_ci| .. data:: A_ITALIC | Italic mode | 13707db96d56Sopenharmony_ci+------------------------+-------------------------------+ 13717db96d56Sopenharmony_ci| .. data:: A_NORMAL | Normal attribute | 13727db96d56Sopenharmony_ci+------------------------+-------------------------------+ 13737db96d56Sopenharmony_ci| .. data:: A_PROTECT | Protected mode | 13747db96d56Sopenharmony_ci+------------------------+-------------------------------+ 13757db96d56Sopenharmony_ci| .. data:: A_REVERSE | Reverse background and | 13767db96d56Sopenharmony_ci| | foreground colors | 13777db96d56Sopenharmony_ci+------------------------+-------------------------------+ 13787db96d56Sopenharmony_ci| .. data:: A_STANDOUT | Standout mode | 13797db96d56Sopenharmony_ci+------------------------+-------------------------------+ 13807db96d56Sopenharmony_ci| .. data:: A_UNDERLINE | Underline mode | 13817db96d56Sopenharmony_ci+------------------------+-------------------------------+ 13827db96d56Sopenharmony_ci| .. data:: A_HORIZONTAL | Horizontal highlight | 13837db96d56Sopenharmony_ci+------------------------+-------------------------------+ 13847db96d56Sopenharmony_ci| .. data:: A_LEFT | Left highlight | 13857db96d56Sopenharmony_ci+------------------------+-------------------------------+ 13867db96d56Sopenharmony_ci| .. data:: A_LOW | Low highlight | 13877db96d56Sopenharmony_ci+------------------------+-------------------------------+ 13887db96d56Sopenharmony_ci| .. data:: A_RIGHT | Right highlight | 13897db96d56Sopenharmony_ci+------------------------+-------------------------------+ 13907db96d56Sopenharmony_ci| .. data:: A_TOP | Top highlight | 13917db96d56Sopenharmony_ci+------------------------+-------------------------------+ 13927db96d56Sopenharmony_ci| .. data:: A_VERTICAL | Vertical highlight | 13937db96d56Sopenharmony_ci+------------------------+-------------------------------+ 13947db96d56Sopenharmony_ci 13957db96d56Sopenharmony_ci.. versionadded:: 3.7 13967db96d56Sopenharmony_ci ``A_ITALIC`` was added. 13977db96d56Sopenharmony_ci 13987db96d56Sopenharmony_ciSeveral constants are available to extract corresponding attributes returned 13997db96d56Sopenharmony_ciby some methods. 14007db96d56Sopenharmony_ci 14017db96d56Sopenharmony_ci+-------------------------+-------------------------------+ 14027db96d56Sopenharmony_ci| Bit-mask | Meaning | 14037db96d56Sopenharmony_ci+=========================+===============================+ 14047db96d56Sopenharmony_ci| .. data:: A_ATTRIBUTES | Bit-mask to extract | 14057db96d56Sopenharmony_ci| | attributes | 14067db96d56Sopenharmony_ci+-------------------------+-------------------------------+ 14077db96d56Sopenharmony_ci| .. data:: A_CHARTEXT | Bit-mask to extract a | 14087db96d56Sopenharmony_ci| | character | 14097db96d56Sopenharmony_ci+-------------------------+-------------------------------+ 14107db96d56Sopenharmony_ci| .. data:: A_COLOR | Bit-mask to extract | 14117db96d56Sopenharmony_ci| | color-pair field information | 14127db96d56Sopenharmony_ci+-------------------------+-------------------------------+ 14137db96d56Sopenharmony_ci 14147db96d56Sopenharmony_ciKeys are referred to by integer constants with names starting with ``KEY_``. 14157db96d56Sopenharmony_ciThe exact keycaps available are system dependent. 14167db96d56Sopenharmony_ci 14177db96d56Sopenharmony_ci.. XXX this table is far too large! should it be alphabetized? 14187db96d56Sopenharmony_ci 14197db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14207db96d56Sopenharmony_ci| Key constant | Key | 14217db96d56Sopenharmony_ci+=========================+============================================+ 14227db96d56Sopenharmony_ci| .. data:: KEY_MIN | Minimum key value | 14237db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14247db96d56Sopenharmony_ci| .. data:: KEY_BREAK | Break key (unreliable) | 14257db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14267db96d56Sopenharmony_ci| .. data:: KEY_DOWN | Down-arrow | 14277db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14287db96d56Sopenharmony_ci| .. data:: KEY_UP | Up-arrow | 14297db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14307db96d56Sopenharmony_ci| .. data:: KEY_LEFT | Left-arrow | 14317db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14327db96d56Sopenharmony_ci| .. data:: KEY_RIGHT | Right-arrow | 14337db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14347db96d56Sopenharmony_ci| .. data:: KEY_HOME | Home key (upward+left arrow) | 14357db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14367db96d56Sopenharmony_ci| .. data:: KEY_BACKSPACE | Backspace (unreliable) | 14377db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14387db96d56Sopenharmony_ci| .. data:: KEY_F0 | Function keys. Up to 64 function keys are | 14397db96d56Sopenharmony_ci| | supported. | 14407db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14417db96d56Sopenharmony_ci| .. data:: KEY_Fn | Value of function key *n* | 14427db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14437db96d56Sopenharmony_ci| .. data:: KEY_DL | Delete line | 14447db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14457db96d56Sopenharmony_ci| .. data:: KEY_IL | Insert line | 14467db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14477db96d56Sopenharmony_ci| .. data:: KEY_DC | Delete character | 14487db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14497db96d56Sopenharmony_ci| .. data:: KEY_IC | Insert char or enter insert mode | 14507db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14517db96d56Sopenharmony_ci| .. data:: KEY_EIC | Exit insert char mode | 14527db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14537db96d56Sopenharmony_ci| .. data:: KEY_CLEAR | Clear screen | 14547db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14557db96d56Sopenharmony_ci| .. data:: KEY_EOS | Clear to end of screen | 14567db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14577db96d56Sopenharmony_ci| .. data:: KEY_EOL | Clear to end of line | 14587db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14597db96d56Sopenharmony_ci| .. data:: KEY_SF | Scroll 1 line forward | 14607db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14617db96d56Sopenharmony_ci| .. data:: KEY_SR | Scroll 1 line backward (reverse) | 14627db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14637db96d56Sopenharmony_ci| .. data:: KEY_NPAGE | Next page | 14647db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14657db96d56Sopenharmony_ci| .. data:: KEY_PPAGE | Previous page | 14667db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14677db96d56Sopenharmony_ci| .. data:: KEY_STAB | Set tab | 14687db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14697db96d56Sopenharmony_ci| .. data:: KEY_CTAB | Clear tab | 14707db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14717db96d56Sopenharmony_ci| .. data:: KEY_CATAB | Clear all tabs | 14727db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14737db96d56Sopenharmony_ci| .. data:: KEY_ENTER | Enter or send (unreliable) | 14747db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14757db96d56Sopenharmony_ci| .. data:: KEY_SRESET | Soft (partial) reset (unreliable) | 14767db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14777db96d56Sopenharmony_ci| .. data:: KEY_RESET | Reset or hard reset (unreliable) | 14787db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14797db96d56Sopenharmony_ci| .. data:: KEY_PRINT | Print | 14807db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14817db96d56Sopenharmony_ci| .. data:: KEY_LL | Home down or bottom (lower left) | 14827db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14837db96d56Sopenharmony_ci| .. data:: KEY_A1 | Upper left of keypad | 14847db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14857db96d56Sopenharmony_ci| .. data:: KEY_A3 | Upper right of keypad | 14867db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14877db96d56Sopenharmony_ci| .. data:: KEY_B2 | Center of keypad | 14887db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14897db96d56Sopenharmony_ci| .. data:: KEY_C1 | Lower left of keypad | 14907db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14917db96d56Sopenharmony_ci| .. data:: KEY_C3 | Lower right of keypad | 14927db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14937db96d56Sopenharmony_ci| .. data:: KEY_BTAB | Back tab | 14947db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14957db96d56Sopenharmony_ci| .. data:: KEY_BEG | Beg (beginning) | 14967db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14977db96d56Sopenharmony_ci| .. data:: KEY_CANCEL | Cancel | 14987db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 14997db96d56Sopenharmony_ci| .. data:: KEY_CLOSE | Close | 15007db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15017db96d56Sopenharmony_ci| .. data:: KEY_COMMAND | Cmd (command) | 15027db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15037db96d56Sopenharmony_ci| .. data:: KEY_COPY | Copy | 15047db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15057db96d56Sopenharmony_ci| .. data:: KEY_CREATE | Create | 15067db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15077db96d56Sopenharmony_ci| .. data:: KEY_END | End | 15087db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15097db96d56Sopenharmony_ci| .. data:: KEY_EXIT | Exit | 15107db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15117db96d56Sopenharmony_ci| .. data:: KEY_FIND | Find | 15127db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15137db96d56Sopenharmony_ci| .. data:: KEY_HELP | Help | 15147db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15157db96d56Sopenharmony_ci| .. data:: KEY_MARK | Mark | 15167db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15177db96d56Sopenharmony_ci| .. data:: KEY_MESSAGE | Message | 15187db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15197db96d56Sopenharmony_ci| .. data:: KEY_MOVE | Move | 15207db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15217db96d56Sopenharmony_ci| .. data:: KEY_NEXT | Next | 15227db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15237db96d56Sopenharmony_ci| .. data:: KEY_OPEN | Open | 15247db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15257db96d56Sopenharmony_ci| .. data:: KEY_OPTIONS | Options | 15267db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15277db96d56Sopenharmony_ci| .. data:: KEY_PREVIOUS | Prev (previous) | 15287db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15297db96d56Sopenharmony_ci| .. data:: KEY_REDO | Redo | 15307db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15317db96d56Sopenharmony_ci| .. data:: KEY_REFERENCE | Ref (reference) | 15327db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15337db96d56Sopenharmony_ci| .. data:: KEY_REFRESH | Refresh | 15347db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15357db96d56Sopenharmony_ci| .. data:: KEY_REPLACE | Replace | 15367db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15377db96d56Sopenharmony_ci| .. data:: KEY_RESTART | Restart | 15387db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15397db96d56Sopenharmony_ci| .. data:: KEY_RESUME | Resume | 15407db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15417db96d56Sopenharmony_ci| .. data:: KEY_SAVE | Save | 15427db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15437db96d56Sopenharmony_ci| .. data:: KEY_SBEG | Shifted Beg (beginning) | 15447db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15457db96d56Sopenharmony_ci| .. data:: KEY_SCANCEL | Shifted Cancel | 15467db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15477db96d56Sopenharmony_ci| .. data:: KEY_SCOMMAND | Shifted Command | 15487db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15497db96d56Sopenharmony_ci| .. data:: KEY_SCOPY | Shifted Copy | 15507db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15517db96d56Sopenharmony_ci| .. data:: KEY_SCREATE | Shifted Create | 15527db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15537db96d56Sopenharmony_ci| .. data:: KEY_SDC | Shifted Delete char | 15547db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15557db96d56Sopenharmony_ci| .. data:: KEY_SDL | Shifted Delete line | 15567db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15577db96d56Sopenharmony_ci| .. data:: KEY_SELECT | Select | 15587db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15597db96d56Sopenharmony_ci| .. data:: KEY_SEND | Shifted End | 15607db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15617db96d56Sopenharmony_ci| .. data:: KEY_SEOL | Shifted Clear line | 15627db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15637db96d56Sopenharmony_ci| .. data:: KEY_SEXIT | Shifted Exit | 15647db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15657db96d56Sopenharmony_ci| .. data:: KEY_SFIND | Shifted Find | 15667db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15677db96d56Sopenharmony_ci| .. data:: KEY_SHELP | Shifted Help | 15687db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15697db96d56Sopenharmony_ci| .. data:: KEY_SHOME | Shifted Home | 15707db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15717db96d56Sopenharmony_ci| .. data:: KEY_SIC | Shifted Input | 15727db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15737db96d56Sopenharmony_ci| .. data:: KEY_SLEFT | Shifted Left arrow | 15747db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15757db96d56Sopenharmony_ci| .. data:: KEY_SMESSAGE | Shifted Message | 15767db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15777db96d56Sopenharmony_ci| .. data:: KEY_SMOVE | Shifted Move | 15787db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15797db96d56Sopenharmony_ci| .. data:: KEY_SNEXT | Shifted Next | 15807db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15817db96d56Sopenharmony_ci| .. data:: KEY_SOPTIONS | Shifted Options | 15827db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15837db96d56Sopenharmony_ci| .. data:: KEY_SPREVIOUS | Shifted Prev | 15847db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15857db96d56Sopenharmony_ci| .. data:: KEY_SPRINT | Shifted Print | 15867db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15877db96d56Sopenharmony_ci| .. data:: KEY_SREDO | Shifted Redo | 15887db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15897db96d56Sopenharmony_ci| .. data:: KEY_SREPLACE | Shifted Replace | 15907db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15917db96d56Sopenharmony_ci| .. data:: KEY_SRIGHT | Shifted Right arrow | 15927db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15937db96d56Sopenharmony_ci| .. data:: KEY_SRSUME | Shifted Resume | 15947db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15957db96d56Sopenharmony_ci| .. data:: KEY_SSAVE | Shifted Save | 15967db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15977db96d56Sopenharmony_ci| .. data:: KEY_SSUSPEND | Shifted Suspend | 15987db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 15997db96d56Sopenharmony_ci| .. data:: KEY_SUNDO | Shifted Undo | 16007db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 16017db96d56Sopenharmony_ci| .. data:: KEY_SUSPEND | Suspend | 16027db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 16037db96d56Sopenharmony_ci| .. data:: KEY_UNDO | Undo | 16047db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 16057db96d56Sopenharmony_ci| .. data:: KEY_MOUSE | Mouse event has occurred | 16067db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 16077db96d56Sopenharmony_ci| .. data:: KEY_RESIZE | Terminal resize event | 16087db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 16097db96d56Sopenharmony_ci| .. data:: KEY_MAX | Maximum key value | 16107db96d56Sopenharmony_ci+-------------------------+--------------------------------------------+ 16117db96d56Sopenharmony_ci 16127db96d56Sopenharmony_ciOn VT100s and their software emulations, such as X terminal emulators, there are 16137db96d56Sopenharmony_cinormally at least four function keys (:const:`KEY_F1 <KEY_Fn>`, :const:`KEY_F2 <KEY_Fn>`, 16147db96d56Sopenharmony_ci:const:`KEY_F3 <KEY_Fn>`, :const:`KEY_F4 <KEY_Fn>`) available, and the arrow keys mapped to 16157db96d56Sopenharmony_ci:const:`KEY_UP`, :const:`KEY_DOWN`, :const:`KEY_LEFT` and :const:`KEY_RIGHT` in 16167db96d56Sopenharmony_cithe obvious way. If your machine has a PC keyboard, it is safe to expect arrow 16177db96d56Sopenharmony_cikeys and twelve function keys (older PC keyboards may have only ten function 16187db96d56Sopenharmony_cikeys); also, the following keypad mappings are standard: 16197db96d56Sopenharmony_ci 16207db96d56Sopenharmony_ci+------------------+-----------+ 16217db96d56Sopenharmony_ci| Keycap | Constant | 16227db96d56Sopenharmony_ci+==================+===========+ 16237db96d56Sopenharmony_ci| :kbd:`Insert` | KEY_IC | 16247db96d56Sopenharmony_ci+------------------+-----------+ 16257db96d56Sopenharmony_ci| :kbd:`Delete` | KEY_DC | 16267db96d56Sopenharmony_ci+------------------+-----------+ 16277db96d56Sopenharmony_ci| :kbd:`Home` | KEY_HOME | 16287db96d56Sopenharmony_ci+------------------+-----------+ 16297db96d56Sopenharmony_ci| :kbd:`End` | KEY_END | 16307db96d56Sopenharmony_ci+------------------+-----------+ 16317db96d56Sopenharmony_ci| :kbd:`Page Up` | KEY_PPAGE | 16327db96d56Sopenharmony_ci+------------------+-----------+ 16337db96d56Sopenharmony_ci| :kbd:`Page Down` | KEY_NPAGE | 16347db96d56Sopenharmony_ci+------------------+-----------+ 16357db96d56Sopenharmony_ci 16367db96d56Sopenharmony_ciThe following table lists characters from the alternate character set. These are 16377db96d56Sopenharmony_ciinherited from the VT100 terminal, and will generally be available on software 16387db96d56Sopenharmony_ciemulations such as X terminals. When there is no graphic available, curses 16397db96d56Sopenharmony_cifalls back on a crude printable ASCII approximation. 16407db96d56Sopenharmony_ci 16417db96d56Sopenharmony_ci.. note:: 16427db96d56Sopenharmony_ci 16437db96d56Sopenharmony_ci These are available only after :func:`initscr` has been called. 16447db96d56Sopenharmony_ci 16457db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 16467db96d56Sopenharmony_ci| ACS code | Meaning | 16477db96d56Sopenharmony_ci+========================+==========================================+ 16487db96d56Sopenharmony_ci| .. data:: ACS_BBSS | alternate name for upper right corner | 16497db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 16507db96d56Sopenharmony_ci| .. data:: ACS_BLOCK | solid square block | 16517db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 16527db96d56Sopenharmony_ci| .. data:: ACS_BOARD | board of squares | 16537db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 16547db96d56Sopenharmony_ci| .. data:: ACS_BSBS | alternate name for horizontal line | 16557db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 16567db96d56Sopenharmony_ci| .. data:: ACS_BSSB | alternate name for upper left corner | 16577db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 16587db96d56Sopenharmony_ci| .. data:: ACS_BSSS | alternate name for top tee | 16597db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 16607db96d56Sopenharmony_ci| .. data:: ACS_BTEE | bottom tee | 16617db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 16627db96d56Sopenharmony_ci| .. data:: ACS_BULLET | bullet | 16637db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 16647db96d56Sopenharmony_ci| .. data:: ACS_CKBOARD | checker board (stipple) | 16657db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 16667db96d56Sopenharmony_ci| .. data:: ACS_DARROW | arrow pointing down | 16677db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 16687db96d56Sopenharmony_ci| .. data:: ACS_DEGREE | degree symbol | 16697db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 16707db96d56Sopenharmony_ci| .. data:: ACS_DIAMOND | diamond | 16717db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 16727db96d56Sopenharmony_ci| .. data:: ACS_GEQUAL | greater-than-or-equal-to | 16737db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 16747db96d56Sopenharmony_ci| .. data:: ACS_HLINE | horizontal line | 16757db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 16767db96d56Sopenharmony_ci| .. data:: ACS_LANTERN | lantern symbol | 16777db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 16787db96d56Sopenharmony_ci| .. data:: ACS_LARROW | left arrow | 16797db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 16807db96d56Sopenharmony_ci| .. data:: ACS_LEQUAL | less-than-or-equal-to | 16817db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 16827db96d56Sopenharmony_ci| .. data:: ACS_LLCORNER | lower left-hand corner | 16837db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 16847db96d56Sopenharmony_ci| .. data:: ACS_LRCORNER | lower right-hand corner | 16857db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 16867db96d56Sopenharmony_ci| .. data:: ACS_LTEE | left tee | 16877db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 16887db96d56Sopenharmony_ci| .. data:: ACS_NEQUAL | not-equal sign | 16897db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 16907db96d56Sopenharmony_ci| .. data:: ACS_PI | letter pi | 16917db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 16927db96d56Sopenharmony_ci| .. data:: ACS_PLMINUS | plus-or-minus sign | 16937db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 16947db96d56Sopenharmony_ci| .. data:: ACS_PLUS | big plus sign | 16957db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 16967db96d56Sopenharmony_ci| .. data:: ACS_RARROW | right arrow | 16977db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 16987db96d56Sopenharmony_ci| .. data:: ACS_RTEE | right tee | 16997db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 17007db96d56Sopenharmony_ci| .. data:: ACS_S1 | scan line 1 | 17017db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 17027db96d56Sopenharmony_ci| .. data:: ACS_S3 | scan line 3 | 17037db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 17047db96d56Sopenharmony_ci| .. data:: ACS_S7 | scan line 7 | 17057db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 17067db96d56Sopenharmony_ci| .. data:: ACS_S9 | scan line 9 | 17077db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 17087db96d56Sopenharmony_ci| .. data:: ACS_SBBS | alternate name for lower right corner | 17097db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 17107db96d56Sopenharmony_ci| .. data:: ACS_SBSB | alternate name for vertical line | 17117db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 17127db96d56Sopenharmony_ci| .. data:: ACS_SBSS | alternate name for right tee | 17137db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 17147db96d56Sopenharmony_ci| .. data:: ACS_SSBB | alternate name for lower left corner | 17157db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 17167db96d56Sopenharmony_ci| .. data:: ACS_SSBS | alternate name for bottom tee | 17177db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 17187db96d56Sopenharmony_ci| .. data:: ACS_SSSB | alternate name for left tee | 17197db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 17207db96d56Sopenharmony_ci| .. data:: ACS_SSSS | alternate name for crossover or big plus | 17217db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 17227db96d56Sopenharmony_ci| .. data:: ACS_STERLING | pound sterling | 17237db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 17247db96d56Sopenharmony_ci| .. data:: ACS_TTEE | top tee | 17257db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 17267db96d56Sopenharmony_ci| .. data:: ACS_UARROW | up arrow | 17277db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 17287db96d56Sopenharmony_ci| .. data:: ACS_ULCORNER | upper left corner | 17297db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 17307db96d56Sopenharmony_ci| .. data:: ACS_URCORNER | upper right corner | 17317db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 17327db96d56Sopenharmony_ci| .. data:: ACS_VLINE | vertical line | 17337db96d56Sopenharmony_ci+------------------------+------------------------------------------+ 17347db96d56Sopenharmony_ci 17357db96d56Sopenharmony_ciThe following table lists mouse button constants used by :meth:`getmouse`: 17367db96d56Sopenharmony_ci 17377db96d56Sopenharmony_ci+----------------------------------+---------------------------------------------+ 17387db96d56Sopenharmony_ci| Mouse button constant | Meaning | 17397db96d56Sopenharmony_ci+==================================+=============================================+ 17407db96d56Sopenharmony_ci| .. data:: BUTTONn_PRESSED | Mouse button *n* pressed | 17417db96d56Sopenharmony_ci+----------------------------------+---------------------------------------------+ 17427db96d56Sopenharmony_ci| .. data:: BUTTONn_RELEASED | Mouse button *n* released | 17437db96d56Sopenharmony_ci+----------------------------------+---------------------------------------------+ 17447db96d56Sopenharmony_ci| .. data:: BUTTONn_CLICKED | Mouse button *n* clicked | 17457db96d56Sopenharmony_ci+----------------------------------+---------------------------------------------+ 17467db96d56Sopenharmony_ci| .. data:: BUTTONn_DOUBLE_CLICKED | Mouse button *n* double clicked | 17477db96d56Sopenharmony_ci+----------------------------------+---------------------------------------------+ 17487db96d56Sopenharmony_ci| .. data:: BUTTONn_TRIPLE_CLICKED | Mouse button *n* triple clicked | 17497db96d56Sopenharmony_ci+----------------------------------+---------------------------------------------+ 17507db96d56Sopenharmony_ci| .. data:: BUTTON_SHIFT | Shift was down during button state change | 17517db96d56Sopenharmony_ci+----------------------------------+---------------------------------------------+ 17527db96d56Sopenharmony_ci| .. data:: BUTTON_CTRL | Control was down during button state change | 17537db96d56Sopenharmony_ci+----------------------------------+---------------------------------------------+ 17547db96d56Sopenharmony_ci| .. data:: BUTTON_ALT | Control was down during button state change | 17557db96d56Sopenharmony_ci+----------------------------------+---------------------------------------------+ 17567db96d56Sopenharmony_ci 17577db96d56Sopenharmony_ci .. versionchanged:: 3.10 17587db96d56Sopenharmony_ci The ``BUTTON5_*`` constants are now exposed if they are provided by the 17597db96d56Sopenharmony_ci underlying curses library. 17607db96d56Sopenharmony_ci 17617db96d56Sopenharmony_ciThe following table lists the predefined colors: 17627db96d56Sopenharmony_ci 17637db96d56Sopenharmony_ci+-------------------------+----------------------------+ 17647db96d56Sopenharmony_ci| Constant | Color | 17657db96d56Sopenharmony_ci+=========================+============================+ 17667db96d56Sopenharmony_ci| .. data:: COLOR_BLACK | Black | 17677db96d56Sopenharmony_ci+-------------------------+----------------------------+ 17687db96d56Sopenharmony_ci| .. data:: COLOR_BLUE | Blue | 17697db96d56Sopenharmony_ci+-------------------------+----------------------------+ 17707db96d56Sopenharmony_ci| .. data:: COLOR_CYAN | Cyan (light greenish blue) | 17717db96d56Sopenharmony_ci+-------------------------+----------------------------+ 17727db96d56Sopenharmony_ci| .. data:: COLOR_GREEN | Green | 17737db96d56Sopenharmony_ci+-------------------------+----------------------------+ 17747db96d56Sopenharmony_ci| .. data:: COLOR_MAGENTA | Magenta (purplish red) | 17757db96d56Sopenharmony_ci+-------------------------+----------------------------+ 17767db96d56Sopenharmony_ci| .. data:: COLOR_RED | Red | 17777db96d56Sopenharmony_ci+-------------------------+----------------------------+ 17787db96d56Sopenharmony_ci| .. data:: COLOR_WHITE | White | 17797db96d56Sopenharmony_ci+-------------------------+----------------------------+ 17807db96d56Sopenharmony_ci| .. data:: COLOR_YELLOW | Yellow | 17817db96d56Sopenharmony_ci+-------------------------+----------------------------+ 17827db96d56Sopenharmony_ci 17837db96d56Sopenharmony_ci 17847db96d56Sopenharmony_ci:mod:`curses.textpad` --- Text input widget for curses programs 17857db96d56Sopenharmony_ci=============================================================== 17867db96d56Sopenharmony_ci 17877db96d56Sopenharmony_ci.. module:: curses.textpad 17887db96d56Sopenharmony_ci :synopsis: Emacs-like input editing in a curses window. 17897db96d56Sopenharmony_ci.. moduleauthor:: Eric Raymond <esr@thyrsus.com> 17907db96d56Sopenharmony_ci.. sectionauthor:: Eric Raymond <esr@thyrsus.com> 17917db96d56Sopenharmony_ci 17927db96d56Sopenharmony_ci 17937db96d56Sopenharmony_ciThe :mod:`curses.textpad` module provides a :class:`Textbox` class that handles 17947db96d56Sopenharmony_cielementary text editing in a curses window, supporting a set of keybindings 17957db96d56Sopenharmony_ciresembling those of Emacs (thus, also of Netscape Navigator, BBedit 6.x, 17967db96d56Sopenharmony_ciFrameMaker, and many other programs). The module also provides a 17977db96d56Sopenharmony_cirectangle-drawing function useful for framing text boxes or for other purposes. 17987db96d56Sopenharmony_ci 17997db96d56Sopenharmony_ciThe module :mod:`curses.textpad` defines the following function: 18007db96d56Sopenharmony_ci 18017db96d56Sopenharmony_ci 18027db96d56Sopenharmony_ci.. function:: rectangle(win, uly, ulx, lry, lrx) 18037db96d56Sopenharmony_ci 18047db96d56Sopenharmony_ci Draw a rectangle. The first argument must be a window object; the remaining 18057db96d56Sopenharmony_ci arguments are coordinates relative to that window. The second and third 18067db96d56Sopenharmony_ci arguments are the y and x coordinates of the upper left hand corner of the 18077db96d56Sopenharmony_ci rectangle to be drawn; the fourth and fifth arguments are the y and x 18087db96d56Sopenharmony_ci coordinates of the lower right hand corner. The rectangle will be drawn using 18097db96d56Sopenharmony_ci VT100/IBM PC forms characters on terminals that make this possible (including 18107db96d56Sopenharmony_ci xterm and most other software terminal emulators). Otherwise it will be drawn 18117db96d56Sopenharmony_ci with ASCII dashes, vertical bars, and plus signs. 18127db96d56Sopenharmony_ci 18137db96d56Sopenharmony_ci 18147db96d56Sopenharmony_ci.. _curses-textpad-objects: 18157db96d56Sopenharmony_ci 18167db96d56Sopenharmony_ciTextbox objects 18177db96d56Sopenharmony_ci--------------- 18187db96d56Sopenharmony_ci 18197db96d56Sopenharmony_ciYou can instantiate a :class:`Textbox` object as follows: 18207db96d56Sopenharmony_ci 18217db96d56Sopenharmony_ci 18227db96d56Sopenharmony_ci.. class:: Textbox(win) 18237db96d56Sopenharmony_ci 18247db96d56Sopenharmony_ci Return a textbox widget object. The *win* argument should be a curses 18257db96d56Sopenharmony_ci :ref:`window <curses-window-objects>` object in which the textbox is to 18267db96d56Sopenharmony_ci be contained. The edit cursor of the textbox is initially located at the 18277db96d56Sopenharmony_ci upper left hand corner of the containing window, with coordinates ``(0, 0)``. 18287db96d56Sopenharmony_ci The instance's :attr:`stripspaces` flag is initially on. 18297db96d56Sopenharmony_ci 18307db96d56Sopenharmony_ci :class:`Textbox` objects have the following methods: 18317db96d56Sopenharmony_ci 18327db96d56Sopenharmony_ci 18337db96d56Sopenharmony_ci .. method:: edit([validator]) 18347db96d56Sopenharmony_ci 18357db96d56Sopenharmony_ci This is the entry point you will normally use. It accepts editing 18367db96d56Sopenharmony_ci keystrokes until one of the termination keystrokes is entered. If 18377db96d56Sopenharmony_ci *validator* is supplied, it must be a function. It will be called for 18387db96d56Sopenharmony_ci each keystroke entered with the keystroke as a parameter; command dispatch 18397db96d56Sopenharmony_ci is done on the result. This method returns the window contents as a 18407db96d56Sopenharmony_ci string; whether blanks in the window are included is affected by the 18417db96d56Sopenharmony_ci :attr:`stripspaces` attribute. 18427db96d56Sopenharmony_ci 18437db96d56Sopenharmony_ci 18447db96d56Sopenharmony_ci .. method:: do_command(ch) 18457db96d56Sopenharmony_ci 18467db96d56Sopenharmony_ci Process a single command keystroke. Here are the supported special 18477db96d56Sopenharmony_ci keystrokes: 18487db96d56Sopenharmony_ci 18497db96d56Sopenharmony_ci +------------------+-------------------------------------------+ 18507db96d56Sopenharmony_ci | Keystroke | Action | 18517db96d56Sopenharmony_ci +==================+===========================================+ 18527db96d56Sopenharmony_ci | :kbd:`Control-A` | Go to left edge of window. | 18537db96d56Sopenharmony_ci +------------------+-------------------------------------------+ 18547db96d56Sopenharmony_ci | :kbd:`Control-B` | Cursor left, wrapping to previous line if | 18557db96d56Sopenharmony_ci | | appropriate. | 18567db96d56Sopenharmony_ci +------------------+-------------------------------------------+ 18577db96d56Sopenharmony_ci | :kbd:`Control-D` | Delete character under cursor. | 18587db96d56Sopenharmony_ci +------------------+-------------------------------------------+ 18597db96d56Sopenharmony_ci | :kbd:`Control-E` | Go to right edge (stripspaces off) or end | 18607db96d56Sopenharmony_ci | | of line (stripspaces on). | 18617db96d56Sopenharmony_ci +------------------+-------------------------------------------+ 18627db96d56Sopenharmony_ci | :kbd:`Control-F` | Cursor right, wrapping to next line when | 18637db96d56Sopenharmony_ci | | appropriate. | 18647db96d56Sopenharmony_ci +------------------+-------------------------------------------+ 18657db96d56Sopenharmony_ci | :kbd:`Control-G` | Terminate, returning the window contents. | 18667db96d56Sopenharmony_ci +------------------+-------------------------------------------+ 18677db96d56Sopenharmony_ci | :kbd:`Control-H` | Delete character backward. | 18687db96d56Sopenharmony_ci +------------------+-------------------------------------------+ 18697db96d56Sopenharmony_ci | :kbd:`Control-J` | Terminate if the window is 1 line, | 18707db96d56Sopenharmony_ci | | otherwise insert newline. | 18717db96d56Sopenharmony_ci +------------------+-------------------------------------------+ 18727db96d56Sopenharmony_ci | :kbd:`Control-K` | If line is blank, delete it, otherwise | 18737db96d56Sopenharmony_ci | | clear to end of line. | 18747db96d56Sopenharmony_ci +------------------+-------------------------------------------+ 18757db96d56Sopenharmony_ci | :kbd:`Control-L` | Refresh screen. | 18767db96d56Sopenharmony_ci +------------------+-------------------------------------------+ 18777db96d56Sopenharmony_ci | :kbd:`Control-N` | Cursor down; move down one line. | 18787db96d56Sopenharmony_ci +------------------+-------------------------------------------+ 18797db96d56Sopenharmony_ci | :kbd:`Control-O` | Insert a blank line at cursor location. | 18807db96d56Sopenharmony_ci +------------------+-------------------------------------------+ 18817db96d56Sopenharmony_ci | :kbd:`Control-P` | Cursor up; move up one line. | 18827db96d56Sopenharmony_ci +------------------+-------------------------------------------+ 18837db96d56Sopenharmony_ci 18847db96d56Sopenharmony_ci Move operations do nothing if the cursor is at an edge where the movement 18857db96d56Sopenharmony_ci is not possible. The following synonyms are supported where possible: 18867db96d56Sopenharmony_ci 18877db96d56Sopenharmony_ci +--------------------------------+------------------+ 18887db96d56Sopenharmony_ci | Constant | Keystroke | 18897db96d56Sopenharmony_ci +================================+==================+ 18907db96d56Sopenharmony_ci | :const:`~curses.KEY_LEFT` | :kbd:`Control-B` | 18917db96d56Sopenharmony_ci +--------------------------------+------------------+ 18927db96d56Sopenharmony_ci | :const:`~curses.KEY_RIGHT` | :kbd:`Control-F` | 18937db96d56Sopenharmony_ci +--------------------------------+------------------+ 18947db96d56Sopenharmony_ci | :const:`~curses.KEY_UP` | :kbd:`Control-P` | 18957db96d56Sopenharmony_ci +--------------------------------+------------------+ 18967db96d56Sopenharmony_ci | :const:`~curses.KEY_DOWN` | :kbd:`Control-N` | 18977db96d56Sopenharmony_ci +--------------------------------+------------------+ 18987db96d56Sopenharmony_ci | :const:`~curses.KEY_BACKSPACE` | :kbd:`Control-h` | 18997db96d56Sopenharmony_ci +--------------------------------+------------------+ 19007db96d56Sopenharmony_ci 19017db96d56Sopenharmony_ci All other keystrokes are treated as a command to insert the given 19027db96d56Sopenharmony_ci character and move right (with line wrapping). 19037db96d56Sopenharmony_ci 19047db96d56Sopenharmony_ci 19057db96d56Sopenharmony_ci .. method:: gather() 19067db96d56Sopenharmony_ci 19077db96d56Sopenharmony_ci Return the window contents as a string; whether blanks in the 19087db96d56Sopenharmony_ci window are included is affected by the :attr:`stripspaces` member. 19097db96d56Sopenharmony_ci 19107db96d56Sopenharmony_ci 19117db96d56Sopenharmony_ci .. attribute:: stripspaces 19127db96d56Sopenharmony_ci 19137db96d56Sopenharmony_ci This attribute is a flag which controls the interpretation of blanks in 19147db96d56Sopenharmony_ci the window. When it is on, trailing blanks on each line are ignored; any 19157db96d56Sopenharmony_ci cursor motion that would land the cursor on a trailing blank goes to the 19167db96d56Sopenharmony_ci end of that line instead, and trailing blanks are stripped when the window 19177db96d56Sopenharmony_ci contents are gathered. 1918