diff options
-rw-r--r-- | Doc/lib/libcurses.tex | 9 | ||||
-rw-r--r-- | Doc/whatsnew/whatsnew24.tex | 7 | ||||
-rw-r--r-- | Lib/test/test_curses.py | 3 | ||||
-rw-r--r-- | Misc/ACKS | 1 | ||||
-rw-r--r-- | Misc/NEWS | 2 | ||||
-rw-r--r-- | Modules/_cursesmodule.c | 25 |
6 files changed, 44 insertions, 3 deletions
diff --git a/Doc/lib/libcurses.tex b/Doc/lib/libcurses.tex index 296e887..1eace43 100644 --- a/Doc/lib/libcurses.tex +++ b/Doc/lib/libcurses.tex @@ -537,6 +537,15 @@ a window (in which case default behavior would be to use the window size if \envvar{LINES} and \envvar{COLUMNS} are not set). \end{funcdesc} +\begin{funcdesc}{use_default_colors}{} +Allow use of default values for colors on terminals supporting this +feature. Use this to support transparency in your +application. The default color is assigned to the color number -1. +After calling this function, +\function{init_pair(x, curses.COLOR_RED, -1)} initializes, for instance, +color pair \var{x} to a red foreground color on the default background. +\end{funcdesc} + \subsection{Window Objects \label{curses-window-objects}} Window objects, as returned by \function{initscr()} and diff --git a/Doc/whatsnew/whatsnew24.tex b/Doc/whatsnew/whatsnew24.tex index e49825f..2f0df30 100644 --- a/Doc/whatsnew/whatsnew24.tex +++ b/Doc/whatsnew/whatsnew24.tex @@ -69,8 +69,11 @@ details. \begin{itemize} -\item Descriptions go here. - +\item The \module{curses} modules now supports the ncurses extension + \function{use_default_colors()}. On platforms where the terminal + supports transparency, this makes it possible to use a transparent background. + (Contributed by J\"org Lehmann.) + \end{itemize} diff --git a/Lib/test/test_curses.py b/Lib/test/test_curses.py index 188da8d..f62783f 100644 --- a/Lib/test/test_curses.py +++ b/Lib/test/test_curses.py @@ -181,6 +181,9 @@ def module_funcs(stdscr): curses.pair_content(curses.COLOR_PAIRS) curses.pair_number(0) + if hasattr(curses, 'use_default_colors'): + curses.use_default_colors() + if hasattr(curses, 'keyname'): curses.keyname(13) @@ -325,6 +325,7 @@ Inyeol Lee John J. Lee Luc Lefebvre Kip Lehman +Joerg Lehmann Marc-Andre Lemburg William Lewis Robert van Liere @@ -22,6 +22,8 @@ Extension modules - The signal module now exposes SIGRTMIN and SIGRTMAX (if available). +- curses module now supports use_default_colors(). [patch #739124] + Library ------- diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c index 4424dae..51f4c38 100644 --- a/Modules/_cursesmodule.c +++ b/Modules/_cursesmodule.c @@ -47,7 +47,7 @@ unsupported functions: resizeterm restartterm ripoffline scr_dump scr_init scr_restore scr_set scrl set_curterm set_term setterm tgetent tgetflag tgetnum tgetstr tgoto timeout tputs - use_default_colors vidattr vidputs waddchnstr waddchstr wchgat + vidattr vidputs waddchnstr waddchstr wchgat wcolor_set winchnstr winchstr winnstr wmouse_trafo wscrl Low-priority: @@ -2354,6 +2354,26 @@ PyCurses_Use_Env(PyObject *self, PyObject *args) return Py_None; } +#ifndef STRICT_SYSV_CURSES +static PyObject * +PyCurses_Use_Default_Colors(PyObject *self) +{ + int code; + + PyCursesInitialised + PyCursesInitialisedColor + + code = use_default_colors(); + if (code != ERR) { + Py_INCREF(Py_None); + return Py_None; + } else { + PyErr_SetString(PyCursesError, "use_default_colors() returned ERR"); + return NULL; + } +} +#endif /* STRICT_SYSV_CURSES */ + /* List of functions defined in the module */ static PyMethodDef PyCurses_methods[] = { @@ -2434,6 +2454,9 @@ static PyMethodDef PyCurses_methods[] = { {"unctrl", (PyCFunction)PyCurses_UnCtrl, METH_VARARGS}, {"ungetch", (PyCFunction)PyCurses_UngetCh, METH_VARARGS}, {"use_env", (PyCFunction)PyCurses_Use_Env, METH_VARARGS}, +#ifndef STRICT_SYSV_CURSES + {"use_default_colors", (PyCFunction)PyCurses_Use_Default_Colors, METH_NOARGS}, +#endif {NULL, NULL} /* sentinel */ }; |