More toolbox modules adapted to Universal Headers 3.3.2.

This commit is contained in:
Jack Jansen 2000-12-12 22:10:21 +00:00
parent 8ed81303f6
commit 723ad8ae73
20 changed files with 2241 additions and 492 deletions

View File

@ -1184,6 +1184,53 @@ static PyObject *CtlObj_GetControlDataSize(_self, _args)
#if TARGET_API_MAC_CARBON
static PyObject *CtlObj_HandleControlDragTracking(_self, _args)
ControlObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
OSStatus _err;
DragTrackingMessage inMessage;
DragReference inDrag;
Boolean outLikesDrag;
if (!PyArg_ParseTuple(_args, "hO&",
&inMessage,
DragObj_Convert, &inDrag))
return NULL;
_err = HandleControlDragTracking(_self->ob_itself,
inMessage,
inDrag,
&outLikesDrag);
if (_err != noErr) return PyMac_Error(_err);
_res = Py_BuildValue("b",
outLikesDrag);
return _res;
}
#endif
#if TARGET_API_MAC_CARBON
static PyObject *CtlObj_HandleControlDragReceive(_self, _args)
ControlObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
OSStatus _err;
DragReference inDrag;
if (!PyArg_ParseTuple(_args, "O&",
DragObj_Convert, &inDrag))
return NULL;
_err = HandleControlDragReceive(_self->ob_itself,
inDrag);
if (_err != noErr) return PyMac_Error(_err);
Py_INCREF(Py_None);
_res = Py_None;
return _res;
}
#endif
#if TARGET_API_MAC_CARBON
static PyObject *CtlObj_SetControlDragTrackingEnabled(_self, _args)
ControlObject *_self;
PyObject *_args;
@ -2064,6 +2111,16 @@ static PyMethodDef CtlObj_methods[] = {
{"GetControlDataSize", (PyCFunction)CtlObj_GetControlDataSize, 1,
"(ControlPartCode inPart, ResType inTagName) -> (Size outMaxSize)"},
#if TARGET_API_MAC_CARBON
{"HandleControlDragTracking", (PyCFunction)CtlObj_HandleControlDragTracking, 1,
"(DragTrackingMessage inMessage, DragReference inDrag) -> (Boolean outLikesDrag)"},
#endif
#if TARGET_API_MAC_CARBON
{"HandleControlDragReceive", (PyCFunction)CtlObj_HandleControlDragReceive, 1,
"(DragReference inDrag) -> None"},
#endif
#if TARGET_API_MAC_CARBON
{"SetControlDragTrackingEnabled", (PyCFunction)CtlObj_SetControlDragTrackingEnabled, 1,
"(Boolean tracks) -> None"},

View File

@ -35,6 +35,7 @@ class MyScanner(Scanner):
self.defsfile.write("def FOUR_CHAR_CODE(x): return x\n")
self.defsfile.write("from TextEdit import *\n")
self.defsfile.write("from QuickDraw import *\n")
self.defsfile.write("from Dragconst import *\n")
self.defsfile.write("\n")
def makeblacklistnames(self):
@ -98,6 +99,8 @@ class MyScanner(Scanner):
('#if TARGET_API_MAC_CARBON', [
'IsAutomaticControlDragTrackingEnabledForWindow',
'SetAutomaticControlDragTrackingEnabledForWindow',
'HandleControlDragReceive',
'HandleControlDragTracking',
'GetControlByID',
'IsControlDragTrackingEnabled',
'SetControlDragTrackingEnabled',
@ -134,8 +137,6 @@ class MyScanner(Scanner):
'ControlDefSpec', # Don't know how to do this yet
'ControlDefSpec_ptr', # ditto
'Collection', # Ditto
'DragTrackingMessage', # Needs Drag module, must implement later
'DragReference', # ditto
]
def makerepairinstructions(self):

View File

@ -45,6 +45,9 @@ ControlFontStyleRec_ptr = ControlFontStyleRec
ControlID = OpaqueType('ControlID', 'PyControlID')
ControlID_ptr = ControlID
DragTrackingMessage = Type("DragTrackingMessage", "h")
DragReference = OpaqueByValueType("DragReference", "DragObj")
includestuff = includestuff + """
#include <%s>""" % MACHEADERFILE + """
#ifndef kControlCheckBoxUncheckedValue

View File

@ -100,17 +100,24 @@ extend = 0x40
'GetPortHWND',
'GetHWNDPort',
'GetPICTFromDIB',
'GetPortBitMapForCopyBits', # Something funny in the declaration
]
def makegreylist(self):
return [
('#if !TARGET_API_MAC_CARBON', [
]),
('#if TARGET_API_MAC_CARBON', [
])]
def makeblacklisttypes(self):
return [
## 'CCrsrHandle',
'CIconHandle', # Obsolete
'CQDProcs',
'CQDProcsPtr',
'CSpecArray',
## 'CTabHandle',
'ColorComplementProcPtr',
'ColorComplementUPP',
'ColorSearchProcPtr',
@ -118,14 +125,13 @@ extend = 0x40
'ConstPatternParam',
'DeviceLoopDrawingProcPtr',
'DeviceLoopFlags',
## 'FontInfo',
## 'GDHandle',
'GrafVerb',
'OpenCPicParams_ptr',
'Ptr',
'QDProcs',
'ReqListRec',
'void_ptr',
'CustomXFerProcPtr',
]
def makerepairinstructions(self):

View File

@ -45,9 +45,12 @@ GDHandle = OpaqueByValueType("GDHandle", "ResObj")
CGrafPtr = OpaqueByValueType("CGrafPtr", "GrafObj")
GrafPtr = OpaqueByValueType("GrafPtr", "GrafObj")
BitMap_ptr = OpaqueByValueType("BitMapPtr", "BMObj")
BitMap = BitMap_ptr
RGBColor = OpaqueType('RGBColor', 'QdRGB')
RGBColor_ptr = RGBColor
FontInfo = OpaqueType('FontInfo', 'QdFI')
Component = OpaqueByValueType('Component', 'CmpObj')
ComponentInstance = OpaqueByValueType('ComponentInstance', 'CmpInstObj')
Cursor_ptr = StructInputBufferType('Cursor')
Pattern = StructOutputBufferType('Pattern')
@ -58,6 +61,47 @@ PenState_ptr = StructInputBufferType('PenState')
includestuff = includestuff + """
#include <%s>""" % MACHEADERFILE + """
#if !ACCESSOR_CALLS_ARE_FUNCTIONS
#define GetPortBitMapForCopyBits(port) (((GrafPort)(port))->portBits)
#define GetPortBounds(port, bounds) (*(bounds) = (port)->portRect, (bounds))
#define GetPortForeColor(port, color) (*(color) = (port)->rgbFgColor, (color))
#define GetPortBackColor(port, color) (*(color) = (port)->rgbBkColor, (color))
#define GetPortOpColor(port, color) (*(color) = (*((port)->grafVars))->rgbOpColor, (color))
#define GetPortHiliteColor(port, color) (*(color) = (*((port)->grafVars))->rgbHiliteColor, (color))
#define GetPortTextFont(port) ((port)->txFont)
#define GetPortTextFace(port) ((port)->txFace)
#define GetPortTextMode(port) ((port)->txMode)
#define GetPortTextSize(port) ((port)->txSize)
#define GetPortChExtra(port) ((port)->chExtra)
#define GetPortFracHPenLocation(port) ((port)->pnLocHFrac)
#define GetPortSpExtra(port) ((port)->spExtra)
#define GetPortPenVisibility(port) ((port)->pnVis)
#define GetPortVisibleRegion(port, rgn) ((rgn) = (port)->visRgn, (rgn))
#define GetPortClipRegion(port, rgn) ((rgn) = (port)->clipRgn, (rgn))
#define GetPortBackPixPat(port, pat) ((pat) = (port)->bkPixPat, (pat))
#define GetPortPenPixPat(port, pat) ((pat) = (port)->pnPixPat, (pat))
#define GetPortFillPixPat(port, pat) ((pat) = (port)->fillPixPat, (pat))
#define GetPortPenSize(port, pensize) (*(pensize) = (port)->pnSize, (pensize))
#define GetPortPenMode(port) ((port)->pnMode)
#define GetPortPenLocation(port, location) ((*location) = (port)->pnLoc, (location))
#define IsPortRegionBeingDefined(port) ((port)->rgnSave)
#define IsPortPictureBeingDefined(port) ((port)->picSave)
/* #define IsPortOffscreen(port) */
/* #define IsPortColor(port) */
#define SetPortBounds(port, bounds) ((port)->portRect = *(bounds))
#define SetPortOpColor(port, color) ((*((port)->grafVars))->rgbOpColor = *(color))
#define SetPortVisibleRegion(port, rgn) ((port)->visRgn = (rgn))
#define SetPortClipRegion(port, rgn) ((port)->clipRgn = (rgn))
#define SetPortBackPixPat(port, pat) ((port)->bkPixPat = (pat))
#define SetPortPenPixPat(port, pat) ((port)->pnPixPat = (pat))
#define GetPortFillPixPat(port, pat) ((port)->fillPixPat = (pat))
#define SetPortPenSize(port, pensize) ((port)->pnSize = (pensize))
#define SetPortPenMode(port, mode) ((port)->pnMode = (mode))
#define SetPortFracHPenLocation(port, frac) ((port)->pnLocHFrac = (frac))
#endif
/*
** Parse/generate RGB records
*/

View File

@ -147,37 +147,6 @@ PyTypeObject GWorld_Type = {
/* --------------------- End object type GWorld --------------------- */
static PyObject *Qdoffs_NewGWorld(_self, _args)
PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
QDErr _err;
GWorldPtr offscreenGWorld;
short PixelDepth;
Rect boundsRect;
CTabHandle cTable;
GDHandle aGDevice;
GWorldFlags flags;
if (!PyArg_ParseTuple(_args, "hO&O&O&l",
&PixelDepth,
PyMac_GetRect, &boundsRect,
OptResObj_Convert, &cTable,
OptResObj_Convert, &aGDevice,
&flags))
return NULL;
_err = NewGWorld(&offscreenGWorld,
PixelDepth,
&boundsRect,
cTable,
aGDevice,
flags);
if (_err != noErr) return PyMac_Error(_err);
_res = Py_BuildValue("O&",
GWorldObj_New, offscreenGWorld);
return _res;
}
static PyObject *Qdoffs_LockPixels(_self, _args)
PyObject *_self;
PyObject *_args;
@ -209,37 +178,6 @@ static PyObject *Qdoffs_UnlockPixels(_self, _args)
return _res;
}
static PyObject *Qdoffs_UpdateGWorld(_self, _args)
PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
GWorldFlags _rv;
GWorldPtr offscreenGWorld;
short pixelDepth;
Rect boundsRect;
CTabHandle cTable;
GDHandle aGDevice;
GWorldFlags flags;
if (!PyArg_ParseTuple(_args, "hO&O&O&l",
&pixelDepth,
PyMac_GetRect, &boundsRect,
OptResObj_Convert, &cTable,
OptResObj_Convert, &aGDevice,
&flags))
return NULL;
_rv = UpdateGWorld(&offscreenGWorld,
pixelDepth,
&boundsRect,
cTable,
aGDevice,
flags);
_res = Py_BuildValue("lO&",
_rv,
GWorldObj_New, offscreenGWorld);
return _res;
}
static PyObject *Qdoffs_GetGWorld(_self, _args)
PyObject *_self;
PyObject *_args;
@ -563,14 +501,10 @@ static PyObject *Qdoffs_PutPixMapBytes(_self, _args)
}
static PyMethodDef Qdoffs_methods[] = {
{"NewGWorld", (PyCFunction)Qdoffs_NewGWorld, 1,
"(short PixelDepth, Rect boundsRect, CTabHandle cTable, GDHandle aGDevice, GWorldFlags flags) -> (GWorldPtr offscreenGWorld)"},
{"LockPixels", (PyCFunction)Qdoffs_LockPixels, 1,
"(PixMapHandle pm) -> (Boolean _rv)"},
{"UnlockPixels", (PyCFunction)Qdoffs_UnlockPixels, 1,
"(PixMapHandle pm) -> None"},
{"UpdateGWorld", (PyCFunction)Qdoffs_UpdateGWorld, 1,
"(short pixelDepth, Rect boundsRect, CTabHandle cTable, GDHandle aGDevice, GWorldFlags flags) -> (GWorldFlags _rv, GWorldPtr offscreenGWorld)"},
{"GetGWorld", (PyCFunction)Qdoffs_GetGWorld, 1,
"() -> (CGrafPtr port, GDHandle gdh)"},
{"SetGWorld", (PyCFunction)Qdoffs_SetGWorld, 1,
@ -628,7 +562,7 @@ void initQdoffs()
Qdoffs_Error = PyMac_GetOSErrException();
if (Qdoffs_Error == NULL ||
PyDict_SetItemString(d, "Error", Qdoffs_Error) != 0)
Py_FatalError("can't initialize Qdoffs.Error");
return;
GWorld_Type.ob_type = &PyType_Type;
Py_INCREF(&GWorld_Type);
if (PyDict_SetItemString(d, "GWorldType", (PyObject *)&GWorld_Type) != 0)

File diff suppressed because it is too large Load Diff

View File

@ -97,6 +97,15 @@ class MyScanner(Scanner):
"GetMovieUPP",
"ModalFilterUPP",
"TrackTransferUPP",
"MoviePrePrerollCompleteUPP",
"MovieExecuteWiredActionsUPP",
"QTBandwidthNotificationUPP",
"DoMCActionUPP",
"SampleReference64Ptr", # Don't know what this does, yet
"QTRuntimeSpriteDescPtr",
"QTBandwidthReference",
"QTScheduledBandwidthReference",
"QTAtomContainer",
"SpriteWorld",
"Sprite",

View File

@ -91,6 +91,7 @@ CTabHandle = OpaqueByValueType("CTabHandle", "ResObj")
PixMapHandle = OpaqueByValueType("PixMapHandle", "ResObj")
SampleDescriptionHandle = OpaqueByValueType("SampleDescriptionHandle", "ResObj")
ImageDescriptionHandle = OpaqueByValueType("ImageDescriptionHandle", "ResObj")
TextDescriptionHandle = OpaqueByValueType("TextDescriptionHandle", "ResObj")
TEHandle = OpaqueByValueType("TEHandle", "ResObj")
CGrafPtr = OpaqueByValueType("CGrafPtr", "GrafObj")
GDHandle = OpaqueByValueType("GDHandle", "OptResObj")
@ -127,6 +128,10 @@ mcactionparams = InputOnlyType("void *", "s")
QTParameterDialog = Type("QTParameterDialog", "l")
QTAtomID = Type("QTAtomID", "l")
MCInterfaceElement = Type("MCInterfaceElement", "l")
CodecType = OSTypeType("CodecType")
GWorldPtr = OpaqueByValueType("GWorldPtr", "GWorldObj")
QTFloatSingle = Type("QTFloatSingle", "f")
# Could-not-be-bothered-types (NewMovieFromFile)
dummyshortptr = FakeType('(short *)0')
dummyStringPtr = FakeType('(StringPtr)0')

View File

@ -1304,6 +1304,159 @@ static PyObject *Res_FSpCreateResFile(_self, _args)
return _res;
}
#if TARGET_API_MAC_CARBON
static PyObject *Res_InsertResourceFile(_self, _args)
PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
OSErr _rv;
SInt16 refNum;
RsrcChainLocation where;
if (!PyArg_ParseTuple(_args, "hh",
&refNum,
&where))
return NULL;
_rv = InsertResourceFile(refNum,
where);
{
OSErr _err = ResError();
if (_err != noErr) return PyMac_Error(_err);
}
_res = Py_BuildValue("h",
_rv);
return _res;
}
#endif
#if TARGET_API_MAC_CARBON
static PyObject *Res_DetachResourceFile(_self, _args)
PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
OSErr _rv;
SInt16 refNum;
if (!PyArg_ParseTuple(_args, "h",
&refNum))
return NULL;
_rv = DetachResourceFile(refNum);
{
OSErr _err = ResError();
if (_err != noErr) return PyMac_Error(_err);
}
_res = Py_BuildValue("h",
_rv);
return _res;
}
#endif
static PyObject *Res_FSpResourceFileAlreadyOpen(_self, _args)
PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
Boolean _rv;
FSSpec resourceFile;
Boolean inChain;
SInt16 refNum;
if (!PyArg_ParseTuple(_args, "O&",
PyMac_GetFSSpec, &resourceFile))
return NULL;
_rv = FSpResourceFileAlreadyOpen(&resourceFile,
&inChain,
&refNum);
{
OSErr _err = ResError();
if (_err != noErr) return PyMac_Error(_err);
}
_res = Py_BuildValue("bbh",
_rv,
inChain,
refNum);
return _res;
}
#if TARGET_API_MAC_CARBON
static PyObject *Res_FSpOpenOrphanResFile(_self, _args)
PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
OSErr _rv;
FSSpec spec;
SignedByte permission;
SInt16 refNum;
if (!PyArg_ParseTuple(_args, "O&b",
PyMac_GetFSSpec, &spec,
&permission))
return NULL;
_rv = FSpOpenOrphanResFile(&spec,
permission,
&refNum);
{
OSErr _err = ResError();
if (_err != noErr) return PyMac_Error(_err);
}
_res = Py_BuildValue("hh",
_rv,
refNum);
return _res;
}
#endif
#if TARGET_API_MAC_CARBON
static PyObject *Res_GetTopResourceFile(_self, _args)
PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
OSErr _rv;
SInt16 refNum;
if (!PyArg_ParseTuple(_args, ""))
return NULL;
_rv = GetTopResourceFile(&refNum);
{
OSErr _err = ResError();
if (_err != noErr) return PyMac_Error(_err);
}
_res = Py_BuildValue("hh",
_rv,
refNum);
return _res;
}
#endif
#if TARGET_API_MAC_CARBON
static PyObject *Res_GetNextResourceFile(_self, _args)
PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
OSErr _rv;
SInt16 curRefNum;
SInt16 nextRefNum;
if (!PyArg_ParseTuple(_args, "h",
&curRefNum))
return NULL;
_rv = GetNextResourceFile(curRefNum,
&nextRefNum);
{
OSErr _err = ResError();
if (_err != noErr) return PyMac_Error(_err);
}
_res = Py_BuildValue("hh",
_rv,
nextRefNum);
return _res;
}
#endif
static PyObject *Res_Resource(_self, _args)
PyObject *_self;
PyObject *_args;
@ -1437,6 +1590,33 @@ static PyMethodDef Res_methods[] = {
"(FSSpec spec, SignedByte permission) -> (short _rv)"},
{"FSpCreateResFile", (PyCFunction)Res_FSpCreateResFile, 1,
"(FSSpec spec, OSType creator, OSType fileType, ScriptCode scriptTag) -> None"},
#if TARGET_API_MAC_CARBON
{"InsertResourceFile", (PyCFunction)Res_InsertResourceFile, 1,
"(SInt16 refNum, RsrcChainLocation where) -> (OSErr _rv)"},
#endif
#if TARGET_API_MAC_CARBON
{"DetachResourceFile", (PyCFunction)Res_DetachResourceFile, 1,
"(SInt16 refNum) -> (OSErr _rv)"},
#endif
{"FSpResourceFileAlreadyOpen", (PyCFunction)Res_FSpResourceFileAlreadyOpen, 1,
"(FSSpec resourceFile) -> (Boolean _rv, Boolean inChain, SInt16 refNum)"},
#if TARGET_API_MAC_CARBON
{"FSpOpenOrphanResFile", (PyCFunction)Res_FSpOpenOrphanResFile, 1,
"(FSSpec spec, SignedByte permission) -> (OSErr _rv, SInt16 refNum)"},
#endif
#if TARGET_API_MAC_CARBON
{"GetTopResourceFile", (PyCFunction)Res_GetTopResourceFile, 1,
"() -> (OSErr _rv, SInt16 refNum)"},
#endif
#if TARGET_API_MAC_CARBON
{"GetNextResourceFile", (PyCFunction)Res_GetNextResourceFile, 1,
"(SInt16 curRefNum) -> (OSErr _rv, SInt16 nextRefNum)"},
#endif
{"Resource", (PyCFunction)Res_Resource, 1,
"Convert a string to a resource object.\n\nThe created resource object is actually just a handle,\napply AddResource() to write it to a resource file.\nSee also the Handle() docstring.\n"},
{"Handle", (PyCFunction)Res_Handle, 1,
@ -1499,7 +1679,7 @@ void initRes()
Res_Error = PyMac_GetOSErrException();
if (Res_Error == NULL ||
PyDict_SetItemString(d, "Error", Res_Error) != 0)
Py_FatalError("can't initialize Res.Error");
return;
Resource_Type.ob_type = &PyType_Type;
Py_INCREF(&Resource_Type);
if (PyDict_SetItemString(d, "ResourceType", (PyObject *)&Resource_Type) != 0)

View File

@ -57,6 +57,13 @@ class ResourcesScanner(Scanner):
'RsrcZoneInit',
'InitResources',
'RsrcMapEntry',
]),
('#if TARGET_API_MAC_CARBON', [
'GetNextResourceFile',
'GetTopResourceFile',
'FSpOpenOrphanResFile',
'DetachResourceFile',
'InsertResourceFile',
])]
def makerepairinstructions(self):

View File

@ -18,6 +18,8 @@ class ResMixIn:
class ResFunction(ResMixIn, FunctionGenerator): pass
class ResMethod(ResMixIn, MethodGenerator): pass
RsrcChainLocation = Type("RsrcChainLocation", "h")
# includestuff etc. are imported from macsupport
includestuff = includestuff + """

View File

@ -1541,7 +1541,7 @@ void initSnd()
Snd_Error = PyMac_GetOSErrException();
if (Snd_Error == NULL ||
PyDict_SetItemString(d, "Error", Snd_Error) != 0)
Py_FatalError("can't initialize Snd.Error");
return;
SndChannel_Type.ob_type = &PyType_Type;
Py_INCREF(&SndChannel_Type);
if (PyDict_SetItemString(d, "SndChannelType", (PyObject *)&SndChannel_Type) != 0)

View File

@ -41,20 +41,9 @@ class SoundScanner(Scanner):
'SndDisposeChannel', # automatic on deallocation
'SndAddModifier', # for internal use only
'SndPlayDoubleBuffer', # very low level routine
# Obsolete:
'StartSound',
'StopSound',
'SoundDone',
# These do not work for cfm68k:
## 'SndGetInfo',
## 'SndSetInfo',
## 'GetCompressionInfo',
## 'GetCompressionName',
## 'GetSoundPreference',
## 'SetSoundPreference',
# And old calls that are no longer supported
'SetSoundVol',
'GetSoundVol',
# Missing from libraries (UH332)
'SoundManagerSetInfo',
'SoundManagerGetInfo',
# Constants with funny definitions
'rate48khz',
'rate44khz',

View File

@ -1012,6 +1012,41 @@ static PyObject *TE_TEToScrap(_self, _args)
return _res;
}
#if TARGET_API_MAC_CARBON
static PyObject *TE_TEGetScrapHandle(_self, _args)
PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
Handle _rv;
if (!PyArg_ParseTuple(_args, ""))
return NULL;
_rv = TEGetScrapHandle();
_res = Py_BuildValue("O&",
ResObj_New, _rv);
return _res;
}
#endif
#if TARGET_API_MAC_CARBON
static PyObject *TE_TESetScrapHandle(_self, _args)
PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
Handle value;
if (!PyArg_ParseTuple(_args, "O&",
ResObj_Convert, &value))
return NULL;
TESetScrapHandle(value);
Py_INCREF(Py_None);
_res = Py_None;
return _res;
}
#endif
static PyObject *TE_as_TE(_self, _args)
PyObject *_self;
PyObject *_args;
@ -1045,6 +1080,16 @@ static PyMethodDef TE_methods[] = {
"() -> None"},
{"TEToScrap", (PyCFunction)TE_TEToScrap, 1,
"() -> None"},
#if TARGET_API_MAC_CARBON
{"TEGetScrapHandle", (PyCFunction)TE_TEGetScrapHandle, 1,
"() -> (Handle _rv)"},
#endif
#if TARGET_API_MAC_CARBON
{"TESetScrapHandle", (PyCFunction)TE_TESetScrapHandle, 1,
"(Handle value) -> None"},
#endif
{"as_TE", (PyCFunction)TE_as_TE, 1,
"(Handle h) -> (TEHandle _rv)"},
{NULL, NULL, 0}
@ -1066,7 +1111,7 @@ void initTE()
TE_Error = PyMac_GetOSErrException();
if (TE_Error == NULL ||
PyDict_SetItemString(d, "Error", TE_Error) != 0)
Py_FatalError("can't initialize TE.Error");
return;
TE_Type.ob_type = &PyType_Type;
Py_INCREF(&TE_Type);
if (PyDict_SetItemString(d, "TEType", (PyObject *)&TE_Type) != 0)

View File

@ -42,11 +42,21 @@ class MyScanner(Scanner):
## "TEGetHiliteRgn",
]
def makegreylist(self):
return [
('#if TARGET_API_MAC_CARBON', [
'TEGetScrapHandle',
'TESetScrapHandle',
])]
def makeblacklisttypes(self):
return [
"TEClickLoopUPP",
"UniversalProcPtr",
"WordBreakUPP"
"WordBreakUPP",
"TEDoTextUPP",
"TERecalcUPP",
"TEFindWordUPP",
]
def makerepairinstructions(self):

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
# These are inline-routines/defines, so we do them "by hand"
#
if 0:
f = Method(CGrafPtr, 'GetWindowPort',
(WindowRef, 'theWindow', InMode),
)

View File

@ -42,8 +42,10 @@ class MyScanner(Scanner):
'GetWindowPropertySize',
'RemoveWindowProperty',
'MacCloseWindow',
'GetWindowList', # Don't know whether this is safe...
# Constants with funny definitions
'kMouseUpOutOfSlop',
'kAllWindowClasses',
]
def makegreylist(self):
@ -64,14 +66,28 @@ class MyScanner(Scanner):
'InvalRgn',
'InvalRect',
'IsValidWindowPtr', # I think this is useless for Python, but not sure...
]),
('#if TARGET_API_MAC_CARBON', [
'IsWindowUpdatePending',
'FindWindowOfClass',
'GetFrontWindowOfClass',
'ChangeWindowPropertyAttributes',
'GetWindowPropertyAttributes',
'GetNextWindowOfClass',
'ScrollWindowRegion',
'ScrollWindowRect',
'ChangeWindowAttributes',
'ReshapeCustomWindow',
])]
def makeblacklisttypes(self):
return [
'ProcPtr',
'DragGrayRgnUPP',
'WindowPaintUPP',
'Collection', # For now, to be done later
'DragReference', # Ditto, dragmodule doesn't export it yet.
'WindowDefSpec', # Too difficult for now
'WindowDefSpec_ptr',
]
def makerepairinstructions(self):
@ -104,6 +120,9 @@ class MyScanner(Scanner):
[("ExistingWindowPtr", "*", "*")]),
([("WindowRef", "FrontNonFloatingWindow", "ReturnMode")], # Ditto
[("ExistingWindowPtr", "*", "*")]),
([("Rect_ptr", "*", "ReturnMode")], # GetWindowXXXState accessors
[("void", "*", "ReturnMode")]),
]
if __name__ == "__main__":

View File

@ -29,6 +29,8 @@ WindowPeek.passInput = lambda name: "(WindowPeek)(%s)" % name
CGrafPtr = OpaqueByValueType("CGrafPtr", "GrafObj")
GrafPtr = OpaqueByValueType("GrafPtr", "GrafObj")
DragReference = OpaqueByValueType("DragReference", "DragObj")
RgnHandle = OpaqueByValueType("RgnHandle", "ResObj")
PicHandle = OpaqueByValueType("PicHandle", "ResObj")
WCTabHandle = OpaqueByValueType("WCTabHandle", "ResObj")
@ -44,11 +46,22 @@ WindowPositionMethod = Type("WindowPositionMethod", "l")
WindowTransitionEffect = Type("WindowTransitionEffect", "l")
WindowTransitionAction = Type("WindowTransitionAction", "l")
RGBColor = OpaqueType("RGBColor", "QdRGB")
RGBColor_ptr = RGBColor
ScrollWindowOptions = Type("ScrollWindowOptions", "l")
WindowPartCode = Type("WindowPartCode", "h")
PropertyCreator = OSTypeType("PropertyCreator")
PropertyTag = OSTypeType("PropertyTag")
includestuff = includestuff + """
#include <%s>""" % MACHEADERFILE + """
#if !ACCESSOR_CALLS_ARE_FUNCTIONS
#define GetWindowSpareFlag(win) (((CWindowPeek)(win))->spareFlag)
#define GetWindowFromPort(port) ((WindowRef)(port))
#define GetWindowPortBounds(win, rectp) (*(rectp) = ((CWindowPeek)(win))->port.portRect)
#endif
/* Function to dispose a window, with a "normal" calling sequence */
static void
PyMac_AutoDisposeWindow(WindowPtr w)