mirror of https://github.com/python/cpython
Allow setting the auto dispose flag on window objects.
This commit is contained in:
parent
f776dee6dd
commit
8c46ce9add
|
@ -2300,6 +2300,24 @@ static PyObject *WinObj_ShowWindow(WindowObject *_self, PyObject *_args)
|
||||||
return _res;
|
return _res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static PyObject *WinObj_AutoDispose(WindowObject *_self, PyObject *_args)
|
||||||
|
{
|
||||||
|
PyObject *_res = NULL;
|
||||||
|
|
||||||
|
int onoff, old = 0;
|
||||||
|
if (!PyArg_ParseTuple(_args, "i", &onoff))
|
||||||
|
return NULL;
|
||||||
|
if ( _self->ob_freeit )
|
||||||
|
old = 1;
|
||||||
|
if ( onoff )
|
||||||
|
_self->ob_freeit = PyMac_AutoDisposeWindow;
|
||||||
|
else
|
||||||
|
_self->ob_freeit = NULL;
|
||||||
|
_res = Py_BuildValue("i", old);
|
||||||
|
return _res;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
static PyMethodDef WinObj_methods[] = {
|
static PyMethodDef WinObj_methods[] = {
|
||||||
{"GetWindowOwnerCount", (PyCFunction)WinObj_GetWindowOwnerCount, 1,
|
{"GetWindowOwnerCount", (PyCFunction)WinObj_GetWindowOwnerCount, 1,
|
||||||
PyDoc_STR("() -> (UInt32 outCount)")},
|
PyDoc_STR("() -> (UInt32 outCount)")},
|
||||||
|
@ -2540,6 +2558,8 @@ static PyMethodDef WinObj_methods[] = {
|
||||||
PyDoc_STR("(short hGlobal, short vGlobal, Boolean front) -> None")},
|
PyDoc_STR("(short hGlobal, short vGlobal, Boolean front) -> None")},
|
||||||
{"ShowWindow", (PyCFunction)WinObj_ShowWindow, 1,
|
{"ShowWindow", (PyCFunction)WinObj_ShowWindow, 1,
|
||||||
PyDoc_STR("() -> None")},
|
PyDoc_STR("() -> None")},
|
||||||
|
{"AutoDispose", (PyCFunction)WinObj_AutoDispose, 1,
|
||||||
|
PyDoc_STR("(int)->int. Automatically DisposeHandle the object on Python object cleanup")},
|
||||||
{NULL, NULL, 0}
|
{NULL, NULL, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -48,5 +48,24 @@ f = Method(void, 'ShowWindow',
|
||||||
)
|
)
|
||||||
methods.append(f)
|
methods.append(f)
|
||||||
|
|
||||||
|
#
|
||||||
|
# A method to set the auto-dispose flag
|
||||||
|
#
|
||||||
|
AutoDispose_body = """
|
||||||
|
int onoff, old = 0;
|
||||||
|
if (!PyArg_ParseTuple(_args, "i", &onoff))
|
||||||
|
return NULL;
|
||||||
|
if ( _self->ob_freeit )
|
||||||
|
old = 1;
|
||||||
|
if ( onoff )
|
||||||
|
_self->ob_freeit = PyMac_AutoDisposeWindow;
|
||||||
|
else
|
||||||
|
_self->ob_freeit = NULL;
|
||||||
|
_res = Py_BuildValue("i", old);
|
||||||
|
return _res;
|
||||||
|
"""
|
||||||
|
f = ManualGenerator("AutoDispose", AutoDispose_body)
|
||||||
|
f.docstring = lambda: "(int)->int. Automatically DisposeHandle the object on Python object cleanup"
|
||||||
|
methods.append(f)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue