Got ZeroScrap() and PutScrap() to work under Carbon.

This commit is contained in:
Jack Jansen 2001-01-29 15:20:06 +00:00
parent 64aa1e2c83
commit bf21bef254
1 changed files with 21 additions and 10 deletions

View File

@ -97,7 +97,6 @@ static PyObject *Scrap_GetScrap(_self, _args)
}
#endif
#if !TARGET_API_MAC_CARBON
static PyObject *Scrap_ZeroScrap(_self, _args)
PyObject *_self;
@ -107,15 +106,22 @@ static PyObject *Scrap_ZeroScrap(_self, _args)
OSStatus _err;
if (!PyArg_ParseTuple(_args, ""))
return NULL;
#if TARGET_API_MAC_CARBON
{
ScrapRef scrap;
_err = ClearCurrentScrap();
if (_err != noErr) return PyMac_Error(_err);
_err = GetCurrentScrap(&scrap);
}
#else
_err = ZeroScrap();
#endif
if (_err != noErr) return PyMac_Error(_err);
Py_INCREF(Py_None);
_res = Py_None;
return _res;
}
#endif
#if !TARGET_API_MAC_CARBON
static PyObject *Scrap_PutScrap(_self, _args)
PyObject *_self;
@ -128,22 +134,31 @@ static PyObject *Scrap_PutScrap(_self, _args)
char *sourceBuffer__in__;
int sourceBuffer__len__;
int sourceBuffer__in_len__;
#if TARGET_API_MAC_CARBON
ScrapRef scrap;
#endif
if (!PyArg_ParseTuple(_args, "O&s#",
PyMac_GetOSType, &flavorType,
&sourceBuffer__in__, &sourceBuffer__in_len__))
return NULL;
sourceBufferByteCount = sourceBuffer__in_len__;
sourceBuffer__len__ = sourceBuffer__in_len__;
#if TARGET_API_MAC_CARBON
_err = GetCurrentScrap(&scrap);
if (_err != noErr) return PyMac_Error(_err);
_err = PutScrapFlavor(scrap, flavorType, 0, sourceBufferByteCount, sourceBuffer__in__);
#else
_err = PutScrap(sourceBufferByteCount,
flavorType,
sourceBuffer__in__);
#endif
if (_err != noErr) return PyMac_Error(_err);
Py_INCREF(Py_None);
_res = Py_None;
sourceBuffer__error__: ;
return _res;
}
#endif
#if TARGET_API_MAC_CARBON
@ -197,15 +212,11 @@ static PyMethodDef Scrap_methods[] = {
"(Handle destination, ScrapFlavorType flavorType) -> (long _rv, SInt32 offset)"},
#endif
#if !TARGET_API_MAC_CARBON
{"ZeroScrap", (PyCFunction)Scrap_ZeroScrap, 1,
"() -> None"},
#endif
#if !TARGET_API_MAC_CARBON
{"PutScrap", (PyCFunction)Scrap_PutScrap, 1,
"(SInt32 sourceBufferByteCount, ScrapFlavorType flavorType, Buffer sourceBuffer) -> None"},
#endif
"(ScrapFlavorType flavorType, Buffer sourceBuffer) -> None"},
#if TARGET_API_MAC_CARBON
{"ClearCurrentScrap", (PyCFunction)Scrap_ClearCurrentScrap, 1,