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