gh-101100: Fix Sphinx warnings in curses and curses.ascii modules (#103457)

Co-authored-by: Shantanu <12621235+hauntsaninja@users.noreply.github.com>
This commit is contained in:
Hugo van Kemenade 2023-05-03 08:09:04 +03:00 committed by GitHub
parent af886ffa06
commit 5b05b013ff
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 500 additions and 468 deletions

View file

@ -4,6 +4,8 @@
Curses Programming with Python Curses Programming with Python
********************************** **********************************
.. currentmodule:: curses
:Author: A.M. Kuchling, Eric S. Raymond :Author: A.M. Kuchling, Eric S. Raymond
:Release: 2.04 :Release: 2.04
@ -65,7 +67,7 @@ The Python module is a fairly simple wrapper over the C functions provided by
curses; if you're already familiar with curses programming in C, it's really curses; if you're already familiar with curses programming in C, it's really
easy to transfer that knowledge to Python. The biggest difference is that the easy to transfer that knowledge to Python. The biggest difference is that the
Python interface makes things simpler by merging different C functions such as Python interface makes things simpler by merging different C functions such as
:c:func:`addstr`, :c:func:`mvaddstr`, and :c:func:`mvwaddstr` into a single :c:func:`!addstr`, :c:func:`!mvaddstr`, and :c:func:`!mvwaddstr` into a single
:meth:`~curses.window.addstr` method. You'll see this covered in more :meth:`~curses.window.addstr` method. You'll see this covered in more
detail later. detail later.
@ -82,7 +84,7 @@ Before doing anything, curses must be initialized. This is done by
calling the :func:`~curses.initscr` function, which will determine the calling the :func:`~curses.initscr` function, which will determine the
terminal type, send any required setup codes to the terminal, and terminal type, send any required setup codes to the terminal, and
create various internal data structures. If successful, create various internal data structures. If successful,
:func:`initscr` returns a window object representing the entire :func:`!initscr` returns a window object representing the entire
screen; this is usually called ``stdscr`` after the name of the screen; this is usually called ``stdscr`` after the name of the
corresponding C variable. :: corresponding C variable. ::
@ -151,8 +153,8 @@ importing the :func:`curses.wrapper` function and using it like this::
The :func:`~curses.wrapper` function takes a callable object and does the The :func:`~curses.wrapper` function takes a callable object and does the
initializations described above, also initializing colors if color initializations described above, also initializing colors if color
support is present. :func:`wrapper` then runs your provided callable. support is present. :func:`!wrapper` then runs your provided callable.
Once the callable returns, :func:`wrapper` will restore the original Once the callable returns, :func:`!wrapper` will restore the original
state of the terminal. The callable is called inside a state of the terminal. The callable is called inside a
:keyword:`try`...\ :keyword:`except` that catches exceptions, restores :keyword:`try`...\ :keyword:`except` that catches exceptions, restores
the state of the terminal, and then re-raises the exception. Therefore the state of the terminal, and then re-raises the exception. Therefore
@ -200,7 +202,7 @@ This is because curses was originally written with slow 300-baud
terminal connections in mind; with these terminals, minimizing the terminal connections in mind; with these terminals, minimizing the
time required to redraw the screen was very important. Instead curses time required to redraw the screen was very important. Instead curses
accumulates changes to the screen and displays them in the most accumulates changes to the screen and displays them in the most
efficient manner when you call :meth:`refresh`. For example, if your efficient manner when you call :meth:`!refresh`. For example, if your
program displays some text in a window and then clears the window, program displays some text in a window and then clears the window,
there's no need to send the original text because they're never there's no need to send the original text because they're never
visible. visible.
@ -210,7 +212,7 @@ really complicate programming with curses much. Most programs go into a flurry
of activity, and then pause waiting for a keypress or some other action on the of activity, and then pause waiting for a keypress or some other action on the
part of the user. All you have to do is to be sure that the screen has been part of the user. All you have to do is to be sure that the screen has been
redrawn before pausing to wait for user input, by first calling redrawn before pausing to wait for user input, by first calling
``stdscr.refresh()`` or the :meth:`refresh` method of some other relevant :meth:`!stdscr.refresh` or the :meth:`!refresh` method of some other relevant
window. window.
A pad is a special case of a window; it can be larger than the actual display A pad is a special case of a window; it can be larger than the actual display
@ -234,7 +236,7 @@ displayed. ::
# : filled with pad content. # : filled with pad content.
pad.refresh( 0,0, 5,5, 20,75) pad.refresh( 0,0, 5,5, 20,75)
The :meth:`refresh` call displays a section of the pad in the rectangle The :meth:`!refresh` call displays a section of the pad in the rectangle
extending from coordinate (5,5) to coordinate (20,75) on the screen; the upper extending from coordinate (5,5) to coordinate (20,75) on the screen; the upper
left corner of the displayed section is coordinate (0,0) on the pad. Beyond left corner of the displayed section is coordinate (0,0) on the pad. Beyond
that difference, pads are exactly like ordinary windows and support the same that difference, pads are exactly like ordinary windows and support the same
@ -242,7 +244,7 @@ methods.
If you have multiple windows and pads on screen there is a more If you have multiple windows and pads on screen there is a more
efficient way to update the screen and prevent annoying screen flicker efficient way to update the screen and prevent annoying screen flicker
as each part of the screen gets updated. :meth:`refresh` actually as each part of the screen gets updated. :meth:`!refresh` actually
does two things: does two things:
1) Calls the :meth:`~curses.window.noutrefresh` method of each window 1) Calls the :meth:`~curses.window.noutrefresh` method of each window
@ -251,8 +253,8 @@ does two things:
2) Calls the function :func:`~curses.doupdate` function to change the 2) Calls the function :func:`~curses.doupdate` function to change the
physical screen to match the desired state recorded in the data structure. physical screen to match the desired state recorded in the data structure.
Instead you can call :meth:`noutrefresh` on a number of windows to Instead you can call :meth:`!noutrefresh` on a number of windows to
update the data structure, and then call :func:`doupdate` to update update the data structure, and then call :func:`!doupdate` to update
the screen. the screen.
@ -261,11 +263,11 @@ Displaying Text
From a C programmer's point of view, curses may sometimes look like a From a C programmer's point of view, curses may sometimes look like a
twisty maze of functions, all subtly different. For example, twisty maze of functions, all subtly different. For example,
:c:func:`addstr` displays a string at the current cursor location in :c:func:`!addstr` displays a string at the current cursor location in
the ``stdscr`` window, while :c:func:`mvaddstr` moves to a given y,x the ``stdscr`` window, while :c:func:`!mvaddstr` moves to a given y,x
coordinate first before displaying the string. :c:func:`waddstr` is just coordinate first before displaying the string. :c:func:`!waddstr` is just
like :c:func:`addstr`, but allows specifying a window to use instead of like :c:func:`!addstr`, but allows specifying a window to use instead of
using ``stdscr`` by default. :c:func:`mvwaddstr` allows specifying both using ``stdscr`` by default. :c:func:`!mvwaddstr` allows specifying both
a window and a coordinate. a window and a coordinate.
Fortunately the Python interface hides all these details. ``stdscr`` Fortunately the Python interface hides all these details. ``stdscr``
@ -298,7 +300,7 @@ the next subsection.
The :meth:`~curses.window.addstr` method takes a Python string or The :meth:`~curses.window.addstr` method takes a Python string or
bytestring as the value to be displayed. The contents of bytestrings bytestring as the value to be displayed. The contents of bytestrings
are sent to the terminal as-is. Strings are encoded to bytes using are sent to the terminal as-is. Strings are encoded to bytes using
the value of the window's :attr:`encoding` attribute; this defaults to the value of the window's :attr:`~window.encoding` attribute; this defaults to
the default system encoding as returned by :func:`locale.getencoding`. the default system encoding as returned by :func:`locale.getencoding`.
The :meth:`~curses.window.addch` methods take a character, which can be The :meth:`~curses.window.addch` methods take a character, which can be
@ -444,15 +446,15 @@ There are two methods for getting input from a window:
It's possible to not wait for the user using the It's possible to not wait for the user using the
:meth:`~curses.window.nodelay` window method. After ``nodelay(True)``, :meth:`~curses.window.nodelay` window method. After ``nodelay(True)``,
:meth:`getch` and :meth:`getkey` for the window become :meth:`!getch` and :meth:`!getkey` for the window become
non-blocking. To signal that no input is ready, :meth:`getch` returns non-blocking. To signal that no input is ready, :meth:`!getch` returns
``curses.ERR`` (a value of -1) and :meth:`getkey` raises an exception. ``curses.ERR`` (a value of -1) and :meth:`!getkey` raises an exception.
There's also a :func:`~curses.halfdelay` function, which can be used to (in There's also a :func:`~curses.halfdelay` function, which can be used to (in
effect) set a timer on each :meth:`getch`; if no input becomes effect) set a timer on each :meth:`!getch`; if no input becomes
available within a specified delay (measured in tenths of a second), available within a specified delay (measured in tenths of a second),
curses raises an exception. curses raises an exception.
The :meth:`getch` method returns an integer; if it's between 0 and 255, it The :meth:`!getch` method returns an integer; if it's between 0 and 255, it
represents the ASCII code of the key pressed. Values greater than 255 are represents the ASCII code of the key pressed. Values greater than 255 are
special keys such as Page Up, Home, or the cursor keys. You can compare the special keys such as Page Up, Home, or the cursor keys. You can compare the
value returned to constants such as :const:`curses.KEY_PPAGE`, value returned to constants such as :const:`curses.KEY_PPAGE`,

View file

@ -15,81 +15,81 @@ The :mod:`curses.ascii` module supplies name constants for ASCII characters and
functions to test membership in various ASCII character classes. The constants functions to test membership in various ASCII character classes. The constants
supplied are names for control characters as follows: supplied are names for control characters as follows:
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
| Name | Meaning | | Name | Meaning |
+==============+==============================================+ +===============+==============================================+
| :const:`NUL` | | | .. data:: NUL | |
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
| :const:`SOH` | Start of heading, console interrupt | | .. data:: SOH | Start of heading, console interrupt |
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
| :const:`STX` | Start of text | | .. data:: STX | Start of text |
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
| :const:`ETX` | End of text | | .. data:: ETX | End of text |
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
| :const:`EOT` | End of transmission | | .. data:: EOT | End of transmission |
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
| :const:`ENQ` | Enquiry, goes with :const:`ACK` flow control | | .. data:: ENQ | Enquiry, goes with :const:`ACK` flow control |
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
| :const:`ACK` | Acknowledgement | | .. data:: ACK | Acknowledgement |
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
| :const:`BEL` | Bell | | .. data:: BEL | Bell |
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
| :const:`BS` | Backspace | | .. data:: BS | Backspace |
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
| :const:`TAB` | Tab | | .. data:: TAB | Tab |
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
| :const:`HT` | Alias for :const:`TAB`: "Horizontal tab" | | .. data:: HT | Alias for :const:`TAB`: "Horizontal tab" |
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
| :const:`LF` | Line feed | | .. data:: LF | Line feed |
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
| :const:`NL` | Alias for :const:`LF`: "New line" | | .. data:: NL | Alias for :const:`LF`: "New line" |
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
| :const:`VT` | Vertical tab | | .. data:: VT | Vertical tab |
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
| :const:`FF` | Form feed | | .. data:: FF | Form feed |
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
| :const:`CR` | Carriage return | | .. data:: CR | Carriage return |
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
| :const:`SO` | Shift-out, begin alternate character set | | .. data:: SO | Shift-out, begin alternate character set |
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
| :const:`SI` | Shift-in, resume default character set | | .. data:: SI | Shift-in, resume default character set |
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
| :const:`DLE` | Data-link escape | | .. data:: DLE | Data-link escape |
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
| :const:`DC1` | XON, for flow control | | .. data:: DC1 | XON, for flow control |
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
| :const:`DC2` | Device control 2, block-mode flow control | | .. data:: DC2 | Device control 2, block-mode flow control |
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
| :const:`DC3` | XOFF, for flow control | | .. data:: DC3 | XOFF, for flow control |
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
| :const:`DC4` | Device control 4 | | .. data:: DC4 | Device control 4 |
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
| :const:`NAK` | Negative acknowledgement | | .. data:: NAK | Negative acknowledgement |
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
| :const:`SYN` | Synchronous idle | | .. data:: SYN | Synchronous idle |
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
| :const:`ETB` | End transmission block | | .. data:: ETB | End transmission block |
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
| :const:`CAN` | Cancel | | .. data:: CAN | Cancel |
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
| :const:`EM` | End of medium | | .. data:: EM | End of medium |
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
| :const:`SUB` | Substitute | | .. data:: SUB | Substitute |
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
| :const:`ESC` | Escape | | .. data:: ESC | Escape |
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
| :const:`FS` | File separator | | .. data:: FS | File separator |
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
| :const:`GS` | Group separator | | .. data:: GS | Group separator |
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
| :const:`RS` | Record separator, block-mode terminator | | .. data:: RS | Record separator, block-mode terminator |
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
| :const:`US` | Unit separator | | .. data:: US | Unit separator |
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
| :const:`SP` | Space | | .. data:: SP | Space |
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
| :const:`DEL` | Delete | | .. data:: DEL | Delete |
+--------------+----------------------------------------------+ +---------------+----------------------------------------------+
Note that many of these have little practical significance in modern usage. The Note that many of these have little practical significance in modern usage. The
mnemonics derive from teleprinter conventions that predate digital computers. mnemonics derive from teleprinter conventions that predate digital computers.

View file

@ -107,7 +107,7 @@ The module :mod:`curses` defines the following functions:
Return the attribute value for displaying text in the specified color pair. Return the attribute value for displaying text in the specified color pair.
Only the first 256 color pairs are supported. This Only the first 256 color pairs are supported. This
attribute value can be combined with :const:`A_STANDOUT`, :const:`A_REVERSE`, attribute value can be combined with :const:`A_STANDOUT`, :const:`A_REVERSE`,
and the other :const:`A_\*` attributes. :func:`pair_number` is the counterpart and the other :const:`!A_\*` attributes. :func:`pair_number` is the counterpart
to this function. to this function.
@ -223,7 +223,7 @@ The module :mod:`curses` defines the following functions:
.. function:: getwin(file) .. function:: getwin(file)
Read window related data stored in the file by an earlier :func:`putwin` call. Read window related data stored in the file by an earlier :func:`window.putwin` call.
The routine then creates and initializes a new window using that data, returning The routine then creates and initializes a new window using that data, returning
the new window object. the new window object.
@ -1323,9 +1323,9 @@ The :mod:`curses` module defines the following data members:
.. data:: version .. data:: version
.. data:: __version__
A bytes object representing the current version of the module. Also available as A bytes object representing the current version of the module.
:const:`__version__`.
.. data:: ncurses_version .. data:: ncurses_version
@ -1339,51 +1339,55 @@ The :mod:`curses` module defines the following data members:
.. versionadded:: 3.8 .. versionadded:: 3.8
.. data:: COLORS
The maximum number of colors the terminal can support.
.. data:: COLOR_PAIRS
The maximum number of color pairs the terminal can support.
Some constants are available to specify character cell attributes. Some constants are available to specify character cell attributes.
The exact constants available are system dependent. The exact constants available are system dependent.
+------------------+-------------------------------+ +------------------------+-------------------------------+
| Attribute | Meaning | | Attribute | Meaning |
+==================+===============================+ +========================+===============================+
| ``A_ALTCHARSET`` | Alternate character set mode | | .. data:: A_ALTCHARSET | Alternate character set mode |
+------------------+-------------------------------+ +------------------------+-------------------------------+
| ``A_BLINK`` | Blink mode | | .. data:: A_BLINK | Blink mode |
+------------------+-------------------------------+ +------------------------+-------------------------------+
| ``A_BOLD`` | Bold mode | | .. data:: A_BOLD | Bold mode |
+------------------+-------------------------------+ +------------------------+-------------------------------+
| ``A_DIM`` | Dim mode | | .. data:: A_DIM | Dim mode |
+------------------+-------------------------------+ +------------------------+-------------------------------+
| ``A_INVIS`` | Invisible or blank mode | | .. data:: A_INVIS | Invisible or blank mode |
+------------------+-------------------------------+ +------------------------+-------------------------------+
| ``A_ITALIC`` | Italic mode | | .. data:: A_ITALIC | Italic mode |
+------------------+-------------------------------+ +------------------------+-------------------------------+
| ``A_NORMAL`` | Normal attribute | | .. data:: A_NORMAL | Normal attribute |
+------------------+-------------------------------+ +------------------------+-------------------------------+
| ``A_PROTECT`` | Protected mode | | .. data:: A_PROTECT | Protected mode |
+------------------+-------------------------------+ +------------------------+-------------------------------+
| ``A_REVERSE`` | Reverse background and | | .. data:: A_REVERSE | Reverse background and |
| | foreground colors | | | foreground colors |
+------------------+-------------------------------+ +------------------------+-------------------------------+
| ``A_STANDOUT`` | Standout mode | | .. data:: A_STANDOUT | Standout mode |
+------------------+-------------------------------+ +------------------------+-------------------------------+
| ``A_UNDERLINE`` | Underline mode | | .. data:: A_UNDERLINE | Underline mode |
+------------------+-------------------------------+ +------------------------+-------------------------------+
| ``A_HORIZONTAL`` | Horizontal highlight | | .. data:: A_HORIZONTAL | Horizontal highlight |
+------------------+-------------------------------+ +------------------------+-------------------------------+
| ``A_LEFT`` | Left highlight | | .. data:: A_LEFT | Left highlight |
+------------------+-------------------------------+ +------------------------+-------------------------------+
| ``A_LOW`` | Low highlight | | .. data:: A_LOW | Low highlight |
+------------------+-------------------------------+ +------------------------+-------------------------------+
| ``A_RIGHT`` | Right highlight | | .. data:: A_RIGHT | Right highlight |
+------------------+-------------------------------+ +------------------------+-------------------------------+
| ``A_TOP`` | Top highlight | | .. data:: A_TOP | Top highlight |
+------------------+-------------------------------+ +------------------------+-------------------------------+
| ``A_VERTICAL`` | Vertical highlight | | .. data:: A_VERTICAL | Vertical highlight |
+------------------+-------------------------------+ +------------------------+-------------------------------+
| ``A_CHARTEXT`` | Bit-mask to extract a |
| | character |
+------------------+-------------------------------+
.. versionadded:: 3.7 .. versionadded:: 3.7
``A_ITALIC`` was added. ``A_ITALIC`` was added.
@ -1391,220 +1395,220 @@ The exact constants available are system dependent.
Several constants are available to extract corresponding attributes returned Several constants are available to extract corresponding attributes returned
by some methods. by some methods.
+------------------+-------------------------------+ +-------------------------+-------------------------------+
| Bit-mask | Meaning | | Bit-mask | Meaning |
+==================+===============================+ +=========================+===============================+
| ``A_ATTRIBUTES`` | Bit-mask to extract | | .. data:: A_ATTRIBUTES | Bit-mask to extract |
| | attributes | | | attributes |
+------------------+-------------------------------+ +-------------------------+-------------------------------+
| ``A_CHARTEXT`` | Bit-mask to extract a | | .. data:: A_CHARTEXT | Bit-mask to extract a |
| | character | | | character |
+------------------+-------------------------------+ +-------------------------+-------------------------------+
| ``A_COLOR`` | Bit-mask to extract | | .. data:: A_COLOR | Bit-mask to extract |
| | color-pair field information | | | color-pair field information |
+------------------+-------------------------------+ +-------------------------+-------------------------------+
Keys are referred to by integer constants with names starting with ``KEY_``. Keys are referred to by integer constants with names starting with ``KEY_``.
The exact keycaps available are system dependent. The exact keycaps available are system dependent.
.. XXX this table is far too large! should it be alphabetized? .. XXX this table is far too large! should it be alphabetized?
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| Key constant | Key | | Key constant | Key |
+===================+============================================+ +=========================+============================================+
| ``KEY_MIN`` | Minimum key value | | .. data:: KEY_MIN | Minimum key value |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_BREAK`` | Break key (unreliable) | | .. data:: KEY_BREAK | Break key (unreliable) |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_DOWN`` | Down-arrow | | .. data:: KEY_DOWN | Down-arrow |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_UP`` | Up-arrow | | .. data:: KEY_UP | Up-arrow |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_LEFT`` | Left-arrow | | .. data:: KEY_LEFT | Left-arrow |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_RIGHT`` | Right-arrow | | .. data:: KEY_RIGHT | Right-arrow |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_HOME`` | Home key (upward+left arrow) | | .. data:: KEY_HOME | Home key (upward+left arrow) |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_BACKSPACE`` | Backspace (unreliable) | | .. data:: KEY_BACKSPACE | Backspace (unreliable) |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_F0`` | Function keys. Up to 64 function keys are | | .. data:: KEY_F0 | Function keys. Up to 64 function keys are |
| | supported. | | | supported. |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_Fn`` | Value of function key *n* | | .. data:: KEY_Fn | Value of function key *n* |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_DL`` | Delete line | | .. data:: KEY_DL | Delete line |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_IL`` | Insert line | | .. data:: KEY_IL | Insert line |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_DC`` | Delete character | | .. data:: KEY_DC | Delete character |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_IC`` | Insert char or enter insert mode | | .. data:: KEY_IC | Insert char or enter insert mode |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_EIC`` | Exit insert char mode | | .. data:: KEY_EIC | Exit insert char mode |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_CLEAR`` | Clear screen | | .. data:: KEY_CLEAR | Clear screen |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_EOS`` | Clear to end of screen | | .. data:: KEY_EOS | Clear to end of screen |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_EOL`` | Clear to end of line | | .. data:: KEY_EOL | Clear to end of line |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_SF`` | Scroll 1 line forward | | .. data:: KEY_SF | Scroll 1 line forward |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_SR`` | Scroll 1 line backward (reverse) | | .. data:: KEY_SR | Scroll 1 line backward (reverse) |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_NPAGE`` | Next page | | .. data:: KEY_NPAGE | Next page |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_PPAGE`` | Previous page | | .. data:: KEY_PPAGE | Previous page |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_STAB`` | Set tab | | .. data:: KEY_STAB | Set tab |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_CTAB`` | Clear tab | | .. data:: KEY_CTAB | Clear tab |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_CATAB`` | Clear all tabs | | .. data:: KEY_CATAB | Clear all tabs |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_ENTER`` | Enter or send (unreliable) | | .. data:: KEY_ENTER | Enter or send (unreliable) |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_SRESET`` | Soft (partial) reset (unreliable) | | .. data:: KEY_SRESET | Soft (partial) reset (unreliable) |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_RESET`` | Reset or hard reset (unreliable) | | .. data:: KEY_RESET | Reset or hard reset (unreliable) |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_PRINT`` | Print | | .. data:: KEY_PRINT | Print |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_LL`` | Home down or bottom (lower left) | | .. data:: KEY_LL | Home down or bottom (lower left) |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_A1`` | Upper left of keypad | | .. data:: KEY_A1 | Upper left of keypad |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_A3`` | Upper right of keypad | | .. data:: KEY_A3 | Upper right of keypad |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_B2`` | Center of keypad | | .. data:: KEY_B2 | Center of keypad |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_C1`` | Lower left of keypad | | .. data:: KEY_C1 | Lower left of keypad |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_C3`` | Lower right of keypad | | .. data:: KEY_C3 | Lower right of keypad |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_BTAB`` | Back tab | | .. data:: KEY_BTAB | Back tab |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_BEG`` | Beg (beginning) | | .. data:: KEY_BEG | Beg (beginning) |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_CANCEL`` | Cancel | | .. data:: KEY_CANCEL | Cancel |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_CLOSE`` | Close | | .. data:: KEY_CLOSE | Close |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_COMMAND`` | Cmd (command) | | .. data:: KEY_COMMAND | Cmd (command) |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_COPY`` | Copy | | .. data:: KEY_COPY | Copy |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_CREATE`` | Create | | .. data:: KEY_CREATE | Create |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_END`` | End | | .. data:: KEY_END | End |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_EXIT`` | Exit | | .. data:: KEY_EXIT | Exit |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_FIND`` | Find | | .. data:: KEY_FIND | Find |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_HELP`` | Help | | .. data:: KEY_HELP | Help |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_MARK`` | Mark | | .. data:: KEY_MARK | Mark |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_MESSAGE`` | Message | | .. data:: KEY_MESSAGE | Message |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_MOVE`` | Move | | .. data:: KEY_MOVE | Move |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_NEXT`` | Next | | .. data:: KEY_NEXT | Next |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_OPEN`` | Open | | .. data:: KEY_OPEN | Open |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_OPTIONS`` | Options | | .. data:: KEY_OPTIONS | Options |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_PREVIOUS`` | Prev (previous) | | .. data:: KEY_PREVIOUS | Prev (previous) |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_REDO`` | Redo | | .. data:: KEY_REDO | Redo |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_REFERENCE`` | Ref (reference) | | .. data:: KEY_REFERENCE | Ref (reference) |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_REFRESH`` | Refresh | | .. data:: KEY_REFRESH | Refresh |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_REPLACE`` | Replace | | .. data:: KEY_REPLACE | Replace |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_RESTART`` | Restart | | .. data:: KEY_RESTART | Restart |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_RESUME`` | Resume | | .. data:: KEY_RESUME | Resume |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_SAVE`` | Save | | .. data:: KEY_SAVE | Save |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_SBEG`` | Shifted Beg (beginning) | | .. data:: KEY_SBEG | Shifted Beg (beginning) |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_SCANCEL`` | Shifted Cancel | | .. data:: KEY_SCANCEL | Shifted Cancel |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_SCOMMAND`` | Shifted Command | | .. data:: KEY_SCOMMAND | Shifted Command |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_SCOPY`` | Shifted Copy | | .. data:: KEY_SCOPY | Shifted Copy |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_SCREATE`` | Shifted Create | | .. data:: KEY_SCREATE | Shifted Create |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_SDC`` | Shifted Delete char | | .. data:: KEY_SDC | Shifted Delete char |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_SDL`` | Shifted Delete line | | .. data:: KEY_SDL | Shifted Delete line |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_SELECT`` | Select | | .. data:: KEY_SELECT | Select |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_SEND`` | Shifted End | | .. data:: KEY_SEND | Shifted End |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_SEOL`` | Shifted Clear line | | .. data:: KEY_SEOL | Shifted Clear line |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_SEXIT`` | Shifted Exit | | .. data:: KEY_SEXIT | Shifted Exit |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_SFIND`` | Shifted Find | | .. data:: KEY_SFIND | Shifted Find |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_SHELP`` | Shifted Help | | .. data:: KEY_SHELP | Shifted Help |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_SHOME`` | Shifted Home | | .. data:: KEY_SHOME | Shifted Home |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_SIC`` | Shifted Input | | .. data:: KEY_SIC | Shifted Input |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_SLEFT`` | Shifted Left arrow | | .. data:: KEY_SLEFT | Shifted Left arrow |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_SMESSAGE`` | Shifted Message | | .. data:: KEY_SMESSAGE | Shifted Message |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_SMOVE`` | Shifted Move | | .. data:: KEY_SMOVE | Shifted Move |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_SNEXT`` | Shifted Next | | .. data:: KEY_SNEXT | Shifted Next |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_SOPTIONS`` | Shifted Options | | .. data:: KEY_SOPTIONS | Shifted Options |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_SPREVIOUS`` | Shifted Prev | | .. data:: KEY_SPREVIOUS | Shifted Prev |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_SPRINT`` | Shifted Print | | .. data:: KEY_SPRINT | Shifted Print |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_SREDO`` | Shifted Redo | | .. data:: KEY_SREDO | Shifted Redo |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_SREPLACE`` | Shifted Replace | | .. data:: KEY_SREPLACE | Shifted Replace |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_SRIGHT`` | Shifted Right arrow | | .. data:: KEY_SRIGHT | Shifted Right arrow |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_SRSUME`` | Shifted Resume | | .. data:: KEY_SRSUME | Shifted Resume |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_SSAVE`` | Shifted Save | | .. data:: KEY_SSAVE | Shifted Save |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_SSUSPEND`` | Shifted Suspend | | .. data:: KEY_SSUSPEND | Shifted Suspend |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_SUNDO`` | Shifted Undo | | .. data:: KEY_SUNDO | Shifted Undo |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_SUSPEND`` | Suspend | | .. data:: KEY_SUSPEND | Suspend |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_UNDO`` | Undo | | .. data:: KEY_UNDO | Undo |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_MOUSE`` | Mouse event has occurred | | .. data:: KEY_MOUSE | Mouse event has occurred |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_RESIZE`` | Terminal resize event | | .. data:: KEY_RESIZE | Terminal resize event |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
| ``KEY_MAX`` | Maximum key value | | .. data:: KEY_MAX | Maximum key value |
+-------------------+--------------------------------------------+ +-------------------------+--------------------------------------------+
On VT100s and their software emulations, such as X terminal emulators, there are On VT100s and their software emulations, such as X terminal emulators, there are
normally at least four function keys (:const:`KEY_F1`, :const:`KEY_F2`, normally at least four function keys (:const:`KEY_F1 <KEY_Fn>`, :const:`KEY_F2 <KEY_Fn>`,
:const:`KEY_F3`, :const:`KEY_F4`) available, and the arrow keys mapped to :const:`KEY_F3 <KEY_Fn>`, :const:`KEY_F4 <KEY_Fn>`) available, and the arrow keys mapped to
:const:`KEY_UP`, :const:`KEY_DOWN`, :const:`KEY_LEFT` and :const:`KEY_RIGHT` in :const:`KEY_UP`, :const:`KEY_DOWN`, :const:`KEY_LEFT` and :const:`KEY_RIGHT` in
the obvious way. If your machine has a PC keyboard, it is safe to expect arrow the obvious way. If your machine has a PC keyboard, it is safe to expect arrow
keys and twelve function keys (older PC keyboards may have only ten function keys and twelve function keys (older PC keyboards may have only ten function
@ -1635,117 +1639,143 @@ falls back on a crude printable ASCII approximation.
These are available only after :func:`initscr` has been called. These are available only after :func:`initscr` has been called.
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ACS code | Meaning | | ACS code | Meaning |
+==================+==========================================+ +========================+==========================================+
| ``ACS_BBSS`` | alternate name for upper right corner | | .. data:: ACS_BBSS | alternate name for upper right corner |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_BLOCK`` | solid square block | | .. data:: ACS_BLOCK | solid square block |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_BOARD`` | board of squares | | .. data:: ACS_BOARD | board of squares |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_BSBS`` | alternate name for horizontal line | | .. data:: ACS_BSBS | alternate name for horizontal line |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_BSSB`` | alternate name for upper left corner | | .. data:: ACS_BSSB | alternate name for upper left corner |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_BSSS`` | alternate name for top tee | | .. data:: ACS_BSSS | alternate name for top tee |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_BTEE`` | bottom tee | | .. data:: ACS_BTEE | bottom tee |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_BULLET`` | bullet | | .. data:: ACS_BULLET | bullet |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_CKBOARD`` | checker board (stipple) | | .. data:: ACS_CKBOARD | checker board (stipple) |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_DARROW`` | arrow pointing down | | .. data:: ACS_DARROW | arrow pointing down |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_DEGREE`` | degree symbol | | .. data:: ACS_DEGREE | degree symbol |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_DIAMOND`` | diamond | | .. data:: ACS_DIAMOND | diamond |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_GEQUAL`` | greater-than-or-equal-to | | .. data:: ACS_GEQUAL | greater-than-or-equal-to |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_HLINE`` | horizontal line | | .. data:: ACS_HLINE | horizontal line |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_LANTERN`` | lantern symbol | | .. data:: ACS_LANTERN | lantern symbol |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_LARROW`` | left arrow | | .. data:: ACS_LARROW | left arrow |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_LEQUAL`` | less-than-or-equal-to | | .. data:: ACS_LEQUAL | less-than-or-equal-to |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_LLCORNER`` | lower left-hand corner | | .. data:: ACS_LLCORNER | lower left-hand corner |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_LRCORNER`` | lower right-hand corner | | .. data:: ACS_LRCORNER | lower right-hand corner |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_LTEE`` | left tee | | .. data:: ACS_LTEE | left tee |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_NEQUAL`` | not-equal sign | | .. data:: ACS_NEQUAL | not-equal sign |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_PI`` | letter pi | | .. data:: ACS_PI | letter pi |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_PLMINUS`` | plus-or-minus sign | | .. data:: ACS_PLMINUS | plus-or-minus sign |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_PLUS`` | big plus sign | | .. data:: ACS_PLUS | big plus sign |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_RARROW`` | right arrow | | .. data:: ACS_RARROW | right arrow |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_RTEE`` | right tee | | .. data:: ACS_RTEE | right tee |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_S1`` | scan line 1 | | .. data:: ACS_S1 | scan line 1 |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_S3`` | scan line 3 | | .. data:: ACS_S3 | scan line 3 |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_S7`` | scan line 7 | | .. data:: ACS_S7 | scan line 7 |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_S9`` | scan line 9 | | .. data:: ACS_S9 | scan line 9 |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_SBBS`` | alternate name for lower right corner | | .. data:: ACS_SBBS | alternate name for lower right corner |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_SBSB`` | alternate name for vertical line | | .. data:: ACS_SBSB | alternate name for vertical line |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_SBSS`` | alternate name for right tee | | .. data:: ACS_SBSS | alternate name for right tee |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_SSBB`` | alternate name for lower left corner | | .. data:: ACS_SSBB | alternate name for lower left corner |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_SSBS`` | alternate name for bottom tee | | .. data:: ACS_SSBS | alternate name for bottom tee |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_SSSB`` | alternate name for left tee | | .. data:: ACS_SSSB | alternate name for left tee |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_SSSS`` | alternate name for crossover or big plus | | .. data:: ACS_SSSS | alternate name for crossover or big plus |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_STERLING`` | pound sterling | | .. data:: ACS_STERLING | pound sterling |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_TTEE`` | top tee | | .. data:: ACS_TTEE | top tee |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_UARROW`` | up arrow | | .. data:: ACS_UARROW | up arrow |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_ULCORNER`` | upper left corner | | .. data:: ACS_ULCORNER | upper left corner |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_URCORNER`` | upper right corner | | .. data:: ACS_URCORNER | upper right corner |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
| ``ACS_VLINE`` | vertical line | | .. data:: ACS_VLINE | vertical line |
+------------------+------------------------------------------+ +------------------------+------------------------------------------+
The following table lists mouse button constants used by :meth:`getmouse`:
+----------------------------------+---------------------------------------------+
| Mouse button constant | Meaning |
+==================================+=============================================+
| .. data:: BUTTONn_PRESSED | Mouse button *n* pressed |
+----------------------------------+---------------------------------------------+
| .. data:: BUTTONn_RELEASED | Mouse button *n* released |
+----------------------------------+---------------------------------------------+
| .. data:: BUTTONn_CLICKED | Mouse button *n* clicked |
+----------------------------------+---------------------------------------------+
| .. data:: BUTTONn_DOUBLE_CLICKED | Mouse button *n* double clicked |
+----------------------------------+---------------------------------------------+
| .. data:: BUTTONn_TRIPLE_CLICKED | Mouse button *n* triple clicked |
+----------------------------------+---------------------------------------------+
| .. data:: BUTTON_SHIFT | Shift was down during button state change |
+----------------------------------+---------------------------------------------+
| .. data:: BUTTON_CTRL | Control was down during button state change |
+----------------------------------+---------------------------------------------+
| .. data:: BUTTON_ALT | Control was down during button state change |
+----------------------------------+---------------------------------------------+
.. versionchanged:: 3.10
The ``BUTTON5_*`` constants are now exposed if they are provided by the
underlying curses library.
The following table lists the predefined colors: The following table lists the predefined colors:
+-------------------+----------------------------+ +-------------------------+----------------------------+
| Constant | Color | | Constant | Color |
+===================+============================+ +=========================+============================+
| ``COLOR_BLACK`` | Black | | .. data:: COLOR_BLACK | Black |
+-------------------+----------------------------+ +-------------------------+----------------------------+
| ``COLOR_BLUE`` | Blue | | .. data:: COLOR_BLUE | Blue |
+-------------------+----------------------------+ +-------------------------+----------------------------+
| ``COLOR_CYAN`` | Cyan (light greenish blue) | | .. data:: COLOR_CYAN | Cyan (light greenish blue) |
+-------------------+----------------------------+ +-------------------------+----------------------------+
| ``COLOR_GREEN`` | Green | | .. data:: COLOR_GREEN | Green |
+-------------------+----------------------------+ +-------------------------+----------------------------+
| ``COLOR_MAGENTA`` | Magenta (purplish red) | | .. data:: COLOR_MAGENTA | Magenta (purplish red) |
+-------------------+----------------------------+ +-------------------------+----------------------------+
| ``COLOR_RED`` | Red | | .. data:: COLOR_RED | Red |
+-------------------+----------------------------+ +-------------------------+----------------------------+
| ``COLOR_WHITE`` | White | | .. data:: COLOR_WHITE | White |
+-------------------+----------------------------+ +-------------------------+----------------------------+
| ``COLOR_YELLOW`` | Yellow | | .. data:: COLOR_YELLOW | Yellow |
+-------------------+----------------------------+ +-------------------------+----------------------------+
:mod:`curses.textpad` --- Text input widget for curses programs :mod:`curses.textpad` --- Text input widget for curses programs
@ -1851,19 +1881,19 @@ You can instantiate a :class:`Textbox` object as follows:
Move operations do nothing if the cursor is at an edge where the movement Move operations do nothing if the cursor is at an edge where the movement
is not possible. The following synonyms are supported where possible: is not possible. The following synonyms are supported where possible:
+------------------------+------------------+ +--------------------------------+------------------+
| Constant | Keystroke | | Constant | Keystroke |
+========================+==================+ +================================+==================+
| :const:`KEY_LEFT` | :kbd:`Control-B` | | :const:`~curses.KEY_LEFT` | :kbd:`Control-B` |
+------------------------+------------------+ +--------------------------------+------------------+
| :const:`KEY_RIGHT` | :kbd:`Control-F` | | :const:`~curses.KEY_RIGHT` | :kbd:`Control-F` |
+------------------------+------------------+ +--------------------------------+------------------+
| :const:`KEY_UP` | :kbd:`Control-P` | | :const:`~curses.KEY_UP` | :kbd:`Control-P` |
+------------------------+------------------+ +--------------------------------+------------------+
| :const:`KEY_DOWN` | :kbd:`Control-N` | | :const:`~curses.KEY_DOWN` | :kbd:`Control-N` |
+------------------------+------------------+ +--------------------------------+------------------+
| :const:`KEY_BACKSPACE` | :kbd:`Control-h` | | :const:`~curses.KEY_BACKSPACE` | :kbd:`Control-h` |
+------------------------+------------------+ +--------------------------------+------------------+
All other keystrokes are treated as a command to insert the given All other keystrokes are treated as a command to insert the given
character and move right (with line wrapping). character and move right (with line wrapping).