annotate Mac/Modules/ColorPickermodule.c @ 25838:8540887bcec6 2.2

Backport of 2.183: Fix memory leak in add_subclass() found by NealN with valgrind.
author Guido van Rossum <guido@python.org>
date Fri, 18 Oct 2002 13:42:21 +0000
parents c9a4a1316170
children 3a8b1d16b7c6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8102
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
1 /******************************************************************
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
2 Copyright 1998 by Just van Rossum, Den Haag, The Netherlands.
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
3
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
4 All Rights Reserved
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
5
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
6 Permission to use, copy, modify, and distribute this software and its
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
7 documentation for any purpose and without fee is hereby granted,
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
8 provided that the above copyright notice appear in all copies and that
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
9 both that copyright notice and this permission notice appear in
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
10 supporting documentation, and that the name of Just van Rossum not be
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
11 used in advertising or publicity pertaining to distribution of the
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
12 software without specific, written prior permission.
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
13
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
14 JUST VAN ROSSUM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
15 INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
16 EVENT SHALL JUST VAN ROSSUM BE LIABLE FOR ANY SPECIAL, INDIRECT OR
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
17 CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
18 USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
19 OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
20 PERFORMANCE OF THIS SOFTWARE.
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
21
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
22 ******************************************************************/
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
23
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
24 #include <ColorPicker.h>
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
25 #include "Python.h"
8153
995fb55b3e6a New versions from Just.
Jack Jansen <jack.jansen@cwi.nl>
parents: 8102
diff changeset
26 #include "macglue.h"
13606
c9a4a1316170 pymactoolbox.h contains protoypes for all externally visible toolbox module
Jack Jansen <jack.jansen@cwi.nl>
parents: 8153
diff changeset
27 #include "pymactoolbox.h"
8102
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
28
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
29 /* ----------------------------------------------------- */
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
30
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
31 static char cp_GetColor__doc__[] =
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
32 "GetColor(prompt, (r, g, b)) -> (r, g, b), ok"
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
33 ;
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
34
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
35 static PyObject *
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
36 cp_GetColor(self, args)
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
37 PyObject *self; /* Not used */
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
38 PyObject *args;
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
39 {
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
40 RGBColor inColor, outColor;
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
41 Boolean ok;
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
42 Point where = {0, 0};
8153
995fb55b3e6a New versions from Just.
Jack Jansen <jack.jansen@cwi.nl>
parents: 8102
diff changeset
43 Str255 prompt;
8102
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
44
8153
995fb55b3e6a New versions from Just.
Jack Jansen <jack.jansen@cwi.nl>
parents: 8102
diff changeset
45 if (!PyArg_ParseTuple(args, "O&O&", PyMac_GetStr255, prompt, QdRGB_Convert, &inColor))
8102
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
46 return NULL;
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
47
8153
995fb55b3e6a New versions from Just.
Jack Jansen <jack.jansen@cwi.nl>
parents: 8102
diff changeset
48 ok = GetColor(where, prompt, &inColor, &outColor);
8102
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
49
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
50 return Py_BuildValue("O&h", QdRGB_New, &outColor, ok);
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
51 }
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
52
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
53 /* List of methods defined in the module */
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
54
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
55 static struct PyMethodDef cp_methods[] = {
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
56 {"GetColor", (PyCFunction)cp_GetColor, METH_VARARGS, cp_GetColor__doc__},
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
57 {NULL, (PyCFunction)NULL, 0, NULL} /* sentinel */
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
58 };
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
59
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
60
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
61 /* Initialization function for the module (*must* be called initColorPicker) */
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
62
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
63 static char cp_module_documentation[] =
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
64 ""
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
65 ;
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
66
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
67 void initColorPicker();
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
68
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
69 void initColorPicker()
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
70 {
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
71 PyObject *m;
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
72
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
73 /* Create the module and add the functions */
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
74 m = Py_InitModule4("ColorPicker", cp_methods,
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
75 cp_module_documentation,
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
76 (PyObject*)NULL,PYTHON_API_VERSION);
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
77
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
78 /* Add symbolic constants to the module here */
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
79
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
80 /* XXXX Add constants here */
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
81
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
82 /* Check for errors */
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
83 if (PyErr_Occurred())
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
84 Py_FatalError("can't initialize module ColorPicker");
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
85 }
427f3489e52b Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
86