ยปCore Development>Code coverage>Mac/Modules/res/resedit.py

Python code coverage for Mac/Modules/res/resedit.py

#countcontent
1n/a##resource_body = """
2n/a##char *buf;
3n/a##int len;
4n/a##Handle h;
5n/a##
6n/a##if (!PyArg_ParseTuple(_args, "s#", &buf, &len))
7n/a## return NULL;
8n/a##h = NewHandle(len);
9n/a##if ( h == NULL ) {
10n/a## PyErr_NoMemory();
11n/a## return NULL;
12n/a##}
13n/a##HLock(h);
14n/a##memcpy(*h, buf, len);
15n/a##HUnlock(h);
16n/a##_res = ResObj_New(h);
17n/a##return _res;
18n/a##"""
19n/a##
20n/a##f = ManualGenerator("Resource", resource_body)
21n/a##f.docstring = lambda: """Convert a string to a resource object.
22n/a##
23n/a##The created resource object is actually just a handle,
24n/a##apply AddResource() to write it to a resource file.
25n/a##See also the Handle() docstring.
26n/a##"""
27n/a##functions.append(f)
28n/a
29n/ahandle_body = """
30n/achar *buf;
31n/aint len;
32n/aHandle h;
33n/aResourceObject *rv;
34n/a
35n/aif (!PyArg_ParseTuple(_args, "s#", &buf, &len))
36n/a return NULL;
37n/ah = NewHandle(len);
38n/aif ( h == NULL ) {
39n/a PyErr_NoMemory();
40n/a return NULL;
41n/a}
42n/aHLock(h);
43n/amemcpy(*h, buf, len);
44n/aHUnlock(h);
45n/arv = (ResourceObject *)ResObj_New(h);
46n/arv->ob_freeit = PyMac_AutoDisposeHandle;
47n/a_res = (PyObject *)rv;
48n/areturn _res;
49n/a"""
50n/a
51n/af = ManualGenerator("Handle", handle_body)
52n/af.docstring = lambda: """Convert a string to a Handle object.
53n/a
54n/aResource() and Handle() are very similar, but objects created with Handle() are
55n/aby default automatically DisposeHandle()d upon object cleanup. Use AutoDispose()
56n/ato change this.
57n/a"""
58n/afunctions.append(f)
59n/a
60n/a# Convert resources to other things.
61n/a
62n/aas_xxx_body = """
63n/a_res = %sObj_New((%sHandle)_self->ob_itself);
64n/areturn _res;
65n/a"""
66n/a
67n/adef genresconverter(longname, shortname):
68n/a
69n/a f = ManualGenerator("as_%s"%longname, as_xxx_body%(shortname, longname))
70n/a docstring = "Return this resource/handle as a %s"%longname
71n/a f.docstring = lambda docstring=docstring: docstring
72n/a return f
73n/a
74n/aresmethods.append(genresconverter("Control", "Ctl"))
75n/aresmethods.append(genresconverter("Menu", "Menu"))
76n/a
77n/a# The definition of this one is MacLoadResource, so we do it by hand...
78n/a
79n/af = ResMethod(void, 'LoadResource',
80n/a (Handle, 'theResource', InMode),
81n/a)
82n/aresmethods.append(f)
83n/a
84n/a#
85n/a# A method to set the auto-dispose flag
86n/a#
87n/aAutoDispose_body = """
88n/aint onoff, old = 0;
89n/aif (!PyArg_ParseTuple(_args, "i", &onoff))
90n/a return NULL;
91n/aif ( _self->ob_freeit )
92n/a old = 1;
93n/aif ( onoff )
94n/a _self->ob_freeit = PyMac_AutoDisposeHandle;
95n/aelse
96n/a _self->ob_freeit = NULL;
97n/a_res = Py_BuildValue("i", old);
98n/areturn _res;
99n/a"""
100n/af = ManualGenerator("AutoDispose", AutoDispose_body)
101n/af.docstring = lambda: "(int)->int. Automatically DisposeHandle the object on Python object cleanup"
102n/aresmethods.append(f)