summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Doc/lib/libcurses.tex9
-rw-r--r--Doc/whatsnew/whatsnew24.tex7
-rw-r--r--Lib/test/test_curses.py3
-rw-r--r--Misc/ACKS1
-rw-r--r--Misc/NEWS2
-rw-r--r--Modules/_cursesmodule.c25
6 files changed, 44 insertions, 3 deletions
diff --git a/Doc/lib/libcurses.tex b/Doc/lib/libcurses.tex
index 296e8874fc..1eace435c0 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 e49825f507..2f0df30fe1 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 188da8d286..f62783f54e 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)
diff --git a/Misc/ACKS b/Misc/ACKS
index de27616d9e..a0206ab714 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -325,6 +325,7 @@ Inyeol Lee
John J. Lee
Luc Lefebvre
Kip Lehman
+Joerg Lehmann
Marc-Andre Lemburg
William Lewis
Robert van Liere
diff --git a/Misc/NEWS b/Misc/NEWS
index 93c7fb8b8d..ee464cac67 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -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 4424dae692..51f4c388fe 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 */
};