Fix an amazing number of typos & malformed sentences reported by Detlef
[python/dscho.git] / Mac / Modules / scrap / Scrapmodule.c
blobb44e7cd89f6b652183ae6f765f31583be1eea859
2 /* ========================== Module Scrap ========================== */
4 #include "Python.h"
8 #define SystemSevenOrLater 1
10 #include "macglue.h"
11 #include <Memory.h>
12 #include <Dialogs.h>
13 #include <Menus.h>
14 #include <Controls.h>
16 extern PyObject *ResObj_New(Handle);
17 extern int ResObj_Convert(PyObject *, Handle *);
18 extern PyObject *OptResObj_New(Handle);
19 extern int OptResObj_Convert(PyObject *, Handle *);
21 extern PyObject *WinObj_New(WindowPtr);
22 extern int WinObj_Convert(PyObject *, WindowPtr *);
23 extern PyTypeObject Window_Type;
24 #define WinObj_Check(x) ((x)->ob_type == &Window_Type)
26 extern PyObject *DlgObj_New(DialogPtr);
27 extern int DlgObj_Convert(PyObject *, DialogPtr *);
28 extern PyTypeObject Dialog_Type;
29 #define DlgObj_Check(x) ((x)->ob_type == &Dialog_Type)
31 extern PyObject *MenuObj_New(MenuHandle);
32 extern int MenuObj_Convert(PyObject *, MenuHandle *);
34 extern PyObject *CtlObj_New(ControlHandle);
35 extern int CtlObj_Convert(PyObject *, ControlHandle *);
37 extern PyObject *GrafObj_New(GrafPtr);
38 extern int GrafObj_Convert(PyObject *, GrafPtr *);
40 extern PyObject *BMObj_New(BitMapPtr);
41 extern int BMObj_Convert(PyObject *, BitMapPtr *);
43 extern PyObject *PMObj_New(PixMapHandle);
44 extern int PMObj_Convert(PyObject *, PixMapHandle *);
46 extern PyObject *WinObj_WhichWindow(WindowPtr);
48 #include <Scrap.h>
51 ** Generate ScrapInfo records
53 PyObject *SCRRec_New(itself)
54 ScrapStuff *itself;
57 return Py_BuildValue("lO&hhO&", itself->scrapSize,
58 ResObj_New, itself->scrapHandle, itself->scrapCount, itself->scrapState,
59 PyMac_BuildStr255, itself->scrapName);
62 static PyObject *Scrap_Error;
64 static PyObject *Scrap_InfoScrap(_self, _args)
65 PyObject *_self;
66 PyObject *_args;
68 PyObject *_res = NULL;
69 ScrapStuffPtr _rv;
70 if (!PyArg_ParseTuple(_args, ""))
71 return NULL;
72 _rv = InfoScrap();
73 _res = Py_BuildValue("O&",
74 SCRRec_New, _rv);
75 return _res;
78 static PyObject *Scrap_UnloadScrap(_self, _args)
79 PyObject *_self;
80 PyObject *_args;
82 PyObject *_res = NULL;
83 long _rv;
84 if (!PyArg_ParseTuple(_args, ""))
85 return NULL;
86 _rv = UnloadScrap();
87 if ( _rv ) return PyMac_Error((OSErr)_rv);
88 Py_INCREF(Py_None);
89 return Py_None;
92 static PyObject *Scrap_LoadScrap(_self, _args)
93 PyObject *_self;
94 PyObject *_args;
96 PyObject *_res = NULL;
97 long _rv;
98 if (!PyArg_ParseTuple(_args, ""))
99 return NULL;
100 _rv = LoadScrap();
101 if ( _rv ) return PyMac_Error((OSErr)_rv);
102 Py_INCREF(Py_None);
103 return Py_None;
106 static PyObject *Scrap_GetScrap(_self, _args)
107 PyObject *_self;
108 PyObject *_args;
110 PyObject *_res = NULL;
111 long _rv;
112 Handle hDest;
113 ResType theType;
114 long offset;
115 if (!PyArg_ParseTuple(_args, "O&O&",
116 ResObj_Convert, &hDest,
117 PyMac_GetOSType, &theType))
118 return NULL;
119 _rv = GetScrap(hDest,
120 theType,
121 &offset);
122 _res = Py_BuildValue("ll",
123 _rv,
124 offset);
125 return _res;
128 static PyObject *Scrap_ZeroScrap(_self, _args)
129 PyObject *_self;
130 PyObject *_args;
132 PyObject *_res = NULL;
133 long _rv;
134 if (!PyArg_ParseTuple(_args, ""))
135 return NULL;
136 _rv = ZeroScrap();
137 if ( _rv ) return PyMac_Error((OSErr)_rv);
138 Py_INCREF(Py_None);
139 return Py_None;
142 static PyObject *Scrap_PutScrap(_self, _args)
143 PyObject *_self;
144 PyObject *_args;
146 PyObject *_res = NULL;
147 long _rv;
148 long length;
149 ResType theType;
150 char *source__in__;
151 int source__len__;
152 int source__in_len__;
153 if (!PyArg_ParseTuple(_args, "O&s#",
154 PyMac_GetOSType, &theType,
155 &source__in__, &source__in_len__))
156 return NULL;
157 length = source__in_len__;
158 _rv = PutScrap(length,
159 theType,
160 source__in__);
161 if ( _rv ) return PyMac_Error((OSErr)_rv);
162 Py_INCREF(Py_None);
163 return Py_None;
166 static PyMethodDef Scrap_methods[] = {
167 {"InfoScrap", (PyCFunction)Scrap_InfoScrap, 1,
168 "() -> (ScrapStuff _rv)"},
169 {"UnloadScrap", (PyCFunction)Scrap_UnloadScrap, 1,
170 "() -> (OSErr)"},
171 {"LoadScrap", (PyCFunction)Scrap_LoadScrap, 1,
172 "() -> (OSErr)"},
173 {"GetScrap", (PyCFunction)Scrap_GetScrap, 1,
174 "(Handle hDest, ResType theType) -> (long _rv, long offset)"},
175 {"ZeroScrap", (PyCFunction)Scrap_ZeroScrap, 1,
176 "() -> (OSErr)"},
177 {"PutScrap", (PyCFunction)Scrap_PutScrap, 1,
178 "(ResType theType, Buffer source) -> (OSErr)"},
179 {NULL, NULL, 0}
185 void initScrap()
187 PyObject *m;
188 PyObject *d;
193 m = Py_InitModule("Scrap", Scrap_methods);
194 d = PyModule_GetDict(m);
195 Scrap_Error = PyMac_GetOSErrException();
196 if (Scrap_Error == NULL ||
197 PyDict_SetItemString(d, "Error", Scrap_Error) != 0)
198 Py_FatalError("can't initialize Scrap.Error");
201 /* ======================== End module Scrap ======================== */